From 96fed4f123bffb0aeec03c9ec20494e32ee457c0 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sun, 9 Oct 2022 13:40:33 -0400 Subject: [PATCH] update tfjs --- CHANGELOG.md | 4 +- dist/face-api.esm-nobundle.js | 2 +- dist/face-api.esm.js | 702 ++++++++++++++++----------------- dist/face-api.esm.js.map | 6 +- dist/face-api.js | 702 ++++++++++++++++----------------- dist/tfjs.esm.js | 714 +++++++++++++++++----------------- dist/tfjs.version.js | 2 +- package.json | 32 +- types/face-api.d.ts | 21 +- 9 files changed, 1094 insertions(+), 1091 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8718269..36fe706 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,8 +9,10 @@ ## Changelog -### **HEAD -> master** 2022/09/25 mandic00@live.com +### **HEAD -> master** 2022/09/29 mandic00@live.com +- create funding.yml +- add node-wasm demo ### **1.7.4** 2022/09/25 mandic00@live.com diff --git a/dist/face-api.esm-nobundle.js b/dist/face-api.esm-nobundle.js index 92e270e..b3e764e 100644 --- a/dist/face-api.esm-nobundle.js +++ b/dist/face-api.esm-nobundle.js @@ -4,4 +4,4 @@ author: ' */ -var lr=Object.defineProperty;var ho=Object.getOwnPropertyDescriptor;var bo=Object.getOwnPropertyNames;var go=Object.prototype.hasOwnProperty;var xo=(o=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(o,{get:(t,e)=>(typeof require!="undefined"?require:t)[e]}):o)(function(o){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+o+'" is not supported')});var Ve=(o,t)=>{for(var e in t)lr(o,e,{get:t[e],enumerable:!0})},fr=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of bo(t))!go.call(o,a)&&a!==e&&lr(o,a,{get:()=>t[a],enumerable:!(r=ho(t,a))||r.enumerable});return o},v=(o,t,e)=>(fr(o,t,"default"),e&&fr(e,t,"default"));var n={};Ve(n,{version:()=>Eo});v(n,fn);v(n,ln);v(n,dn);import*as fn from"@tensorflow/tfjs/dist/index.js";import*as ln from"@tensorflow/tfjs-backend-webgl/dist/index.js";import*as dn from"@tensorflow/tfjs-backend-wasm/dist/index.js";var vo="3.20.0",yo="3.20.0",_o="3.20.0",To="3.20.0",Po="3.20.0",wo="3.20.0",Fo="3.20.0",Do="3.20.0",Eo={tfjs:vo,"tfjs-core":yo,"tfjs-data":_o,"tfjs-layers":To,"tfjs-converter":Po,"tfjs-backend-cpu":wo,"tfjs-backend-webgl":Fo,"tfjs-backend-wasm":Do};var Ar={};Ve(Ar,{AnchorPosition:()=>Ke,DrawBox:()=>ee,DrawBoxOptions:()=>de,DrawFaceLandmarks:()=>De,DrawFaceLandmarksOptions:()=>Fe,DrawTextField:()=>et,DrawTextFieldOptions:()=>kt,drawContour:()=>Z,drawDetections:()=>Ao,drawFaceExpressions:()=>Wo,drawFaceLandmarks:()=>Bo});function Z(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:a},s)=>{let i=t[s];o.moveTo(i.x,i.y),o.lineTo(r,a)}),e){let r=t[t.length-1],a=t[0];if(!r||!a)return;o.moveTo(r.x,r.y),o.lineTo(a.x,a.y)}o.stroke()}var dr={};Ve(dr,{computeReshapedDimensions:()=>je,getCenterPoint:()=>yt,isDimensions:()=>ue,isEven:()=>pe,isFloat:()=>Ge,isTensor:()=>xt,isTensor1D:()=>Mo,isTensor2D:()=>Ye,isTensor3D:()=>K,isTensor4D:()=>R,isValidNumber:()=>G,isValidProbablitiy:()=>It,range:()=>U,round:()=>vt});var S=class{constructor(t,e){if(!G(t)||!G(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new S(1/this.width,1/this.height)}};function xt(o,t){return o instanceof n.Tensor&&o.shape.length===t}function Mo(o){return xt(o,1)}function Ye(o){return xt(o,2)}function K(o){return xt(o,3)}function R(o){return xt(o,4)}function Ge(o){return o%1!==0}function pe(o){return o%2===0}function vt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function ue(o){return o&&o.width&&o.height}function je({width:o,height:t},e){let r=e/Math.max(t,o);return new S(Math.round(o*r),Math.round(t*r))}function yt(o){return o.reduce((t,e)=>t.add(e),new b(0,0)).div(new b(o.length,o.length))}function U(o,t,e){return Array(o).fill(0).map((r,a)=>t+a*e)}function G(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function It(o){return G(o)&&o>=0&&o<=1}var b=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new b(this.x+t.x,this.y+t.y)}sub(t){return new b(this.x-t.x,this.y-t.y)}mul(t){return new b(this.x*t.x,this.y*t.y)}div(t){return new b(this.x/t.x,this.y/t.y)}abs(){return new b(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new b(Math.floor(this.x),Math.floor(this.y))}};var w=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(G)}static assertIsValidBox(t,e,r=!1){if(!w.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},a=[r.left,r.top,r.right,r.bottom].every(G),s=[r.x,r.y,r.width,r.height].every(G);if(!s&&!a)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[i,c,m,p]=s?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];w.assertIsValidBox({x:i,y:c,width:m,height:p},"Box.constructor",e),this._x=i,this._y=c,this._width=m,this._height=p}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 b(this.left,this.top)}get topRight(){return new b(this.right,this.top)}get bottomLeft(){return new b(this.left,this.bottom)}get bottomRight(){return new b(this.right,this.bottom)}round(){let[t,e,r,a]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new w({x:t,y:e,width:r,height:a})}floor(){let[t,e,r,a]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new w({x:t,y:e,width:r,height:a})}toSquare(){let{x:t,y:e,width:r,height:a}=this,s=Math.abs(r-a);return re&&(c=-f+e+r,f=e),l>t&&(m=-l+t+a,l=t),p<1&&(m=2-p,p=1),u<1&&(m=2-u,u=1),{dy:i,edy:m,dx:s,edx:c,y:u,ey:l,x:p,ex:f,w:r,h:a}}calibrate(t){return new w({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 Nt=class extends w{constructor(t,e,r,a,s=!1){super({left:t,top:e,right:r,bottom:a},s)}};var ct=class{constructor(t,e,r,a,s){this._imageDims=new S(s.width,s.height),this._score=t,this._classScore=e,this._className=r,this._box=new w(a).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 w(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new ct(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var E=class extends ct{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:a,imageDims:s}=super.forSize(t,e);return new E(r,a,s)}};function hr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),a=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),s=r*a;return e?s/(o.area+t.area-s):s/Math.min(o.area,t.area)}function br(o){let t=o.map(c=>c.x),e=o.map(c=>c.y),r=t.reduce((c,m)=>mmcc({score:i,boxIndex:c})).sort((i,c)=>i.score-c.score).map(i=>i.boxIndex),s=[];for(;a.length>0;){let i=a.pop();s.push(i);let c=a,m=[];for(let p=0;pm[u]<=e)}return s}function X(o,t){return n.tidy(()=>{let[e,r,a]=t,s=n.fill([...o.shape.slice(0,3),1],e,"float32"),i=n.fill([...o.shape.slice(0,3),1],r,"float32"),c=n.fill([...o.shape.slice(0,3),1],a,"float32"),m=n.concat([s,i,c],3);return n.sub(o,m)})}function xr(o,t=!1){return n.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let a=Math.abs(e-r),s=Math.round(a*(t?.5:1)),i=e>r?2:1,c=l=>{let d=o.shape.slice();return d[i]=l,n.fill(d,0,"float32")},m=c(s),p=a-m.shape[i],f=[t&&p?c(p):null,o,m].filter(l=>!!l).map(l=>n.cast(l,"float32"));return n.concat(f,i)})}function Hn(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),a=t[e];t[e]=t[r],t[r]=a}return t}function fe(o){return 1/(1+Math.exp(-o))}function Vn(o){return Math.log(o/(1-o))}var St=class extends w{constructor(t,e,r,a,s=!1){super({x:t,y:e,width:r,height:a},s)}};var Co=.5,Io=.43,No=.45,$=class{constructor(t,e,r=new b(0,0)){let{width:a,height:s}=e;this._imgDims=new S(a,s),this._shift=r,this._positions=t.map(i=>i.mul(new b(a,s)).add(r))}get shift(){return new b(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 b(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new b(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let s=t instanceof E?t.box.floor():new w(t);return this.shiftBy(s.x,s.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:a}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(a)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,a]=t,s=f=>a.sub(f).magnitude(),i=(s(e)+s(r))/2,c=Math.floor(i/No),m=yt(t),p=Math.floor(Math.max(0,m.x-Co*c)),u=Math.floor(Math.max(0,m.y-Io*c));return new St(p,u,Math.min(c,this.imageWidth+p),Math.min(c,this.imageHeight+u))}alignMinBbox(t){let e=br(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var vr=class extends ${getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],yt([t[3],t[4]])]}};var Lt=class extends ${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(yt)}};var Kt=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${vt(this.distance)})`:""}`}};var Qt=class extends w{constructor(e,r){super(e);this._label=r}static assertIsValidLabeledBox(e,r){if(w.assertIsValidBox(e,r),!G(e.label))throw new Error(`${r} - expected property label (${e.label}) to be a number`)}get label(){return this._label}};var Q=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}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 e=t.descriptors.map(r=>new Float32Array(r));return new Q(t.label,e)}};var yr=class extends Qt{constructor(e,r,a,s){super(e,r);this._score=a,this._classScore=s}static assertIsValidPredictedBox(e,r){if(Qt.assertIsValidLabeledBox(e,r),!It(e.score)||!It(e.classScore))throw new Error(`${r} - expected properties score (${e.score}) and (${e.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function tt(o){return o.detection instanceof E}function At(o,t){return{...o,...{detection:t}}}function Ue(){let o=window.fetch;if(!o)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:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function te(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function le(o){let t="";if(!o&&te())try{o=xo("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((a,s)=>{o.readFile(r,(i,c)=>i?s(i):a(c))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Xe(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},a=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},i=global.fetch,c=le();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:a,createVideoElement:s,fetch:i,...c}}function Je(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var C;function So(){if(!C)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return C}function qe(o){C=o}function Ze(){return Je()?qe(Ue()):te()?qe(Xe()):null}function Lo(o){if(C||Ze(),!C)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=C.Canvas,Image:e=C.Image}=o;C.Canvas=t,C.Image=e,C.createCanvasElement=o.createCanvasElement||(()=>new t),C.createImageElement=o.createImageElement||(()=>new e),C.ImageData=o.ImageData||C.ImageData,C.Video=o.Video||C.Video,C.fetch=o.fetch||C.fetch,C.readFile=o.readFile||C.readFile}var T={getEnv:So,setEnv:qe,initialize:Ze,createBrowserEnv:Ue,createFileSystem:le,createNodejsEnv:Xe,monkeyPatch:Lo,isBrowser:Je,isNodejs:te};Ze();function Wt(o){return!T.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function k(o){let{Canvas:t,CanvasRenderingContext2D:e}=T.getEnv();if(o instanceof e)return o;let r=Wt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let a=r.getContext("2d");if(!a)throw new Error("resolveContext2d - canvas 2d context is null");return a}var Ke=(a=>(a.TOP_LEFT="TOP_LEFT",a.TOP_RIGHT="TOP_RIGHT",a.BOTTOM_LEFT="BOTTOM_LEFT",a.BOTTOM_RIGHT="BOTTOM_RIGHT",a))(Ke||{}),kt=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:a,fontSize:s,fontStyle:i,padding:c}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=a||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=c||4}},et=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof et?t.text:t,this.anchor=e,this.options=new kt(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,a)=>r{let g=m+f.x,_=m+f.y+(d+1)*i;r.fillText(l,g,_)})}};var de=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:a,drawLabelOptions:s}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=a;let i={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new kt({...i,...s})}},ee=class{constructor(t,e={}){this.box=new w(t),this.options=new de(e)}draw(t){let e=k(t),{boxColor:r,lineWidth:a}=this.options,{x:s,y:i,width:c,height:m}=this.box;e.strokeStyle=r,e.lineWidth=a,e.strokeRect(s,i,c,m);let{label:p}=this.options;p&&new et([p],{x:s-a/2,y:i},this.options.drawLabelOptions).draw(t)}};function Ao(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let a=r instanceof E?r.score:tt(r)?r.detection.score:void 0,s=r instanceof E?r.box:tt(r)?r.detection.box:new w(r),i=a?`${vt(a)}`:void 0;new ee(s,{label:i}).draw(o)})}function he(o){let{Image:t,Video:e}=T.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function _r(o){return new Promise((t,e)=>{(o instanceof T.getEnv().Canvas||he(o))&&t(null);function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",a),s.currentTarget.removeEventListener("error",r),e(s))}function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",a),s.currentTarget.removeEventListener("error",r),t(s))}o.addEventListener("load",a),o.addEventListener("error",r)})}function Tr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let a=T.getEnv().createImageElement();a.onload=()=>t(a),a.onerror=e,a.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Bt(o){let{Image:t,Video:e}=T.getEnv();return o instanceof t?new S(o.naturalWidth,o.naturalHeight):o instanceof e?new S(o.videoWidth,o.videoHeight):new S(o.width,o.height)}function Rt({width:o,height:t}){let{createCanvasElement:e}=T.getEnv(),r=e();return r.width=o,r.height=t,r}function be(o,t){let{ImageData:e}=T.getEnv();if(!(o instanceof e)&&!he(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:a}=t||Bt(o),s=Rt({width:r,height:a});return o instanceof e?k(s).putImageData(o,0,0):k(s).drawImage(o,0,0,r,a),s}async function Pr(o,t){let e=t||T.getEnv().createCanvasElement(),[r,a,s]=o.shape.slice(R(o)?1:0),i=n.tidy(()=>o.as3D(r,a,s).toInt());return await n.browser.toPixels(i,e),i.dispose(),e}function Qe(o){let{Image:t,Canvas:e,Video:r}=T.getEnv();return o instanceof t||o instanceof e||o instanceof r}function wr(o,t,e=!1){let{Image:r,Canvas:a}=T.getEnv();if(!(o instanceof r||o instanceof a))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Rt({width:1,height:1});let s=Bt(o),i=t/Math.max(s.height,s.width),c=i*s.width,m=i*s.height,p=Rt({width:t,height:t}),u=o instanceof a?o:be(o),f=Math.abs(c-m)/2,l=e&&c0&&u.height>0&&k(p).drawImage(u,l,d,c,m),p}var rt=class{constructor(t,e=!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=e,this._batchSize=t.length,t.forEach((r,a)=>{if(K(r)){this._imageTensors[a]=r,this._inputDimensions[a]=r.shape;return}if(R(r)){let i=r.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[a]=r,this._inputDimensions[a]=r.shape.slice(1);return}let s=r instanceof T.getEnv().Canvas?r:be(r);this._canvases[a]=s,this._inputDimensions[a]=[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 U(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}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 e=this.getInputWidth(t),r=this.getInputHeight(t);return je({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,n.tidy(()=>{let r=U(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof n.Tensor){let c=R(i)?i:n.expandDims(i);return c=xr(c,e),(c.shape[1]!==t||c.shape[2]!==t)&&(c=n.image.resizeBilinear(c,[t,t],!1,!1)),c.as3D(t,t,3)}if(i instanceof T.getEnv().Canvas)return n.browser.fromPixels(wr(i,t,e));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return n.stack(r.map(s=>n.cast(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function M(o){if(o instanceof rt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=a=>Array.isArray(o)?` at input index ${a}:`:"",r=t.map(Wt);return r.forEach((a,s)=>{if(!Qe(a)&&!K(a)&&!R(a))throw typeof t[s]=="string"?new Error(`toNetInput -${e(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${e(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(R(a)){let i=a.shape[0];if(i!==1)throw new Error(`toNetInput -${e(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(r.map(a=>Qe(a)&&_r(a))),new rt(r,Array.isArray(o))}async function re(o,t){let{Canvas:e}=T.getEnv(),r=o;if(!(o instanceof e)){let i=await M(o);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let c=i.getInput(0);r=c instanceof e?c:await Pr(c)}let a=k(r);return t.map(i=>i instanceof E?i.forSize(r.width,r.height).box.floor():i).map(i=>i.clipAtImageBorders(r.width,r.height)).map(({x:i,y:c,width:m,height:p})=>{let u=Rt({width:m,height:p});return m>0&&p>0&&k(u).putImageData(a.getImageData(i,c,m,p),0,0),u})}async function oe(o,t){if(!K(o)&&!R(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(R(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return n.tidy(()=>{let[e,r,a]=o.shape.slice(R(o)?1:0);return t.map(c=>c instanceof E?c.forSize(r,e).box:c).map(c=>c.clipAtImageBorders(r,e)).filter(c=>c.width>0&&c.height>0).map(({x:c,y:m,width:p,height:u})=>n.slice3d(o.as3D(e,r,a),[m,c,0],[u,p,a]))})}async function mt(o,t){let{fetch:e}=T.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Mi(o){let t=await mt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return Tr(e)}async function Fr(o){return(await mt(o)).json()}async function Li(o){return new Float32Array(await(await mt(o)).arrayBuffer())}function Dr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=T.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function $i(o){let t=await mt(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return Dr(e)}function ge(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let a=o.split("/").filter(c=>c),s=o.endsWith(".json")?a[a.length-1]:e,i=r+(o.endsWith(".json")?a.slice(0,a.length-1):a).join("/");return i=o.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function Er(o,t){let{manifestUri:e,modelBaseUri:r}=ge(o,t),a=await Fr(e);return n.io.loadWeights(a,r)}function ji(o,t,e=!1){let{width:r,height:a}=e?Bt(t):t;return o.width=r,o.height=a,{width:r,height:a}}var I=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:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:a}=this.traversePropertyPath(t);r[a].dispose(),r[a]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof n.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof n.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=n.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}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 e=await Er(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=T.getEnv(),{manifestUri:r,modelBaseUri:a}=ge(t,this.getDefaultModelName()),s=p=>Promise.all(p.map(u=>e(u).then(f=>f.buffer))),i=n.io.weightsLoaderFactory(s),c=JSON.parse((await e(r)).toString()),m=await i(c,a);this.loadFromWeightMap(m)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=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:r,objProp:a}=e;if(!r||!a||!(r[a]instanceof n.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:a}}};function W(o,t,e){return n.tidy(()=>{let r=n.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=n.add(r,t.bias),r})}function xe(o,t,e=!1){return n.tidy(()=>{let r=n.relu(e?n.add(n.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):W(o,t.conv0,[2,2])),a=W(r,t.conv1,[1,1]),s=n.relu(n.add(r,a)),i=W(s,t.conv2,[1,1]);return n.relu(n.add(r,n.add(a,i)))})}function ne(o,t,e=!1,r=!0){return n.tidy(()=>{let a=n.relu(e?n.add(n.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):W(o,t.conv0,r?[2,2]:[1,1])),s=W(a,t.conv1,[1,1]),i=n.relu(n.add(a,s)),c=W(i,t.conv2,[1,1]),m=n.relu(n.add(a,n.add(s,c))),p=W(m,t.conv3,[1,1]);return n.relu(n.add(a,n.add(s,n.add(c,p))))})}function _t(o,t,e="same",r=!1){return n.tidy(()=>{let a=n.add(n.conv2d(o,t.filters,[1,1],e),t.bias);return r?n.relu(a):a})}function L(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}function $t(o,t){return(e,r,a,s)=>{let i=n.tensor4d(o(e*r*a*a),[a,a,e,r]),c=n.tensor1d(o(r));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:c}}}function ve(o,t){return(e,r,a)=>{let s=n.tensor2d(o(e*r),[e,r]),i=n.tensor1d(o(r));return t.push({paramPath:`${a}/weights`},{paramPath:`${a}/bias`}),{weights:s,bias:i}}}var ae=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function Ot(o,t){return(e,r,a)=>{let s=n.tensor4d(o(9*e),[3,3,e,1]),i=n.tensor4d(o(e*r),[1,1,e,r]),c=n.tensor1d(o(r));return t.push({paramPath:`${a}/depthwise_filter`},{paramPath:`${a}/pointwise_filter`},{paramPath:`${a}/bias`}),new ae(s,i,c)}}function Ht(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),a=o(`${t}/bias`,1);return new ae(e,r,a)}}function B(o,t){return(e,r,a)=>{let s=o[e];if(!xt(s,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${s}`);return t.push({originalPath:e,paramPath:a||e}),s}}function A(o){let t=o;function e(a){let s=t.slice(0,a);return t=t.slice(a),s}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function ye(o,t){let e=$t(o,t),r=Ot(o,t);function a(i,c,m,p=!1){let u=p?e(i,c,3,`${m}/conv0`):r(i,c,`${m}/conv0`),f=r(c,c,`${m}/conv1`),l=r(c,c,`${m}/conv2`);return{conv0:u,conv1:f,conv2:l}}function s(i,c,m,p=!1){let{conv0:u,conv1:f,conv2:l}=a(i,c,m,p),d=r(c,c,`${m}/conv3`);return{conv0:u,conv1:f,conv2:l,conv3:d}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Mr(o){let t=[],{extractWeights:e,getRemainingWeights:r}=A(o),{extractDenseBlock4Params:a}=ye(e,t),s=a(3,32,"dense0",!0),i=a(32,64,"dense1"),c=a(64,128,"dense2"),m=a(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:c,dense3:m}}}function _e(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function Te(o,t){let e=B(o,t),r=_e(e),a=Ht(e);function s(c,m=!1){let p=m?r(`${c}/conv0`):a(`${c}/conv0`),u=a(`${c}/conv1`),f=a(`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function i(c,m=!1){let p=m?r(`${c}/conv0`):a(`${c}/conv0`),u=a(`${c}/conv1`),f=a(`${c}/conv2`),l=a(`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function Cr(o){let t=[],{extractDenseBlock4Params:e}=Te(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return L(o,t),{params:r,paramMappings:t}}var zt=class extends I{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(112,!0),"float32"),s=X(r,[122.782,117.001,104.298]).div(255),i=ne(s,e.dense0,!0);return i=ne(i,e.dense1),i=ne(i,e.dense2),i=ne(i,e.dense3),i=n.avgPool(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await M(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Cr(t)}extractParams(t){return Mr(t)}};function se(o,t){return n.tidy(()=>n.add(n.matMul(o,t.weights),t.bias))}function Ir(o,t,e){let r=[],{extractWeights:a,getRemainingWeights:s}=A(o),c=ve(a,r)(t,e,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:r,params:{fc:c}}}function Nr(o){let t=[],e=B(o,t);function r(s){let i=e(`${s}/weights`,2),c=e(`${s}/bias`,1);return{weights:i,bias:c}}let a={fc:r("fc")};return L(o,t),{params:a,paramMappings:t}}function Pe(o){let t={},e={};return Object.keys(o).forEach(r=>{let a=r.startsWith("fc")?e:t;a[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var Vt=class extends I{constructor(e,r){super(e);this._faceFeatureExtractor=r}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return n.tidy(()=>{let a=e instanceof rt?this.faceFeatureExtractor.forwardInput(e):e;return se(a.as2D(a.shape[0],-1),r.fc)})}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:a}=this.extractClassifierParams(e);this._params=r,this._paramMappings=a}extractClassifierParams(e){return Ir(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:a}=Pe(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Nr(a)}extractParams(e){let r=this.getClassifierChannelsIn(),a=this.getClassifierChannelsOut(),s=a*r+a,i=e.slice(0,e.length-s),c=e.slice(e.length-s);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(c)}};var Sr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],pt=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}`);Sr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return Sr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var we=class extends Vt{constructor(t=new zt){super("FaceExpressionNet",t)}forwardInput(t){return n.tidy(()=>n.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await M(t))}async predictExpressions(t){let e=await M(t),r=await this.forwardInput(e),a=await Promise.all(n.unstack(r).map(async i=>{let c=i.dataSync();return i.dispose(),c}));r.dispose();let s=a.map(i=>new pt(i));return e.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Lr(o){return o.expressions instanceof pt}function tr(o,t){return{...o,...{expressions:t}}}function Wo(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof pt?s:Lr(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let m=i.asSortedArray().filter(f=>f.probability>e),p=tt(s)?s.detection.box.bottomLeft:r||new b(0,0);new et(m.map(f=>`${f.expression} (${vt(f.probability)})`),p).draw(o)})}function Yt(o){return tt(o)&&o.landmarks instanceof $&&o.unshiftedLandmarks instanceof $&&o.alignedRect instanceof E}function ko(o){let t=(c,m,p,u)=>Math.atan2(u-m,p-c)%Math.PI,e=c=>c*180/Math.PI,r={roll:void 0,pitch:void 0,yaw:void 0};if(!o||!o._positions||o._positions.length!==68)return r;let a=o._positions;r.roll=-t(a[36]._x,a[36]._y,a[45]._x,a[45]._y),r.pitch=t(0,Math.abs(a[0]._x-a[30]._x)/a[30]._x,Math.PI,Math.abs(a[16]._x-a[30]._x)/a[30]._x);let s=a.reduce((c,m)=>cc>m._y?c:m._y,-1/0);return r.yaw=Math.PI*(o._imgDims._height/(i-s)/1.4-1),r}function ie(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),a=r.align(),{imageDims:s}=o.detection,i=new E(o.detection.score,a.rescale(s.reverse()),s),c=ko(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:i,angle:c}}}var Fe=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=a||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=c||"rgba(255, 0, 255, 1)"}},De=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Fe(e)}draw(t){let e=k(t),{drawLines:r,drawPoints:a,lineWidth:s,lineColor:i,pointSize:c,pointColor:m}=this.options;if(r&&this.faceLandmarks instanceof Lt&&(e.strokeStyle=i,e.lineWidth=s,Z(e,this.faceLandmarks.getJawOutline()),Z(e,this.faceLandmarks.getLeftEyeBrow()),Z(e,this.faceLandmarks.getRightEyeBrow()),Z(e,this.faceLandmarks.getNose()),Z(e,this.faceLandmarks.getLeftEye(),!0),Z(e,this.faceLandmarks.getRightEye(),!0),Z(e,this.faceLandmarks.getMouth(),!0)),a){e.strokeStyle=m,e.fillStyle=m;let p=u=>{e.beginPath(),e.arc(u.x,u.y,c,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(p)}}};function Bo(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let a=r instanceof $?r:Yt(r)?r.landmarks:void 0;if(!a)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new De(a).draw(o)})}var Wr="1.7.4";function Oo(o,t){let e=$t(o,t),r=Ot(o,t);function a(i,c,m){let p=r(i,c,`${m}/separable_conv0`),u=r(c,c,`${m}/separable_conv1`),f=e(i,c,1,`${m}/expansion_conv`);return{separable_conv0:p,separable_conv1:u,expansion_conv:f}}function s(i,c){let m=r(i,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),u=r(i,i,`${c}/separable_conv2`);return{separable_conv0:m,separable_conv1:p,separable_conv2:u}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:a,extractMainBlockParams:s}}function kr(o,t){let e=[],{extractWeights:r,getRemainingWeights:a}=A(o),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:c,extractMainBlockParams:m}=Oo(r,e),p=s(3,32,3,"entry_flow/conv_in"),u=c(32,64,"entry_flow/reduction_block_0"),f=c(64,128,"entry_flow/reduction_block_1"),l={conv_in:p,reduction_block_0:u,reduction_block_1:f},d={};U(t,0,1).forEach(h=>{d[`main_block_${h}`]=m(128,`middle_flow/main_block_${h}`)});let g=c(128,256,"exit_flow/reduction_block"),_=i(256,512,"exit_flow/separable_conv"),F={reduction_block:g,separable_conv:_};if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:e,params:{entry_flow:l,middle_flow:d,exit_flow:F}}}function Ho(o,t){let e=B(o,t),r=_e(e),a=Ht(e);function s(c){let m=a(`${c}/separable_conv0`),p=a(`${c}/separable_conv1`),u=r(`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function i(c){let m=a(`${c}/separable_conv0`),p=a(`${c}/separable_conv1`),u=a(`${c}/separable_conv2`);return{separable_conv0:m,separable_conv1:p,separable_conv2:u}}return{extractConvParams:r,extractSeparableConvParams:a,extractReductionBlockParams:s,extractMainBlockParams:i}}function Br(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:a,extractReductionBlockParams:s,extractMainBlockParams:i}=Ho(o,e),c=r("entry_flow/conv_in"),m=s("entry_flow/reduction_block_0"),p=s("entry_flow/reduction_block_1"),u={conv_in:c,reduction_block_0:m,reduction_block_1:p},f={};U(t,0,1).forEach(_=>{f[`main_block_${_}`]=i(`middle_flow/main_block_${_}`)});let l=s("exit_flow/reduction_block"),d=a("exit_flow/separable_conv"),g={reduction_block:l,separable_conv:d};return L(o,e),{params:{entry_flow:u,middle_flow:f,exit_flow:g},paramMappings:e}}function Rr(o,t,e){return n.add(n.conv2d(o,t.filters,e,"same"),t.bias)}function er(o,t,e=!0){let r=e?n.relu(o):o;return r=W(r,t.separable_conv0,[1,1]),r=W(n.relu(r),t.separable_conv1,[1,1]),r=n.maxPool(r,[3,3],[2,2],"same"),r=n.add(r,Rr(o,t.expansion_conv,[2,2])),r}function zo(o,t){let e=W(n.relu(o),t.separable_conv0,[1,1]);return e=W(n.relu(e),t.separable_conv1,[1,1]),e=W(n.relu(e),t.separable_conv2,[1,1]),e=n.add(e,o),e}var Ee=class extends I{constructor(e){super("TinyXception");this._numMainBlocks=e}forwardInput(e){let{params:r}=this;if(!r)throw new Error("TinyXception - load model before inference");return n.tidy(()=>{let a=n.cast(e.toBatchTensor(112,!0),"float32"),i=X(a,[122.782,117.001,104.298]).div(255),c=n.relu(Rr(i,r.entry_flow.conv_in,[2,2]));return c=er(c,r.entry_flow.reduction_block_0,!1),c=er(c,r.entry_flow.reduction_block_1),U(this._numMainBlocks,0,1).forEach(m=>{c=zo(c,r.middle_flow[`main_block_${m}`])}),c=er(c,r.exit_flow.reduction_block),c=n.relu(W(c,r.exit_flow.separable_conv,[1,1])),c})}async forward(e){return this.forwardInput(await M(e))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(e){return Br(e,this._numMainBlocks)}extractParams(e){return kr(e,this._numMainBlocks)}};function $r(o){let t=[],{extractWeights:e,getRemainingWeights:r}=A(o),a=ve(e,t),s=a(512,1,"fc/age"),i=a(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function Or(o){let t=[],e=B(o,t);function r(s){let i=e(`${s}/weights`,2),c=e(`${s}/bias`,1);return{weights:i,bias:c}}let a={fc:{age:r("fc/age"),gender:r("fc/gender")}};return L(o,t),{params:a,paramMappings:t}}var rr=(e=>(e.FEMALE="female",e.MALE="male",e))(rr||{});var Me=class extends I{constructor(e=new Ee(2)){super("AgeGenderNet");this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return n.tidy(()=>{let a=e instanceof rt?this.faceFeatureExtractor.forwardInput(e):e,s=n.avgPool(a,[7,7],[2,2],"valid").as2D(a.shape[0],-1),i=se(s,r.fc.age).as1D(),c=se(s,r.fc.gender);return{age:i,gender:c}})}forwardInput(e){return n.tidy(()=>{let{age:r,gender:a}=this.runNet(e);return{age:r,gender:n.softmax(a)}})}async forward(e){return this.forwardInput(await M(e))}async predictAgeAndGender(e){let r=await M(e),a=await this.forwardInput(r),s=n.unstack(a.age),i=n.unstack(a.gender),c=s.map((p,u)=>({ageTensor:p,genderTensor:i[u]})),m=await Promise.all(c.map(async({ageTensor:p,genderTensor:u})=>{let f=p.dataSync()[0],l=u.dataSync()[0],d=l>.5,g=d?"male":"female",_=d?l:1-l;return p.dispose(),u.dispose(),{age:f,gender:g,genderProbability:_}}));return a.age.dispose(),a.gender.dispose(),r.isBatchInput?m:m[0]}getDefaultModelName(){return"age_gender_model"}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:a}=this.extractClassifierParams(e);this._params=r,this._paramMappings=a}extractClassifierParams(e){return $r(e)}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:a}=Pe(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Or(a)}extractParams(e){let a=e.slice(0,e.length-1539),s=e.slice(e.length-1539);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var Gt=class extends Vt{postProcess(t,e,r){let a=r.map(({width:i,height:c})=>{let m=e/Math.max(c,i);return{width:i*m,height:c*m}}),s=a.length;return n.tidy(()=>{let i=(f,l)=>n.stack([n.fill([68],f,"float32"),n.fill([68],l,"float32")],1).as2D(1,136).as1D(),c=(f,l)=>{let{width:d,height:g}=a[f];return l(d,g)?Math.abs(d-g)/2:0},m=f=>c(f,(l,d)=>lc(f,(l,d)=>di(m(l),p(l))))).div(n.stack(Array.from(Array(s),(f,l)=>i(a[l].width,a[l].height))))})}forwardInput(t){return n.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,a])=>({height:r,width:a})))})}async forward(t){return this.forwardInput(await M(t))}async detectLandmarks(t){let e=await M(t),r=n.tidy(()=>n.unstack(this.forwardInput(e))),a=await Promise.all(r.map(async(s,i)=>{let c=Array.from(s.dataSync()),m=c.filter((u,f)=>pe(f)),p=c.filter((u,f)=>!pe(f));return new Lt(Array(68).fill(0).map((u,f)=>new b(m[f],p[f])),{height:e.getInputHeight(i),width:e.getInputWidth(i)})}));return r.forEach(s=>s.dispose()),e.isBatchInput?a:a[0]}getClassifierChannelsOut(){return 136}};var jt=class extends Gt{constructor(t=new zt){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function Hr(o){let t=[],{extractDenseBlock3Params:e}=Te(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return L(o,t),{params:r,paramMappings:t}}function zr(o){let t=[],{extractWeights:e,getRemainingWeights:r}=A(o),{extractDenseBlock3Params:a}=ye(e,t),s=a(3,32,"dense0",!0),i=a(32,64,"dense1"),c=a(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:c}}}var Ce=class extends I{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(112,!0),"float32"),s=X(r,[122.782,117.001,104.298]).div(255),i=xe(s,e.dense0,!0);return i=xe(i,e.dense1),i=xe(i,e.dense2),i=n.avgPool(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await M(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Hr(t)}extractParams(t){return zr(t)}};var Ie=class extends Gt{constructor(t=new Ce){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Vr=class extends jt{};function Yr(o,t){return n.add(n.mul(o,t.weights),t.biases)}function or(o,t,e,r,a="same"){let{filters:s,bias:i}=t.conv,c=n.conv2d(o,s,e,a);return c=n.add(c,i),c=Yr(c,t.scale),r?n.relu(c):c}function Gr(o,t){return or(o,t,[1,1],!0)}function nr(o,t){return or(o,t,[1,1],!1)}function Ne(o,t){return or(o,t,[2,2],!0,"valid")}function Vo(o,t){function e(c,m,p){let u=o(c),f=u.length/(m*p*p);if(Ge(f))throw new Error(`depth has to be an integer: ${f}, weights.length: ${u.length}, numFilters: ${m}, filterSize: ${p}`);return n.tidy(()=>n.transpose(n.tensor4d(u,[m,f,p,p]),[2,3,1,0]))}function r(c,m,p,u){let f=e(c,m,p),l=n.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/bias`}),{filters:f,bias:l}}function a(c,m){let p=n.tensor1d(o(c)),u=n.tensor1d(o(c));return t.push({paramPath:`${m}/weights`},{paramPath:`${m}/biases`}),{weights:p,biases:u}}function s(c,m,p,u){let f=r(c,m,p,`${u}/conv`),l=a(m,`${u}/scale`);return{conv:f,scale:l}}function i(c,m,p,u,f=!1){let l=s((f?.5:1)*c,m,p,`${u}/conv1`),d=s(c,m,p,`${u}/conv2`);return{conv1:l,conv2:d}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function jr(o){let{extractWeights:t,getRemainingWeights:e}=A(o),r=[],{extractConvLayerParams:a,extractResidualLayerParams:s}=Vo(t,r),i=a(4704,32,7,"conv32_down"),c=s(9216,32,3,"conv32_1"),m=s(9216,32,3,"conv32_2"),p=s(9216,32,3,"conv32_3"),u=s(36864,64,3,"conv64_down",!0),f=s(36864,64,3,"conv64_1"),l=s(36864,64,3,"conv64_2"),d=s(36864,64,3,"conv64_3"),g=s(147456,128,3,"conv128_down",!0),_=s(147456,128,3,"conv128_1"),F=s(147456,128,3,"conv128_2"),h=s(589824,256,3,"conv256_down",!0),y=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),D=s(589824,256,3,"conv256_down_out"),N=n.tidy(()=>n.transpose(n.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:i,conv32_1:c,conv32_2:m,conv32_3:p,conv64_down:u,conv64_1:f,conv64_2:l,conv64_3:d,conv128_down:g,conv128_1:_,conv128_2:F,conv256_down:h,conv256_1:y,conv256_2:x,conv256_down_out:D,fc:N},paramMappings:r}}function Yo(o,t){let e=B(o,t);function r(i){let c=e(`${i}/scale/weights`,1),m=e(`${i}/scale/biases`,1);return{weights:c,biases:m}}function a(i){let c=e(`${i}/conv/filters`,4),m=e(`${i}/conv/bias`,1),p=r(i);return{conv:{filters:c,bias:m},scale:p}}function s(i){return{conv1:a(`${i}/conv1`),conv2:a(`${i}/conv2`)}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function Ur(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Yo(o,t),a=e("conv32_down"),s=r("conv32_1"),i=r("conv32_2"),c=r("conv32_3"),m=r("conv64_down"),p=r("conv64_1"),u=r("conv64_2"),f=r("conv64_3"),l=r("conv128_down"),d=r("conv128_1"),g=r("conv128_2"),_=r("conv256_down"),F=r("conv256_1"),h=r("conv256_2"),y=r("conv256_down_out"),{fc:x}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Ye(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let D={conv32_down:a,conv32_1:s,conv32_2:i,conv32_3:c,conv64_down:m,conv64_1:p,conv64_2:u,conv64_3:f,conv128_down:l,conv128_1:d,conv128_2:g,conv256_down:_,conv256_1:F,conv256_2:h,conv256_down_out:y,fc:x};return L(o,t),{params:D,paramMappings:t}}function j(o,t){let e=Gr(o,t.conv1);return e=nr(e,t.conv2),e=n.add(e,o),e=n.relu(e),e}function ce(o,t){let e=Ne(o,t.conv1);e=nr(e,t.conv2);let r=n.avgPool(o,2,2,"valid"),a=n.zeros(r.shape),s=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let c=[...e.shape];c[1]=1;let m=n.zeros(c);e=n.concat([e,m],1);let p=[...e.shape];p[2]=1;let u=n.zeros(p);e=n.concat([e,u],2)}return r=s?n.concat([r,a],3):r,e=n.add(r,e),e=n.relu(e),e}var Ut=class extends I{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(150,!0),"float32"),s=X(r,[122.782,117.001,104.298]).div(255),i=Ne(s,e.conv32_down);i=n.maxPool(i,3,2,"valid"),i=j(i,e.conv32_1),i=j(i,e.conv32_2),i=j(i,e.conv32_3),i=ce(i,e.conv64_down),i=j(i,e.conv64_1),i=j(i,e.conv64_2),i=j(i,e.conv64_3),i=ce(i,e.conv128_down),i=j(i,e.conv128_1),i=j(i,e.conv128_2),i=ce(i,e.conv256_down),i=j(i,e.conv256_1),i=j(i,e.conv256_2),i=ce(i,e.conv256_down_out);let c=i.mean([1,2]);return n.matMul(c,e.fc)})}async forward(t){return this.forwardInput(await M(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 e=await M(t),r=n.tidy(()=>n.unstack(this.forwardInput(e))),a=await Promise.all(r.map(i=>i.data()));return r.forEach(i=>i.dispose()),e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Ur(t)}extractParams(t){return jr(t)}};function vf(o){let t=new Ut;return t.extractWeights(o),t}function ar(o,t){return{...o,...{descriptor:t}}}function Pf(o){return typeof o.age=="number"}function sr(o,t){return{...o,...{age:t}}}function Ef(o){return(o.gender==="male"||o.gender==="female")&&It(o.genderProbability)}function ir(o,t,e){return{...o,...{gender:t,genderProbability:e}}}function Go(o,t){function e(m,p){let u=n.tensor4d(o(9*m),[3,3,m,1]),f=n.tensor1d(o(m)),l=n.tensor1d(o(m)),d=n.tensor1d(o(m)),g=n.tensor1d(o(m));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/batch_norm_scale`},{paramPath:`${p}/batch_norm_offset`},{paramPath:`${p}/batch_norm_mean`},{paramPath:`${p}/batch_norm_variance`}),{filters:u,batch_norm_scale:f,batch_norm_offset:l,batch_norm_mean:d,batch_norm_variance:g}}function r(m,p,u,f,l){let d=n.tensor4d(o(m*p*u*u),[u,u,m,p]),g=n.tensor1d(o(p));return t.push({paramPath:`${f}/filters`},{paramPath:`${f}/${l?"batch_norm_offset":"bias"}`}),{filters:d,bias:g}}function a(m,p,u,f){let{filters:l,bias:d}=r(m,p,u,f,!0);return{filters:l,batch_norm_offset:d}}function s(m,p,u){let f=e(m,`${u}/depthwise_conv`),l=a(m,p,1,`${u}/pointwise_conv`);return{depthwise_conv:f,pointwise_conv:l}}function i(){let m=a(3,32,3,"mobilenetv1/conv_0"),p=s(32,64,"mobilenetv1/conv_1"),u=s(64,128,"mobilenetv1/conv_2"),f=s(128,128,"mobilenetv1/conv_3"),l=s(128,256,"mobilenetv1/conv_4"),d=s(256,256,"mobilenetv1/conv_5"),g=s(256,512,"mobilenetv1/conv_6"),_=s(512,512,"mobilenetv1/conv_7"),F=s(512,512,"mobilenetv1/conv_8"),h=s(512,512,"mobilenetv1/conv_9"),y=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),D=s(512,1024,"mobilenetv1/conv_12"),N=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:m,conv_1:p,conv_2:u,conv_3:f,conv_4:l,conv_5:d,conv_6:g,conv_7:_,conv_8:F,conv_9:h,conv_10:y,conv_11:x,conv_12:D,conv_13:N}}function c(){let m=a(1024,256,1,"prediction_layer/conv_0"),p=a(256,512,3,"prediction_layer/conv_1"),u=a(512,128,1,"prediction_layer/conv_2"),f=a(128,256,3,"prediction_layer/conv_3"),l=a(256,128,1,"prediction_layer/conv_4"),d=a(128,256,3,"prediction_layer/conv_5"),g=a(256,64,1,"prediction_layer/conv_6"),_=a(64,128,3,"prediction_layer/conv_7"),F=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),h=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),y=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),D=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),N=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),Y=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),q=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),O=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),at=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),st=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),it=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:m,conv_1:p,conv_2:u,conv_3:f,conv_4:l,conv_5:d,conv_6:g,conv_7:_,box_predictor_0:{box_encoding_predictor:F,class_predictor:h},box_predictor_1:{box_encoding_predictor:y,class_predictor:x},box_predictor_2:{box_encoding_predictor:D,class_predictor:N},box_predictor_3:{box_encoding_predictor:Y,class_predictor:q},box_predictor_4:{box_encoding_predictor:O,class_predictor:at},box_predictor_5:{box_encoding_predictor:st,class_predictor:it}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:c}}function Xr(o){let t=[],{extractWeights:e,getRemainingWeights:r}=A(o),{extractMobilenetV1Params:a,extractPredictionLayerParams:s}=Go(e,t),i=a(),c=s(),p={extra_dim:n.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:i,prediction_layer:c,output_layer:p},paramMappings:t}}function jo(o,t){let e=B(o,t);function r(p,u,f){let l=e(`${p}/Conv2d_${u}_pointwise/weights`,4,`${f}/filters`),d=e(`${p}/Conv2d_${u}_pointwise/convolution_bn_offset`,1,`${f}/batch_norm_offset`);return{filters:l,batch_norm_offset:d}}function a(p){let u=`mobilenetv1/conv_${p}`,f=`MobilenetV1/Conv2d_${p}_depthwise`,l=`${u}/depthwise_conv`,d=`${u}/pointwise_conv`,g=e(`${f}/depthwise_weights`,4,`${l}/filters`),_=e(`${f}/BatchNorm/gamma`,1,`${l}/batch_norm_scale`),F=e(`${f}/BatchNorm/beta`,1,`${l}/batch_norm_offset`),h=e(`${f}/BatchNorm/moving_mean`,1,`${l}/batch_norm_mean`),y=e(`${f}/BatchNorm/moving_variance`,1,`${l}/batch_norm_variance`);return{depthwise_conv:{filters:g,batch_norm_scale:_,batch_norm_offset:F,batch_norm_mean:h,batch_norm_variance:y},pointwise_conv:r("MobilenetV1",p,d)}}function s(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:a(1),conv_2:a(2),conv_3:a(3),conv_4:a(4),conv_5:a(5),conv_6:a(6),conv_7:a(7),conv_8:a(8),conv_9:a(9),conv_10:a(10),conv_11:a(11),conv_12:a(12),conv_13:a(13)}}function i(p,u){let f=e(`${p}/weights`,4,`${u}/filters`),l=e(`${p}/biases`,1,`${u}/bias`);return{filters:f,bias:l}}function c(p){let u=i(`Prediction/BoxPredictor_${p}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${p}/box_encoding_predictor`),f=i(`Prediction/BoxPredictor_${p}/ClassPredictor`,`prediction_layer/box_predictor_${p}/class_predictor`);return{box_encoding_predictor:u,class_predictor:f}}function m(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:c(0),box_predictor_1:c(1),box_predictor_2:c(2),box_predictor_3:c(3),box_predictor_4:c(4),box_predictor_5:c(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:m}}function Jr(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=jo(o,t),a=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!K(a))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${a}`);let s={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:a}};return L(o,t),{params:s,paramMappings:t}}function H(o,t,e){return n.tidy(()=>{let r=n.conv2d(o,t.filters,e,"same");return r=n.add(r,t.batch_norm_offset),n.clipByValue(r,0,6)})}var Uo=.0010000000474974513;function Xo(o,t,e){return n.tidy(()=>{let r=n.depthwiseConv2d(o,t.filters,e,"same");return r=n.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Uo),n.clipByValue(r,0,6)})}function Jo(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function qr(o,t){return n.tidy(()=>{let e,r=H(o,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 c=i+1,m=Jo(c);r=Xo(r,s.depthwise_conv,m),r=H(r,s.pointwise_conv,[1,1]),c===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function qo(o,t,e){let r=o.arraySync(),a=Math.min(r[t][0],r[t][2]),s=Math.min(r[t][1],r[t][3]),i=Math.max(r[t][0],r[t][2]),c=Math.max(r[t][1],r[t][3]),m=Math.min(r[e][0],r[e][2]),p=Math.min(r[e][1],r[e][3]),u=Math.max(r[e][0],r[e][2]),f=Math.max(r[e][1],r[e][3]),l=(i-a)*(c-s),d=(u-m)*(f-p);if(l<=0||d<=0)return 0;let g=Math.max(a,m),_=Math.max(s,p),F=Math.min(i,u),h=Math.min(c,f),y=Math.max(F-g,0)*Math.max(h-_,0);return y/(l+d-y)}function Zr(o,t,e,r,a){let s=o.shape[0],i=Math.min(e,s),c=t.map((u,f)=>({score:u,boxIndex:f})).filter(u=>u.score>a).sort((u,f)=>f.score-u.score),m=u=>u<=r?1:0,p=[];return c.forEach(u=>{if(p.length>=i)return;let f=u.score;for(let l=p.length-1;l>=0;--l){let d=qo(o,u.boxIndex,p[l]);if(d!==0&&(u.score*=m(d),u.score<=a))break}f===u.score&&p.push(u.boxIndex)}),p}function Zo(o){let t=n.unstack(n.transpose(o,[1,0])),e=[n.sub(t[2],t[0]),n.sub(t[3],t[1])],r=[n.add(t[0],n.div(e[0],2)),n.add(t[1],n.div(e[1],2))];return{sizes:e,centers:r}}function Ko(o,t){let{sizes:e,centers:r}=Zo(o),a=n.unstack(n.transpose(t,[1,0])),s=n.div(n.mul(n.exp(n.div(a[2],5)),e[0]),2),i=n.add(n.mul(n.div(a[0],10),e[0]),r[0]),c=n.div(n.mul(n.exp(n.div(a[3],5)),e[1]),2),m=n.add(n.mul(n.div(a[1],10),e[1]),r[1]);return n.transpose(n.stack([n.sub(i,s),n.sub(m,c),n.add(i,s),n.add(m,c)]),[1,0])}function Kr(o,t,e){return n.tidy(()=>{let r=o.shape[0],a=Ko(n.reshape(n.tile(e.extra_dim,[r,1,1]),[-1,4]),n.reshape(o,[-1,4]));a=n.reshape(a,[r,a.shape[0]/r,4]);let s=n.sigmoid(n.slice(t,[0,0,1],[-1,-1,-1])),i=n.slice(s,[0,0,0],[-1,-1,1]);i=n.reshape(i,[r,i.shape[1]]);let c=n.unstack(a),m=n.unstack(i);return{boxes:c,scores:m}})}function Tt(o,t){return n.tidy(()=>{let e=o.shape[0],r=n.reshape(_t(o,t.box_encoding_predictor),[e,-1,1,4]),a=n.reshape(_t(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:a}})}function Qr(o,t,e){return n.tidy(()=>{let r=H(o,e.conv_0,[1,1]),a=H(r,e.conv_1,[2,2]),s=H(a,e.conv_2,[1,1]),i=H(s,e.conv_3,[2,2]),c=H(i,e.conv_4,[1,1]),m=H(c,e.conv_5,[2,2]),p=H(m,e.conv_6,[1,1]),u=H(p,e.conv_7,[2,2]),f=Tt(t,e.box_predictor_0),l=Tt(o,e.box_predictor_1),d=Tt(a,e.box_predictor_2),g=Tt(i,e.box_predictor_3),_=Tt(m,e.box_predictor_4),F=Tt(u,e.box_predictor_5),h=n.concat([f.boxPredictionEncoding,l.boxPredictionEncoding,d.boxPredictionEncoding,g.boxPredictionEncoding,_.boxPredictionEncoding,F.boxPredictionEncoding],1),y=n.concat([f.classPrediction,l.classPrediction,d.classPrediction,g.classPrediction,_.classPrediction,F.classPrediction],1);return{boxPredictions:h,classPredictions:y}})}var z=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||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 Pt=class extends I{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(512,!1),"float32"),a=n.sub(n.div(r,127.5),1),s=qr(a,e.mobilenetv1),{boxPredictions:i,classPredictions:c}=Qr(s.out,s.conv11,e.prediction_layer);return Kr(i,c,e.output_layer)})}async forward(t){return this.forwardInput(await M(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:a}=new z(e),s=await M(t),{boxes:i,scores:c}=this.forwardInput(s),m=i[0],p=c[0];for(let x=1;x{let[D,N]=[Math.max(0,h[x][0]),Math.min(1,h[x][2])].map(O=>O*F),[Y,q]=[Math.max(0,h[x][1]),Math.min(1,h[x][3])].map(O=>O*_);return new E(u[x],new St(Y,D,q-Y,N-D),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return m.dispose(),p.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Jr(t)}extractParams(t){return Xr(t)}};function Qo(o){let t=new Pt;return t.extractWeights(o),t}function vl(o){return Qo(o)}var to=class extends Pt{};var eo=.4,ro=[new b(.738768,.874946),new b(2.42204,2.65704),new b(4.30971,7.04493),new b(10.246,4.59428),new b(12.6868,11.8741)],oo=[new b(1.603231,2.094468),new b(6.041143,7.080126),new b(2.882459,3.518061),new b(4.266906,5.178857),new b(9.041765,10.66308)],no=[117.001,114.697,97.404],ao="tiny_yolov2_model",so="tiny_yolov2_separable_conv_model";var Se=o=>typeof o=="number";function io(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!Se(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>Se(t.x)&&Se(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(Se)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}function Xt(o){return n.tidy(()=>{let t=n.mul(o,n.scalar(.10000000149011612));return n.add(n.relu(n.sub(o,t)),t)})}function ot(o,t){return n.tidy(()=>{let e=n.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=n.conv2d(e,t.conv.filters,[1,1],"valid"),e=n.sub(e,t.bn.sub),e=n.mul(e,t.bn.truediv),e=n.add(e,t.conv.bias),Xt(e)})}function nt(o,t){return n.tidy(()=>{let e=n.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=n.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=n.add(e,t.bias),Xt(e)})}function tn(o,t){let e=$t(o,t);function r(i,c){let m=n.tensor1d(o(i)),p=n.tensor1d(o(i));return t.push({paramPath:`${c}/sub`},{paramPath:`${c}/truediv`}),{sub:m,truediv:p}}function a(i,c,m){let p=e(i,c,3,`${m}/conv`),u=r(c,`${m}/bn`);return{conv:p,bn:u}}let s=Ot(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function co(o,t,e,r){let{extractWeights:a,getRemainingWeights:s}=A(o),i=[],{extractConvParams:c,extractConvWithBatchNormParams:m,extractSeparableConvParams:p}=tn(a,i),u;if(t.withSeparableConvs){let[f,l,d,g,_,F,h,y,x]=r,D=t.isFirstLayerConv2d?c(f,l,3,"conv0"):p(f,l,"conv0"),N=p(l,d,"conv1"),Y=p(d,g,"conv2"),q=p(g,_,"conv3"),O=p(_,F,"conv4"),at=p(F,h,"conv5"),st=y?p(h,y,"conv6"):void 0,it=x?p(y,x,"conv7"):void 0,gt=c(x||y||h,5*e,1,"conv8");u={conv0:D,conv1:N,conv2:Y,conv3:q,conv4:O,conv5:at,conv6:st,conv7:it,conv8:gt}}else{let[f,l,d,g,_,F,h,y,x]=r,D=m(f,l,"conv0"),N=m(l,d,"conv1"),Y=m(d,g,"conv2"),q=m(g,_,"conv3"),O=m(_,F,"conv4"),at=m(F,h,"conv5"),st=m(h,y,"conv6"),it=m(y,x,"conv7"),gt=c(x,5*e,1,"conv8");u={conv0:D,conv1:N,conv2:Y,conv3:q,conv4:O,conv5:at,conv6:st,conv7:it,conv8:gt}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:u,paramMappings:i}}function en(o,t){let e=B(o,t);function r(c){let m=e(`${c}/sub`,1),p=e(`${c}/truediv`,1);return{sub:m,truediv:p}}function a(c){let m=e(`${c}/filters`,4),p=e(`${c}/bias`,1);return{filters:m,bias:p}}function s(c){let m=a(`${c}/conv`),p=r(`${c}/bn`);return{conv:m,bn:p}}let i=Ht(e);return{extractConvParams:a,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function mo(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}=en(o,e),i;if(t.withSeparableConvs){let c=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?r("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:c>7?s("conv6"):void 0,conv7:c>8?s("conv7"):void 0,conv8:r("conv8")}}else i={conv0:a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:a("conv6"),conv7:a("conv7"),conv8:r("conv8")};return L(o,e),{params:i,paramMappings:e}}var J=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.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 cr=class extends I{constructor(e){super("TinyYolov2");io(e),this._config=e}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(e,r){let a=ot(e,r.conv0);return a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv1),a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv2),a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv3),a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv4),a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv5),a=n.maxPool(a,[2,2],[1,1],"same"),a=ot(a,r.conv6),a=ot(a,r.conv7),_t(a,r.conv8,"valid",!1)}runMobilenet(e,r){let a=this.config.isFirstLayerConv2d?Xt(_t(e,r.conv0,"valid",!1)):nt(e,r.conv0);return a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv1),a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv2),a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv3),a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv4),a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv5),a=n.maxPool(a,[2,2],[1,1],"same"),a=r.conv6?nt(a,r.conv6):a,a=r.conv7?nt(a,r.conv7):a,_t(a,r.conv8,"valid",!1)}forwardInput(e,r){let{params:a}=this;if(!a)throw new Error("TinyYolov2 - load model before inference");return n.tidy(()=>{let s=n.cast(e.toBatchTensor(r,!1),"float32");return s=this.config.meanRgb?X(s,this.config.meanRgb):s,s=s.div(255),this.config.withSeparableConvs?this.runMobilenet(s,a):this.runTinyYolov2(s,a)})}async forward(e,r){return this.forwardInput(await M(e),r)}async detect(e,r={}){let{inputSize:a,scoreThreshold:s}=new J(r),i=await M(e),c=await this.forwardInput(i,a),m=n.tidy(()=>n.unstack(c)[0].expandDims()),p={width:i.getInputWidth(0),height:i.getInputHeight(0)},u=await this.extractBoxes(m,i.getReshapedInputDimensions(0),s);c.dispose(),m.dispose();let f=u.map(h=>h.box),l=u.map(h=>h.score),d=u.map(h=>h.classScore),g=u.map(h=>this.config.classes[h.label]);return gr(f.map(h=>h.rescale(a)),l,this.config.iouThreshold,!0).map(h=>new ct(l[h],d[h],g[h],f[h],p))}getDefaultModelName(){return""}extractParamsFromWeightMap(e){return mo(e,this.config)}extractParams(e){let r=this.config.filterSizes||cr.DEFAULT_FILTER_SIZES,a=r?r.length:void 0;if(a!==7&&a!==8&&a!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${a} filterSizes in config`);return co(e,this.config,this.boxEncodingSize,r)}async extractBoxes(e,r,a){let{width:s,height:i}=r,c=Math.max(s,i),m=c/s,p=c/i,u=e.shape[1],f=this.config.anchors.length,[l,d,g]=n.tidy(()=>{let y=e.reshape([u,u,f,this.boxEncodingSize]),x=y.slice([0,0,0,0],[u,u,f,4]),D=y.slice([0,0,0,4],[u,u,f,1]),N=this.withClassScores?n.softmax(y.slice([0,0,0,5],[u,u,f,this.config.classes.length]),3):n.scalar(0);return[x,D,N]}),_=[],F=await d.array(),h=await l.array();for(let y=0;ya){let Y=(x+fe(h[y][x][D][0]))/u*m,q=(y+fe(h[y][x][D][1]))/u*p,O=Math.exp(h[y][x][D][2])*this.config.anchors[D].x/u*m,at=Math.exp(h[y][x][D][3])*this.config.anchors[D].y/u*p,st=Y-O/2,it=q-at/2,gt={row:y,col:x,anchor:D},{classScore:pr,label:ur}=this.withClassScores?await this.extractPredictedClass(g,gt):{classScore:1,label:0};_.push({box:new Nt(st,it,st+O,it+at),score:N,classScore:N*pr,label:ur,...gt})}}return l.dispose(),d.dispose(),g.dispose(),_}async extractPredictedClass(e,r){let{row:a,col:s,anchor:i}=r,c=await e.array();return Array(this.config.classes.length).fill(0).map((m,p)=>c[a][s][i][p]).map((m,p)=>({classScore:m,label:p})).reduce((m,p)=>m.classScore>p.classScore?m:p)}},wt=cr;wt.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Jt=class extends wt{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:eo,classes:["face"],...t?{anchors:oo,meanRgb:no}:{anchors:ro,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(a=>new E(a.score,a.relativeBox,{width:a.imageWidth,height:a.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?so:ao}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function pd(o,t=!0){let e=new Jt(t);return e.extractWeights(o),e}var Le=class extends J{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var V=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function Ft(o,t,e,r,a=({alignedRect:s})=>s){let s=o.map(m=>Yt(m)?a(m):m.detection),i=r||(t instanceof n.Tensor?await oe(t,s):await re(t,s)),c=await e(i);return i.forEach(m=>m instanceof n.Tensor&&m.dispose()),c}async function qt(o,t,e,r,a){return Ft([o],t,async s=>e(s[0]),r,a)}var po=.4,uo=[new b(1.603231,2.094468),new b(6.041143,7.080126),new b(2.882459,3.518061),new b(4.266906,5.178857),new b(9.041765,10.66308)],fo=[117.001,114.697,97.404];var Zt=class extends wt{constructor(){let t={withSeparableConvs:!0,iouThreshold:po,classes:["face"],anchors:uo,meanRgb:fo,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(a=>new E(a.score,a.relativeBox,{width:a.imageWidth,height:a.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new Pt,tinyFaceDetector:new Zt,tinyYolov2:new Jt,faceLandmark68Net:new jt,faceLandmark68TinyNet:new Ie,faceRecognitionNet:new Ut,faceExpressionNet:new we,ageGenderNet:new Me},rn=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),Od=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),Hd=(o,t)=>P.tinyYolov2.locateFaces(o,t),on=o=>P.faceLandmark68Net.detectLandmarks(o),zd=o=>P.faceLandmark68TinyNet.detectLandmarks(o),Vd=o=>P.faceRecognitionNet.computeFaceDescriptor(o),Yd=o=>P.faceExpressionNet.predictExpressions(o),Gd=o=>P.ageGenderNet.predictAgeAndGender(o),nn=o=>P.ssdMobilenetv1.load(o),jd=o=>P.tinyFaceDetector.load(o),Ud=o=>P.tinyYolov2.load(o),Xd=o=>P.faceLandmark68Net.load(o),Jd=o=>P.faceLandmark68TinyNet.load(o),qd=o=>P.faceRecognitionNet.load(o),Zd=o=>P.faceExpressionNet.load(o),Kd=o=>P.ageGenderNet.load(o),Qd=nn,th=rn,eh=on;var Ae=class extends V{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.extractedFaces=a}},Dt=class extends Ae{async run(){let t=await this.parentTask,e=await Ft(t,this.input,async r=>Promise.all(r.map(a=>P.faceExpressionNet.predictExpressions(a))),this.extractedFaces);return t.map((r,a)=>tr(r,e[a]))}withAgeAndGender(){return new Mt(this,this.input)}},Et=class extends Ae{async run(){let t=await this.parentTask;if(!t)return;let e=await qt(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return tr(t,e)}withAgeAndGender(){return new Ct(this,this.input)}},ut=class extends Dt{withAgeAndGender(){return new lt(this,this.input)}withFaceDescriptors(){return new ht(this,this.input)}},ft=class extends Et{withAgeAndGender(){return new dt(this,this.input)}withFaceDescriptor(){return new bt(this,this.input)}};var We=class extends V{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.extractedFaces=a}},Mt=class extends We{async run(){let t=await this.parentTask,e=await Ft(t,this.input,async r=>Promise.all(r.map(a=>P.ageGenderNet.predictAgeAndGender(a))),this.extractedFaces);return t.map((r,a)=>{let{age:s,gender:i,genderProbability:c}=e[a];return sr(ir(r,i,c),s)})}withFaceExpressions(){return new Dt(this,this.input)}},Ct=class extends We{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:a}=await qt(t,this.input,s=>P.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return sr(ir(t,r,a),e)}withFaceExpressions(){return new Et(this,this.input)}},lt=class extends Mt{withFaceExpressions(){return new ut(this,this.input)}withFaceDescriptors(){return new ht(this,this.input)}},dt=class extends Ct{withFaceExpressions(){return new ft(this,this.input)}withFaceDescriptor(){return new bt(this,this.input)}};var ke=class extends V{constructor(e,r){super();this.parentTask=e;this.input=r}},ht=class extends ke{async run(){let t=await this.parentTask;return(await Ft(t,this.input,r=>Promise.all(r.map(a=>P.faceRecognitionNet.computeFaceDescriptor(a))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,a)=>ar(t[a],r))}withFaceExpressions(){return new ut(this,this.input)}withAgeAndGender(){return new lt(this,this.input)}},bt=class extends ke{async run(){let t=await this.parentTask;if(!t)return;let e=await qt(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return ar(t,e)}withFaceExpressions(){return new ft(this,this.input)}withAgeAndGender(){return new dt(this,this.input)}};var Be=class extends V{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=a}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},Re=class extends Be{async run(){let t=await this.parentTask,e=t.map(i=>i.detection),r=this.input instanceof n.Tensor?await oe(this.input,e):await re(this.input,e),a=await Promise.all(r.map(i=>this.landmarkNet.detectLandmarks(i)));return r.forEach(i=>i instanceof n.Tensor&&i.dispose()),t.filter((i,c)=>a[c]).map((i,c)=>ie(i,a[c]))}withFaceExpressions(){return new ut(this,this.input)}withAgeAndGender(){return new lt(this,this.input)}withFaceDescriptors(){return new ht(this,this.input)}},$e=class extends Be{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof n.Tensor?await oe(this.input,[e]):await re(this.input,[e]),a=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(s=>s instanceof n.Tensor&&s.dispose()),ie(t,a)}withFaceExpressions(){return new ft(this,this.input)}withAgeAndGender(){return new dt(this,this.input)}withFaceDescriptor(){return new bt(this,this.input)}};var Oe=class extends V{constructor(e,r=new z){super();this.input=e;this.options=r}},me=class extends Oe{async run(){let{input:t,options:e}=this,r;if(e instanceof Le)r=P.tinyFaceDetector.locateFaces(t,e);else if(e instanceof z)r=P.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof J)r=P.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise((t,e)=>{this.run().then(r=>t(r.map(a=>At({},a)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new Re(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Dt(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Mt(this.runAndExtendWithFaceDetections(),this.input)}},He=class extends Oe{async run(){let t=await new me(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?At({},e):void 0)})}withFaceLandmarks(t=!1){return new $e(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Et(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Ct(this.runAndExtendWithFaceDetection(),this.input)}};function Kh(o,t=new z){return new He(o,t)}function mr(o,t=new z){return new me(o,t)}async function an(o,t){return mr(o,new z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function nb(o,t={}){return mr(o,new J(t)).withFaceLandmarks().withFaceDescriptors()}var ab=an;function lo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((a,s)=>a-r[s]).reduce((a,s)=>a+s*s,0))}var ze=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let a=1,s=()=>`person ${a++}`;this._labeledDescriptors=r.map(i=>{if(i instanceof Q)return i;if(i instanceof Float32Array)return new Q(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new Q(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,e){return e.map(r=>lo(r,t)).reduce((r,a)=>r+a,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Kt(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>Q.fromJSON(r));return new ze(e,t.distanceThreshold)}};function Pb(o){let t=new Zt;return t.extractWeights(o),t}function sn(o,t){let{width:e,height:r}=new S(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(a=>sn(a,{width:e,height:r}));if(Yt(o)){let a=o.detection.forSize(e,r),s=o.unshiftedLandmarks.forSize(a.box.width,a.box.height);return ie(At(o,a),s)}return tt(o)?At(o,o.detection.forSize(e,r)):o instanceof $||o instanceof E?o.forSize(e,r):o}var Ab=Wr;export{Me as AgeGenderNet,Nt as BoundingBox,w as Box,V as ComposableTask,ht as ComputeAllFaceDescriptorsTask,ke as ComputeFaceDescriptorsTaskBase,bt as ComputeSingleFaceDescriptorTask,Re as DetectAllFaceLandmarksTask,me as DetectAllFacesTask,Be as DetectFaceLandmarksTaskBase,Oe as DetectFacesTaskBase,$e as DetectSingleFaceLandmarksTask,He as DetectSingleFaceTask,S as Dimensions,Sr as FACE_EXPRESSION_LABELS,E as FaceDetection,to as FaceDetectionNet,we as FaceExpressionNet,pt as FaceExpressions,jt as FaceLandmark68Net,Ie as FaceLandmark68TinyNet,Vr as FaceLandmarkNet,$ as FaceLandmarks,vr as FaceLandmarks5,Lt as FaceLandmarks68,Kt as FaceMatch,ze as FaceMatcher,Ut as FaceRecognitionNet,rr as Gender,Qt as LabeledBox,Q as LabeledFaceDescriptors,rt as NetInput,I as NeuralNetwork,ct as ObjectDetection,b as Point,yr as PredictedBox,St as Rect,Pt as SsdMobilenetv1,z as SsdMobilenetv1Options,Zt as TinyFaceDetector,Le as TinyFaceDetectorOptions,Jt as TinyYolov2,J as TinyYolov2Options,ab as allFaces,an as allFacesSsdMobilenetv1,nb as allFacesTinyYolov2,_r as awaitMediaLoaded,Tr as bufferToImage,Vd as computeFaceDescriptor,Rt as createCanvas,be as createCanvasFromMedia,vl as createFaceDetectionNet,vf as createFaceRecognitionNet,Qo as createSsdMobilenetv1,Pb as createTinyFaceDetector,pd as createTinyYolov2,mr as detectAllFaces,on as detectFaceLandmarks,zd as detectFaceLandmarksTiny,eh as detectLandmarks,Kh as detectSingleFace,Ar as draw,T as env,lo as euclideanDistance,sr as extendWithAge,ar as extendWithFaceDescriptor,At as extendWithFaceDetection,tr as extendWithFaceExpressions,ie as extendWithFaceLandmarks,ir as extendWithGender,oe as extractFaceTensors,re as extractFaces,Mi as fetchImage,Fr as fetchJson,Li as fetchNetWeights,mt as fetchOrThrow,$i as fetchVideo,k as getContext2dOrThrow,Bt as getMediaDimensions,Pr as imageTensorToCanvas,wr as imageToSquare,Vn as inverseSigmoid,hr as iou,Qe as isMediaElement,he as isMediaLoaded,Pf as isWithAge,tt as isWithFaceDetection,Lr as isWithFaceExpressions,Yt as isWithFaceLandmarks,Ef as isWithGender,Kd as loadAgeGenderModel,Qd as loadFaceDetectionModel,Zd as loadFaceExpressionModel,Xd as loadFaceLandmarkModel,Jd as loadFaceLandmarkTinyModel,qd as loadFaceRecognitionModel,nn as loadSsdMobilenetv1Model,jd as loadTinyFaceDetectorModel,Ud as loadTinyYolov2Model,Er as loadWeightMap,th as locateFaces,ji as matchDimensions,br as minBbox,P as nets,gr as nonMaxSuppression,X as normalize,xr as padToSquare,Gd as predictAgeAndGender,Yd as recognizeFaceExpressions,sn as resizeResults,Wt as resolveInput,Hn as shuffleArray,fe as sigmoid,rn as ssdMobilenetv1,n as tf,Od as tinyFaceDetector,Hd as tinyYolov2,M as toNetInput,dr as utils,io as validateConfig,Ab as version}; +var lr=Object.defineProperty;var ho=Object.getOwnPropertyDescriptor;var bo=Object.getOwnPropertyNames;var go=Object.prototype.hasOwnProperty;var xo=(o=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(o,{get:(t,e)=>(typeof require!="undefined"?require:t)[e]}):o)(function(o){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+o+'" is not supported')});var Ve=(o,t)=>{for(var e in t)lr(o,e,{get:t[e],enumerable:!0})},fr=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of bo(t))!go.call(o,a)&&a!==e&&lr(o,a,{get:()=>t[a],enumerable:!(r=ho(t,a))||r.enumerable});return o},v=(o,t,e)=>(fr(o,t,"default"),e&&fr(e,t,"default"));var n={};Ve(n,{version:()=>Eo});v(n,fn);v(n,ln);v(n,dn);import*as fn from"@tensorflow/tfjs/dist/index.js";import*as ln from"@tensorflow/tfjs-backend-webgl/dist/index.js";import*as dn from"@tensorflow/tfjs-backend-wasm/dist/index.js";var vo="3.21.0",yo="3.21.0",_o="3.21.0",To="3.21.0",Po="3.21.0",wo="3.21.0",Fo="3.21.0",Do="3.21.0",Eo={tfjs:vo,"tfjs-core":yo,"tfjs-data":_o,"tfjs-layers":To,"tfjs-converter":Po,"tfjs-backend-cpu":wo,"tfjs-backend-webgl":Fo,"tfjs-backend-wasm":Do};var Ar={};Ve(Ar,{AnchorPosition:()=>Ke,DrawBox:()=>ee,DrawBoxOptions:()=>de,DrawFaceLandmarks:()=>De,DrawFaceLandmarksOptions:()=>Fe,DrawTextField:()=>et,DrawTextFieldOptions:()=>kt,drawContour:()=>Z,drawDetections:()=>Ao,drawFaceExpressions:()=>Wo,drawFaceLandmarks:()=>Bo});function Z(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:a},s)=>{let i=t[s];o.moveTo(i.x,i.y),o.lineTo(r,a)}),e){let r=t[t.length-1],a=t[0];if(!r||!a)return;o.moveTo(r.x,r.y),o.lineTo(a.x,a.y)}o.stroke()}var dr={};Ve(dr,{computeReshapedDimensions:()=>je,getCenterPoint:()=>yt,isDimensions:()=>ue,isEven:()=>pe,isFloat:()=>Ge,isTensor:()=>xt,isTensor1D:()=>Mo,isTensor2D:()=>Ye,isTensor3D:()=>K,isTensor4D:()=>R,isValidNumber:()=>G,isValidProbablitiy:()=>It,range:()=>U,round:()=>vt});var S=class{constructor(t,e){if(!G(t)||!G(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new S(1/this.width,1/this.height)}};function xt(o,t){return o instanceof n.Tensor&&o.shape.length===t}function Mo(o){return xt(o,1)}function Ye(o){return xt(o,2)}function K(o){return xt(o,3)}function R(o){return xt(o,4)}function Ge(o){return o%1!==0}function pe(o){return o%2===0}function vt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function ue(o){return o&&o.width&&o.height}function je({width:o,height:t},e){let r=e/Math.max(t,o);return new S(Math.round(o*r),Math.round(t*r))}function yt(o){return o.reduce((t,e)=>t.add(e),new b(0,0)).div(new b(o.length,o.length))}function U(o,t,e){return Array(o).fill(0).map((r,a)=>t+a*e)}function G(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function It(o){return G(o)&&o>=0&&o<=1}var b=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new b(this.x+t.x,this.y+t.y)}sub(t){return new b(this.x-t.x,this.y-t.y)}mul(t){return new b(this.x*t.x,this.y*t.y)}div(t){return new b(this.x/t.x,this.y/t.y)}abs(){return new b(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new b(Math.floor(this.x),Math.floor(this.y))}};var w=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(G)}static assertIsValidBox(t,e,r=!1){if(!w.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},a=[r.left,r.top,r.right,r.bottom].every(G),s=[r.x,r.y,r.width,r.height].every(G);if(!s&&!a)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[i,c,m,p]=s?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];w.assertIsValidBox({x:i,y:c,width:m,height:p},"Box.constructor",e),this._x=i,this._y=c,this._width=m,this._height=p}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 b(this.left,this.top)}get topRight(){return new b(this.right,this.top)}get bottomLeft(){return new b(this.left,this.bottom)}get bottomRight(){return new b(this.right,this.bottom)}round(){let[t,e,r,a]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new w({x:t,y:e,width:r,height:a})}floor(){let[t,e,r,a]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new w({x:t,y:e,width:r,height:a})}toSquare(){let{x:t,y:e,width:r,height:a}=this,s=Math.abs(r-a);return re&&(c=-f+e+r,f=e),l>t&&(m=-l+t+a,l=t),p<1&&(m=2-p,p=1),u<1&&(m=2-u,u=1),{dy:i,edy:m,dx:s,edx:c,y:u,ey:l,x:p,ex:f,w:r,h:a}}calibrate(t){return new w({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 Nt=class extends w{constructor(t,e,r,a,s=!1){super({left:t,top:e,right:r,bottom:a},s)}};var ct=class{constructor(t,e,r,a,s){this._imageDims=new S(s.width,s.height),this._score=t,this._classScore=e,this._className=r,this._box=new w(a).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 w(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new ct(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var E=class extends ct{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:a,imageDims:s}=super.forSize(t,e);return new E(r,a,s)}};function hr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),a=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),s=r*a;return e?s/(o.area+t.area-s):s/Math.min(o.area,t.area)}function br(o){let t=o.map(c=>c.x),e=o.map(c=>c.y),r=t.reduce((c,m)=>mmcc({score:i,boxIndex:c})).sort((i,c)=>i.score-c.score).map(i=>i.boxIndex),s=[];for(;a.length>0;){let i=a.pop();s.push(i);let c=a,m=[];for(let p=0;pm[u]<=e)}return s}function X(o,t){return n.tidy(()=>{let[e,r,a]=t,s=n.fill([...o.shape.slice(0,3),1],e,"float32"),i=n.fill([...o.shape.slice(0,3),1],r,"float32"),c=n.fill([...o.shape.slice(0,3),1],a,"float32"),m=n.concat([s,i,c],3);return n.sub(o,m)})}function xr(o,t=!1){return n.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let a=Math.abs(e-r),s=Math.round(a*(t?.5:1)),i=e>r?2:1,c=l=>{let d=o.shape.slice();return d[i]=l,n.fill(d,0,"float32")},m=c(s),p=a-m.shape[i],f=[t&&p?c(p):null,o,m].filter(l=>!!l).map(l=>n.cast(l,"float32"));return n.concat(f,i)})}function Hn(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),a=t[e];t[e]=t[r],t[r]=a}return t}function fe(o){return 1/(1+Math.exp(-o))}function Vn(o){return Math.log(o/(1-o))}var St=class extends w{constructor(t,e,r,a,s=!1){super({x:t,y:e,width:r,height:a},s)}};var Co=.5,Io=.43,No=.45,$=class{constructor(t,e,r=new b(0,0)){let{width:a,height:s}=e;this._imgDims=new S(a,s),this._shift=r,this._positions=t.map(i=>i.mul(new b(a,s)).add(r))}get shift(){return new b(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 b(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new b(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let s=t instanceof E?t.box.floor():new w(t);return this.shiftBy(s.x,s.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:a}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(a)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,a]=t,s=f=>a.sub(f).magnitude(),i=(s(e)+s(r))/2,c=Math.floor(i/No),m=yt(t),p=Math.floor(Math.max(0,m.x-Co*c)),u=Math.floor(Math.max(0,m.y-Io*c));return new St(p,u,Math.min(c,this.imageWidth+p),Math.min(c,this.imageHeight+u))}alignMinBbox(t){let e=br(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var vr=class extends ${getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],yt([t[3],t[4]])]}};var Lt=class extends ${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(yt)}};var Kt=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${vt(this.distance)})`:""}`}};var Qt=class extends w{constructor(e,r){super(e);this._label=r}static assertIsValidLabeledBox(e,r){if(w.assertIsValidBox(e,r),!G(e.label))throw new Error(`${r} - expected property label (${e.label}) to be a number`)}get label(){return this._label}};var Q=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}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 e=t.descriptors.map(r=>new Float32Array(r));return new Q(t.label,e)}};var yr=class extends Qt{constructor(e,r,a,s){super(e,r);this._score=a,this._classScore=s}static assertIsValidPredictedBox(e,r){if(Qt.assertIsValidLabeledBox(e,r),!It(e.score)||!It(e.classScore))throw new Error(`${r} - expected properties score (${e.score}) and (${e.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function tt(o){return o.detection instanceof E}function At(o,t){return{...o,...{detection:t}}}function Ue(){let o=window.fetch;if(!o)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:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function te(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function le(o){let t="";if(!o&&te())try{o=xo("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((a,s)=>{o.readFile(r,(i,c)=>i?s(i):a(c))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Xe(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},a=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},i=global.fetch,c=le();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:a,createVideoElement:s,fetch:i,...c}}function Je(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var C;function So(){if(!C)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return C}function qe(o){C=o}function Ze(){return Je()?qe(Ue()):te()?qe(Xe()):null}function Lo(o){if(C||Ze(),!C)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=C.Canvas,Image:e=C.Image}=o;C.Canvas=t,C.Image=e,C.createCanvasElement=o.createCanvasElement||(()=>new t),C.createImageElement=o.createImageElement||(()=>new e),C.ImageData=o.ImageData||C.ImageData,C.Video=o.Video||C.Video,C.fetch=o.fetch||C.fetch,C.readFile=o.readFile||C.readFile}var T={getEnv:So,setEnv:qe,initialize:Ze,createBrowserEnv:Ue,createFileSystem:le,createNodejsEnv:Xe,monkeyPatch:Lo,isBrowser:Je,isNodejs:te};Ze();function Wt(o){return!T.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function k(o){let{Canvas:t,CanvasRenderingContext2D:e}=T.getEnv();if(o instanceof e)return o;let r=Wt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let a=r.getContext("2d");if(!a)throw new Error("resolveContext2d - canvas 2d context is null");return a}var Ke=(a=>(a.TOP_LEFT="TOP_LEFT",a.TOP_RIGHT="TOP_RIGHT",a.BOTTOM_LEFT="BOTTOM_LEFT",a.BOTTOM_RIGHT="BOTTOM_RIGHT",a))(Ke||{}),kt=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:a,fontSize:s,fontStyle:i,padding:c}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=a||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=c||4}},et=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof et?t.text:t,this.anchor=e,this.options=new kt(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,a)=>r{let g=m+f.x,_=m+f.y+(d+1)*i;r.fillText(l,g,_)})}};var de=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:a,drawLabelOptions:s}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=a;let i={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new kt({...i,...s})}},ee=class{constructor(t,e={}){this.box=new w(t),this.options=new de(e)}draw(t){let e=k(t),{boxColor:r,lineWidth:a}=this.options,{x:s,y:i,width:c,height:m}=this.box;e.strokeStyle=r,e.lineWidth=a,e.strokeRect(s,i,c,m);let{label:p}=this.options;p&&new et([p],{x:s-a/2,y:i},this.options.drawLabelOptions).draw(t)}};function Ao(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let a=r instanceof E?r.score:tt(r)?r.detection.score:void 0,s=r instanceof E?r.box:tt(r)?r.detection.box:new w(r),i=a?`${vt(a)}`:void 0;new ee(s,{label:i}).draw(o)})}function he(o){let{Image:t,Video:e}=T.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function _r(o){return new Promise((t,e)=>{(o instanceof T.getEnv().Canvas||he(o))&&t(null);function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",a),s.currentTarget.removeEventListener("error",r),e(s))}function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",a),s.currentTarget.removeEventListener("error",r),t(s))}o.addEventListener("load",a),o.addEventListener("error",r)})}function Tr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let a=T.getEnv().createImageElement();a.onload=()=>t(a),a.onerror=e,a.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Bt(o){let{Image:t,Video:e}=T.getEnv();return o instanceof t?new S(o.naturalWidth,o.naturalHeight):o instanceof e?new S(o.videoWidth,o.videoHeight):new S(o.width,o.height)}function Rt({width:o,height:t}){let{createCanvasElement:e}=T.getEnv(),r=e();return r.width=o,r.height=t,r}function be(o,t){let{ImageData:e}=T.getEnv();if(!(o instanceof e)&&!he(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:a}=t||Bt(o),s=Rt({width:r,height:a});return o instanceof e?k(s).putImageData(o,0,0):k(s).drawImage(o,0,0,r,a),s}async function Pr(o,t){let e=t||T.getEnv().createCanvasElement(),[r,a,s]=o.shape.slice(R(o)?1:0),i=n.tidy(()=>o.as3D(r,a,s).toInt());return await n.browser.toPixels(i,e),i.dispose(),e}function Qe(o){let{Image:t,Canvas:e,Video:r}=T.getEnv();return o instanceof t||o instanceof e||o instanceof r}function wr(o,t,e=!1){let{Image:r,Canvas:a}=T.getEnv();if(!(o instanceof r||o instanceof a))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Rt({width:1,height:1});let s=Bt(o),i=t/Math.max(s.height,s.width),c=i*s.width,m=i*s.height,p=Rt({width:t,height:t}),u=o instanceof a?o:be(o),f=Math.abs(c-m)/2,l=e&&c0&&u.height>0&&k(p).drawImage(u,l,d,c,m),p}var rt=class{constructor(t,e=!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=e,this._batchSize=t.length,t.forEach((r,a)=>{if(K(r)){this._imageTensors[a]=r,this._inputDimensions[a]=r.shape;return}if(R(r)){let i=r.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[a]=r,this._inputDimensions[a]=r.shape.slice(1);return}let s=r instanceof T.getEnv().Canvas?r:be(r);this._canvases[a]=s,this._inputDimensions[a]=[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 U(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}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 e=this.getInputWidth(t),r=this.getInputHeight(t);return je({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,n.tidy(()=>{let r=U(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof n.Tensor){let c=R(i)?i:n.expandDims(i);return c=xr(c,e),(c.shape[1]!==t||c.shape[2]!==t)&&(c=n.image.resizeBilinear(c,[t,t],!1,!1)),c.as3D(t,t,3)}if(i instanceof T.getEnv().Canvas)return n.browser.fromPixels(wr(i,t,e));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return n.stack(r.map(s=>n.cast(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function M(o){if(o instanceof rt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=a=>Array.isArray(o)?` at input index ${a}:`:"",r=t.map(Wt);return r.forEach((a,s)=>{if(!Qe(a)&&!K(a)&&!R(a))throw typeof t[s]=="string"?new Error(`toNetInput -${e(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${e(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(R(a)){let i=a.shape[0];if(i!==1)throw new Error(`toNetInput -${e(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(r.map(a=>Qe(a)&&_r(a))),new rt(r,Array.isArray(o))}async function re(o,t){let{Canvas:e}=T.getEnv(),r=o;if(!(o instanceof e)){let i=await M(o);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let c=i.getInput(0);r=c instanceof e?c:await Pr(c)}let a=k(r);return t.map(i=>i instanceof E?i.forSize(r.width,r.height).box.floor():i).map(i=>i.clipAtImageBorders(r.width,r.height)).map(({x:i,y:c,width:m,height:p})=>{let u=Rt({width:m,height:p});return m>0&&p>0&&k(u).putImageData(a.getImageData(i,c,m,p),0,0),u})}async function oe(o,t){if(!K(o)&&!R(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(R(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return n.tidy(()=>{let[e,r,a]=o.shape.slice(R(o)?1:0);return t.map(c=>c instanceof E?c.forSize(r,e).box:c).map(c=>c.clipAtImageBorders(r,e)).filter(c=>c.width>0&&c.height>0).map(({x:c,y:m,width:p,height:u})=>n.slice3d(o.as3D(e,r,a),[m,c,0],[u,p,a]))})}async function mt(o,t){let{fetch:e}=T.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Mi(o){let t=await mt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return Tr(e)}async function Fr(o){return(await mt(o)).json()}async function Li(o){return new Float32Array(await(await mt(o)).arrayBuffer())}function Dr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=T.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function $i(o){let t=await mt(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return Dr(e)}function ge(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let a=o.split("/").filter(c=>c),s=o.endsWith(".json")?a[a.length-1]:e,i=r+(o.endsWith(".json")?a.slice(0,a.length-1):a).join("/");return i=o.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function Er(o,t){let{manifestUri:e,modelBaseUri:r}=ge(o,t),a=await Fr(e);return n.io.loadWeights(a,r)}function ji(o,t,e=!1){let{width:r,height:a}=e?Bt(t):t;return o.width=r,o.height=a,{width:r,height:a}}var I=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:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:a}=this.traversePropertyPath(t);r[a].dispose(),r[a]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof n.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof n.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=n.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}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 e=await Er(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=T.getEnv(),{manifestUri:r,modelBaseUri:a}=ge(t,this.getDefaultModelName()),s=p=>Promise.all(p.map(u=>e(u).then(f=>f.buffer))),i=n.io.weightsLoaderFactory(s),c=JSON.parse((await e(r)).toString()),m=await i(c,a);this.loadFromWeightMap(m)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=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:r,objProp:a}=e;if(!r||!a||!(r[a]instanceof n.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:a}}};function W(o,t,e){return n.tidy(()=>{let r=n.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=n.add(r,t.bias),r})}function xe(o,t,e=!1){return n.tidy(()=>{let r=n.relu(e?n.add(n.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):W(o,t.conv0,[2,2])),a=W(r,t.conv1,[1,1]),s=n.relu(n.add(r,a)),i=W(s,t.conv2,[1,1]);return n.relu(n.add(r,n.add(a,i)))})}function ne(o,t,e=!1,r=!0){return n.tidy(()=>{let a=n.relu(e?n.add(n.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):W(o,t.conv0,r?[2,2]:[1,1])),s=W(a,t.conv1,[1,1]),i=n.relu(n.add(a,s)),c=W(i,t.conv2,[1,1]),m=n.relu(n.add(a,n.add(s,c))),p=W(m,t.conv3,[1,1]);return n.relu(n.add(a,n.add(s,n.add(c,p))))})}function _t(o,t,e="same",r=!1){return n.tidy(()=>{let a=n.add(n.conv2d(o,t.filters,[1,1],e),t.bias);return r?n.relu(a):a})}function L(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}function $t(o,t){return(e,r,a,s)=>{let i=n.tensor4d(o(e*r*a*a),[a,a,e,r]),c=n.tensor1d(o(r));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:c}}}function ve(o,t){return(e,r,a)=>{let s=n.tensor2d(o(e*r),[e,r]),i=n.tensor1d(o(r));return t.push({paramPath:`${a}/weights`},{paramPath:`${a}/bias`}),{weights:s,bias:i}}}var ae=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function Ot(o,t){return(e,r,a)=>{let s=n.tensor4d(o(9*e),[3,3,e,1]),i=n.tensor4d(o(e*r),[1,1,e,r]),c=n.tensor1d(o(r));return t.push({paramPath:`${a}/depthwise_filter`},{paramPath:`${a}/pointwise_filter`},{paramPath:`${a}/bias`}),new ae(s,i,c)}}function Ht(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),a=o(`${t}/bias`,1);return new ae(e,r,a)}}function B(o,t){return(e,r,a)=>{let s=o[e];if(!xt(s,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${s}`);return t.push({originalPath:e,paramPath:a||e}),s}}function A(o){let t=o;function e(a){let s=t.slice(0,a);return t=t.slice(a),s}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function ye(o,t){let e=$t(o,t),r=Ot(o,t);function a(i,c,m,p=!1){let u=p?e(i,c,3,`${m}/conv0`):r(i,c,`${m}/conv0`),f=r(c,c,`${m}/conv1`),l=r(c,c,`${m}/conv2`);return{conv0:u,conv1:f,conv2:l}}function s(i,c,m,p=!1){let{conv0:u,conv1:f,conv2:l}=a(i,c,m,p),d=r(c,c,`${m}/conv3`);return{conv0:u,conv1:f,conv2:l,conv3:d}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Mr(o){let t=[],{extractWeights:e,getRemainingWeights:r}=A(o),{extractDenseBlock4Params:a}=ye(e,t),s=a(3,32,"dense0",!0),i=a(32,64,"dense1"),c=a(64,128,"dense2"),m=a(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:c,dense3:m}}}function _e(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function Te(o,t){let e=B(o,t),r=_e(e),a=Ht(e);function s(c,m=!1){let p=m?r(`${c}/conv0`):a(`${c}/conv0`),u=a(`${c}/conv1`),f=a(`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function i(c,m=!1){let p=m?r(`${c}/conv0`):a(`${c}/conv0`),u=a(`${c}/conv1`),f=a(`${c}/conv2`),l=a(`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function Cr(o){let t=[],{extractDenseBlock4Params:e}=Te(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return L(o,t),{params:r,paramMappings:t}}var zt=class extends I{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(112,!0),"float32"),s=X(r,[122.782,117.001,104.298]).div(255),i=ne(s,e.dense0,!0);return i=ne(i,e.dense1),i=ne(i,e.dense2),i=ne(i,e.dense3),i=n.avgPool(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await M(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Cr(t)}extractParams(t){return Mr(t)}};function se(o,t){return n.tidy(()=>n.add(n.matMul(o,t.weights),t.bias))}function Ir(o,t,e){let r=[],{extractWeights:a,getRemainingWeights:s}=A(o),c=ve(a,r)(t,e,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:r,params:{fc:c}}}function Nr(o){let t=[],e=B(o,t);function r(s){let i=e(`${s}/weights`,2),c=e(`${s}/bias`,1);return{weights:i,bias:c}}let a={fc:r("fc")};return L(o,t),{params:a,paramMappings:t}}function Pe(o){let t={},e={};return Object.keys(o).forEach(r=>{let a=r.startsWith("fc")?e:t;a[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var Vt=class extends I{constructor(e,r){super(e);this._faceFeatureExtractor=r}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return n.tidy(()=>{let a=e instanceof rt?this.faceFeatureExtractor.forwardInput(e):e;return se(a.as2D(a.shape[0],-1),r.fc)})}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:a}=this.extractClassifierParams(e);this._params=r,this._paramMappings=a}extractClassifierParams(e){return Ir(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:a}=Pe(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Nr(a)}extractParams(e){let r=this.getClassifierChannelsIn(),a=this.getClassifierChannelsOut(),s=a*r+a,i=e.slice(0,e.length-s),c=e.slice(e.length-s);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(c)}};var Sr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],pt=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}`);Sr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return Sr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var we=class extends Vt{constructor(t=new zt){super("FaceExpressionNet",t)}forwardInput(t){return n.tidy(()=>n.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await M(t))}async predictExpressions(t){let e=await M(t),r=await this.forwardInput(e),a=await Promise.all(n.unstack(r).map(async i=>{let c=i.dataSync();return i.dispose(),c}));r.dispose();let s=a.map(i=>new pt(i));return e.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Lr(o){return o.expressions instanceof pt}function tr(o,t){return{...o,...{expressions:t}}}function Wo(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof pt?s:Lr(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let m=i.asSortedArray().filter(f=>f.probability>e),p=tt(s)?s.detection.box.bottomLeft:r||new b(0,0);new et(m.map(f=>`${f.expression} (${vt(f.probability)})`),p).draw(o)})}function Yt(o){return tt(o)&&o.landmarks instanceof $&&o.unshiftedLandmarks instanceof $&&o.alignedRect instanceof E}function ko(o){let t=(c,m,p,u)=>Math.atan2(u-m,p-c)%Math.PI,e=c=>c*180/Math.PI,r={roll:void 0,pitch:void 0,yaw:void 0};if(!o||!o._positions||o._positions.length!==68)return r;let a=o._positions;r.roll=-t(a[36]._x,a[36]._y,a[45]._x,a[45]._y),r.pitch=t(0,Math.abs(a[0]._x-a[30]._x)/a[30]._x,Math.PI,Math.abs(a[16]._x-a[30]._x)/a[30]._x);let s=a.reduce((c,m)=>cc>m._y?c:m._y,-1/0);return r.yaw=Math.PI*(o._imgDims._height/(i-s)/1.4-1),r}function ie(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),a=r.align(),{imageDims:s}=o.detection,i=new E(o.detection.score,a.rescale(s.reverse()),s),c=ko(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:i,angle:c}}}var Fe=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=a||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=c||"rgba(255, 0, 255, 1)"}},De=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Fe(e)}draw(t){let e=k(t),{drawLines:r,drawPoints:a,lineWidth:s,lineColor:i,pointSize:c,pointColor:m}=this.options;if(r&&this.faceLandmarks instanceof Lt&&(e.strokeStyle=i,e.lineWidth=s,Z(e,this.faceLandmarks.getJawOutline()),Z(e,this.faceLandmarks.getLeftEyeBrow()),Z(e,this.faceLandmarks.getRightEyeBrow()),Z(e,this.faceLandmarks.getNose()),Z(e,this.faceLandmarks.getLeftEye(),!0),Z(e,this.faceLandmarks.getRightEye(),!0),Z(e,this.faceLandmarks.getMouth(),!0)),a){e.strokeStyle=m,e.fillStyle=m;let p=u=>{e.beginPath(),e.arc(u.x,u.y,c,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(p)}}};function Bo(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let a=r instanceof $?r:Yt(r)?r.landmarks:void 0;if(!a)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new De(a).draw(o)})}var Wr="1.7.4";function Oo(o,t){let e=$t(o,t),r=Ot(o,t);function a(i,c,m){let p=r(i,c,`${m}/separable_conv0`),u=r(c,c,`${m}/separable_conv1`),f=e(i,c,1,`${m}/expansion_conv`);return{separable_conv0:p,separable_conv1:u,expansion_conv:f}}function s(i,c){let m=r(i,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),u=r(i,i,`${c}/separable_conv2`);return{separable_conv0:m,separable_conv1:p,separable_conv2:u}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:a,extractMainBlockParams:s}}function kr(o,t){let e=[],{extractWeights:r,getRemainingWeights:a}=A(o),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:c,extractMainBlockParams:m}=Oo(r,e),p=s(3,32,3,"entry_flow/conv_in"),u=c(32,64,"entry_flow/reduction_block_0"),f=c(64,128,"entry_flow/reduction_block_1"),l={conv_in:p,reduction_block_0:u,reduction_block_1:f},d={};U(t,0,1).forEach(h=>{d[`main_block_${h}`]=m(128,`middle_flow/main_block_${h}`)});let g=c(128,256,"exit_flow/reduction_block"),_=i(256,512,"exit_flow/separable_conv"),F={reduction_block:g,separable_conv:_};if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:e,params:{entry_flow:l,middle_flow:d,exit_flow:F}}}function Ho(o,t){let e=B(o,t),r=_e(e),a=Ht(e);function s(c){let m=a(`${c}/separable_conv0`),p=a(`${c}/separable_conv1`),u=r(`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function i(c){let m=a(`${c}/separable_conv0`),p=a(`${c}/separable_conv1`),u=a(`${c}/separable_conv2`);return{separable_conv0:m,separable_conv1:p,separable_conv2:u}}return{extractConvParams:r,extractSeparableConvParams:a,extractReductionBlockParams:s,extractMainBlockParams:i}}function Br(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:a,extractReductionBlockParams:s,extractMainBlockParams:i}=Ho(o,e),c=r("entry_flow/conv_in"),m=s("entry_flow/reduction_block_0"),p=s("entry_flow/reduction_block_1"),u={conv_in:c,reduction_block_0:m,reduction_block_1:p},f={};U(t,0,1).forEach(_=>{f[`main_block_${_}`]=i(`middle_flow/main_block_${_}`)});let l=s("exit_flow/reduction_block"),d=a("exit_flow/separable_conv"),g={reduction_block:l,separable_conv:d};return L(o,e),{params:{entry_flow:u,middle_flow:f,exit_flow:g},paramMappings:e}}function Rr(o,t,e){return n.add(n.conv2d(o,t.filters,e,"same"),t.bias)}function er(o,t,e=!0){let r=e?n.relu(o):o;return r=W(r,t.separable_conv0,[1,1]),r=W(n.relu(r),t.separable_conv1,[1,1]),r=n.maxPool(r,[3,3],[2,2],"same"),r=n.add(r,Rr(o,t.expansion_conv,[2,2])),r}function zo(o,t){let e=W(n.relu(o),t.separable_conv0,[1,1]);return e=W(n.relu(e),t.separable_conv1,[1,1]),e=W(n.relu(e),t.separable_conv2,[1,1]),e=n.add(e,o),e}var Ee=class extends I{constructor(e){super("TinyXception");this._numMainBlocks=e}forwardInput(e){let{params:r}=this;if(!r)throw new Error("TinyXception - load model before inference");return n.tidy(()=>{let a=n.cast(e.toBatchTensor(112,!0),"float32"),i=X(a,[122.782,117.001,104.298]).div(255),c=n.relu(Rr(i,r.entry_flow.conv_in,[2,2]));return c=er(c,r.entry_flow.reduction_block_0,!1),c=er(c,r.entry_flow.reduction_block_1),U(this._numMainBlocks,0,1).forEach(m=>{c=zo(c,r.middle_flow[`main_block_${m}`])}),c=er(c,r.exit_flow.reduction_block),c=n.relu(W(c,r.exit_flow.separable_conv,[1,1])),c})}async forward(e){return this.forwardInput(await M(e))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(e){return Br(e,this._numMainBlocks)}extractParams(e){return kr(e,this._numMainBlocks)}};function $r(o){let t=[],{extractWeights:e,getRemainingWeights:r}=A(o),a=ve(e,t),s=a(512,1,"fc/age"),i=a(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function Or(o){let t=[],e=B(o,t);function r(s){let i=e(`${s}/weights`,2),c=e(`${s}/bias`,1);return{weights:i,bias:c}}let a={fc:{age:r("fc/age"),gender:r("fc/gender")}};return L(o,t),{params:a,paramMappings:t}}var rr=(e=>(e.FEMALE="female",e.MALE="male",e))(rr||{});var Me=class extends I{constructor(e=new Ee(2)){super("AgeGenderNet");this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return n.tidy(()=>{let a=e instanceof rt?this.faceFeatureExtractor.forwardInput(e):e,s=n.avgPool(a,[7,7],[2,2],"valid").as2D(a.shape[0],-1),i=se(s,r.fc.age).as1D(),c=se(s,r.fc.gender);return{age:i,gender:c}})}forwardInput(e){return n.tidy(()=>{let{age:r,gender:a}=this.runNet(e);return{age:r,gender:n.softmax(a)}})}async forward(e){return this.forwardInput(await M(e))}async predictAgeAndGender(e){let r=await M(e),a=await this.forwardInput(r),s=n.unstack(a.age),i=n.unstack(a.gender),c=s.map((p,u)=>({ageTensor:p,genderTensor:i[u]})),m=await Promise.all(c.map(async({ageTensor:p,genderTensor:u})=>{let f=p.dataSync()[0],l=u.dataSync()[0],d=l>.5,g=d?"male":"female",_=d?l:1-l;return p.dispose(),u.dispose(),{age:f,gender:g,genderProbability:_}}));return a.age.dispose(),a.gender.dispose(),r.isBatchInput?m:m[0]}getDefaultModelName(){return"age_gender_model"}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:a}=this.extractClassifierParams(e);this._params=r,this._paramMappings=a}extractClassifierParams(e){return $r(e)}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:a}=Pe(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Or(a)}extractParams(e){let a=e.slice(0,e.length-1539),s=e.slice(e.length-1539);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var Gt=class extends Vt{postProcess(t,e,r){let a=r.map(({width:i,height:c})=>{let m=e/Math.max(c,i);return{width:i*m,height:c*m}}),s=a.length;return n.tidy(()=>{let i=(f,l)=>n.stack([n.fill([68],f,"float32"),n.fill([68],l,"float32")],1).as2D(1,136).as1D(),c=(f,l)=>{let{width:d,height:g}=a[f];return l(d,g)?Math.abs(d-g)/2:0},m=f=>c(f,(l,d)=>lc(f,(l,d)=>di(m(l),p(l))))).div(n.stack(Array.from(Array(s),(f,l)=>i(a[l].width,a[l].height))))})}forwardInput(t){return n.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,a])=>({height:r,width:a})))})}async forward(t){return this.forwardInput(await M(t))}async detectLandmarks(t){let e=await M(t),r=n.tidy(()=>n.unstack(this.forwardInput(e))),a=await Promise.all(r.map(async(s,i)=>{let c=Array.from(s.dataSync()),m=c.filter((u,f)=>pe(f)),p=c.filter((u,f)=>!pe(f));return new Lt(Array(68).fill(0).map((u,f)=>new b(m[f],p[f])),{height:e.getInputHeight(i),width:e.getInputWidth(i)})}));return r.forEach(s=>s.dispose()),e.isBatchInput?a:a[0]}getClassifierChannelsOut(){return 136}};var jt=class extends Gt{constructor(t=new zt){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function Hr(o){let t=[],{extractDenseBlock3Params:e}=Te(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return L(o,t),{params:r,paramMappings:t}}function zr(o){let t=[],{extractWeights:e,getRemainingWeights:r}=A(o),{extractDenseBlock3Params:a}=ye(e,t),s=a(3,32,"dense0",!0),i=a(32,64,"dense1"),c=a(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:c}}}var Ce=class extends I{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(112,!0),"float32"),s=X(r,[122.782,117.001,104.298]).div(255),i=xe(s,e.dense0,!0);return i=xe(i,e.dense1),i=xe(i,e.dense2),i=n.avgPool(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await M(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Hr(t)}extractParams(t){return zr(t)}};var Ie=class extends Gt{constructor(t=new Ce){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Vr=class extends jt{};function Yr(o,t){return n.add(n.mul(o,t.weights),t.biases)}function or(o,t,e,r,a="same"){let{filters:s,bias:i}=t.conv,c=n.conv2d(o,s,e,a);return c=n.add(c,i),c=Yr(c,t.scale),r?n.relu(c):c}function Gr(o,t){return or(o,t,[1,1],!0)}function nr(o,t){return or(o,t,[1,1],!1)}function Ne(o,t){return or(o,t,[2,2],!0,"valid")}function Vo(o,t){function e(c,m,p){let u=o(c),f=u.length/(m*p*p);if(Ge(f))throw new Error(`depth has to be an integer: ${f}, weights.length: ${u.length}, numFilters: ${m}, filterSize: ${p}`);return n.tidy(()=>n.transpose(n.tensor4d(u,[m,f,p,p]),[2,3,1,0]))}function r(c,m,p,u){let f=e(c,m,p),l=n.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/bias`}),{filters:f,bias:l}}function a(c,m){let p=n.tensor1d(o(c)),u=n.tensor1d(o(c));return t.push({paramPath:`${m}/weights`},{paramPath:`${m}/biases`}),{weights:p,biases:u}}function s(c,m,p,u){let f=r(c,m,p,`${u}/conv`),l=a(m,`${u}/scale`);return{conv:f,scale:l}}function i(c,m,p,u,f=!1){let l=s((f?.5:1)*c,m,p,`${u}/conv1`),d=s(c,m,p,`${u}/conv2`);return{conv1:l,conv2:d}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function jr(o){let{extractWeights:t,getRemainingWeights:e}=A(o),r=[],{extractConvLayerParams:a,extractResidualLayerParams:s}=Vo(t,r),i=a(4704,32,7,"conv32_down"),c=s(9216,32,3,"conv32_1"),m=s(9216,32,3,"conv32_2"),p=s(9216,32,3,"conv32_3"),u=s(36864,64,3,"conv64_down",!0),f=s(36864,64,3,"conv64_1"),l=s(36864,64,3,"conv64_2"),d=s(36864,64,3,"conv64_3"),g=s(147456,128,3,"conv128_down",!0),_=s(147456,128,3,"conv128_1"),F=s(147456,128,3,"conv128_2"),h=s(589824,256,3,"conv256_down",!0),y=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),D=s(589824,256,3,"conv256_down_out"),N=n.tidy(()=>n.transpose(n.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:i,conv32_1:c,conv32_2:m,conv32_3:p,conv64_down:u,conv64_1:f,conv64_2:l,conv64_3:d,conv128_down:g,conv128_1:_,conv128_2:F,conv256_down:h,conv256_1:y,conv256_2:x,conv256_down_out:D,fc:N},paramMappings:r}}function Yo(o,t){let e=B(o,t);function r(i){let c=e(`${i}/scale/weights`,1),m=e(`${i}/scale/biases`,1);return{weights:c,biases:m}}function a(i){let c=e(`${i}/conv/filters`,4),m=e(`${i}/conv/bias`,1),p=r(i);return{conv:{filters:c,bias:m},scale:p}}function s(i){return{conv1:a(`${i}/conv1`),conv2:a(`${i}/conv2`)}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function Ur(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Yo(o,t),a=e("conv32_down"),s=r("conv32_1"),i=r("conv32_2"),c=r("conv32_3"),m=r("conv64_down"),p=r("conv64_1"),u=r("conv64_2"),f=r("conv64_3"),l=r("conv128_down"),d=r("conv128_1"),g=r("conv128_2"),_=r("conv256_down"),F=r("conv256_1"),h=r("conv256_2"),y=r("conv256_down_out"),{fc:x}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Ye(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let D={conv32_down:a,conv32_1:s,conv32_2:i,conv32_3:c,conv64_down:m,conv64_1:p,conv64_2:u,conv64_3:f,conv128_down:l,conv128_1:d,conv128_2:g,conv256_down:_,conv256_1:F,conv256_2:h,conv256_down_out:y,fc:x};return L(o,t),{params:D,paramMappings:t}}function j(o,t){let e=Gr(o,t.conv1);return e=nr(e,t.conv2),e=n.add(e,o),e=n.relu(e),e}function ce(o,t){let e=Ne(o,t.conv1);e=nr(e,t.conv2);let r=n.avgPool(o,2,2,"valid"),a=n.zeros(r.shape),s=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let c=[...e.shape];c[1]=1;let m=n.zeros(c);e=n.concat([e,m],1);let p=[...e.shape];p[2]=1;let u=n.zeros(p);e=n.concat([e,u],2)}return r=s?n.concat([r,a],3):r,e=n.add(r,e),e=n.relu(e),e}var Ut=class extends I{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(150,!0),"float32"),s=X(r,[122.782,117.001,104.298]).div(255),i=Ne(s,e.conv32_down);i=n.maxPool(i,3,2,"valid"),i=j(i,e.conv32_1),i=j(i,e.conv32_2),i=j(i,e.conv32_3),i=ce(i,e.conv64_down),i=j(i,e.conv64_1),i=j(i,e.conv64_2),i=j(i,e.conv64_3),i=ce(i,e.conv128_down),i=j(i,e.conv128_1),i=j(i,e.conv128_2),i=ce(i,e.conv256_down),i=j(i,e.conv256_1),i=j(i,e.conv256_2),i=ce(i,e.conv256_down_out);let c=i.mean([1,2]);return n.matMul(c,e.fc)})}async forward(t){return this.forwardInput(await M(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 e=await M(t),r=n.tidy(()=>n.unstack(this.forwardInput(e))),a=await Promise.all(r.map(i=>i.data()));return r.forEach(i=>i.dispose()),e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Ur(t)}extractParams(t){return jr(t)}};function vf(o){let t=new Ut;return t.extractWeights(o),t}function ar(o,t){return{...o,...{descriptor:t}}}function Pf(o){return typeof o.age=="number"}function sr(o,t){return{...o,...{age:t}}}function Ef(o){return(o.gender==="male"||o.gender==="female")&&It(o.genderProbability)}function ir(o,t,e){return{...o,...{gender:t,genderProbability:e}}}function Go(o,t){function e(m,p){let u=n.tensor4d(o(9*m),[3,3,m,1]),f=n.tensor1d(o(m)),l=n.tensor1d(o(m)),d=n.tensor1d(o(m)),g=n.tensor1d(o(m));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/batch_norm_scale`},{paramPath:`${p}/batch_norm_offset`},{paramPath:`${p}/batch_norm_mean`},{paramPath:`${p}/batch_norm_variance`}),{filters:u,batch_norm_scale:f,batch_norm_offset:l,batch_norm_mean:d,batch_norm_variance:g}}function r(m,p,u,f,l){let d=n.tensor4d(o(m*p*u*u),[u,u,m,p]),g=n.tensor1d(o(p));return t.push({paramPath:`${f}/filters`},{paramPath:`${f}/${l?"batch_norm_offset":"bias"}`}),{filters:d,bias:g}}function a(m,p,u,f){let{filters:l,bias:d}=r(m,p,u,f,!0);return{filters:l,batch_norm_offset:d}}function s(m,p,u){let f=e(m,`${u}/depthwise_conv`),l=a(m,p,1,`${u}/pointwise_conv`);return{depthwise_conv:f,pointwise_conv:l}}function i(){let m=a(3,32,3,"mobilenetv1/conv_0"),p=s(32,64,"mobilenetv1/conv_1"),u=s(64,128,"mobilenetv1/conv_2"),f=s(128,128,"mobilenetv1/conv_3"),l=s(128,256,"mobilenetv1/conv_4"),d=s(256,256,"mobilenetv1/conv_5"),g=s(256,512,"mobilenetv1/conv_6"),_=s(512,512,"mobilenetv1/conv_7"),F=s(512,512,"mobilenetv1/conv_8"),h=s(512,512,"mobilenetv1/conv_9"),y=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),D=s(512,1024,"mobilenetv1/conv_12"),N=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:m,conv_1:p,conv_2:u,conv_3:f,conv_4:l,conv_5:d,conv_6:g,conv_7:_,conv_8:F,conv_9:h,conv_10:y,conv_11:x,conv_12:D,conv_13:N}}function c(){let m=a(1024,256,1,"prediction_layer/conv_0"),p=a(256,512,3,"prediction_layer/conv_1"),u=a(512,128,1,"prediction_layer/conv_2"),f=a(128,256,3,"prediction_layer/conv_3"),l=a(256,128,1,"prediction_layer/conv_4"),d=a(128,256,3,"prediction_layer/conv_5"),g=a(256,64,1,"prediction_layer/conv_6"),_=a(64,128,3,"prediction_layer/conv_7"),F=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),h=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),y=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),D=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),N=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),Y=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),q=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),O=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),at=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),st=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),it=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:m,conv_1:p,conv_2:u,conv_3:f,conv_4:l,conv_5:d,conv_6:g,conv_7:_,box_predictor_0:{box_encoding_predictor:F,class_predictor:h},box_predictor_1:{box_encoding_predictor:y,class_predictor:x},box_predictor_2:{box_encoding_predictor:D,class_predictor:N},box_predictor_3:{box_encoding_predictor:Y,class_predictor:q},box_predictor_4:{box_encoding_predictor:O,class_predictor:at},box_predictor_5:{box_encoding_predictor:st,class_predictor:it}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:c}}function Xr(o){let t=[],{extractWeights:e,getRemainingWeights:r}=A(o),{extractMobilenetV1Params:a,extractPredictionLayerParams:s}=Go(e,t),i=a(),c=s(),p={extra_dim:n.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:i,prediction_layer:c,output_layer:p},paramMappings:t}}function jo(o,t){let e=B(o,t);function r(p,u,f){let l=e(`${p}/Conv2d_${u}_pointwise/weights`,4,`${f}/filters`),d=e(`${p}/Conv2d_${u}_pointwise/convolution_bn_offset`,1,`${f}/batch_norm_offset`);return{filters:l,batch_norm_offset:d}}function a(p){let u=`mobilenetv1/conv_${p}`,f=`MobilenetV1/Conv2d_${p}_depthwise`,l=`${u}/depthwise_conv`,d=`${u}/pointwise_conv`,g=e(`${f}/depthwise_weights`,4,`${l}/filters`),_=e(`${f}/BatchNorm/gamma`,1,`${l}/batch_norm_scale`),F=e(`${f}/BatchNorm/beta`,1,`${l}/batch_norm_offset`),h=e(`${f}/BatchNorm/moving_mean`,1,`${l}/batch_norm_mean`),y=e(`${f}/BatchNorm/moving_variance`,1,`${l}/batch_norm_variance`);return{depthwise_conv:{filters:g,batch_norm_scale:_,batch_norm_offset:F,batch_norm_mean:h,batch_norm_variance:y},pointwise_conv:r("MobilenetV1",p,d)}}function s(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:a(1),conv_2:a(2),conv_3:a(3),conv_4:a(4),conv_5:a(5),conv_6:a(6),conv_7:a(7),conv_8:a(8),conv_9:a(9),conv_10:a(10),conv_11:a(11),conv_12:a(12),conv_13:a(13)}}function i(p,u){let f=e(`${p}/weights`,4,`${u}/filters`),l=e(`${p}/biases`,1,`${u}/bias`);return{filters:f,bias:l}}function c(p){let u=i(`Prediction/BoxPredictor_${p}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${p}/box_encoding_predictor`),f=i(`Prediction/BoxPredictor_${p}/ClassPredictor`,`prediction_layer/box_predictor_${p}/class_predictor`);return{box_encoding_predictor:u,class_predictor:f}}function m(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:c(0),box_predictor_1:c(1),box_predictor_2:c(2),box_predictor_3:c(3),box_predictor_4:c(4),box_predictor_5:c(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:m}}function Jr(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=jo(o,t),a=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!K(a))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${a}`);let s={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:a}};return L(o,t),{params:s,paramMappings:t}}function H(o,t,e){return n.tidy(()=>{let r=n.conv2d(o,t.filters,e,"same");return r=n.add(r,t.batch_norm_offset),n.clipByValue(r,0,6)})}var Uo=.0010000000474974513;function Xo(o,t,e){return n.tidy(()=>{let r=n.depthwiseConv2d(o,t.filters,e,"same");return r=n.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Uo),n.clipByValue(r,0,6)})}function Jo(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function qr(o,t){return n.tidy(()=>{let e,r=H(o,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 c=i+1,m=Jo(c);r=Xo(r,s.depthwise_conv,m),r=H(r,s.pointwise_conv,[1,1]),c===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function qo(o,t,e){let r=o.arraySync(),a=Math.min(r[t][0],r[t][2]),s=Math.min(r[t][1],r[t][3]),i=Math.max(r[t][0],r[t][2]),c=Math.max(r[t][1],r[t][3]),m=Math.min(r[e][0],r[e][2]),p=Math.min(r[e][1],r[e][3]),u=Math.max(r[e][0],r[e][2]),f=Math.max(r[e][1],r[e][3]),l=(i-a)*(c-s),d=(u-m)*(f-p);if(l<=0||d<=0)return 0;let g=Math.max(a,m),_=Math.max(s,p),F=Math.min(i,u),h=Math.min(c,f),y=Math.max(F-g,0)*Math.max(h-_,0);return y/(l+d-y)}function Zr(o,t,e,r,a){let s=o.shape[0],i=Math.min(e,s),c=t.map((u,f)=>({score:u,boxIndex:f})).filter(u=>u.score>a).sort((u,f)=>f.score-u.score),m=u=>u<=r?1:0,p=[];return c.forEach(u=>{if(p.length>=i)return;let f=u.score;for(let l=p.length-1;l>=0;--l){let d=qo(o,u.boxIndex,p[l]);if(d!==0&&(u.score*=m(d),u.score<=a))break}f===u.score&&p.push(u.boxIndex)}),p}function Zo(o){let t=n.unstack(n.transpose(o,[1,0])),e=[n.sub(t[2],t[0]),n.sub(t[3],t[1])],r=[n.add(t[0],n.div(e[0],2)),n.add(t[1],n.div(e[1],2))];return{sizes:e,centers:r}}function Ko(o,t){let{sizes:e,centers:r}=Zo(o),a=n.unstack(n.transpose(t,[1,0])),s=n.div(n.mul(n.exp(n.div(a[2],5)),e[0]),2),i=n.add(n.mul(n.div(a[0],10),e[0]),r[0]),c=n.div(n.mul(n.exp(n.div(a[3],5)),e[1]),2),m=n.add(n.mul(n.div(a[1],10),e[1]),r[1]);return n.transpose(n.stack([n.sub(i,s),n.sub(m,c),n.add(i,s),n.add(m,c)]),[1,0])}function Kr(o,t,e){return n.tidy(()=>{let r=o.shape[0],a=Ko(n.reshape(n.tile(e.extra_dim,[r,1,1]),[-1,4]),n.reshape(o,[-1,4]));a=n.reshape(a,[r,a.shape[0]/r,4]);let s=n.sigmoid(n.slice(t,[0,0,1],[-1,-1,-1])),i=n.slice(s,[0,0,0],[-1,-1,1]);i=n.reshape(i,[r,i.shape[1]]);let c=n.unstack(a),m=n.unstack(i);return{boxes:c,scores:m}})}function Tt(o,t){return n.tidy(()=>{let e=o.shape[0],r=n.reshape(_t(o,t.box_encoding_predictor),[e,-1,1,4]),a=n.reshape(_t(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:a}})}function Qr(o,t,e){return n.tidy(()=>{let r=H(o,e.conv_0,[1,1]),a=H(r,e.conv_1,[2,2]),s=H(a,e.conv_2,[1,1]),i=H(s,e.conv_3,[2,2]),c=H(i,e.conv_4,[1,1]),m=H(c,e.conv_5,[2,2]),p=H(m,e.conv_6,[1,1]),u=H(p,e.conv_7,[2,2]),f=Tt(t,e.box_predictor_0),l=Tt(o,e.box_predictor_1),d=Tt(a,e.box_predictor_2),g=Tt(i,e.box_predictor_3),_=Tt(m,e.box_predictor_4),F=Tt(u,e.box_predictor_5),h=n.concat([f.boxPredictionEncoding,l.boxPredictionEncoding,d.boxPredictionEncoding,g.boxPredictionEncoding,_.boxPredictionEncoding,F.boxPredictionEncoding],1),y=n.concat([f.classPrediction,l.classPrediction,d.classPrediction,g.classPrediction,_.classPrediction,F.classPrediction],1);return{boxPredictions:h,classPredictions:y}})}var z=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||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 Pt=class extends I{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(512,!1),"float32"),a=n.sub(n.div(r,127.5),1),s=qr(a,e.mobilenetv1),{boxPredictions:i,classPredictions:c}=Qr(s.out,s.conv11,e.prediction_layer);return Kr(i,c,e.output_layer)})}async forward(t){return this.forwardInput(await M(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:a}=new z(e),s=await M(t),{boxes:i,scores:c}=this.forwardInput(s),m=i[0],p=c[0];for(let x=1;x{let[D,N]=[Math.max(0,h[x][0]),Math.min(1,h[x][2])].map(O=>O*F),[Y,q]=[Math.max(0,h[x][1]),Math.min(1,h[x][3])].map(O=>O*_);return new E(u[x],new St(Y,D,q-Y,N-D),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return m.dispose(),p.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Jr(t)}extractParams(t){return Xr(t)}};function Qo(o){let t=new Pt;return t.extractWeights(o),t}function vl(o){return Qo(o)}var to=class extends Pt{};var eo=.4,ro=[new b(.738768,.874946),new b(2.42204,2.65704),new b(4.30971,7.04493),new b(10.246,4.59428),new b(12.6868,11.8741)],oo=[new b(1.603231,2.094468),new b(6.041143,7.080126),new b(2.882459,3.518061),new b(4.266906,5.178857),new b(9.041765,10.66308)],no=[117.001,114.697,97.404],ao="tiny_yolov2_model",so="tiny_yolov2_separable_conv_model";var Se=o=>typeof o=="number";function io(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!Se(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>Se(t.x)&&Se(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(Se)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}function Xt(o){return n.tidy(()=>{let t=n.mul(o,n.scalar(.10000000149011612));return n.add(n.relu(n.sub(o,t)),t)})}function ot(o,t){return n.tidy(()=>{let e=n.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=n.conv2d(e,t.conv.filters,[1,1],"valid"),e=n.sub(e,t.bn.sub),e=n.mul(e,t.bn.truediv),e=n.add(e,t.conv.bias),Xt(e)})}function nt(o,t){return n.tidy(()=>{let e=n.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=n.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=n.add(e,t.bias),Xt(e)})}function tn(o,t){let e=$t(o,t);function r(i,c){let m=n.tensor1d(o(i)),p=n.tensor1d(o(i));return t.push({paramPath:`${c}/sub`},{paramPath:`${c}/truediv`}),{sub:m,truediv:p}}function a(i,c,m){let p=e(i,c,3,`${m}/conv`),u=r(c,`${m}/bn`);return{conv:p,bn:u}}let s=Ot(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function co(o,t,e,r){let{extractWeights:a,getRemainingWeights:s}=A(o),i=[],{extractConvParams:c,extractConvWithBatchNormParams:m,extractSeparableConvParams:p}=tn(a,i),u;if(t.withSeparableConvs){let[f,l,d,g,_,F,h,y,x]=r,D=t.isFirstLayerConv2d?c(f,l,3,"conv0"):p(f,l,"conv0"),N=p(l,d,"conv1"),Y=p(d,g,"conv2"),q=p(g,_,"conv3"),O=p(_,F,"conv4"),at=p(F,h,"conv5"),st=y?p(h,y,"conv6"):void 0,it=x?p(y,x,"conv7"):void 0,gt=c(x||y||h,5*e,1,"conv8");u={conv0:D,conv1:N,conv2:Y,conv3:q,conv4:O,conv5:at,conv6:st,conv7:it,conv8:gt}}else{let[f,l,d,g,_,F,h,y,x]=r,D=m(f,l,"conv0"),N=m(l,d,"conv1"),Y=m(d,g,"conv2"),q=m(g,_,"conv3"),O=m(_,F,"conv4"),at=m(F,h,"conv5"),st=m(h,y,"conv6"),it=m(y,x,"conv7"),gt=c(x,5*e,1,"conv8");u={conv0:D,conv1:N,conv2:Y,conv3:q,conv4:O,conv5:at,conv6:st,conv7:it,conv8:gt}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:u,paramMappings:i}}function en(o,t){let e=B(o,t);function r(c){let m=e(`${c}/sub`,1),p=e(`${c}/truediv`,1);return{sub:m,truediv:p}}function a(c){let m=e(`${c}/filters`,4),p=e(`${c}/bias`,1);return{filters:m,bias:p}}function s(c){let m=a(`${c}/conv`),p=r(`${c}/bn`);return{conv:m,bn:p}}let i=Ht(e);return{extractConvParams:a,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function mo(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}=en(o,e),i;if(t.withSeparableConvs){let c=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?r("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:c>7?s("conv6"):void 0,conv7:c>8?s("conv7"):void 0,conv8:r("conv8")}}else i={conv0:a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:a("conv6"),conv7:a("conv7"),conv8:r("conv8")};return L(o,e),{params:i,paramMappings:e}}var J=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.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 cr=class extends I{constructor(e){super("TinyYolov2");io(e),this._config=e}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(e,r){let a=ot(e,r.conv0);return a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv1),a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv2),a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv3),a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv4),a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv5),a=n.maxPool(a,[2,2],[1,1],"same"),a=ot(a,r.conv6),a=ot(a,r.conv7),_t(a,r.conv8,"valid",!1)}runMobilenet(e,r){let a=this.config.isFirstLayerConv2d?Xt(_t(e,r.conv0,"valid",!1)):nt(e,r.conv0);return a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv1),a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv2),a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv3),a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv4),a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv5),a=n.maxPool(a,[2,2],[1,1],"same"),a=r.conv6?nt(a,r.conv6):a,a=r.conv7?nt(a,r.conv7):a,_t(a,r.conv8,"valid",!1)}forwardInput(e,r){let{params:a}=this;if(!a)throw new Error("TinyYolov2 - load model before inference");return n.tidy(()=>{let s=n.cast(e.toBatchTensor(r,!1),"float32");return s=this.config.meanRgb?X(s,this.config.meanRgb):s,s=s.div(255),this.config.withSeparableConvs?this.runMobilenet(s,a):this.runTinyYolov2(s,a)})}async forward(e,r){return this.forwardInput(await M(e),r)}async detect(e,r={}){let{inputSize:a,scoreThreshold:s}=new J(r),i=await M(e),c=await this.forwardInput(i,a),m=n.tidy(()=>n.unstack(c)[0].expandDims()),p={width:i.getInputWidth(0),height:i.getInputHeight(0)},u=await this.extractBoxes(m,i.getReshapedInputDimensions(0),s);c.dispose(),m.dispose();let f=u.map(h=>h.box),l=u.map(h=>h.score),d=u.map(h=>h.classScore),g=u.map(h=>this.config.classes[h.label]);return gr(f.map(h=>h.rescale(a)),l,this.config.iouThreshold,!0).map(h=>new ct(l[h],d[h],g[h],f[h],p))}getDefaultModelName(){return""}extractParamsFromWeightMap(e){return mo(e,this.config)}extractParams(e){let r=this.config.filterSizes||cr.DEFAULT_FILTER_SIZES,a=r?r.length:void 0;if(a!==7&&a!==8&&a!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${a} filterSizes in config`);return co(e,this.config,this.boxEncodingSize,r)}async extractBoxes(e,r,a){let{width:s,height:i}=r,c=Math.max(s,i),m=c/s,p=c/i,u=e.shape[1],f=this.config.anchors.length,[l,d,g]=n.tidy(()=>{let y=e.reshape([u,u,f,this.boxEncodingSize]),x=y.slice([0,0,0,0],[u,u,f,4]),D=y.slice([0,0,0,4],[u,u,f,1]),N=this.withClassScores?n.softmax(y.slice([0,0,0,5],[u,u,f,this.config.classes.length]),3):n.scalar(0);return[x,D,N]}),_=[],F=await d.array(),h=await l.array();for(let y=0;ya){let Y=(x+fe(h[y][x][D][0]))/u*m,q=(y+fe(h[y][x][D][1]))/u*p,O=Math.exp(h[y][x][D][2])*this.config.anchors[D].x/u*m,at=Math.exp(h[y][x][D][3])*this.config.anchors[D].y/u*p,st=Y-O/2,it=q-at/2,gt={row:y,col:x,anchor:D},{classScore:pr,label:ur}=this.withClassScores?await this.extractPredictedClass(g,gt):{classScore:1,label:0};_.push({box:new Nt(st,it,st+O,it+at),score:N,classScore:N*pr,label:ur,...gt})}}return l.dispose(),d.dispose(),g.dispose(),_}async extractPredictedClass(e,r){let{row:a,col:s,anchor:i}=r,c=await e.array();return Array(this.config.classes.length).fill(0).map((m,p)=>c[a][s][i][p]).map((m,p)=>({classScore:m,label:p})).reduce((m,p)=>m.classScore>p.classScore?m:p)}},wt=cr;wt.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Jt=class extends wt{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:eo,classes:["face"],...t?{anchors:oo,meanRgb:no}:{anchors:ro,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(a=>new E(a.score,a.relativeBox,{width:a.imageWidth,height:a.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?so:ao}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function pd(o,t=!0){let e=new Jt(t);return e.extractWeights(o),e}var Le=class extends J{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var V=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function Ft(o,t,e,r,a=({alignedRect:s})=>s){let s=o.map(m=>Yt(m)?a(m):m.detection),i=r||(t instanceof n.Tensor?await oe(t,s):await re(t,s)),c=await e(i);return i.forEach(m=>m instanceof n.Tensor&&m.dispose()),c}async function qt(o,t,e,r,a){return Ft([o],t,async s=>e(s[0]),r,a)}var po=.4,uo=[new b(1.603231,2.094468),new b(6.041143,7.080126),new b(2.882459,3.518061),new b(4.266906,5.178857),new b(9.041765,10.66308)],fo=[117.001,114.697,97.404];var Zt=class extends wt{constructor(){let t={withSeparableConvs:!0,iouThreshold:po,classes:["face"],anchors:uo,meanRgb:fo,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(a=>new E(a.score,a.relativeBox,{width:a.imageWidth,height:a.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new Pt,tinyFaceDetector:new Zt,tinyYolov2:new Jt,faceLandmark68Net:new jt,faceLandmark68TinyNet:new Ie,faceRecognitionNet:new Ut,faceExpressionNet:new we,ageGenderNet:new Me},rn=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),Od=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),Hd=(o,t)=>P.tinyYolov2.locateFaces(o,t),on=o=>P.faceLandmark68Net.detectLandmarks(o),zd=o=>P.faceLandmark68TinyNet.detectLandmarks(o),Vd=o=>P.faceRecognitionNet.computeFaceDescriptor(o),Yd=o=>P.faceExpressionNet.predictExpressions(o),Gd=o=>P.ageGenderNet.predictAgeAndGender(o),nn=o=>P.ssdMobilenetv1.load(o),jd=o=>P.tinyFaceDetector.load(o),Ud=o=>P.tinyYolov2.load(o),Xd=o=>P.faceLandmark68Net.load(o),Jd=o=>P.faceLandmark68TinyNet.load(o),qd=o=>P.faceRecognitionNet.load(o),Zd=o=>P.faceExpressionNet.load(o),Kd=o=>P.ageGenderNet.load(o),Qd=nn,th=rn,eh=on;var Ae=class extends V{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.extractedFaces=a}},Dt=class extends Ae{async run(){let t=await this.parentTask,e=await Ft(t,this.input,async r=>Promise.all(r.map(a=>P.faceExpressionNet.predictExpressions(a))),this.extractedFaces);return t.map((r,a)=>tr(r,e[a]))}withAgeAndGender(){return new Mt(this,this.input)}},Et=class extends Ae{async run(){let t=await this.parentTask;if(!t)return;let e=await qt(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return tr(t,e)}withAgeAndGender(){return new Ct(this,this.input)}},ut=class extends Dt{withAgeAndGender(){return new lt(this,this.input)}withFaceDescriptors(){return new ht(this,this.input)}},ft=class extends Et{withAgeAndGender(){return new dt(this,this.input)}withFaceDescriptor(){return new bt(this,this.input)}};var We=class extends V{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.extractedFaces=a}},Mt=class extends We{async run(){let t=await this.parentTask,e=await Ft(t,this.input,async r=>Promise.all(r.map(a=>P.ageGenderNet.predictAgeAndGender(a))),this.extractedFaces);return t.map((r,a)=>{let{age:s,gender:i,genderProbability:c}=e[a];return sr(ir(r,i,c),s)})}withFaceExpressions(){return new Dt(this,this.input)}},Ct=class extends We{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:a}=await qt(t,this.input,s=>P.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return sr(ir(t,r,a),e)}withFaceExpressions(){return new Et(this,this.input)}},lt=class extends Mt{withFaceExpressions(){return new ut(this,this.input)}withFaceDescriptors(){return new ht(this,this.input)}},dt=class extends Ct{withFaceExpressions(){return new ft(this,this.input)}withFaceDescriptor(){return new bt(this,this.input)}};var ke=class extends V{constructor(e,r){super();this.parentTask=e;this.input=r}},ht=class extends ke{async run(){let t=await this.parentTask;return(await Ft(t,this.input,r=>Promise.all(r.map(a=>P.faceRecognitionNet.computeFaceDescriptor(a))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,a)=>ar(t[a],r))}withFaceExpressions(){return new ut(this,this.input)}withAgeAndGender(){return new lt(this,this.input)}},bt=class extends ke{async run(){let t=await this.parentTask;if(!t)return;let e=await qt(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return ar(t,e)}withFaceExpressions(){return new ft(this,this.input)}withAgeAndGender(){return new dt(this,this.input)}};var Be=class extends V{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=a}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},Re=class extends Be{async run(){let t=await this.parentTask,e=t.map(i=>i.detection),r=this.input instanceof n.Tensor?await oe(this.input,e):await re(this.input,e),a=await Promise.all(r.map(i=>this.landmarkNet.detectLandmarks(i)));return r.forEach(i=>i instanceof n.Tensor&&i.dispose()),t.filter((i,c)=>a[c]).map((i,c)=>ie(i,a[c]))}withFaceExpressions(){return new ut(this,this.input)}withAgeAndGender(){return new lt(this,this.input)}withFaceDescriptors(){return new ht(this,this.input)}},$e=class extends Be{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof n.Tensor?await oe(this.input,[e]):await re(this.input,[e]),a=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(s=>s instanceof n.Tensor&&s.dispose()),ie(t,a)}withFaceExpressions(){return new ft(this,this.input)}withAgeAndGender(){return new dt(this,this.input)}withFaceDescriptor(){return new bt(this,this.input)}};var Oe=class extends V{constructor(e,r=new z){super();this.input=e;this.options=r}},me=class extends Oe{async run(){let{input:t,options:e}=this,r;if(e instanceof Le)r=P.tinyFaceDetector.locateFaces(t,e);else if(e instanceof z)r=P.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof J)r=P.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise((t,e)=>{this.run().then(r=>t(r.map(a=>At({},a)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new Re(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Dt(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Mt(this.runAndExtendWithFaceDetections(),this.input)}},He=class extends Oe{async run(){let t=await new me(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?At({},e):void 0)})}withFaceLandmarks(t=!1){return new $e(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Et(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Ct(this.runAndExtendWithFaceDetection(),this.input)}};function Kh(o,t=new z){return new He(o,t)}function mr(o,t=new z){return new me(o,t)}async function an(o,t){return mr(o,new z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function nb(o,t={}){return mr(o,new J(t)).withFaceLandmarks().withFaceDescriptors()}var ab=an;function lo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((a,s)=>a-r[s]).reduce((a,s)=>a+s*s,0))}var ze=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let a=1,s=()=>`person ${a++}`;this._labeledDescriptors=r.map(i=>{if(i instanceof Q)return i;if(i instanceof Float32Array)return new Q(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new Q(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,e){return e.map(r=>lo(r,t)).reduce((r,a)=>r+a,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Kt(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>Q.fromJSON(r));return new ze(e,t.distanceThreshold)}};function Pb(o){let t=new Zt;return t.extractWeights(o),t}function sn(o,t){let{width:e,height:r}=new S(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(a=>sn(a,{width:e,height:r}));if(Yt(o)){let a=o.detection.forSize(e,r),s=o.unshiftedLandmarks.forSize(a.box.width,a.box.height);return ie(At(o,a),s)}return tt(o)?At(o,o.detection.forSize(e,r)):o instanceof $||o instanceof E?o.forSize(e,r):o}var Ab=Wr;export{Me as AgeGenderNet,Nt as BoundingBox,w as Box,V as ComposableTask,ht as ComputeAllFaceDescriptorsTask,ke as ComputeFaceDescriptorsTaskBase,bt as ComputeSingleFaceDescriptorTask,Re as DetectAllFaceLandmarksTask,me as DetectAllFacesTask,Be as DetectFaceLandmarksTaskBase,Oe as DetectFacesTaskBase,$e as DetectSingleFaceLandmarksTask,He as DetectSingleFaceTask,S as Dimensions,Sr as FACE_EXPRESSION_LABELS,E as FaceDetection,to as FaceDetectionNet,we as FaceExpressionNet,pt as FaceExpressions,jt as FaceLandmark68Net,Ie as FaceLandmark68TinyNet,Vr as FaceLandmarkNet,$ as FaceLandmarks,vr as FaceLandmarks5,Lt as FaceLandmarks68,Kt as FaceMatch,ze as FaceMatcher,Ut as FaceRecognitionNet,rr as Gender,Qt as LabeledBox,Q as LabeledFaceDescriptors,rt as NetInput,I as NeuralNetwork,ct as ObjectDetection,b as Point,yr as PredictedBox,St as Rect,Pt as SsdMobilenetv1,z as SsdMobilenetv1Options,Zt as TinyFaceDetector,Le as TinyFaceDetectorOptions,Jt as TinyYolov2,J as TinyYolov2Options,ab as allFaces,an as allFacesSsdMobilenetv1,nb as allFacesTinyYolov2,_r as awaitMediaLoaded,Tr as bufferToImage,Vd as computeFaceDescriptor,Rt as createCanvas,be as createCanvasFromMedia,vl as createFaceDetectionNet,vf as createFaceRecognitionNet,Qo as createSsdMobilenetv1,Pb as createTinyFaceDetector,pd as createTinyYolov2,mr as detectAllFaces,on as detectFaceLandmarks,zd as detectFaceLandmarksTiny,eh as detectLandmarks,Kh as detectSingleFace,Ar as draw,T as env,lo as euclideanDistance,sr as extendWithAge,ar as extendWithFaceDescriptor,At as extendWithFaceDetection,tr as extendWithFaceExpressions,ie as extendWithFaceLandmarks,ir as extendWithGender,oe as extractFaceTensors,re as extractFaces,Mi as fetchImage,Fr as fetchJson,Li as fetchNetWeights,mt as fetchOrThrow,$i as fetchVideo,k as getContext2dOrThrow,Bt as getMediaDimensions,Pr as imageTensorToCanvas,wr as imageToSquare,Vn as inverseSigmoid,hr as iou,Qe as isMediaElement,he as isMediaLoaded,Pf as isWithAge,tt as isWithFaceDetection,Lr as isWithFaceExpressions,Yt as isWithFaceLandmarks,Ef as isWithGender,Kd as loadAgeGenderModel,Qd as loadFaceDetectionModel,Zd as loadFaceExpressionModel,Xd as loadFaceLandmarkModel,Jd as loadFaceLandmarkTinyModel,qd as loadFaceRecognitionModel,nn as loadSsdMobilenetv1Model,jd as loadTinyFaceDetectorModel,Ud as loadTinyYolov2Model,Er as loadWeightMap,th as locateFaces,ji as matchDimensions,br as minBbox,P as nets,gr as nonMaxSuppression,X as normalize,xr as padToSquare,Gd as predictAgeAndGender,Yd as recognizeFaceExpressions,sn as resizeResults,Wt as resolveInput,Hn as shuffleArray,fe as sigmoid,rn as ssdMobilenetv1,n as tf,Od as tinyFaceDetector,Hd as tinyYolov2,M as toNetInput,dr as utils,io as validateConfig,Ab as version}; diff --git a/dist/face-api.esm.js b/dist/face-api.esm.js index 32799ab..5c7bc9e 100644 --- a/dist/face-api.esm.js +++ b/dist/face-api.esm.js @@ -4,64 +4,64 @@ author: ' */ -var SF=Object.defineProperty;var NF=(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 wy=(e,t)=>{for(var n in t)SF(e,n,{get:t[n],enumerable:!0})};var We={};wy(We,{Abs:()=>Al,Acos:()=>Fl,Acosh:()=>Dl,AdadeltaOptimizer:()=>Cf,AdagradOptimizer:()=>_f,AdamOptimizer:()=>Ef,AdamaxOptimizer:()=>$f,Add:()=>ms,AddN:()=>Ii,All:()=>Rl,Any:()=>Ml,ArgMax:()=>Ti,ArgMin:()=>xc,Asin:()=>Pl,Asinh:()=>Ol,Atan:()=>Ll,Atan2:()=>Wl,Atanh:()=>zl,AvgPool:()=>Si,AvgPool3D:()=>vc,AvgPool3DGrad:()=>ym,AvgPoolGrad:()=>bm,BackendWasm:()=>$$,BatchMatMul:()=>Ni,BatchToSpaceND:()=>Bl,Bincount:()=>xm,BroadcastArgs:()=>vm,BroadcastTo:()=>jI,Callback:()=>o2,CallbackList:()=>cN,Cast:()=>Ci,Ceil:()=>_i,ClipByValue:()=>fs,Complex:()=>wm,ComplexAbs:()=>wc,Concat:()=>Vl,Conv2D:()=>Ei,Conv2DBackpropFilter:()=>km,Conv2DBackpropInput:()=>$i,Conv3D:()=>kc,Conv3DBackpropFilterV2:()=>Im,Conv3DBackpropInputV2:()=>Tm,Cos:()=>Ai,Cosh:()=>Fi,CropAndResize:()=>Gl,Cumprod:()=>Ul,Cumsum:()=>Di,CustomCallback:()=>hN,DataStorage:()=>mm,DenseBincount:()=>Sm,DepthToSpace:()=>Hl,DepthwiseConv2dNative:()=>Ri,DepthwiseConv2dNativeBackpropFilter:()=>Nm,DepthwiseConv2dNativeBackpropInput:()=>Cm,Diag:()=>_m,Dilation2D:()=>Ic,Dilation2DBackpropFilter:()=>zh,Dilation2DBackpropInput:()=>Lh,ENV:()=>Bx,EarlyStopping:()=>l2,Einsum:()=>Em,Elu:()=>Pi,EluGrad:()=>$m,Environment:()=>GI,Equal:()=>ql,Erf:()=>jl,Exp:()=>Oi,ExpandDims:()=>Kl,Expm1:()=>Xl,FFT:()=>Am,Fill:()=>Tc,FlipLeftRight:()=>Yl,Floor:()=>Li,FloorDiv:()=>zi,FromPixels:()=>Wh,FusedBatchNorm:()=>Wi,FusedConv2D:()=>li,FusedDepthwiseConv2D:()=>ui,GPGPUContext:()=>Dh,GatherNd:()=>Jl,GatherV2:()=>Zl,GraphModel:()=>O0,Greater:()=>Ql,GreaterEqual:()=>Bi,History:()=>dN,IFFT:()=>Fm,Identity:()=>Vi,Imag:()=>Dm,InputSpec:()=>zt,IsFinite:()=>eu,IsInf:()=>tu,IsNan:()=>nu,KernelBackend:()=>yc,LRN:()=>Sc,LRNGrad:()=>Mm,LayerVariable:()=>rN,LayersModel:()=>Er,LeakyRelu:()=>Ui,Less:()=>au,LessEqual:()=>ru,LinSpace:()=>Rm,Log:()=>Gi,Log1p:()=>su,LogSoftmax:()=>KI,LogicalAnd:()=>iu,LogicalNot:()=>ou,LogicalOr:()=>lu,LogicalXor:()=>qI,LowerBound:()=>gD,MathBackendWebGL:()=>tg,Max:()=>Hi,MaxPool:()=>qi,MaxPool3D:()=>Nc,MaxPool3DGrad:()=>Om,MaxPoolGrad:()=>Pm,MaxPoolWithArgmax:()=>Lm,Maximum:()=>ji,Mean:()=>Ki,Min:()=>Xi,Minimum:()=>Yi,MirrorPad:()=>Zi,Mod:()=>uu,MomentumOptimizer:()=>Af,Multinomial:()=>zm,Multiply:()=>Ji,Neg:()=>pu,NonMaxSuppressionV3:()=>du,NonMaxSuppressionV4:()=>hu,NonMaxSuppressionV5:()=>mu,NotEqual:()=>cu,OP_SCOPE_SUFFIX:()=>Hx,OneHot:()=>Qi,OnesLike:()=>fu,Optimizer:()=>Dr,OptimizerConstructors:()=>Kr,Pack:()=>gu,PadV2:()=>eo,Pool:()=>bD,Pow:()=>to,Prelu:()=>no,Prod:()=>ao,RMSPropOptimizer:()=>Ff,RNN:()=>br,RaggedTensorToTensor:()=>Wm,Range:()=>Cc,Rank:()=>zy,Real:()=>Bm,RealDiv:()=>Mi,Reciprocal:()=>bu,Reduction:()=>kn,Relu:()=>ro,Relu6:()=>oo,Reshape:()=>yu,ResizeBilinear:()=>io,ResizeBilinearGrad:()=>Um,ResizeNearestNeighbor:()=>so,ResizeNearestNeighborGrad:()=>Vm,Reverse:()=>lo,RotateWithOffset:()=>Ru,Round:()=>uo,Rsqrt:()=>po,SGDOptimizer:()=>td,ScatterNd:()=>xu,SearchSorted:()=>Gm,Select:()=>vu,Selu:()=>wu,Sequential:()=>Il,Sigmoid:()=>ho,Sign:()=>Tu,Sin:()=>co,Sinh:()=>Iu,Slice:()=>ku,Softmax:()=>go,Softplus:()=>Su,SpaceToBatchND:()=>Nu,SparseFillEmptyRows:()=>_c,SparseReshape:()=>_u,SparseSegmentMean:()=>Ec,SparseSegmentSum:()=>$c,SparseToDense:()=>Hm,SplitV:()=>Cu,Sqrt:()=>mo,Square:()=>Ac,SquaredDifference:()=>bo,Step:()=>bs,StridedSlice:()=>Eu,StringNGrams:()=>Fc,StringSplit:()=>Dc,StringToHashBucketFast:()=>Rc,Sub:()=>yo,Sum:()=>fo,SymbolicTensor:()=>ja,Tan:()=>xo,Tanh:()=>vo,Tensor:()=>$e,TensorBuffer:()=>jt,Tile:()=>gs,TopK:()=>$u,Transform:()=>Au,Transpose:()=>_r,Unique:()=>jm,Unpack:()=>Fu,UnsortedSegmentSum:()=>Mc,UpperBound:()=>yD,Variable:()=>rs,ZerosLike:()=>Du,_FusedMatMul:()=>oi,abs:()=>Lt,acos:()=>sv,acosh:()=>iv,add:()=>Q,addN:()=>OT,all:()=>Zm,any:()=>ic,argMax:()=>di,argMin:()=>ov,asin:()=>lv,asinh:()=>uv,atan:()=>pv,atan2:()=>cv,atanh:()=>dv,avgPool:()=>ga,avgPool3d:()=>mv,backend:()=>xT,backend_util:()=>C,basicLSTMCell:()=>BT,batchNorm:()=>vs,batchNorm2d:()=>fv,batchNorm3d:()=>gv,batchNorm4d:()=>bv,batchToSpaceND:()=>Gc,bincount:()=>yv,booleanMaskAsync:()=>kS,broadcastArgs:()=>VT,broadcastTo:()=>ai,broadcast_util:()=>Mu,browser:()=>wo,buffer:()=>Le,callbacks:()=>MH,cast:()=>le,ceil:()=>xv,clipByValue:()=>tn,clone:()=>ur,complex:()=>$r,concat:()=>Qe,concat1d:()=>vv,concat2d:()=>wv,concat3d:()=>kv,concat4d:()=>Iv,constraints:()=>oN,conv1d:()=>Jm,conv2d:()=>Dt,conv2dTranspose:()=>Qm,conv3d:()=>Sv,conv3dTranspose:()=>Nv,copyRegisteredKernels:()=>kD,cos:()=>Hc,cosh:()=>ef,cosineWindow:()=>kf,cumprod:()=>oc,cumsum:()=>tf,customGrad:()=>dr,data:()=>F2,denseBincount:()=>GT,deprecationWarn:()=>Jx,depthToSpace:()=>Cv,depthwiseConv2d:()=>ws,deregisterOp:()=>LH,device_util:()=>zc,diag:()=>HT,dilation2d:()=>_v,disableDeprecationWarnings:()=>YR,dispose:()=>Me,disposeVariables:()=>ZR,div:()=>fe,divNoNan:()=>Ev,dot:()=>$v,dropout:()=>aw,einsum:()=>jT,elu:()=>Pu,enableDebugMode:()=>XR,enableProdMode:()=>KR,enclosingPowerOfTwo:()=>rw,engine:()=>rr,env:()=>X,equal:()=>Qn,erf:()=>Av,euclideanNorm:()=>Rv,exp:()=>gn,expandDims:()=>mn,expm1:()=>Mv,eye:()=>nf,fft:()=>Qc,fill:()=>En,findBackend:()=>rM,findBackendFactory:()=>sM,floor:()=>Lu,floorDiv:()=>Ym,forceHalfFloat:()=>X_,fused:()=>vl,gather:()=>zu,gatherND:()=>NS,gather_util:()=>Qx,getBackend:()=>nM,getGradient:()=>Oy,getKernel:()=>Bh,getKernelsForBackend:()=>Vh,getThreadsCount:()=>bpe,gpgpu_util:()=>C_,grad:()=>EO,grads:()=>$O,greater:()=>jn,greaterEqual:()=>ks,ifft:()=>xl,imag:()=>Bc,image:()=>Nr,inTopKAsync:()=>CS,initializers:()=>lN,input:()=>CN,io:()=>Sn,irfft:()=>yf,isFinite:()=>Pv,isInf:()=>Ov,isNaN:()=>Lv,keep:()=>Qt,kernel_impls:()=>gr,layers:()=>uN,leakyRelu:()=>jc,less:()=>af,lessEqual:()=>Is,linalg:()=>ow,linspace:()=>ZT,loadGraphModel:()=>B6,loadGraphModelSync:()=>V6,loadLayersModel:()=>HU,localResponseNormalization:()=>zv,log:()=>ea,log1p:()=>qc,logSigmoid:()=>Wv,logSoftmax:()=>sf,logSumExp:()=>of,logicalAnd:()=>_a,logicalNot:()=>Kc,logicalOr:()=>lf,logicalXor:()=>Bv,losses:()=>zS,lowerBound:()=>QT,matMul:()=>Re,math:()=>yT,max:()=>Na,maxPool:()=>Mt,maxPool3d:()=>Vv,maxPoolWithArgmax:()=>eS,maximum:()=>fr,mean:()=>_t,memory:()=>Hh,meshgrid:()=>tS,metrics:()=>r2,min:()=>lc,minimum:()=>Wu,mirrorPad:()=>Uv,mod:()=>Gv,model:()=>UU,models:()=>s2,moments:()=>Xc,movingAverage:()=>IS,mul:()=>W,multiRNNCell:()=>nS,multinomial:()=>aS,neg:()=>vt,nextFrame:()=>lw,norm:()=>Ou,notEqual:()=>fi,oneHot:()=>fl,ones:()=>Jn,onesLike:()=>ta,op:()=>z,outerProduct:()=>rS,pad:()=>ba,pad1d:()=>sS,pad2d:()=>iS,pad3d:()=>oS,pad4d:()=>lS,pool:()=>Hv,pow:()=>Ar,prelu:()=>Zc,print:()=>Xx,prod:()=>jv,profile:()=>JR,raggedTensorToTensor:()=>uS,rand:()=>pS,randomGamma:()=>cS,randomNormal:()=>pf,randomStandardNormal:()=>dS,randomUniform:()=>Bu,range:()=>bl,ready:()=>tM,real:()=>gl,reciprocal:()=>Xv,registerBackend:()=>Xm,registerCallbackConstructor:()=>jU,registerGradient:()=>XI,registerKernel:()=>Pc,registerOp:()=>OH,regularizers:()=>i2,relu:()=>Xe,relu6:()=>cf,removeBackend:()=>aM,reshape:()=>B,reverse:()=>fa,reverse1d:()=>hS,reverse2d:()=>mS,reverse3d:()=>fS,reverse4d:()=>gS,rfft:()=>ed,round:()=>df,rsqrt:()=>hf,scalar:()=>ke,scatterND:()=>TS,scatter_util:()=>ev,searchSorted:()=>uf,selu:()=>mf,separableConv2d:()=>Ts,sequential:()=>GU,serialization:()=>se,setBackend:()=>eM,setPlatform:()=>iM,setThreadsCount:()=>gpe,setWasmPath:()=>mpe,setWasmPaths:()=>fpe,setWebGLContext:()=>ZC,setdiff1dAsync:()=>bS,sigmoid:()=>da,sign:()=>Yv,signal:()=>LS,sin:()=>ff,sinh:()=>gf,slice:()=>He,slice1d:()=>Jc,slice2d:()=>bf,slice3d:()=>Io,slice4d:()=>yl,slice_util:()=>qt,softmax:()=>Qa,softplus:()=>ko,spaceToBatchND:()=>Yc,sparse:()=>WS,sparseToDense:()=>SS,spectral:()=>OS,split:()=>Vn,sqrt:()=>ln,square:()=>lt,squaredDifference:()=>xf,squeeze:()=>Ss,stack:()=>Rt,step:()=>To,stridedSlice:()=>Zv,string:()=>BS,sub:()=>ce,sum:()=>ye,sumOutType:()=>Km,tan:()=>Jv,tanh:()=>hi,tensor:()=>Bn,tensor1d:()=>Ke,tensor2d:()=>Ca,tensor3d:()=>Vc,tensor4d:()=>$a,tensor5d:()=>yS,tensor6d:()=>xS,tensor_util:()=>qa,test_util:()=>RT,tidy:()=>O,tile:()=>Wn,time:()=>QR,topk:()=>Qv,train:()=>Ks,transpose:()=>Ae,truncatedNormal:()=>vf,unique:()=>ew,unregisterGradient:()=>wD,unregisterKernel:()=>vD,unsortedSegmentSum:()=>wf,unstack:()=>mt,upcastType:()=>ha,upperBound:()=>vS,util:()=>v,valueAndGrad:()=>AO,valueAndGrads:()=>FO,variable:()=>tw,variableGrads:()=>JT,version:()=>_pe,version_converter:()=>G6,version_core:()=>LM,version_layers:()=>$w,version_wasm:()=>ype,version_webgl:()=>uJ,webgl:()=>pJ,webgl_util:()=>YC,where:()=>fn,whereAsync:()=>nw,zeros:()=>It,zerosLike:()=>qe});var CF=Object.create,Px=Object.defineProperty,_F=Object.getOwnPropertyDescriptor,EF=Object.getOwnPropertyNames,$F=Object.getPrototypeOf,AF=Object.prototype.hasOwnProperty,Bt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Fe=(e,t)=>{for(var n in t)Px(e,n,{get:t[n],enumerable:!0})},FF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of EF(t))!AF.call(e,r)&&r!==n&&Px(e,r,{get:()=>t[r],enumerable:!(a=_F(t,r))||a.enumerable});return e},ds=(e,t,n)=>(n=e!=null?CF($F(e)):{},FF(t||!e||!e.__esModule?Px(n,"default",{value:e,enumerable:!0}):n,e)),DF=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(T){}function a(T,P,U){this.low=T|0,this.high=P|0,this.unsigned=!!U}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0});function r(T){return(T&&T.__isLong__)===!0}a.isLong=r;var s={},i={};function o(T,P){var U,j,q;return P?(T>>>=0,(q=0<=T&&T<256)&&(j=i[T],j)?j:(U=u(T,(T|0)<0?-1:0,!0),q&&(i[T]=U),U)):(T|=0,(q=-128<=T&&T<128)&&(j=s[T],j)?j:(U=u(T,T<0?-1:0,!1),q&&(s[T]=U),U))}a.fromInt=o;function l(T,P){if(isNaN(T))return P?w:x;if(P){if(T<0)return w;if(T>=g)return A}else{if(T<=-b)return M;if(T+1>=b)return $}return T<0?l(-T,P).neg():u(T%f|0,T/f|0,P)}a.fromNumber=l;function u(T,P,U){return new a(T,P,U)}a.fromBits=u;var p=Math.pow;function d(T,P,U){if(T.length===0)throw Error("empty string");if(T==="NaN"||T==="Infinity"||T==="+Infinity"||T==="-Infinity")return x;if(typeof P=="number"?(U=P,P=!1):P=!!P,U=U||10,U<2||360)throw Error("interior hyphen");if(j===0)return d(T.substring(1),P,U).neg();for(var q=l(p(U,8)),K=x,Y=0;Y>>0:this.low},D.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},D.toString=function(T){if(T=T||10,T<2||36>>0,J=re.toString(T);if(K=te,K.isZero())return J+Y;for(;J.length<6;)J="0"+J;Y=""+J+Y}},D.getHighBits=function(){return this.high},D.getHighBitsUnsigned=function(){return this.high>>>0},D.getLowBits=function(){return this.low},D.getLowBitsUnsigned=function(){return this.low>>>0},D.getNumBitsAbs=function(){if(this.isNegative())return this.eq(M)?64:this.neg().getNumBitsAbs();for(var T=this.high!=0?this.high:this.low,P=31;P>0&&(T&1<=0},D.isOdd=function(){return(this.low&1)===1},D.isEven=function(){return(this.low&1)===0},D.equals=function(T){return r(T)||(T=c(T)),this.unsigned!==T.unsigned&&this.high>>>31===1&&T.high>>>31===1?!1:this.high===T.high&&this.low===T.low},D.eq=D.equals,D.notEquals=function(T){return!this.eq(T)},D.neq=D.notEquals,D.ne=D.notEquals,D.lessThan=function(T){return this.comp(T)<0},D.lt=D.lessThan,D.lessThanOrEqual=function(T){return this.comp(T)<=0},D.lte=D.lessThanOrEqual,D.le=D.lessThanOrEqual,D.greaterThan=function(T){return this.comp(T)>0},D.gt=D.greaterThan,D.greaterThanOrEqual=function(T){return this.comp(T)>=0},D.gte=D.greaterThanOrEqual,D.ge=D.greaterThanOrEqual,D.compare=function(T){if(r(T)||(T=c(T)),this.eq(T))return 0;var P=this.isNegative(),U=T.isNegative();return P&&!U?-1:!P&&U?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},D.comp=D.compare,D.negate=function(){return!this.unsigned&&this.eq(M)?M:this.not().add(I)},D.neg=D.negate,D.add=function(T){r(T)||(T=c(T));var P=this.high>>>16,U=this.high&65535,j=this.low>>>16,q=this.low&65535,K=T.high>>>16,Y=T.high&65535,te=T.low>>>16,re=T.low&65535,J=0,ie=0,ae=0,oe=0;return oe+=q+re,ae+=oe>>>16,oe&=65535,ae+=j+te,ie+=ae>>>16,ae&=65535,ie+=U+Y,J+=ie>>>16,ie&=65535,J+=P+K,J&=65535,u(ae<<16|oe,J<<16|ie,this.unsigned)},D.subtract=function(T){return r(T)||(T=c(T)),this.add(T.neg())},D.sub=D.subtract,D.multiply=function(T){if(this.isZero())return x;if(r(T)||(T=c(T)),n){var P=n.mul(this.low,this.high,T.low,T.high);return u(P,n.get_high(),this.unsigned)}if(T.isZero())return x;if(this.eq(M))return T.isOdd()?M:x;if(T.eq(M))return this.isOdd()?M:x;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(y)&&T.lt(y))return l(this.toNumber()*T.toNumber(),this.unsigned);var U=this.high>>>16,j=this.high&65535,q=this.low>>>16,K=this.low&65535,Y=T.high>>>16,te=T.high&65535,re=T.low>>>16,J=T.low&65535,ie=0,ae=0,oe=0,ue=0;return ue+=K*J,oe+=ue>>>16,ue&=65535,oe+=q*J,ae+=oe>>>16,oe&=65535,oe+=K*re,ae+=oe>>>16,oe&=65535,ae+=j*J,ie+=ae>>>16,ae&=65535,ae+=q*re,ie+=ae>>>16,ae&=65535,ae+=K*te,ie+=ae>>>16,ae&=65535,ie+=U*J+j*re+q*te+K*Y,ie&=65535,u(oe<<16|ue,ie<<16|ae,this.unsigned)},D.mul=D.multiply,D.divide=function(T){if(r(T)||(T=c(T)),T.isZero())throw Error("division by zero");if(n){if(!this.unsigned&&this.high===-2147483648&&T.low===-1&&T.high===-1)return this;var P=(this.unsigned?n.div_u:n.div_s)(this.low,this.high,T.low,T.high);return u(P,n.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?w:x;var U,j,q;if(this.unsigned){if(T.unsigned||(T=T.toUnsigned()),T.gt(this))return w;if(T.gt(this.shru(1)))return N;q=w}else{if(this.eq(M)){if(T.eq(I)||T.eq(_))return M;if(T.eq(M))return I;var K=this.shr(1);return U=K.div(T).shl(1),U.eq(x)?T.isNegative()?I:_:(j=this.sub(T.mul(U)),q=U.add(j.div(T)),q)}else if(T.eq(M))return this.unsigned?w:x;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();q=x}for(j=this;j.gte(T);){U=Math.max(1,Math.floor(j.toNumber()/T.toNumber()));for(var Y=Math.ceil(Math.log(U)/Math.LN2),te=Y<=48?1:p(2,Y-48),re=l(U),J=re.mul(T);J.isNegative()||J.gt(j);)U-=te,re=l(U,this.unsigned),J=re.mul(T);re.isZero()&&(re=I),q=q.add(re),j=j.sub(J)}return q},D.div=D.divide,D.modulo=function(T){if(r(T)||(T=c(T)),n){var P=(this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,T.low,T.high);return u(P,n.get_high(),this.unsigned)}return this.sub(this.div(T).mul(T))},D.mod=D.modulo,D.rem=D.modulo,D.not=function(){return u(~this.low,~this.high,this.unsigned)},D.and=function(T){return r(T)||(T=c(T)),u(this.low&T.low,this.high&T.high,this.unsigned)},D.or=function(T){return r(T)||(T=c(T)),u(this.low|T.low,this.high|T.high,this.unsigned)},D.xor=function(T){return r(T)||(T=c(T)),u(this.low^T.low,this.high^T.high,this.unsigned)},D.shiftLeft=function(T){return r(T)&&(T=T.toInt()),(T&=63)===0?this:T<32?u(this.low<>>32-T,this.unsigned):u(0,this.low<>>T|this.high<<32-T,this.high>>T,this.unsigned):u(this.high>>T-32,this.high>=0?0:-1,this.unsigned)},D.shr=D.shiftRight,D.shiftRightUnsigned=function(T){if(r(T)&&(T=T.toInt()),T&=63,T===0)return this;var P=this.high;if(T<32){var U=this.low;return u(U>>>T|P<<32-T,P>>>T,this.unsigned)}else return T===32?u(P,0,this.unsigned):u(P>>>T-32,0,this.unsigned)},D.shru=D.shiftRightUnsigned,D.shr_u=D.shiftRightUnsigned,D.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},D.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},D.toBytes=function(T){return T?this.toBytesLE():this.toBytesBE()},D.toBytesLE=function(){var T=this.high,P=this.low;return[P&255,P>>>8&255,P>>>16&255,P>>>24,T&255,T>>>8&255,T>>>16&255,T>>>24]},D.toBytesBE=function(){var T=this.high,P=this.low;return[T>>>24,T>>>16&255,T>>>8&255,T&255,P>>>24,P>>>16&255,P>>>8&255,P&255]},a.fromBytes=function(T,P,U){return U?a.fromBytesLE(T,P):a.fromBytesBE(T,P)},a.fromBytesLE=function(T,P){return new a(T[0]|T[1]<<8|T[2]<<16|T[3]<<24,T[4]|T[5]<<8|T[6]<<16|T[7]<<24,P)},a.fromBytesBE=function(T,P){return new a(T[4]<<24|T[5]<<16|T[6]<<8|T[7],T[0]<<24|T[1]<<16|T[2]<<8|T[3],P)}}),RF=Bt(()=>{}),MF=Bt(()=>{}),PF=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)}),OF=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)}),LF=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)}),zF=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)}),WF=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,b,y=[],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&&(b=b+1640531527|0,h=y[g&127]^=m+b,f=h==0?f+1:0);for(f>=128&&(y[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=y[f+34&127],h=y[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,y[f]=m^h;d.w=b,d.X=y,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)}),VF=Bt(()=>{}),UF=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,N,_){var $=[];N=N==!0?{entropy:!0}:N||{};var A=y(b(N.entropy?[I,w(a)]:I==null?x():I,3),$),M=new f($),D=function(){for(var T=M.g(i),P=u,U=0;T=d;)T/=2,P/=2,U>>>=1;return(T+U)/P};return D.int32=function(){return M.g(4)|0},D.quick=function(){return M.g(4)/4294967296},D.double=D,y(w(M.S),a),(N.pass||_||function(T,P,U,j){return j&&(j.S&&g(j,M),T.state=function(){return g(M,{})}),U?(r[l]=T,P):T})(D,A,"global"in N?N.global:this==r,N.state)}function f(I){var N,_=I.length,$=this,A=0,M=$.i=$.j=0,D=$.S=[];for(_||(I=[_++]);A{var n=PF(),a=OF(),r=LF(),s=zF(),i=WF(),o=BF(),l=UF();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),DI=Bt(()=>{}),Ox=Bt(()=>{}),Mh=Bt(()=>{}),GF=Bt(()=>{}),HF=Bt(()=>{}),jF=Bt(()=>{}),qF=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 Ne.buffer!=yn&&Oa(Ne.buffer),Fd}function i(){return Ne.buffer!=yn&&Oa(Ne.buffer),Dd}function o(){return Ne.buffer!=yn&&Oa(Ne.buffer),Sp}function l(){return Ne.buffer!=yn&&Oa(Ne.buffer),Rd}function u(){return Ne.buffer!=yn&&Oa(Ne.buffer),Md}function p(){return Ne.buffer!=yn&&Oa(Ne.buffer),Pd}function d(){return Ne.buffer!=yn&&Oa(Ne.buffer),Od}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(S,F){h=S,m=F});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),b=[],y="./this.program",x=(S,F)=>{throw F},w=typeof window=="object",I=typeof importScripts=="function",N=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",_=c.ENVIRONMENT_IS_PTHREAD||!1,$="";function A(S){return c.locateFile?c.locateFile(S,$):$+S}var M,D,T,P;function U(S){S instanceof Mp||J("exiting due to exception: "+S)}var j,q,K;if(N){I?$=Mh().dirname($)+"/":$=__dirname+"/",K=()=>{q||(j=Ox(),q=Mh())},M=function(F,V){return K(),F=q.normalize(F),j.readFileSync(F,V?void 0:"utf8")},T=F=>{var V=M(F,!0);return V.buffer||(V=new Uint8Array(V)),V},D=(F,V,Z)=>{K(),F=q.normalize(F),j.readFile(F,function(pe,me){pe?Z(pe):V(me.buffer)})},process.argv.length>1&&(y=process.argv[1].replace(/\\/g,"/")),b=process.argv.slice(2),process.on("uncaughtException",function(F){if(!(F instanceof Mp))throw F}),process.on("unhandledRejection",function(F){throw F}),x=(F,V)=>{if(Ws())throw process.exitCode=F,V;U(V),process.exit(F)},c.inspect=function(){return"[Emscripten Module object]"};let S;try{S=GF()}catch(F){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),F}global.Worker=S.Worker}else(w||I)&&(I?$=self.location.href:typeof document!="undefined"&&document.currentScript&&($=document.currentScript.src),typeof a!="undefined"&&a&&($=a),$.indexOf("blob:")!==0?$=$.substr(0,$.replace(/[?#].*/,"").lastIndexOf("/")+1):$="",N||(M=S=>{var F=new XMLHttpRequest;return F.open("GET",S,!1),F.send(null),F.responseText},I&&(T=S=>{var F=new XMLHttpRequest;return F.open("GET",S,!1),F.responseType="arraybuffer",F.send(null),new Uint8Array(F.response)}),D=(S,F,V)=>{var Z=new XMLHttpRequest;Z.open("GET",S,!0),Z.responseType="arraybuffer",Z.onload=()=>{if(Z.status==200||Z.status==0&&Z.response){F(Z.response);return}V()},Z.onerror=V,Z.send(null)}),P=S=>document.title=S);N&&typeof performance=="undefined"&&(global.performance=HF().performance);var Y=console.log.bind(console),te=console.warn.bind(console);N&&(K(),Y=S=>j.writeSync(1,S+` -`),te=S=>j.writeSync(2,S+` -`));var re=c.print||Y,J=c.printErr||te;Object.assign(c,g),g=null,c.arguments&&(b=c.arguments),c.thisProgram&&(y=c.thisProgram),c.quit&&(x=c.quit);var ie=4;function ae(S){ae.shown||(ae.shown={}),ae.shown[S]||(ae.shown[S]=1,J(S))}function oe(S,F){if(typeof WebAssembly.Function=="function"){for(var V={i:"i32",j:"i64",f:"f32",d:"f64"},Z={parameters:[],results:F[0]=="v"?[]:[V[F[0]]]},pe=1;pe{Ee=S},Be=Atomics.load,je=Atomics.store,st=Atomics.compareExchange,et;c.wasmBinary&&(et=c.wasmBinary);var tt=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Ho("no native wasm support detected");var Ne,ft,dt=!1,bn;function Yt(S,F){S||Ho(F)}function Mn(S){var F=c["_"+S];return F}function Ut(S,F,V,Z,pe){var me={string:function(la){var tl=0;if(la!=null&&la!==0){var ak=(la.length<<2)+1;tl=el(ak),Ls(la,tl,ak)}return tl},array:function(la){var tl=el(la.length);return wr(la,tl),tl}};function ve(la){return F==="string"?ia(la):F==="boolean"?Boolean(la):la}var Ce=Mn(S),Ct=[],Ba=0;if(Z)for(var Va=0;Va(V.buffer instanceof SharedArrayBuffer&&(V=new Uint8Array(V)),F.decode.call(F,V))}var Gt=typeof TextDecoder!="undefined"?new Pn("utf8"):void 0;function sa(S,F,V){for(var Z=F+V,pe=F;S[pe]&&!(pe>=Z);)++pe;if(pe-F>16&&S.subarray&&Gt)return Gt.decode(S.subarray(F,pe));for(var me="";F>10,56320|Ba&1023)}}return me}function ia(S,F){return S?sa(i(),S,F):""}function Ur(S,F,V,Z){if(!(Z>0))return 0;for(var pe=V,me=V+Z-1,ve=0;ve=55296&&Ce<=57343){var Ct=S.charCodeAt(++ve);Ce=65536+((Ce&1023)<<10)|Ct&1023}if(Ce<=127){if(V>=me)break;F[V++]=Ce}else if(Ce<=2047){if(V+1>=me)break;F[V++]=192|Ce>>6,F[V++]=128|Ce&63}else if(Ce<=65535){if(V+2>=me)break;F[V++]=224|Ce>>12,F[V++]=128|Ce>>6&63,F[V++]=128|Ce&63}else{if(V+3>=me)break;F[V++]=240|Ce>>18,F[V++]=128|Ce>>12&63,F[V++]=128|Ce>>6&63,F[V++]=128|Ce&63}}return F[V]=0,V-pe}function Ls(S,F,V){return Ur(S,i(),F,V)}function Ad(S){for(var F=0,V=0;V=55296&&Z<=57343&&(Z=65536+((Z&1023)<<10)|S.charCodeAt(++V)&1023),Z<=127?++F:Z<=2047?F+=2:Z<=65535?F+=3:F+=4}return F}var Gr=typeof TextDecoder!="undefined"?new Pn("utf-16le"):void 0;function wr(S,F){s().set(S,F)}function Tp(S,F,V){for(var Z=0;Z>0]=S.charCodeAt(Z);V||(s()[F>>0]=0)}function Uo(S,F){return S%F>0&&(S+=F-S%F),S}var yn,Fd,Dd,Sp,Rd,Md,O1,Pd,Od;_&&(yn=c.buffer);function Oa(S){yn=S,c.HEAP8=Fd=new Int8Array(S),c.HEAP16=Sp=new Int16Array(S),c.HEAP32=Md=new Int32Array(S),c.HEAPU8=Dd=new Uint8Array(S),c.HEAPU16=Rd=new Uint16Array(S),c.HEAPU32=O1=new Uint32Array(S),c.HEAPF32=Pd=new Float32Array(S),c.HEAPF64=Od=new Float64Array(S)}var Ld=c.INITIAL_MEMORY||16777216;if(_)Ne=c.wasmMemory,yn=c.buffer;else if(c.wasmMemory)Ne=c.wasmMemory;else if(Ne=new WebAssembly.Memory({initial:Ld/65536,maximum:32768,shared:!0}),!(Ne.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"),N&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");Ne&&(yn=Ne.buffer),Ld=yn.byteLength,Oa(yn);var oa,Go=[],Hr=[],Wg=[],zd=[],zs=!1,Bg=!1,Wd=0;function Ws(){return tt||Wd>0}function xn(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)L1(c.preRun.shift());Gd(Go)}function Np(){zs=!0,!_&&Gd(Hr)}function Vg(){_||(_e.terminateAllThreads(),Bg=!0)}function Ug(){if(!_){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)Cp(c.postRun.shift());Gd(zd)}}function L1(S){Go.unshift(S)}function z1(S){Hr.unshift(S)}function Cp(S){zd.unshift(S)}var jr=0,Bd=null,La=null;function _p(S){jr++,c.monitorRunDependencies&&c.monitorRunDependencies(jr)}function W1(S){if(jr--,c.monitorRunDependencies&&c.monitorRunDependencies(jr),jr==0&&(Bd!==null&&(clearInterval(Bd),Bd=null),La)){var F=La;La=null,F()}}c.preloadedImages={},c.preloadedAudios={};function Ho(S){_?postMessage({cmd:"onAbort",arg:S}):c.onAbort&&c.onAbort(S),S="Aborted("+S+")",J(S),dt=!0,bn=1,S+=". Build with -s ASSERTIONS=1 for more info.";var F=new WebAssembly.RuntimeError(S);throw m(F),F}var Gg="data:application/octet-stream;base64,";function Ep(S){return S.startsWith(Gg)}function Vd(S){return S.startsWith("file://")}var vn;vn="tfjs-backend-wasm-threaded-simd.wasm",Ep(vn)||(vn=A(vn));function Ud(S){try{if(S==vn&&et)return new Uint8Array(et);if(T)return T(S);throw"both async and sync fetching of the wasm failed"}catch(F){Ho(F)}}function jo(){if(!et&&(w||I)){if(typeof fetch=="function"&&!Vd(vn))return fetch(vn,{credentials:"same-origin"}).then(function(S){if(!S.ok)throw"failed to load wasm binary file at '"+vn+"'";return S.arrayBuffer()}).catch(function(){return Ud(vn)});if(D)return new Promise(function(S,F){D(vn,function(V){S(new Uint8Array(V))},F)})}return Promise.resolve().then(function(){return Ud(vn)})}function Hg(){var S={env:nh,wasi_snapshot_preview1:nh};function F(ve,Ce){var Ct=ve.exports;if(c.asm=Ct,Jg(c.asm.emscripten_tls_init),oa=c.asm.__indirect_function_table,z1(c.asm.__wasm_call_ctors),ft=Ce,!_){var Ba=_e.unusedWorkers.length;_e.unusedWorkers.forEach(function(Va){_e.loadWasmModuleToWorker(Va,function(){--Ba||W1("wasm-instantiate")})})}}_||_p("wasm-instantiate");function V(ve){F(ve.instance,ve.module)}function Z(ve){return jo().then(function(Ce){return WebAssembly.instantiate(Ce,S)}).then(function(Ce){return Ce}).then(ve,function(Ce){J("failed to asynchronously prepare wasm: "+Ce),Ho(Ce)})}function pe(){return!et&&typeof WebAssembly.instantiateStreaming=="function"&&!Ep(vn)&&!Vd(vn)&&typeof fetch=="function"?fetch(vn,{credentials:"same-origin"}).then(function(ve){var Ce=WebAssembly.instantiateStreaming(ve,S);return Ce.then(V,function(Ct){return J("wasm streaming compile failed: "+Ct),J("falling back to ArrayBuffer instantiation"),Z(V)})}):Z(V)}if(c.instantiateWasm)try{var me=c.instantiateWasm(S,F);return me}catch(ve){return J("Module.instantiateWasm callback failed with error: "+ve),!1}return pe().catch(m),{}}var B1,V1,jg={};function Gd(S){for(;S.length>0;){var F=S.shift();if(typeof F=="function"){F(c);continue}var V=F.func;typeof V=="number"?F.arg===void 0?Ko(V)():Ko(V)(F.arg):V(F.arg===void 0?null:F.arg)}}function qo(S){var F=xy(),V=S();return oh(F),V}function FA(S){return S}function U1(S){var F=/\b_Z[\w\d_]+/g;return S.replace(F,function(V){var Z=V;return V===Z?V:Z+" ["+V+"]"})}function qg(S){u()[S>>2]=0;var F=_e.pthreads[S];delete _e.pthreads[S],F.worker.terminate(),yy(S),_e.runningWorkers.splice(_e.runningWorkers.indexOf(F.worker),1),F.worker.pthread=void 0}function Kg(S){var F=_e.pthreads[S];F.worker.postMessage({cmd:"cancel"})}function Hd(S){var F=_e.pthreads[S];if(F){u()[S>>2]=0;var V=F.worker;_e.returnWorkerToPool(V)}}function jd(S){wF(S)}function Xg(S){if(S instanceof Mp||S=="unwind")return bn;x(1,S)}var _e={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],init:function(){_?_e.initWorker():_e.initMainThread()},initMainThread:function(){for(var S=8,F=0;F>2]=0;try{S()}finally{u()[nk>>2]=1}},receiveObjectTransfer:function(S){},threadInit:function(){for(var S in _e.tlsInitFunctions)_e.tlsInitFunctions[S]()},loadWasmModuleToWorker:function(S,F){S.onmessage=V=>{var Z=V.data,pe=Z.cmd;if(S.pthread&&(_e.currentProxiedOperationCallerThread=S.pthread.threadInfoStruct),Z.targetThread&&Z.targetThread!=ih()){var me=_e.pthreads[Z.targetThread];me?me.worker.postMessage(Z,Z.transferList):J('Internal error! Worker sent a message "'+pe+'" to target pthread '+Z.targetThread+", but that thread no longer exists!"),_e.currentProxiedOperationCallerThread=void 0;return}pe==="processQueuedMainThreadWork"?Z1():pe==="spawnThread"?Kd(Z):pe==="cleanupThread"?Hd(Z.thread):pe==="killThread"?qg(Z.thread):pe==="cancelThread"?Kg(Z.thread):pe==="loaded"?(S.loaded=!0,F&&F(S),S.runPthread&&(S.runPthread(),delete S.runPthread)):pe==="print"?re("Thread "+Z.threadId+": "+Z.text):pe==="printErr"?J("Thread "+Z.threadId+": "+Z.text):pe==="alert"?alert("Thread "+Z.threadId+": "+Z.text):Z.target==="setimmediate"?S.postMessage(Z):pe==="onAbort"?c.onAbort&&c.onAbort(Z.arg):J("worker sent an unknown command "+pe),_e.currentProxiedOperationCallerThread=void 0},S.onerror=V=>{var Z="worker sent an error!";throw J(Z+" "+V.filename+":"+V.lineno+": "+V.message),V},N&&(S.on("message",function(V){S.onmessage({data:V})}),S.on("error",function(V){S.onerror(V)}),S.on("detachedExit",function(){})),S.postMessage({cmd:"load",urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:Ne,wasmModule:ft})},allocateUnusedWorker:function(){var S=A("tfjs-backend-wasm-threaded-simd.worker.js");_e.unusedWorkers.push(new Worker(S))},getNewWorker:function(){return _e.unusedWorkers.length==0&&(_e.allocateUnusedWorker(),_e.loadWasmModuleToWorker(_e.unusedWorkers[0])),_e.unusedWorkers.pop()}};function Yg(){var S=ih(),F=u()[S+44>>2],V=u()[S+48>>2],Z=F-V;tk(F,Z),oh(F)}c.establishStackSpace=Yg;function qd(S){if(_)return Us(1,0,S);try{jd(S)}catch(F){Xg(F)}}var Bs=[];function Ko(S){var F=Bs[S];return F||(S>=Bs.length&&(Bs.length=S+1),Bs[S]=F=oa.get(S)),F}function Zg(S,F){return Ko(S)(F)}c.invokeEntryPoint=Zg;function G1(){var S=new Error;if(!S.stack){try{throw new Error}catch(F){S=F}if(!S.stack)return"(no stack trace available)"}return S.stack.toString()}function Jg(S,F,V){_e.tlsInitFunctions.push(S)}function H1(S,F){oa.set(S,F),Bs[S]=F}var Vs;N?Vs=()=>{var S=process.hrtime();return S[0]*1e3+S[1]/1e6}:_?Vs=()=>performance.now()-c.__performance_now_clock_drift:Vs=()=>performance.now();var Qg=!0;function eb(S){return u()[Y1()>>2]=S,S}function tb(S,F){var V;if(S===0)V=Date.now();else if((S===1||S===4)&&Qg)V=Vs();else return eb(28),-1;return u()[F>>2]=V/1e3|0,u()[F+4>>2]=V%1e3*1e3*1e3|0,0}function nb(S,F){return tb(S,F)}function ab(S){J1(S,!I,1,!w),_e.threadInit()}function rb(S){_?postMessage({cmd:"cleanupThread",thread:S}):Hd(S)}function Kd(S){var F=_e.getNewWorker();if(!F)return 6;_e.runningWorkers.push(F);var V=_e.pthreads[S.pthread_ptr]={worker:F,threadInfoStruct:S.pthread_ptr};F.pthread=V;var Z={cmd:"run",start_routine:S.startRoutine,arg:S.arg,threadInfoStruct:S.pthread_ptr};return F.runPthread=()=>{Z.time=performance.now(),F.postMessage(Z,S.transferList)},F.loaded&&(F.runPthread(),delete F.runPthread),0}function sb(S,F,V,Z){if(typeof SharedArrayBuffer=="undefined")return J("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var pe=[],me=0;if(_&&(pe.length===0||me))return Q1(687865856,S,F,V,Z);if(me)return me;var ve={startRoutine:V,pthread_ptr:S,arg:Z,transferList:pe};return _?(ve.cmd="spawnThread",postMessage(ve,pe),0):Kd(ve)}function ib(){return 2097152}function ob(S,F){if(S==F)postMessage({cmd:"processQueuedMainThreadWork"});else if(_)postMessage({targetThread:S,cmd:"processThreadQueue"});else{var V=_e.pthreads[S],Z=V&&V.worker;if(!Z)return;Z.postMessage({cmd:"processThreadQueue"})}return 1}function lb(){Ho("")}function ub(){N||I||ae("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function Xd(){return 2147483648}function pb(S,F,V){i().copyWithin(S,F,F+V)}function cb(){return N?jF().cpus().length:navigator.hardwareConcurrency}function Us(S,F){var V=arguments.length-2,Z=arguments;return qo(function(){for(var pe=V,me=el(pe*8),ve=me>>3,Ce=0;Ce>3,pe=0;pe>>16),Oa(Ne.buffer),1}catch(F){}}function mb(S){var F=i().length;if(S=S>>>0,S<=F)return!1;var V=Xd();if(S>V)return!1;for(var Z=1;Z<=4;Z*=2){var pe=F*(1+.2/Z);pe=Math.min(pe,S+100663296);var me=Math.min(V,Uo(Math.max(S,pe),65536)),ve=hb(me);if(ve)return!0}return!1}var Ue={inEventHandler:0,removeAllEventListeners:function(){for(var S=Ue.eventHandlers.length-1;S>=0;--S)Ue._removeHandler(S);Ue.eventHandlers=[],Ue.deferredCalls=[]},registerRemoveEventListeners:function(){Ue.removeEventListenersRegistered||(Wg.push(Ue.removeAllEventListeners),Ue.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(S,F,V){function Z(ve,Ce){if(ve.length!=Ce.length)return!1;for(var Ct in ve)if(ve[Ct]!=Ce[Ct])return!1;return!0}for(var pe in Ue.deferredCalls){var me=Ue.deferredCalls[pe];if(me.targetFunction==S&&Z(me.argsList,V))return}Ue.deferredCalls.push({targetFunction:S,precedence:F,argsList:V}),Ue.deferredCalls.sort(function(ve,Ce){return ve.precedence>2]=V,u()[me+4>>2]=Z,u()[me+8>>2]=pe,by(S,637534208,F,Z,me)})},getTargetThreadForEventCallback:function(S){switch(S){case 1:return 0;case 2:return _e.currentProxiedOperationCallerThread;default:return S}},getNodeNameForTarget:function(S){return S?S==window?"#window":S==screen?"#screen":S&&S.nodeName?S.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function fb(S){var F=Ad(S)+1,V=gy(F);return Ls(S,V,F),V}function gb(S,F,V,Z){qo(function(){var pe=el(12),me=0;F&&(me=fb(F)),u()[pe>>2]=me,u()[pe+4>>2]=V,u()[pe+8>>2]=Z,by(S,657457152,0,me,pe)})}function bb(S,F,V,Z){F=F?ia(F):"",gb(S,F,V,Z)}function yb(S){return S>2?ia(S):S}var xb=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function vb(S){S=yb(S);var F=xb[S]||(typeof document!="undefined"?document.querySelector(S):void 0);return F}function Ap(S){return vb(S)}function Yd(S,F,V){var Z=Ap(S);if(!Z)return-4;if(Z.canvasSharedPtr&&(u()[Z.canvasSharedPtr>>2]=F,u()[Z.canvasSharedPtr+4>>2]=V),Z.offscreenCanvas||!Z.controlTransferredOffscreen){Z.offscreenCanvas&&(Z=Z.offscreenCanvas);var pe=!1;if(Z.GLctxObject&&Z.GLctxObject.GLctx){var me=Z.GLctxObject.GLctx.getParameter(2978);pe=me[0]===0&&me[1]===0&&me[2]===Z.width&&me[3]===Z.height}Z.width=F,Z.height=V,pe&&Z.GLctxObject.GLctx.viewport(0,0,F,V)}else if(Z.canvasSharedPtr){var ve=u()[Z.canvasSharedPtr+8>>2];return bb(ve,S,F,V),1}else return-4;return 0}function Zd(S,F,V){return _?Us(2,1,S,F,V):Yd(S,F,V)}function wb(S,F,V){var Z=Ap(S);return Z?Yd(S,F,V):Zd(S,F,V)}function kb(){throw"unwind"}function Ib(S){var F=S.getExtension("ANGLE_instanced_arrays");if(F)return S.vertexAttribDivisor=function(V,Z){F.vertexAttribDivisorANGLE(V,Z)},S.drawArraysInstanced=function(V,Z,pe,me){F.drawArraysInstancedANGLE(V,Z,pe,me)},S.drawElementsInstanced=function(V,Z,pe,me,ve){F.drawElementsInstancedANGLE(V,Z,pe,me,ve)},1}function Tb(S){var F=S.getExtension("OES_vertex_array_object");if(F)return S.createVertexArray=function(){return F.createVertexArrayOES()},S.deleteVertexArray=function(V){F.deleteVertexArrayOES(V)},S.bindVertexArray=function(V){F.bindVertexArrayOES(V)},S.isVertexArray=function(V){return F.isVertexArrayOES(V)},1}function Sb(S){var F=S.getExtension("WEBGL_draw_buffers");if(F)return S.drawBuffers=function(V,Z){F.drawBuffersWEBGL(V,Z)},1}function Nb(S){return!!(S.multiDrawWebgl=S.getExtension("WEBGL_multi_draw"))}var Nt={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function(S){Nt.lastError||(Nt.lastError=S)},getNewId:function(S){for(var F=Nt.counter++,V=S.length;V>2]:-1;pe+=ia(u()[V+me*4>>2],ve<0?void 0:ve)}return pe},createContext:function(S,F){S.getContextSafariWebGL2Fixed||(S.getContextSafariWebGL2Fixed=S.getContext,S.getContext=function(pe,me){var ve=S.getContextSafariWebGL2Fixed(pe,me);return pe=="webgl"==ve instanceof WebGLRenderingContext?ve:null});var V=S.getContext("webgl",F);if(!V)return 0;var Z=Nt.registerContext(V,F);return Z},registerContext:function(S,F){var V=gy(8);u()[V+4>>2]=ih();var Z={handle:V,attributes:F,version:F.majorVersion,GLctx:S};return S.canvas&&(S.canvas.GLctxObject=Z),Nt.contexts[V]=Z,(typeof F.enableExtensionsByDefault=="undefined"||F.enableExtensionsByDefault)&&Nt.initExtensions(Z),V},makeContextCurrent:function(S){return Nt.currentContext=Nt.contexts[S],c.ctx=th=Nt.currentContext&&Nt.currentContext.GLctx,!(S&&!th)},getContext:function(S){return Nt.contexts[S]},deleteContext:function(S){Nt.currentContext===Nt.contexts[S]&&(Nt.currentContext=null),typeof Ue=="object"&&Ue.removeAllHandlersOnTarget(Nt.contexts[S].GLctx.canvas),Nt.contexts[S]&&Nt.contexts[S].GLctx.canvas&&(Nt.contexts[S].GLctx.canvas.GLctxObject=void 0),X1(Nt.contexts[S].handle),Nt.contexts[S]=null},initExtensions:function(S){if(S||(S=Nt.currentContext),!S.initExtensionsDone){S.initExtensionsDone=!0;var F=S.GLctx;Ib(F),Tb(F),Sb(F),F.disjointTimerQueryExt=F.getExtension("EXT_disjoint_timer_query"),Nb(F);var V=F.getSupportedExtensions()||[];V.forEach(function(Z){!Z.includes("lose_context")&&!Z.includes("debug")&&F.getExtension(Z)})}}},Cb=["default","low-power","high-performance"];function _b(S,F){var V=F>>2,Z=u()[V+6],pe={alpha:!!u()[V+0],depth:!!u()[V+1],stencil:!!u()[V+2],antialias:!!u()[V+3],premultipliedAlpha:!!u()[V+4],preserveDrawingBuffer:!!u()[V+5],powerPreference:Cb[Z],failIfMajorPerformanceCaveat:!!u()[V+7],majorVersion:u()[V+8],minorVersion:u()[V+9],enableExtensionsByDefault:u()[V+10],explicitSwapControl:u()[V+11],proxyContextToMainThread:u()[V+12],renderViaOffscreenBackBuffer:u()[V+13]},me=Ap(S);if(!me||pe.explicitSwapControl)return 0;var ve=Nt.createContext(me,pe);return ve}function Eb(S,F){return _b(S,F)}var Xo={mappings:{},buffers:[null,[],[]],printChar:function(S,F){var V=Xo.buffers[S];F===0||F===10?((S===1?re:J)(sa(V,0)),V.length=0):V.push(F)},varargs:void 0,get:function(){Xo.varargs+=4;var S=u()[Xo.varargs-4>>2];return S},getStr:function(S){var F=ia(S);return F},get64:function(S,F){return S}};function Jd(S){return _?Us(3,1,S):0}function Qd(S,F,V,Z,pe){if(_)return Us(4,1,S,F,V,Z,pe)}function eh(S,F,V,Z){if(_)return Us(5,1,S,F,V,Z);for(var pe=0,me=0;me>2],Ce=u()[F+4>>2];F+=8;for(var Ct=0;Ct>2]=pe,0}function $b(S){De(S)}_e.init();var th,Ab=[null,qd,Zd,Jd,Qd,eh],j1=!1,nh={__clock_gettime:nb,__emscripten_init_main_thread_js:ab,__emscripten_thread_cleanup:rb,__pthread_create_js:sb,_emscripten_default_pthread_stack_size:ib,_emscripten_notify_thread_queue:ob,abort:lb,emscripten_check_blocking_allowed:ub,emscripten_get_heap_max:Xd,emscripten_get_now:Vs,emscripten_memcpy_big:pb,emscripten_num_logical_cores:cb,emscripten_receive_on_main_thread_js:db,emscripten_resize_heap:mb,emscripten_set_canvas_element_size:wb,emscripten_unwind_to_js_event_loop:kb,emscripten_webgl_create_context:Eb,exit:jd,fd_close:Jd,fd_seek:Qd,fd_write:eh,memory:Ne||c.wasmMemory,setTempRet0:$b},q1=Hg(),Fb=c.___wasm_call_ctors=function(){return(Fb=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},Db=c._init=function(){return(Db=c._init=c.asm.init).apply(null,arguments)},Rb=c._init_with_threads_count=function(){return(Rb=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},Mb=c._get_threads_count=function(){return(Mb=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},Pb=c._register_tensor=function(){return(Pb=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},Ob=c._dispose_data=function(){return(Ob=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},Lb=c._dispose=function(){return(Lb=c._dispose=c.asm.dispose).apply(null,arguments)},zb=c._Abs=function(){return(zb=c._Abs=c.asm.Abs).apply(null,arguments)},Wb=c._Add=function(){return(Wb=c._Add=c.asm.Add).apply(null,arguments)},Bb=c._AddN=function(){return(Bb=c._AddN=c.asm.AddN).apply(null,arguments)},Vb=c._All=function(){return(Vb=c._All=c.asm.All).apply(null,arguments)},Ub=c._Any=function(){return(Ub=c._Any=c.asm.Any).apply(null,arguments)},Gb=c._ArgMax=function(){return(Gb=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},Hb=c._AvgPool=function(){return(Hb=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},jb=c._BatchMatMul=function(){return(jb=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},qb=c._Ceil=function(){return(qb=c._Ceil=c.asm.Ceil).apply(null,arguments)},Kb=c._ClipByValue=function(){return(Kb=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},Xb=c._Conv2D=function(){return(Xb=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},Yb=c._Conv2DBackpropInput=function(){return(Yb=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},Zb=c._Cos=function(){return(Zb=c._Cos=c.asm.Cos).apply(null,arguments)},Jb=c._Cosh=function(){return(Jb=c._Cosh=c.asm.Cosh).apply(null,arguments)},Qb=c._CropAndResize=function(){return(Qb=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},ey=c._Cumprod=function(){return(ey=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)},ay=c._DepthwiseConv2dNative=function(){return(ay=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},ry=c._Elu=function(){return(ry=c._Elu=c.asm.Elu).apply(null,arguments)},sy=c._Equal=function(){return(sy=c._Equal=c.asm.Equal).apply(null,arguments)},iy=c._Exp=function(){return(iy=c._Exp=c.asm.Exp).apply(null,arguments)},oy=c._FlipLeftRight=function(){return(oy=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},ly=c._Floor=function(){return(ly=c._Floor=c.asm.Floor).apply(null,arguments)},uy=c._FloorDiv=function(){return(uy=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},py=c._FusedBatchNorm=function(){return(py=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},cy=c._FusedConv2D=function(){return(cy=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},ah=c._FusedDepthwiseConv2D=function(){return(ah=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},rh=c._Gather=function(){return(rh=c._Gather=c.asm.Gather).apply(null,arguments)},Fp=c._GatherNd=function(){return(Fp=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},dy=c._Greater=function(){return(dy=c._Greater=c.asm.Greater).apply(null,arguments)},hy=c._GreaterEqual=function(){return(hy=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},Yo=c._LeakyRelu=function(){return(Yo=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},Dp=c._Less=function(){return(Dp=c._Less=c.asm.Less).apply(null,arguments)},Rp=c._LessEqual=function(){return(Rp=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},K1=c._Log=function(){return(K1=c._Log=c.asm.Log).apply(null,arguments)},Zo=c._LogicalAnd=function(){return(Zo=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},Jo=c._LogicalNot=function(){return(Jo=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},my=c._LogicalOr=function(){return(my=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},G=c._LogicalXor=function(){return(G=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},ee=c._Max=function(){return(ee=c._Max=c.asm.Max).apply(null,arguments)},de=c._MaxPool=function(){return(de=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},Te=c._Maximum=function(){return(Te=c._Maximum=c.asm.Maximum).apply(null,arguments)},Je=c._Mean=function(){return(Je=c._Mean=c.asm.Mean).apply(null,arguments)},nt=c._Min=function(){return(nt=c._Min=c.asm.Min).apply(null,arguments)},Ge=c._Minimum=function(){return(Ge=c._Minimum=c.asm.Minimum).apply(null,arguments)},Ve=c._MirrorPad=function(){return(Ve=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Ot=c._Multiply=function(){return(Ot=c._Multiply=c.asm.Multiply).apply(null,arguments)},za=c._Neg=function(){return(za=c._Neg=c.asm.Neg).apply(null,arguments)},Wa=c._NonMaxSuppressionV3=function(){return(Wa=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},Qo=c._NonMaxSuppressionV4=function(){return(Qo=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},Gs=c._NonMaxSuppressionV5=function(){return(Gs=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},fy=c._NotEqual=function(){return(fy=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},On=c._OneHot=function(){return(On=c._OneHot=c.asm.OneHot).apply(null,arguments)},qr=c._PadV2=function(){return(qr=c._PadV2=c.asm.PadV2).apply(null,arguments)},sh=c._Pow=function(){return(sh=c._Pow=c.asm.Pow).apply(null,arguments)},DA=c._Prelu=function(){return(DA=c._Prelu=c.asm.Prelu).apply(null,arguments)},RA=c._Prod=function(){return(RA=c._Prod=c.asm.Prod).apply(null,arguments)},MA=c._RealDiv=function(){return(MA=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},PA=c._Relu=function(){return(PA=c._Relu=c.asm.Relu).apply(null,arguments)},OA=c._Relu6=function(){return(OA=c._Relu6=c.asm.Relu6).apply(null,arguments)},LA=c._ResizeBilinear=function(){return(LA=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},zA=c._ResizeNearestNeighbor=function(){return(zA=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},WA=c._Reverse=function(){return(WA=c._Reverse=c.asm.Reverse).apply(null,arguments)},BA=c._RotateWithOffset=function(){return(BA=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},VA=c._Round=function(){return(VA=c._Round=c.asm.Round).apply(null,arguments)},UA=c._Rsqrt=function(){return(UA=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},GA=c._ScatterNd=function(){return(GA=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},HA=c._SelectV2=function(){return(HA=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},jA=c._Sigmoid=function(){return(jA=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},qA=c._Sin=function(){return(qA=c._Sin=c.asm.Sin).apply(null,arguments)},KA=c._Softmax=function(){return(KA=c._Softmax=c.asm.Softmax).apply(null,arguments)},XA=c._SparseFillEmptyRows=function(){return(XA=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},YA=c._SparseReshape=function(){return(YA=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},ZA=c._SparseSegmentReduction=function(){return(ZA=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},JA=c._Sqrt=function(){return(JA=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},QA=c._Square=function(){return(QA=c._Square=c.asm.Square).apply(null,arguments)},eF=c._SquaredDifference=function(){return(eF=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},tF=c._Step=function(){return(tF=c._Step=c.asm.Step).apply(null,arguments)},nF=c._StridedSlice=function(){return(nF=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},aF=c._Sub=function(){return(aF=c._Sub=c.asm.Sub).apply(null,arguments)},rF=c._Sum=function(){return(rF=c._Sum=c.asm.Sum).apply(null,arguments)},sF=c._Tan=function(){return(sF=c._Tan=c.asm.Tan).apply(null,arguments)},iF=c._Tanh=function(){return(iF=c._Tanh=c.asm.Tanh).apply(null,arguments)},oF=c._Tile=function(){return(oF=c._Tile=c.asm.Tile).apply(null,arguments)},lF=c._TopK=function(){return(lF=c._TopK=c.asm.TopK).apply(null,arguments)},uF=c._Transform=function(){return(uF=c._Transform=c.asm.Transform).apply(null,arguments)},pF=c._Transpose=function(){return(pF=c._Transpose=c.asm.Transpose).apply(null,arguments)},cF=c.__FusedMatMul=function(){return(cF=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},gy=c._malloc=function(){return(gy=c._malloc=c.asm.malloc).apply(null,arguments)},X1=c._free=function(){return(X1=c._free=c.asm.free).apply(null,arguments)},dF=c._emscripten_tls_init=function(){return(dF=c._emscripten_tls_init=c.asm.emscripten_tls_init).apply(null,arguments)},Y1=c.___errno_location=function(){return(Y1=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},ih=c._pthread_self=function(){return(ih=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},Z1=c._emscripten_main_thread_process_queued_calls=function(){return(Z1=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},hF=c.__emscripten_thread_crashed=function(){return(hF=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},J1=c.__emscripten_thread_init=function(){return(J1=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},mF=c._emscripten_current_thread_process_queued_calls=function(){return(mF=c._emscripten_current_thread_process_queued_calls=c.asm.emscripten_current_thread_process_queued_calls).apply(null,arguments)},fF=c._emscripten_main_browser_thread_id=function(){return(fF=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},gF=c._emscripten_sync_run_in_main_thread_2=function(){return(gF=c._emscripten_sync_run_in_main_thread_2=c.asm.emscripten_sync_run_in_main_thread_2).apply(null,arguments)},Q1=c._emscripten_sync_run_in_main_thread_4=function(){return(Q1=c._emscripten_sync_run_in_main_thread_4=c.asm.emscripten_sync_run_in_main_thread_4).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)},by=c._emscripten_dispatch_to_thread_=function(){return(by=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},yy=c.__emscripten_thread_free_data=function(){return(yy=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},bF=c.__emscripten_thread_exit=function(){return(bF=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},yF=c._memalign=function(){return(yF=c._memalign=c.asm.memalign).apply(null,arguments)},tk=c._emscripten_stack_set_limits=function(){return(tk=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},xy=c.stackSave=function(){return(xy=c.stackSave=c.asm.stackSave).apply(null,arguments)},oh=c.stackRestore=function(){return(oh=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},el=c.stackAlloc=function(){return(el=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},xF=c.dynCall_iijjiiii=function(){return(xF=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},vF=c.dynCall_jiji=function(){return(vF=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)},nk=c.__emscripten_allow_main_runtime_queued_calls=21672;c.cwrap=Zt,c.keepRuntimeAlive=Ws,c.PThread=_e,c.PThread=_e,c.wasmMemory=Ne,c.ExitStatus=Mp;var lh;function Mp(S){this.name="ExitStatus",this.message="Program terminated with exit("+S+")",this.status=S}La=function S(){lh||vy(),lh||(La=S)};function vy(S){if(S=S||b,jr>0)return;if(_){h(c),Np(),postMessage({cmd:"loaded"});return}if(xn(),jr>0)return;function F(){lh||(lh=!0,c.calledRun=!0,!dt&&(Np(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),Ug()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),F()},1)):F()}c.run=vy;function wF(S,F){if(bn=S,!F&&_)throw qd(S),"unwind";Ws()||Vg(),kF(S)}function kF(S){bn=S,Ws()||(_e.terminateAllThreads(),c.onExit&&c.onExit(S),dt=!0),x(S,new Mp(S))}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();vy();var uh;f&&(uh={uncaughtException:process.listeners("uncaughtException").filter(function(S){return!f.uncaughtException.indexOf(S)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(S){return!f.unhandledRejection.indexOf(S)>-1})});var ph;if(typeof WasmBackendModule!="undefined")ph=WasmBackendModule;else if(typeof r!="undefined")ph=r;else throw new Error("Could not find wasm module in post.js");if(uh){var IF=ph._dispose;ph._dispose=function(){IF(),uh.uncaughtException.forEach(function(S){process.removeListener("uncaughtException",S)}),uh.unhandledRejection.forEach(function(S){process.removeListener("unhandledRejection",S)})}}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)}),KF=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",function(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()}}})}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.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.threadInfoStruct,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["__emscripten_thread_exit"](result)}}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==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else if(e.data.cmd==="processProxyingQueue"){if(Module["_pthread_self"]()){Module["_emscripten_proxy_execute_queue"](e.data.queue)}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}});`}),XF=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(G,ee){i=G,o=ee});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=(G,ee)=>{throw ee},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function b(G){return s.locateFile?s.locateFile(G,g):g+G}var y,x,w,I;function N(G){G instanceof Dp||D("exiting due to exception: "+G)}var _,$,A;f?(m?g=Mh().dirname(g)+"/":g=__dirname+"/",A=()=>{$||(_=Ox(),$=Mh())},y=function(G,ee){return A(),G=$.normalize(G),_.readFileSync(G,ee?void 0:"utf8")},w=G=>{var ee=y(G,!0);return ee.buffer||(ee=new Uint8Array(ee)),ee},x=(G,ee,de)=>{A(),G=$.normalize(G),_.readFile(G,function(Te,Je){Te?de(Te):ee(Je.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(G){if(!(G instanceof Dp))throw G}),process.on("unhandledRejection",function(G){throw G}),c=(G,ee)=>{if(Sp())throw process.exitCode=G,ee;N(ee),process.exit(G)},s.inspect=function(){return"[Emscripten Module object]"}):(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="",y=G=>{var ee=new XMLHttpRequest;return ee.open("GET",G,!1),ee.send(null),ee.responseText},m&&(w=G=>{var ee=new XMLHttpRequest;return ee.open("GET",G,!1),ee.responseType="arraybuffer",ee.send(null),new Uint8Array(ee.response)}),x=(G,ee,de)=>{var Te=new XMLHttpRequest;Te.open("GET",G,!0),Te.responseType="arraybuffer",Te.onload=()=>{if(Te.status==200||Te.status==0&&Te.response){ee(Te.response);return}de()},Te.onerror=de,Te.send(null)},I=G=>document.title=G);var M=s.print||console.log.bind(console),D=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 T=4;function P(G){P.shown||(P.shown={}),P.shown[G]||(P.shown[G]=1,D(G))}function U(G,ee){if(typeof WebAssembly.Function=="function"){for(var de={i:"i32",j:"i64",f:"f32",d:"f64"},Te={parameters:[],results:ee[0]=="v"?[]:[de[ee[0]]]},Je=1;Je{te=G},J;s.wasmBinary&&(J=s.wasmBinary);var ie=s.noExitRuntime||!0;typeof WebAssembly!="object"&&zs("no native wasm support detected");var ae,oe=!1,ue;function we(G,ee){G||zs(ee)}function be(G){var ee=s["_"+G];return ee}function Ie(G,ee,de,Te,Je){var nt={string:function(On){var qr=0;if(On!=null&&On!==0){var sh=(On.length<<2)+1;qr=Fp(sh),tt(On,qr,sh)}return qr},array:function(On){var qr=Fp(On.length);return dt(On,qr),qr}};function Ge(On){return ee==="string"?st(On):ee==="boolean"?Boolean(On):On}var Ve=be(G),Ot=[],za=0;if(Te)for(var Wa=0;Wa=Te);)++Je;if(Je-ee>16&&G.subarray&&Be)return Be.decode(G.subarray(ee,Je));for(var nt="";ee>10,56320|za&1023)}}return nt}function st(G,ee){return G?je(Zt,G,ee):""}function et(G,ee,de,Te){if(!(Te>0))return 0;for(var Je=de,nt=de+Te-1,Ge=0;Ge=55296&&Ve<=57343){var Ot=G.charCodeAt(++Ge);Ve=65536+((Ve&1023)<<10)|Ot&1023}if(Ve<=127){if(de>=nt)break;ee[de++]=Ve}else if(Ve<=2047){if(de+1>=nt)break;ee[de++]=192|Ve>>6,ee[de++]=128|Ve&63}else if(Ve<=65535){if(de+2>=nt)break;ee[de++]=224|Ve>>12,ee[de++]=128|Ve>>6&63,ee[de++]=128|Ve&63}else{if(de+3>=nt)break;ee[de++]=240|Ve>>18,ee[de++]=128|Ve>>12&63,ee[de++]=128|Ve>>6&63,ee[de++]=128|Ve&63}}return ee[de]=0,de-Je}function tt(G,ee,de){return et(G,Zt,ee,de)}function Ne(G){for(var ee=0,de=0;de=55296&&Te<=57343&&(Te=65536+((Te&1023)<<10)|G.charCodeAt(++de)&1023),Te<=127?++ee:Te<=2047?ee+=2:Te<=65535?ee+=3:ee+=4}return ee}var ft=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function dt(G,ee){Ut.set(G,ee)}function bn(G,ee,de){for(var Te=0;Te>0]=G.charCodeAt(Te);de||(Ut[ee>>0]=0)}function Yt(G,ee){return G%ee>0&&(G+=ee-G%ee),G}var Mn,Ut,Zt,Pa,Pn,Gt,sa,ia,Ur;function Ls(G){Mn=G,s.HEAP8=Ut=new Int8Array(G),s.HEAP16=Pa=new Int16Array(G),s.HEAP32=Gt=new Int32Array(G),s.HEAPU8=Zt=new Uint8Array(G),s.HEAPU16=Pn=new Uint16Array(G),s.HEAPU32=sa=new Uint32Array(G),s.HEAPF32=ia=new Float32Array(G),s.HEAPF64=Ur=new Float64Array(G)}var Ad=s.INITIAL_MEMORY||16777216,Gr,wr=[],Tp=[],Uo=[],yn=!1,Fd=!1,Dd=0;function Sp(){return ie||Dd>0}function Rd(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Od(s.preRun.shift());Cp(wr)}function Md(){yn=!0,Cp(Tp)}function O1(){Fd=!0}function Pd(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Ld(s.postRun.shift());Cp(Uo)}function Od(G){wr.unshift(G)}function Oa(G){Tp.unshift(G)}function Ld(G){Uo.unshift(G)}var oa=0,Go=null,Hr=null;function Wg(G){oa++,s.monitorRunDependencies&&s.monitorRunDependencies(oa)}function zd(G){if(oa--,s.monitorRunDependencies&&s.monitorRunDependencies(oa),oa==0&&(Go!==null&&(clearInterval(Go),Go=null),Hr)){var ee=Hr;Hr=null,ee()}}s.preloadedImages={},s.preloadedAudios={};function zs(G){s.onAbort&&s.onAbort(G),G="Aborted("+G+")",D(G),oe=!0,ue=1,G+=". Build with -s ASSERTIONS=1 for more info.";var ee=new WebAssembly.RuntimeError(G);throw o(ee),ee}var Bg="data:application/octet-stream;base64,";function Wd(G){return G.startsWith(Bg)}function Ws(G){return G.startsWith("file://")}var xn;xn="tfjs-backend-wasm.wasm",Wd(xn)||(xn=b(xn));function Np(G){try{if(G==xn&&J)return new Uint8Array(J);if(w)return w(G);throw"both async and sync fetching of the wasm failed"}catch(ee){zs(ee)}}function Vg(){if(!J&&(h||m)){if(typeof fetch=="function"&&!Ws(xn))return fetch(xn,{credentials:"same-origin"}).then(function(G){if(!G.ok)throw"failed to load wasm binary file at '"+xn+"'";return G.arrayBuffer()}).catch(function(){return Np(xn)});if(x)return new Promise(function(G,ee){x(xn,function(de){G(new Uint8Array(de))},ee)})}return Promise.resolve().then(function(){return Np(xn)})}function Ug(){var G={env:qo,wasi_snapshot_preview1:qo};function ee(Ge,Ve){var Ot=Ge.exports;s.asm=Ot,ae=s.asm.memory,Ls(ae.buffer),Gr=s.asm.__indirect_function_table,Oa(s.asm.__wasm_call_ctors),zd("wasm-instantiate")}Wg("wasm-instantiate");function de(Ge){ee(Ge.instance)}function Te(Ge){return Vg().then(function(Ve){return WebAssembly.instantiate(Ve,G)}).then(function(Ve){return Ve}).then(Ge,function(Ve){D("failed to asynchronously prepare wasm: "+Ve),zs(Ve)})}function Je(){return!J&&typeof WebAssembly.instantiateStreaming=="function"&&!Wd(xn)&&!Ws(xn)&&typeof fetch=="function"?fetch(xn,{credentials:"same-origin"}).then(function(Ge){var Ve=WebAssembly.instantiateStreaming(Ge,G);return Ve.then(de,function(Ot){return D("wasm streaming compile failed: "+Ot),D("falling back to ArrayBuffer instantiation"),Te(de)})}):Te(de)}if(s.instantiateWasm)try{var nt=s.instantiateWasm(G,ee);return nt}catch(Ge){return D("Module.instantiateWasm callback failed with error: "+Ge),!1}return Je().catch(o),{}}var L1,z1;function Cp(G){for(;G.length>0;){var ee=G.shift();if(typeof ee=="function"){ee(s);continue}var de=ee.func;typeof de=="number"?ee.arg===void 0?_p(de)():_p(de)(ee.arg):de(ee.arg===void 0?null:ee.arg)}}function jr(G){return G}function Bd(G){var ee=/\b_Z[\w\d_]+/g;return G.replace(ee,function(de){var Te=de;return de===Te?de:Te+" ["+de+"]"})}var La=[];function _p(G){var ee=La[G];return ee||(G>=La.length&&(La.length=G+1),La[G]=ee=Gr.get(G)),ee}function W1(){var G=new Error;if(!G.stack){try{throw new Error}catch(ee){G=ee}if(!G.stack)return"(no stack trace available)"}return G.stack.toString()}function Ho(G,ee){Gr.set(G,ee),La[G]=ee}function Gg(){zs("")}function Ep(){return 2147483648}function Vd(G,ee,de){Zt.copyWithin(G,ee,ee+de)}function vn(G){try{return ae.grow(G-Mn.byteLength+65535>>>16),Ls(ae.buffer),1}catch(ee){}}function Ud(G){var ee=Zt.length;G=G>>>0;var de=Ep();if(G>de)return!1;for(var Te=1;Te<=4;Te*=2){var Je=ee*(1+.2/Te);Je=Math.min(Je,G+100663296);var nt=Math.min(de,Yt(Math.max(G,Je),65536)),Ge=vn(nt);if(Ge)return!0}return!1}var jo={mappings:{},buffers:[null,[],[]],printChar:function(G,ee){var de=jo.buffers[G];ee===0||ee===10?((G===1?M:D)(je(de,0)),de.length=0):de.push(ee)},varargs:void 0,get:function(){jo.varargs+=4;var G=Gt[jo.varargs-4>>2];return G},getStr:function(G){var ee=st(G);return ee},get64:function(G,ee){return G}};function Hg(G){return 0}function B1(G,ee,de,Te,Je){}function V1(G,ee,de,Te){for(var Je=0,nt=0;nt>2],Ve=Gt[ee+4>>2];ee+=8;for(var Ot=0;Ot>2]=Je,0}function jg(G){re(G)}var Gd=!1,qo={abort:Gg,emscripten_get_heap_max:Ep,emscripten_memcpy_big:Vd,emscripten_resize_heap:Ud,fd_close:Hg,fd_seek:B1,fd_write:V1,setTempRet0:jg},FA=Ug(),U1=s.___wasm_call_ctors=function(){return(U1=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},qg=s._init=function(){return(qg=s._init=s.asm.init).apply(null,arguments)},Kg=s._init_with_threads_count=function(){return(Kg=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},Hd=s._get_threads_count=function(){return(Hd=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},jd=s._register_tensor=function(){return(jd=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},Xg=s._dispose_data=function(){return(Xg=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},_e=s._dispose=function(){return(_e=s._dispose=s.asm.dispose).apply(null,arguments)},Yg=s._Abs=function(){return(Yg=s._Abs=s.asm.Abs).apply(null,arguments)},qd=s._Add=function(){return(qd=s._Add=s.asm.Add).apply(null,arguments)},Bs=s._AddN=function(){return(Bs=s._AddN=s.asm.AddN).apply(null,arguments)},Ko=s._All=function(){return(Ko=s._All=s.asm.All).apply(null,arguments)},Zg=s._Any=function(){return(Zg=s._Any=s.asm.Any).apply(null,arguments)},G1=s._ArgMax=function(){return(G1=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},Jg=s._AvgPool=function(){return(Jg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},H1=s._BatchMatMul=function(){return(H1=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},Vs=s._Ceil=function(){return(Vs=s._Ceil=s.asm.Ceil).apply(null,arguments)},Qg=s._ClipByValue=function(){return(Qg=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},eb=s._Conv2D=function(){return(eb=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},tb=s._Conv2DBackpropInput=function(){return(tb=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},nb=s._Cos=function(){return(nb=s._Cos=s.asm.Cos).apply(null,arguments)},ab=s._Cosh=function(){return(ab=s._Cosh=s.asm.Cosh).apply(null,arguments)},rb=s._CropAndResize=function(){return(rb=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},Kd=s._Cumprod=function(){return(Kd=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},sb=s._Cumsum=function(){return(sb=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},ib=s._DepthToSpace=function(){return(ib=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},ob=s._DepthwiseConv2dNative=function(){return(ob=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},lb=s._Elu=function(){return(lb=s._Elu=s.asm.Elu).apply(null,arguments)},ub=s._Equal=function(){return(ub=s._Equal=s.asm.Equal).apply(null,arguments)},Xd=s._Exp=function(){return(Xd=s._Exp=s.asm.Exp).apply(null,arguments)},pb=s._FlipLeftRight=function(){return(pb=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},cb=s._Floor=function(){return(cb=s._Floor=s.asm.Floor).apply(null,arguments)},Us=s._FloorDiv=function(){return(Us=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},$p=s._FusedBatchNorm=function(){return($p=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},db=s._FusedConv2D=function(){return(db=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},hb=s._FusedDepthwiseConv2D=function(){return(hb=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},mb=s._Gather=function(){return(mb=s._Gather=s.asm.Gather).apply(null,arguments)},Ue=s._GatherNd=function(){return(Ue=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},fb=s._Greater=function(){return(fb=s._Greater=s.asm.Greater).apply(null,arguments)},gb=s._GreaterEqual=function(){return(gb=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},bb=s._LeakyRelu=function(){return(bb=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},yb=s._Less=function(){return(yb=s._Less=s.asm.Less).apply(null,arguments)},xb=s._LessEqual=function(){return(xb=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},vb=s._Log=function(){return(vb=s._Log=s.asm.Log).apply(null,arguments)},Ap=s._LogicalAnd=function(){return(Ap=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},Yd=s._LogicalNot=function(){return(Yd=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},Zd=s._LogicalOr=function(){return(Zd=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},wb=s._LogicalXor=function(){return(wb=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},kb=s._Max=function(){return(kb=s._Max=s.asm.Max).apply(null,arguments)},Ib=s._MaxPool=function(){return(Ib=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},Tb=s._Maximum=function(){return(Tb=s._Maximum=s.asm.Maximum).apply(null,arguments)},Sb=s._Mean=function(){return(Sb=s._Mean=s.asm.Mean).apply(null,arguments)},Nb=s._Min=function(){return(Nb=s._Min=s.asm.Min).apply(null,arguments)},Nt=s._Minimum=function(){return(Nt=s._Minimum=s.asm.Minimum).apply(null,arguments)},Cb=s._MirrorPad=function(){return(Cb=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},_b=s._Multiply=function(){return(_b=s._Multiply=s.asm.Multiply).apply(null,arguments)},Eb=s._Neg=function(){return(Eb=s._Neg=s.asm.Neg).apply(null,arguments)},Xo=s._NonMaxSuppressionV3=function(){return(Xo=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},Jd=s._NonMaxSuppressionV4=function(){return(Jd=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},Qd=s._NonMaxSuppressionV5=function(){return(Qd=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},eh=s._NotEqual=function(){return(eh=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},$b=s._OneHot=function(){return($b=s._OneHot=s.asm.OneHot).apply(null,arguments)},th=s._PadV2=function(){return(th=s._PadV2=s.asm.PadV2).apply(null,arguments)},Ab=s._Pow=function(){return(Ab=s._Pow=s.asm.Pow).apply(null,arguments)},j1=s._Prelu=function(){return(j1=s._Prelu=s.asm.Prelu).apply(null,arguments)},nh=s._Prod=function(){return(nh=s._Prod=s.asm.Prod).apply(null,arguments)},q1=s._RealDiv=function(){return(q1=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},Fb=s._Relu=function(){return(Fb=s._Relu=s.asm.Relu).apply(null,arguments)},Db=s._Relu6=function(){return(Db=s._Relu6=s.asm.Relu6).apply(null,arguments)},Rb=s._ResizeBilinear=function(){return(Rb=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},Mb=s._ResizeNearestNeighbor=function(){return(Mb=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},Pb=s._Reverse=function(){return(Pb=s._Reverse=s.asm.Reverse).apply(null,arguments)},Ob=s._RotateWithOffset=function(){return(Ob=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},Lb=s._Round=function(){return(Lb=s._Round=s.asm.Round).apply(null,arguments)},zb=s._Rsqrt=function(){return(zb=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Wb=s._ScatterNd=function(){return(Wb=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},Bb=s._SelectV2=function(){return(Bb=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},Vb=s._Sigmoid=function(){return(Vb=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},Ub=s._Sin=function(){return(Ub=s._Sin=s.asm.Sin).apply(null,arguments)},Gb=s._Softmax=function(){return(Gb=s._Softmax=s.asm.Softmax).apply(null,arguments)},Hb=s._SparseFillEmptyRows=function(){return(Hb=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},jb=s._SparseReshape=function(){return(jb=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},qb=s._SparseSegmentReduction=function(){return(qb=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},Kb=s._Sqrt=function(){return(Kb=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},Xb=s._Square=function(){return(Xb=s._Square=s.asm.Square).apply(null,arguments)},Yb=s._SquaredDifference=function(){return(Yb=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Zb=s._Step=function(){return(Zb=s._Step=s.asm.Step).apply(null,arguments)},Jb=s._StridedSlice=function(){return(Jb=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},Qb=s._Sub=function(){return(Qb=s._Sub=s.asm.Sub).apply(null,arguments)},ey=s._Sum=function(){return(ey=s._Sum=s.asm.Sum).apply(null,arguments)},ty=s._Tan=function(){return(ty=s._Tan=s.asm.Tan).apply(null,arguments)},ny=s._Tanh=function(){return(ny=s._Tanh=s.asm.Tanh).apply(null,arguments)},ay=s._Tile=function(){return(ay=s._Tile=s.asm.Tile).apply(null,arguments)},ry=s._TopK=function(){return(ry=s._TopK=s.asm.TopK).apply(null,arguments)},sy=s._Transform=function(){return(sy=s._Transform=s.asm.Transform).apply(null,arguments)},iy=s._Transpose=function(){return(iy=s._Transpose=s.asm.Transpose).apply(null,arguments)},oy=s.__FusedMatMul=function(){return(oy=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},ly=s._malloc=function(){return(ly=s._malloc=s.asm.malloc).apply(null,arguments)},uy=s._free=function(){return(uy=s._free=s.asm.free).apply(null,arguments)},py=s.___errno_location=function(){return(py=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},cy=s._emscripten_main_thread_process_queued_calls=function(){return(cy=s._emscripten_main_thread_process_queued_calls=s.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},ah=s.stackSave=function(){return(ah=s.stackSave=s.asm.stackSave).apply(null,arguments)},rh=s.stackRestore=function(){return(rh=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},Fp=s.stackAlloc=function(){return(Fp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},dy=s.dynCall_iijjiiii=function(){return(dy=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},hy=s.dynCall_jiji=function(){return(hy=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=Ee;var Yo;function Dp(G){this.name="ExitStatus",this.message="Program terminated with exit("+G+")",this.status=G}Hr=function G(){Yo||Rp(),Yo||(Hr=G)};function Rp(G){if(G=G||p,oa>0||(Rd(),oa>0))return;function ee(){Yo||(Yo=!0,s.calledRun=!0,!oe&&(Md(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),Pd()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),ee()},1)):ee()}s.run=Rp;function K1(G){ue=G,Sp()||(s.onExit&&s.onExit(G),oe=!0),c(G,new Dp(G))}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();Rp();var Zo;l&&(Zo={uncaughtException:process.listeners("uncaughtException").filter(function(G){return!l.uncaughtException.indexOf(G)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(G){return!l.unhandledRejection.indexOf(G)>-1})});var Jo;if(typeof r!="undefined")Jo=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")Jo=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(Zo){var my=Jo._dispose;Jo._dispose=function(){my(),Zo.uncaughtException.forEach(function(G){process.removeListener("uncaughtException",G)}),Zo.unhandledRejection.forEach(function(G){process.removeListener("unhandledRejection",G)})}}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)}),mm=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}},yc=class{refCount(e){return ua("refCount")}incRef(e){return ua("incRef")}timerAvailable(){return!0}time(e){return ua("time")}read(e){return ua("read")}readSync(e){return ua("readSync")}readToGPU(e,t){return ua("readToGPU")}numDataIds(){return ua("numDataIds")}disposeData(e,t){return ua("disposeData")}write(e,t,n){return ua("write")}move(e,t,n,a,r){return ua("move")}memory(){return ua("memory")}floatPrecision(){return ua("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return ua("dispose")}};function ua(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 RI(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,Ph(e,t,n)}function YF(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--,Ph(e,n,a),Ph(t,n,a)}function tc(e,t,n){return Math.max(e,Math.min(t,n))}function ZF(e){return e%2===0?e:e+1}function Ph(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function JF(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function ki(e){R(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function ii(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||hn(e)&&!n)for(let a=0;a0,n){return new Promise((a,r)=>{let s=0,i=()=>{if(e()){a();return}s++;let o=t(s);if(n!=null&&s>=n){r();return}setTimeout(i,o)};i()})}function iD(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 Ea(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),R(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),R(e.every(a=>dl(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function MI(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:Ea(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 PI(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 OI(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 LI(e,t){for(let n=0;nt+=n.length),t}function Zr(e){return typeof e=="string"||e instanceof String}function BI(e){return typeof e=="boolean"}function VI(e){return typeof e=="number"}function fm(e){return Array.isArray(e)?fm(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":VI(e)?"float32":Zr(e)?"string":BI(e)?"bool":"float32"}function as(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Oh(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function UI(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 UI(0,e,t,n)}function Lx(e,t){let n=gm(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return ll(e,new Float32Array(n));if(t==="int32")return ll(e,new Int32Array(n));if(t==="bool")return ll(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function zx(e){e.forEach(t=>{R(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function uD(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]=hD(n,a)})}};function cD(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(dD(t,a[0],a[1]),a.join("="))),t}function dD(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function hD(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 X(){return Bx}var Bx=null;function mD(e){Bx=e}var ky;function HI(){if(ky==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");ky=e}return ky}function fD(){let e=HI();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Vx(e,t){let n=fD();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var Al="Abs",Fl="Acos",Dl="Acosh",ms="Add",Ii="AddN",Rl="All",Ml="Any",Ti="ArgMax",xc="ArgMin",Pl="Asin",Ol="Asinh",Ll="Atan",zl="Atanh",Wl="Atan2",Si="AvgPool",bm="AvgPoolGrad",vc="AvgPool3D",ym="AvgPool3DGrad",Ni="BatchMatMul",Bl="BatchToSpaceND",xm="Bincount",jI="BroadcastTo",vm="BroadcastArgs",Ci="Cast",_i="Ceil",fs="ClipByValue",wm="Complex",wc="ComplexAbs",Vl="Concat",Ei="Conv2D",km="Conv2DBackpropFilter",$i="Conv2DBackpropInput",kc="Conv3D",Im="Conv3DBackpropFilterV2",Tm="Conv3DBackpropInputV2",Ai="Cos",Fi="Cosh",Ul="Cumprod",Di="Cumsum",Gl="CropAndResize",Sm="DenseBincount",Hl="DepthToSpace",Ri="DepthwiseConv2dNative",Nm="DepthwiseConv2dNativeBackpropFilter",Cm="DepthwiseConv2dNativeBackpropInput",_m="Diag",Ic="Dilation2D",Lh="Dilation2DBackpropInput",zh="Dilation2DBackpropFilter",Mi="RealDiv",Em="Einsum",Pi="Elu",$m="EluGrad",jl="Erf",ql="Equal",Oi="Exp",Kl="ExpandDims",Xl="Expm1",Am="FFT",Tc="Fill",Yl="FlipLeftRight",Li="Floor",zi="FloorDiv",Wi="FusedBatchNorm",Zl="GatherV2",Jl="GatherNd",Ql="Greater",Bi="GreaterEqual",Vi="Identity",Fm="IFFT",Dm="Imag",eu="IsFinite",tu="IsInf",nu="IsNan",Ui="LeakyRelu",au="Less",ru="LessEqual",Rm="LinSpace",Gi="Log",su="Log1p",iu="LogicalAnd",ou="LogicalNot",lu="LogicalOr",qI="LogicalXor",KI="LogSoftmax",gD="LowerBound",Sc="LRN",Mm="LRNGrad",Hi="Max",ji="Maximum",qi="MaxPool",Pm="MaxPoolGrad",Nc="MaxPool3D",Om="MaxPool3DGrad",Lm="MaxPoolWithArgmax",Ki="Mean",Xi="Min",Yi="Minimum",Zi="MirrorPad",uu="Mod",zm="Multinomial",Ji="Multiply",pu="Neg",cu="NotEqual",du="NonMaxSuppressionV3",hu="NonMaxSuppressionV4",mu="NonMaxSuppressionV5",fu="OnesLike",Qi="OneHot",gu="Pack",eo="PadV2",bD="Pool",to="Pow",no="Prelu",ao="Prod",Wm="RaggedTensorToTensor",Cc="Range",Bm="Real",bu="Reciprocal",ro="Relu",yu="Reshape",so="ResizeNearestNeighbor",Vm="ResizeNearestNeighborGrad",io="ResizeBilinear",Um="ResizeBilinearGrad",oo="Relu6",lo="Reverse",uo="Round",po="Rsqrt",xu="ScatterNd",Gm="SearchSorted",vu="Select",wu="Selu",ku="Slice",co="Sin",Iu="Sinh",Tu="Sign",ho="Sigmoid",Su="Softplus",mo="Sqrt",fo="Sum",Nu="SpaceToBatchND",Cu="SplitV",go="Softmax",_c="SparseFillEmptyRows",_u="SparseReshape",Ec="SparseSegmentMean",$c="SparseSegmentSum",Hm="SparseToDense",bo="SquaredDifference",Ac="Square",Eu="StridedSlice",Fc="StringNGrams",Dc="StringSplit",Rc="StringToHashBucketFast",yo="Sub",xo="Tan",vo="Tanh",gs="Tile",$u="TopK",Au="Transform",_r="Transpose",jm="Unique",Fu="Unpack",Mc="UnsortedSegmentSum",yD="UpperBound",Du="ZerosLike",bs="Step",Wh="FromPixels",Ru="RotateWithOffset",oi="_FusedMatMul",li="FusedConv2D",ui="FusedDepthwiseConv2D";function Yr(...e){X().getBool("IS_TEST")||X().getBool("PROD")||console.warn(...e)}function xD(...e){X().getBool("IS_TEST")||X().getBool("PROD")||console.log(...e)}var hl=Vx("kernelRegistry",()=>new Map),nc=Vx("gradRegistry",()=>new Map);function Bh(e,t){let n=Ux(e,t);return hl.get(n)}function Oy(e){return nc.get(e)}function Vh(e){let t=hl.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 Pc(e){let{kernelName:t,backendName:n}=e,a=Ux(t,n);hl.has(a)&&Yr(`The kernel '${t}' for backend '${n}' is already registered`),hl.set(a,e)}function XI(e){let{kernelName:t}=e;nc.has(t)&&X().getBool("DEBUG")&&Yr(`Overriding the gradient for '${t}'`),nc.set(t,e)}function vD(e,t){let n=Ux(e,t);if(!hl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);hl.delete(n)}function wD(e){if(!nc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);nc.delete(e)}function kD(e,t){Vh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});Pc(a)})}function Ux(e,t){return`${t}_${e}`}var v={};Fe(v,{arraysEqual:()=>hs,assert:()=>R,assertNonNegativeIntegerDimensions:()=>zx,assertNonNull:()=>ki,assertShapesMatch:()=>Cn,bytesFromStringArray:()=>WI,bytesPerElement:()=>Py,checkConversionForErrors:()=>LI,clamp:()=>tc,computeStrides:()=>$l,createScalarValue:()=>_D,createShuffledIndices:()=>rD,decodeString:()=>Uh,distSquared:()=>eD,encodeString:()=>Lc,fetch:()=>$D,fingerPrint64:()=>CD,flatten:()=>ii,getArrayFromDType:()=>OI,getTypedArrayFromDType:()=>PI,hasEncodingLoss:()=>oD,hexToLong:()=>Oc,indexToLoc:()=>pD,inferDtype:()=>fm,inferFromImplicitShape:()=>iD,isBoolean:()=>BI,isFunction:()=>as,isInt:()=>dl,isNumber:()=>VI,isPromise:()=>Wx,isScalarShape:()=>tD,isString:()=>Zr,isTypedArray:()=>hn,isValidDtype:()=>zI,locToIndex:()=>uD,makeOnesTypedArray:()=>Lx,makeZerosNestedTypedArray:()=>lD,makeZerosTypedArray:()=>gm,nearestDivisor:()=>Oh,nearestLargerEven:()=>ZF,now:()=>ac,parseAxisParam:()=>Ea,randUniform:()=>QF,repeatedTry:()=>sD,rightPad:()=>Zp,shuffle:()=>RI,shuffleCombo:()=>YF,sizeFromShape:()=>bt,sizeToSquarishShape:()=>aD,squeezeShape:()=>MI,sum:()=>JF,swap:()=>Ph,tanh:()=>nD,toNestedArray:()=>ll,toTypedArray:()=>qm});var sk=ds(DF()),Xs=sk.default||sk;function Oc(e){return Xs.fromString(e,!0,16)}var YI=Oc("c3a5c85c97cb3127"),qs=Oc("b492b66fbe98f273"),wn=Oc("9ae16a3b2f90404f");function Ly(e){return e.xor(e.shru(47))}function ZI(e,t,n){let a=e.slice(t,t+n);return Xs.fromBytes(Array.from(a),!0,!0)}function gt(e,t){return ZI(e,t,8)}function ik(e,t){return ZI(e,t,4)}function Jt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function es(e,t,n=Oc("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 ID(e,t,n,a,r,s){r=r.add(e),s=Jt(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(Jt(r,44)),[r.add(a),s.add(i)]}function dh(e,t,n,a){return ID(gt(e,t),gt(e,t+8),gt(e,t+16),gt(e,t+24),n,a)}function TD(e,t=e.length){if(t>=8){let n=wn.add(t*2),a=gt(e,0).add(wn),r=gt(e,t-8),s=Jt(r,37).mul(n).add(a),i=Jt(a,25).add(r).mul(n);return es(s,i,n)}if(t>=4){let n=wn.add(t*2),a=ik(e,0);return es(a.shl(3).add(t),ik(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 Ly(wn.mul(s).xor(YI.mul(i))).mul(wn)}return wn}function SD(e,t=e.length){let n=wn.add(t*2),a=gt(e,0).mul(qs),r=gt(e,8),s=gt(e,t-8).mul(n),i=gt(e,t-16).mul(wn);return es(Jt(a.add(r),43).add(Jt(s,30)).add(i),a.add(Jt(r.add(wn),18)).add(s),n)}function ND(e,t=e.length){let n=wn.add(t*2),a=gt(e,0).mul(wn),r=gt(e,8),s=gt(e,t-8).mul(n),i=gt(e,t-16).mul(wn),o=Jt(a.add(r),43).add(Jt(s,30)).add(i),l=es(o,a.add(Jt(r.add(wn),18)).add(s),n),u=gt(e,16).mul(n),p=gt(e,24),d=o.add(gt(e,t-32)).mul(n),c=l.add(gt(e,t-24)).mul(n);return es(Jt(u.add(p),43).add(Jt(d,30)).add(c),u.add(Jt(p.add(a),18)).add(d),n)}function CD(e,t=e.length){let n=Xs.fromNumber(81,!0);if(t<=32)return t<=16?TD(e,t):SD(e,t);if(t<=64)return ND(e,t);let a=n,r=n.mul(qs).add(113),s=Ly(r.mul(wn).add(113)).mul(wn),i=[Xs.UZERO,Xs.UZERO],o=[Xs.UZERO,Xs.UZERO];a=a.mul(wn).add(gt(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=Jt(a.add(r).add(i[0]).add(gt(e,l+8)),37).mul(qs),r=Jt(r.add(i[1]).add(gt(e,l+48)),42).mul(qs),a=a.xor(o[1]),r=r.add(i[0]).add(gt(e,l+40)),s=Jt(s.add(o[0]),33).mul(qs),i=dh(e,l,i[1].mul(qs),a.add(o[0])),o=dh(e,l+32,s.add(o[1]),r.add(gt(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=qs.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=Jt(a.add(r).add(i[0]).add(gt(e,l+8)),37).mul(d),r=Jt(r.add(i[1]).add(gt(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(gt(e,l+40))),s=Jt(s.add(o[0]),33).mul(d),i=dh(e,l,i[1].mul(d),a.add(o[0])),o=dh(e,l+32,s.add(o[1]),r.add(gt(e,l+16))),[s,a]=[a,s],es(es(i[0],o[0],d).add(Ly(r).mul(YI)).add(s),es(i[1],o[1],d).add(a),d)}function _D(e,t){return t==="string"?Lc(e):qm([e],t)}function ED(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function qm(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=ii(e)),X().getBool("DEBUG")&&LI(e,t),ED(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=ac();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:ac()-i})}if(X().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{FD(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 FD(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 RD(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(!hs(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 ok=20,Op=3,Iy=7;function PD(e,t,n,a){let r=$l(t),s=OD(e,t,n,r),i=t.length,o=Sh(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 K$=Object.defineProperty;var Ur=(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 ty=(e,t)=>{for(var n in t)K$(e,n,{get:t[n],enumerable:!0})};var Oe={};ty(Oe,{Abs:()=>xl,Acos:()=>vl,Acosh:()=>wl,AdadeltaOptimizer:()=>rf,AdagradOptimizer:()=>sf,AdamOptimizer:()=>of,AdamaxOptimizer:()=>lf,Add:()=>ps,AddN:()=>mi,All:()=>kl,Any:()=>Il,ArgMax:()=>fi,ArgMin:()=>ac,Asin:()=>Sl,Asinh:()=>Tl,Atan:()=>Nl,Atan2:()=>_l,Atanh:()=>Cl,AvgPool:()=>gi,AvgPool3D:()=>rc,AvgPool3DGrad:()=>Xh,AvgPoolGrad:()=>Kh,BackendWasm:()=>hA,BatchMatMul:()=>bi,BatchToSpaceND:()=>El,Bincount:()=>Yh,BroadcastArgs:()=>Zh,BroadcastTo:()=>NI,Callback:()=>GN,CallbackList:()=>KT,Cast:()=>yi,Ceil:()=>xi,ClipByValue:()=>cs,Complex:()=>Jh,ComplexAbs:()=>sc,Concat:()=>Al,Conv2D:()=>vi,Conv2DBackpropFilter:()=>Qh,Conv2DBackpropInput:()=>wi,Conv3D:()=>ic,Conv3DBackpropFilterV2:()=>em,Conv3DBackpropInputV2:()=>tm,Cos:()=>ki,Cosh:()=>Ii,CropAndResize:()=>Fl,Cumprod:()=>$l,Cumsum:()=>Si,CustomCallback:()=>YT,DataStorage:()=>Hh,DenseBincount:()=>nm,DepthToSpace:()=>Dl,DepthwiseConv2dNative:()=>Ti,DepthwiseConv2dNativeBackpropFilter:()=>am,DepthwiseConv2dNativeBackpropInput:()=>rm,Diag:()=>sm,Dilation2D:()=>oc,Dilation2DBackpropFilter:()=>gh,Dilation2DBackpropInput:()=>fh,ENV:()=>wx,EarlyStopping:()=>HN,Einsum:()=>im,Elu:()=>Ci,EluGrad:()=>om,Environment:()=>SI,Equal:()=>Ml,Erf:()=>Rl,Exp:()=>_i,ExpandDims:()=>Pl,Expm1:()=>Ol,FFT:()=>lm,Fill:()=>lc,FlipLeftRight:()=>Ll,Floor:()=>Ei,FloorDiv:()=>Ai,FromPixels:()=>bh,FusedBatchNorm:()=>$i,FusedConv2D:()=>Qs,FusedDepthwiseConv2D:()=>ei,GPGPUContext:()=>ph,GatherNd:()=>Bl,GatherV2:()=>zl,GraphModel:()=>y0,Greater:()=>Wl,GreaterEqual:()=>Fi,History:()=>XT,IFFT:()=>um,Identity:()=>Di,Imag:()=>pm,InputSpec:()=>zt,IsFinite:()=>Vl,IsInf:()=>Ul,IsNan:()=>Gl,KernelBackend:()=>nc,LRN:()=>uc,LRNGrad:()=>dm,LayerVariable:()=>WT,LayersModel:()=>Nr,LeakyRelu:()=>Ri,Less:()=>Hl,LessEqual:()=>jl,LinSpace:()=>cm,Log:()=>Mi,Log1p:()=>ql,LogSoftmax:()=>_I,LogicalAnd:()=>Kl,LogicalNot:()=>Xl,LogicalOr:()=>Yl,LogicalXor:()=>CI,LowerBound:()=>LF,MathBackendWebGL:()=>Ff,Max:()=>Pi,MaxPool:()=>Li,MaxPool3D:()=>pc,MaxPool3DGrad:()=>mm,MaxPoolGrad:()=>hm,MaxPoolWithArgmax:()=>fm,Maximum:()=>Oi,Mean:()=>zi,Min:()=>Bi,Minimum:()=>Wi,MirrorPad:()=>Vi,Mod:()=>Zl,MomentumOptimizer:()=>uf,Multinomial:()=>gm,Multiply:()=>Ui,Neg:()=>Jl,NonMaxSuppressionV3:()=>eu,NonMaxSuppressionV4:()=>tu,NonMaxSuppressionV5:()=>nu,NotEqual:()=>Ql,OP_SCOPE_SUFFIX:()=>Tx,OneHot:()=>Gi,OnesLike:()=>au,Optimizer:()=>Ar,OptimizerConstructors:()=>Gr,Pack:()=>ru,PadV2:()=>Hi,Pool:()=>zF,Pow:()=>ji,Prelu:()=>qi,Prod:()=>Ki,RMSPropOptimizer:()=>pf,RNN:()=>cr,RaggedGather:()=>bm,RaggedTensorToTensor:()=>ym,Range:()=>cc,Rank:()=>xy,Real:()=>xm,RealDiv:()=>Ni,Reciprocal:()=>su,Reduction:()=>xn,Relu:()=>Xi,Relu6:()=>Ji,Reshape:()=>iu,ResizeBilinear:()=>Zi,ResizeBilinearGrad:()=>wm,ResizeNearestNeighbor:()=>Yi,ResizeNearestNeighborGrad:()=>vm,Reverse:()=>Qi,RotateWithOffset:()=>ku,Round:()=>eo,Rsqrt:()=>to,SGDOptimizer:()=>zc,ScatterNd:()=>ou,SearchSorted:()=>km,Select:()=>lu,Selu:()=>uu,Sequential:()=>cl,Sigmoid:()=>ao,Sign:()=>du,Sin:()=>no,Sinh:()=>cu,Slice:()=>pu,Softmax:()=>io,Softplus:()=>hu,SpaceToBatchND:()=>mu,SparseFillEmptyRows:()=>dc,SparseReshape:()=>gu,SparseSegmentMean:()=>hc,SparseSegmentSum:()=>mc,SparseToDense:()=>Im,SplitV:()=>fu,Sqrt:()=>ro,Square:()=>fc,SquaredDifference:()=>oo,Step:()=>hs,StridedSlice:()=>bu,StringNGrams:()=>gc,StringSplit:()=>bc,StringToHashBucketFast:()=>yc,Sub:()=>lo,Sum:()=>so,SymbolicTensor:()=>za,Tan:()=>uo,Tanh:()=>po,Tensor:()=>Te,TensorBuffer:()=>Ht,Tile:()=>ds,TopK:()=>yu,Transform:()=>xu,Transpose:()=>Tr,Unique:()=>Sm,Unpack:()=>vu,UnsortedSegmentSum:()=>xc,UpperBound:()=>BF,Variable:()=>es,ZerosLike:()=>wu,_FusedMatMul:()=>Js,abs:()=>Lt,acos:()=>zx,acosh:()=>Bx,add:()=>Y,addN:()=>xS,all:()=>Em,any:()=>Gp,argMax:()=>ai,argMin:()=>Wx,asin:()=>Vx,asinh:()=>Ux,atan:()=>Gx,atan2:()=>Hx,atanh:()=>jx,avgPool:()=>fa,avgPool3d:()=>Kx,backend:()=>tS,backend_util:()=>N,basicLSTMCell:()=>IS,batchNorm:()=>gs,batchNorm2d:()=>Xx,batchNorm3d:()=>Yx,batchNorm4d:()=>Zx,batchToSpaceND:()=>_c,bincount:()=>Jx,booleanMaskAsync:()=>sT,broadcastArgs:()=>SS,broadcastTo:()=>Ks,broadcast_util:()=>Iu,browser:()=>co,buffer:()=>Pe,callbacks:()=>sH,cast:()=>oe,ceil:()=>Qx,clipByValue:()=>Qt,clone:()=>ar,complex:()=>Cr,concat:()=>Ze,concat1d:()=>ev,concat2d:()=>tv,concat3d:()=>nv,concat4d:()=>av,constraints:()=>GT,conv1d:()=>Am,conv2d:()=>$t,conv2dTranspose:()=>$m,conv3d:()=>sv,conv3dTranspose:()=>iv,copyRegisteredKernels:()=>GF,cos:()=>Ec,cosh:()=>Fm,cosineWindow:()=>Qm,cumprod:()=>Hp,cumsum:()=>Dm,customGrad:()=>ir,data:()=>f2,denseBincount:()=>NS,deprecationWarn:()=>Fx,depthToSpace:()=>ov,depthwiseConv2d:()=>bs,deregisterOp:()=>lH,device_util:()=>Ic,diag:()=>CS,dilation2d:()=>lv,disableDeprecationWarnings:()=>yR,dispose:()=>$e,disposeVariables:()=>xR,div:()=>he,divNoNan:()=>uv,dot:()=>pv,dropout:()=>Ov,einsum:()=>_S,elu:()=>Su,enableDebugMode:()=>bR,enableProdMode:()=>gR,enclosingPowerOfTwo:()=>Lv,engine:()=>Ja,env:()=>H,equal:()=>Jn,erf:()=>cv,euclideanNorm:()=>mv,exp:()=>fn,expandDims:()=>hn,expm1:()=>fv,eye:()=>Rm,fft:()=>Oc,fill:()=>gn,findBackend:()=>NR,findBackendFactory:()=>CR,floor:()=>Nu,floorDiv:()=>_m,forceHalfFloat:()=>D_,fused:()=>ll,gather:()=>Cu,gatherND:()=>uT,gather_util:()=>Dx,getBackend:()=>SR,getGradient:()=>by,getKernel:()=>yh,getKernelsForBackend:()=>xh,getThreadsCount:()=>Yue,gpgpu_util:()=>c_,grad:()=>ZP,grads:()=>JP,greater:()=>Vn,greaterEqual:()=>ys,ifft:()=>ol,imag:()=>Tc,image:()=>Ir,inTopKAsync:()=>pT,initializers:()=>HT,input:()=>pN,io:()=>Ut,irfft:()=>Xm,isFinite:()=>gv,isInf:()=>bv,isNaN:()=>yv,keep:()=>Zt,kernel_impls:()=>pr,layers:()=>jT,leakyRelu:()=>Ac,less:()=>Mm,lessEqual:()=>xs,linalg:()=>Wv,linspace:()=>DS,loadGraphModel:()=>c6,loadGraphModelSync:()=>d6,loadLayersModel:()=>mU,localResponseNormalization:()=>xv,log:()=>Qn,log1p:()=>$c,logSigmoid:()=>vv,logSoftmax:()=>Om,logSumExp:()=>Lm,logicalAnd:()=>_a,logicalNot:()=>Fc,logicalOr:()=>zm,logicalXor:()=>wv,losses:()=>kT,lowerBound:()=>MS,matMul:()=>Ae,math:()=>eS,max:()=>Na,maxPool:()=>Dt,maxPool3d:()=>kv,maxPoolWithArgmax:()=>PS,maximum:()=>ur,mean:()=>Nt,memory:()=>kh,meshgrid:()=>OS,metrics:()=>WN,min:()=>jp,minimum:()=>_u,mirrorPad:()=>Iv,mod:()=>Sv,model:()=>dU,models:()=>VN,moments:()=>Dc,movingAverage:()=>iT,mul:()=>z,multiRNNCell:()=>LS,multinomial:()=>zS,neg:()=>yt,nextFrame:()=>Vv,norm:()=>Tu,notEqual:()=>ii,oneHot:()=>al,ones:()=>Yn,onesLike:()=>ea,op:()=>L,outerProduct:()=>BS,pad:()=>ga,pad1d:()=>WS,pad2d:()=>VS,pad3d:()=>US,pad4d:()=>GS,pool:()=>Tv,pow:()=>_r,prelu:()=>Mc,print:()=>Ex,prod:()=>Nv,profile:()=>vR,raggedGather:()=>HS,raggedTensorToTensor:()=>jS,rand:()=>qS,randomGamma:()=>KS,randomNormal:()=>Wm,randomStandardNormal:()=>XS,randomUniform:()=>Eu,range:()=>sl,ready:()=>IR,real:()=>rl,reciprocal:()=>Ev,registerBackend:()=>Cm,registerCallbackConstructor:()=>fU,registerGradient:()=>EI,registerKernel:()=>vc,registerOp:()=>oH,regularizers:()=>UN,relu:()=>Xe,relu6:()=>Vm,removeBackend:()=>TR,reshape:()=>B,reverse:()=>ma,reverse1d:()=>YS,reverse2d:()=>ZS,reverse3d:()=>JS,reverse4d:()=>QS,rfft:()=>Lc,round:()=>Um,rsqrt:()=>Gm,scalar:()=>ye,scatterND:()=>oT,scatter_util:()=>Rx,searchSorted:()=>Bm,selu:()=>Hm,separableConv2d:()=>vs,sequential:()=>hU,serialization:()=>ne,setBackend:()=>kR,setPlatform:()=>_R,setThreadsCount:()=>Xue,setWasmPath:()=>que,setWasmPaths:()=>Kue,setWebGLContext:()=>MC,setdiff1dAsync:()=>eT,sigmoid:()=>da,sign:()=>Av,signal:()=>wT,sin:()=>jm,sinh:()=>qm,slice:()=>We,slice1d:()=>Pc,slice2d:()=>Km,slice3d:()=>mo,slice4d:()=>il,slice_util:()=>jt,softmax:()=>ja,softplus:()=>ho,spaceToBatchND:()=>Rc,sparse:()=>IT,sparseToDense:()=>lT,spectral:()=>vT,split:()=>Ln,sqrt:()=>on,square:()=>ot,squaredDifference:()=>Ym,squeeze:()=>ws,stack:()=>Ft,step:()=>fo,stridedSlice:()=>$v,string:()=>ST,sub:()=>pe,sum:()=>fe,sumOutType:()=>Nm,tan:()=>Fv,tanh:()=>ri,tensor:()=>On,tensor1d:()=>Ke,tensor2d:()=>Ca,tensor3d:()=>Nc,tensor4d:()=>Aa,tensor5d:()=>tT,tensor6d:()=>nT,tensor_util:()=>Ba,test_util:()=>gS,tidy:()=>P,tile:()=>Pn,time:()=>wR,topk:()=>Dv,train:()=>zs,transpose:()=>Ce,truncatedNormal:()=>Zm,unique:()=>Rv,unregisterGradient:()=>UF,unregisterKernel:()=>VF,unsortedSegmentSum:()=>Jm,unstack:()=>ct,upcastType:()=>ha,upperBound:()=>aT,util:()=>v,valueAndGrad:()=>QP,valueAndGrads:()=>eO,variable:()=>Mv,variableGrads:()=>RS,version:()=>ope,version_converter:()=>m6,version_core:()=>iM,version_layers:()=>pw,version_wasm:()=>Zue,version_webgl:()=>VZ,webgl:()=>UZ,webgl_util:()=>RC,where:()=>mn,whereAsync:()=>Pv,zeros:()=>It,zerosLike:()=>je});var X$=Object.create,gx=Object.defineProperty,Y$=Object.getOwnPropertyDescriptor,Z$=Object.getOwnPropertyNames,J$=Object.getPrototypeOf,Q$=Object.prototype.hasOwnProperty,dI=(e=>typeof Ur!="undefined"?Ur:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof Ur!="undefined"?Ur:t)[n]}):e)(function(e){if(typeof Ur!="undefined")return Ur.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')}),Wt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),_e=(e,t)=>{for(var n in t)gx(e,n,{get:t[n],enumerable:!0})},eF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Z$(t))!Q$.call(e,r)&&r!==n&&gx(e,r,{get:()=>t[r],enumerable:!(a=Y$(t,r))||a.enumerable});return e},ls=(e,t,n)=>(n=e!=null?X$(J$(e)):{},eF(t||!e||!e.__esModule?gx(n,"default",{value:e,enumerable:!0}):n,e)),tF=Wt((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,W){this.low=S|0,this.high=M|0,this.unsigned=!!W}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 W,U,G;return M?(S>>>=0,(G=0<=S&&S<256)&&(U=i[S],U)?U:(W=u(S,(S|0)<0?-1:0,!0),G&&(i[S]=W),W)):(S|=0,(G=-128<=S&&S<128)&&(U=s[S],U)?U:(W=u(S,S<0?-1:0,!1),G&&(s[S]=W),W))}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<=-b)return R;if(S+1>=b)return E}return S<0?l(-S,M).neg():u(S%f|0,S/f|0,M)}a.fromNumber=l;function u(S,M,W){return new a(S,M,W)}a.fromBits=u;var p=Math.pow;function d(S,M,W){if(S.length===0)throw Error("empty string");if(S==="NaN"||S==="Infinity"||S==="+Infinity"||S==="-Infinity")return x;if(typeof M=="number"?(W=M,M=!1):M=!!M,W=W||10,W<2||360)throw Error("interior hyphen");if(U===0)return d(S.substring(1),M,W).neg();for(var G=l(p(W,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(),W=S.isNegative();return M&&!W?-1:!M&&W?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,W=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+=W+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(y)&&S.lt(y))return l(this.toNumber()*S.toNumber(),this.unsigned);var W=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+=W*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 W,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 W=q.div(S).shl(1),W.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(W)),G=W.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);){W=Math.max(1,Math.floor(U.toNumber()/S.toNumber()));for(var K=Math.ceil(Math.log(W)/Math.LN2),Z=K<=48?1:p(2,K-48),Q=l(W),ee=Q.mul(S);ee.isNegative()||ee.gt(U);)W-=Z,Q=l(W,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 W=this.low;return u(W>>>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,W){return W?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)}}),nF=Wt(()=>{}),aF=Wt(()=>{}),rF=Wt((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)}),sF=Wt((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)}),iF=Wt((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)}),oF=Wt((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)}),lF=Wt((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,b,y=[],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&&(b=b+1640531527|0,h=y[g&127]^=m+b,f=h==0?f+1:0);for(f>=128&&(y[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=y[f+34&127],h=y[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,y[f]=m^h;d.w=b,d.X=y,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)}),uF=Wt((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)}),pF=Wt(()=>{}),cF=Wt((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=y(b(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,W=0;S=d;)S/=2,M/=2,W>>>=1;return(S+W)/M};return F.int32=function(){return R.g(4)|0},F.quick=function(){return R.g(4)/4294967296},F.double=F,y(w(R.S),a),(T.pass||C||function(S,M,W,U){return U&&(U.S&&g(U,R),S.state=function(){return g(R,{})}),W?(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=rF(),a=sF(),r=iF(),s=oF(),i=lF(),o=uF(),l=cF();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),hI=Wt(()=>{}),bx=Wt(()=>{}),dh=Wt(()=>{}),dF=Wt(()=>{}),hF=Wt(()=>{}),mF=Wt(()=>{}),fF=Wt((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),rn}function u(){return ue.buffer!=ze&&it(ue.buffer),An}function p(){return ue.buffer!=ze&&it(ue.buffer),sa}function d(){return ue.buffer!=ze&&it(ue.buffer),$n}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),b=[],y="./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 W(D){D instanceof Rs||Q("exiting due to exception: "+D)}if(T){I?E=dh().dirname(E)+"/":E=__dirname+"/";var U,G;typeof dI=="function"&&(U=bx(),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,He){ke?ce(ke):re(He.buffer)})},process.argv.length>1&&(y=process.argv[1].replace(/\\/g,"/")),b=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(va())throw process.exitCode=j,re;W(re),process.exit(j)},c.inspect=function(){return"[Emscripten Module object]"};let D;try{D=dF()}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=hF().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&&(b=c.arguments),c.thisProgram&&(y=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 be=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Oo("no native wasm support detected");var ue,xe,Ie=!1,Se;function Le(D,j){D||Oo(j)}var Ve=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function tt(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 He="";j>10,56320|oa&1023)}}return He}function st(D,j){return D?tt(i(),D,j):""}function Je(D,j,re,ce){if(!(ce>0))return 0;for(var ke=re,He=re+ce-1,Ne=0;Ne=55296&&Fe<=57343){var Ot=D.charCodeAt(++Ne);Fe=65536+((Fe&1023)<<10)|Ot&1023}if(Fe<=127){if(re>=He)break;j[re++]=Fe}else if(Fe<=2047){if(re+1>=He)break;j[re++]=192|Fe>>6,j[re++]=128|Fe&63}else if(Fe<=65535){if(re+2>=He)break;j[re++]=224|Fe>>12,j[re++]=128|Fe>>6&63,j[re++]=128|Fe&63}else{if(re+3>=He)break;j[re++]=240|Fe>>18,j[re++]=128|Fe>>12&63,j[re++]=128|Fe>>6&63,j[re++]=128|Fe&63}}return j[re]=0,re-ke}function nt(D,j,re){return Je(D,i(),j,re)}var ze,dt,Hn,Mt,ra,rn,An,sa,$n;C&&(ze=c.buffer);function it(D){ze=D,c.HEAP8=dt=new Int8Array(D),c.HEAP16=Mt=new Int16Array(D),c.HEAP32=rn=new Int32Array(D),c.HEAPU8=Hn=new Uint8Array(D),c.HEAPU16=ra=new Uint16Array(D),c.HEAPU32=An=new Uint32Array(D),c.HEAPF32=sa=new Float32Array(D),c.HEAPF64=$n=new Float64Array(D)}var Fn=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:Fn/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),Fn=ze.byteLength,it(ze);var jn,fr=[],Ro=[],Ya=[],dp=!1;function va(){return be}function Mo(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)gg(c.preRun.shift());gp(fr)}function Xt(){dp=!0,!C&&gp(Ro)}function bd(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)x1(c.postRun.shift());gp(Ya)}}function gg(D){fr.unshift(D)}function bg(D){Ro.unshift(D)}function x1(D){Ya.unshift(D)}var Br=0,Po=null,gr=null;function v1(D){Br++,c.monitorRunDependencies&&c.monitorRunDependencies(Br)}function w1(D){if(Br--,c.monitorRunDependencies&&c.monitorRunDependencies(Br),Br==0&&(Po!==null&&(clearInterval(Po),Po=null),gr)){var j=gr;gr=null,j()}}function Oo(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 yg="data:application/octet-stream;base64,";function yd(D){return D.startsWith(yg)}function hp(D){return D.startsWith("file://")}var bn;bn="tfjs-backend-wasm-threaded-simd.wasm",yd(bn)||(bn=A(bn));function xd(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){Oo(j)}}function xg(){if(!ie&&(w||I)){if(typeof fetch=="function"&&!hp(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 xd(bn)});if(F)return new Promise(function(D,j){F(bn,function(re){D(new Uint8Array(re))},j)})}return Promise.resolve().then(function(){return xd(bn)})}function vg(){var D={env:$d,wasi_snapshot_preview1:$d};function j(Ne,Fe){var Ot=Ne.exports;if(c.asm=Ot,Ag(c.asm._emscripten_tls_init),jn=c.asm.__indirect_function_table,bg(c.asm.__wasm_call_ctors),xe=Fe,!C){var oa=Ee.unusedWorkers.length;Ee.unusedWorkers.forEach(function(yr){Ee.loadWasmModuleToWorker(yr,function(){--oa||w1("wasm-instantiate")})})}}C||v1("wasm-instantiate");function re(Ne){j(Ne.instance,Ne.module)}function ce(Ne){return xg().then(function(Fe){return WebAssembly.instantiate(Fe,D)}).then(function(Fe){return Fe}).then(Ne,function(Fe){Q("failed to asynchronously prepare wasm: "+Fe),Oo(Fe)})}function ke(){return!ie&&typeof WebAssembly.instantiateStreaming=="function"&&!yd(bn)&&!hp(bn)&&!T&&typeof fetch=="function"?fetch(bn,{credentials:"same-origin"}).then(function(Ne){var Fe=WebAssembly.instantiateStreaming(Ne,D);return Fe.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 He=c.instantiateWasm(D,j);return He}catch(Ne){Q("Module.instantiateWasm callback failed with error: "+Ne),m(Ne)}return ke().catch(m),{}}var wg,k1,kg={};function Rs(D){this.name="ExitStatus",this.message="Program terminated with exit("+D+")",this.status=D}function Ig(D){var j=Ee.pthreads[D];delete Ee.pthreads[D],j.terminate(),Jb(D),Ee.runningWorkers.splice(Ee.runningWorkers.indexOf(j),1),j.pthread_ptr=0}function Sg(D){var j=Ee.pthreads[D];j.postMessage({cmd:"cancel"})}function mp(D){var j=Ee.pthreads[D];Le(j),Ee.returnWorkerToPool(j)}function vd(D){var j=Ee.getNewWorker();if(!j)return 6;Ee.runningWorkers.push(j),Ee.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 wd={varargs:void 0,get:function(){wd.varargs+=4;var D=l()[wd.varargs-4>>2];return D},getStr:function(D){var j=st(D);return j}};function fp(D){if(C)return Wr(1,1,D);Se=D,va()||(Ee.terminateAllThreads(),c.onExit&&c.onExit(D),Ie=!0),x(D,new Rs(D))}function I1(D,j){if(Se=D,!j&&C)throw Id(D),"unwind";fp(D)}var kd=I1;function Tg(D){if(D instanceof Rs||D=="unwind")return Se;x(1,D)}var Ee={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Ee.initWorker():Ee.initMainThread()},initMainThread:function(){for(var D=8;D--;)Ee.allocateUnusedWorker()},initWorker:function(){be=!1},setExitStatus:function(D){Se=D},terminateAllThreads:function(){for(var D of Object.values(Ee.pthreads))Ee.returnWorkerToPool(D);for(var D of Ee.unusedWorkers)D.terminate();Ee.unusedWorkers=[]},returnWorkerToPool:function(D){var j=D.pthread_ptr;delete Ee.pthreads[j],Ee.unusedWorkers.push(D),Ee.runningWorkers.splice(Ee.runningWorkers.indexOf(D),1),D.pthread_ptr=0,Jb(j)},receiveObjectTransfer:function(D){},threadInitTLS:function(){Ee.tlsInitFunctions.forEach(D=>D())},loadWasmModuleToWorker:function(D,j){D.onmessage=re=>{var ce=re.data,ke=ce.cmd;if(D.pthread_ptr&&(Ee.currentProxiedOperationCallerThread=D.pthread_ptr),ce.targetThread&&ce.targetThread!=Od()){var He=Ee.pthreads[ce.targetThread];He?He.postMessage(ce,ce.transferList):Q('Internal error! Worker sent a message "'+ke+'" to target pthread '+ce.targetThread+", but that thread no longer exists!"),Ee.currentProxiedOperationCallerThread=void 0;return}ke==="processProxyingQueue"?bp(ce.queue):ke==="spawnThread"?vd(ce):ke==="cleanupThread"?mp(ce.thread):ke==="killThread"?Ig(ce.thread):ke==="cancelThread"?Sg(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),Ee.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");Ee.unusedWorkers.push(new Worker(D))},getNewWorker:function(){return Ee.unusedWorkers.length==0&&(Ee.allocateUnusedWorker(),Ee.loadWasmModuleToWorker(Ee.unusedWorkers[0])),Ee.unusedWorkers.pop()}};c.PThread=Ee;function gp(D){for(;D.length>0;)D.shift()(c)}function Ng(D){var j=Qb(),re=D();return Ld(j),re}function S1(D){return D}function T1(D){var j=/\b_Z[\w\d_]+/g;return D.replace(j,function(re){var ce=re;return re===ce?re:ce+" ["+re+"]"})}function Cg(){var D=Od(),j=l()[D+44>>2],re=l()[D+48>>2],ce=j-re;F1(j,ce),Ld(j)}c.establishStackSpace=Cg;function Id(D){if(C)return Wr(2,0,D);try{kd(D)}catch(j){Tg(j)}}var Lo=[];function _g(D){var j=Lo[D];return j||(D>=Lo.length&&(Lo.length=D+1),Lo[D]=j=jn.get(D)),j}function Eg(D,j){var re=_g(D)(j);va()?Ee.setExitStatus(re):$1(re)}c.invokeEntryPoint=Eg;function N1(){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 Ag(D){Ee.tlsInitFunctions.push(D)}function $g(D,j){s().set(D,j)}function Fg(D){_1(D,!I,1,!w),Ee.threadInitTLS()}function Dg(D){C?postMessage({cmd:"cleanupThread",thread:D}):mp(D)}function Sd(D,j,re,ce){return C?Wr(3,1,D,j,re,ce):Td(D,j,re,ce)}function Td(D,j,re,ce){if(typeof SharedArrayBuffer=="undefined")return Q("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var ke=[],He=0;if(C&&(ke.length===0||He))return Sd(D,j,re,ce);if(He)return He;var Ne={startRoutine:re,pthread_ptr:D,arg:ce,transferList:ke};return C?(Ne.cmd="spawnThread",postMessage(Ne,ke),0):vd(Ne)}function Rg(){return 2097152}var Mg=!0;function Pg(){return Mg}function bp(D){Atomics.store(l(),D>>2,1),Od()&&A1(D),Atomics.compareExchange(l(),D>>2,1,0)}c.executeNotifiedProxyingQueue=bp;function Og(D,j,re,ce){if(D==j)setTimeout(()=>bp(ce));else if(C)postMessage({targetThread:D,cmd:"processProxyingQueue",queue:ce});else{var ke=Ee.pthreads[D];if(!ke)return;ke.postMessage({cmd:"processProxyingQueue",queue:ce})}return 1}function Lg(D,j,re){return-1}function zg(){Oo("")}function Ms(D){Ms.shown||(Ms.shown={}),Ms.shown[D]||(Ms.shown[D]=1,T&&(D="warning: "+D),Q(D))}function Bg(){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 Wg(){return Date.now()}function Nd(){return 2147483648}function Vg(){return Nd()}var zo;T?zo=()=>{var D=process.hrtime();return D[0]*1e3+D[1]/1e6}:C?zo=()=>performance.now()-c.__performance_now_clock_drift:zo=()=>performance.now();function Ug(D,j,re){i().copyWithin(D,j,j+re)}function Gg(){return T?mF().cpus().length:navigator.hardwareConcurrency}function Wr(D,j){var re=arguments.length-2,ce=arguments;return Ng(()=>{for(var ke=re,He=zd(ke*8),Ne=He>>3,Fe=0;Fe>3,ke=0;ke>>16),it(ue.buffer),1}catch(j){}}function qg(D){var j=i().length;if(D=D>>>0,D<=j)return!1;var re=Nd();if(D>re)return!1;let ce=(Ot,oa)=>Ot+(oa-Ot%oa)%oa;for(var ke=1;ke<=4;ke*=2){var He=j*(1+.2/ke);He=Math.min(He,D+100663296);var Ne=Math.min(re,ce(Math.max(D,He),65536)),Fe=jg(Ne);if(Fe)return!0}return!1}function Kg(){throw"unwind"}function Cd(D){return C?Wr(4,1,D):52}function _d(D,j,re,ce,ke){return C?Wr(5,1,D,j,re,ce,ke):70}var Xg=[null,[],[]];function Yg(D,j){var re=Xg[D];j===0||j===10?((D===1?Z:Q)(tt(re,0)),re.length=0):re.push(j)}function Ed(D,j,re,ce){if(C)return Wr(6,1,D,j,re,ce);for(var ke=0,He=0;He>2],Fe=u()[j+4>>2];j+=8;for(var Ot=0;Ot>2]=ke,0}function Ad(D){var j=c["_"+D];return j}function Zg(D,j,re,ce,ke){var He={string:la=>{var Uo=0;if(la!=null&&la!==0){var M1=(la.length<<2)+1;Uo=zd(M1),nt(la,Uo,M1)}return Uo},array:la=>{var Uo=zd(la.length);return $g(la,Uo),Uo}};function Ne(la){return j==="string"?st(la):j==="boolean"?Boolean(la):la}var Fe=Ad(D),Ot=[],oa=0;if(ce)for(var yr=0;yrNe==="number"||Ne==="boolean"),He=j!=="string";return He&&ke&&!ce?Ad(D):function(){return Zg(D,j,re,arguments,ce)}}Ee.init();var Qg=[null,fp,Id,Sd,Cd,_d,Ed],$d={__emscripten_init_main_thread_js:Fg,__emscripten_thread_cleanup:Dg,__pthread_create_js:Td,_emscripten_default_pthread_stack_size:Rg,_emscripten_get_now_is_monotonic:Pg,_emscripten_notify_task_queue:Og,_emscripten_set_offscreencanvas_size:Lg,abort:zg,emscripten_check_blocking_allowed:Bg,emscripten_date_now:Wg,emscripten_get_heap_max:Vg,emscripten_get_now:zo,emscripten_memcpy_big:Ug,emscripten_num_logical_cores:Gg,emscripten_receive_on_main_thread_js:Hg,emscripten_resize_heap:qg,emscripten_unwind_to_js_event_loop:Kg,exit:kd,fd_close:Cd,fd_seek:_d,fd_write:Ed,memory:ue||c.wasmMemory},C1=vg(),eb=c.___wasm_call_ctors=function(){return(eb=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},tb=c._init=function(){return(tb=c._init=c.asm.init).apply(null,arguments)},nb=c._init_with_threads_count=function(){return(nb=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},ab=c._get_threads_count=function(){return(ab=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},rb=c._register_tensor=function(){return(rb=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},sb=c._dispose_data=function(){return(sb=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},ib=c._dispose=function(){return(ib=c._dispose=c.asm.dispose).apply(null,arguments)},ob=c._Abs=function(){return(ob=c._Abs=c.asm.Abs).apply(null,arguments)},lb=c._Add=function(){return(lb=c._Add=c.asm.Add).apply(null,arguments)},ub=c._AddN=function(){return(ub=c._AddN=c.asm.AddN).apply(null,arguments)},pb=c._All=function(){return(pb=c._All=c.asm.All).apply(null,arguments)},cb=c._Any=function(){return(cb=c._Any=c.asm.Any).apply(null,arguments)},db=c._ArgMax=function(){return(db=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},hb=c._AvgPool=function(){return(hb=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},mb=c._BatchMatMul=function(){return(mb=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},fb=c._Ceil=function(){return(fb=c._Ceil=c.asm.Ceil).apply(null,arguments)},gb=c._ClipByValue=function(){return(gb=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},bb=c._Conv2D=function(){return(bb=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},yb=c._Conv2DBackpropInput=function(){return(yb=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},xb=c._Cos=function(){return(xb=c._Cos=c.asm.Cos).apply(null,arguments)},vb=c._Cosh=function(){return(vb=c._Cosh=c.asm.Cosh).apply(null,arguments)},wb=c._CropAndResize=function(){return(wb=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},kb=c._Cumprod=function(){return(kb=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},Ib=c._Cumsum=function(){return(Ib=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},Sb=c._DepthToSpace=function(){return(Sb=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},Tb=c._DepthwiseConv2dNative=function(){return(Tb=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},Nb=c._Elu=function(){return(Nb=c._Elu=c.asm.Elu).apply(null,arguments)},Cb=c._Equal=function(){return(Cb=c._Equal=c.asm.Equal).apply(null,arguments)},_b=c._Exp=function(){return(_b=c._Exp=c.asm.Exp).apply(null,arguments)},Eb=c._FlipLeftRight=function(){return(Eb=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},Ab=c._Floor=function(){return(Ab=c._Floor=c.asm.Floor).apply(null,arguments)},$b=c._FloorDiv=function(){return($b=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},Fb=c._FusedBatchNorm=function(){return(Fb=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},Db=c._FusedConv2D=function(){return(Db=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},Rb=c._FusedDepthwiseConv2D=function(){return(Rb=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},Mb=c._Gather=function(){return(Mb=c._Gather=c.asm.Gather).apply(null,arguments)},Pb=c._GatherNd=function(){return(Pb=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},Ob=c._Greater=function(){return(Ob=c._Greater=c.asm.Greater).apply(null,arguments)},Lb=c._GreaterEqual=function(){return(Lb=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},zb=c._LeakyRelu=function(){return(zb=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},Bb=c._Less=function(){return(Bb=c._Less=c.asm.Less).apply(null,arguments)},Wb=c._LessEqual=function(){return(Wb=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},Vb=c._Log=function(){return(Vb=c._Log=c.asm.Log).apply(null,arguments)},Ub=c._LogicalAnd=function(){return(Ub=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},Gb=c._LogicalNot=function(){return(Gb=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},Hb=c._LogicalOr=function(){return(Hb=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},jb=c._LogicalXor=function(){return(jb=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},qb=c._Max=function(){return(qb=c._Max=c.asm.Max).apply(null,arguments)},Fd=c._MaxPool=function(){return(Fd=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},Dd=c._Maximum=function(){return(Dd=c._Maximum=c.asm.Maximum).apply(null,arguments)},xp=c._Mean=function(){return(xp=c._Mean=c.asm.Mean).apply(null,arguments)},Kb=c._Min=function(){return(Kb=c._Min=c.asm.Min).apply(null,arguments)},Xb=c._Minimum=function(){return(Xb=c._Minimum=c.asm.Minimum).apply(null,arguments)},Bo=c._MirrorPad=function(){return(Bo=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Rd=c._Multiply=function(){return(Rd=c._Multiply=c.asm.Multiply).apply(null,arguments)},Wo=c._Neg=function(){return(Wo=c._Neg=c.asm.Neg).apply(null,arguments)},Vo=c._NonMaxSuppressionV3=function(){return(Vo=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},Yb=c._NonMaxSuppressionV4=function(){return(Yb=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)},Ge=c._PadV2=function(){return(Ge=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)},Be=c._RealDiv=function(){return(Be=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},Pt=c._Relu=function(){return(Pt=c._Relu=c.asm.Relu).apply(null,arguments)},ia=c._Relu6=function(){return(ia=c._Relu6=c.asm.Relu6).apply(null,arguments)},br=c._ResizeBilinear=function(){return(br=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Md=c._ResizeNearestNeighbor=function(){return(Md=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},vp=c._Reverse=function(){return(vp=c._Reverse=c.asm.Reverse).apply(null,arguments)},Zb=c._RotateWithOffset=function(){return(Zb=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},Dn=c._Round=function(){return(Dn=c._Round=c.asm.Round).apply(null,arguments)},Vr=c._Rsqrt=function(){return(Vr=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},Pd=c._ScatterNd=function(){return(Pd=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},f$=c._SelectV2=function(){return(f$=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},g$=c._Sigmoid=function(){return(g$=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},b$=c._Sin=function(){return(b$=c._Sin=c.asm.Sin).apply(null,arguments)},y$=c._Softmax=function(){return(y$=c._Softmax=c.asm.Softmax).apply(null,arguments)},x$=c._SparseFillEmptyRows=function(){return(x$=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},v$=c._SparseReshape=function(){return(v$=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},w$=c._SparseSegmentReduction=function(){return(w$=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},k$=c._Sqrt=function(){return(k$=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},I$=c._Square=function(){return(I$=c._Square=c.asm.Square).apply(null,arguments)},S$=c._SquaredDifference=function(){return(S$=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},T$=c._Step=function(){return(T$=c._Step=c.asm.Step).apply(null,arguments)},N$=c._StridedSlice=function(){return(N$=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},C$=c._Sub=function(){return(C$=c._Sub=c.asm.Sub).apply(null,arguments)},_$=c._Sum=function(){return(_$=c._Sum=c.asm.Sum).apply(null,arguments)},E$=c._Tan=function(){return(E$=c._Tan=c.asm.Tan).apply(null,arguments)},A$=c._Tanh=function(){return(A$=c._Tanh=c.asm.Tanh).apply(null,arguments)},$$=c._Tile=function(){return($$=c._Tile=c.asm.Tile).apply(null,arguments)},F$=c._TopK=function(){return(F$=c._TopK=c.asm.TopK).apply(null,arguments)},D$=c._Transform=function(){return(D$=c._Transform=c.asm.Transform).apply(null,arguments)},R$=c._Transpose=function(){return(R$=c._Transpose=c.asm.Transpose).apply(null,arguments)},M$=c.__FusedMatMul=function(){return(M$=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},P$=c._malloc=function(){return(P$=c._malloc=c.asm.malloc).apply(null,arguments)},O$=c._free=function(){return(O$=c._free=c.asm.free).apply(null,arguments)},L$=c.__emscripten_tls_init=function(){return(L$=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},Od=c._pthread_self=function(){return(Od=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},z$=c.___errno_location=function(){return(z$=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},_1=c.__emscripten_thread_init=function(){return(_1=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},B$=c.__emscripten_thread_crashed=function(){return(B$=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},W$=c._emscripten_main_thread_process_queued_calls=function(){return(W$=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},V$=c._emscripten_main_browser_thread_id=function(){return(V$=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},E1=c._emscripten_run_in_main_runtime_thread_js=function(){return(E1=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},U$=c._emscripten_dispatch_to_thread_=function(){return(U$=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},A1=c.__emscripten_proxy_execute_task_queue=function(){return(A1=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},Jb=c.__emscripten_thread_free_data=function(){return(Jb=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},$1=c.__emscripten_thread_exit=function(){return($1=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},F1=c._emscripten_stack_set_limits=function(){return(F1=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},Qb=c.stackSave=function(){return(Qb=c.stackSave=c.asm.stackSave).apply(null,arguments)},Ld=c.stackRestore=function(){return(Ld=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},zd=c.stackAlloc=function(){return(zd=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},G$=c.dynCall_iijjiiii=function(){return(G$=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},H$=c.dynCall_jiji=function(){return(H$=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=va,c.wasmMemory=ue,c.cwrap=Jg,c.ExitStatus=Rs,c.PThread=Ee;var Bd;gr=function D(){Bd||D1(),Bd||(gr=D)};function D1(D){if(D=D||b,Br>0)return;if(C){h(c),Xt(),postMessage({cmd:"loaded"});return}if(Mo(),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()();D1();var Wd;f&&(Wd={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 Vd;if(typeof WasmBackendModule!="undefined")Vd=WasmBackendModule;else if(typeof r!="undefined")Vd=r;else throw new Error("Could not find wasm module in post.js");if(Wd){var j$=Vd._dispose;Vd._dispose=function(){j$(),Wd.uncaughtException.forEach(function(D){process.removeListener("uncaughtException",D)}),Wd.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)}),gF=Wt((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}};`}),bF=Wt((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 b(X){return s.locateFile?s.locateFile(X,g):g+X}var y,x,w,I;function T(X){X instanceof Po||R("exiting due to exception: "+X)}if(f){m?g=dh().dirname(g)+"/":g=__dirname+"/";var C,E;typeof dI=="function"&&(C=bx(),E=dh()),y=(X,se)=>(X=E.normalize(X),C.readFileSync(X,se?void 0:"utf8")),w=X=>{var se=y(X,!0);return se.buffer||(se=new Uint8Array(se)),se},x=(X,se,we)=>{X=E.normalize(X),C.readFile(X,function(Ge,wt){Ge?we(Ge):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 Po))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="",y=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 Ge=new XMLHttpRequest;Ge.open("GET",X,!0),Ge.responseType="arraybuffer",Ge.onload=()=>{if(Ge.status==200||Ge.status==0&&Ge.response){se(Ge.response);return}we()},Ge.onerror=we,Ge.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"&&Ya("no native wasm support detected");var W,U=!1,G;function q(X,se){X||Ya(se)}var K=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Z(X,se,we){for(var Ge=se+we,wt=se;X[wt]&&!(wt>=Ge);)++wt;if(wt-se>16&&X.buffer&&K)return K.decode(X.subarray(se,wt));for(var kt="";se>10,56320|ia&1023)}}return kt}function Q(X,se){return X?Z(ie,X,se):""}function ee(X,se,we,Ge){if(!(Ge>0))return 0;for(var wt=we,kt=we+Ge-1,Ue=0;Ue=55296&&Be<=57343){var Pt=X.charCodeAt(++Ue);Be=65536+((Be&1023)<<10)|Pt&1023}if(Be<=127){if(we>=kt)break;se[we++]=Be}else if(Be<=2047){if(we+1>=kt)break;se[we++]=192|Be>>6,se[we++]=128|Be&63}else if(Be<=65535){if(we+2>=kt)break;se[we++]=224|Be>>12,se[we++]=128|Be>>6&63,se[we++]=128|Be&63}else{if(we+3>=kt)break;se[we++]=240|Be>>18,se[we++]=128|Be>>12&63,se[we++]=128|Be>>6&63,se[we++]=128|Be&63}}return se[we]=0,we-wt}function ae(X,se,we){return ee(X,ie,se,we)}var te,le,ie,be,ue,xe,Ie,Se,Le;function Ve(X){te=X,s.HEAP8=le=new Int8Array(X),s.HEAP16=be=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 tt=s.INITIAL_MEMORY||16777216,st,Je=[],nt=[],ze=[],dt=!1;function Hn(){return M}function Mt(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)An(s.preRun.shift());gr(Je)}function ra(){dt=!0,gr(nt)}function rn(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)$n(s.postRun.shift());gr(ze)}function An(X){Je.unshift(X)}function sa(X){nt.unshift(X)}function $n(X){ze.unshift(X)}var it=0,Fn=null,jn=null;function fr(X){it++,s.monitorRunDependencies&&s.monitorRunDependencies(it)}function Ro(X){if(it--,s.monitorRunDependencies&&s.monitorRunDependencies(it),it==0&&(Fn!==null&&(clearInterval(Fn),Fn=null),jn)){var se=jn;jn=null,se()}}function Ya(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 dp="data:application/octet-stream;base64,";function va(X){return X.startsWith(dp)}function Mo(X){return X.startsWith("file://")}var Xt;Xt="tfjs-backend-wasm.wasm",va(Xt)||(Xt=b(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){Ya(se)}}function gg(){if(!S&&(h||m)){if(typeof fetch=="function"&&!Mo(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 bg(){var X={env:fp,wasi_snapshot_preview1:fp};function se(Ue,Be){var Pt=Ue.exports;s.asm=Pt,W=s.asm.memory,Ve(W.buffer),st=s.asm.__indirect_function_table,sa(s.asm.__wasm_call_ctors),Ro("wasm-instantiate")}fr("wasm-instantiate");function we(Ue){se(Ue.instance)}function Ge(Ue){return gg().then(function(Be){return WebAssembly.instantiate(Be,X)}).then(function(Be){return Be}).then(Ue,function(Be){R("failed to asynchronously prepare wasm: "+Be),Ya(Be)})}function wt(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!va(Xt)&&!Mo(Xt)&&!f&&typeof fetch=="function"?fetch(Xt,{credentials:"same-origin"}).then(function(Ue){var Be=WebAssembly.instantiateStreaming(Ue,X);return Be.then(we,function(Pt){return R("wasm streaming compile failed: "+Pt),R("falling back to ArrayBuffer instantiation"),Ge(we)})}):Ge(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 x1,Br;function Po(X){this.name="ExitStatus",this.message="Program terminated with exit("+X+")",this.status=X}function gr(X){for(;X.length>0;)X.shift()(s)}function v1(X){return X}function w1(X){var se=/\b_Z[\w\d_]+/g;return X.replace(se,function(we){var Ge=we;return we===Ge?we:Ge+" ["+we+"]"})}function Oo(){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 yg(X,se){le.set(X,se)}function yd(){Ya("")}function hp(){return 2147483648}function bn(){return hp()}function xd(X,se,we){ie.copyWithin(X,se,se+we)}function xg(X){try{return W.grow(X-te.byteLength+65535>>>16),Ve(W.buffer),1}catch(se){}}function vg(X){var se=ie.length;X=X>>>0;var we=hp();if(X>we)return!1;let Ge=(Pt,ia)=>Pt+(ia-Pt%ia)%ia;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,Ge(Math.max(X,kt),65536)),Be=xg(Ue);if(Be)return!0}return!1}var wg={varargs:void 0,get:function(){wg.varargs+=4;var X=xe[wg.varargs-4>>2];return X},getStr:function(X){var se=Q(X);return se}};function k1(X){return 52}function kg(X,se,we,Ge,wt){return 70}var Rs=[null,[],[]];function Ig(X,se){var we=Rs[X];se===0||se===10?((X===1?A:R)(Z(we,0)),we.length=0):we.push(se)}function Sg(X,se,we,Ge){for(var wt=0,kt=0;kt>2],Be=Ie[se+4>>2];se+=8;for(var Pt=0;Pt>2]=wt,0}function mp(X){var se=s["_"+X];return se}function vd(X,se,we,Ge,wt){var kt={string:Dn=>{var Vr=0;if(Dn!=null&&Dn!==0){var Pd=(Dn.length<<2)+1;Vr=xp(Pd),ae(Dn,Vr,Pd)}return Vr},array:Dn=>{var Vr=xp(Dn.length);return yg(Dn,Vr),Vr}};function Ue(Dn){return se==="string"?Q(Dn):se==="boolean"?Boolean(Dn):Dn}var Be=mp(X),Pt=[],ia=0;if(Ge)for(var br=0;brUe==="number"||Ue==="boolean"),kt=se!=="string";return kt&&wt&&!Ge?mp(X):function(){return vd(X,se,we,arguments,Ge)}}var fp={abort:yd,emscripten_get_heap_max:bn,emscripten_memcpy_big:xd,emscripten_resize_heap:vg,fd_close:k1,fd_seek:kg,fd_write:Sg},I1=bg(),kd=s.___wasm_call_ctors=function(){return(kd=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},Tg=s._init=function(){return(Tg=s._init=s.asm.init).apply(null,arguments)},Ee=s._init_with_threads_count=function(){return(Ee=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},gp=s._get_threads_count=function(){return(gp=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},Ng=s._register_tensor=function(){return(Ng=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},S1=s._dispose_data=function(){return(S1=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},T1=s._dispose=function(){return(T1=s._dispose=s.asm.dispose).apply(null,arguments)},Cg=s._Abs=function(){return(Cg=s._Abs=s.asm.Abs).apply(null,arguments)},Id=s._Add=function(){return(Id=s._Add=s.asm.Add).apply(null,arguments)},Lo=s._AddN=function(){return(Lo=s._AddN=s.asm.AddN).apply(null,arguments)},_g=s._All=function(){return(_g=s._All=s.asm.All).apply(null,arguments)},Eg=s._Any=function(){return(Eg=s._Any=s.asm.Any).apply(null,arguments)},N1=s._ArgMax=function(){return(N1=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},Ag=s._AvgPool=function(){return(Ag=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},$g=s._BatchMatMul=function(){return($g=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},Fg=s._Ceil=function(){return(Fg=s._Ceil=s.asm.Ceil).apply(null,arguments)},Dg=s._ClipByValue=function(){return(Dg=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},Sd=s._Conv2D=function(){return(Sd=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},Td=s._Conv2DBackpropInput=function(){return(Td=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},Rg=s._Cos=function(){return(Rg=s._Cos=s.asm.Cos).apply(null,arguments)},Mg=s._Cosh=function(){return(Mg=s._Cosh=s.asm.Cosh).apply(null,arguments)},Pg=s._CropAndResize=function(){return(Pg=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},bp=s._Cumprod=function(){return(bp=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},Og=s._Cumsum=function(){return(Og=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},Lg=s._DepthToSpace=function(){return(Lg=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},zg=s._DepthwiseConv2dNative=function(){return(zg=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},Ms=s._Elu=function(){return(Ms=s._Elu=s.asm.Elu).apply(null,arguments)},Bg=s._Equal=function(){return(Bg=s._Equal=s.asm.Equal).apply(null,arguments)},Wg=s._Exp=function(){return(Wg=s._Exp=s.asm.Exp).apply(null,arguments)},Nd=s._FlipLeftRight=function(){return(Nd=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},Vg=s._Floor=function(){return(Vg=s._Floor=s.asm.Floor).apply(null,arguments)},zo=s._FloorDiv=function(){return(zo=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},Ug=s._FusedBatchNorm=function(){return(Ug=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},Gg=s._FusedConv2D=function(){return(Gg=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},Wr=s._FusedDepthwiseConv2D=function(){return(Wr=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},yp=s._Gather=function(){return(yp=s._Gather=s.asm.Gather).apply(null,arguments)},Hg=s._GatherNd=function(){return(Hg=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},jg=s._Greater=function(){return(jg=s._Greater=s.asm.Greater).apply(null,arguments)},qg=s._GreaterEqual=function(){return(qg=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},Kg=s._LeakyRelu=function(){return(Kg=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},Cd=s._Less=function(){return(Cd=s._Less=s.asm.Less).apply(null,arguments)},_d=s._LessEqual=function(){return(_d=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},Xg=s._Log=function(){return(Xg=s._Log=s.asm.Log).apply(null,arguments)},Yg=s._LogicalAnd=function(){return(Yg=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},Ed=s._LogicalNot=function(){return(Ed=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},Ad=s._LogicalOr=function(){return(Ad=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},Zg=s._LogicalXor=function(){return(Zg=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},Jg=s._Max=function(){return(Jg=s._Max=s.asm.Max).apply(null,arguments)},Qg=s._MaxPool=function(){return(Qg=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},$d=s._Maximum=function(){return($d=s._Maximum=s.asm.Maximum).apply(null,arguments)},C1=s._Mean=function(){return(C1=s._Mean=s.asm.Mean).apply(null,arguments)},eb=s._Min=function(){return(eb=s._Min=s.asm.Min).apply(null,arguments)},tb=s._Minimum=function(){return(tb=s._Minimum=s.asm.Minimum).apply(null,arguments)},nb=s._MirrorPad=function(){return(nb=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},ab=s._Multiply=function(){return(ab=s._Multiply=s.asm.Multiply).apply(null,arguments)},rb=s._Neg=function(){return(rb=s._Neg=s.asm.Neg).apply(null,arguments)},sb=s._NonMaxSuppressionV3=function(){return(sb=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},ib=s._NonMaxSuppressionV4=function(){return(ib=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},ob=s._NonMaxSuppressionV5=function(){return(ob=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},lb=s._NotEqual=function(){return(lb=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},ub=s._OneHot=function(){return(ub=s._OneHot=s.asm.OneHot).apply(null,arguments)},pb=s._PadV2=function(){return(pb=s._PadV2=s.asm.PadV2).apply(null,arguments)},cb=s._Pow=function(){return(cb=s._Pow=s.asm.Pow).apply(null,arguments)},db=s._Prelu=function(){return(db=s._Prelu=s.asm.Prelu).apply(null,arguments)},hb=s._Prod=function(){return(hb=s._Prod=s.asm.Prod).apply(null,arguments)},mb=s._RealDiv=function(){return(mb=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},fb=s._Relu=function(){return(fb=s._Relu=s.asm.Relu).apply(null,arguments)},gb=s._Relu6=function(){return(gb=s._Relu6=s.asm.Relu6).apply(null,arguments)},bb=s._ResizeBilinear=function(){return(bb=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},yb=s._ResizeNearestNeighbor=function(){return(yb=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},xb=s._Reverse=function(){return(xb=s._Reverse=s.asm.Reverse).apply(null,arguments)},vb=s._RotateWithOffset=function(){return(vb=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},wb=s._Round=function(){return(wb=s._Round=s.asm.Round).apply(null,arguments)},kb=s._Rsqrt=function(){return(kb=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Ib=s._ScatterNd=function(){return(Ib=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},Sb=s._SelectV2=function(){return(Sb=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},Tb=s._Sigmoid=function(){return(Tb=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},Nb=s._Sin=function(){return(Nb=s._Sin=s.asm.Sin).apply(null,arguments)},Cb=s._Softmax=function(){return(Cb=s._Softmax=s.asm.Softmax).apply(null,arguments)},_b=s._SparseFillEmptyRows=function(){return(_b=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},Eb=s._SparseReshape=function(){return(Eb=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},Ab=s._SparseSegmentReduction=function(){return(Ab=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},$b=s._Sqrt=function(){return($b=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},Fb=s._Square=function(){return(Fb=s._Square=s.asm.Square).apply(null,arguments)},Db=s._SquaredDifference=function(){return(Db=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Rb=s._Step=function(){return(Rb=s._Step=s.asm.Step).apply(null,arguments)},Mb=s._StridedSlice=function(){return(Mb=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},Pb=s._Sub=function(){return(Pb=s._Sub=s.asm.Sub).apply(null,arguments)},Ob=s._Sum=function(){return(Ob=s._Sum=s.asm.Sum).apply(null,arguments)},Lb=s._Tan=function(){return(Lb=s._Tan=s.asm.Tan).apply(null,arguments)},zb=s._Tanh=function(){return(zb=s._Tanh=s.asm.Tanh).apply(null,arguments)},Bb=s._Tile=function(){return(Bb=s._Tile=s.asm.Tile).apply(null,arguments)},Wb=s._TopK=function(){return(Wb=s._TopK=s.asm.TopK).apply(null,arguments)},Vb=s._Transform=function(){return(Vb=s._Transform=s.asm.Transform).apply(null,arguments)},Ub=s._Transpose=function(){return(Ub=s._Transpose=s.asm.Transpose).apply(null,arguments)},Gb=s.__FusedMatMul=function(){return(Gb=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},Hb=s._malloc=function(){return(Hb=s._malloc=s.asm.malloc).apply(null,arguments)},jb=s._free=function(){return(jb=s._free=s.asm.free).apply(null,arguments)},qb=s.___errno_location=function(){return(qb=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},Fd=s.stackSave=function(){return(Fd=s.stackSave=s.asm.stackSave).apply(null,arguments)},Dd=s.stackRestore=function(){return(Dd=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},xp=s.stackAlloc=function(){return(xp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},Kb=s.dynCall_iijjiiii=function(){return(Kb=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},Xb=s.dynCall_jiji=function(){return(Xb=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=wd;var Bo;jn=function X(){Bo||Rd(),Bo||(jn=X)};function Rd(X){if(X=X||p,it>0||(Mt(),it>0))return;function se(){Bo||(Bo=!0,s.calledRun=!0,!U&&(ra(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),rn()))}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()();Rd();var Wo;l&&(Wo={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 Vo;if(typeof r!="undefined")Vo=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")Vo=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(Wo){var Yb=Vo._dispose;Vo._dispose=function(){Yb(),Wo.uncaughtException.forEach(function(X){process.removeListener("uncaughtException",X)}),Wo.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)}),Hh=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}},nc=class{refCount(e){return ua("refCount")}incRef(e){return ua("incRef")}timerAvailable(){return!0}time(e){return ua("time")}read(e){return ua("read")}readSync(e){return ua("readSync")}readToGPU(e,t){return ua("readToGPU")}numDataIds(){return ua("numDataIds")}disposeData(e,t){return ua("disposeData")}write(e,t,n){return ua("write")}move(e,t,n,a,r){return ua("move")}memory(){return ua("memory")}floatPrecision(){return ua("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return ua("dispose")}};function ua(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 mI(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,hh(e,t,n)}function yF(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 zp(e,t,n){return Math.max(e,Math.min(t,n))}function xF(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 vF(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)||dn(e)&&!n)for(let a=0;a0,n,a=setTimeout){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(o,l)};o()})}function _F(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 Ea(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=>el(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function fI(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:Ea(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 gI(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 bI(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 yI(e,t){for(let n=0;nt+=n.length),t}function qr(e){return typeof e=="string"||e instanceof String}function wI(e){return typeof e=="boolean"}function kI(e){return typeof e=="number"}function jh(e){return Array.isArray(e)?jh(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":kI(e)?"float32":qr(e)?"string":wI(e)?"bool":"float32"}function Qr(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 II(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 II(0,e,t,n)}function yx(e,t){let n=qh(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return Yo(e,new Float32Array(n));if(t==="int32")return Yo(e,new Int32Array(n));if(t==="bool")return Yo(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function xx(e){e.forEach(t=>{$(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function $F(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]=MF(n,a)})}};function DF(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(RF(t,a[0],a[1]),a.join("="))),t}function RF(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function MF(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 wx}var wx=null;function PF(e){wx=e}var ny;function TI(){if(ny==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");ny=e}return ny}function OF(){let e=TI();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function kx(e,t){let n=OF();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var xl="Abs",vl="Acos",wl="Acosh",ps="Add",mi="AddN",kl="All",Il="Any",fi="ArgMax",ac="ArgMin",Sl="Asin",Tl="Asinh",Nl="Atan",Cl="Atanh",_l="Atan2",gi="AvgPool",Kh="AvgPoolGrad",rc="AvgPool3D",Xh="AvgPool3DGrad",bi="BatchMatMul",El="BatchToSpaceND",Yh="Bincount",NI="BroadcastTo",Zh="BroadcastArgs",yi="Cast",xi="Ceil",cs="ClipByValue",Jh="Complex",sc="ComplexAbs",Al="Concat",vi="Conv2D",Qh="Conv2DBackpropFilter",wi="Conv2DBackpropInput",ic="Conv3D",em="Conv3DBackpropFilterV2",tm="Conv3DBackpropInputV2",ki="Cos",Ii="Cosh",$l="Cumprod",Si="Cumsum",Fl="CropAndResize",nm="DenseBincount",Dl="DepthToSpace",Ti="DepthwiseConv2dNative",am="DepthwiseConv2dNativeBackpropFilter",rm="DepthwiseConv2dNativeBackpropInput",sm="Diag",oc="Dilation2D",fh="Dilation2DBackpropInput",gh="Dilation2DBackpropFilter",Ni="RealDiv",im="Einsum",Ci="Elu",om="EluGrad",Rl="Erf",Ml="Equal",_i="Exp",Pl="ExpandDims",Ol="Expm1",lm="FFT",lc="Fill",Ll="FlipLeftRight",Ei="Floor",Ai="FloorDiv",$i="FusedBatchNorm",zl="GatherV2",Bl="GatherNd",Wl="Greater",Fi="GreaterEqual",Di="Identity",um="IFFT",pm="Imag",Vl="IsFinite",Ul="IsInf",Gl="IsNan",Ri="LeakyRelu",Hl="Less",jl="LessEqual",cm="LinSpace",Mi="Log",ql="Log1p",Kl="LogicalAnd",Xl="LogicalNot",Yl="LogicalOr",CI="LogicalXor",_I="LogSoftmax",LF="LowerBound",uc="LRN",dm="LRNGrad",Pi="Max",Oi="Maximum",Li="MaxPool",hm="MaxPoolGrad",pc="MaxPool3D",mm="MaxPool3DGrad",fm="MaxPoolWithArgmax",zi="Mean",Bi="Min",Wi="Minimum",Vi="MirrorPad",Zl="Mod",gm="Multinomial",Ui="Multiply",Jl="Neg",Ql="NotEqual",eu="NonMaxSuppressionV3",tu="NonMaxSuppressionV4",nu="NonMaxSuppressionV5",au="OnesLike",Gi="OneHot",ru="Pack",Hi="PadV2",zF="Pool",ji="Pow",qi="Prelu",Ki="Prod",bm="RaggedGather",ym="RaggedTensorToTensor",cc="Range",xm="Real",su="Reciprocal",Xi="Relu",iu="Reshape",Yi="ResizeNearestNeighbor",vm="ResizeNearestNeighborGrad",Zi="ResizeBilinear",wm="ResizeBilinearGrad",Ji="Relu6",Qi="Reverse",eo="Round",to="Rsqrt",ou="ScatterNd",km="SearchSorted",lu="Select",uu="Selu",pu="Slice",no="Sin",cu="Sinh",du="Sign",ao="Sigmoid",hu="Softplus",ro="Sqrt",so="Sum",mu="SpaceToBatchND",fu="SplitV",io="Softmax",dc="SparseFillEmptyRows",gu="SparseReshape",hc="SparseSegmentMean",mc="SparseSegmentSum",Im="SparseToDense",oo="SquaredDifference",fc="Square",bu="StridedSlice",gc="StringNGrams",bc="StringSplit",yc="StringToHashBucketFast",lo="Sub",uo="Tan",po="Tanh",ds="Tile",yu="TopK",xu="Transform",Tr="Transpose",Sm="Unique",vu="Unpack",xc="UnsortedSegmentSum",BF="UpperBound",wu="ZerosLike",hs="Step",bh="FromPixels",ku="RotateWithOffset",Js="_FusedMatMul",Qs="FusedConv2D",ei="FusedDepthwiseConv2D";function jr(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.warn(...e)}function WF(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.log(...e)}var tl=kx("kernelRegistry",()=>new Map),Bp=kx("gradRegistry",()=>new Map);function yh(e,t){let n=Ix(e,t);return tl.get(n)}function by(e){return Bp.get(e)}function xh(e){let t=tl.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 vc(e){let{kernelName:t,backendName:n}=e,a=Ix(t,n);tl.has(a)&&jr(`The kernel '${t}' for backend '${n}' is already registered`),tl.set(a,e)}function EI(e){let{kernelName:t}=e;Bp.has(t)&&H().getBool("DEBUG")&&jr(`Overriding the gradient for '${t}'`),Bp.set(t,e)}function VF(e,t){let n=Ix(e,t);if(!tl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);tl.delete(n)}function UF(e){if(!Bp.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Bp.delete(e)}function GF(e,t){xh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});vc(a)})}function Ix(e,t){return`${t}_${e}`}var v={};_e(v,{arraysEqual:()=>us,assert:()=>$,assertNonNegativeIntegerDimensions:()=>xx,assertNonNull:()=>hi,assertShapesMatch:()=>In,bytesFromStringArray:()=>vI,bytesPerElement:()=>gy,checkConversionForErrors:()=>yI,clamp:()=>zp,computeStrides:()=>yl,createScalarValue:()=>YF,createShuffledIndices:()=>NF,decodeString:()=>vh,distSquared:()=>kF,encodeString:()=>kc,fetch:()=>JF,fingerPrint64:()=>XF,flatten:()=>Zs,getArrayFromDType:()=>bI,getTypedArrayFromDType:()=>gI,hasEncodingLoss:()=>EF,hexToLong:()=>wc,indexToLoc:()=>FF,inferDtype:()=>jh,inferFromImplicitShape:()=>_F,isBoolean:()=>wI,isFunction:()=>Qr,isInt:()=>el,isNumber:()=>kI,isPromise:()=>vx,isScalarShape:()=>IF,isString:()=>qr,isTypedArray:()=>dn,isValidDtype:()=>xI,locToIndex:()=>$F,makeOnesTypedArray:()=>yx,makeZerosNestedTypedArray:()=>AF,makeZerosTypedArray:()=>qh,nearestDivisor:()=>mh,nearestLargerEven:()=>xF,now:()=>Wp,parseAxisParam:()=>Ea,randUniform:()=>wF,repeatedTry:()=>CF,rightPad:()=>Mp,shuffle:()=>mI,shuffleCombo:()=>yF,sizeFromShape:()=>mt,sizeToSquarishShape:()=>TF,squeezeShape:()=>fI,sum:()=>vF,swap:()=>hh,tanh:()=>SF,toNestedArray:()=>Yo,toTypedArray:()=>Tm});var O1=ls(tF()),Bs=O1.default||O1;function wc(e){return Bs.fromString(e,!0,16)}var AI=wc("c3a5c85c97cb3127"),Ls=wc("b492b66fbe98f273"),yn=wc("9ae16a3b2f90404f");function yy(e){return e.xor(e.shru(47))}function $I(e,t,n){let a=e.slice(t,t+n);return Bs.fromBytes(Array.from(a),!0,!0)}function ht(e,t){return $I(e,t,8)}function L1(e,t){return $I(e,t,4)}function Yt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function Yr(e,t,n=wc("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 HF(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 Ud(e,t,n,a){return HF(ht(e,t),ht(e,t+8),ht(e,t+16),ht(e,t+24),n,a)}function jF(e,t=e.length){if(t>=8){let n=yn.add(t*2),a=ht(e,0).add(yn),r=ht(e,t-8),s=Yt(r,37).mul(n).add(a),i=Yt(a,25).add(r).mul(n);return Yr(s,i,n)}if(t>=4){let n=yn.add(t*2),a=L1(e,0);return Yr(a.shl(3).add(t),L1(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 yy(yn.mul(s).xor(AI.mul(i))).mul(yn)}return yn}function qF(e,t=e.length){let n=yn.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(yn);return Yr(Yt(a.add(r),43).add(Yt(s,30)).add(i),a.add(Yt(r.add(yn),18)).add(s),n)}function KF(e,t=e.length){let n=yn.add(t*2),a=ht(e,0).mul(yn),r=ht(e,8),s=ht(e,t-8).mul(n),i=ht(e,t-16).mul(yn),o=Yt(a.add(r),43).add(Yt(s,30)).add(i),l=Yr(o,a.add(Yt(r.add(yn),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 Yr(Yt(u.add(p),43).add(Yt(d,30)).add(c),u.add(Yt(p.add(a),18)).add(d),n)}function XF(e,t=e.length){let n=Bs.fromNumber(81,!0);if(t<=32)return t<=16?jF(e,t):qF(e,t);if(t<=64)return KF(e,t);let a=n,r=n.mul(Ls).add(113),s=yy(r.mul(yn).add(113)).mul(yn),i=[Bs.UZERO,Bs.UZERO],o=[Bs.UZERO,Bs.UZERO];a=a.mul(yn).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=Ud(e,l,i[1].mul(Ls),a.add(o[0])),o=Ud(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=Ud(e,l,i[1].mul(d),a.add(o[0])),o=Ud(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],Yr(Yr(i[0],o[0],d).add(yy(r).mul(AI)).add(s),Yr(i[1],o[1],d).add(a),d)}function YF(e,t){return t==="string"?kc(e):Tm([e],t)}function ZF(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Tm(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")&&yI(e,t),ZF(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=Wp();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:Wp()-i})}if(H().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{eD(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 eD(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 nD(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(!us(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 z1=20,wp=3,ay=7;function rD(e,t,n,a){let r=yl(t),s=sD(e,t,n,r),i=t.length,o=nh(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 OD(e,t,n,a){let r=bt(t),s=a[a.length-1],i=new Array(s).fill(0),o=t.length,l=n==="complex64"?Vp(e):e;if(o>1)for(let u=0;uok){let g=Op*i,b=Array.from(e.slice(0,g)),y=Array.from(e.slice((o-Op)*i,o*i));return n==="complex64"&&(b=Vp(b),y=Vp(y)),["["+b.map((x,w)=>Bp(x,r[w],n)).join(", ")+", ..., "+y.map((x,w)=>Bp(x,r[o-Op+w],n)).join(", ")+"]"]}let f=n==="complex64"?Vp(e):Array.from(e);return["["+f.map((g,b)=>Bp(g,r[b],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>ok){for(let f=0;f1)for(let u=0;uz1){let g=wp*i,b=Array.from(e.slice(0,g)),y=Array.from(e.slice((o-wp)*i,o*i));return n==="complex64"&&(b=Np(b),y=Np(y)),["["+b.map((x,w)=>Tp(x,r[w],n)).join(", ")+", ..., "+y.map((x,w)=>Tp(x,r[o-wp+w],n)).join(", ")+"]"]}let f=n==="complex64"?Np(e):Array.from(e);return["["+f.map((g,b)=>Tp(g,r[b],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>z1){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||OI(t,this.size),this.strides=$l(e)}set(e,...t){t.length===0&&(t=[0]),R(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;aUh(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(),Ua().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=Ua().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>Uh(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 Ua().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Ua().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return sl.print(this,e)}clone(){return this.throwIfDisposed(),sl.clone(this)}toString(e=!1){let t=this.dataSync();return PD(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),sl.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Ua().makeVariable(this,e,t,n)}};Object.defineProperty($e,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function ne(){return Vx("Tensor",()=>$e)}ne();var rs=class extends $e{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(!hs(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Ua().disposeTensor(this),this.dataId=e.dataId,Ua().incRef(this,null)}dispose(){Ua().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(rs,Symbol.hasInstance,{value:e=>e instanceof $e&&e.assign!=null&&e.assign instanceof Function});var qa={};Fe(qa,{assertTypesMatch:()=>QI,getTensorsInContainer:()=>Gx,isTensorInList:()=>UD,makeTypesMatch:()=>$t});var zy;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(zy||(zy={}));var Wy;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(Wy||(Wy={}));var By;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(By||(By={}));var Vy;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Vy||(Vy={}));var Uy;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Uy||(Uy={}));var VD={float32:Vy,int32:Wy,bool:By,complex64:Uy};function ha(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return VD[e][t]}function Km(e){return ha(e,"int32")}function $t(e,t){if(e.dtype===t.dtype)return[e,t];let n=ha(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function QI(e,t){R(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function UD(e,t){return t.some(n=>n.id===e.id)}function Gx(e){let t=[];return eT(e,t,new Set),t}function eT(e,t,n){if(e==null)return;if(e instanceof $e){t.push(e);return}if(!GD(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),eT(s,t,n))}}function GD(e){return Array.isArray(e)||typeof e=="object"}function Ty(e){return e.kernelName!=null}var lk=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()}},rc=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new lk}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){Vh(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 yc)&&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 rc.nextTensorId++}nextVariableId(){return rc.nextVariableId++}clone(e){let t=L.runKernel(Vi,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return L.runKernel(Ci,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=Ty(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(Ty(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=Bh(h,this.backendName);R(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let b=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let y=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,b,y);let x=y.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=Ty(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=Oy(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?(R(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"&&Zr(e[0])&&(r=e.map(o=>Lc(o)));let s=a.write(r,t,n),i=new $e(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=WI(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 $e(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 rs(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*Py(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 rs||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*Py(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=Oy(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,p)=>{if(u==null){let d=n[p],c=gm(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=Gx(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(R(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(r instanceof $e,()=>"The result y returned by f() must be a tensor.");let s=RD(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?HD(r.shape):n,MD(i,s,l=>this.tidy(l),jD);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 R(as(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{R(t.every(i=>i instanceof $e),()=>"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),R(n.value instanceof $e,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),R(as(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];R(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(...)."),R(u.every(d=>d instanceof $e),()=>"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=ac(),n=await this.backend.time(e);return n.wallMs=ac()-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 lk;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}};rc.nextTensorId=0;rc.nextVariableId=0;function HD(e){let t=Lx(bt(e),"float32");return L.makeTensor(t,e,"float32")}function tT(){let e=HI();if(e._tfengine==null){let t=new GI(e);e._tfengine=new rc(t)}return mD(e._tfengine.ENV),zD(()=>e._tfengine),e._tfengine}var L=tT();function jD(e,t){let n={a:e,b:t};return L.runKernel(ms,n)}var zc={};Fe(zc,{isBrowser:()=>nT,isMobile:()=>XD,mockIsMobile:()=>KD});function qD(){return typeof navigator!="undefined"&&navigator!=null}var Gy;function KD(e){Gy=e}function XD(e){if(Gy!==void 0)return Gy;if(e||qD()){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 nT(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var ma=X();ma.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.")});ma.registerFlag("IS_BROWSER",()=>nT());ma.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");ma.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));ma.registerFlag("PROD",()=>!1);ma.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>ma.getBool("DEBUG"));ma.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);ma.registerFlag("IS_TEST",()=>!1);ma.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);ma.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);ma.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);ma.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);function cr(e,t){let n=e;if(hn(e))return t==="string"?[]:[e.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)&&X().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&aT(e,a,[]),a}function aT(e,t,n){if(n=n||[],!Array.isArray(e)&&!hn(e)){R(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}R(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),R(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),uk(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=cr(e,r);!hn(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?qm(e,r):ii(e,[],!0);return L.makeTensor(i,s,r)}function sc(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)=>E(r,`${t}[${s}]`,n,a))}var Hx="__op";function z(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+Hx;let r=(...s)=>{L.startScope(n);try{let i=a(...s);return Wx(i)&&console.error("Cannot return a Promise inside of tidy."),L.endScope(i),i}catch(i){throw L.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function YD(e,t){let n=E(e,"real","complex"),a=E(t,"imag","complex");Cn(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 L.runKernel(wm,r)}var $r=z({complex_:YD});function ys(e,t,n,a){if(a==null&&(a=fm(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");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){zx(t);let r=bt(t),s=bt(n);R(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"?qm(e,a):ii(e,[],!0),L.makeTensor(e,t,a)}function Bn(e,t,n){let a=cr(e,n);return ys(e,t,a,n)}var Hy={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},Gh=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,b)=>g+b.length,0)+Gh*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 jx=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function pk(e){return jx?Buffer.byteLength(e):new Blob([e]).size}function QD(e){if(jx)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 ck(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 sT(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.trainingConfig!=null&&(n.trainingConfig=e.trainingConfig),n}async function Kx(e,t){let n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(e.trainingConfig!=null&&(n.trainingConfig=e.trainingConfig),e.weightsManifest!=null){let[a,r]=await t(e.weightsManifest);n.weightSpecs=a,n.weightData=r}return e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer),n}function Wc(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:pk(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:pk(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function tR(){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 nR(){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 aR(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function rR(){let e=tR(),t=nR(),n=aR();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 Ft=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Ft.instance==null&&(Ft.instance=new Ft),Ft.instance}static registerSaveRouter(e){Ft.getInstance().saveRouters.push(e)}static registerLoadRouter(e){Ft.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return Ft.getHandlers(e,"save")}static getLoadHandlers(e,t){return Ft.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?Ft.getInstance().loadRouters:Ft.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},sR=e=>Ft.registerSaveRouter(e),iR=e=>Ft.registerLoadRouter(e),oR=e=>Ft.getSaveHandlers(e),lR=(e,t)=>Ft.getLoadHandlers(e,t),jy="tensorflowjs",qy=1,Qs="models_store",Jr="model_info_store";function iT(){if(!X().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 Ky(e){let t=e.result;t.createObjectStore(Qs,{keyPath:"modelPath"}),t.createObjectStore(Jr,{keyPath:"modelPath"})}var pi=class{constructor(e){if(this.indexedDB=iT(),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(jy,qy);r.onupgradeneeded=()=>Ky(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(Qs,"readonly"),o=i.objectStore(Qs).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=Wc(t),o=s.transaction(Jr,"readwrite"),l=o.objectStore(Jr),u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),p;u.onsuccess=()=>{p=s.transaction(Qs,"readwrite");let d=p.objectStore(Qs).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});d.onsuccess=()=>n({modelArtifactsInfo:i}),d.onerror=c=>{l=o.objectStore(Jr);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)})}};pi.URL_SCHEME="indexeddb://";var oT=e=>X().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(pi.URL_SCHEME)?uR(e.slice(pi.URL_SCHEME.length)):null;Ft.registerSaveRouter(oT);Ft.registerLoadRouter(oT);function uR(e){return new pi(e)}function pR(e){return e.startsWith(pi.URL_SCHEME)?e.slice(pi.URL_SCHEME.length):e}var cR=class{constructor(){this.indexedDB=iT()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(jy,qy);n.onupgradeneeded=()=>Ky(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(Jr,"readonly"),s=r.objectStore(Jr).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=pR(e),new Promise((t,n)=>{let a=this.indexedDB.open(jy,qy);a.onupgradeneeded=()=>Ky(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(Jr,"readwrite"),i=s.objectStore(Jr),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(Qs,"readwrite");let d=l.objectStore(Qs).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)})}},Sr="/",il="tensorflowjs_models",lT="info",dR="model_topology",hR="weight_specs",mR="weight_data",fR="model_metadata";function uT(e){return{info:[il,e,lT].join(Sr),topology:[il,e,dR].join(Sr),weightSpecs:[il,e,hR].join(Sr),weightData:[il,e,mR].join(Sr),modelMetadata:[il,e,fR].join(Sr)}}function pT(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function gR(e){let t=e.split(Sr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Sr)}function bR(e){return e.startsWith(ci.URL_SCHEME)?e.slice(ci.URL_SCHEME.length):e}var ci=class{constructor(e){if(!X().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=uT(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=Wc(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,QD(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,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw pT(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.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=eR(s),t}};ci.URL_SCHEME="localstorage://";var cT=e=>X().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ci.URL_SCHEME)?yR(e.slice(ci.URL_SCHEME.length)):null;Ft.registerSaveRouter(cT);Ft.registerLoadRouter(cT);function yR(e){return new ci(e)}var xR=class{constructor(){R(X().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),R(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=il+Sr,n=Sr+lT;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(ul)&&(e=e.slice(0,e.indexOf(ul))),R(e.length>0,()=>"scheme must not be an empty string.");let n=Ln.getInstance();R(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=Ln.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(Ln.getInstance().managers)}};function Nh(e){if(e.indexOf(ul)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Ln.getSchemes().join(",")}`);return{scheme:e.split(ul)[0],path:e.split(ul)[1]}}async function dT(e,t,n=!1){R(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=Ft.getLoadHandlers(e);R(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),R(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=Ft.getSaveHandlers(t);R(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),R(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=Nh(e).scheme,l=Nh(e).path,u=o===Nh(e).scheme,p=await r.load();n&&u&&await Ln.getManager(o).removeModel(l);let d=await i.save(p);return n&&!u&&await Ln.getManager(o).removeModel(l),d.modelArtifactsInfo}async function vR(){let e=Ln.getSchemes(),t={};for(let n of e){let a=await Ln.getManager(n).listModels();for(let r in a){let s=n+ul+r;t[s]=a[r]}}return t}async function wR(e){let t=Nh(e);return Ln.getManager(t.scheme).removeModel(t.path)}async function kR(e,t){return dT(e,t,!1)}async function IR(e,t){return dT(e,t,!0)}var TR=class{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)}};if(X().get("IS_BROWSER")){X().setPlatform("browser",new TR);try{Ln.registerManager(ci.URL_SCHEME,new xR)}catch(e){}try{Ln.registerManager(pi.URL_SCHEME,new cR)}catch(e){}}var SR={importFetch:()=>RF()},Sy,NR=class{constructor(){this.util=MF(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return X().global.fetch!=null?X().global.fetch(e,t):(Sy==null&&(Sy=SR.importFetch()),Sy(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)}};X().get("IS_NODE")&&!X().get("IS_BROWSER")&&X().setPlatform("node",new NR);function Le(e,t="float32",n){return t=t||"float32",zx(e),new jt(e,t,n)}function CR(e,t){let n=E(e,"x","cast");if(!zI(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 L.runKernel(Ci,a,r)}var le=z({cast_:CR});function _R(e){let t={x:E(e,"x","clone","string_or_numeric")};return L.runKernel(Vi,t)}var ur=z({clone_:_R});function Xx(e,t=!1){console.log(e.toString(t))}tT();var ER={buffer:Le,cast:le,clone:ur,print:Xx};WD(ER);var Sn={};Fe(Sn,{browserFiles:()=>PR,browserHTTPRequest:()=>BR,concatenateArrayBuffers:()=>qx,copyModel:()=>kR,decodeWeights:()=>rT,encodeWeights:()=>ZD,fromMemory:()=>UR,fromMemorySync:()=>bT,getLoadHandlers:()=>lR,getModelArtifactsForJSON:()=>Kx,getModelArtifactsInfoForJSON:()=>Wc,getSaveHandlers:()=>oR,http:()=>Zx,isHTTPScheme:()=>Xy,listModels:()=>vR,loadWeights:()=>OR,moveModel:()=>IR,registerLoadRouter:()=>iR,registerSaveRouter:()=>sR,removeModel:()=>wR,weightsLoaderFactory:()=>mT,withSaveHandler:()=>GR,withSaveHandlerSync:()=>HR});var $R="model",AR=".json",FR=".weights.bin";function dk(e){return new Promise(t=>setTimeout(t)).then(e)}var ml=class{constructor(e){if(!X().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(ml.URL_SCHEME)&&(e=e.slice(ml.URL_SCHEME.length)),(e==null||e.length===0)&&(e=$R),this.modelJsonFileName=e+AR,this.weightDataFileName=e+FR}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=sT(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 dk(()=>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 dk(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Wc(e)}}}};ml.URL_SCHEME="downloads://";var DR=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=Kx(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,qx(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=>ck(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=ck(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}},RR=e=>X().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ml.URL_SCHEME)?MR(e.slice(ml.URL_SCHEME.length)):null;Ft.registerSaveRouter(RR);function MR(e="model"){return new ml(e)}function PR(e){return new DR(e)}function hk(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){R(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,u){R(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),R(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),R(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(e.map(s))}async function hT(e,t){t==null&&(t={});let n=t.fetchFunc==null?X().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 hk(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await hk(i,t.onProgress,o,l)}async function OR(e,t="",n,a){return mT(r=>hT(r,{requestInit:a}))(e,t,n)}function mT(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 b="quantization"in g?g.quantization.dtype:g.dtype,y=Hy[b]*bt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:y})};a!=null?a.forEach((w,I)=>{w===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=y})}),!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=rT(w,[x.manifestEntry]);for(let N in I)d[N]=I[N]}),c+=m}),d}}var LR="application/octet-stream",zR="application/json",Yx=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?(R(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=X().platform.fetch,R(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&R(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=sT(e,n);t.body.append("model.json",new Blob([JSON.stringify(a)],{type:zR}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:LR}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Wc(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 Kx(t,r=>this.loadWeights(r))}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=WR(t),r=this.weightPathPrefix||n,s=[];for(let u of e)s.push(...u.weights);let 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 hT(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,qx(l)]}};Yx.URL_SCHEME_REGEX=/^https?:\/\//;function WR(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Xy(e){return e.match(Yx.URL_SCHEME_REGEX)!=null}var fT=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Xy(a)):n=Xy(e),n)return Zx(e,t)}return null};Ft.registerSaveRouter(fT);Ft.registerLoadRouter(fT);function Zx(e,t){return new Yx(e,t)}function BR(e,t){return Zx(e,t)}var Ny=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},gT=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},VR=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function UR(e,t,n,a){let r=arguments;return new VR(bT(...r))}function bT(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new Ny(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 Ny({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 Ny({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function GR(e){return new gT(e)}function HR(e){return new gT(e)}var yT={};Fe(yT,{confusionMatrix:()=>dM});function jR(e,t,n=!1,a=!1){let r=E(e,"a","matMul"),s=E(t,"b","matMul");[r,s]=$t(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return L.runKernel(Ni,i,o)}var Re=z({matMul_:jR});function qR(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(e,"indices","oneHot","int32")},i={dtype:r,depth:t,onValue:n,offValue:a};return L.runKernel(Qi,s,i)}var fl=z({oneHot_:qR});function KR(){X().set("PROD",!0)}function XR(){X().set("DEBUG",!0)}function YR(){X().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Jx(e){X().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}BD(Jx);function ZR(){L.disposeVariables()}function rr(){return L}function Hh(){return L.memory()}function JR(e){return L.profile(e)}function O(e,t){return L.tidy(e,t)}function Me(e){Gx(e).forEach(t=>t.dispose())}function Qt(e){return L.keep(e)}function QR(e){return L.time(e)}function eM(e){return L.setBackend(e)}function tM(){return L.ready()}function nM(){return L.backendName}function aM(e){L.removeBackend(e)}function rM(e){return L.findBackend(e)}function sM(e){return L.findBackendFactory(e)}function Xm(e,t,n=1){return L.registerBackend(e,t,n)}function xT(){return L.backend}function iM(e,t){X().setPlatform(e,t)}function oM(e){let t={input:E(e,"input","imag")};return L.runKernel(Dm,t)}var Bc=z({imag_:oM});function lM(e){let t={x:E(e,"x","neg")};return L.runKernel(pu,t)}var vt=z({neg_:lM});function uM(e){let t={input:E(e,"input","real")};return L.runKernel(Bm,t)}var gl=z({real_:uM});function pM(e,t,n){let a=E(e,"x","transpose");if(t==null&&(t=a.shape.map((i,o)=>o).reverse()),R(a.rank===t.length,()=>`Error in transpose: rank of input ${a.rank} must match length of perm ${t}.`),t.forEach(i=>{R(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"?O(()=>{let i=gl(a),o=Bc(a);return i=L.runKernel(_r,{x:i},s),o=L.runKernel(_r,{x:o},s),n&&(o=vt(o)),$r(i,o)}):L.runKernel(_r,r,s)}var Ae=z({transpose_:pM});function cM(e,t,n){let a=E(e,"labels","confusionMatrix"),r=E(t,"predictions","confusionMatrix");R(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),R(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),R(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),R(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.`),R(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=fl(le(a,"int32"),n),i=fl(le(r,"int32"),n),o=Ae(s),l=Re(o,i);return le(l,"int32")}var dM=z({confusionMatrix_:cM}),Mu={};Fe(Mu,{assertAndGetBroadcastShape:()=>pt,getBroadcastDims:()=>vT,getReductionAxes:()=>Wt});function vT(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 pt(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;rxM,fromPixelsAsync:()=>bM,toPixels:()=>yM});function Vc(e,t,n){if(ki(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=cr(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 ys(e,t,a,n)}var Hs;function wT(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(Wh,L.backendName)!=null){let c={pixels:e},h={numChannels:t};return L.runKernel(Wh,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(Hs==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Hs=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Hs=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Hs.canvas.width=l,Hs.canvas.height=u,Hs.drawImage(e,0,0,l,u),p=Hs.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 xM=z({fromPixels_:wT}),Qx={};Fe(Qx,{prepareAndValidate:()=>kT});function kT(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(bt(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 ev={};Fe(ev,{calculateShapes:()=>IT,validateInput:()=>nv,validateUpdateShape:()=>tv});function tv(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;dwM,computeFlatOffset:()=>NM,computeOutShape:()=>IM,getNormalizedAxes:()=>TM,isSliceContinous:()=>SM,maskToAxes:()=>kM,parseSliceParams:()=>FT,sliceInfo:()=>CM,startForAxis:()=>$T,startIndicesWithElidedDims:()=>CT,stopForAxis:()=>AT,stopIndicesWithElidedDims:()=>_T,stridesForAxis:()=>ET,stridesWithElidedDims:()=>TT});var Yy=-2,vM=-1;function wM(e,t,n){let a=e.shape.length;R(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),R(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 kM(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function IM(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=CT(i,h,m,a,e),d=_T(o,h,m,r,e),c=TT(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=ST(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=ST(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=tc(0,i,l-1),i}function AT(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=tc(0,i,l):i=tc(-1,i,l-1),i}function SM(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 NM(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{R(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:(R(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 CM(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 y=0;y0?0:-1,c.strides[y]>0?w:w-1];if(x&&c.strides[y]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[y]===1;let _=!!(c.beginMask&1<=w)throw Error(`slice index ${c.begin[y]} of dimension ${y} out of bounds.`)}else c.begin[y]=mk(c.begin[y],0,c.strides[y],w,I,N),c.end[y]=mk(c.end[y],1,c.strides[y],w,I,N);let M=c.strides[y]===1&&c.begin[y]===0&&c.end[y]===w;h=h&&M,m=m&&(y===0&&c.strides[y]===1||M)}else h=h&&c.strides[y]===1&&_,m=m&&(y===0&&c.strides[y]===1||_);let $,A=!1;if(c.beginValid&&c.endValid?($=c.end[y]-c.begin[y],A=!0):x?($=1,A=!0):_&&w>=0&&(c.strides[y]<0?$=-w:$=w,A=!0),A){let M;$===0||$<0!=c.strides[y]<0?M=0:M=Math.trunc($/c.strides[y])+($%c.strides[y]!==0?1:0),g.push(M)}else g.push(-1)}for(let y=0;y=0?b.push(g[x]):x===Yy&&b.push(1)}return{finalShapeSparse:b.filter((y,x)=>c.finalShapeGatherIndices[x]!==Yy),finalShape:b,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function _M(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 se={};Fe(se,{Serializable:()=>DT,SerializationMap:()=>Ys,registerClass:()=>xs});var DT=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Ys=class{constructor(){this.classNameMap={}}static getMap(){return Ys.instance==null&&(Ys.instance=new Ys),Ys.instance}static register(e){Ys.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function xs(e){R(e.className!=null,()=>"Class being registered does not have the static className property defined."),R(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),R(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Ys.register(e)}var RT={};Fe(RT,{TEST_EPSILON_FLOAT16:()=>MT,createVideoElement:()=>PM,encodeStrings:()=>PT,expectArrayBuffersEqual:()=>MM,expectArraysClose:()=>$M,expectArraysEqual:()=>FM,expectNumbersClose:()=>DM,expectPromiseToFail:()=>AM,expectValuesInRange:()=>RM,play:()=>OM,testEpsilon:()=>av});var EM=.001,MT=.1;function $M(e,t,n){return n==null&&(n=av()),Zy(e,t,(a,r)=>rv(a,r,n))}function av(){return L.backend.floatPrecision()===32?EM:MT}function Zy(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=cr(e),o=cr(t);if(!hs(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=hn(e)?e:ii(e),s=hn(t)?t:ii(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 Np(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||bI(t,this.size),this.strides=yl(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(),Pa().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=Pa().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 Pa().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Pa().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return qo.print(this,e)}clone(){return this.throwIfDisposed(),qo.clone(this)}toString(e=!1){let t=this.dataSync();return rD(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),qo.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Pa().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 kx("Tensor",()=>Te)}J();var es=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(!us(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Pa().disposeTensor(this),this.dataId=e.dataId,Pa().incRef(this,null)}dispose(){Pa().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(es,Symbol.hasInstance,{value:e=>e instanceof Te&&e.assign!=null&&e.assign instanceof Function});var Ba={};_e(Ba,{assertTypesMatch:()=>DI,getTensorsInContainer:()=>Sx,isTensorInList:()=>cD,makeTypesMatch:()=>_t});var xy;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(xy||(xy={}));var vy;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(vy||(vy={}));var wy;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(wy||(wy={}));var ky;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(ky||(ky={}));var Iy;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Iy||(Iy={}));var pD={float32:ky,int32:vy,bool:wy,complex64:Iy};function ha(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return pD[e][t]}function Nm(e){return ha(e,"int32")}function _t(e,t){if(e.dtype===t.dtype)return[e,t];let n=ha(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function DI(e,t){$(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function cD(e,t){return t.some(n=>n.id===e.id)}function Sx(e){let t=[];return RI(e,t,new Set),t}function RI(e,t,n){if(e==null)return;if(e instanceof Te){t.push(e);return}if(!dD(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),RI(s,t,n))}}function dD(e){return Array.isArray(e)||typeof e=="object"}function ry(e){return e.kernelName!=null}var B1=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()}},Vp=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new B1}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 nc)&&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 Vp.nextTensorId++}nextVariableId(){return Vp.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(yi,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,yh(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=ry(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(ry(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=yh(h,this.backendName);$(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let b=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let y=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,b,y);let x=y.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=ry(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=by(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=>kc(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=vI(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 es(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*gy(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 es||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*gy(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=by(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,p)=>{if(u==null){let d=n[p],c=qh(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=Sx(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=nD(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?hD(r.shape):n,aD(i,s,l=>this.tidy(l),mD);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 $(Qr(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"),$(Qr(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=Wp(),n=await this.backend.time(e);return n.wallMs=Wp()-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 B1;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}};Vp.nextTensorId=0;Vp.nextVariableId=0;function hD(e){let t=yx(mt(e),"float32");return O.makeTensor(t,e,"float32")}function MI(){let e=TI();if(e._tfengine==null){let t=new SI(e);e._tfengine=new Vp(t)}return PF(e._tfengine.ENV),oD(()=>e._tfengine),e._tfengine}var O=MI();function mD(e,t){let n={a:e,b:t};return O.runKernel(ps,n)}var Ic={};_e(Ic,{isBrowser:()=>PI,isMobile:()=>bD,mockIsMobile:()=>gD});function fD(){return typeof navigator!="undefined"&&navigator!=null}var Sy;function gD(e){Sy=e}function bD(e){if(Sy!==void 0)return Sy;if(e||fD()){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 PI(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Zn=H();Zn.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.")});Zn.registerFlag("IS_BROWSER",()=>PI());Zn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Zn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Zn.registerFlag("PROD",()=>!1);Zn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Zn.getBool("DEBUG"));Zn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Zn.registerFlag("IS_TEST",()=>!1);Zn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);Zn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);Zn.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);Zn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);Zn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function sr(e,t){let n=e;if(dn(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||dn(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&H().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&OI(e,a,[]),a}function OI(e,t,n){if(n=n||[],!Array.isArray(e)&&!dn(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),W1(a,r,t,n),e==null||!dn(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=sr(e,r);!dn(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Tm(e,r):Zs(e,[],!0);return O.makeTensor(i,s,r)}function Up(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 Tx="__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+Tx;let r=(...s)=>{O.startScope(n);try{let i=a(...s);return vx(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 yD(e,t){let n=_(e,"real","complex"),a=_(t,"imag","complex");In(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(Jh,r)}var Cr=L({complex_:yD});function ms(e,t,n,a){if(a==null&&(a=jh(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!dn(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){xx(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!dn(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Tm(e,a):Zs(e,[],!0),O.makeTensor(e,t,a)}function On(e,t,n){let a=sr(e,n);return ms(e,t,a,n)}var Ty={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},wh=4;async function xD(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,b)=>g+b.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 Nx=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function V1(e){return Nx?Buffer.byteLength(e):new Blob([e]).size}function wD(e){if(Nx)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 U1(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 zI(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.trainingConfig!=null&&(n.trainingConfig=e.trainingConfig),n}function BI(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),a}async function _x(e,t){let n,a;return e.weightsManifest!=null&&([n,a]=await t(e.weightsManifest)),BI(e,n,a)}function Sc(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:V1(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:V1(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function WI(e){let t=[];for(let n of e)t.push(...n.weights);return t}function ID(){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 SD(){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 TD(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function ND(){let e=ID(),t=SD(),n=TD();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}},CD=e=>At.registerSaveRouter(e),_D=e=>At.registerLoadRouter(e),ED=e=>At.getSaveHandlers(e),AD=(e,t)=>At.getLoadHandlers(e,t),Ny="tensorflowjs",Cy=1,Gs="models_store",Kr="model_info_store";function VI(){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 _y(e){let t=e.result;t.createObjectStore(Gs,{keyPath:"modelPath"}),t.createObjectStore(Kr,{keyPath:"modelPath"})}var ti=class{constructor(e){if(this.indexedDB=VI(),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(Ny,Cy);r.onupgradeneeded=()=>_y(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=Sc(t),o=s.transaction(Kr,"readwrite"),l=o.objectStore(Kr),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(Kr);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 UI=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ti.URL_SCHEME)?$D(e.slice(ti.URL_SCHEME.length)):null;At.registerSaveRouter(UI);At.registerLoadRouter(UI);function $D(e){return new ti(e)}function FD(e){return e.startsWith(ti.URL_SCHEME)?e.slice(ti.URL_SCHEME.length):e}var DD=class{constructor(){this.indexedDB=VI()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(Ny,Cy);n.onupgradeneeded=()=>_y(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(Kr,"readonly"),s=r.objectStore(Kr).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=FD(e),new Promise((t,n)=>{let a=this.indexedDB.open(Ny,Cy);a.onupgradeneeded=()=>_y(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(Kr,"readwrite"),i=s.objectStore(Kr),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)})}},kr="/",Ko="tensorflowjs_models",GI="info",RD="model_topology",MD="weight_specs",PD="weight_data",OD="model_metadata";function HI(e){return{info:[Ko,e,GI].join(kr),topology:[Ko,e,RD].join(kr),weightSpecs:[Ko,e,MD].join(kr),weightData:[Ko,e,PD].join(kr),modelMetadata:[Ko,e,OD].join(kr)}}function jI(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function LD(e){let t=e.split(kr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(kr)}function zD(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=HI(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=Sc(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,wD(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,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw jI(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.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=kD(s),t}};ni.URL_SCHEME="localstorage://";var qI=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ni.URL_SCHEME)?BD(e.slice(ni.URL_SCHEME.length)):null;At.registerSaveRouter(qI);At.registerLoadRouter(qI);function BD(e){return new ni(e)}var WD=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=Ko+kr,n=kr+GI;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(Zo)&&(e=e.slice(0,e.indexOf(Zo))),$(e.length>0,()=>"scheme must not be an empty string.");let n=Rn.getInstance();$(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=Rn.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(Rn.getInstance().managers)}};function ah(e){if(e.indexOf(Zo)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Rn.getSchemes().join(",")}`);return{scheme:e.split(Zo)[0],path:e.split(Zo)[1]}}async function KI(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=ah(e).scheme,l=ah(e).path,u=o===ah(e).scheme,p=await r.load();n&&u&&await Rn.getManager(o).removeModel(l);let d=await i.save(p);return n&&!u&&await Rn.getManager(o).removeModel(l),d.modelArtifactsInfo}async function VD(){let e=Rn.getSchemes(),t={};for(let n of e){let a=await Rn.getManager(n).listModels();for(let r in a){let s=n+Zo+r;t[s]=a[r]}}return t}async function UD(e){let t=ah(e);return Rn.getManager(t.scheme).removeModel(t.path)}async function GD(e,t){return KI(e,t,!1)}async function HD(e,t){return KI(e,t,!0)}var jD=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(!window||!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 jD);try{Rn.registerManager(ni.URL_SCHEME,new WD)}catch(e){}try{Rn.registerManager(ti.URL_SCHEME,new DD)}catch(e){}}var qD={importFetch:()=>nF()},sy,KD=class{constructor(){this.util=aF(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return H().global.fetch!=null?H().global.fetch(e,t):(sy==null&&(sy=qD.importFetch()),sy(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 KD);function Pe(e,t="float32",n){return t=t||"float32",xx(e),new Ht(e,t,n)}function XD(e,t){let n=_(e,"x","cast");if(!xI(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(yi,a,r)}var oe=L({cast_:XD});function YD(e){let t={x:_(e,"x","clone","string_or_numeric")};return O.runKernel(Di,t)}var ar=L({clone_:YD});function Ex(e,t=!1){console.log(e.toString(t))}MI();var ZD={buffer:Pe,cast:oe,clone:ar,print:Ex};lD(ZD);var Ut={};_e(Ut,{browserFiles:()=>rR,browserHTTPRequest:()=>uR,concatenateArrayBuffers:()=>Cx,copyModel:()=>GD,decodeWeights:()=>LI,encodeWeights:()=>xD,fromMemory:()=>cR,fromMemorySync:()=>QI,getLoadHandlers:()=>AD,getModelArtifactsForJSON:()=>_x,getModelArtifactsForJSONSync:()=>BI,getModelArtifactsInfoForJSON:()=>Sc,getSaveHandlers:()=>ED,getWeightSpecs:()=>WI,http:()=>$x,isHTTPScheme:()=>Ey,listModels:()=>VD,loadWeights:()=>sR,moveModel:()=>HD,registerLoadRouter:()=>_D,registerSaveRouter:()=>CD,removeModel:()=>UD,weightsLoaderFactory:()=>YI,withSaveHandler:()=>dR,withSaveHandlerSync:()=>hR});var JD="model",QD=".json",eR=".weights.bin";function G1(e){return new Promise(t=>setTimeout(t)).then(e)}var nl=class{constructor(e){if(!H().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(nl.URL_SCHEME)&&(e=e.slice(nl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=JD),this.modelJsonFileName=e+QD,this.weightDataFileName=e+eR}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=zI(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 G1(()=>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 G1(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Sc(e)}}}};nl.URL_SCHEME="downloads://";var tR=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,Cx(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=>U1(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=U1(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}},nR=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(nl.URL_SCHEME)?aR(e.slice(nl.URL_SCHEME.length)):null;At.registerSaveRouter(nR);function aR(e="model"){return new nl(e)}function rR(e){return new tR(e)}function H1(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 XI(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 H1(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await H1(i,t.onProgress,o,l)}async function sR(e,t="",n,a){return YI(r=>XI(r,{requestInit:a}))(e,t,n)}function YI(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 b="quantization"in g?g.quantization.dtype:g.dtype,y=Ty[b]*mt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:y})};a!=null?a.forEach((w,I)=>{w===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=y})}),!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=LI(w,[x.manifestEntry]);for(let T in I)d[T]=I[T]}),c+=m}),d}}var iR="application/octet-stream",oR="application/json",Ax=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=zI(e,n);t.body.append("model.json",new Blob([JSON.stringify(a)],{type:oR}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:iR}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Sc(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]=lR(t),r=this.weightPathPrefix||n,s=WI(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 XI(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,Cx(l)]}};Ax.URL_SCHEME_REGEX=/^https?:\/\//;function lR(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Ey(e){return e.match(Ax.URL_SCHEME_REGEX)!=null}var ZI=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Ey(a)):n=Ey(e),n)return $x(e,t)}return null};At.registerSaveRouter(ZI);At.registerLoadRouter(ZI);function $x(e,t){return new Ax(e,t)}function uR(e,t){return $x(e,t)}var iy=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},JI=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},pR=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function cR(e,t,n,a){let r=arguments;return new pR(QI(...r))}function QI(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new iy(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 iy({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 iy({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function dR(e){return new JI(e)}function hR(e){return new JI(e)}var eS={};_e(eS,{confusionMatrix:()=>RR});function mR(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 Ae=L({matMul_:mR});function fR(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 al=L({oneHot_:fR});function gR(){H().set("PROD",!0)}function bR(){H().set("DEBUG",!0)}function yR(){H().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Fx(e){H().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}uD(Fx);function xR(){O.disposeVariables()}function Ja(){return O}function kh(){return O.memory()}function vR(e){return O.profile(e)}function P(e,t){return O.tidy(e,t)}function $e(e){Sx(e).forEach(t=>t.dispose())}function Zt(e){return O.keep(e)}function wR(e){return O.time(e)}function kR(e){return O.setBackend(e)}function IR(){return O.ready()}function SR(){return O.backendName}function TR(e){O.removeBackend(e)}function NR(e){return O.findBackend(e)}function CR(e){return O.findBackendFactory(e)}function Cm(e,t,n=1){return O.registerBackend(e,t,n)}function tS(){return O.backend}function _R(e,t){H().setPlatform(e,t)}function ER(e){let t={input:_(e,"input","imag")};return O.runKernel(pm,t)}var Tc=L({imag_:ER});function AR(e){let t={x:_(e,"x","neg")};return O.runKernel(Jl,t)}var yt=L({neg_:AR});function $R(e){let t={input:_(e,"input","real")};return O.runKernel(xm,t)}var rl=L({real_:$R});function FR(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=rl(a),o=Tc(a);return i=O.runKernel(Tr,{x:i},s),o=O.runKernel(Tr,{x:o},s),n&&(o=yt(o)),Cr(i,o)}):O.runKernel(Tr,r,s)}var Ce=L({transpose_:FR});function DR(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=al(oe(a,"int32"),n),i=al(oe(r,"int32"),n),o=Ce(s),l=Ae(o,i);return oe(l,"int32")}var RR=L({confusionMatrix_:DR}),Iu={};_e(Iu,{assertAndGetBroadcastShape:()=>lt,getBroadcastDims:()=>nS,getReductionAxes:()=>Bt});function nS(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Bt(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;rWR,fromPixelsAsync:()=>zR,toPixels:()=>BR});function Nc(e,t,n){if(hi(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=sr(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 ms(e,t,a,n)}var Ps;function aS(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(yh(bh,O.backendName)!=null){let c={pixels:e},h={numChannels:t};return O.runKernel(bh,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 WR=L({fromPixels_:aS}),Dx={};_e(Dx,{prepareAndValidate:()=>rS});function rS(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 Rx={};_e(Rx,{calculateShapes:()=>sS,validateInput:()=>Px,validateUpdateShape:()=>Mx});function Mx(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;dUR,computeFlatOffset:()=>KR,computeOutShape:()=>HR,getNormalizedAxes:()=>jR,isSliceContinous:()=>qR,maskToAxes:()=>GR,parseSliceParams:()=>mS,sliceInfo:()=>XR,startForAxis:()=>dS,startIndicesWithElidedDims:()=>uS,stopForAxis:()=>hS,stopIndicesWithElidedDims:()=>pS,stridesForAxis:()=>cS,stridesWithElidedDims:()=>iS});var Ay=-2,VR=-1;function UR(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 GR(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function HR(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=uS(i,h,m,a,e),d=pS(o,h,m,r,e),c=iS(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=oS(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=oS(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=zp(0,i,l-1),i}function hS(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=zp(0,i,l):i=zp(-1,i,l-1),i}function qR(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 KR(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 XR(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 y=0;y0?0:-1,c.strides[y]>0?w:w-1];if(x&&c.strides[y]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[y]===1;let C=!!(c.beginMask&1<=w)throw Error(`slice index ${c.begin[y]} of dimension ${y} out of bounds.`)}else c.begin[y]=j1(c.begin[y],0,c.strides[y],w,I,T),c.end[y]=j1(c.end[y],1,c.strides[y],w,I,T);let R=c.strides[y]===1&&c.begin[y]===0&&c.end[y]===w;h=h&&R,m=m&&(y===0&&c.strides[y]===1||R)}else h=h&&c.strides[y]===1&&C,m=m&&(y===0&&c.strides[y]===1||C);let E,A=!1;if(c.beginValid&&c.endValid?(E=c.end[y]-c.begin[y],A=!0):x?(E=1,A=!0):C&&w>=0&&(c.strides[y]<0?E=-w:E=w,A=!0),A){let R;E===0||E<0!=c.strides[y]<0?R=0:R=Math.trunc(E/c.strides[y])+(E%c.strides[y]!==0?1:0),g.push(R)}else g.push(-1)}for(let y=0;y=0?b.push(g[x]):x===Ay&&b.push(1)}return{finalShapeSparse:b.filter((y,x)=>c.finalShapeGatherIndices[x]!==Ay),finalShape:b,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function YR(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:()=>fS,SerializationMap:()=>Ws,registerClass:()=>fs});var fS=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Ws=class{constructor(){this.classNameMap={}}static getMap(){return Ws.instance==null&&(Ws.instance=new Ws),Ws.instance}static register(e){Ws.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function fs(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."),Ws.register(e)}var gS={};_e(gS,{TEST_EPSILON_FLOAT16:()=>bS,createVideoElement:()=>rM,encodeStrings:()=>yS,expectArrayBuffersEqual:()=>aM,expectArraysClose:()=>JR,expectArraysEqual:()=>eM,expectNumbersClose:()=>tM,expectPromiseToFail:()=>QR,expectValuesInRange:()=>nM,play:()=>sM,testEpsilon:()=>Ox});var ZR=.001,bS=.1;function JR(e,t,n){return n==null&&(n=Ox()),$y(e,t,(a,r)=>Lx(a,r,n))}function Ox(){return O.backend.floatPrecision()===32?ZR:bS}function $y(e,t,n){let a=!0;if((dn(e)||dn(t))&&(a=!1),dn(e)&&dn(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=sr(e),o=sr(t);if(!us(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=dn(e)?e:Zs(e),s=dn(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 FM(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Zr(e)||Zr(e[0])||Zr(t)||Zr(t[0])?Zy(e,n,(a,r)=>a==r):Zy(e,t,(a,r)=>rv(a,r,0))}function DM(e,t,n){if(n==null&&(n=av()),!rv(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function rv(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function RM(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function MM(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 OM(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var LM="3.20.0";function zM(e,t){let n=E(e,"a","add"),a=E(t,"b","add");[n,a]=$t(n,a);let r={a:n,b:a};return L.runKernel(ms,r)}var Q=z({add_:zM});function WM(e,t){let n=E(e,"a","floorDiv"),a=E(t,"b","floorDiv");[n,a]=$t(n,a);let r={a:n,b:a};return L.runKernel(zi,r)}var Ym=z({floorDiv_:WM});function BM(e,t){let n=E(e,"a","div"),a=E(t,"b","div");if([n,a]=$t(n,a),n.dtype==="int32"&&a.dtype==="int32")return Ym(n,a);let r={a:n,b:a},s={};return L.runKernel(Mi,r,s)}var fe=z({div_:BM});function VM(e,t){let n=E(e,"a","mul"),a=E(t,"b","mul");[n,a]=$t(n,a);let r={a:n,b:a};return L.runKernel(Ji,r)}var W=z({mul_:VM});function UM(e){let t=E(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return L.runKernel(wc,n)}else{let n={x:t};return L.runKernel(Al,n)}}var Lt=z({abs_:UM});function GM(e){let t={x:E(e,"x","acos")};return L.runKernel(Fl,t)}var sv=z({acos_:GM});function HM(e){let t={x:E(e,"x","acosh")};return L.runKernel(Dl,t)}var iv=z({acosh_:HM});function jM(e){R(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),R(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>E(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(!hs(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return L.runKernel(Ii,a)}var OT=z({addN_:jM});function qM(e,t=null,n=!1){let a={x:E(e,"x","all","bool")},r={axis:t,keepDims:n};return L.runKernel(Rl,a,r)}var Zm=z({all_:qM});function KM(e,t=null,n=!1){let a={x:E(e,"x","any","bool")},r={axis:t,keepDims:n};return L.runKernel(Ml,a,r)}var ic=z({any_:KM});function XM(e,t=0){let n={x:E(e,"x","argMax")},a={axis:t};return L.runKernel(Ti,n,a)}var di=z({argMax_:XM});function YM(e,t=0){let n={x:E(e,"x","argMin")},a={axis:t};return L.runKernel(xc,n,a)}var ov=z({argMin_:YM});function ZM(e){let t={x:E(e,"x","asin")};return L.runKernel(Pl,t)}var lv=z({asin_:ZM});function JM(e){let t={x:E(e,"x","asinh")};return L.runKernel(Ol,t)}var uv=z({asinh_:JM});function QM(e){let t={x:E(e,"x","atan")};return L.runKernel(Ll,t)}var pv=z({atan_:QM});function eP(e,t){let n=E(e,"a","atan2"),a=E(t,"b","atan2");[n,a]=$t(n,a);let r={a:n,b:a};return L.runKernel(Wl,r)}var cv=z({atan2_:eP});function tP(e){let t={x:E(e,"x","atanh")};return L.runKernel(zl,t)}var dv=z({atanh_:tP});function nP(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=WT(r);return Uc(e,o,n,s,a,null,null,l)}function LT(e,t,n,a,r,s,i="channelsLast"){let[o,l]=jh(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 Uc(e,u,n,a,r,s,!1,i)}function aP(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=Jy(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 zT(e,p,n,a,r,!1,d,s)}function Uc(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]=jh(n),[b,y]=jh(a),x=pl(c,b),w=pl(h,y),{padInfo:I,outHeight:N,outWidth:_}=iP(r,u,p,f,g,x,w,s,o),$=i?m*d:m,A;return o==="channelsFirst"?A=[l,$,N,_]:o==="channelsLast"&&(A=[l,N,_,$]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:p,inChannels:d,outHeight:N,outWidth:_,outChannels:$,padInfo:I,strideHeight:f,strideWidth:g,filterHeight:c,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:w,dilationHeight:b,dilationWidth:y,inShape:e,outShape:A,filterShape:t}}function zT(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,[b,y,x]=Jy(n),[w,I,N]=Jy(a),_=pl(h,w),$=pl(m,I),A=pl(f,N),{padInfo:M,outDepth:D,outHeight:T,outWidth:P}=oP(r,u,p,d,b,y,x,_,$,A,o),U=s?g*c:g,j;return i==="channelsFirst"?j=[l,U,D,T,P]:i==="channelsLast"&&(j=[l,D,T,P,U]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:D,outHeight:T,outWidth:P,outChannels:U,padInfo:M,strideDepth:b,strideHeight:y,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:_,effectiveFilterHeight:$,effectiveFilterWidth:A,dilationDepth:w,dilationHeight:I,dilationWidth:N,inShape:e,outShape:j,filterShape:t}}function rP(e,t,n,a,r){a==null&&(a=hv(e,t,n));let s=e[0],i=e[1],o=ni((s-t+2*a)/n+1,r),l=ni((i-t+2*a)/n+1,r);return[o,l]}function sP(e,t,n,a,r,s){r==null&&(r=hv(e,t,a));let i=e[0],o=e[1],l=e[2],u=ni((i-t+2*r)/a+1,s),p=ni((o-t+2*r)/a+1,s),d=ni((l-t+2*r)/a+1,s);return[u,p,d,n]}function hv(e,t,n,a=1){let r=pl(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function jh(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Jy(e){return typeof e=="number"?[e,e,e]:e}function pl(e,t){return t<=1?e:e+(e-1)*(t-1)}function iP(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=rP([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),b=h-g;u={top:m,bottom:f,left:g,right:b,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=ni((t-s+c+h)/a+1,o),d=ni((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function oP(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=sP([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,b=(m-1)*i+u-a,y=Math.floor(f/2),x=f-y,w=Math.floor(g/2),I=g-w,N=Math.floor(b/2),_=b-N;d={top:w,bottom:I,left:N,right:_,front:y,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 ni(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 ss(e){let[t,n,a]=jh(e);return t===1&&n===1&&a===1}function mr(e,t){return ss(e)||ss(t)}function WT(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function _n(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")R(dl(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=>{R(dl(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 lP(e,t){let n={x:E(e,"x","reshape","string_or_numeric")},a={shape:t};return L.runKernel(yu,n,a)}var B=z({reshape_:lP});function uP(e,t,n,a,r){let s=E(e,"x","avgPool","float32"),i=1;R(mr(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=B(s,[1,s.shape[0],s.shape[1],s.shape[2]])),R(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),_n("avgPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=L.runKernel(Si,u,p);return d=le(d,s.dtype),l?B(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ga=z({avgPool_:uP});function pP(e,t,n,a,r,s="NDHWC"){let i=E(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=B(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),R(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),R(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),_n("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=L.runKernel(vc,u,p);return d=le(d,o.dtype),l?B(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var mv=z({avgPool3d_:pP});function cP(e,t=0){R(e.length>=1,()=>"Pass at least one tensor to concat");let n=sc(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 ur(n[0]);let a=n,r={axis:t};return L.runKernel(Vl,a,r)}var Qe=z({concat_:cP});function dP(e){let t={x:E(e,"x","sigmoid","float32")};return L.runKernel(ho,t)}var da=z({sigmoid_:dP});function hP(e,t,n){let a=E(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 L.runKernel(ku,r,s)}var He=z({slice_:hP});function mP(e){let t={x:E(e,"x","tanh","float32")};return L.runKernel(vo,t)}var hi=z({tanh_:mP});function fP(e,t,n,a,r,s){let i=E(e,"forgetBias","basicLSTMCell"),o=E(t,"lstmKernel","basicLSTMCell"),l=E(n,"lstmBias","basicLSTMCell"),u=E(a,"data","basicLSTMCell"),p=E(r,"c","basicLSTMCell"),d=E(s,"h","basicLSTMCell"),c=Qe([u,d],1),h=Re(c,o),m=Q(h,l),f=m.shape[0],g=m.shape[1]/4,b=[f,g],y=He(m,[0,0],b),x=He(m,[0,g],b),w=He(m,[0,g*2],b),I=He(m,[0,g*3],b),N=Q(W(da(y),hi(x)),W(p,da(Q(i,w)))),_=W(hi(N),da(I));return[N,_]}var BT=z({basicLSTMCell_:fP});function gP(e,t,n){let a=E(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);R(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),R(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),R(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 L.runKernel(Bl,s,i)}var Gc=z({batchToSpaceND_:gP});function bP(e){let t;return e.rank===0||e.rank===1?t=B(e,[1,1,1,e.size]):e.rank===2?t=B(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=B(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function yP(e,t,n,a,r,s){s==null&&(s=.001);let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;a!=null&&(p=E(a,"offset","batchNorm")),R(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),R(p==null||o.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),R(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let d={x:bP(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=L.runKernel(Wi,d,c);return B(h,i.shape)}var vs=z({batchNorm_:yP});function xP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),R(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),R(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),R(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),u!=null&&R(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),p!=null&&R(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),vs(i,o,l,p,u,s)}var fv=z({batchNorm2d_:xP});function vP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),R(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),R(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),R(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),u!=null&&R(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),p!=null&&R(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),vs(i,o,l,p,u,s)}var gv=z({batchNorm3d_:vP});function wP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),R(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),R(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),R(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),u!=null&&R(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),p!=null&&R(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),vs(i,o,l,p,u,s)}var bv=z({batchNorm4d_:wP});function kP(e,t,n){let a=E(e,"x","bincount"),r=E(t,"weights","bincount");R(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),R(n>=0,()=>`size must be non-negative, but got ${n}.`),R(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 L.runKernel(xm,s,i)}var yv=z({bincount_:kP});function IP(e,t){let n=E(e,"s0","broadcastArgs","int32"),a=E(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 L.runKernel(vm,r)}var VT=z({broadcastArgs_:IP});function TP(e,t){let n=E(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 ur(n);let i={x:n},o={reps:s};return L.runKernel(gs,i,o)}var ai=z({broadcastTo_:TP});function SP(e){let t={x:E(e,"x","ceil","float32")};return L.runKernel(_i,t)}var xv=z({ceil_:SP});function NP(e,t,n){let a=E(e,"x","clipByValue");R(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`);let r={x:a},s={clipValueMin:t,clipValueMax:n};return L.runKernel(fs,r,s)}var tn=z({clipByValue_:NP});function CP(e){return Qe(e,0)}var vv=z({concat1d_:CP});function _P(e,t){return Qe(e,t)}var wv=z({concat2d_:_P});function EP(e,t){return Qe(e,t)}var kv=z({concat3d_:EP});function $P(e,t){return Qe(e,t)}var Iv=z({concat4d_:$P});function AP(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","conv2d","float32"),l=E(t,"filter","conv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=B(o,[1,o.shape[0],o.shape[1],o.shape[2]])),R(u.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`),R(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),_n("conv2d",a,i);let d=r==="NHWC"?u.shape[3]:u.shape[1];R(d===l.shape[2],()=>`Error in conv2d: depth of input (${d}) must match input depth for filter ${l.shape[2]}.`),R(mr(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=L.runKernel(Ei,c,h);return p?B(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Dt=z({conv2d_:AP});function FP(e,t,n,a,r="NWC",s=1,i){let o=E(e,"x","conv1d"),l=E(t,"filter","conv1d"),u=o,p=!1;o.rank===2&&(p=!0,u=B(o,[1,o.shape[0],o.shape[1]])),R(u.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`),R(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),_n("conv1d",a,i),R(u.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`),R(mr(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),R(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let d=B(l,[1,l.shape[0],l.shape[1],l.shape[2]]),c=B(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=Dt(c,d,[1,n],a,"NHWC",[1,s],i);return p?B(h,[h.shape[2],h.shape[3]]):B(h,[h.shape[0],h.shape[2],h.shape[3]])}var Jm=z({conv1d_:FP});function DP(e,t,n,a,r,s="NHWC",i){R(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=B(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),R(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),R(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),R(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];R(p===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${n.shape[2]}.`),R(d===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${d}) must match output depth for filter ${n.shape[3]}.`),_n("conv2dDerInput",r,i);let c={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=L.runKernel($i,c,h);return u?B(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Tv=z({conv2DBackpropInput_:DP});function RP(e,t,n,a,r,s){let i=E(e,"x","conv2dTranspose"),o=E(t,"filter","conv2dTranspose");return Tv(n,i,o,a,r,"NHWC",s)}var Qm=z({conv2dTranspose_:RP});function MP(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=E(e,"x","conv3d"),o=E(t,"filter","conv3d"),l=i,u=!1;i.rank===4&&(u=!0,l=B(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),R(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),R(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),R(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),R(mr(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),R(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=L.runKernel(kc,p,d);return u?B(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var Sv=z({conv3d_:MP});function PP(e,t,n,a,r){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=B(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];R(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),R(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),R(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),R(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),R(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=L.runKernel(Tm,p,d);return o?B(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var UT=z({conv3DBackpropInput_:PP});function OP(e,t,n,a,r){let s=E(e,"x","conv3dTranspose"),i=E(t,"filter","conv3dTranspose");return UT(n,s,i,a,r)}var Nv=z({conv3dTranspose_:OP});function LP(e){let t={x:E(e,"x","cos","float32")};return L.runKernel(Ai,t)}var Hc=z({cos_:LP});function zP(e){let t={x:E(e,"x","cosh","float32")};return L.runKernel(Fi,t)}var ef=z({cosh_:zP});function WP(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return L.runKernel(Ul,r,s)}var oc=z({cumprod_:WP});function BP(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return L.runKernel(Di,r,s)}var tf=z({cumsum_:BP});function VP(e,t,n,a=!1){let r=E(e,"x","denseBincount"),s=E(t,"weights","denseBincount");R(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),R(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),R(n>=0,()=>`size must be non-negative, but got ${n}.`),R(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 L.runKernel(Sm,i,o)}var GT=z({denseBincount_:VP});function UP(e,t,n="NHWC"){let a=E(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];R(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),R(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying +Expected: ${s}.`)}typeof expect!="undefined"&&expect().nothing()}function QR(e,t){e().then(()=>t.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function eM(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])?$y(e,n,(a,r)=>a==r):$y(e,t,(a,r)=>Lx(a,r,0))}function tM(e,t,n){if(n==null&&(n=Ox()),!Lx(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function Lx(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function nM(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function aM(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 sM(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var iM="3.21.0";function oM(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(ps,r)}var Y=L({add_:oM});function lM(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 _m=L({floorDiv_:lM});function uM(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_:uM});function pM(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_:pM});function cM(e){let t=_(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return O.runKernel(sc,n)}else{let n={x:t};return O.runKernel(xl,n)}}var Lt=L({abs_:cM});function dM(e){let t={x:_(e,"x","acos")};return O.runKernel(vl,t)}var zx=L({acos_:dM});function hM(e){let t={x:_(e,"x","acosh")};return O.runKernel(wl,t)}var Bx=L({acosh_:hM});function mM(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(!us(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 xS=L({addN_:mM});function fM(e,t=null,n=!1){let a={x:_(e,"x","all","bool")},r={axis:t,keepDims:n};return O.runKernel(kl,a,r)}var Em=L({all_:fM});function gM(e,t=null,n=!1){let a={x:_(e,"x","any","bool")},r={axis:t,keepDims:n};return O.runKernel(Il,a,r)}var Gp=L({any_:gM});function bM(e,t=0){let n={x:_(e,"x","argMax")},a={axis:t};return O.runKernel(fi,n,a)}var ai=L({argMax_:bM});function yM(e,t=0){let n={x:_(e,"x","argMin")},a={axis:t};return O.runKernel(ac,n,a)}var Wx=L({argMin_:yM});function xM(e){let t={x:_(e,"x","asin")};return O.runKernel(Sl,t)}var Vx=L({asin_:xM});function vM(e){let t={x:_(e,"x","asinh")};return O.runKernel(Tl,t)}var Ux=L({asinh_:vM});function wM(e){let t={x:_(e,"x","atan")};return O.runKernel(Nl,t)}var Gx=L({atan_:wM});function kM(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 Hx=L({atan2_:kM});function IM(e){let t={x:_(e,"x","atanh")};return O.runKernel(Cl,t)}var jx=L({atanh_:IM});function SM(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=kS(r);return Cc(e,o,n,s,a,null,null,l)}function vS(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 Cc(e,u,n,a,r,s,!1,i)}function TM(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=Fy(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 wS(e,p,n,a,r,!1,d,s)}function Cc(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),[b,y]=Ih(a),x=Jo(c,b),w=Jo(h,y),{padInfo:I,outHeight:T,outWidth:C}=_M(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:b,dilationWidth:y,inShape:e,outShape:A,filterShape:t}}function wS(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,[b,y,x]=Fy(n),[w,I,T]=Fy(a),C=Jo(h,w),E=Jo(m,I),A=Jo(f,T),{padInfo:R,outDepth:F,outHeight:S,outWidth:M}=EM(r,u,p,d,b,y,x,C,E,A,o),W=s?g*c:g,U;return i==="channelsFirst"?U=[l,W,F,S,M]:i==="channelsLast"&&(U=[l,F,S,M,W]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:F,outHeight:S,outWidth:M,outChannels:W,padInfo:R,strideDepth:b,strideHeight:y,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 NM(e,t,n,a,r){a==null&&(a=qx(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 CM(e,t,n,a,r,s){r==null&&(r=qx(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 qx(e,t,n,a=1){let r=Jo(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 Fy(e){return typeof e=="number"?[e,e,e]:e}function Jo(e,t){return t<=1?e:e+(e-1)*(t-1)}function _M(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=NM([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),b=h-g;u={top:m,bottom:f,left:g,right:b,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 EM(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=CM([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,b=(m-1)*i+u-a,y=Math.floor(f/2),x=f-y,w=Math.floor(g/2),I=g-w,T=Math.floor(b/2),C=b-T;d={top:w,bottom:I,left:T,right:C,front:y,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 ts(e){let[t,n,a]=Ih(e);return t===1&&n===1&&a===1}function lr(e,t){return ts(e)||ts(t)}function kS(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Sn(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")$(el(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=>{$(el(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 AM(e,t){let n={x:_(e,"x","reshape","string_or_numeric")},a={shape:t};return O.runKernel(iu,n,a)}var B=L({reshape_:AM});function $M(e,t,n,a,r){let s=_(e,"x","avgPool","float32"),i=1;$(lr(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=B(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}.`),Sn("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?B(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var fa=L({avgPool_:$M});function FM(e,t,n,a,r,s="NDHWC"){let i=_(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=B(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}`),Sn("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(rc,u,p);return d=oe(d,o.dtype),l?B(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Kx=L({avgPool3d_:FM});function DM(e,t=0){$(e.length>=1,()=>"Pass at least one tensor to concat");let n=Up(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 ar(n[0]);let a=n,r={axis:t};return O.runKernel(Al,a,r)}var Ze=L({concat_:DM});function RM(e){let t={x:_(e,"x","sigmoid","float32")};return O.runKernel(ao,t)}var da=L({sigmoid_:RM});function MM(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(pu,r,s)}var We=L({slice_:MM});function PM(e){let t={x:_(e,"x","tanh","float32")};return O.runKernel(po,t)}var ri=L({tanh_:PM});function OM(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=Ae(c,o),m=Y(h,l),f=m.shape[0],g=m.shape[1]/4,b=[f,g],y=We(m,[0,0],b),x=We(m,[0,g],b),w=We(m,[0,g*2],b),I=We(m,[0,g*3],b),T=Y(z(da(y),ri(x)),z(p,da(Y(i,w)))),C=z(ri(T),da(I));return[T,C]}var IS=L({basicLSTMCell_:OM});function LM(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(El,s,i)}var _c=L({batchToSpaceND_:LM});function zM(e){let t;return e.rank===0||e.rank===1?t=B(e,[1,1,1,e.size]):e.rank===2?t=B(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=B(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function BM(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:zM(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=O.runKernel($i,d,c);return B(h,i.shape)}var gs=L({batchNorm_:BM});function WM(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}.`),gs(i,o,l,p,u,s)}var Xx=L({batchNorm2d_:WM});function VM(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}.`),gs(i,o,l,p,u,s)}var Yx=L({batchNorm3d_:VM});function UM(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}.`),gs(i,o,l,p,u,s)}var Zx=L({batchNorm4d_:UM});function GM(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(Yh,s,i)}var Jx=L({bincount_:GM});function HM(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(Zh,r)}var SS=L({broadcastArgs_:HM});function jM(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 ar(n);let i={x:n},o={reps:s};return O.runKernel(ds,i,o)}var Ks=L({broadcastTo_:jM});function qM(e){let t={x:_(e,"x","ceil","float32")};return O.runKernel(xi,t)}var Qx=L({ceil_:qM});function gn(e,t,n){let a={shape:e,value:t,dtype:n};return O.runKernel(lc,{},a)}function KM(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(cs,r,s)}var Qt=L({clipByValue_:KM});function XM(e){return Ze(e,0)}var ev=L({concat1d_:XM});function YM(e,t){return Ze(e,t)}var tv=L({concat2d_:YM});function ZM(e,t){return Ze(e,t)}var nv=L({concat3d_:ZM});function JM(e,t){return Ze(e,t)}var av=L({concat4d_:JM});function QM(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=B(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}.`),Sn("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]}.`),$(lr(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?B(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var $t=L({conv2d_:QM});function eP(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=B(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}.`),Sn("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]}.`),$(lr(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=B(l,[1,l.shape[0],l.shape[1],l.shape[2]]),c=B(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=$t(c,d,[1,n],a,"NHWC",[1,s],i);return p?B(h,[h.shape[2],h.shape[3]]):B(h,[h.shape[0],h.shape[2],h.shape[3]])}var Am=L({conv1d_:eP});function tP(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=B(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]}.`),Sn("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?B(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var rv=L({conv2DBackpropInput_:tP});function nP(e,t,n,a,r,s){let i=_(e,"x","conv2dTranspose"),o=_(t,"filter","conv2dTranspose");return rv(n,i,o,a,r,"NHWC",s)}var $m=L({conv2dTranspose_:nP});function aP(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=B(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]}.`),$(lr(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(ic,p,d);return u?B(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var sv=L({conv3d_:aP});function rP(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=B(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(tm,p,d);return o?B(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var TS=L({conv3DBackpropInput_:rP});function sP(e,t,n,a,r){let s=_(e,"x","conv3dTranspose"),i=_(t,"filter","conv3dTranspose");return TS(n,s,i,a,r)}var iv=L({conv3dTranspose_:sP});function iP(e){let t={x:_(e,"x","cos","float32")};return O.runKernel(ki,t)}var Ec=L({cos_:iP});function oP(e){let t={x:_(e,"x","cosh","float32")};return O.runKernel(Ii,t)}var Fm=L({cosh_:oP});function lP(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return O.runKernel($l,r,s)}var Hp=L({cumprod_:lP});function uP(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 Dm=L({cumsum_:uP});function pP(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(nm,i,o)}var NS=L({denseBincount_:pP});function cP(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 ${r} and ${t} for depthToSpace with input shape - ${a.shape}`),R(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying + ${a.shape}`),$(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape - ${a.shape}`),R(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 L.runKernel(Hl,o,l)}var Cv=z({depthToSpace_:UP});function GP(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","depthwiseConv2d","float32"),l=E(t,"filter","depthwiseConv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=B(o,[1,o.shape[0],o.shape[1],o.shape[2]])),R(u.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`),R(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];R(d===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${d}) must match the inChannels dimension in filter ${l.shape[2]}.`),_n("depthwiseConv2d",a,i);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=L.runKernel(Ri,c,h);return p?B(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var ws=z({depthwiseConv2d_:GP});function HP(e){let t={x:E(e,"x","diag")};return L.runKernel(_m,t)}var HT=z({diag_:HP});function jP(e,t,n,a,r=[1,1],s="NHWC"){let i=E(e,"x","dilation2d"),o=E(t,"filter","dilation2d");R(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),R(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),R(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,u=!1;i.rank===3&&(l=B(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=L.runKernel(Ic,p,d);return u?B(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var _v=z({dilation2d_:jP});function qP(e,t){let n=E(e,"a","equal","string_or_numeric"),a=E(t,"b","equal","string_or_numeric");[n,a]=$t(n,a),pt(n.shape,a.shape);let r={a:n,b:a};return L.runKernel(ql,r)}var Qn=z({equal_:qP});function KP(e,t,n){let a=E(t,"a","where"),r=E(n,"b","where"),s=E(e,"condition","where","bool"),i=pt(pt(s.shape,a.shape),r.shape),o=ai(s,i),l=ai(a,i),u=ai(r,i),p={condition:o,t:l,e:u};return L.runKernel(vu,p)}var fn=z({where_:KP});function XP(e){let t={x:E(e,"x","zerosLike")};return L.runKernel(Du,t)}var qe=z({zerosLike_:XP});function YP(e,t){let n=E(e,"a","div"),a=E(t,"b","div");[n,a]=$t(n,a);let r=fe(n,a),s=qe(r),i=Qn(a,s);return fn(i,s,r)}var Ev=z({divNoNan_:YP});function ZP(e,t){let n=E(e,"t1","dot"),a=E(t,"t2","dot");R((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(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=B(n,[1,-1]),o=B(a,[-1,1]),l=Re(i,o);return B(l,[])}else if(n.rank===1&&a.rank===2){let i=B(n,[1,-1]),o=B(a,[a.shape[0],a.shape[1]]),l=Re(i,o);return B(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=B(a,[-1,1]),o=Re(n,i);return B(o,[o.size])}else{let i=B(a,[a.shape[0],a.shape[1]]);return Re(n,i)}}var $v=z({dot_:ZP});function JP(e,...t){let n=t.map((r,s)=>E(r,`tensors${s}`,"einsum")),a={equation:e};return L.runKernel(Em,n,a)}var jT=z({einsum_:JP});function QP(e){let t={x:E(e,"x","elu","float32")};return L.runKernel(Pi,t)}var Pu=z({elu_:QP});function eO(e){let t=E(e,"x","erf");R(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 L.runKernel(jl,n)}var Av=z({erf_:eO});function Fv(e,t){for(let n=0;ne[s]);return[n,r]}function mi(e,t){let n=t.map(a=>1);return qT(e,n,t)}function tO(e,t,n){R(Fv(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function XT(e,t){if(Fv(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function Dv(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function nO(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 L.runKernel(Kl,a,r)}var mn=z({expandDims_:dO});function hO(e){let t={x:E(e,"x","expm1")};return L.runKernel(Xl,t)}var Mv=z({expm1_:hO});function mO(e,t){let n=E(e,"x","tile","string_or_numeric");R(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 L.runKernel(gs,a,r)}var Wn=z({tile_:mO});function fO(e,t,n,a="float32"){t==null&&(t=e);let r=Le([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}.`),R(dl(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=B(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=L.runKernel(Sc,l,u);return o?B(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var zv=z({localResponseNormalization_:NO});function CO(e){let t={x:E(e,"x","log","float32")};return L.runKernel(Gi,t)}var ea=z({log_:CO});function _O(e){let t={x:E(e,"x","log1p")};return L.runKernel(su,t)}var qc=z({log1p_:_O});function EO(e){return R(as(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=E(t,"x","tf.grad","string_or_numeric"),r=n!=null?E(n,"dy","tf.grad"):null;return L.tidy(()=>{let{value:s,grads:i}=L.gradients(()=>e(a),[a],r);return r!=null&&Cn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),rf(i),i[0]})}}function $O(e){return R(as(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{R(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=sc(t,"args","tf.grads","string_or_numeric"),r=n!=null?E(n,"dy","tf.grads"):null;return L.tidy(()=>{let{value:s,grads:i}=L.gradients(()=>e(...a),a,r);return r!=null&&Cn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),rf(i),i})}}function AO(e){return R(as(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{R(t instanceof $e,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),R(n==null||n instanceof $e,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=L.gradients(()=>e(t),[t],n);return rf(a),{grad:a[0],value:r}}}function FO(e){return R(as(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{R(Array.isArray(t)&&t.every(r=>r instanceof $e),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),R(n==null||n instanceof $e,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=L.gradients(()=>e(...t),t,n);return n!=null&&Cn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),rf(a.grads),a}}function JT(e,t){R(as(e),()=>"The f passed in variableGrads(f) must be a function"),R(t==null||Array.isArray(t)&&t.every(u=>u instanceof rs),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let u in L.registeredVariables)t.push(L.registeredVariables[u])}let a=n?t.filter(u=>!u.trainable):null,r=t.length;t=t.filter(u=>u.trainable),R(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}=L.gradients(e,t,null,s);R(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()."),R(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 dr(e){return L.customGrad(e)}function rf(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 DO(e){let t={x:E(e,"x","softplus")};return L.runKernel(Su,t)}var ko=z({softplus_:DO});function RO(e){let t=E(e,"x","logSigmoid");return dr(n=>({value:vt(ko(vt(n))),gradFunc:a=>W(a,da(vt(n)))}))(t)}var Wv=z({logSigmoid_:RO});function MO(e,t){let n=E(e,"a","sub"),a=E(t,"b","sub");[n,a]=$t(n,a);let r={a:n,b:a};return L.runKernel(yo,r)}var ce=z({sub_:MO});function PO(e,t=-1){let n=E(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 dr((a,r)=>{let s=Na(a,t,!0),i=ce(a,s),o=ce(le(i,"float32"),ea(ye(gn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=gn(p);return ce(l,W(ye(l,t,d),c))}}})(n)}var sf=z({logSoftmax_:PO});function OO(e,t=null,n=!1){let a=E(e,"x","logSumExp"),r=Ea(t,a.shape),s=Na(a,r,!0),i=ce(a,s),o=gn(i),l=ye(o,r),u=ea(l),p=Q(B(s,u.shape),u);if(n){let d=mi(p.shape,r);return B(p,d)}return p}var of=z({logSumExp_:OO});function LO(e,t){let n=E(e,"a","logicalAnd","bool"),a=E(t,"b","logicalAnd","bool");pt(n.shape,a.shape);let r={a:n,b:a};return L.runKernel(iu,r)}var _a=z({logicalAnd_:LO});function zO(e){let t={x:E(e,"x","logicalNot","bool")};return L.runKernel(ou,t)}var Kc=z({logicalNot_:zO});function WO(e,t){let n=E(e,"a","logicalOr","bool"),a=E(t,"b","logicalOr","bool");pt(n.shape,a.shape);let r={a:n,b:a};return L.runKernel(lu,r)}var lf=z({logicalOr_:WO});function BO(e,t){let n=E(e,"a","logicalXor","bool"),a=E(t,"b","logicalXor","bool");return pt(n.shape,a.shape),_a(lf(e,t),Kc(_a(e,t)))}var Bv=z({logicalXor_:BO}),hh=2147483648;function VO(e,t,n="left"){let a=E(e,"sortedSequence","searchSorted"),r=E(t,"values","searchSorted"),s=a.shape[a.shape.length-1],i=r.shape[r.shape.length-1],o=B(a,[-1,s]),l=B(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(bt(l.shape)>=hh)throw new Error(`values tensor size must less than ${hh}`);if(o.shape[1]>=hh)throw new Error(`trailing dim_size must less than ${hh} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return L.runKernel(Gm,u,p)}var uf=z({searchSorted_:VO});function QT(e,t){return uf(e,t,"left")}function UO(e,t,n,a,r){let s=E(e,"x","maxPool"),i=1,o=s,l=!1;s.rank===3&&(l=!0,o=B(s,[1,s.shape[0],s.shape[1],s.shape[2]])),R(o.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),R(mr(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),_n("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=L.runKernel(qi,u,p);return l?B(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Mt=z({maxPool_:UO});function GO(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=E(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=B(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),R(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),R(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),_n("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=L.runKernel(Nc,u,p);return l?B(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Vv=z({maxPool3d_:GO});function HO(e,t,n,a,r=!1){let s={x:E(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=L.runKernel(Lm,s,i);return{result:o[0],indexes:o[1]}}var eS=z({maxPoolWithArgmax_:HO});function jO(e,t){let n=E(e,"a","maximum"),a=E(t,"b","maximum");[n,a]=$t(n,a),n.dtype==="bool"&&(n=le(n,"int32"),a=le(a,"int32")),pt(n.shape,a.shape);let r={a:n,b:a};return L.runKernel(ji,r)}var fr=z({maximum_:jO});function qO(e,t=null,n=!1){let a={x:E(e,"x","mean")},r={axis:t,keepDims:n};return L.runKernel(Ki,a,r)}var _t=z({mean_:qO});function It(e,t="float32"){if(t==="complex64"){let a=It(e,"float32"),r=It(e,"float32");return $r(a,r)}let n=gm(bt(e),t);return L.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=Lx(bt(e),t);return L.makeTensor(n,e,t)}function tS(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(e,"x","meshgrid",e instanceof $e?e.dtype:"float32");if(t===void 0)return[a];let r=E(t,"y","meshgrid",t instanceof $e?t.dtype:"float32"),s=bt(a.shape),i=bt(r.shape);return n==="xy"?(a=B(a,[1,-1]),r=B(r,[-1,1]),[Re(Jn([i,1],a.dtype),a),Re(r,Jn([1,s],r.dtype))]):(a=B(a,[-1,1]),r=B(r,[1,-1]),[Re(a,Jn([1,i],a.dtype)),Re(Jn([s,1],r.dtype),r)])}function KO(e,t){let n=E(e,"a","minimum"),a=E(t,"b","minimum");[n,a]=$t(n,a),n.dtype==="bool"&&(n=le(n,"int32"),a=le(a,"int32")),pt(n.shape,a.shape);let r={a:n,b:a};return L.runKernel(Yi,r)}var Wu=z({minimum_:KO});function XO(e,t,n){R(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=E(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");R(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."),R(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 L.runKernel(Zi,i,s)}var Uv=z({mirrorPad_:XO});function YO(e,t){let n=E(e,"a","mod"),a=E(t,"b","mod");[n,a]=$t(n,a);let r={a:n,b:a};return L.runKernel(uu,r)}var Gv=z({mod_:YO});function ZO(e,t=null,n=!1){e=E(e,"x","moments");let a=Ea(t,e.shape),r=_t(e,a,n),s=r.shape;n||(s=mi(r.shape,a));let i=lt(ce(le(e,"float32"),B(r,s))),o=_t(i,a,n);return{mean:r,variance:o}}var Xc=z({moments_:ZO});function JO(e,t,n,a){let r=E(t,"data","multiRNNCell"),s=sc(n,"c","multiRNNCell"),i=sc(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?B(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=L.runKernel(zm,o,l);return i===1?B(u,[u.size]):u}var aS=z({multinomial_:QO});function e3(e,t){let n=E(e,"a","notEqual","string_or_numeric"),a=E(t,"b","notEqual","string_or_numeric");[n,a]=$t(n,a),pt(n.shape,a.shape);let r={a:n,b:a};return L.runKernel(cu,r)}var fi=z({notEqual_:e3});function t3(e){let t={x:E(e,"x","onesLike")};return L.runKernel(fu,t)}var ta=z({onesLike_:t3});function n3(e,t){let n=E(e,"v1","outerProduct"),a=E(t,"v2","outerProduct");R(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=B(n,[-1,1]),s=B(a,[1,-1]);return Re(r,s)}var rS=z({outerProduct_:n3});function a3(e,t,n=0){let a=E(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 L.runKernel(eo,s,r)}var ba=z({pad_:a3});function r3(e,t,n=0){return R(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),ba(e,[t],n)}var sS=z({pad1d_:r3});function s3(e,t,n=0){return R(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 iS=z({pad2d_:s3});function i3(e,t,n=0){return R(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 oS=z({pad3d_:i3});function o3(e,t,n=0){return R(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 lS=z({pad4d_:o3});function l3(e,t,n){let a=E(e,"x","spaceToBatchND");R(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),R(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),R(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 L.runKernel(Nu,r,s)}var Yc=z({spaceToBatchND_:l3});function u3(e,t,n,a,r,s,i){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let o=E(e,"x","maxPool"),l=o,u=!1;o.rank===3&&(u=!0,l=B(o,[1,o.shape[0],o.shape[1],o.shape[2]])),R(mr(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=LT(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=c3([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=p3([p.inHeight,p.inWidth],d,c),g=h?a:"valid",b=h?l:Yc(l,d,m),y=(n==="avg"?()=>ga(b,t,s,g,i):()=>Mt(b,t,s,g,i))(),x=h?y:Gc(y,d,f);return u?B(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function p3(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 c3(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 Hv=z({pool_:u3});function d3(e,t){let n=E(e,"x","prelu"),a=E(t,"alpha","prelu"),r={x:n,alpha:a};return L.runKernel(no,r)}var Zc=z({prelu_:d3});function h3(e,t=null,n=!1){let a=E(e,"x","prod");a.dtype==="bool"&&(a=le(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return L.runKernel(ao,r,s)}var jv=z({prod_:h3});function m3(e,t,n,a,r){let s=E(e,"shape","raggedTensorToTensor","int32"),i=E(t,"values","raggedTensorToTensor"),o=E(n,"defaultValue","raggedTensorToTensor",i.dtype),l=a.map((d,c)=>E(d,`tensors${c}`,"raggedTensorToTensor","int32")),u={shape:s,values:i,defaultValue:o,rowPartitionTensors:l},p={rowPartitionTypes:r};return L.runKernel(Wm,u,p)}var uS=z({raggedTensorToTensor_:m3});function f3(e,t,n){let a=bt(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}},g3=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=qv.alea(r.toString()),this.randn=new Kv(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=qv.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function y3(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 g3(t,n,a,r),i=Le(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),fa(t,0)}var hS=z({reverse1d_:N3});function C3(e,t){let n=E(e,"x","reverse");return R(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),fa(n,t)}var mS=z({reverse2d_:C3});function _3(e,t){let n=E(e,"x","reverse");return R(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),fa(n,t)}var fS=z({reverse3d_:_3});function E3(e,t){let n=E(e,"x","reverse");return R(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),fa(n,t)}var gS=z({reverse4d_:E3});function $3(e){let t={x:E(e,"x","round")};return L.runKernel(uo,t)}var df=z({round_:$3});function A3(e){let t={x:E(e,"x","rsqrt","float32")};return L.runKernel(po,t)}var hf=z({rsqrt_:A3});function F3(e){let t={x:E(e,"x","selu")};return L.runKernel(wu,t)}var mf=z({selu_:F3});function D3(e,t,n,a,r,s=[1,1],i="NHWC"){let o=E(e,"x","separableConv2d"),l=E(t,"depthwiseFilter","separableConv2d"),u=E(n,"pointwiseFilter","separableConv2d"),p=o,d=!1;if(o.rank===3&&(d=!0,p=B(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");R(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.rank}.`),R(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),R(u.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),R(u.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`),R(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];R(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=ws(p,l,a,r,i,s),f=Dt(m,u,1,"valid",i);return d?B(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Ts=z({separableConv2d_:D3});async function R3(e,t){let n=E(e,"x","setdiff1d"),a=E(t,"y","setdiff1d");R(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),R(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),R(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`),He(a,[t],[n])}var Jc=z({slice1d_:L3});function z3(e,t,n){let a=E(e,"x","slice2d");return R(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),He(a,t,n)}var bf=z({slice2d_:z3});function W3(e,t,n){let a=E(e,"x","slice3d");return R(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),He(a,t,n)}var Io=z({slice3d_:W3});function B3(e,t,n){let a=E(e,"x","slice4d");return R(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),He(a,t,n)}var yl=z({slice4d_:B3});function V3(e,t=-1){let n=E(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 L.runKernel(go,a,r)}var Qa=z({softmax_:V3});function U3(e){R(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return L.runKernel(Am,t)}var Qc=z({fft_:U3});function G3(e){R(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return L.runKernel(Fm,t)}var xl=z({ifft_:G3});function H3(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=B(e,[n,t]);a=xl(r)}else{let r=[n,2*(t-1)],s=B(gl(e),[n,t]),i=B(Bc(e),[n,t]),o=fa(He(s,[0,1],[n,t-2]),1),l=W(fa(He(i,[0,1],[n,t-2]),1),ke(-1)),u=Qe([s,o],1),p=Qe([i,l],1),d=B($r(u,p),[r[0],r[1]]);a=xl(d)}if(a=gl(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=B(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var yf=z({irfft_:H3});function j3(e,t,n=0){let a={x:E(e,"x","split")},r={numOrSizeSplits:t,axis:n};return L.runKernel(Cu,a,r)}var Vn=z({split_:j3});function q3(e,t){R(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=He(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=Qe([e,It(m)],e.shape.length-1),n=t}else r=e;let s=qe(r),i=B($r(r,s),[a,n]),o=Qc(i),l=Math.floor(n/2)+1,u=gl(o),p=Bc(o),d=Vn(u,[l,n-l],u.shape.length-1),c=Vn(p,[l,n-l],p.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,B($r(d[0],c[0]),h)}var ed=z({rfft_:q3});function K3(e,t){let n=E(e,"a","squaredDifference"),a=E(t,"b","squaredDifference");[n,a]=$t(n,a),pt(n.shape,a.shape);let r={a:n,b:a},s={};return L.runKernel(bo,r,s)}var xf=z({squaredDifference_:K3});function X3(e,t){let n=E(e,"x","squeeze","string_or_numeric");return B(n,MI(n.shape,t).newShape)}var Ss=z({squeeze_:X3});function Y3(e,t=0){let n=sc(e,"tensors","stack","string_or_numeric");R(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&R(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return L.runKernel(gu,a,r)}var Rt=z({stack_:Y3});function Z3(e,t=0){let n={x:E(e,"x","step")},a={alpha:t};return L.runKernel(bs,n,a)}var To=z({step_:Z3});function J3(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let u={x:E(e,"x","stridedSlice","string_or_numeric")},p={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return L.runKernel(Eu,u,p)}var Zv=z({stridedSlice_:J3});function Q3(e){let t={x:E(e,"x","tan","float32")};return L.runKernel(xo,t)}var Jv=z({tan_:Q3});function Ke(e,t){ki(e);let n=cr(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return ys(e,null,n,t)}function Ca(e,t,n){if(ki(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=cr(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 ys(e,t,a,n)}function $a(e,t,n){if(ki(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=cr(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 ys(e,t,a,n)}function yS(e,t,n){if(ki(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=cr(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 ys(e,t,a,n)}function xS(e,t,n){if(ki(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=cr(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,ys(e,t,a,n)}function eL(e,t=1,n=!0){let a=E(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]=L.runKernel($u,s,i);return{values:o,indices:l}}var Qv=z({topk_:eL});function tL(e,t=0,n=1,a,r){if(a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Kv(t,n,a,!0,r),i=Le(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=L.runKernel(jm,a,r);return{values:s,indices:i}}var ew=z({unique_:nL});function aL(e,t,n){let a=E(e,"x","unsortedSegmentSum"),r=E(t,"segmentIds","unsortedSegmentSum","int32");R(dl(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return L.runKernel(Mc,s,i)}var wf=z({unsortedSegmentSum_:aL});function rL(e,t=0){let n=E(e,"x","unstack","string_or_numeric");R(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return L.runKernel(Fu,a,r)}var mt=z({unstack_:rL});function vS(e,t){return uf(e,t,"right")}function tw(e,t=!0,n,a){return L.makeVariable(e,t,n,a)}function wS(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),Cn(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=ke(1),u=ce(l,o),p=W(ce(i,s),u);if(r){R(a!=null,()=>"When using zeroDebias: true, step is required.");let d=E(a,"step","movingAverage");p=fe(p,ce(l,Ar(o,d)))}return Q(s,p)}var IS=z({movingAverage_:oL});function lL(e,t,n){let a=E(e,"indices","scatterND","int32"),r=E(t,"updates","scatterND");nv(r,a,n);let s={indices:a,updates:r},i={shape:n};return L.runKernel(xu,s,i)}var TS=z({scatterND_:lL});function uL(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 pL(e,t,n,a=0){let r=E(e,"sparseIndices","sparseToDense","int32"),s=E(t,"sparseValues","sparseToDense","string_or_numeric"),i=E(a,"defaultValue","sparseToDense",s.dtype);uL(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return L.runKernel(Hm,o,l)}var SS=z({sparseToDense_:pL});function cL(e,t){let n=E(t,"indices","gatherND","int32"),a={params:E(e,"x","gatherND","string_or_numeric"),indices:n};return L.runKernel(Jl,a)}var NS=z({gatherND_:cL});function dL(e,t){if(t==null)return e.shape.slice();if(hs(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.`),R(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof $e?r.clone():r;let s=dL(r,n),i=1-t,o=fe(Lu(Q(Bu(s,0,1,"float32",a),i)),i);return W(r,o)}var aw=z({dropout_:hL});function rw(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function kf(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}`),R(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}`),Cn(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];R(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=PI("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;fbL,depthwiseConv2d:()=>wL,matMul:()=>IL});function fL(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=B(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=B(t,[1,t.shape[0],t.shape[1],t.shape[2]])),R(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),R(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),R(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];R(u===n[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`),R(p===n[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${n[3]}).`),_n("conv2dDerFilter",r,i);let d={x:o,dy:l},c={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return L.runKernel(km,d,c)}var sw=z({conv2DBackpropFilter_:fL});function If(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return W(e,To(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Tf(e,t){let n=t,a=Wt(e.shape,t.shape);return a.length>0&&(n=ye(n,a)),B(n,e.shape)}function Sf(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Xe(e);if(t==="elu")return Pu(e);if(t==="relu6")return cf(e);if(t==="prelu")return Zc(e,n);if(t==="leakyrelu")return jc(e,a);if(t==="sigmoid")return da(e);throw new Error(`Unknown fused activation ${t}.`)}var Nf=(e,t)=>!(e>0)||t==="linear";function gL({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",Nf(L.state.gradientDepth,l)===!1){R(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 N=Dt(e,t,n,a,r,s,i);return o!=null&&(N=Q(N,o)),Sf(N,l,u,p)}let d=E(e,"x","conv2d","float32"),c=E(t,"filter","conv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=B(d,[1,d.shape[0],d.shape[1],d.shape[2]])),R(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),R(c.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${c.rank}.`),_n("fused conv2d",a,i);let f=r==="NHWC"?h.shape[3]:h.shape[1];R(c.shape[2]===f,()=>`Error in conv2d: depth of input (${f}) must match input depth for filter ${c.shape[2]}.`),R(mr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=Uc(h.shape,c.shape,n,s,a,i),b;o!=null&&(b=E(o,"bias","fused conv2d"),[b]=$t(b,d),r==="NHWC"?pt(g.outShape,b.shape):(R(b.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${b.shape.length}.`),R(b.shape.length===0||b.shape[0]===g.outChannels||b.shape[0]===1,()=>`Error in fused conv2d: bias shape (${b.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let y;if(u!=null){let N=u.shape;if(R(N.length<=1||N.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-${N.length}.`),N.length===1)R(N[0]===1||N[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${N}) is not compatible with the number of output channels (${g.outChannels}).`);else if(N.length===3)try{pt(N,g.outShape)}catch(_){let $=`Error in fused conv2d: PReLU activation weights (${N}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error($)}y=E(u,"prelu weights","fused conv2d")}let x=(N,_)=>{R(r==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`);let[$,A,M,D]=_,T=If(N,M,l);R(ss(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let P=Tv(A.shape,T,$,n,a),U=sw(A,T,$.shape,n,a),j=[P,U];if(D!=null){let q=Tf(D,T);j.push(q)}return j},w={x:h,filter:c,bias:b,preluActivationWeights:y},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?dr((N,_,$)=>{let A=L.runKernel(li,w,I);return $([_,N,A]),m&&(A=B(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:x}})(h,c):dr((N,_,$,A)=>{let M=L.runKernel(li,w,I);return A([_,N,M,$]),m&&(M=B(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:x}})(h,c,b)}var bL=z({fusedConv2d_:gL});function yL(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=B(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=B(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 L.runKernel(Nm,u,p)}var _S=z({depthwiseConv2dNativeBackpropFilter_:yL});function xL(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=B(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=L.runKernel(Cm,u,p);return l?B(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ES=z({depthwiseConv2dNativeBackpropInput_:xL});function vL({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(Nf(L.state.gradientDepth,l)===!1){let I=ws(e,t,n,a,r,s,i);return o!=null&&(I=Q(I,o)),Sf(I,l,u,p)}let d=E(e,"x","depthwiseConv2d","float32"),c=E(t,"filter","depthwiseConv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=B(d,[1,d.shape[0],d.shape[1],d.shape[2]])),R(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),R(c.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${c.rank}.`),R(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]),R(mr(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),_n("fused depthwiseConv2d",a,i);let f=Uc(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=$t(g,d),pt(f.outShape,g.shape));let b;u!=null&&(b=E(u,"prelu weights","fused depthwiseConv2d"));let y=(I,N)=>{R(ss(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[_,$,A,M]=N,D=If(I,A,l),T=ES($.shape,D,_,n,a,s,i),P=_S($,D,_.shape,n,a,s,i);if(M!=null){let U=Tf(g,D);return[T,P,U]}return[T,P]},x={x:h,filter:c,bias:g,preluActivationWeights:b},w={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?dr((I,N,_)=>{let $=L.runKernel(ui,x,w);return _([N,I,$]),m&&($=B($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:y}})(h,c):dr((I,N,_,$)=>{let A=L.runKernel(ui,x,w);return $([N,I,A,_]),m&&(A=B(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:y}})(h,c,g)}var wL=z({fusedDepthwiseConv2d_:vL});function kL({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(Nf(L.state.gradientDepth,s)===!1){let M=Re(e,t,n,a);return r!=null&&(M=Q(M,r)),Sf(M,s,i,o)}let l=E(e,"a","fused matMul"),u=E(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=bt(m),b=bt(f);R(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 y=pt(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([c,h]),x=n?B(l,[g,p,c]):B(l,[g,c,p]),w=a?B(u,[b,h,d]):B(u,[b,d,h]),I;r!=null&&(I=E(r,"bias","fused matMul"),[I]=$t(I,l),pt(y,I.shape));let N;i!=null&&(N=E(i,"prelu weights","fused matMul"));let _=(M,D)=>{let[T,P,U,j]=D,q=If(B(M,U.shape),U,s),K,Y;if(!n&&!a?(K=Re(q,P,!1,!0),Y=Re(T,q,!0,!1)):!n&&a?(K=Re(q,P,!1,!1),Y=Re(q,T,!0,!1)):n&&!a?(K=Re(P,q,!1,!0),Y=Re(T,q,!1,!1)):(K=Re(P,q,!0,!0),Y=Re(q,T,!0,!0)),r!=null){let te=Tf(j,q);return[K,Y,te]}else return[K,Y]},$={a:x,b:w,bias:I,preluActivationWeights:N},A={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?dr((M,D,T)=>{let P=L.runKernel(oi,$,A);return T([M,D,P]),{value:B(P,y),gradFunc:_}})(x,w):dr((M,D,T,P)=>{let U=L.runKernel(oi,$,A);return P([M,D,U,T]),{value:B(U,y),gradFunc:_}})(x,w,I)}var IL=z({fusedMatMul_:kL});function TL(e){return kf(e,.54,.46)}var SL=z({hammingWindow_:TL});function NL(e){return kf(e,.5,.5)}var $S=z({hannWindow_:NL});function CL(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(He(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),R(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`),R(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`),R(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),R(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),R(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 L.runKernel(Gl,p,d)}var AL=z({cropAndResize_:$L});function FL(e){let t=E(e,"image","flipLeftRight","float32");R(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return L.runKernel(Yl,n,{})}var DL=z({flipLeftRight_:FL});function RL(e){let t=E(e,"image","grayscaleToRGB"),n=t.rank-1,a=t.shape[n];R(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),R(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,Wn(t,r)}var ML=z({grayscaleToRGB_:RL});function PL(e,t,n=0,a=.5){let r=E(e,"image","rotateWithOffset","float32");R(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 L.runKernel(Ru,s,i)}var OL=z({rotateWithOffset_:PL});function Vu(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),R(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),R(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),R(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),R(t.rank===1,()=>"scores must be a 1D tensor"),R(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),R(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function LL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppression","float32"),i=E(t,"scores","nonMaxSuppression","float32"),o=Vu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return L.runKernel(du,{boxes:s,scores:i},l)}var zL=z({nonMaxSuppression_:LL});function WL(e,t,n){let a=BL(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function BL(e,t,n){return UL(e,t,n||VL)}function VL(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 FS(e,t,n,a,r){return iw(e,t,n,a,r,0)}function DS(e,t,n,a,r,s){return iw(e,t,n,a,r,0,!1,s,!0)}function RS(e,t,n,a,r,s){return iw(e,t,n,a,r,s,!0)}function iw(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(fk);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:b,boxIndex:y,suppressBeginIndex:x}=g;if(b=x;--I){let N=GL(e,y,d[I]);if(N>=a){w=!0;break}if(g.score=g.score*HL(a,p,N),g.score<=r)break}g.suppressBeginIndex=d.length,w||(g.score===b?(d.push(y),c.push(g.score)):g.score>r&&WL(u,g,fk))}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 GL(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),b=Math.min(o,d),y=Math.min(l,c),x=Math.max(b-f,0)*Math.max(y-g,0);return x/(h+m-x)}function HL(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function fk(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function jL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppressionAsync"),i=E(t,"scores","nonMaxSuppressionAsync"),o=Vu(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}=FS(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),Ke(d,"int32")}var qL=jL;function KL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=Vu(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=L.runKernel(mu,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var XL=z({nonMaxSuppressionWithScore_:KL});async function YL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=Vu(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}=RS(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(c,"int32"),selectedScores:Ke(h)}}var ZL=YL;function JL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=Vu(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=L.runKernel(hu,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var QL=z({nonMaxSuppressionPadded_:JL});async function ez(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=Vu(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}=DS(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(m,"int32"),validOutputs:ke(f,"int32")}}var tz=ez;function nz(e,t,n=!1,a=!1){let r=E(e,"images","resizeBilinear");R(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),R(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),R(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=B(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=L.runKernel(io,o,l);return i?B(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var MS=z({resizeBilinear_:nz});function az(e,t,n=!1,a=!1){let r=E(e,"images","resizeNearestNeighbor");R(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),R(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),R(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),R(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=B(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=L.runKernel(so,o,l);return i?B(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var PS=z({resizeNearestNeighbor_:az});function rz(e,t="binary",n=!1,a=.5){let r=E(e,"image","threshold"),s=.2989,i=.587,o=.114,l=r.shape[0]*r.shape[1],u=W(Ke([a]),255),p,d,c,h;if(R(r.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`),R(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(r.dtype==="int32"||r.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`),R(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),r.shape[2]===3){[p,d,c]=Vn(r,[1,1,1],-1);let f=W(p,s),g=W(d,i),b=W(c,o);h=Q(Q(f,g),b)}else h=e;if(t==="otsu"){let f=yv(le(df(h),"int32"),Bn([]),256);u=sz(f,l)}let m=n?Is(h,u):jn(h,u);return le(W(m,255),"int32")}function sz(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}.`),R(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"),R(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 L.runKernel(Au,l,u)}var lz=z({transform_:oz});function uz(e,t,n){R(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),R(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=E(e,"a","bandPart");R(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=B(bl(0,s,1,"int32"),[-1,1]),l=bl(0,i,1,"int32"),u=ce(o,l),p=_a(Is(u,ke(+t,"int32")),ks(u,ke(-n,"int32"))),d=It([s,i],a.dtype);return B(Rt(mt(B(a,[-1,s,i])).map(c=>fn(p,c,d))),r)}var pz=z({bandPart_:uz});function cz(e){let t;if(Array.isArray(e)){t=!1,R(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=Vn(e,e.shape[0],0).map(r=>Ss(r,[0]));R(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 gk(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=mt(B(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,p]=gk(l,t);r.push(u),s.push(p)});let i=B(Rt(r,0),e.shape),o=B(Rt(s,0),e.shape);return[i,o]}}function gk(e,t=!1){return L.tidy(()=>{R(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=nf(n),s=ur(e),i=Ca([[1]],[1,1]),o=ur(i),l=n>=a?a:n;for(let u=0;u{let h=He(s,[u,u],[n-u,1]),m=Ou(h),f=He(s,[u,u],[1,1]),g=fn(jn(f,0),Ca([[-1]]),Ca([[1]])),b=ce(f,W(g,m)),y=fe(h,b);y.shape[0]===1?o=ur(i):o=Qe([i,He(y,[1,0],[y.shape[0]-1,y.shape[1]])],0);let x=vt(fe(Re(g,b),m)),w=He(s,[u,0],[n-u,a]),I=W(x,o),N=Ae(o);if(u===0)s=ce(w,Re(I,Re(N,w)));else{let A=ce(w,Re(I,Re(N,w)));s=Qe([He(s,[0,0],[u,a]),A],0)}let _=Ae(I),$=He(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=ce($,Re(Re($,o),_));else{let A=ce($,Re(Re($,o),_));r=Qe([He(r,[0,0],[n,u]),A],1)}return[o,s,r]}),Me([p,d,c])}return!t&&n>a&&(r=He(r,[0,0],[n,a]),s=He(s,[0,0],[a,a])),[r,s]})}var mz=z({qr_:hz}),kn;(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"})(kn||(kn={}));function fz(e,t,n=kn.SUM_BY_NONZERO_WEIGHTS){let a=E(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=E(t,"weights","computeWeightedLoss"));let s=r==null?a:W(a,r);if(n===kn.NONE)return s;if(n===kn.SUM)return ye(s);if(n===kn.MEAN){if(r==null)return _t(s);{let i=a.size/r.size,o=fe(ye(s),ye(r));return i>1?fe(o,ke(i)):o}}if(n===kn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return fe(ye(s),ke(a.size));{let i=W(r,Jn(a.shape)),o=le(ye(fi(i,ke(0))),"float32");return fe(ye(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Fr=z({computeWeightedLoss_:fz});function gz(e,t,n,a=kn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","absoluteDifference"),s=E(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=E(n,"weights","absoluteDifference")),Cn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(ce(r,s));return Fr(o,i,a)}var bz=z({absoluteDifference_:gz});function yz(e,t,n,a,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","cosineDistance"),i=E(t,"predictions","cosineDistance"),o=null;a!=null&&(o=E(a,"weights","cosineDistance")),Cn(s.shape,i.shape,"Error in cosineDistance: ");let l=ke(1),u=ce(l,ye(W(s,i),n,!0));return Fr(u,o,r)}var xz=z({cosineDistance_:yz});function vz(e,t,n,a=kn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","hingeLoss"),s=E(t,"predictions","hingeLoss"),i=null;n!=null&&(i=E(n,"weights","hingeLoss")),Cn(r.shape,s.shape,"Error in hingeLoss: ");let o=ke(1);r=ce(W(ke(2),r),o);let l=Xe(ce(o,W(r,s)));return Fr(l,i,a)}var wz=z({hingeLoss_:vz});function kz(e,t,n,a=1,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","huberLoss"),i=E(t,"predictions","huberLoss"),o=null;n!=null&&(o=E(n,"weights","huberLoss")),Cn(s.shape,i.shape,"Error in huberLoss: ");let l=ke(a),u=Lt(ce(i,s)),p=Wu(u,l),d=ce(u,p),c=Q(W(ke(.5),lt(p)),W(l,d));return Fr(c,o,r)}var Iz=z({huberLoss_:kz});function Tz(e,t,n,a=1e-7,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","logLoss"),i=E(t,"predictions","logLoss"),o=null;n!=null&&(o=E(n,"weights","logLoss")),Cn(s.shape,i.shape,"Error in logLoss: ");let l=ke(1),u=ke(a),p=vt(W(s,ea(Q(i,u)))),d=W(ce(l,s),ea(Q(ce(l,i),u))),c=ce(p,d);return Fr(c,o,r)}var Sz=z({logLoss_:Tz});function Nz(e,t,n,a=kn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","meanSquaredError"),s=E(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=E(n,"weights","meanSquaredError")),Cn(r.shape,s.shape,"Error in meanSquaredError: ");let o=xf(r,s);return Fr(o,i,a)}var Cz=z({meanSquaredError_:Nz});function _z(e,t){let n=E(e,"labels","sigmoidCrossEntropyWithLogits"),a=E(t,"logits","sigmoidCrossEntropyWithLogits");Cn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Xe(a),s=W(a,n),i=qc(gn(vt(Lt(a))));return Q(ce(r,s),i)}function Ez(e,t,n,a=0,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"multiClassLabels","sigmoidCrossEntropy"),i=E(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","sigmoidCrossEntropy")),Cn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=ke(a),p=ke(1),d=ke(.5);s=Q(W(s,ce(p,u)),W(d,u))}let l=_z(s,i);return Fr(l,o,r)}var $z=z({sigmoidCrossEntropy_:Ez});function Az(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 dr((a,r,s)=>{let i=of(r,[n],!0),o=ce(le(r,"float32"),i);s([a,o]);let l=vt(W(o,a));return{value:ye(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=mi(u.shape,[n]);return[W(B(u,h),ce(le(d,"float32"),gn(c))),W(B(u,h),ce(gn(c),le(d,"float32")))]}}})(e,t)}function Fz(e,t,n,a=0,r=kn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"onehotLabels","softmaxCrossEntropy"),i=E(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","softmaxCrossEntropy")),Cn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=ke(a),p=ke(1),d=ke(s.shape[1]);s=Q(W(s,ce(p,u)),fe(u,d))}let l=Az(s,i);return Fr(l,o,r)}var Dz=z({softmaxCrossEntropy_:Fz});function Rz(e,t,n,a){let r=E(e,"indices","sparseFillEmptyRows","int32"),s=E(t,"values","sparseFillEmptyRows"),i=E(n,"denseShape","sparseFillEmptyRows","int32"),o=E(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=L.runKernel(_c,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var Mz=z({sparseFillEmptyRows_:Rz});function Pz(e,t,n){let a=E(e,"inputIndices","sparseReshape","int32"),r=E(t,"inputShape","sparseReshape","int32"),s=E(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=L.runKernel(_u,i);return{outputIndices:o[0],outputShape:o[1]}}var Oz=z({sparseReshape_:Pz});function Lz(e,t,n){let a=E(e,"data","sparseSegmentMean"),r=E(t,"indices","sparseSegmentMean","int32"),s=E(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}`),$(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(Dl,o,l)}var ov=L({depthToSpace_:cP});function dP(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=B(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]}.`),Sn("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?B(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var bs=L({depthwiseConv2d_:dP});function hP(e){let t={x:_(e,"x","diag")};return O.runKernel(sm,t)}var CS=L({diag_:hP});function mP(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=B(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(oc,p,d);return u?B(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var lv=L({dilation2d_:mP});function fP(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(Ml,r)}var Jn=L({equal_:fP});function gP(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(lu,p)}var mn=L({where_:gP});function bP(e){let t={x:_(e,"x","zerosLike")};return O.runKernel(wu,t)}var je=L({zerosLike_:bP});function yP(e,t){let n=_(e,"a","div"),a=_(t,"b","div");[n,a]=_t(n,a);let r=he(n,a),s=je(r),i=Jn(a,s);return mn(i,s,r)}var uv=L({divNoNan_:yP});function xP(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=B(n,[1,-1]),o=B(a,[-1,1]),l=Ae(i,o);return B(l,[])}else if(n.rank===1&&a.rank===2){let i=B(n,[1,-1]),o=B(a,[a.shape[0],a.shape[1]]),l=Ae(i,o);return B(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=B(a,[-1,1]),o=Ae(n,i);return B(o,[o.size])}else{let i=B(a,[a.shape[0],a.shape[1]]);return Ae(n,i)}}var pv=L({dot_:xP});function vP(e,...t){let n=t.map((r,s)=>_(r,`tensors${s}`,"einsum")),a={equation:e};return O.runKernel(im,n,a)}var _S=L({einsum_:vP});function wP(e){let t={x:_(e,"x","elu","float32")};return O.runKernel(Ci,t)}var Su=L({elu_:wP});function kP(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(Rl,n)}var cv=L({erf_:kP});function dv(e,t){for(let n=0;ne[s]);return[n,r]}function si(e,t){let n=t.map(a=>1);return ES(e,n,t)}function IP(e,t,n){$(dv(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function $S(e,t){if(dv(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function hv(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function SP(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(Pl,a,r)}var hn=L({expandDims_:RP});function MP(e){let t={x:_(e,"x","expm1")};return O.runKernel(Ol,t)}var fv=L({expm1_:MP});function PP(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(ds,a,r)}var Pn=L({tile_:PP});function OP(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}.`),$(el(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=B(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(uc,l,u);return o?B(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var xv=L({localResponseNormalization_:KP});function XP(e){let t={x:_(e,"x","log","float32")};return O.runKernel(Mi,t)}var Qn=L({log_:XP});function YP(e){let t={x:_(e,"x","log1p")};return O.runKernel(ql,t)}var $c=L({log1p_:YP});function ZP(e){return $(Qr(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&&In(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Pm(i),i[0]})}}function JP(e){return $(Qr(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=Up(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&&In(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Pm(i),i})}}function QP(e){return $(Qr(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 Pm(a),{grad:a[0],value:r}}}function eO(e){return $(Qr(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&&In(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Pm(a.grads),a}}function RS(e,t){$(Qr(e),()=>"The f passed in variableGrads(f) must be a function"),$(t==null||Array.isArray(t)&&t.every(u=>u instanceof es),()=>"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 ir(e){return O.customGrad(e)}function Pm(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 tO(e){let t={x:_(e,"x","softplus")};return O.runKernel(hu,t)}var ho=L({softplus_:tO});function nO(e){let t=_(e,"x","logSigmoid");return ir(n=>({value:yt(ho(yt(n))),gradFunc:a=>z(a,da(yt(n)))}))(t)}var vv=L({logSigmoid_:nO});function aO(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_:aO});function rO(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 ir((a,r)=>{let s=Na(a,t,!0),i=pe(a,s),o=pe(oe(i,"float32"),Qn(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 Om=L({logSoftmax_:rO});function sO(e,t=null,n=!1){let a=_(e,"x","logSumExp"),r=Ea(t,a.shape),s=Na(a,r,!0),i=pe(a,s),o=fn(i),l=fe(o,r),u=Qn(l),p=Y(B(s,u.shape),u);if(n){let d=si(p.shape,r);return B(p,d)}return p}var Lm=L({logSumExp_:sO});function iO(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(Kl,r)}var _a=L({logicalAnd_:iO});function oO(e){let t={x:_(e,"x","logicalNot","bool")};return O.runKernel(Xl,t)}var Fc=L({logicalNot_:oO});function lO(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(Yl,r)}var zm=L({logicalOr_:lO});function uO(e,t){let n=_(e,"a","logicalXor","bool"),a=_(t,"b","logicalXor","bool");return lt(n.shape,a.shape),_a(zm(e,t),Fc(_a(e,t)))}var wv=L({logicalXor_:uO}),Gd=2147483648;function pO(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=B(a,[-1,s]),l=B(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)>=Gd)throw new Error(`values tensor size must less than ${Gd}`);if(o.shape[1]>=Gd)throw new Error(`trailing dim_size must less than ${Gd} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return O.runKernel(km,u,p)}var Bm=L({searchSorted_:pO});function MS(e,t){return Bm(e,t,"left")}function cO(e,t,n,a,r){let s=_(e,"x","maxPool"),i=1,o=s,l=!1;s.rank===3&&(l=!0,o=B(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}.`),$(lr(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),Sn("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(Li,u,p);return l?B(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Dt=L({maxPool_:cO});function dO(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=B(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}`),Sn("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(pc,u,p);return l?B(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var kv=L({maxPool3d_:dO});function hO(e,t,n,a,r=!1){let s={x:_(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=O.runKernel(fm,s,i);return{result:o[0],indexes:o[1]}}var PS=L({maxPoolWithArgmax_:hO});function mO(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 ur=L({maximum_:mO});function fO(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_:fO});function It(e,t="float32"){if(t==="complex64"){let a=It(e,"float32"),r=It(e,"float32");return Cr(a,r)}let n=qh(mt(e),t);return O.makeTensor(n,e,t)}function Yn(e,t="float32"){if(t==="complex64"){let a=Yn(e,"float32"),r=It(e,"float32");return Cr(a,r)}let n=yx(mt(e),t);return O.makeTensor(n,e,t)}function OS(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=B(a,[1,-1]),r=B(r,[-1,1]),[Ae(Yn([i,1],a.dtype),a),Ae(r,Yn([1,s],r.dtype))]):(a=B(a,[-1,1]),r=B(r,[1,-1]),[Ae(a,Yn([1,i],a.dtype)),Ae(Yn([s,1],r.dtype),r)])}function gO(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(Wi,r)}var _u=L({minimum_:gO});function bO(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 Iv=L({mirrorPad_:bO});function yO(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(Zl,r)}var Sv=L({mod_:yO});function xO(e,t=null,n=!1){e=_(e,"x","moments");let a=Ea(t,e.shape),r=Nt(e,a,n),s=r.shape;n||(s=si(r.shape,a));let i=ot(pe(oe(e,"float32"),B(r,s))),o=Nt(i,a,n);return{mean:r,variance:o}}var Dc=L({moments_:xO});function vO(e,t,n,a){let r=_(t,"data","multiRNNCell"),s=Up(n,"c","multiRNNCell"),i=Up(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?B(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=O.runKernel(gm,o,l);return i===1?B(u,[u.size]):u}var zS=L({multinomial_:wO});function kO(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(Ql,r)}var ii=L({notEqual_:kO});function IO(e){let t={x:_(e,"x","onesLike")};return O.runKernel(au,t)}var ea=L({onesLike_:IO});function SO(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=B(n,[-1,1]),s=B(a,[1,-1]);return Ae(r,s)}var BS=L({outerProduct_:SO});function TO(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 ga=L({pad_:TO});function NO(e,t,n=0){return $(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),ga(e,[t],n)}var WS=L({pad1d_:NO});function CO(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."),ga(e,t,n)}var VS=L({pad2d_:CO});function _O(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."),ga(e,t,n)}var US=L({pad3d_:_O});function EO(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."),ga(e,t,n)}var GS=L({pad4d_:EO});function AO(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(mu,r,s)}var Rc=L({spaceToBatchND_:AO});function $O(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=B(o,[1,o.shape[0],o.shape[1],o.shape[2]])),$(lr(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=vS(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=DO([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=FO([p.inHeight,p.inWidth],d,c),g=h?a:"valid",b=h?l:Rc(l,d,m),y=(n==="avg"?()=>fa(b,t,s,g,i):()=>Dt(b,t,s,g,i))(),x=h?y:_c(y,d,f);return u?B(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function FO(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 DO(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 Tv=L({pool_:$O});function RO(e,t){let n=_(e,"x","prelu"),a=_(t,"alpha","prelu"),r={x:n,alpha:a};return O.runKernel(qi,r)}var Mc=L({prelu_:RO});function MO(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 Nv=L({prod_:MO});function PO(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 HS=L({raggedGather_:PO});function OO(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(ym,u,p)}var jS=L({raggedTensorToTensor_:OO});function LO(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}},zO=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=Cv.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=Cv.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function WO(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 zO(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}.`),ma(t,0)}var YS=L({reverse1d_:XO});function YO(e,t){let n=_(e,"x","reverse");return $(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),ma(n,t)}var ZS=L({reverse2d_:YO});function ZO(e,t){let n=_(e,"x","reverse");return $(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),ma(n,t)}var JS=L({reverse3d_:ZO});function JO(e,t){let n=_(e,"x","reverse");return $(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),ma(n,t)}var QS=L({reverse4d_:JO});function QO(e){let t={x:_(e,"x","round")};return O.runKernel(eo,t)}var Um=L({round_:QO});function e3(e){let t={x:_(e,"x","rsqrt","float32")};return O.runKernel(to,t)}var Gm=L({rsqrt_:e3});function t3(e){let t={x:_(e,"x","selu")};return O.runKernel(uu,t)}var Hm=L({selu_:t3});function n3(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=B(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?B(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var vs=L({separableConv2d_:n3});async function a3(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`),We(a,[t],[n])}var Pc=L({slice1d_:o3});function l3(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`),We(a,t,n)}var Km=L({slice2d_:l3});function u3(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`),We(a,t,n)}var mo=L({slice3d_:u3});function p3(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`),We(a,t,n)}var il=L({slice4d_:p3});function c3(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 ja=L({softmax_:c3});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(lm,t)}var Oc=L({fft_:d3});function h3(e){$(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(um,t)}var ol=L({ifft_:h3});function m3(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=B(e,[n,t]);a=ol(r)}else{let r=[n,2*(t-1)],s=B(rl(e),[n,t]),i=B(Tc(e),[n,t]),o=ma(We(s,[0,1],[n,t-2]),1),l=z(ma(We(i,[0,1],[n,t-2]),1),ye(-1)),u=Ze([s,o],1),p=Ze([i,l],1),d=B(Cr(u,p),[r[0],r[1]]);a=ol(d)}if(a=rl(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=B(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var Xm=L({irfft_:m3});function f3(e,t,n=0){let a={x:_(e,"x","split")},r={numOrSizeSplits:t,axis:n};return O.runKernel(fu,a,r)}var Ln=L({split_:f3});function g3(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=We(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=je(r),i=B(Cr(r,s),[a,n]),o=Oc(i),l=Math.floor(n/2)+1,u=rl(o),p=Tc(o),d=Ln(u,[l,n-l],u.shape.length-1),c=Ln(p,[l,n-l],p.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,B(Cr(d[0],c[0]),h)}var Lc=L({rfft_:g3});function b3(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 Ym=L({squaredDifference_:b3});function y3(e,t){let n=_(e,"x","squeeze","string_or_numeric");return B(n,fI(n.shape,t).newShape)}var ws=L({squeeze_:y3});function x3(e,t=0){let n=Up(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(ru,a,r)}var Ft=L({stack_:x3});function v3(e,t=0){let n={x:_(e,"x","step")},a={alpha:t};return O.runKernel(hs,n,a)}var fo=L({step_:v3});function w3(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(bu,u,p)}var $v=L({stridedSlice_:w3});function k3(e){let t={x:_(e,"x","tan","float32")};return O.runKernel(uo,t)}var Fv=L({tan_:k3});function Ke(e,t){hi(e);let n=sr(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return ms(e,null,n,t)}function Ca(e,t,n){if(hi(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=sr(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 ms(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=sr(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 ms(e,t,a,n)}function tT(e,t,n){if(hi(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=sr(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 ms(e,t,a,n)}function nT(e,t,n){if(hi(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=sr(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,ms(e,t,a,n)}function I3(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(yu,s,i);return{values:o,indices:l}}var Dv=L({topk_:I3});function S3(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(Sm,a,r);return{values:s,indices:i}}var Rv=L({unique_:T3});function N3(e,t,n){let a=_(e,"x","unsortedSegmentSum"),r=_(t,"segmentIds","unsortedSegmentSum","int32");$(el(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return O.runKernel(xc,s,i)}var Jm=L({unsortedSegmentSum_:N3});function C3(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(vu,a,r)}var ct=L({unstack_:C3});function aT(e,t){return Bm(e,t,"right")}function Mv(e,t=!0,n,a){return O.makeVariable(e,t,n,a)}function rT(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),In(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=ye(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 iT=L({movingAverage_:A3});function $3(e,t,n){let a=_(e,"indices","scatterND","int32"),r=_(t,"updates","scatterND");Px(r,a,n);let s={indices:a,updates:r},i={shape:n};return O.runKernel(ou,s,i)}var oT=L({scatterND_:$3});function F3(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 D3(e,t,n,a=0){let r=_(e,"sparseIndices","sparseToDense","int32"),s=_(t,"sparseValues","sparseToDense","string_or_numeric"),i=_(a,"defaultValue","sparseToDense",s.dtype);F3(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return O.runKernel(Im,o,l)}var lT=L({sparseToDense_:D3});function R3(e,t){let n=_(t,"indices","gatherND","int32"),a={params:_(e,"x","gatherND","string_or_numeric"),indices:n};return O.runKernel(Bl,a)}var uT=L({gatherND_:R3});function M3(e,t){if(t==null)return e.shape.slice();if(us(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=M3(r,n),i=1-t,o=he(Nu(Y(Eu(s,0,1,"float32",a),i)),i);return z(r,o)}var Ov=L({dropout_:P3});function Lv(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function Qm(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}`),In(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=gI("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;fB3,depthwiseConv2d:()=>G3,matMul:()=>j3});function L3(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=B(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=B(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]}).`),Sn("conv2dDerFilter",r,i);let d={x:o,dy:l},c={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return O.runKernel(Qh,d,c)}var zv=L({conv2DBackpropFilter_:L3});function ef(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 tf(e,t){let n=t,a=Bt(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),B(n,e.shape)}function nf(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Xe(e);if(t==="elu")return Su(e);if(t==="relu6")return Vm(e);if(t==="prelu")return Mc(e,n);if(t==="leakyrelu")return Ac(e,a);if(t==="sigmoid")return da(e);throw new Error(`Unknown fused activation ${t}.`)}var af=(e,t)=>!(e>0)||t==="linear";function z3({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",af(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)),nf(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=B(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}.`),Sn("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]}.`),$(lr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=Cc(h.shape,c.shape,n,s,a,i),b;o!=null&&(b=_(o,"bias","fused conv2d"),[b]=_t(b,d),r==="NHWC"?lt(g.outShape,b.shape):($(b.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${b.shape.length}.`),$(b.shape.length===0||b.shape[0]===g.outChannels||b.shape[0]===1,()=>`Error in fused conv2d: bias shape (${b.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let y;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)}y=_(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=ef(T,R,l);$(ts(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=rv(A.shape,S,E,n,a),W=zv(A,S,E.shape,n,a),U=[M,W];if(F!=null){let G=tf(F,S);U.push(G)}return U},w={x:h,filter:c,bias:b,preluActivationWeights:y},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?ir((T,C,E)=>{let A=O.runKernel(Qs,w,I);return E([C,T,A]),m&&(A=B(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:x}})(h,c):ir((T,C,E,A)=>{let R=O.runKernel(Qs,w,I);return A([C,T,R,E]),m&&(R=B(R,[R.shape[1],R.shape[2],R.shape[3]])),{value:R,gradFunc:x}})(h,c,b)}var B3=L({fusedConv2d_:z3});function W3(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=B(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=B(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(am,u,p)}var cT=L({depthwiseConv2dNativeBackpropFilter_:W3});function V3(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=B(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(rm,u,p);return l?B(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var dT=L({depthwiseConv2dNativeBackpropInput_:V3});function U3({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(af(O.state.gradientDepth,l)===!1){let I=bs(e,t,n,a,r,s,i);return o!=null&&(I=Y(I,o)),nf(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=B(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]),$(lr(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),Sn("fused depthwiseConv2d",a,i);let f=Cc(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 b;u!=null&&(b=_(u,"prelu weights","fused depthwiseConv2d"));let y=(I,T)=>{$(ts(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=ef(I,A,l),S=dT(E.shape,F,C,n,a,s,i),M=cT(E,F,C.shape,n,a,s,i);if(R!=null){let W=tf(g,F);return[S,M,W]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:b},w={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?ir((I,T,C)=>{let E=O.runKernel(ei,x,w);return C([T,I,E]),m&&(E=B(E,[E.shape[1],E.shape[2],E.shape[3]])),{value:E,gradFunc:y}})(h,c):ir((I,T,C,E)=>{let A=O.runKernel(ei,x,w);return E([T,I,A,C]),m&&(A=B(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:y}})(h,c,g)}var G3=L({fusedDepthwiseConv2d_:U3});function H3({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(af(O.state.gradientDepth,s)===!1){let R=Ae(e,t,n,a);return r!=null&&(R=Y(R,r)),nf(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),b=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 y=lt(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([c,h]),x=n?B(l,[g,p,c]):B(l,[g,c,p]),w=a?B(u,[b,h,d]):B(u,[b,d,h]),I;r!=null&&(I=_(r,"bias","fused matMul"),[I]=_t(I,l),lt(y,I.shape));let T;i!=null&&(T=_(i,"prelu weights","fused matMul"));let C=(R,F)=>{let[S,M,W,U]=F,G=ef(B(R,W.shape),W,s),q,K;if(!n&&!a?(q=Ae(G,M,!1,!0),K=Ae(S,G,!0,!1)):!n&&a?(q=Ae(G,M,!1,!1),K=Ae(G,S,!0,!1)):n&&!a?(q=Ae(M,G,!1,!0),K=Ae(S,G,!1,!1)):(q=Ae(M,G,!0,!0),K=Ae(G,S,!0,!0)),r!=null){let Z=tf(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?ir((R,F,S)=>{let M=O.runKernel(Js,E,A);return S([R,F,M]),{value:B(M,y),gradFunc:C}})(x,w):ir((R,F,S,M)=>{let W=O.runKernel(Js,E,A);return M([R,F,W,S]),{value:B(W,y),gradFunc:C}})(x,w,I)}var j3=L({fusedMatMul_:H3});function q3(e){return Qm(e,.54,.46)}var K3=L({hammingWindow_:q3});function X3(e){return Qm(e,.5,.5)}var hT=L({hannWindow_:X3});function Y3(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(We(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(Fl,p,d)}var eL=L({cropAndResize_:Q3});function tL(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(Ll,n,{})}var nL=L({flipLeftRight_:tL});function aL(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,Pn(t,r)}var rL=L({grayscaleToRGB_:aL});function sL(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(ku,s,i)}var iL=L({rotateWithOffset_:sL});function Au(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 oL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppression","float32"),i=_(t,"scores","nonMaxSuppression","float32"),o=Au(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(eu,{boxes:s,scores:i},l)}var lL=L({nonMaxSuppression_:oL});function uL(e,t,n){let a=pL(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function pL(e,t,n){return dL(e,t,n||cL)}function cL(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 fT(e,t,n,a,r){return Bv(e,t,n,a,r,0)}function gT(e,t,n,a,r,s){return Bv(e,t,n,a,r,0,!1,s,!0)}function bT(e,t,n,a,r,s){return Bv(e,t,n,a,r,s,!0)}function Bv(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(q1);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:b,boxIndex:y,suppressBeginIndex:x}=g;if(b=x;--I){let T=hL(e,y,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===b?(d.push(y),c.push(g.score)):g.score>r&&uL(u,g,q1))}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 hL(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),b=Math.min(o,d),y=Math.min(l,c),x=Math.max(b-f,0)*Math.max(y-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 q1(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function fL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppressionAsync"),i=_(t,"scores","nonMaxSuppressionAsync"),o=Au(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}=fT(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),Ke(d,"int32")}var gL=fL;function bL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Au(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(nu,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var yL=L({nonMaxSuppressionWithScore_:bL});async function xL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Au(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}=bT(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(c,"int32"),selectedScores:Ke(h)}}var vL=xL;function wL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Au(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(tu,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var kL=L({nonMaxSuppressionPadded_:wL});async function IL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Au(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}=gT(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(m,"int32"),validOutputs:ye(f,"int32")}}var SL=IL;function TL(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=B(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?B(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var yT=L({resizeBilinear_:TL});function NL(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=B(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?B(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var xT=L({resizeNearestNeighbor_:NL});function CL(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]=Ln(r,[1,1,1],-1);let f=z(p,s),g=z(d,i),b=z(c,o);h=Y(Y(f,g),b)}else h=e;if(t==="otsu"){let f=Jx(oe(Um(h),"int32"),On([]),256);u=_L(f,l)}let m=n?xs(h,u):Vn(h,u);return oe(z(m,255),"int32")}function _L(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(xu,l,u)}var $L=L({transform_:AL});function FL(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=B(sl(0,s,1,"int32"),[-1,1]),l=sl(0,i,1,"int32"),u=pe(o,l),p=_a(xs(u,ye(+t,"int32")),ys(u,ye(-n,"int32"))),d=It([s,i],a.dtype);return B(Ft(ct(B(a,[-1,s,i])).map(c=>mn(p,c,d))),r)}var DL=L({bandPart_:FL});function RL(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=Ln(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 K1(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=ct(B(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,p]=K1(l,t);r.push(u),s.push(p)});let i=B(Ft(r,0),e.shape),o=B(Ft(s,0),e.shape);return[i,o]}}function K1(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=Rm(n),s=ar(e),i=Ca([[1]],[1,1]),o=ar(i),l=n>=a?a:n;for(let u=0;u{let h=We(s,[u,u],[n-u,1]),m=Tu(h),f=We(s,[u,u],[1,1]),g=mn(Vn(f,0),Ca([[-1]]),Ca([[1]])),b=pe(f,z(g,m)),y=he(h,b);y.shape[0]===1?o=ar(i):o=Ze([i,We(y,[1,0],[y.shape[0]-1,y.shape[1]])],0);let x=yt(he(Ae(g,b),m)),w=We(s,[u,0],[n-u,a]),I=z(x,o),T=Ce(o);if(u===0)s=pe(w,Ae(I,Ae(T,w)));else{let A=pe(w,Ae(I,Ae(T,w)));s=Ze([We(s,[0,0],[u,a]),A],0)}let C=Ce(I),E=We(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(E,Ae(Ae(E,o),C));else{let A=pe(E,Ae(Ae(E,o),C));r=Ze([We(r,[0,0],[n,u]),A],1)}return[o,s,r]}),$e([p,d,c])}return!t&&n>a&&(r=We(r,[0,0],[n,a]),s=We(s,[0,0],[a,a])),[r,s]})}var OL=L({qr_:PL}),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 LL(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,ye(i)):o}}if(n===xn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return he(fe(s),ye(a.size));{let i=z(r,Yn(a.shape)),o=oe(fe(ii(i,ye(0))),"float32");return he(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Er=L({computeWeightedLoss_:LL});function zL(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")),In(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(pe(r,s));return Er(o,i,a)}var BL=L({absoluteDifference_:zL});function WL(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")),In(s.shape,i.shape,"Error in cosineDistance: ");let l=ye(1),u=pe(l,fe(z(s,i),n,!0));return Er(u,o,r)}var VL=L({cosineDistance_:WL});function UL(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")),In(r.shape,s.shape,"Error in hingeLoss: ");let o=ye(1);r=pe(z(ye(2),r),o);let l=Xe(pe(o,z(r,s)));return Er(l,i,a)}var GL=L({hingeLoss_:UL});function HL(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")),In(s.shape,i.shape,"Error in huberLoss: ");let l=ye(a),u=Lt(pe(i,s)),p=_u(u,l),d=pe(u,p),c=Y(z(ye(.5),ot(p)),z(l,d));return Er(c,o,r)}var jL=L({huberLoss_:HL});function qL(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")),In(s.shape,i.shape,"Error in logLoss: ");let l=ye(1),u=ye(a),p=yt(z(s,Qn(Y(i,u)))),d=z(pe(l,s),Qn(Y(pe(l,i),u))),c=pe(p,d);return Er(c,o,r)}var KL=L({logLoss_:qL});function XL(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")),In(r.shape,s.shape,"Error in meanSquaredError: ");let o=Ym(r,s);return Er(o,i,a)}var YL=L({meanSquaredError_:XL});function ZL(e,t){let n=_(e,"labels","sigmoidCrossEntropyWithLogits"),a=_(t,"logits","sigmoidCrossEntropyWithLogits");In(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Xe(a),s=z(a,n),i=$c(fn(yt(Lt(a))));return Y(pe(r,s),i)}function JL(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")),In(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=ye(a),p=ye(1),d=ye(.5);s=Y(z(s,pe(p,u)),z(d,u))}let l=ZL(s,i);return Er(l,o,r)}var QL=L({sigmoidCrossEntropy_:JL});function ez(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 ir((a,r,s)=>{let i=Lm(r,[n],!0),o=pe(oe(r,"float32"),i);s([a,o]);let l=yt(z(o,a));return{value:fe(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=si(u.shape,[n]);return[z(B(u,h),pe(oe(d,"float32"),fn(c))),z(B(u,h),pe(fn(c),oe(d,"float32")))]}}})(e,t)}function tz(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")),In(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=ye(a),p=ye(1),d=ye(s.shape[1]);s=Y(z(s,pe(p,u)),he(u,d))}let l=ez(s,i);return Er(l,o,r)}var nz=L({softmaxCrossEntropy_:tz});function az(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(dc,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var rz=L({sparseFillEmptyRows_:az});function sz(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(gu,i);return{outputIndices:o[0],outputShape:o[1]}}var iz=L({sparseReshape_:sz});function oz(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 L.runKernel(Ec,i)}var zz=z({sparseSegmentMean_:Lz});function Wz(e,t,n){let a=E(e,"data","sparseSegmentSum"),r=E(t,"indices","sparseSegmentSum","int32"),s=E(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(hc,i)}var lz=L({sparseSegmentMean_:oz});function uz(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 L.runKernel($c,i)}var Bz=z({sparseSegmentSum_:Wz});function Vz(e,t,n,a,r,s,i,o){let l=E(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=E(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=L.runKernel(Fc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var Uz=z({stringNGrams_:Vz});function Gz(e,t,n=!0){let a=E(e,"input","stringSplit","string"),r=E(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=L.runKernel(Dc,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var Hz=z({stringSplit_:Gz});function jz(e,t){let n=E(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 L.runKernel(Rc,r,a)}var qz=z({stringToHashBucketFast_:jz}),OS={fft:Qc,ifft:xl,rfft:ed,irfft:yf},LS={hammingWindow:SL,hannWindow:$S,frame:AS,stft:EL},Nr={flipLeftRight:DL,grayscaleToRGB:ML,resizeNearestNeighbor:PS,resizeBilinear:MS,rotateWithOffset:OL,cropAndResize:AL,nonMaxSuppression:zL,nonMaxSuppressionAsync:qL,nonMaxSuppressionWithScore:XL,nonMaxSuppressionWithScoreAsync:ZL,nonMaxSuppressionPadded:QL,nonMaxSuppressionPaddedAsync:tz,threshold:iz,transform:lz},ow={bandPart:pz,gramSchmidt:dz,qr:mz},zS={absoluteDifference:bz,computeWeightedLoss:Fr,cosineDistance:xz,hingeLoss:wz,huberLoss:Iz,logLoss:Sz,meanSquaredError:Cz,sigmoidCrossEntropy:$z,softmaxCrossEntropy:Dz},WS={sparseFillEmptyRows:Mz,sparseReshape:Oz,sparseSegmentMean:zz,sparseSegmentSum:Bz},BS={stringNGrams:Uz,stringSplit:Hz,stringToHashBucketFast:qz},Dr=class extends DT{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 Me(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 JT(e,t)}dispose(){this.iterations_!=null&&Me(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:ke(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(Dr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var Cf=class extends Dr{constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=L.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=L.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:O(()=>qe(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:O(()=>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;O(()=>{let l=Q(W(i,this.rho),W(lt(s),1-this.rho)),u=W(fe(ln(Q(o,this.epsilon)),ln(Q(i,this.epsilon))),s),p=Q(W(o,this.rho),W(lt(u),1-this.rho));i.assign(l),o.assign(p);let d=Q(W(u,-this.learningRate),a);a.assign(d)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Me(this.accumulatedGrads.map(e=>e.variable)),Me(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)}};Cf.className="Adadelta";xs(Cf);var _f=class extends Dr{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=L.registeredVariables[t];this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:O(()=>En(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;O(()=>{let i=Q(s,lt(r));s.assign(i);let o=Q(W(fe(r,ln(Q(i,L.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Me(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)}};_f.className="Adagrad";xs(_f);var Ef=class extends Dr{constructor(e,t,n,a=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],O(()=>{this.accBeta1=ke(t).variable(),this.accBeta2=ke(n).variable()}),a==null&&(this.epsilon=L.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);O(()=>{let n=ce(1,this.accBeta1),a=ce(1,this.accBeta2);t.forEach((r,s)=>{let i=L.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:O(()=>qe(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:O(()=>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=Q(W(u,this.beta1),W(l,1-this.beta1)),c=Q(W(p,this.beta2),W(lt(l),1-this.beta2)),h=fe(d,n),m=fe(c,a);u.assign(d),p.assign(c);let f=Q(W(fe(h,Q(ln(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(W(this.accBeta1,this.beta1)),this.accBeta2.assign(W(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Me(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&Me(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),O(()=>{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)}};Ef.className="Adam";xs(Ef);var $f=class extends Dr{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=[],O(()=>{this.iteration=ke(0).variable(),this.accBeta1=ke(t).variable()}),a==null&&(this.epsilon=L.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);O(()=>{let n=ce(1,this.accBeta1),a=fe(-this.learningRate,Q(W(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=L.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=Q(W(u,this.beta1),W(l,1-this.beta1)),c=W(p,this.beta2),h=Lt(l),m=fr(c,h);u.assign(d),p.assign(m);let f=Q(W(fe(a,n),fe(d,Q(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(Q(this.iteration,1)),this.accBeta1.assign(W(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Me(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&Me(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)}};$f.className="Adamax";xs($f);var td=class extends Dr{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=L.registeredVariables[t];O(()=>{let s=Q(W(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Qt(ke(-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)}};td.className="SGD";xs(td);var Af=class extends td{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=ke(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=L.registeredVariables[t];this.accumulations[n]==null&&(this.accumulations[n]={originalName:`${t}/momentum`,variable:O(()=>qe(a).variable(!1))});let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&O(()=>{let i,o=Q(W(this.m,r),s);this.useNesterov?i=Q(W(this.c,Q(s,W(o,this.m))),a):i=Q(W(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Me(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)}};Af.className="Momentum";xs(Af);var Ff=class extends Dr{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=L.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=L.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:O(()=>qe(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:O(()=>qe(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:O(()=>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;O(()=>{let l=Q(W(i,this.decay),W(lt(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=Q(W(u,this.decay),W(s,1-this.decay)),d=fe(W(s,this.learningRate),ln(ce(l,Q(lt(p),this.epsilon)))),c=Q(W(o,this.momentum),d);i.assign(l),u.assign(p),o.assign(c);let h=ce(a,c);a.assign(h)}else{let u=Q(W(i,this.decay),W(lt(s),1-this.decay)),p=Q(W(o,this.momentum),fe(W(s,this.learningRate),ln(Q(u,this.epsilon))));i.assign(u),o.assign(p);let d=ce(a,p);a.assign(d)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Me(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Me(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&Me(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)}};Ff.className="RMSProp";xs(Ff);var Kr=class{static sgd(e){return new td(e)}static momentum(e,t,n=!1){return new Af(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new Ff(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Ef(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new Cf(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new $f(e,t,n,a,r)}static adagrad(e,t=.1){return new _f(e,t)}},Ks={sgd:Kr.sgd,momentum:Kr.momentum,adadelta:Kr.adadelta,adagrad:Kr.adagrad,rmsprop:Kr.rmsprop,adamax:Kr.adamax,adam:Kr.adam},Kz=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function lw(){return new Promise(e=>Kz(()=>e()))}var C={};Fe(C,{ERF_A1:()=>uW,ERF_A2:()=>pW,ERF_A3:()=>cW,ERF_A4:()=>dW,ERF_A5:()=>hW,ERF_P:()=>lW,PARALLELIZE_THRESHOLD:()=>uw,RowPartitionType:()=>sr,SELU_SCALE:()=>US,SELU_SCALEALPHA:()=>VS,applyActivation:()=>Sf,assertAndGetBroadcastShape:()=>pt,assertAxesAreInnerMostDims:()=>tO,assertParamsConsistent:()=>Xz,assignToTypedArray:()=>xW,axesAreInnerMostDims:()=>Fv,calculateShapes:()=>IT,checkEinsumDimSizes:()=>SW,checkPadOnDimRoundingMode:()=>_n,combineLocations:()=>qT,combineRaggedTensorToTensorShapes:()=>Zz,complexWithEvenIndex:()=>gW,complexWithOddIndex:()=>bW,computeConv2DInfo:()=>Uc,computeConv3DInfo:()=>zT,computeDefaultPad:()=>hv,computeDilation2DInfo:()=>nP,computeOptimalWindowSize:()=>tW,computeOutAndReduceShapes:()=>KT,computeOutShape:()=>Yz,computePool2DInfo:()=>LT,computePool3DInfo:()=>aP,convertConv2DDataFormat:()=>WT,decodeEinsumEquation:()=>IW,eitherStridesOrDilationsAreOne:()=>mr,expandShapeToKeepDim:()=>mi,exponent:()=>wW,exponents:()=>vW,fromStringArrayToUint8:()=>jW,fromUint8ToStringArray:()=>HW,getAxesPermutation:()=>XT,getBroadcastDims:()=>vT,getComplexWithIndex:()=>yW,getEinsumComputePath:()=>NW,getEinsumPermutation:()=>TW,getFusedBiasGradient:()=>Tf,getFusedDyActivation:()=>If,getImageCenter:()=>nW,getInnerMostAxes:()=>nO,getPermuted:()=>rW,getRaggedRank:()=>Qz,getReductionAxes:()=>Wt,getReshaped:()=>aW,getReshapedPermuted:()=>sW,getRowPartitionTypesHelper:()=>Jz,getSliceBeginCoords:()=>iW,getSliceSize:()=>oW,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>$W,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>AW,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>FW,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>MW,getSparseReshapeInputOutputMismatchErrorMessage:()=>OW,getSparseReshapeInputOutputMultipleErrorMessage:()=>PW,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>DW,getSparseReshapeNegativeOutputDimErrorMessage:()=>RW,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>BW,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>LW,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>zW,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>WW,getUndoAxesPermutation:()=>Dv,isIdentityPermutation:()=>CW,log:()=>xD,mergeRealAndImagArrays:()=>mW,prepareAndValidate:()=>kT,prepareSplitSize:()=>EW,segment_util:()=>GS,shouldFuse:()=>Nf,slice_util:()=>qt,splitRealAndImagArrays:()=>fW,tupleValuesAreOne:()=>ss,upcastType:()=>ha,validateDefaultValueShape:()=>eW,validateInput:()=>nv,validateUpdateShape:()=>tv,warn:()=>Yr});function Xz(e,t){let n=e[0].length;e.forEach((r,s)=>{R(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),R(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 Yz(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 Jz(e){let t={FIRST_DIM_SIZE:sr.FIRST_DIM_SIZE,VALUE_ROWIDS:sr.VALUE_ROWIDS,ROW_LENGTHS:sr.ROW_LENGTHS,ROW_SPLITS:sr.ROW_SPLITS,ROW_LIMITS:sr.ROW_LIMITS,ROW_STARTS:sr.ROW_STARTS},n=[];for(let a of e)if(a in t)n.push(t[a]);else break;return n}function Qz(e){return e.length===0?0:e[0]===sr.FIRST_DIM_SIZE?e.length-1:e.length}function eW(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 uw=30;function tW(e){return e<=uw?e:Oh(e,Math.floor(Math.sqrt(e)))}function nW(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function aW(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 sW(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,bk=",",yk="...";function IW(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(kW,"").length)/Cy.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 ("${Cy}").`);let[a,r]=e.split(Cy);R(a.indexOf(yk)===-1,()=>`The ellipsis notation ("${yk}") is not supported yet.`);let s=a.split(bk),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 SW(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 NW(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 _W(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(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}R(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 $W(e){return`Received SparseTensor with denseShape[0] = 0 but - indices.shape[0] = ${e}`}function AW(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function FW(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 RW(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 PW(e,t){let n=bt(e),a=bt(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 OW(e,t){let n=bt(e),a=bt(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function LW(){return"segment ids must be >= 0"}function zW(){return"segment ids are not increasing"}function WW(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function BW(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var GS={};Fe(GS,{collectGatherOpShapeInfo:()=>GW,computeOutShape:()=>UW,segOpComputeOptimalWindowSize:()=>VW});function VW(e,t){let n=!1,a;for(e<=uw?(a=e,n=!0):a=Oh(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=Oh(e,a+1);return a}function UW(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(nUh(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function jW(e){return e.map(t=>Lc(t))}var gr={};Fe(gr,{nonMaxSuppressionV3Impl:()=>FS,nonMaxSuppressionV4Impl:()=>DS,nonMaxSuppressionV5Impl:()=>RS,whereImpl:()=>wS});var HS={kernelName:Al,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,To(le(n,"float32"),-1))}}},qW={kernelName:Fl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=lt(le(n,"float32")),r=ln(ce(ke(1),a));return vt(fe(e,r))}}}},KW={kernelName:Dl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ln(ce(lt(le(n,"float32")),1));return fe(e,a)}}}},XW={kernelName:ms,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=ye(s,i)),B(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=ye(s,i)),B(s,a.shape)}}}},YW={kernelName:Ii,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},ZW={kernelName:Ti,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},JW={kernelName:xc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},QW={kernelName:Pl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>fe(e,ln(ce(ke(1),lt(le(n,"float32")))))}}},eB={kernelName:Ol,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ln(Q(ke(1),lt(le(n,"float32"))));return fe(e,a)}}}},tB={kernelName:Wl,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=Q(lt(n),lt(a)),i=W(e,fe(a,s)),o=Wt(n.shape,r);return o.length>0&&(i=ye(i,o)),B(i,n.shape)},b:()=>{let s=Q(lt(n),lt(a)),i=vt(W(e,fe(n,s))),o=Wt(a.shape,r);return o.length>0&&(i=ye(i,o)),B(i,a.shape)}}}},nB={kernelName:Ll,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>fe(e,Q(lt(le(n,"float32")),1))}}},aB={kernelName:zl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>fe(e,ce(ke(1),lt(le(n,"float32"))))}}};function rB(e,t,n,a,r,s){let i=E(e,"dy","avgPool3dGrad"),o=E(t,"input","avgPool3dGrad"),l=i,u=o,p=!1;o.rank===4&&(p=!0,l=B(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=B(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),R(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),R(u.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`),_n("avgPool3dGrad",r,s);let d={dy:l,input:u},c={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=L.runKernel(ym,d,c);return p?B(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var sB=z({avgPool3dGrad_:rB}),iB={kernelName:vc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>sB(e,a,r,s,i,o)}}};function oB(e,t,n,a,r){let s=E(e,"dy","avgPoolGrad"),i=E(t,"input","avgPoolGrad");R(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=B(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=B(s,[1,s.shape[0],s.shape[1],s.shape[2]])),R(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),R(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=L.runKernel(bm,p,d);return u?B(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var lB=z({avgPoolGrad_:oB}),uB={kernelName:Si,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>lB(e,a,r,s,i)}}},pB={kernelName:Ni,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>Re(e,r,!1,!0),b:()=>Re(a,e,!0,!1)}:!s&&i?{a:()=>Re(e,r,!1,!1),b:()=>Re(e,a,!0,!1)}:s&&!i?{a:()=>Re(r,e,!1,!0),b:()=>Re(a,e,!1,!1)}:{a:()=>Re(r,e,!0,!0),b:()=>Re(e,a,!0,!0)}}},cB={kernelName:Bl,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Yc(e,a,r)}}},dB={kernelName:jI,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:()=>ye(e,o,!0)}}},hB={kernelName:Ci,gradFunc:e=>({x:()=>e.clone()})},mB={kernelName:_i,gradFunc:e=>({x:()=>qe(e)})},fB={kernelName:fs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>fn(_a(ks(a,r),Is(a,s)),e,qe(e))}}},gB={kernelName:wc,inputsToSave:["x"],gradFunc:HS.gradFunc},bB={kernelName:Vl,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=Ea(r,t[0].shape)[0],i=a.map(o=>o[s]);return Vn(e,i,s).map(o=>()=>o)}},yB={kernelName:Ei,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return R(ss(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>Tv(a.shape,e,r,i,o,l),filter:()=>sw(a,e,r.shape,i,o,l)}}},xB={kernelName:$i,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Dt(e,r,s,i,o,1,l),filter:()=>sw(e,a,r.shape,s,i,o,l)}}};function vB(e,t,n,a,r){let s=e;e.rank===4&&(s=B(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=B(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),R(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),R(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),R(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),R(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),R(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 L.runKernel(Im,o,l)}var wB=z({conv3DBackpropFilter_:vB}),kB={kernelName:kc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;R(ss(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:()=>UT(i.shape,e,o,r,s),filter:()=>wB(i,e,o.shape,r,s)}}},IB={kernelName:Ai,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(vt(ff(le(n,"float32"))),e)}}},TB={kernelName:Fi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(gf(le(n,"float32")),e)}}},SB={kernelName:Di,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=XT([r],a.rank),l=tf(e,r,s,!i);return o!=null&&(l=Ae(l,o)),l}}}},NB={kernelName:Ri,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;R(ss(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,u]=t;return R(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),R(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`),R(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]}.`),R(mr(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),_n("depthwiseConv2d",s,i),{x:()=>ES(l.shape,e,u,r,s,o,i),filter:()=>_S(l,e,u.shape,r,s,o,i)}}},CB={kernelName:Ic,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:()=>L.runKernel(Lh,s,n),filter:()=>L.runKernel(zh,i,n)}}},_B={kernelName:Pi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>L.runKernel($m,a)}}},EB={kernelName:jl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=W(gn(vt(lt(n))),2/Math.sqrt(Math.PI));return{x:()=>W(e,a)}}},$B={kernelName:Oi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n)}}},AB={kernelName:Kl,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>B(e,n.shape)}}},FB={kernelName:Xl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,gn(n))}}},DB={kernelName:Li,gradFunc:e=>({x:()=>qe(e)})},RB={kernelName:zi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=fe(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?B(ye(s,i),n.shape):s},b:()=>{let s=W(e,le(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=B(ye(s,i),a.shape));let o=lt(a);return vt(fe(s,le(o,"float32")))}}}},MB={kernelName:Wi,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?ke(1):o,u=Wt(s.shape,r.shape),p=[];if(s.rank===1){for(let f=0;fs.rank===1?B(W(W(e,Wn(B(h,[1,1,1,s.shape[0]]),p)),l),r.shape):B(W(W(e,h),l),r.shape),mean:()=>{let f=W(W(h,ke(-1)),c);return s.rank===1&&(f=ye(f,u)),B(f,s.shape)},variance:()=>{let f=W(W(m,d),c);return s.rank===1&&(f=ye(f,u)),B(f,s.shape)},scale:()=>{let f=W(d,h),g=W(e,f);return s.rank===1&&(g=ye(g,u)),B(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=ye(f,u)),B(f,s.shape)}}}},PB={kernelName:Zl,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=Ea(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=xk(0,p),m=xk(p+1,p+1+c),f=vk([u,[l],d]),g=B(e,f),b=B(r,[l]),y=vk([[p],h,m]),x=Ae(g,y),w=wf(x,b,a.shape[i]),I=Dv(y);return w=Ae(w,I),w},indices:()=>r}}};function xk(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>qe(n),b:()=>qe(a)}}},LB={kernelName:Vi,gradFunc:e=>({x:()=>le(e,"float32")})},zB={kernelName:eu,gradFunc:e=>({x:()=>qe(e)})},WB={kernelName:tu,gradFunc:e=>({x:()=>qe(e)})},BB={kernelName:nu,gradFunc:e=>({x:()=>qe(e)})},VB={kernelName:Ui,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=jn(a,0);return{x:()=>fn(s,e,W(e,r))}}},UB={kernelName:su,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>fe(e,Q(n,1))}}},GB={kernelName:Gi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>fe(e,le(n,"float32"))}}},HB={kernelName:KI,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=gn(a);return ce(e,W(ye(e,r,!0),s))}}}};function jB(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 L.runKernel(Mm,o,l)}var qB=z({localResponseNormalizationBackprop_:jB}),KB={kernelName:Sc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>qB(a,r,e,s,i,o,l)}}};function jS(e,t,n,a){return t.rankW(e,le(Qn(n,t),e.dtype))}}var wk={kernelName:Hi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=Ea(r,s.shape),l=jS(e,i,s,o);return{x:()=>l.x()}}},XB={kernelName:ji,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>W(e,le(ks(n,a),"float32")),b:()=>W(e,le(af(n,a),"float32"))}}};function YB(e,t,n,a,r,s,i){let o=E(e,"dy","maxPool3dGrad"),l=E(t,"input","maxPool3dGrad"),u=E(n,"output","maxPool3dGrad"),p=o,d=l,c=u,h=!1;l.rank===4&&(h=!0,p=B(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),d=B(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),c=B(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),R(p.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${p.rank}.`),R(d.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${d.rank}.`),R(c.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${c.rank}.`),_n("maxPool3dGrad",s,i);let m={dy:p,input:d,output:c},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=L.runKernel(Om,m,f);return h?B(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var ZB=z({maxPool3dGrad_:YB}),JB={kernelName:Nc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>ZB(e,a,r,s,i,o,l)}}};function QB(e,t,n,a,r,s,i){let o=E(e,"dy","maxPoolGrad"),l=E(t,"input","maxPoolGrad"),u=E(n,"output","maxPoolGrad");R(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),R(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),R(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),_n("maxPoolGrad",s,i);let p={dy:o,input:l,output:u},d={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return L.runKernel(Pm,p,d)}var e4=z({maxPoolGrad_:QB}),t4={kernelName:qi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>e4(e,a,r,s,i,o)}}},n4={kernelName:Ki,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=Ea(r,a.shape),i=KT(a.shape,s)[1],o=bt(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=B(e,l);return fe(W(u,Jn(a.shape,"float32")),o)}}}},a4={kernelName:Xi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=Ea(r,s.shape),l=jS(e,i,s,o);return{x:()=>l.x()}}},r4={kernelName:Yi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>W(e,le(Is(n,a),"float32")),b:()=>W(e,le(jn(n,a),"float32"))}}},s4={kernelName:Zi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>He(e,s,a.shape)}}},i4={kernelName:uu,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=Wt(n.shape,r);return s.length>0?B(ye(e,s),n.shape):e},b:()=>{let s=W(e,vt(Lu(fe(n,a)))),i=Wt(a.shape,r);return i.length>0?B(ye(s,i),a.shape):s}}}},o4={kernelName:Ji,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=W(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?B(ye(s,i),n.shape):s},b:()=>{let s=W(e,le(n,"float32")),i=Wt(a.shape,r);return i.length>0?B(ye(s,i),a.shape):s}}}},l4={kernelName:pu,gradFunc:e=>({x:()=>vt(e)})},u4={kernelName:Qi,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>It(n.shape,"float32")}}},p4={kernelName:fu,gradFunc:e=>({x:()=>qe(e)})},c4={kernelName:gu,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return mt(e,a).map(r=>()=>r)}},kk={kernelName:eo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>He(e,s,a.shape)}}},d4={kernelName:to,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=pt(s.shape,i.shape);return{a:()=>{let l=le(i,"float32"),u=W(e,W(l,Ar(s,ce(l,ke(1))))),p=Wt(s.shape,o);return p.length>0&&(u=ye(u,p)),B(u,s.shape)},b:()=>{let l=jn(s,0),u=fn(l,ea(s),qe(s)),p=W(e,W(r,u)),d=Wt(i.shape,o);return d.length>0&&(p=ye(p,d)),B(p,i.shape)}}}},h4={kernelName:no,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=jn(n,0);return{x:()=>fn(r,e,W(e,a)),alpha:()=>{let s=fn(r,qe(e),W(e,n)),i=Wt(a.shape,e.shape);return i.length>0&&(s=ye(s,i)),B(s,a.shape)}}}};function m4(e,t,n){let a=e.shape.slice();a[n]=1;let r=B(t,a),s=oc(e,n,!0,!1),i=oc(e,n,!0,!0),o=W(s,i);return W(r,o)}function f4(e,t,n){let a=e.shape.length,r=a-n.length,s=C.getAxesPermutation(n,a),i=e;s!=null&&(i=Ae(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=m4(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=C.getUndoAxesPermutation(s);p=Ae(p,d)}return p}var g4={kernelName:ao,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:()=>f4(a,e,s)}}},b4={kernelName:Mi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=fe(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?B(ye(s,i),n.shape):s},b:()=>{let s=W(e,le(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=B(ye(s,i),a.shape));let o=lt(a);return vt(fe(s,le(o,"float32")))}}}},y4={kernelName:bu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>fe(e,vt(lt(n)))}}},x4={kernelName:oo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=W(Is(n,6),To(n));return{x:()=>W(e,le(a,"float32"))}}},v4={kernelName:ro,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,le(To(n),"float32"))}}},w4={kernelName:yu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,n.shape)}}},k4={kernelName:io,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>L.runKernel(Um,r,n)}}},I4={kernelName:so,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>L.runKernel(Vm,r,n)}}},T4={kernelName:lo,gradFunc:(e,t,n)=>{let{dims:a}=n,r=Ea(a,e.shape);return{x:()=>fa(e,r)}}},S4={kernelName:uo,gradFunc:e=>({x:()=>qe(e)})},N4={kernelName:po,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>vt(fe(e,W(Ar(n,1.5),2)))}}},C4={kernelName:vu,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>le(qe(n),"float32"),t:()=>W(e,le(n,e.dtype)),e:()=>W(e,le(Kc(n),e.dtype))}}},_4={kernelName:wu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=jn(n,ke(0)),r=ke(VS),s=ke(US),i=W(e,s),o=W(W(e,r),gn(le(n,"float32")));return fn(a,i,o)}}}},E4={kernelName:ho,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,W(n,ce(ke(1),n)))}}},$4={kernelName:Tu,gradFunc:e=>({x:()=>qe(e)})},A4={kernelName:co,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(Hc(le(n,"float32")),e)}}},F4={kernelName:Iu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(ef(le(n,"float32")),e)}}},D4={kernelName:ku,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=FT(a,r,s),u=[];for(let p=0;pba(e,u)}}},R4={kernelName:go,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=W(e,a);return{logits:()=>ce(i,W(ye(i,[r],s),a))}}},M4={kernelName:Su,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,da(n))}}},Ik={kernelName:Nu,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>Gc(e,a,r)}}},Tk={kernelName:Cu,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Qe(e,a)}}},P4={kernelName:mo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>fe(e,W(ln(le(n,"float32")),2))}}},O4={kernelName:Ac,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,W(le(n,"float32"),2))}}},L4={kernelName:bo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ke(2);return{a:()=>W(e,W(r,ce(n,a))),b:()=>W(e,W(r,ce(a,n)))}}},z4={kernelName:bs,gradFunc:e=>({x:()=>qe(e)})},W4={kernelName:yo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=pt(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=ye(s,i)),B(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=ye(s,i)),B(vt(s),a.shape)}}}},B4={kernelName:fo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;Ea(s,a.shape).forEach(l=>{r[l]=1});let i=B(e,r),o=W(i,Jn(a.shape,"float32"));return{x:()=>o}}},V4={kernelName:xo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>fe(e,lt(Hc(n)))}}},U4={kernelName:vo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(ce(ke(1),lt(n)),e)}}},G4={kernelName:gs,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=Dv(r);return{x:()=>Ae(e,s)}}},j4={kernelName:Fu,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Rt(e,r)}}},q4={kernelName:Mc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>K4(e,n)}}};function K4(e,t){let n=fr(t,qe(t)),a=zu(e,n),r=ks(t,ke(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>qe(e)})},Y4=[HS,qW,KW,XW,YW,ZW,JW,QW,eB,tB,nB,aB,iB,uB,pB,cB,dB,hB,mB,fB,gB,bB,xB,yB,kB,IB,TB,SB,NB,CB,b4,_B,EB,$B,AB,FB,RB,DB,MB,PB,OB,LB,zB,WB,BB,VB,UB,GB,HB,KB,wk,wk,XB,JB,t4,n4,a4,r4,s4,i4,o4,l4,u4,p4,c4,kk,kk,d4,h4,g4,y4,x4,v4,w4,k4,I4,T4,S4,N4,C4,_4,E4,$4,A4,F4,D4,R4,M4,Ik,Ik,Tk,Tk,P4,L4,O4,z4,W4,B4,V4,U4,G4,H4,j4,q4,X4];for(let e of Y4)XI(e);ne().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};ne().prototype.acos=function(){return this.throwIfDisposed(),sv(this)};ne().prototype.acosh=function(){return this.throwIfDisposed(),iv(this)};ne().prototype.add=function(e){return this.throwIfDisposed(),Q(this,e)};ne().prototype.all=function(e,t){return this.throwIfDisposed(),Zm(this,e,t)};ne().prototype.any=function(e,t){return this.throwIfDisposed(),ic(this,e,t)};ne().prototype.argMax=function(e){return this.throwIfDisposed(),di(this,e)};ne().prototype.argMin=function(e){return this.throwIfDisposed(),ov(this,e)};ne().prototype.asScalar=function(){return this.throwIfDisposed(),R(this.size===1,()=>"The array must have only 1 element."),B(this,[])};ne().prototype.asType=function(e){return this.throwIfDisposed(),le(this,e)};ne().prototype.as1D=function(){return this.throwIfDisposed(),B(this,[this.size])};ne().prototype.as2D=function(e,t){return this.throwIfDisposed(),B(this,[e,t])};ne().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),B(this,[e,t,n])};ne().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),B(this,[e,t,n,a])};ne().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),B(this,[e,t,n,a,r])};ne().prototype.asin=function(){return this.throwIfDisposed(),lv(this)};ne().prototype.asinh=function(){return this.throwIfDisposed(),uv(this)};ne().prototype.atan=function(){return this.throwIfDisposed(),pv(this)};ne().prototype.atan2=function(e){return this.throwIfDisposed(),cv(this,e)};ne().prototype.atanh=function(){return this.throwIfDisposed(),dv(this)};ne().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),ga(this,e,t,n,a)};ne().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Gc(this,e,t)};ne().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),vs(this,e,t,n,a,r)};ne().prototype.broadcastTo=function(e){return this.throwIfDisposed(),ai(this,e)};ne().prototype.cast=function(e){return this.throwIfDisposed(),le(this,e)};ne().prototype.ceil=function(){return this.throwIfDisposed(),xv(this)};ne().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),tn(this,e,t)};ne().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof $e&&(e=[e]),Qe([this,...e],t)};ne().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Jm(this,e,t,n,a,r,s)};ne().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),Qm(this,e,t,n,a,r)};ne().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Dt(this,e,t,n,a,r,s)};ne().prototype.cos=function(){return this.throwIfDisposed(),Hc(this)};ne().prototype.cosh=function(){return this.throwIfDisposed(),ef(this)};ne().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),oc(this,e,t,n)};ne().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),tf(this,e,t,n)};ne().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),Cv(this,e,t)};ne().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),ws(this,e,t,n,a,r,s)};ne().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),_v(this,e,t,n,a,r)};ne().prototype.divNoNan=function(e){return this.throwIfDisposed(),Ev(this,e)};ne().prototype.div=function(e){return this.throwIfDisposed(),fe(this,e)};ne().prototype.dot=function(e){return this.throwIfDisposed(),$v(this,e)};ne().prototype.elu=function(){return this.throwIfDisposed(),Pu(this)};ne().prototype.equal=function(e){return this.throwIfDisposed(),Qn(this,e)};ne().prototype.erf=function(){return this.throwIfDisposed(),Av(this)};ne().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),Rv(this,e,t)};ne().prototype.exp=function(){return this.throwIfDisposed(),gn(this)};ne().prototype.expandDims=function(e){return this.throwIfDisposed(),mn(this,e)};ne().prototype.expm1=function(){return this.throwIfDisposed(),Mv(this)};ne().prototype.fft=function(){return this.throwIfDisposed(),Qc(this)};ne().prototype.flatten=function(){return this.throwIfDisposed(),B(this,[this.size])};ne().prototype.floor=function(){return this.throwIfDisposed(),Lu(this)};ne().prototype.floorDiv=function(e){return this.throwIfDisposed(),Ym(this,e)};ne().prototype.gather=function(e,t){return this.throwIfDisposed(),zu(this,e,t)};ne().prototype.greaterEqual=function(e){return this.throwIfDisposed(),ks(this,e)};ne().prototype.greater=function(e){return this.throwIfDisposed(),jn(this,e)};ne().prototype.ifft=function(){return this.throwIfDisposed(),xl(this)};ne().prototype.irfft=function(){return this.throwIfDisposed(),yf(this)};ne().prototype.isFinite=function(){return this.throwIfDisposed(),Pv(this)};ne().prototype.isInf=function(){return this.throwIfDisposed(),Ov(this)};ne().prototype.isNaN=function(){return this.throwIfDisposed(),Lv(this)};ne().prototype.leakyRelu=function(e){return this.throwIfDisposed(),jc(this,e)};ne().prototype.lessEqual=function(e){return this.throwIfDisposed(),Is(this,e)};ne().prototype.less=function(e){return this.throwIfDisposed(),af(this,e)};ne().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),zv(this,e,t,n,a)};ne().prototype.logSigmoid=function(){return this.throwIfDisposed(),Wv(this)};ne().prototype.logSoftmax=function(e){return this.throwIfDisposed(),sf(this,e)};ne().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),of(this,e,t)};ne().prototype.log=function(){return this.throwIfDisposed(),ea(this)};ne().prototype.log1p=function(){return this.throwIfDisposed(),qc(this)};ne().prototype.logicalAnd=function(e){return this.throwIfDisposed(),_a(this,e)};ne().prototype.logicalNot=function(){return this.throwIfDisposed(),Kc(this)};ne().prototype.logicalOr=function(e){return this.throwIfDisposed(),lf(this,e)};ne().prototype.logicalXor=function(e){return this.throwIfDisposed(),Bv(this,e)};ne().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),Re(this,e,t,n)};ne().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Mt(this,e,t,n,a)};ne().prototype.max=function(e,t){return this.throwIfDisposed(),Na(this,e,t)};ne().prototype.maximum=function(e){return this.throwIfDisposed(),fr(this,e)};ne().prototype.mean=function(e,t){return this.throwIfDisposed(),_t(this,e,t)};ne().prototype.min=function(e,t){return this.throwIfDisposed(),lc(this,e,t)};ne().prototype.minimum=function(e){return this.throwIfDisposed(),Wu(this,e)};ne().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Uv(this,e,t)};ne().prototype.mod=function(e){return this.throwIfDisposed(),Gv(this,e)};ne().prototype.mul=function(e){return this.throwIfDisposed(),W(this,e)};ne().prototype.neg=function(){return this.throwIfDisposed(),vt(this)};ne().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Ou(this,e,t,n)};ne().prototype.notEqual=function(e){return this.throwIfDisposed(),fi(this,e)};ne().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),fl(this,e,t,n)};ne().prototype.onesLike=function(){return this.throwIfDisposed(),ta(this)};ne().prototype.pad=function(e,t){return this.throwIfDisposed(),ba(this,e,t)};ne().prototype.pool=function(e,t,n,a,r,s){return this.throwIfDisposed(),Hv(this,e,t,n,a,r,s)};ne().prototype.pow=function(e){return this.throwIfDisposed(),Ar(this,e)};ne().prototype.prelu=function(e){return this.throwIfDisposed(),Zc(this,e)};ne().prototype.prod=function(e,t){return this.throwIfDisposed(),jv(this,e,t)};ne().prototype.reciprocal=function(){return this.throwIfDisposed(),Xv(this)};ne().prototype.relu=function(){return this.throwIfDisposed(),Xe(this)};ne().prototype.relu6=function(){return this.throwIfDisposed(),cf(this)};ne().prototype.reshapeAs=function(e){return this.throwIfDisposed(),B(this,e.shape)};ne().prototype.reshape=function(e){return this.throwIfDisposed(),B(this,e)};ne().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),MS(this,e,t,n)};ne().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),PS(this,e,t,n)};ne().prototype.reverse=function(e){return this.throwIfDisposed(),fa(this,e)};ne().prototype.rfft=function(){return this.throwIfDisposed(),ed(this)};ne().prototype.round=function(){return this.throwIfDisposed(),df(this)};ne().prototype.rsqrt=function(){return this.throwIfDisposed(),hf(this)};ne().prototype.selu=function(){return this.throwIfDisposed(),mf(this)};ne().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Ts(this,e,t,n,a,r,s)};ne().prototype.sigmoid=function(){return this.throwIfDisposed(),da(this)};ne().prototype.sign=function(){return this.throwIfDisposed(),Yv(this)};ne().prototype.sin=function(){return this.throwIfDisposed(),ff(this)};ne().prototype.sinh=function(){return this.throwIfDisposed(),gf(this)};ne().prototype.slice=function(e,t){return this.throwIfDisposed(),He(this,e,t)};ne().prototype.softmax=function(e){return this.throwIfDisposed(),Qa(this,e)};ne().prototype.softplus=function(){return this.throwIfDisposed(),ko(this)};ne().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Yc(this,e,t)};ne().prototype.split=function(e,t){return this.throwIfDisposed(),Vn(this,e,t)};ne().prototype.sqrt=function(){return this.throwIfDisposed(),ln(this)};ne().prototype.square=function(){return this.throwIfDisposed(),lt(this)};ne().prototype.squaredDifference=function(e){return this.throwIfDisposed(),xf(this,e)};ne().prototype.squeeze=function(e){return this.throwIfDisposed(),Ss(this,e)};ne().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof $e?[this,e]:[this,...e];return Rt(n,t)};ne().prototype.step=function(e){return this.throwIfDisposed(),To(this,e)};ne().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),Zv(this,e,t,n,a,r,s,i,o)};ne().prototype.sub=function(e){return this.throwIfDisposed(),ce(this,e)};ne().prototype.sum=function(e,t){return this.throwIfDisposed(),ye(this,e,t)};ne().prototype.tan=function(){return this.throwIfDisposed(),Jv(this)};ne().prototype.tanh=function(){return this.throwIfDisposed(),hi(this)};ne().prototype.tile=function(e){return this.throwIfDisposed(),Wn(this,e)};ne().prototype.toBool=function(){return this.throwIfDisposed(),le(this,"bool")};ne().prototype.toFloat=function(){return this.throwIfDisposed(),le(this,"float32")};ne().prototype.toInt=function(){return this.throwIfDisposed(),le(this,"int32")};ne().prototype.topk=function(e,t){return this.throwIfDisposed(),Qv(this,e,t)};ne().prototype.transpose=function(e){return this.throwIfDisposed(),Ae(this,e)};ne().prototype.unique=function(e){return this.throwIfDisposed(),ew(this,e)};ne().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),wf(this,e,t)};ne().prototype.unstack=function(e){return this.throwIfDisposed(),mt(this,e)};ne().prototype.where=function(e,t){return this.throwIfDisposed(),fn(e,this,t)};ne().prototype.zerosLike=function(){return this.throwIfDisposed(),qe(this)};var kr=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,kr.prototype)}},Ha=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Ha.prototype)}},H=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,H.prototype)}},Pe=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Pe.prototype)}},qS=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,qS.prototype)}},KS=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 wa={};function pw(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Qy(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Qy(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:Qy(a))}}}function nd(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 wa)i=wa[s];else if(i=t[s],i==null)throw new H(`Unknown ${a}: ${e}. This may be due to one of the following reasons: + ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(mc,i)}var pz=L({sparseSegmentSum_:uz});function cz(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(gc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var dz=L({stringNGrams_:cz});function hz(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(bc,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var mz=L({stringSplit_:hz});function fz(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(yc,r,a)}var gz=L({stringToHashBucketFast_:fz}),vT={fft:Oc,ifft:ol,rfft:Lc,irfft:Xm},wT={hammingWindow:K3,hannWindow:hT,frame:mT,stft:J3},Ir={flipLeftRight:nL,grayscaleToRGB:rL,resizeNearestNeighbor:xT,resizeBilinear:yT,rotateWithOffset:iL,cropAndResize:eL,nonMaxSuppression:lL,nonMaxSuppressionAsync:gL,nonMaxSuppressionWithScore:yL,nonMaxSuppressionWithScoreAsync:vL,nonMaxSuppressionPadded:kL,nonMaxSuppressionPaddedAsync:SL,threshold:EL,transform:$L},Wv={bandPart:DL,gramSchmidt:ML,qr:OL},kT={absoluteDifference:BL,computeWeightedLoss:Er,cosineDistance:VL,hingeLoss:GL,huberLoss:jL,logLoss:KL,meanSquaredError:YL,sigmoidCrossEntropy:QL,softmaxCrossEntropy:nz},IT={sparseFillEmptyRows:rz,sparseReshape:iz,sparseSegmentMean:lz,sparseSegmentSum:pz},ST={stringNGrams:dz,stringSplit:mz,stringToHashBucketFast:gz},Ar=class extends fS{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 RS(e,t)}dispose(){this.iterations_!=null&&$e(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:ye(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 rf=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(()=>je(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:P(()=>je(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(on(Y(o,this.epsilon)),on(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)}};rf.className="Adadelta";fs(rf);var sf=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,on(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)}};sf.className="Adagrad";fs(sf);var of=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=ye(t).variable(),this.accBeta2=ye(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(()=>je(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:P(()=>je(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(on(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)}};of.className="Adam";fs(of);var lf=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=ye(0).variable(),this.accBeta1=ye(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:je(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:je(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=ur(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)}};lf.className="Adamax";fs(lf);var zc=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=Zt(ye(-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)}};zc.className="SGD";fs(zc);var uf=class extends zc{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=ye(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(()=>je(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)}};uf.className="Momentum";fs(uf);var pf=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(()=>je(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:P(()=>je(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:P(()=>je(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),on(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),on(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)}};pf.className="RMSProp";fs(pf);var Gr=class{static sgd(e){return new zc(e)}static momentum(e,t,n=!1){return new uf(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new pf(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new of(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new rf(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new lf(e,t,n,a,r)}static adagrad(e,t=.1){return new sf(e,t)}},zs={sgd:Gr.sgd,momentum:Gr.momentum,adadelta:Gr.adadelta,adagrad:Gr.adagrad,rmsprop:Gr.rmsprop,adamax:Gr.adamax,adam:Gr.adam},bz=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Vv(){return new Promise(e=>bz(()=>e()))}var N={};_e(N,{ERF_A1:()=>Fz,ERF_A2:()=>Dz,ERF_A3:()=>Rz,ERF_A4:()=>Mz,ERF_A5:()=>Pz,ERF_P:()=>$z,PARALLELIZE_THRESHOLD:()=>Uv,RowPartitionType:()=>Qa,SELU_SCALE:()=>NT,SELU_SCALEALPHA:()=>TT,applyActivation:()=>nf,assertAndGetBroadcastShape:()=>lt,assertAxesAreInnerMostDims:()=>IP,assertParamsConsistent:()=>yz,assignToTypedArray:()=>Vz,axesAreInnerMostDims:()=>dv,calculateShapes:()=>sS,checkEinsumDimSizes:()=>Kz,checkPadOnDimRoundingMode:()=>Sn,combineLocations:()=>ES,combineRaggedTensorToTensorShapes:()=>vz,complexWithEvenIndex:()=>zz,complexWithOddIndex:()=>Bz,computeConv2DInfo:()=>Cc,computeConv3DInfo:()=>wS,computeDefaultPad:()=>qx,computeDilation2DInfo:()=>SM,computeOptimalWindowSize:()=>Sz,computeOutAndReduceShapes:()=>AS,computeOutShape:()=>xz,computePool2DInfo:()=>vS,computePool3DInfo:()=>TM,convertConv2DDataFormat:()=>kS,decodeEinsumEquation:()=>jz,eitherStridesOrDilationsAreOne:()=>lr,expandShapeToKeepDim:()=>si,exponent:()=>Gz,exponents:()=>Uz,fromStringArrayToUint8:()=>fB,fromUint8ToStringArray:()=>mB,getAxesPermutation:()=>$S,getBroadcastDims:()=>nS,getComplexWithIndex:()=>Wz,getEinsumComputePath:()=>Xz,getEinsumPermutation:()=>qz,getFusedBiasGradient:()=>tf,getFusedDyActivation:()=>ef,getImageCenter:()=>Tz,getInnerMostAxes:()=>SP,getPermuted:()=>Cz,getRaggedRank:()=>kz,getReductionAxes:()=>Bt,getReshaped:()=>Nz,getReshapedPermuted:()=>_z,getRowPartitionTypesHelper:()=>wz,getSliceBeginCoords:()=>Ez,getSliceSize:()=>Az,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>Qz,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>eB,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>tB,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>rB,getSparseReshapeInputOutputMismatchErrorMessage:()=>iB,getSparseReshapeInputOutputMultipleErrorMessage:()=>sB,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>nB,getSparseReshapeNegativeOutputDimErrorMessage:()=>aB,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>pB,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>oB,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>lB,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>uB,getUndoAxesPermutation:()=>hv,isIdentityPermutation:()=>Yz,log:()=>WF,mergeRealAndImagArrays:()=>Oz,prepareAndValidate:()=>rS,prepareSplitSize:()=>Jz,segment_util:()=>CT,shouldFuse:()=>af,slice_util:()=>jt,splitRealAndImagArrays:()=>Lz,tupleValuesAreOne:()=>ts,upcastType:()=>ha,validateDefaultValueShape:()=>Iz,validateInput:()=>Px,validateUpdateShape:()=>Mx,warn:()=>jr});function yz(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 xz(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 wz(e){let t={FIRST_DIM_SIZE:Qa.FIRST_DIM_SIZE,VALUE_ROWIDS:Qa.VALUE_ROWIDS,ROW_LENGTHS:Qa.ROW_LENGTHS,ROW_SPLITS:Qa.ROW_SPLITS,ROW_LIMITS:Qa.ROW_LIMITS,ROW_STARTS:Qa.ROW_STARTS},n=[];for(let a of e)if(a in t)n.push(t[a]);else break;return n}function kz(e){return e.length===0?0:e[0]===Qa.FIRST_DIM_SIZE?e.length-1:e.length}function Iz(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 Uv=30;function Sz(e){return e<=Uv?e:mh(e,Math.floor(Math.sqrt(e)))}function Tz(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function Nz(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 _z(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,X1=",",Y1="...";function jz(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(Hz,"").length)/oy.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 ("${oy}").`);let[a,r]=e.split(oy);$(a.indexOf(Y1)===-1,()=>`The ellipsis notation ("${Y1}") is not supported yet.`);let s=a.split(X1),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 Kz(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 Xz(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 Zz(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 Qz(e){return`Received SparseTensor with denseShape[0] = 0 but + indices.shape[0] = ${e}`}function eB(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function tB(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function nB(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function aB(e,t){return`size ${e} must be non-negative, not ${t}`}function rB(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function sB(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 iB(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 oB(){return"segment ids must be >= 0"}function lB(){return"segment ids are not increasing"}function uB(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function pB(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var CT={};_e(CT,{collectGatherOpShapeInfo:()=>hB,computeOutShape:()=>dB,segOpComputeOptimalWindowSize:()=>cB});function cB(e,t){let n=!1,a;for(e<=Uv?(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 dB(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 fB(e){return e.map(t=>kc(t))}var pr={};_e(pr,{nonMaxSuppressionV3Impl:()=>fT,nonMaxSuppressionV4Impl:()=>gT,nonMaxSuppressionV5Impl:()=>bT,whereImpl:()=>rT});var _T={kernelName:xl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,fo(oe(n,"float32"),-1))}}},gB={kernelName:vl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ot(oe(n,"float32")),r=on(pe(ye(1),a));return yt(he(e,r))}}}},bB={kernelName:wl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=on(pe(ot(oe(n,"float32")),1));return he(e,a)}}}},yB={kernelName:ps,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=e,i=Bt(n.shape,r);return i.length>0&&(s=fe(s,i)),B(s,n.shape)},b:()=>{let s=e,i=Bt(a.shape,r);return i.length>0&&(s=fe(s,i)),B(s,a.shape)}}}},xB={kernelName:mi,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},vB={kernelName:fi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>je(n)}}},wB={kernelName:ac,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>je(n)}}},kB={kernelName:Sl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,on(pe(ye(1),ot(oe(n,"float32")))))}}},IB={kernelName:Tl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=on(Y(ye(1),ot(oe(n,"float32"))));return he(e,a)}}}},SB={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=Bt(n.shape,r);return o.length>0&&(i=fe(i,o)),B(i,n.shape)},b:()=>{let s=Y(ot(n),ot(a)),i=yt(z(e,he(n,s))),o=Bt(a.shape,r);return o.length>0&&(i=fe(i,o)),B(i,a.shape)}}}},TB={kernelName:Nl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,Y(ot(oe(n,"float32")),1))}}},NB={kernelName:Cl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pe(ye(1),ot(oe(n,"float32"))))}}};function CB(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=B(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=B(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}.`),Sn("avgPool3dGrad",r,s);let d={dy:l,input:u},c={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=O.runKernel(Xh,d,c);return p?B(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var _B=L({avgPool3dGrad_:CB}),EB={kernelName:rc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>_B(e,a,r,s,i,o)}}};function AB(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=B(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=B(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(Kh,p,d);return u?B(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var $B=L({avgPoolGrad_:AB}),FB={kernelName:gi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>$B(e,a,r,s,i)}}},DB={kernelName:bi,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>Ae(e,r,!1,!0),b:()=>Ae(a,e,!0,!1)}:!s&&i?{a:()=>Ae(e,r,!1,!1),b:()=>Ae(e,a,!0,!1)}:s&&!i?{a:()=>Ae(r,e,!1,!0),b:()=>Ae(a,e,!1,!1)}:{a:()=>Ae(r,e,!0,!0),b:()=>Ae(e,a,!0,!0)}}},RB={kernelName:El,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Rc(e,a,r)}}},MB={kernelName:NI,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)}}},PB={kernelName:yi,gradFunc:e=>({x:()=>e.clone()})},OB={kernelName:xi,gradFunc:e=>({x:()=>je(e)})},LB={kernelName:cs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>mn(_a(ys(a,r),xs(a,s)),e,je(e))}}},zB={kernelName:sc,inputsToSave:["x"],gradFunc:_T.gradFunc},BB={kernelName:Al,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=Ea(r,t[0].shape)[0],i=a.map(o=>o[s]);return Ln(e,i,s).map(o=>()=>o)}},WB={kernelName:vi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return $(ts(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>rv(a.shape,e,r,i,o,l),filter:()=>zv(a,e,r.shape,i,o,l)}}},VB={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:()=>zv(e,a,r.shape,s,i,o,l)}}};function UB(e,t,n,a,r){let s=e;e.rank===4&&(s=B(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=B(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(em,o,l)}var GB=L({conv3DBackpropFilter_:UB}),HB={kernelName:ic,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;$(ts(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:()=>TS(i.shape,e,o,r,s),filter:()=>GB(i,e,o.shape,r,s)}}},jB={kernelName:ki,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(yt(jm(oe(n,"float32"))),e)}}},qB={kernelName:Ii,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(qm(oe(n,"float32")),e)}}},KB={kernelName:Si,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=$S([r],a.rank),l=Dm(e,r,s,!i);return o!=null&&(l=Ce(l,o)),l}}}},XB={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;$(ts(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]}.`),$(lr(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),Sn("depthwiseConv2d",s,i),{x:()=>dT(l.shape,e,u,r,s,o,i),filter:()=>cT(l,e,u.shape,r,s,o,i)}}},YB={kernelName:oc,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)}}},ZB={kernelName:Ci,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>O.runKernel(om,a)}}},JB={kernelName:Rl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(fn(yt(ot(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},QB={kernelName:_i,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},eW={kernelName:Pl,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>B(e,n.shape)}}},tW={kernelName:Ol,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,fn(n))}}},nW={kernelName:Ei,gradFunc:e=>({x:()=>je(e)})},aW={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=Bt(n.shape,r);return i.length>0?B(fe(s,i),n.shape):s},b:()=>{let s=z(e,oe(n,"float32")),i=Bt(a.shape,r);i.length>0&&(s=B(fe(s,i),a.shape));let o=ot(a);return yt(he(s,oe(o,"float32")))}}}},rW={kernelName:$i,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?ye(1):o,u=Bt(s.shape,r.shape),p=[];if(s.rank===1){for(let f=0;fs.rank===1?B(z(z(e,Pn(B(h,[1,1,1,s.shape[0]]),p)),l),r.shape):B(z(z(e,h),l),r.shape),mean:()=>{let f=z(z(h,ye(-1)),c);return s.rank===1&&(f=fe(f,u)),B(f,s.shape)},variance:()=>{let f=z(z(m,d),c);return s.rank===1&&(f=fe(f,u)),B(f,s.shape)},scale:()=>{let f=z(d,h),g=z(e,f);return s.rank===1&&(g=fe(g,u)),B(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=fe(f,u)),B(f,s.shape)}}}},sW={kernelName:zl,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=Ea(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=Z1(0,p),m=Z1(p+1,p+1+c),f=J1([u,[l],d]),g=B(e,f),b=B(r,[l]),y=J1([[p],h,m]),x=Ce(g,y),w=Jm(x,b,a.shape[i]),I=hv(y);return w=Ce(w,I),w},indices:()=>r}}};function Z1(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>je(n),b:()=>je(a)}}},oW={kernelName:Di,gradFunc:e=>({x:()=>oe(e,"float32")})},lW={kernelName:Vl,gradFunc:e=>({x:()=>je(e)})},uW={kernelName:Ul,gradFunc:e=>({x:()=>je(e)})},pW={kernelName:Gl,gradFunc:e=>({x:()=>je(e)})},cW={kernelName:Ri,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=Vn(a,0);return{x:()=>mn(s,e,z(e,r))}}},dW={kernelName:ql,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,Y(n,1))}}},hW={kernelName:Mi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,oe(n,"float32"))}}},mW={kernelName:_I,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 fW(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(dm,o,l)}var gW=L({localResponseNormalizationBackprop_:fW}),bW={kernelName:uc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>gW(a,r,e,s,i,o,l)}}};function ET(e,t,n,a){return t.rankz(e,oe(Jn(n,t),e.dtype))}}var Q1={kernelName:Pi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=Ea(r,s.shape),l=ET(e,i,s,o);return{x:()=>l.x()}}},yW={kernelName:Oi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,oe(ys(n,a),"float32")),b:()=>z(e,oe(Mm(n,a),"float32"))}}};function xW(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=B(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),d=B(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),c=B(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}.`),Sn("maxPool3dGrad",s,i);let m={dy:p,input:d,output:c},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=O.runKernel(mm,m,f);return h?B(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var vW=L({maxPool3dGrad_:xW}),wW={kernelName:pc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>vW(e,a,r,s,i,o,l)}}};function kW(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}.`),Sn("maxPoolGrad",s,i);let p={dy:o,input:l,output:u},d={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return O.runKernel(hm,p,d)}var IW=L({maxPoolGrad_:kW}),SW={kernelName:Li,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>IW(e,a,r,s,i,o)}}},TW={kernelName:zi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=Ea(r,a.shape),i=AS(a.shape,s)[1],o=mt(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=B(e,l);return he(z(u,Yn(a.shape,"float32")),o)}}}},NW={kernelName:Bi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=Ea(r,s.shape),l=ET(e,i,s,o);return{x:()=>l.x()}}},CW={kernelName:Wi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,oe(xs(n,a),"float32")),b:()=>z(e,oe(Vn(n,a),"float32"))}}},_W={kernelName:Vi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>We(e,s,a.shape)}}},EW={kernelName:Zl,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=Bt(n.shape,r);return s.length>0?B(fe(e,s),n.shape):e},b:()=>{let s=z(e,yt(Nu(he(n,a)))),i=Bt(a.shape,r);return i.length>0?B(fe(s,i),a.shape):s}}}},AW={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=Bt(n.shape,r);return i.length>0?B(fe(s,i),n.shape):s},b:()=>{let s=z(e,oe(n,"float32")),i=Bt(a.shape,r);return i.length>0?B(fe(s,i),a.shape):s}}}},$W={kernelName:Jl,gradFunc:e=>({x:()=>yt(e)})},FW={kernelName:Gi,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>It(n.shape,"float32")}}},DW={kernelName:au,gradFunc:e=>({x:()=>je(e)})},RW={kernelName:ru,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return ct(e,a).map(r=>()=>r)}},ek={kernelName:Hi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>We(e,s,a.shape)}}},MW={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,ye(1))))),p=Bt(s.shape,o);return p.length>0&&(u=fe(u,p)),B(u,s.shape)},b:()=>{let l=Vn(s,0),u=mn(l,Qn(s),je(s)),p=z(e,z(r,u)),d=Bt(i.shape,o);return d.length>0&&(p=fe(p,d)),B(p,i.shape)}}}},PW={kernelName:qi,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=Vn(n,0);return{x:()=>mn(r,e,z(e,a)),alpha:()=>{let s=mn(r,je(e),z(e,n)),i=Bt(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),B(s,a.shape)}}}};function OW(e,t,n){let a=e.shape.slice();a[n]=1;let r=B(t,a),s=Hp(e,n,!0,!1),i=Hp(e,n,!0,!0),o=z(s,i);return z(r,o)}function LW(e,t,n){let a=e.shape.length,r=a-n.length,s=N.getAxesPermutation(n,a),i=e;s!=null&&(i=Ce(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=OW(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=N.getUndoAxesPermutation(s);p=Ce(p,d)}return p}var zW={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:()=>LW(a,e,s)}}},BW={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=Bt(n.shape,r);return i.length>0?B(fe(s,i),n.shape):s},b:()=>{let s=z(e,oe(n,"float32")),i=Bt(a.shape,r);i.length>0&&(s=B(fe(s,i),a.shape));let o=ot(a);return yt(he(s,oe(o,"float32")))}}}},WW={kernelName:su,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,yt(ot(n)))}}},VW={kernelName:Ji,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(xs(n,6),fo(n));return{x:()=>z(e,oe(a,"float32"))}}},UW={kernelName:Xi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,oe(fo(n),"float32"))}}},GW={kernelName:iu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,n.shape)}}},HW={kernelName:Zi,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(wm,r,n)}}},jW={kernelName:Yi,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(vm,r,n)}}},qW={kernelName:Qi,gradFunc:(e,t,n)=>{let{dims:a}=n,r=Ea(a,e.shape);return{x:()=>ma(e,r)}}},KW={kernelName:eo,gradFunc:e=>({x:()=>je(e)})},XW={kernelName:to,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>yt(he(e,z(_r(n,1.5),2)))}}},YW={kernelName:lu,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>oe(je(n),"float32"),t:()=>z(e,oe(n,e.dtype)),e:()=>z(e,oe(Fc(n),e.dtype))}}},ZW={kernelName:uu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=Vn(n,ye(0)),r=ye(TT),s=ye(NT),i=z(e,s),o=z(z(e,r),fn(oe(n,"float32")));return mn(a,i,o)}}}},JW={kernelName:ao,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(ye(1),n)))}}},QW={kernelName:du,gradFunc:e=>({x:()=>je(e)})},e4={kernelName:no,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Ec(oe(n,"float32")),e)}}},t4={kernelName:cu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Fm(oe(n,"float32")),e)}}},n4={kernelName:pu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=mS(a,r,s),u=[];for(let p=0;pga(e,u)}}},a4={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))}}},r4={kernelName:hu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,da(n))}}},tk={kernelName:mu,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>_c(e,a,r)}}},nk={kernelName:fu,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Ze(e,a)}}},s4={kernelName:ro,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,z(on(oe(n,"float32")),2))}}},i4={kernelName:fc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(oe(n,"float32"),2))}}},o4={kernelName:oo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ye(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},l4={kernelName:hs,gradFunc:e=>({x:()=>je(e)})},u4={kernelName:lo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=e,i=Bt(n.shape,r);return i.length>0&&(s=fe(s,i)),B(s,n.shape)},b:()=>{let s=e,i=Bt(a.shape,r);return i.length>0&&(s=fe(s,i)),B(yt(s),a.shape)}}}},p4={kernelName:so,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;Ea(s,a.shape).forEach(l=>{r[l]=1});let i=B(e,r),o=z(i,Yn(a.shape,"float32"));return{x:()=>o}}},c4={kernelName:uo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,ot(Ec(n)))}}},d4={kernelName:po,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(ye(1),ot(n)),e)}}},h4={kernelName:ds,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=je(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=hv(r);return{x:()=>Ce(e,s)}}},f4={kernelName:vu,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Ft(e,r)}}},g4={kernelName:xc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>b4(e,n)}}};function b4(e,t){let n=ur(t,je(t)),a=Cu(e,n),r=ys(t,ye(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>je(e)})},x4=[_T,gB,bB,yB,xB,vB,wB,kB,IB,SB,TB,NB,EB,FB,DB,RB,MB,PB,OB,LB,zB,BB,VB,WB,HB,jB,qB,KB,XB,YB,BW,ZB,JB,QB,eW,tW,aW,nW,rW,sW,iW,oW,lW,uW,pW,cW,dW,hW,mW,bW,Q1,Q1,yW,wW,SW,TW,NW,CW,_W,EW,AW,$W,FW,DW,RW,ek,ek,MW,PW,zW,WW,VW,UW,GW,HW,jW,qW,KW,XW,YW,ZW,JW,QW,e4,t4,n4,a4,r4,tk,tk,nk,nk,s4,o4,i4,l4,u4,p4,c4,d4,h4,m4,f4,g4,y4];for(let e of x4)EI(e);J().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};J().prototype.acos=function(){return this.throwIfDisposed(),zx(this)};J().prototype.acosh=function(){return this.throwIfDisposed(),Bx(this)};J().prototype.add=function(e){return this.throwIfDisposed(),Y(this,e)};J().prototype.all=function(e,t){return this.throwIfDisposed(),Em(this,e,t)};J().prototype.any=function(e,t){return this.throwIfDisposed(),Gp(this,e,t)};J().prototype.argMax=function(e){return this.throwIfDisposed(),ai(this,e)};J().prototype.argMin=function(e){return this.throwIfDisposed(),Wx(this,e)};J().prototype.asScalar=function(){return this.throwIfDisposed(),$(this.size===1,()=>"The array must have only 1 element."),B(this,[])};J().prototype.asType=function(e){return this.throwIfDisposed(),oe(this,e)};J().prototype.as1D=function(){return this.throwIfDisposed(),B(this,[this.size])};J().prototype.as2D=function(e,t){return this.throwIfDisposed(),B(this,[e,t])};J().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),B(this,[e,t,n])};J().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),B(this,[e,t,n,a])};J().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),B(this,[e,t,n,a,r])};J().prototype.asin=function(){return this.throwIfDisposed(),Vx(this)};J().prototype.asinh=function(){return this.throwIfDisposed(),Ux(this)};J().prototype.atan=function(){return this.throwIfDisposed(),Gx(this)};J().prototype.atan2=function(e){return this.throwIfDisposed(),Hx(this,e)};J().prototype.atanh=function(){return this.throwIfDisposed(),jx(this)};J().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),fa(this,e,t,n,a)};J().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),_c(this,e,t)};J().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),gs(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(),Qx(this)};J().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),Qt(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(),Am(this,e,t,n,a,r,s)};J().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),$m(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(),Ec(this)};J().prototype.cosh=function(){return this.throwIfDisposed(),Fm(this)};J().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),Hp(this,e,t,n)};J().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Dm(this,e,t,n)};J().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),ov(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(),lv(this,e,t,n,a,r)};J().prototype.divNoNan=function(e){return this.throwIfDisposed(),uv(this,e)};J().prototype.div=function(e){return this.throwIfDisposed(),he(this,e)};J().prototype.dot=function(e){return this.throwIfDisposed(),pv(this,e)};J().prototype.elu=function(){return this.throwIfDisposed(),Su(this)};J().prototype.equal=function(e){return this.throwIfDisposed(),Jn(this,e)};J().prototype.erf=function(){return this.throwIfDisposed(),cv(this)};J().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),mv(this,e,t)};J().prototype.exp=function(){return this.throwIfDisposed(),fn(this)};J().prototype.expandDims=function(e){return this.throwIfDisposed(),hn(this,e)};J().prototype.expm1=function(){return this.throwIfDisposed(),fv(this)};J().prototype.fft=function(){return this.throwIfDisposed(),Oc(this)};J().prototype.flatten=function(){return this.throwIfDisposed(),B(this,[this.size])};J().prototype.floor=function(){return this.throwIfDisposed(),Nu(this)};J().prototype.floorDiv=function(e){return this.throwIfDisposed(),_m(this,e)};J().prototype.gather=function(e,t){return this.throwIfDisposed(),Cu(this,e,t)};J().prototype.greaterEqual=function(e){return this.throwIfDisposed(),ys(this,e)};J().prototype.greater=function(e){return this.throwIfDisposed(),Vn(this,e)};J().prototype.ifft=function(){return this.throwIfDisposed(),ol(this)};J().prototype.irfft=function(){return this.throwIfDisposed(),Xm(this)};J().prototype.isFinite=function(){return this.throwIfDisposed(),gv(this)};J().prototype.isInf=function(){return this.throwIfDisposed(),bv(this)};J().prototype.isNaN=function(){return this.throwIfDisposed(),yv(this)};J().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Ac(this,e)};J().prototype.lessEqual=function(e){return this.throwIfDisposed(),xs(this,e)};J().prototype.less=function(e){return this.throwIfDisposed(),Mm(this,e)};J().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),xv(this,e,t,n,a)};J().prototype.logSigmoid=function(){return this.throwIfDisposed(),vv(this)};J().prototype.logSoftmax=function(e){return this.throwIfDisposed(),Om(this,e)};J().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),Lm(this,e,t)};J().prototype.log=function(){return this.throwIfDisposed(),Qn(this)};J().prototype.log1p=function(){return this.throwIfDisposed(),$c(this)};J().prototype.logicalAnd=function(e){return this.throwIfDisposed(),_a(this,e)};J().prototype.logicalNot=function(){return this.throwIfDisposed(),Fc(this)};J().prototype.logicalOr=function(e){return this.throwIfDisposed(),zm(this,e)};J().prototype.logicalXor=function(e){return this.throwIfDisposed(),wv(this,e)};J().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),Ae(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(),Na(this,e,t)};J().prototype.maximum=function(e){return this.throwIfDisposed(),ur(this,e)};J().prototype.mean=function(e,t){return this.throwIfDisposed(),Nt(this,e,t)};J().prototype.min=function(e,t){return this.throwIfDisposed(),jp(this,e,t)};J().prototype.minimum=function(e){return this.throwIfDisposed(),_u(this,e)};J().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Iv(this,e,t)};J().prototype.mod=function(e){return this.throwIfDisposed(),Sv(this,e)};J().prototype.mul=function(e){return this.throwIfDisposed(),z(this,e)};J().prototype.neg=function(){return this.throwIfDisposed(),yt(this)};J().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Tu(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(),al(this,e,t,n)};J().prototype.onesLike=function(){return this.throwIfDisposed(),ea(this)};J().prototype.pad=function(e,t){return this.throwIfDisposed(),ga(this,e,t)};J().prototype.pool=function(e,t,n,a,r,s){return this.throwIfDisposed(),Tv(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(),Mc(this,e)};J().prototype.prod=function(e,t){return this.throwIfDisposed(),Nv(this,e,t)};J().prototype.reciprocal=function(){return this.throwIfDisposed(),Ev(this)};J().prototype.relu=function(){return this.throwIfDisposed(),Xe(this)};J().prototype.relu6=function(){return this.throwIfDisposed(),Vm(this)};J().prototype.reshapeAs=function(e){return this.throwIfDisposed(),B(this,e.shape)};J().prototype.reshape=function(e){return this.throwIfDisposed(),B(this,e)};J().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),yT(this,e,t,n)};J().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),xT(this,e,t,n)};J().prototype.reverse=function(e){return this.throwIfDisposed(),ma(this,e)};J().prototype.rfft=function(){return this.throwIfDisposed(),Lc(this)};J().prototype.round=function(){return this.throwIfDisposed(),Um(this)};J().prototype.rsqrt=function(){return this.throwIfDisposed(),Gm(this)};J().prototype.selu=function(){return this.throwIfDisposed(),Hm(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(),Av(this)};J().prototype.sin=function(){return this.throwIfDisposed(),jm(this)};J().prototype.sinh=function(){return this.throwIfDisposed(),qm(this)};J().prototype.slice=function(e,t){return this.throwIfDisposed(),We(this,e,t)};J().prototype.softmax=function(e){return this.throwIfDisposed(),ja(this,e)};J().prototype.softplus=function(){return this.throwIfDisposed(),ho(this)};J().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Rc(this,e,t)};J().prototype.split=function(e,t){return this.throwIfDisposed(),Ln(this,e,t)};J().prototype.sqrt=function(){return this.throwIfDisposed(),on(this)};J().prototype.square=function(){return this.throwIfDisposed(),ot(this)};J().prototype.squaredDifference=function(e){return this.throwIfDisposed(),Ym(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(),$v(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(),Fv(this)};J().prototype.tanh=function(){return this.throwIfDisposed(),ri(this)};J().prototype.tile=function(e){return this.throwIfDisposed(),Pn(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(),Dv(this,e,t)};J().prototype.transpose=function(e){return this.throwIfDisposed(),Ce(this,e)};J().prototype.unique=function(e){return this.throwIfDisposed(),Rv(this,e)};J().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),Jm(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(),je(this)};var xr=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,xr.prototype)}},La=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,La.prototype)}},V=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,V.prototype)}},De=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,De.prototype)}},AT=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,AT.prototype)}},$T=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 wa={};function Gv(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Dy(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Dy(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:Dy(a))}}}function Bc(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 wa)i=wa[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 H(`${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 wa?[o,l]=wa.className:i in t&&([o,l]=t[i]),o==null)throw new H(`Unknown ${a}: ${i}. This may be due to one of the following reasons: +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 wa?[o,l]=wa.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(wa))u[h]=wa[h];for(let h of Object.keys(n))u[h]=n[h];let p=s.config;p.customObjects=u;let d=Object.assign({},wa);for(let h of Object.keys(n))wa[h]=n[h];Qy(s.config);let c=l(o,s.config,n,r);return wa=Object.assign({},d),c}else{let u=Object.assign({},wa);for(let d of Object.keys(n))wa[d]=n[d];let p=new o(s.config);return wa=Object.assign({},u),p}}}function Z4(e,t){return et?1:0}function mh(e,t){return-1*Z4(e,t)}function ts(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function J4(e){if(e==null)throw new H(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function So(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new H(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function cw(e,t,n=0,a=1/0){return ir(n>=0),ir(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function en(e,t){Array.isArray(e)?(v.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>en(n,`element ${a+1} of ${t}`))):v.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${XS(e)}.`)}function XS(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>XS(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function Q4(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 nl.set(n,1),n}else return e}var lV=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function tN(e){return!!e.match(lV)}function uV(e){return e===parseInt(e.toString(),10)}function ns(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 Ya(e,t){if(t{if(e.shape.length!==2)throw new H(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=ad(e,1);return ex(n,[1,t,1])})}function cV(e){let t=[ns(e.shape)];return B(e,t)}function dV(e){if(e.rank<=1)throw new H(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],ns(e.shape,1)];return B(e,t)}function si(e,t,n){return O(()=>{switch(e.rank){case 1:return Jc(e,t,n);case 2:return bf(e,[t,0],[n,e.shape[1]]);case 3:return Io(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return yl(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return He(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return He(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 H(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Ey(e,t,n){return O(()=>{switch(e.rank){case 1:return Jc(e,t,n);case 2:return bf(e,[0,t],[e.shape[0],n]);case 3:return Io(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return yl(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new H(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function gh(e,t,n,a){return O(()=>{switch(e.rank){case 1:return Jc(e,t,n);case 2:switch(a){case 1:return si(e,t,n);case 2:return Ey(e,t,n);default:throw new H(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return si(e,t,n);case 2:return Io(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return Ey(e,t,n);default:throw new H(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return si(e,t,n);case 2:return yl(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return yl(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return Ey(e,t,n);default:throw new H(`The axis is not within the rank of the tensor ${a}`)}default:throw new H(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function dw(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Qe(e,t)}function Ck(e,t){switch(e.rank){case 1:return vv([e,t]);case 2:return wv([e,t],0);case 3:return kv([e,t],0);case 4:return Iv([e,t],0);default:throw new H(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function ex(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new H(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return Wn(e,t)}function Mf(e,t=0,n=1,a,r){return pf(e,t,n,a,r)}function pr(e,t,n,a){if(e.rank<2||t.rank<2)throw new Pe(`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 Pe(`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 vl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?tx(e.rank,a,Za()):null,activation:n});{let r=e.shape.slice(),s=r.pop();e=B(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=B(Ae(t,p),[l,-1]);let d=[...r,...u],c=!1,h=!1;return B(vl.matMul({a:e,b:t,transposeA:c,transposeB:h,bias:a?tx(e.rank,a,Za()):null,activation:n}),d)}}function nN(e,t,n){return O(()=>(Array.isArray(t)?t=Ke(t,"int32"):t=le(t,"int32"),zu(e,t,n)))}function rd(e){return W(e,e)}function tx(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new H(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?B(t,[1,a[0],1,1,1]):B(t,[1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?B(t,[1,1,1,1,a[0]]):B(t,[1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?B(t,[1,a[0],1,1]):B(t,[1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?B(t,[1,1,1,a[0]]):B(t,[1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?B(t,[1,a[0],1]):B(t,[1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?B(t,[1,1,a[0]]):B(t,[1].concat(a))}else if(e<3)return t;throw new H(`Unsupported input rank by biasAdd: ${t.rank}`)}function er(e,t,n){return O(()=>(n==null&&(n=Za()),Pt(n),Q(e,tx(e.rank,t,n))))}function hV(e,t=1){if(t!==1)throw new Pe(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Pu(e)}function mV(e){return O(()=>fe(e,Q(Lt(e),1)))}function aN(e,t,n,a){return O(()=>aw(e,t,n,a))}function fV(e){return O(()=>{let t=Q(.5,W(.2,e));return tn(t,0,1)})}function sd(e,t,n=!1){return n?e():t()}var gV=["fanIn","fanOut","fanAvg"],bV=["normal","uniform","truncatedNormal"];function yV(e){So(gV,"FanMode",e)}function xV(e){So(bV,"Distribution",e)}var Aa=class extends se.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},hw=class extends Aa{apply(e,t){return It(e,t)}};hw.className="Zeros";se.registerClass(hw);var Pf=class extends Aa{apply(e,t){return Jn(e,t)}};Pf.className="Ones";se.registerClass(Pf);var mw=class extends Aa{constructor(e){if(super(),typeof e!="object")throw new H(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new H(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return O(()=>W(ke(this.value),Jn(e,t)))}getConfig(){return{value:this.value}}};mw.className="Constant";se.registerClass(mw);var fw=class extends Aa{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 Bu(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};fw.className="RandomUniform";se.registerClass(fw);var gw=class extends Aa{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 Pe(`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}}};gw.className="RandomNormal";se.registerClass(gw);var bw=class extends Aa{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 Pe(`truncatedNormal does not support dType ${t}.`);return vf(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};bw.className="TruncatedNormal";se.registerClass(bw);var yw=class extends Aa{constructor(e){super(),this.gain=e.gain!=null?e.gain:1}apply(e,t){return O(()=>{if(e.length!==2||e[0]!==e[1])throw new H("Identity matrix initializer can only be used for 2D square matrices.");return W(this.gain,nf(e[0]))})}getConfig(){return{gain:this.gain}}};yw.className="Identity";se.registerClass(yw);function vV(e,t="channelsLast"){let n,a;if(Pt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=ns(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=ns(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=ns(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Gn=class extends Aa{constructor(e){if(super(),e.scale<0)throw new H(`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,yV(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,xV(this.distribution),this.seed=e.seed}apply(e,t){let n=vV(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 Pe(`${this.getClassName()} does not support dType ${t}.`);return vf(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Bu(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Gn.className="VarianceScaling";se.registerClass(Gn);var Of=class extends Gn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Gn.className}};Of.className="GlorotUniform";se.registerClass(Of);var Lf=class extends Gn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Gn.className}};Lf.className="GlorotNormal";se.registerClass(Lf);var zf=class extends Gn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Gn.className}};zf.className="HeNormal";se.registerClass(zf);var Wf=class extends Gn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Gn.className}};Wf.className="HeUniform";se.registerClass(Wf);var Bf=class extends Gn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Gn.className}};Bf.className="LeCunNormal";se.registerClass(Bf);var Vf=class extends Gn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Gn.className}};Vf.className="LeCunNormal";se.registerClass(Vf);var xw=class extends Aa{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 Pe("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return O(()=>{if(e.length<2)throw new Pe("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=ow.gramSchmidt(a);return e[0]>e[1]&&(r=Ae(r)),W(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};xw.className="Orthogonal";se.registerClass(xw);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 Ek(e,t={}){return nd(e,se.SerializationMap.getMap().classNameMap,t,"initializer")}function Et(e){return pw(e)}function Tt(e){if(typeof e=="string"){let t=e in _k?_k[e]:e;if(t==="GlorotNormal")return new Lf;if(t==="GlorotUniform")return new Of;if(t==="HeNormal")return new zf;if(t==="HeUniform")return new Wf;if(t==="LeCunNormal")return new Bf;if(t==="LeCunUniform")return new Vf;{let n={};return n.className=t,n.config={},Ek(n)}}else return e instanceof Aa?e:Ek(e)}function nx(e){return Array.isArray(e)&&Array.isArray(e[0])}function qh(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function ze(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new H(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function it(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new H(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function Kh(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 $k="Variable",rN=class{constructor(e,t="float32",n=$k,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=ZS(),n=n==null?$k:n,this.originalName=QS(n),this.name=eN(this.originalName),this.trainable_=a,this.constraint=r,this.val=tw(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),wV(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 wV(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function ax(e){return e.map(t=>t.read())}function vw(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||{}}},ja=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=ZS(),s!=null&&(this.originalName=QS(s),this.name=eN(this.originalName)),this.rank=t.length}},kV=0,Uf=class{constructor(e,t){this.callArgs=t,this.id=kV++,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}}},IV=0,Ye=class extends se.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=IV++,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=Ir(n)+"_"+Df(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 Ha(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new H(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return zn(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return zn(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new kr(`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 kr(`Layer ${this.name} is not connected, no input to return.`);return zn(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new kr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new kr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return zn(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 H(`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 H(`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 H(`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(zn(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=zn(o),this.activityRegularizer!=null)throw new Pe("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=TV(e),i=this.computeOutputShape(s),o,l=SV(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 ja(l,u,this,xt(e),t,this.name,p)):o=new ja(l,i,this,xt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new Pe("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 kr(`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 kr(`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 Ha(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Kh(this.weights)}build(e){this.built=!0}getWeights(e=!1){return ax(e?this.trainableWeights:this.weights)}setWeights(e){O(()=>{let t=this.weights;if(t.length!==e.length)throw new H(`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=ax(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=qh(r),s=qh(s);let l=[],u=[],p=[];for(let d of o)l.push(d.sourceLayer),u.push(d.nodeIndex),p.push(d.tensorIndex);new Uf({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 TV(e){e=xt(e);let t=[];for(let n of e)t.push(n.shape);return zn(t)}function SV(e){return"float32"}function sN(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=Xh.get(p),c;if(d==null){let m=_V(i,t);d=m.sorted,c=m.recipientCounts,Xh.put(p,d),Yh.put(p,c)}c={},r||Object.assign(c,Yh.get(p));let h=new ei(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=Ak(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=Ak(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:EV(a)}}function EV(e){let t={};for(let n in e)t[n]=e[n].size;return t}function Ak(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 $V(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,CV);var oN={};Fe(oN,{maxNorm:()=>FV,minMaxNorm:()=>MV,nonNeg:()=>RV,unitNorm:()=>DV});function ww(e,t){return O(()=>ln(ye(W(e,e),t,!0)))}var id=class extends se.Serializable{getConfig(){return{}}},kw=class extends id{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 O(()=>{let t=ww(e,this.axis),n=tn(t,0,this.maxValue);return W(e,fe(n,Q(Ht(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};kw.className="MaxNorm";se.registerClass(kw);var Iw=class extends id{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return O(()=>fe(e,Q(Ht(),ww(e,this.axis))))}getConfig(){return{axis:this.axis}}};Iw.className="UnitNorm";se.registerClass(Iw);var Tw=class extends id{apply(e){return Xe(e)}};Tw.className="NonNeg";se.registerClass(Tw);var Sw=class extends id{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 O(()=>{let t=ww(e,this.axis),n=Q(W(this.rate,tn(t,this.minValue,this.maxValue)),W(1-this.rate,t));return W(e,fe(n,Q(Ht(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Sw.className="MinMaxNorm";se.registerClass(Sw);var Fk={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Kt(e){return pw(e)}function Dk(e,t={}){return nd(e,se.SerializationMap.getMap().classNameMap,t,"constraint")}function Xt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in Fk?Fk[e]:e,config:{}};return Dk(t)}else return e instanceof id?e:Dk(e)}function FV(e){return new kw(e)}function DV(e){return new Iw(e)}function RV(){return new Tw}function MV(e){return new Sw(e)}var lN={};Fe(lN,{constant:()=>LV,glorotNormal:()=>HV,glorotUniform:()=>GV,heNormal:()=>jV,heUniform:()=>qV,identity:()=>VV,leCunNormal:()=>KV,leCunUniform:()=>XV,ones:()=>OV,orthogonal:()=>YV,randomNormal:()=>WV,randomUniform:()=>zV,truncatedNormal:()=>BV,varianceScaling:()=>UV,zeros:()=>PV});function PV(){return new hw}function OV(){return new Pf}function LV(e){return new mw(e)}function zV(e){return new fw(e)}function WV(e){return new gw(e)}function BV(e){return new bw(e)}function VV(e){return new yw(e)}function UV(e){return new Gn(e)}function GV(e){return new Of(e)}function HV(e){return new Lf(e)}function jV(e){return new zf(e)}function qV(e){return new Wf(e)}function KV(e){return new Bf(e)}function XV(e){return new Vf(e)}function YV(e){return new xw(e)}var uN={};Fe(uN,{Layer:()=>Ye,RNN:()=>br,RNNCell:()=>cd,activation:()=>kG,add:()=>AG,alphaDropout:()=>mH,average:()=>FG,averagePooling1d:()=>F0,averagePooling2d:()=>D0,averagePooling3d:()=>R0,avgPool1d:()=>BG,avgPool2d:()=>UG,avgPool3d:()=>HG,avgPooling1d:()=>VG,avgPooling2d:()=>GG,avgPooling3d:()=>jG,batchNormalization:()=>LG,bidirectional:()=>iH,concatenate:()=>DG,conv1d:()=>hG,conv2d:()=>mG,conv2dTranspose:()=>fG,conv3d:()=>gG,conv3dTranspose:()=>bG,convLstm2d:()=>nH,convLstm2dCell:()=>aH,cropping2D:()=>xG,dense:()=>IG,depthwiseConv2d:()=>wG,dot:()=>OG,dropout:()=>TG,elu:()=>oG,embedding:()=>$G,flatten:()=>NG,gaussianDropout:()=>hH,gaussianNoise:()=>dH,globalAveragePooling1d:()=>qG,globalAveragePooling2d:()=>KG,globalMaxPool1d:()=>lH,globalMaxPool2d:()=>uH,globalMaxPooling1d:()=>e2,globalMaxPooling2d:()=>t2,gru:()=>YG,gruCell:()=>ZG,input:()=>CN,inputLayer:()=>iG,layerNormalization:()=>zG,leakyReLU:()=>uG,lstm:()=>JG,lstmCell:()=>QG,masking:()=>fH,maxPool1d:()=>pH,maxPool2d:()=>cH,maxPooling1d:()=>n2,maxPooling2d:()=>a2,maxPooling3d:()=>XG,maximum:()=>RG,minimum:()=>MG,multiply:()=>PG,permute:()=>EG,prelu:()=>pG,reLU:()=>lG,repeatVector:()=>CG,reshape:()=>_G,rnn:()=>rH,separableConv2d:()=>yG,simpleRNN:()=>eH,simpleRNNCell:()=>tH,softmax:()=>cG,spatialDropout1d:()=>SG,stackedRNNCells:()=>sH,thresholdedReLU:()=>dG,timeDistributed:()=>oH,upSampling2d:()=>vG,zeroPadding2d:()=>WG});async function Xr(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;sQ(this.totals[a],W(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:O(()=>{let a=W(fe(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),Qt(t[n])}))}},dN=class extends kl{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 hN(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 H("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 fN(e,t,n,a,r,s,i,o,l){let u=new dN,p=[new JV,...Ta.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new cN(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 Ka(e,t={},n=!1){return nd(e,se.SerializationMap.getMap().classNameMap,t,"layer",n)}function Zh(e,t){return O(()=>{e.dtype!=="float32"&&(e=le(e,"float32"));let n=ye(rd(e),t,!0),a=En(n.shape,Ht()),r=ln(fr(n,a));return fe(e,r)})}function No(e,t){return O(()=>_t(rd(ce(t,e)),-1))}function Gf(e,t){return O(()=>_t(Lt(ce(t,e)),-1))}function Gu(e,t){return O(()=>{let n=ce(e,t),a=tn(Lt(e),Ht(),Number.MAX_VALUE),r=Lt(fe(n,a));return W(100,_t(r,-1))})}function QV(e,t){return O(()=>{let n=tn(t,Ht(),Number.MAX_VALUE),a=ea(Q(1,n)),r=tn(e,Ht(),Number.MAX_VALUE),s=ea(Q(1,r));return _t(rd(ce(a,s)),-1)})}function eU(e,t){return O(()=>{let n=fr(0,ce(1,W(e,t)));return _t(rd(n),-1)})}function tU(e,t){return O(()=>{let n=fr(0,ce(1,W(e,t)));return _t(n,-1)})}function nU(e,t){return O(()=>{let n=ye(W(e,t),-1),a=Na(W(ce(1,e),t),-1);return fr(0,Q(1,ce(a,n)))})}function aU(e,t){return O(()=>{let n=Math.log(2),a=ce(t,e),r=ce(Q(a,ko(W(-2,a))),n);return _t(r,-1)})}function uc(e,t,n=!1){return O(()=>{if(n)t=Qa(t);else{let a=ye(t,t.shape.length-1,!0);t=fe(t,a)}return t=tn(t,Ht(),1-Ht()),vt(ye(W(le(e,"float32"),ea(t)),t.shape.length-1))})}function Jh(e,t,n=!1){return O(()=>{let a=le(Lu(cV(e)),"int32");t=tn(t,Ht(),1-Ht());let r=t.shape,s=B(fl(a,r[r.length-1]),r);return uc(s,t,n)})}function rU(e,t){if(!v.arraysEqual(e.shape,t.shape))throw new H(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return O(()=>{let n=Xe(t),a=vt(Lt(t));return Q(ce(n,W(t,e)),qc(gn(a)))})}function Hf(e,t){return O(()=>{let n;return n=tn(t,Ht(),1-Ht()),n=ea(fe(n,ce(1,n))),_t(rU(e,n),-1)})}function sU(e,t){return O(()=>{let n=tn(e,Ht(),1),a=tn(t,Ht(),1);return ye(W(e,ea(fe(n,a))),-1)})}function iU(e,t){return O(()=>{let n=ea(Q(Ht(),t));return _t(ce(t,W(e,n)),-1)})}function Nw(e,t){return O(()=>{let n=Zh(e,-1),a=Zh(t,-1),r=W(n,a);return vt(ye(r,-1))})}var Qh={meanSquaredError:No,meanAbsoluteError:Gf,meanAbsolutePercentageError:Gu,meanSquaredLogarithmicError:QV,squaredHinge:eU,hinge:tU,categoricalHinge:nU,logcosh:aU,categoricalCrossentropy:uc,sparseCategoricalCrossentropy:Jh,binaryCrossentropy:Hf,kullbackLeiblerDivergence:sU,poisson:iU,cosineProximity:Nw};function $y(e){if(typeof e=="string"){if(e in Qh)return Qh[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 H(t)}else return e}function Cw(e,t){return O(()=>{let n=W(.5,ta(t)),a=Rf(jn(t,n),e.dtype);return _t(Qn(e,a),-1)})}function _w(e,t){return O(()=>Rf(Qn(di(e,-1),di(t,-1)),"float32"))}function gN(e,t){return O(()=>le(ye(_a(Qn(e,1),Qn(t,1))),"float32"))}function oU(e,t){return O(()=>le(ye(_a(Qn(e,1),Qn(t,0))),"float32"))}function lU(e,t){return O(()=>le(ye(_a(Qn(e,0),Qn(t,1))),"float32"))}function bN(e,t){return O(()=>{let n=gN(e,t),a=lU(e,t),r=Q(n,a);return le(fn(jn(r,0),fe(n,r),0),"float32")})}function uU(e,t){return O(()=>{let n=gN(e,t),a=oU(e,t),r=Q(n,a);return le(fn(jn(r,0),fe(n,r),0),"float32")})}function yN(e,t){return Hf(e,t)}function xN(e,t){return e.rank===t.rank&&(e=Ss(e,[e.rank-1])),t=di(t,-1),t.dtype!==e.dtype&&(t=le(t,e.dtype)),le(Qn(e,t),"float32")}var pU=No,cU=No,dU=Gf,hU=Gf,mU=Gu,fU=Gu,Ew=uc,gU=Nw,vN=Jh,em={binaryAccuracy:Cw,categoricalAccuracy:_w,precision:bN,categoricalCrossentropy:Ew,sparseCategoricalCrossentropy:vN,mse:pU,MSE:cU,mae:dU,MAE:hU,mape:mU,MAPE:fU,cosine:gU};function bU(e){if(typeof e=="string"&&e in em)return em[e];if(typeof e!="string"&&e!=null)return e;throw new H(`Unknown metric ${e}`)}function bh(e){if(ir(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(Qh))if(Qh[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(em))if(em[n]===e){t=n;break}return t!==void 0?t:e.name}}function yU(e){let t={Adagrad:()=>Ks.adagrad(.01),Adadelta:()=>Ks.adadelta(1,.95,Ht()),Adam:()=>Ks.adam(.001,.9,.999,Ht()),Adamax:()=>Ks.adamax(.002,.9,.999,Ht(),0),RMSProp:()=>Ks.rmsprop(.001,.9,0,Ht()),SGD:()=>Ks.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 H(`Unknown Optimizer ${e}`)}function Mk(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!rx(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 rx(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"||!rx(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!rx(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function xU(e,t,n,a=console.log){let r=wU(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)),tm(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 tm(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 kU(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()];tm(o,t,n)}function IU(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;cb.name)}`);ts(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 y=b.sourceLayer,x=b.nodeIndex,w=b.tensorIndex;this.outputLayers.push(y),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(w)}for(let b of this.inputs){let y=b.sourceLayer,x=b.nodeIndex,w=b.tensorIndex;ir(x===0,"input layer has >1 nodes"),ir(w===0,"input layer has >1 tensors"),this.inputLayers.push(y),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(w)}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 t={},n={},a={},r={},s={},i=[],o=(b,y,x,w,I,N)=>{(w==null||I==null||N==null)&&(w=b.sourceLayer,I=b.nodeIndex,N=b.tensorIndex);let _=w.inboundNodes[I];if(x.indexOf(_)!==-1)throw new Ha(`The tensor ${b.name} at layer "${w.name}" is part of a cycle.`);if(y.indexOf(_)!==-1)return;this.containerNodes.add(ar.nodeKey(w,I)),w.id in s||(s[w.id]=Object.keys(s).length),x.indexOf(_)===-1&&x.push(_);let $=_.inboundLayers.length;for(let A=0;A<$;A++){let M=_.inputTensors[A],D=_.inboundLayers[A],T=_.nodeIndices[A],P=_.tensorIndices[A];o(M,y,x,D,T,P)}for(y.push(_);x.indexOf(_)>=0;)x.splice(x.indexOf(_),1);i.push(_)},l=[],u=[];for(let b of this.outputs)o(b,l,u);let p=i.slice().reverse();for(let b of p){n[b.id]=b,b.id in t||(t[b.id]=0);let y=t[b.id],x=a[b.outboundLayer.id]==null?0:a[b.outboundLayer.id];y=Math.max(y,x),a[b.outboundLayer.id]=y,r[b.outboundLayer.id]=b.outboundLayer,t[b.id]=y;for(let w=0;wparseInt(b,10)).sort(mh);this.layers=[];for(let b of h){let y=c[b];y.sort((x,w)=>{let I=s[x.id],N=s[w.id];return IN?1:0});for(let x of y)x instanceof ar&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=c,h=Object.keys(d).map(b=>parseInt(b,10)).sort(mh);let m=this.inputs.slice(),f=[];for(let b of h)for(let y of d[b]){let x=y.outboundLayer;if(x!=null){for(let w of y.inputTensors)if(m.indexOf(w)===-1)throw new Ha(`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 y.outputTensors)m.push(w);f.push(x.name)}}this.nodesByDepth=d;let g=this.layers.map(b=>b.name);for(let b of g){let y=g.filter(x=>x===b).length;if(y!==1)throw new Ha(`The name "${b}" is used ${y} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new Uf({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 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 H("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 H(`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 H(`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 H(`${s.length} of ${a} weights are not set: ${s}`)}vw(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${$w}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=sx(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return O(()=>{e=xt(e);let n=new ei;for(let a=0;a{e=xt(e);let n;return t==null?n=gi(null,e.length):n=xt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=qh(e);if(t.length!==this.inputLayers.length)throw new H(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(mh);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(mh);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,b,y;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,w]=h[0];m.mask==null&&(m.mask=w),b=xt(p.call(x,m)),y=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),b=xt(p.call(f,m)),y=xt(p.computeMask(f,g));if(p.activityRegularizer)throw new Pe("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(zn(b),y)}function l(f){let g=f.name,b=Ka(f,t.customObjects!=null?t.customObjects:{});b.setFastWeightInitDuringBuild(a),r[g]=b,f.inboundNodes.forEach(y=>{if(!(y instanceof Array))throw new H(`Corrupted configuration, expected array for nodeData: ${y}`);i(b,y)})}let u=t.name,p=t.layers;for(let f of p)l(f);for(;!J4(s);)for(let f of p){let g=r[f.name];if(g.name in s){let b=s[g.name];delete s[g.name];for(let y of b)o(g,y)}}let d=[],c=[],h=t.inputLayers;for(let f of h){let g=f[0],b=f[1],y=f[2];ir(g in r);let x=r[g].inboundNodes[b].outputTensors;d.push(x[y])}let m=t.outputLayers;for(let f of m){let g=f[0],b=f[1],y=f[2];ir(g in r);let x=r[g].inboundNodes[b].outputTensors;c.push(x[y])}return new e({inputs:d,outputs:c,name:u})}get stateful(){if(this._stateful)throw new H("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(){O(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function TU(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 kN(e,t){return TU(e,t,"classWeight")}async function IN(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=O(()=>{if(e.shape.length===1)return ur(e);if(e.shape.length===2){if(e.shape[1]>1)return di(e,1);if(e.shape[1]===1)return B(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());Me(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 SU(e,t){return W(e,t)}var NU=32;function TN(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=Pk("input",e.inputNames,n),i=Pk("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 Pk(e,t,n){if(n instanceof $e)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 H(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function CU(e){if(e.length===3)throw new Pe("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function _U(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(Ok(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=CU(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=mN(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=fN(p,d,n.epochs,null,null,EU(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;Ok(n.validationData)?w=xt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):w=xt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?NU:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new Pe("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=$U(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=TN(e,u.value),c=p.concat(d),h=O(()=>r(c));if(Me(c),l===0)for(let f=0;fQ(s[f],W(m,g))),l>0&&Me(b)}Me(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 Gp(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>si(a,t,n-t)):si(e,t,n-t)}function Aw(e,t){return O(()=>e==null?null:Array.isArray(e)?e.map(n=>Aw(n,t)):nN(e,t.dtype==="int32"?t:le(t,"int32")))}function ox(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function FU(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 H("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"),b;g!=null&&(b=Ya(0,g)),i==null&&(i=1);let{callbackList:y,history:x}=fN(o,i,s,c,g,h,r,f,d);y.setModel(e),e.history=x,await y.onTrainBegin(),e.stopTraining_=!1;for(let w=c;w{let M=_[$][0],D=_[$][1],T=si(N,M,D-M);A.batch=$,A.size=D-M;let P=Aw(n,T),U=t(P);for(let j=0;j0){if(g=!0,a.validationData.length===2)l=a.validationData[0],u=a.validationData[1];else throw a.validationData.length===3?new Pe("validationData including sample weights is not supported yet."):new H(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${a.validationData} is invalid.`);let $=!0,A=await e.standardizeUserData(l,u,null,null,$,h);p=A[0],d=A[1],b=p.concat(d)}else if(a.validationSplit!=null&&a.validationSplit>0&&a.validationSplit<1){g=!0;let $=Math.floor(r[0].shape[0]*(1-a.validationSplit)),A=r[0].shape[0];p=Gp(r,$,A),i=r,r=Gp(r,0,$),d=Gp(s,$,A),o=s,s=Gp(s,0,$),b=p.concat(d)}else a.validationSteps!=null&&(g=!0);let y=r.concat(s).concat(c);e.checkTrainableWeightsConsistency();let x=e.makeTrainFunction(),w=e.getDedupedMetricsNames(),I,N;g?(e.makeTestFunction(),I=e.testFunction,N=w.slice().concat(w.map($=>"val_"+$))):(I=null,b=[],N=w.slice());let _=mN(a.callbacks,a.yieldEvery);return await FU(e,x,y,w,h,a.epochs,a.verbose,_,I,b,a.shuffle,N,a.initialEpoch,null,null)}finally{e.isTraining=!1,Ga(r,t),Ga(s,n),Ga(i,t),Ga(o,n),Ga(p,l),Ga(d,u),c!=null&&Me(c)}}function SN(e){let t=[];e instanceof $e&&(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 $e)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 RU(e){return e instanceof $e}function lx(e){return Array.isArray(e)}function Lk(e){return!RU(e)&&!lx(e)}function zk(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(lx(e)&&e.length>0)i=!0;else if(Lk(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new H(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(Lk(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new H(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(lx(e)){if(e=e,e.length!==t.length)throw new H(`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 H(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=SN(s),n!=null)for(let i=0;i=0&&u!==p)throw new H(`${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=ts(e.map(s=>s.shape[0]));a.sort();let r=ts(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new H(`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 H(`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 H(`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 PU(e,t,n){let a=[No,Hf,uc];for(let r=0;r1)throw new H(`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 LU="layers-model",Er=class extends ar{constructor(e){super(e),this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new H("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).");xU(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=yU(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Dr))throw new H("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 H(`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($y(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new H(`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=>$y(s))}else{let s=$y(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=OU(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])};ri("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]===Hf?["accuracy","acc"].indexOf(c)!==-1?p=Cw:["crossentropy","ce"].indexOf(c)!==-1&&(p=yN):this.lossFunctions[s]===Jh?["accuracy","acc"].indexOf(c)!==-1?p=xN:["crossentropy","ce"].indexOf(c)!==-1&&(p=vN):["accuracy","acc"].indexOf(c)!==-1?p=_w:["crossentropy","ce"].indexOf(c)!==-1&&(p=Ew);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=bU(c),u=l+bh(c);let h;ri(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;ix(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 zn(l)}finally{Ga(s[0],e),Ga(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),AU(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new H(`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 H(`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 H("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new ei;if(e instanceof $e&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new H(`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 H(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return O(()=>{let a=this.checkNumSamples(e);if(n)throw new Pe("Verbose predictLoop() is not implemented yet.");let r=ox(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=Gp(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return zn(s.map(i=>Qe(i,0)))})}predict(e,t={}){let n=SN(e);Wk(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return ix(a),this.predictLoop(n,a)}finally{Ga(n,e)}}predictOnBatch(e){Wk(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 Ha("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 H(`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=kN(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new Pe("Verbose mode is not implemented yet.");if(r!=null)throw new Pe("steps mode in testLoop() is not implemented yet");{let o=ox(s,n),l=Ke(Ya(0,s));for(let u=0;u1&&(r+=`_${Sk(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=Q(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=>O(()=>{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;lIr(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]=Ir(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[Ir(bh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Ir(bh(e)));{let e={};for(let t in this.metrics)e[t]=Ir(bh(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=pc(e.optimizer_config),n=Ka(t),a;if(typeof e.loss=="string")a=Zs(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Zs(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Zs(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Zs(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Zs(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=Sn.getSaveHandlers(e);if(i.length===0)throw new H(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new H(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new H("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Sn.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:LU,generatedBy:`TensorFlow.js tfjs-layers v${$w}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await Sn.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=Sn.concatenateArrayBuffers([n.data,o])}return this.userDefinedMetadata!=null&&(Mk(this.userDefinedMetadata,this.name,!0),s.userDefinedMetadata=this.userDefinedMetadata),s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){Mk(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Er.className="Model";se.registerClass(Er);var NN=class extends Er{};NN.className="Functional";se.registerClass(NN);async function zU(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=pc(n),r=Ka(a,t);if(e.weightsManifest!=null){let s=await Sn.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),Me(s)}return r}async function WU(e,t){if(t==null&&(t={}),typeof e=="string"){let n=Sn.getLoadHandlers(e,t);if(n.length===0)n.push(Sn.browserHTTPRequest(e,t));else if(n.length>1)throw new H(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return BU(e,void 0,t)}async function BU(e,t,n){if(n==null&&(n={}),e.load==null)throw new H("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=Ka(pc(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 H("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:u,optimizerWeights:p}=VU(a.weightData,a.weightSpecs);o.loadWeights(u,s),o.optimizer!=null&&p.length>0&&await o.optimizer.setWeights(p),Me(u),Me(p.map(d=>d.tensor))}return o}function VU(e,t){let n=Sn.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 Il=class extends Er{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:Df("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 H(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof Il||e instanceof Er,n;if(t){if(n=e,n.outputs.length!==1)throw new H("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 H("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 H("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=iN({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 H(`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 H("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=sN(this.outputs[0])}this.inboundNodes=[],new Uf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:gi(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(it(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 Ha("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 Ha("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 Ha("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 Ha("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 H("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 Il))throw new Pe(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=Ka(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new H("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 H("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}}};Il.className="Sequential";se.registerClass(Il);function UU(e){return new Er(e)}function GU(e){return new Il(e)}function HU(e,t){return t==null&&(t={}),WU(e,t)}function CN(e){return iN(e)}function jU(e,t){Ta.registerCallbackConstructor(e,t)}var qn=class extends se.Serializable{getConfig(){return{}}},_N=class extends qn{apply(e,t=1){return hV(e,t)}};_N.className="elu";se.registerClass(_N);var EN=class extends qn{apply(e){return mf(e)}};EN.className="selu";se.registerClass(EN);var $N=class extends qn{apply(e){return Xe(e)}};$N.className="relu";se.registerClass($N);var AN=class extends qn{apply(e){return O(()=>Wu(6,Xe(e)))}};AN.className="relu6";se.registerClass(AN);var FN=class extends qn{apply(e){return e}};FN.className="linear";se.registerClass(FN);var DN=class extends qn{apply(e){return da(e)}};DN.className="sigmoid";se.registerClass(DN);var RN=class extends qn{apply(e){return fV(e)}};RN.className="hardSigmoid";se.registerClass(RN);var MN=class extends qn{apply(e){return ko(e)}};MN.className="softplus";se.registerClass(MN);var PN=class extends qn{apply(e){return mV(e)}};PN.className="softsign";se.registerClass(PN);var ON=class extends qn{apply(e){return hi(e)}};ON.className="tanh";se.registerClass(ON);var Fw=class extends qn{apply(e,t=-1){return Qa(e,t)}};Fw.className="softmax";se.registerClass(Fw);var LN=class extends qn{apply(e,t=-1){return sf(e,t)}};LN.className="logSoftmax";se.registerClass(LN);var zN=class extends qn{apply(e,t=1){return O(()=>W(da(W(e,t)),e))}};zN.className="swish";se.registerClass(zN);var WN=class extends qn{apply(e){return O(()=>W(e,hi(ko(e))))}};WN.className="mish";se.registerClass(WN);function os(e){return e.getClassName()}function Ay(e,t={}){return nd(e,se.SerializationMap.getMap().classNameMap,t,"activation")}function ls(e){if(e==null){let t={};return t.className="linear",t.config={},Ay(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},Ay(t)}else return e instanceof qn?e:Ay(e)}function Dw(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 BN=class extends se.Serializable{},od=class extends BN{constructor(e){super(),Dw(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 O(()=>{let t=It([1]);return this.hasL1&&(t=Q(t,ye(W(this.l1,Lt(e))))),this.hasL2&&(t=Q(t,ye(W(this.l2,rd(e))))),B(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};od.className="L1L2";se.registerClass(od);function qU(e){return Dw(e),new od({l1:e!=null?e.l1:null,l2:0})}function KU(e){return Dw(e),new od({l2:e!=null?e.l2:null,l1:0})}var Bk={l1l2:"L1L2"};function ht(e){return pw(e)}function Vk(e,t={}){return nd(e,se.SerializationMap.getMap().classNameMap,t,"regularizer")}function St(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in Bk?Bk[e]:e,config:{}};return Vk(t)}else return e instanceof BN?e:Vk(e)}var Rw=class extends Ye{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=ze(e);let n=Xe(e);return this.maxValue!=null&&(n=tn(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};Rw.className="ReLU";se.registerClass(Rw);var Mw=class extends Ye{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=ze(e);return jc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};Mw.className="LeakyReLU";se.registerClass(Mw);var Pw=class extends Ye{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=Tt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=St(e.alphaRegularizer),this.alphaConstraint=Xt(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 H(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=it(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(Pt(t),t==="channelsFirst"?Ae(e,[0,2,3,1]):e))}function VN(e,t){return O(()=>(Pt(t),t==="channelsFirst"?Ae(e,[0,2,3,4,1]):e))}function XU(e,t,n,a=1,r="valid",s,i=1){return O(()=>{if(s==null&&(s=Za()),Pt(s),e.shape.length!==3)throw new H(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new H(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new H(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=Ae(e,[0,2,1])),r==="causal")throw new Pe("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=Jm(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=er(o,n)),o})}function Uk(e,t,n,a=[1,1],r="valid",s,i,o=null){return O(()=>{if(s==null&&(s=Za()),Pt(s),e.rank!==3&&e.rank!==4)throw new H(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new H(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=Ww(e,s);if(r==="causal")throw new Pe("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=vl.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ae(l,[0,3,1,2])),l})}function YU(e,t,n,a=[1,1,1],r="valid",s,i){return O(()=>{if(s==null&&(s=Za()),Pt(s),e.rank!==4&&e.rank!==5)throw new H(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new H(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=VN(e,s);if(r==="causal")throw new Pe("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=Sv(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=er(o,n)),s==="channelsFirst"&&(o=Ae(o,[0,4,1,2,3])),o})}var Bw=class extends Ye{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Bw.verifyArgs(t),this.rank=e,en(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Pe(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=cl(t.kernelSize,e,"kernelSize"),this.strides=cl(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,ya(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Pt(this.dataFormat),this.activation=ls(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=Tt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Xt(t.biasConstraint),this.biasRegularizer=St(t.biasRegularizer),this.activityRegularizer=St(t.activityRegularizer),this.dilationRate=cl(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new H(`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 H(`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 H(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(ir("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!cw(e.kernelSize,"number",1,3))throw new H(`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:os(this.activation),useBias:this.useBias,biasInitializer:Et(this.biasInitializer),biasRegularizer:ht(this.biasRegularizer),activityRegularizer:ht(this.activityRegularizer),biasConstraint:Kt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},ld=class extends Bw{constructor(e,t){super(e,t),this.kernel=null,ld.verifyArgs(t),this.filters=t.filters,en(this.filters,"filters"),this.kernelInitializer=Tt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Xt(t.kernelConstraint),this.kernelRegularizer=St(t.kernelRegularizer)}build(e){e=it(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new H(`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 O(()=>{e=ze(e);let n,a=this.bias==null?null:this.bias.read(),r=YS(this.activation.getClassName());if(r!=null&&this.rank===2)n=Uk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=XU(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=Uk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=YU(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Pe("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=it(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)}`)}},ud=class extends ld{constructor(e){super(2,e),ud.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!cw(e.kernelSize,"number",1,2))throw new H(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};ud.className="Conv2D";se.registerClass(ud);var pd=class extends ld{constructor(e){super(3,e),pd.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 H(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};pd.className="Conv3D";se.registerClass(pd);var Vw=class extends ud{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new H(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=it(e),e.length!==4)throw new H("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 H("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 O(()=>{let n=ze(e);if(n.shape.length!==4)throw new H(`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=or(o,d,u,this.padding),m=or(l,c,p,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ae(n,[0,2,3,1]));let g=Qm(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ae(g,[0,3,1,2])),this.bias!=null&&(g=er(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=it(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]=or(t[a],o,s,this.padding),t[r]=or(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Vw.className="Conv2DTranspose";se.registerClass(Vw);var Uw=class extends pd{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new H(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=it(e),e.length!==5)throw new H("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 H("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 O(()=>{let n=ze(e);if(n.shape.length!==5)throw new H(`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],b=or(l,m,d,this.padding),y=or(u,f,c,this.padding),x=or(p,g,h,this.padding),w=[r,b,y,x,this.filters];this.dataFormat!=="channelsLast"&&(n=Ae(n,[0,2,3,4,1]));let I=Nv(n,this.kernel.read(),w,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=Ae(I,[0,4,1,2,3])),this.bias!==null&&(I=er(I,this.bias.read(),this.dataFormat)),this.activation!==null&&(I=this.activation.apply(I)),I})}computeOutputShape(e){e=it(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]=or(t[a],u,i,this.padding),t[r]=or(t[r],p,o,this.padding),t[s]=or(t[s],d,l,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Uw.className="Conv3DTranspose";se.registerClass(Uw);var UN=class extends ld{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 H("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new H("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 H(`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=Tt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=St(t.depthwiseRegularizer),this.depthwiseConstraint=Xt(t.depthwiseConstraint),this.pointwiseInitializer=Tt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=St(t.pointwiseRegularizer),this.pointwiseConstraint=Xt(t.pointwiseConstraint)}build(e){if(e=it(e),e.length{e=ze(e);let n;if(this.rank===1)throw new Pe("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ae(e,[0,2,3,1])),n=Ts(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=er(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ae(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=Et(this.depthwiseInitializer),e.pointwiseInitializer=Et(this.pointwiseInitializer),e.depthwiseRegularizer=ht(this.depthwiseRegularizer),e.pointwiseRegularizer=ht(this.pointwiseRegularizer),e.depthwiseConstraint=Kt(this.depthwiseConstraint),e.pointwiseConstraint=Kt(this.pointwiseConstraint),e}};UN.className="SeparableConv";var Gw=class extends UN{constructor(e){super(2,e)}};Gw.className="SeparableConv2D";se.registerClass(Gw);var jf=class extends ld{constructor(e){super(1,e),jf.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"&&!cw(e.kernelSize,"number",1,1))throw new H(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};jf.className="Conv1D";se.registerClass(jf);var Hw=class extends Ye{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 O(()=>{if(e=ze(e),this.dataFormat==="channelsLast"){let n=gh(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return gh(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=gh(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return gh(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}};Hw.className="Cropping2D";se.registerClass(Hw);var jw=class extends Ye{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,Pt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,iV(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 O(()=>{let n=ze(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ae(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?Nr.resizeNearestNeighbor(n,[r,s]):Nr.resizeBilinear(n,[r,s]);return Ae(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?Nr.resizeNearestNeighbor(n,[r,s]):Nr.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}};jw.className="UpSampling2D";se.registerClass(jw);function ZU(e,t,n=[1,1],a="valid",r,s){return O(()=>{r==null&&(r=Za()),Pt(r);let i=Ww(e,r);if(e.rank!==4)throw new H(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new H(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=ws(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=Ae(i,[0,3,1,2])),i})}var qw=class extends Bw{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=Tt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Xt(e.depthwiseConstraint),this.depthwiseRegularizer=St(e.depthwiseRegularizer)}build(e){if(e=it(e),e.length<4)throw new H(`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 H(`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 O(()=>{e=ze(e);let n=ZU(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=er(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=it(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=Xa(t,this.kernelSize[0],this.padding,this.strides[0]),s=Xa(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=Et(this.depthwiseInitializer),e.depthwiseRegularizer=ht(this.depthwiseRegularizer),e.depthwiseConstraint=Kt(this.depthwiseRegularizer),e}};qw.className="DepthwiseConv2D";se.registerClass(qw);function GN(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new H("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 HN(e,t,n,a=!1,r,s,i=!1,o=!1){return O(()=>{let l=t.shape.length;if(l<3)throw new H(`Input should be at least 3D, but is ${l}D.`);let u=[1,0].concat(Ya(2,l));if(t=Ae(t,u),s!=null)throw new Pe("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=mn(r,-1)),r=Ae(r,u)),a&&(t=fa(t,0),r!=null&&(r=fa(r,0)));let p=[],d,c=n,h=t.shape[0],m=mt(t),f;r!=null&&(f=mt(r));for(let b=0;be(y,c));if(r==null)d=x[0],c=x[1];else{let w=O(()=>{let I=f[b],N=ce(ta(I),I),_=Q(W(x[0],I),W(c[0],N)),$=c.map((A,M)=>Q(W(x[1][M],I),W(A,N)));return{output:_,newStates:$}});d=w.output,c=w.newStates}o&&p.push(d)}let g;return o&&(g=Rt(p,1)),[d,g,c]})}var br=class extends Ye{constructor(e){super(e);let t;if(e.cell==null)throw new H("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new Xf({cells:e.cell}):t=e.cell,t.stateSize==null)throw new H("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 Ya(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){nx(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 O(()=>{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 H(`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){O(()=>{if(!this.stateful)throw new kr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new H("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)Me(this.states_),this.keptStates!=null&&(Me(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 H(`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()):Me(this.states_);for(let a=0;aQt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=GN(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 ja){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 O(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=ze(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 H(`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=HN((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 O(()=>{let t=It(e.shape);return t=ye(t,[1,2]),t=ad(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?ex(t,[1,n]):t):this.cell.stateSize>1?[ex(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()===br.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){let a=t.cell,r=Ka(a,n);return new e(Object.assign(t,{cell:r}))}};br.className="RNN";se.registerClass(br);var cd=class extends Ye{},qf=class extends cd{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,en(this.units,"units"),this.activation=ls(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=St(e.kernelRegularizer),this.recurrentRegularizer=St(e.recurrentRegularizer),this.biasRegularizer=St(e.biasRegularizer),this.kernelConstraint=Xt(e.kernelConstraint),this.recurrentConstraint=Xt(e.recurrentConstraint),this.biasConstraint=Xt(e.biasConstraint),this.dropout=wl([1,is([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=wl([1,is([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=it(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 O(()=>{if(e=e,e.length!==2)throw new H(`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=pr(W(e,s),this.kernel.read()):r=pr(e,this.kernel.read()),this.bias!=null&&(r=er(r,this.bias.read())),i!=null&&(n=W(n,i));let o=Q(r,pr(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:os(this.activation),useBias:this.useBias,kernelInitializer:Et(this.kernelInitializer),recurrentInitializer:Et(this.recurrentInitializer),biasInitializer:Et(this.biasInitializer),kernelRegularizer:ht(this.kernelRegularizer),recurrentRegularizer:ht(this.recurrentRegularizer),biasRegularizer:ht(this.biasRegularizer),activityRegularizer:ht(this.activityRegularizer),kernelConstraint:Kt(this.kernelConstraint),recurrentConstraint:Kt(this.recurrentConstraint),biasConstraint:Kt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}};qf.className="SimpleRNNCell";se.registerClass(qf);var Kw=class extends br{constructor(e){e.cell=new qf(e),super(e)}call(e,t){return O(()=>{this.cell.dropoutMask!=null&&(Me(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Me(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)}};Kw.className="SimpleRNN";se.registerClass(Kw);var Kf=class extends cd{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 H("GRUCell does not support reset_after parameter set to true.");this.units=e.units,en(this.units,"units"),this.activation=ls(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ls(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=St(e.kernelRegularizer),this.recurrentRegularizer=St(e.recurrentRegularizer),this.biasRegularizer=St(e.biasRegularizer),this.kernelConstraint=Xt(e.kernelConstraint),this.recurrentConstraint=Xt(e.recurrentConstraint),this.biasConstraint=Xt(e.biasConstraint),this.dropout=wl([1,is([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=wl([1,is([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=it(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 O(()=>{if(e=e,e.length!==2)throw new H(`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&&(Me(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Me(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)}};Xw.className="GRU";se.registerClass(Xw);var dd=class extends cd{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,en(this.units,"units"),this.activation=ls(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ls(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=St(e.kernelRegularizer),this.recurrentRegularizer=St(e.recurrentRegularizer),this.biasRegularizer=St(e.biasRegularizer),this.kernelConstraint=Xt(e.kernelConstraint),this.recurrentConstraint=Xt(e.recurrentConstraint),this.biasConstraint=Xt(e.biasConstraint),this.dropout=wl([1,is([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=wl([1,is([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=it(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 Aa{apply(i,o){let l=r.apply([s]),u=new Pf().apply([s]),p=r.apply([s*2]);return Ck(Ck(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 O(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new H(`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&&(Me(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Me(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)}};Yw.className="LSTM";se.registerClass(Yw);var Xf=class extends cd{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 O(()=>{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{ri(`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({},e,n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Ka(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 ax(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):aN(t(),n),o=()=>sd(i,t,a);return!r||r<=1?Qt(o().clone()):Array(r).fill(void 0).map(o).map(l=>Qt(l.clone()))}var JU=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&&(Me(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Me(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new H("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 O(()=>{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){O(()=>{if(!this.stateful)throw new kr("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 H("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)Me(this.states_),this.keptStates!=null&&(Me(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 H(`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()):Me(this.states_);for(let s=0;sQt(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=Xa(l,a[0],r,s[0],i[0]),d=Xa(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,p,d]:[p,d,n]]}};jN.className="ConvRNN2D";var Yf=class extends dd{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign({},e,{units:t})),this.filters=t,en(this.filters,"filters"),this.kernelSize=cl(n,2,"kernelSize"),this.kernelSize.forEach(o=>en(o,"kernelSize")),this.strides=cl(a||1,2,"strides"),this.strides.forEach(o=>en(o,"strides")),this.padding=r||"valid",ya(this.padding),this.dataFormat=s||"channelsLast",Pt(this.dataFormat),this.dilationRate=cl(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>en(o,"dilationRate"))}build(e){var t;e=it(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new H(`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 Aa{apply(p,d){let c=l.apply([u]),h=Jn([u]),m=l.apply([u*2]);return dw([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 O(()=>{if(e.length!==3)throw new H(`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=(te,re,J)=>!re||!re[J]?te:W(re[J],te),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),b=l(r,h,3),y=3,[x,w,I,N]=Vn(this.kernel.read(),i,y),[_,$,A,M]=this.useBias?Vn(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,_,this.padding),p=this.inputConv(p,w,$,this.padding),d=this.inputConv(d,I,A,this.padding),c=this.inputConv(c,N,M,this.padding);let[D,T,P,U]=Vn(this.recurrentKernel.read(),i,y);m=this.recurrentConv(m,D),f=this.recurrentConv(f,T),g=this.recurrentConv(g,P),b=this.recurrentConv(b,U);let j=this.recurrentActivation.apply(Q(u,m)),q=this.recurrentActivation.apply(Q(p,f)),K=Q(W(q,s),W(j,this.activation.apply(Q(d,g)))),Y=W(this.recurrentActivation.apply(Q(c,b)),this.activation.apply(K));return[Y,Y,K]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=JU(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},n,a)}inputConv(e,t,n,a){let r=Dt(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?er(r,n,this.dataFormat):r}recurrentConv(e,t){return Dt(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Yf.className="ConvLSTM2DCell";se.registerClass(Yf);var Zw=class extends jN{constructor(e){let t=new Yf(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}};Zw.className="ConvLSTM2D";se.registerClass(Zw);var Zf=class extends Ye{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=ze(e);if(0aN(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()}};Zf.className="Dropout";se.registerClass(Zf);var Jw=class extends Zf{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};Jw.className="SpatialDropout1D";se.registerClass(Jw);var Qw=class extends Ye{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,en(this.units,"units"),this.activation=ls(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Xt(e.kernelConstraint),this.biasConstraint=Xt(e.biasConstraint),this.kernelRegularizer=St(e.kernelRegularizer),this.biasRegularizer=St(e.biasRegularizer),this.activityRegularizer=St(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=it(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=it(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return O(()=>{this.invokeCallHook(e,t);let n=ze(e),a=YS(this.activation.getClassName()),r;return a!=null?r=pr(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=pr(n,this.kernel.read()),this.bias!=null&&(r=er(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:os(this.activation),useBias:this.useBias,kernelInitializer:Et(this.kernelInitializer),biasInitializer:Et(this.biasInitializer),kernelRegularizer:ht(this.kernelRegularizer),biasRegularizer:ht(this.biasRegularizer),activityRegularizer:ht(this.activityRegularizer),kernelConstraint:Kt(this.kernelConstraint),biasConstraint:Kt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Qw.className="Dense";se.registerClass(Qw);var e0=class extends Ye{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=it(e);for(let t of e.slice(1))if(t==null)throw new H(`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],ns(e,1)]}call(e,t){return O(()=>{this.invokeCallHook(e,t);let n=ze(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=ze(e);return this.activation.apply(n)})}getConfig(){let e={activation:os(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};t0.className="Activation";se.registerClass(t0);var n0=class extends Ye{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 O(()=>(e=ze(e),pV(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};n0.className="RepeatVector";se.registerClass(n0);var a0=class extends Ye{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=ze(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return B(n,r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};a0.className="Reshape";se.registerClass(a0);var r0=class extends Ye{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=Ya(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=it(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ae(ze(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};r0.className="Permute";se.registerClass(r0);var s0=class extends Ye{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=ze(e),a=-1;return ic(fi(n,this.maskValue),a)}call(e,t){return O(()=>{this.invokeCallHook(e,t);let n=ze(e),a=-1,r=!0,s=ic(fi(n,this.maskValue),a,r);return W(n,le(s,n.dtype))})}};s0.className="Masking";se.registerClass(s0);var i0=class extends Ye{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,en(this.inputDim,"inputDim"),this.outputDim=e.outputDim,en(this.outputDim,"outputDim"),this.embeddingsInitializer=Tt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=St(e.embeddingsRegularizer),this.activityRegularizer=St(e.activityRegularizer),this.embeddingsConstraint=Xt(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 O(()=>this.maskZero?(e=ze(e),fi(e,qe(e))):null)}computeOutputShape(e){if(e=it(e),this.inputLength==null)return[...e,this.outputDim];let t=xt(this.inputLength);if(t.length!==e.length-1)throw new H(`"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=ze(e);n.dtype!=="int32"&&(n=Rf(n,"int32"));let a=nN(this.embeddings.read(),B(n,[n.size]));return B(a,it(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Et(this.embeddingsInitializer),embeddingsRegularizer:ht(this.embeddingsRegularizer),activityRegularizer:ht(this.activityRegularizer),embeddingsConstraint:Kt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};i0.className="Embedding";se.registerClass(i0);var Co=class extends Ye{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Pe}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new H(`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&&ts(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return O(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=is(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=Ya(1,l).concat([0]);n.push(Ae(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=B(Ae(B(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(Ya(0,i-1));s=Ae(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 H("`mask` should be an Array");if(!Array.isArray(e))throw new H("`inputs` should be an Array");if(t.length!==e.length)throw new H(`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:mn(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 H("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return O(()=>dw(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new H("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 H("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new H("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new H(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return O(()=>{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 Pe("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 Pe("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 O(()=>{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 Pe("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 H(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new H(`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)=>Lp(r,e[s].shape.length)):a=[Lp(this.axes,t.shape.length),Lp(this.axes,n.shape.length)],this.normalize&&(t=Zh(t,a[0]),n=Zh(n,a[1])),QU(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[Lp(this.axes,e.length),Lp(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 Pe("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}};h0.className="Dot";se.registerClass(h0);var m0=class extends Ye{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 O(()=>{this.invokeCallHook(e,t);let n=ze(e);return sd(()=>Q(Mf(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};m0.className="GaussianNoise";se.registerClass(m0);var f0=class extends Ye{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 O(()=>{this.invokeCallHook(e,t);let n=ze(e);return this.rate>0&&this.rate<1?sd(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return W(n,Mf(n.shape,1,a))},()=>n,t.training||!1):n})}};f0.className="GaussianDropout";se.registerClass(f0);var g0=class extends Ye{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||ze(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 O(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return sd(()=>{let a=ze(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=ks(Bu(n),this.rate);o=Rf(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,u=-l*i*this.rate,p=Q(W(a,o),W(Q(o,-1),i));return Q(W(p,l),u)},()=>ze(e),t.training||!1)}return e})}};g0.className="AlphaDropout";se.registerClass(g0);function cc(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=fv(e,t,n,a,r,s);else if(e.rank===3)i=gv(e,t,n,a,r,s);else if(e.rank===4)i=bv(e,t,n,a,r,s);else throw new Pe(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function eG(e,t,n,a,r=.001){return O(()=>{let s=Xc(e,a),i=s.mean,o=s.variance;return[cc(e,i,o,n,t,r),i,o]})}function tG(e,t,n,a,r=.001){return O(()=>{let s=Xc(e,a),i=s.mean,o=s.variance,l=[];for(let h of Ya(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=B(i,l),p=B(o,l),d=t==null?null:B(t,l),c=n==null?null:B(n,l);return[cc(e,u,p,c,d,r),i,o]})}function nG(e,t,n,a,r=.001){return v.arraysEqual(a.slice().sort(),Ya(0,e.rank-1))?eG(e,t,n,a,r):tG(e,t,n,a,r)}var b0=class extends Ye{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=Tt(e.betaInitializer||"zeros"),this.gammaInitializer=Tt(e.gammaInitializer||"ones"),this.movingMeanInitializer=Tt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=Tt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Xt(e.betaConstraint),this.gammaConstraint=Xt(e.gammaConstraint),this.betaRegularizer=St(e.betaRegularizer),this.gammaRegularizer=St(e.gammaRegularizer)}build(e){e=it(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new H(`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 O(()=>{let n=t.training==null?!1:t.training,a=ze(e),r=a.shape,s=r.length,i=Ya(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=gi(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!v.arraysEqual(u,Ya(0,s).slice(0,s-1)),d=()=>{if(p){let g=B(this.movingMean.read(),l),b=B(this.movingVariance.read(),l),y=this.center?B(this.beta.read(),l):null,x=this.scale?B(this.gamma.read(),l):null;return cc(a,g,b,y,x,this.epsilon)}else return cc(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]=nG(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,b,y)=>{O(()=>{let x=1-y,w=g.read(),I=W(ce(w,b),x);g.write(ce(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:Et(this.betaInitializer),gammaInitializer:Et(this.gammaInitializer),movingMeanInitializer:Et(this.movingMeanInitializer),movingVarianceInitializer:Et(this.movingVarianceInitializer),betaRegularizer:ht(this.betaRegularizer),gammaRegularizer:ht(this.gammaRegularizer),betaConstraint:Kt(this.betaConstraint),gammaConstraint:Kt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};b0.className="BatchNormalization";se.registerClass(b0);var y0=class extends Ye{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=Tt(e.betaInitializer||"zeros"),this.gammaInitializer=Tt(e.gammaInitializer||"ones"),this.betaRegularizer=St(e.betaRegularizer),this.gammaRegularizer=St(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=it(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!==ts(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=ze(e),a=n.shape,r=a.length;return O(()=>{let{mean:s,variance:i}=Xc(n,this.axis,!0),o=gi(1,r);for(let h of this.axis)o[h]=a[h];let l=h=>h!=null&&h.shape.length!==r?B(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 H(`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 H("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=Za()),n!=="channelsLast"&&n!=="channelsFirst")throw new H(`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 x0=class extends Ye{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?Za():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 H(`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 H(`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 H(`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=it(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 O(()=>aG(ze(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};x0.className="ZeroPadding2D";se.registerClass(x0);function Jf(e,t,n,a,r,s){return O(()=>{Pt(r),JS(s),ya(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=Za()),s==null&&(s="max"),e=Ww(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Mt(e,t,n,o):i=ga(e,t,n,o),r==="channelsFirst"&&(i=Ae(i,[0,3,1,2])),i})}function qN(e,t,n,a,r,s){return O(()=>{Pt(r),JS(s),ya(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=Za()),s==null&&(s="max"),e=VN(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Vv(e,t,n,o):i=mv(e,t,n,o),r==="channelsFirst"&&(i=Ae(i,[0,4,1,2,3])),i})}var KN=class extends Ye{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 H(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(en(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 H(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);en(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,ya(this.padding),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){e=it(e);let t=Xa(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return O(()=>{this.invokeCallHook(e,t),e=ad(ze(e),2);let n=this.poolingFunction(ze(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Ss(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},v0=class extends KN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),ya(a),Jf(e,t,n,a,r,"max")}};v0.className="MaxPooling1D";se.registerClass(v0);var w0=class extends KN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),ya(a),Jf(e,t,n,a,r,"avg")}};w0.className="AveragePooling1D";se.registerClass(w0);var XN=class extends Ye{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 H(`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];en(this.poolSize,"poolSize"),en(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(this.dataFormat),ya(this.padding),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=it(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Xa(t,this.poolSize[0],this.padding,this.strides[0]),n=Xa(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 O(()=>(this.invokeCallHook(e,t),this.poolingFunction(ze(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}},k0=class extends XN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),ya(a),Jf(e,t,n,a,r,"max")}};k0.className="MaxPooling2D";se.registerClass(k0);var I0=class extends XN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),ya(a),Jf(e,t,n,a,r,"avg")}};I0.className="AveragePooling2D";se.registerClass(I0);var YN=class extends Ye{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 H(`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];en(this.poolSize,"poolSize"),en(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(this.dataFormat),ya(this.padding),this.inputSpec=[new zt({ndim:5})]}computeOutputShape(e){e=it(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=Xa(t,this.poolSize[0],this.padding,this.strides[0]),n=Xa(n,this.poolSize[1],this.padding,this.strides[1]),a=Xa(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 O(()=>(this.invokeCallHook(e,t),this.poolingFunction(ze(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}},T0=class extends YN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),ya(a),qN(e,t,n,a,r,"max")}};T0.className="MaxPooling3D";se.registerClass(T0);var S0=class extends YN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),ya(a),qN(e,t,n,a,r,"avg")}};S0.className="AveragePooling3D";se.registerClass(S0);var ZN=class extends Ye{constructor(e){super(e),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Pe}},N0=class extends ZN{constructor(e){super(e||{})}call(e,t){return O(()=>{let n=ze(e);return _t(n,1)})}};N0.className="GlobalAveragePooling1D";se.registerClass(N0);var C0=class extends ZN{constructor(e){super(e||{})}call(e,t){return O(()=>{let n=ze(e);return Na(n,1)})}};C0.className="GlobalMaxPooling1D";se.registerClass(C0);var JN=class extends Ye{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(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 Pe}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},_0=class extends JN{call(e,t){return O(()=>{let n=ze(e);return this.dataFormat==="channelsLast"?_t(n,[1,2]):_t(n,[2,3])})}};_0.className="GlobalAveragePooling2D";se.registerClass(_0);var E0=class extends JN{call(e,t){return O(()=>{let n=ze(e);return this.dataFormat==="channelsLast"?Na(n,[1,2]):Na(n,[2,3])})}};E0.className="GlobalMaxPooling2D";se.registerClass(E0);var QN=class extends Ye{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=Ka(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},$0=class extends QN{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=it(e),e.length<3)throw new H(`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=it(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 O(()=>(e=ze(e),HN((n,a)=>[ze(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};$0.className="TimeDistributed";se.registerClass($0);function rG(e){So(sV,"BidirectionalMergeMode",e)}var sG="concat",A0=class extends QN{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Ka(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Ka(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?sG:e.mergeMode,rG(this.mergeMode),e.weights)throw new Pe("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()):zn(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=GN(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 H("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 Pe("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof ja;for(let l of s)if(l instanceof ja!==o)throw new H("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 O(()=>{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=dw([a,r]):this.mergeMode==="sum"?i=Q(a,r):this.mergeMode==="ave"?i=W(.5,Q(a,r)):this.mergeMode==="mul"?i=W(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){ri(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),ri(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=Ka(t.layer);if(delete t.layer,t.numConstants!=null)throw new Pe("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};A0.className="Bidirectional";se.registerClass(A0);function iG(e){return new Uu(e)}function oG(e){return new Ow(e)}function lG(e){return new Rw(e)}function uG(e){return new Mw(e)}function pG(e){return new Pw(e)}function cG(e){return new zw(e)}function dG(e){return new Lw(e)}function hG(e){return new jf(e)}function mG(e){return new ud(e)}function fG(e){return new Vw(e)}function gG(e){return new pd(e)}function bG(e){return new Uw(e)}function yG(e){return new Gw(e)}function xG(e){return new Hw(e)}function vG(e){return new jw(e)}function wG(e){return new qw(e)}function kG(e){return new t0(e)}function IG(e){return new Qw(e)}function TG(e){return new Zf(e)}function SG(e){return new Jw(e)}function NG(e){return new e0(e)}function CG(e){return new n0(e)}function _G(e){return new a0(e)}function EG(e){return new r0(e)}function $G(e){return new i0(e)}function AG(e){return new o0(e)}function FG(e){return new u0(e)}function DG(e){return new d0(e)}function RG(e){return new p0(e)}function MG(e){return new c0(e)}function PG(e){return new l0(e)}function OG(e){return new h0(e)}function LG(e){return new b0(e)}function zG(e){return new y0(e)}function WG(e){return new x0(e)}function F0(e){return new w0(e)}function BG(e){return F0(e)}function VG(e){return F0(e)}function D0(e){return new I0(e)}function UG(e){return D0(e)}function GG(e){return D0(e)}function R0(e){return new S0(e)}function HG(e){return R0(e)}function jG(e){return R0(e)}function qG(e){return new N0(e)}function KG(e){return new _0(e)}function e2(e){return new C0(e)}function t2(e){return new E0(e)}function n2(e){return new v0(e)}function a2(e){return new k0(e)}function XG(e){return new T0(e)}function YG(e){return new Xw(e)}function ZG(e){return new Kf(e)}function JG(e){return new Yw(e)}function QG(e){return new dd(e)}function eH(e){return new Kw(e)}function tH(e){return new qf(e)}function nH(e){return new Zw(e)}function aH(e){return new Yf(e)}function rH(e){return new br(e)}function sH(e){return new Xf(e)}function iH(e){return new A0(e)}function oH(e){return new $0(e)}var lH=e2,uH=t2,pH=n2,cH=a2;function dH(e){return new m0(e)}function hH(e){return new f0(e)}function mH(e){return new g0(e)}function fH(e){return new s0(e)}var r2={};Fe(r2,{MAPE:()=>NH,MSE:()=>EH,binaryAccuracy:()=>gH,binaryCrossentropy:()=>bH,categoricalAccuracy:()=>xH,categoricalCrossentropy:()=>vH,cosineProximity:()=>IH,mape:()=>CH,meanAbsoluteError:()=>TH,meanAbsolutePercentageError:()=>SH,meanSquaredError:()=>_H,mse:()=>$H,precision:()=>wH,recall:()=>kH,sparseCategoricalAccuracy:()=>yH});function gH(e,t){return Cw(e,t)}function bH(e,t){return yN(e,t)}function yH(e,t){return xN(e,t)}function xH(e,t){return _w(e,t)}function vH(e,t){return Ew(e,t)}function wH(e,t){return bN(e,t)}function kH(e,t){return uU(e,t)}function IH(e,t){return Nw(e,t)}function TH(e,t){return Gf(e,t)}function SH(e,t){return Gu(e,t)}function NH(e,t){return Gu(e,t)}function CH(e,t){return Gu(e,t)}function _H(e,t){return No(e,t)}function EH(e,t){return No(e,t)}function $H(e,t){return No(e,t)}var s2={};Fe(s2,{modelFromJSON:()=>zU});var i2={};Fe(i2,{l1:()=>FH,l1l2:()=>AH,l2:()=>DH});function AH(e){return new od(e)}function FH(e){return qU(e)}function DH(e){return KU(e)}var o2=class extends kl{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 yh(e,t){return et}var l2=class extends o2{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new Pe("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=yh:this.mode==="max"?this.monitorFunc=Gk:this.monitor.indexOf("acc")!==-1?this.monitorFunc=Gk:this.monitorFunc=yh,this.monitorFunc===yh&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===yh?1/0:-1/0}async onEpochEnd(e,t){await Xr(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 RH(e){return new l2(e)}var MH={earlyStopping:RH},PH=X();PH.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 Ia;(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"})(Ia||(Ia={}));var Hk;(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={}))})(Hk||(Hk={}));var M0={};function OH(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};M0[e]=n}function u2(e){return M0[e]}function LH(e){delete M0[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 In(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(d=>In(d,n,a,r));let u=In(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 In(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[nm(r,o)]);return i!==void 0?t[nm(r,i)][s]:void 0}function zH(e,t,n){return t[nm(e,n.currentContextId)]}function lr(e,t){let[n,a,r]=Yn(e);return[nm(n,t&&t.currentContextId),a,r]}function nm(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 Ch(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:ur(e)}var p2={};Fe(p2,{json:()=>WH});var WH=[{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}]}],c2={};Fe(c2,{json:()=>BH});var BH=[{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}]}],d2={};Fe(d2,{json:()=>VH});var VH=[{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"}]}],h2={};Fe(h2,{json:()=>UH});var UH=[{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"}]}],m2={};Fe(m2,{json:()=>GH});var GH=[{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"}]}],f2={};Fe(f2,{json:()=>HH});var HH=[{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}]}],g2={};Fe(g2,{json:()=>jH});var jH=[{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"}]}],b2={};Fe(b2,{json:()=>qH});var qH=[{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"}]}],y2={};Fe(y2,{json:()=>KH});var KH=[{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"}]}],x2={};Fe(x2,{json:()=>XH});var XH=[{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"}]}],v2={};Fe(v2,{json:()=>YH});var YH=[{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}]}],w2={};Fe(w2,{json:()=>ZH});var ZH=[{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"}]}],k2={};Fe(k2,{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}]}],I2={};Fe(I2,{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"}]}],T2={};Fe(T2,{json:()=>e6});var e6=[{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}]}],S2={};Fe(S2,{json:()=>t6});var t6=[{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"}]}],N2={};Fe(N2,{json:()=>n6});var n6=[{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}]}],C2={};Fe(C2,{json:()=>a6});var a6=[{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"}]}],_2={};Fe(_2,{json:()=>r6});var r6=[{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:[]}],jk=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[p2,c2,d2,h2,m2,f2,g2,b2,y2,x2,v2,w2,k2,I2,T2,S2,N2,C2,_2],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}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,b)=>{let[y,,x]=lr(g),w=i[y];if(w.outputs!=null){let I=w.outputs.indexOf(x);if(I!==-1){let N=`${y}:${I}`;f.inputNames[b]=N}}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]=lr(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]=lr(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=u2(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=ux(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ux(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=gx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=gx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=cx(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=cx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=fx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=fx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=px(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=px(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=yx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=yx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=mx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=mx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=bx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=bx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=dx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=dx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=hx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=hx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=qk(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=qk(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]=lr(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:P0(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]=lr(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let b=`${h}:${g}`;p.inputNames[c]=b}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=lr(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 s6(e){let t=X().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 E2(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):s6(e);return t?n:n.toLowerCase()}function ux(e,t,n,a=!1){let r=e[t];return r!=null?E2(r.s,a):n}function px(e,t,n){let a=e[t];return a?a.b:n}function cx(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 P0(e){switch(typeof e=="string"&&(e=Ia[e]),e){case Ia.DT_FLOAT:case Ia.DT_HALF:return"float32";case Ia.DT_INT32:case Ia.DT_INT64:case Ia.DT_INT8:case Ia.DT_UINT8:return"int32";case Ia.DT_BOOL:return"bool";case Ia.DT_DOUBLE:return"float32";case Ia.DT_STRING:return"string";default:return null}}function qk(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function dx(e,t,n){let a=e[t];return a&&a.type?P0(a.type):n}function hx(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>P0(r)):n}function $2(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function mx(e,t,n){let a=e[t];return a&&a.shape?$2(a.shape):n}function fx(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 gx(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>E2(s,a)):n}function bx(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>$2(r)):n}function yx(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var i6=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 In(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return In(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return cx(this.node.rawAttrs,e,t);if(n.s!=null)return ux(this.node.rawAttrs,e,t);if(n.b!=null)return px(this.node.rawAttrs,e,t);if(n.shape!=null)return mx(this.node.rawAttrs,e,t);if(n.type!=null)return dx(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return fx(this.node.rawAttrs,e,t);if(n.list.s!=null)return gx(this.node.rawAttrs,e,t);if(n.list.shape!=null)return bx(this.node.rawAttrs,e,t);if(n.list.b!=null)return yx(this.node.rawAttrs,e,t);if(n.list.type!=null)return hx(this.node.rawAttrs,e,t)}return t}},un={};Fe(un,{OP_SCOPE_SUFFIX:()=>Hx,abs:()=>Lt,acos:()=>sv,acosh:()=>iv,add:()=>Q,addN:()=>OT,all:()=>Zm,any:()=>ic,argMax:()=>di,argMin:()=>ov,asin:()=>lv,asinh:()=>uv,atan:()=>pv,atan2:()=>cv,atanh:()=>dv,avgPool:()=>ga,avgPool3d:()=>mv,basicLSTMCell:()=>BT,batchNorm:()=>vs,batchNorm2d:()=>fv,batchNorm3d:()=>gv,batchNorm4d:()=>bv,batchToSpaceND:()=>Gc,bincount:()=>yv,booleanMaskAsync:()=>kS,broadcastArgs:()=>VT,broadcastTo:()=>ai,buffer:()=>Le,cast:()=>le,ceil:()=>xv,clipByValue:()=>tn,clone:()=>ur,complex:()=>$r,concat:()=>Qe,concat1d:()=>vv,concat2d:()=>wv,concat3d:()=>kv,concat4d:()=>Iv,conv1d:()=>Jm,conv2d:()=>Dt,conv2dTranspose:()=>Qm,conv3d:()=>Sv,conv3dTranspose:()=>Nv,cos:()=>Hc,cosh:()=>ef,cosineWindow:()=>kf,cumprod:()=>oc,cumsum:()=>tf,denseBincount:()=>GT,depthToSpace:()=>Cv,depthwiseConv2d:()=>ws,diag:()=>HT,dilation2d:()=>_v,div:()=>fe,divNoNan:()=>Ev,dot:()=>$v,dropout:()=>aw,einsum:()=>jT,elu:()=>Pu,enclosingPowerOfTwo:()=>rw,equal:()=>Qn,erf:()=>Av,euclideanNorm:()=>Rv,exp:()=>gn,expandDims:()=>mn,expm1:()=>Mv,eye:()=>nf,fft:()=>Qc,fill:()=>En,floor:()=>Lu,floorDiv:()=>Ym,fused:()=>vl,gather:()=>zu,gatherND:()=>NS,greater:()=>jn,greaterEqual:()=>ks,ifft:()=>xl,imag:()=>Bc,image:()=>Nr,inTopKAsync:()=>CS,irfft:()=>yf,isFinite:()=>Pv,isInf:()=>Ov,isNaN:()=>Lv,leakyRelu:()=>jc,less:()=>af,lessEqual:()=>Is,linalg:()=>ow,linspace:()=>ZT,localResponseNormalization:()=>zv,log:()=>ea,log1p:()=>qc,logSigmoid:()=>Wv,logSoftmax:()=>sf,logSumExp:()=>of,logicalAnd:()=>_a,logicalNot:()=>Kc,logicalOr:()=>lf,logicalXor:()=>Bv,losses:()=>zS,lowerBound:()=>QT,matMul:()=>Re,max:()=>Na,maxPool:()=>Mt,maxPool3d:()=>Vv,maxPoolWithArgmax:()=>eS,maximum:()=>fr,mean:()=>_t,meshgrid:()=>tS,min:()=>lc,minimum:()=>Wu,mirrorPad:()=>Uv,mod:()=>Gv,moments:()=>Xc,movingAverage:()=>IS,mul:()=>W,multiRNNCell:()=>nS,multinomial:()=>aS,neg:()=>vt,norm:()=>Ou,notEqual:()=>fi,oneHot:()=>fl,ones:()=>Jn,onesLike:()=>ta,op:()=>z,outerProduct:()=>rS,pad:()=>ba,pad1d:()=>sS,pad2d:()=>iS,pad3d:()=>oS,pad4d:()=>lS,pool:()=>Hv,pow:()=>Ar,prelu:()=>Zc,print:()=>Xx,prod:()=>jv,raggedTensorToTensor:()=>uS,rand:()=>pS,randomGamma:()=>cS,randomNormal:()=>pf,randomStandardNormal:()=>dS,randomUniform:()=>Bu,range:()=>bl,real:()=>gl,reciprocal:()=>Xv,relu:()=>Xe,relu6:()=>cf,reshape:()=>B,reverse:()=>fa,reverse1d:()=>hS,reverse2d:()=>mS,reverse3d:()=>fS,reverse4d:()=>gS,rfft:()=>ed,round:()=>df,rsqrt:()=>hf,scalar:()=>ke,scatterND:()=>TS,searchSorted:()=>uf,selu:()=>mf,separableConv2d:()=>Ts,setdiff1dAsync:()=>bS,sigmoid:()=>da,sign:()=>Yv,signal:()=>LS,sin:()=>ff,sinh:()=>gf,slice:()=>He,slice1d:()=>Jc,slice2d:()=>bf,slice3d:()=>Io,slice4d:()=>yl,softmax:()=>Qa,softplus:()=>ko,spaceToBatchND:()=>Yc,sparse:()=>WS,sparseToDense:()=>SS,spectral:()=>OS,split:()=>Vn,sqrt:()=>ln,square:()=>lt,squaredDifference:()=>xf,squeeze:()=>Ss,stack:()=>Rt,step:()=>To,stridedSlice:()=>Zv,string:()=>BS,sub:()=>ce,sum:()=>ye,tan:()=>Jv,tanh:()=>hi,tensor:()=>Bn,tensor1d:()=>Ke,tensor2d:()=>Ca,tensor3d:()=>Vc,tensor4d:()=>$a,tensor5d:()=>yS,tensor6d:()=>xS,tile:()=>Wn,topk:()=>Qv,transpose:()=>Ae,truncatedNormal:()=>vf,unique:()=>ew,unsortedSegmentSum:()=>wf,unstack:()=>mt,upperBound:()=>vS,variable:()=>tw,where:()=>fn,whereAsync:()=>nw,zeros:()=>It,zerosLike:()=>qe});var o6=(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`)}},l6=(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(In(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(In(e.inputNames[0],t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Sa(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 Kk(e){return!(typeof e=="number"||e.some(t=>t<0))}function zp(e,t,n){let a=xx(e,n),r=!Kk(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=xx(s.shape,a)}),!Kk(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function xx(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 u6=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=ke(0),Qt(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),Sa(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,Qt(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,mt(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 +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(wa))u[h]=wa[h];for(let h of Object.keys(n))u[h]=n[h];let p=s.config;p.customObjects=u;let d=Object.assign({},wa);for(let h of Object.keys(n))wa[h]=n[h];Dy(s.config);let c=l(o,s.config,n,r);return wa=Object.assign({},d),c}else{let u=Object.assign({},wa);for(let d of Object.keys(n))wa[d]=n[d];let p=new o(s.config);return wa=Object.assign({},u),p}}}function v4(e,t){return et?1:0}function Hd(e,t){return-1*v4(e,t)}function Zr(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function w4(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 Hv(e,t,n=0,a=1/0){return er(n>=0),er(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function Jt(e,t){Array.isArray(e)?(v.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>Jt(n,`element ${a+1} of ${t}`))):v.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${FT(e)}.`)}function FT(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>FT(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function k4(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 Go.set(n,1),n}else return e}var $4=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function LT(e){return!!e.match($4)}function F4(e){return e===parseInt(e.toString(),10)}function Jr(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 Ua(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=Vc(e,1);return Ry(n,[1,t,1])})}function R4(e){let t=[Jr(e.shape)];return B(e,t)}function M4(e){if(e.rank<=1)throw new V(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],Jr(e.shape,1)];return B(e,t)}function Ys(e,t,n){return P(()=>{switch(e.rank){case 1:return Pc(e,t,n);case 2:return Km(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 il(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return We(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return We(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 uy(e,t,n){return P(()=>{switch(e.rank){case 1:return Pc(e,t,n);case 2:return Km(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 il(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 qd(e,t,n,a){return P(()=>{switch(e.rank){case 1:return Pc(e,t,n);case 2:switch(a){case 1:return Ys(e,t,n);case 2:return uy(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 uy(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 il(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return il(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return uy(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 jv(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 sk(e,t){switch(e.rank){case 1:return ev([e,t]);case 2:return tv([e,t],0);case 3:return nv([e,t],0);case 4:return av([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Ry(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 Pn(e,t)}function df(e,t=0,n=1,a,r){return Wm(e,t,n,a,r)}function rr(e,t,n,a){if(e.rank<2||t.rank<2)throw new De(`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 De(`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 ll.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?My(e.rank,a,Ga()):null,activation:n});{let r=e.shape.slice(),s=r.pop();e=B(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=B(Ce(t,p),[l,-1]);let d=[...r,...u],c=!1,h=!1;return B(ll.matMul({a:e,b:t,transposeA:c,transposeB:h,bias:a?My(e.rank,a,Ga()):null,activation:n}),d)}}function zT(e,t,n){return P(()=>(Array.isArray(t)?t=Ke(t,"int32"):t=oe(t,"int32"),Cu(e,t,n)))}function Uc(e){return z(e,e)}function My(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?B(t,[1,a[0],1,1,1]):B(t,[1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?B(t,[1,1,1,1,a[0]]):B(t,[1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?B(t,[1,a[0],1,1]):B(t,[1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?B(t,[1,1,1,a[0]]):B(t,[1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?B(t,[1,a[0],1]):B(t,[1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?B(t,[1,1,a[0]]):B(t,[1].concat(a))}else if(e<3)return t;throw new V(`Unsupported input rank by biasAdd: ${t.rank}`)}function qa(e,t,n){return P(()=>(n==null&&(n=Ga()),Rt(n),Y(e,My(e.rank,t,n))))}function P4(e,t=1){if(t!==1)throw new De(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Su(e)}function O4(e){return P(()=>he(e,Y(Lt(e),1)))}function BT(e,t,n,a){return P(()=>Ov(e,t,n,a))}function L4(e){return P(()=>{let t=Y(.5,z(.2,e));return Qt(t,0,1)})}function Gc(e,t,n=!1){return n?e():t()}var z4=["fanIn","fanOut","fanAvg"],B4=["normal","uniform","truncatedNormal"];function W4(e){go(z4,"FanMode",e)}function V4(e){go(B4,"Distribution",e)}var $a=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},qv=class extends $a{apply(e,t){return It(e,t)}};qv.className="Zeros";ne.registerClass(qv);var hf=class extends $a{apply(e,t){return Yn(e,t)}};hf.className="Ones";ne.registerClass(hf);var Kv=class extends $a{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(ye(this.value),Yn(e,t)))}getConfig(){return{value:this.value}}};Kv.className="Constant";ne.registerClass(Kv);var Xv=class extends $a{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 Eu(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Xv.className="RandomUniform";ne.registerClass(Xv);var Yv=class extends $a{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 De(`randomNormal does not support dType ${t}.`);return df(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Yv.className="RandomNormal";ne.registerClass(Yv);var Zv=class extends $a{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 De(`truncatedNormal does not support dType ${t}.`);return Zm(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Zv.className="TruncatedNormal";ne.registerClass(Zv);var Jv=class extends $a{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,Rm(e[0]))})}getConfig(){return{gain:this.gain}}};Jv.className="Identity";ne.registerClass(Jv);function U4(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=Jr(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=Jr(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=Jr(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Bn=class extends $a{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,W4(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,V4(this.distribution),this.seed=e.seed}apply(e,t){let n=U4(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 De(`${this.getClassName()} does not support dType ${t}.`);return Zm(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Eu(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 mf=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};mf.className="GlorotUniform";ne.registerClass(mf);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 gf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};gf.className="HeNormal";ne.registerClass(gf);var bf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};bf.className="HeUniform";ne.registerClass(bf);var yf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};yf.className="LeCunNormal";ne.registerClass(yf);var xf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};xf.className="LeCunNormal";ne.registerClass(xf);var Qv=class extends $a{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 De("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return P(()=>{if(e.length<2)throw new De("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=df(n,0,1,"float32"),r=Wv.gramSchmidt(a);return e[0]>e[1]&&(r=Ce(r)),z(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Qv.className="Orthogonal";ne.registerClass(Qv);var ik={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 ok(e,t={}){return Bc(e,ne.SerializationMap.getMap().classNameMap,t,"initializer")}function Ct(e){return Gv(e)}function St(e){if(typeof e=="string"){let t=e in ik?ik[e]:e;if(t==="GlorotNormal")return new ff;if(t==="GlorotUniform")return new mf;if(t==="HeNormal")return new gf;if(t==="HeUniform")return new bf;if(t==="LeCunNormal")return new yf;if(t==="LeCunUniform")return new xf;{let n={};return n.className=t,n.config={},ok(n)}}else return e instanceof $a?e:ok(e)}function Py(e){return Array.isArray(e)&&Array.isArray(e[0])}function Sh(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Re(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 at(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 Th(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 lk="Variable",WT=class{constructor(e,t="float32",n=lk,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=RT(),n=n==null?lk:n,this.originalName=PT(n),this.name=OT(this.originalName),this.trainable_=a,this.constraint=r,this.val=Mv(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),G4(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 G4(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Oy(e){return e.map(t=>t.read())}function ew(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||{}}},za=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=RT(),s!=null&&(this.originalName=PT(s),this.name=OT(this.originalName)),this.rank=t.length}},H4=0,vf=class{constructor(e,t){this.callArgs=t,this.id=H4++,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}}},j4=0,qe=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=j4++,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=vr(n)+"_"+cf(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 La(`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 Mn(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return Mn(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new xr(`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 xr(`Layer ${this.name} is not connected, no input to return.`);return Mn(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new xr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new xr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return Mn(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=bt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=bt(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 bt(e))s.push(i.shape);this.build(Mn(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=bt(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=Mn(o),this.activityRegularizer!=null)throw new De("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=q4(e),i=this.computeOutputShape(s),o,l=K4(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 za(l,u,this,bt(e),t,this.name,p)):o=new za(l,i,this,bt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new De("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 xr(`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 xr(`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 La(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Th(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Oy(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=Oy(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=bt(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=bt(e);t=bt(t),n=bt(n),a=bt(a),r=Sh(r),s=Sh(s);let l=[],u=[],p=[];for(let d of o)l.push(d.sourceLayer),u.push(d.nodeIndex),p.push(d.tensorIndex);new vf({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 q4(e){e=bt(e);let t=[];for(let n of e)t.push(n.shape);return Mn(t)}function K4(e){return"float32"}function VT(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=Nh.get(p),c;if(d==null){let m=Z4(i,t);d=m.sorted,c=m.recipientCounts,Nh.put(p,d),Ch.put(p,c)}c={},r||Object.assign(c,Ch.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=uk(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=uk(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:J4(a)}}function J4(e){let t={};for(let n in e)t[n]=e[n].size;return t}function uk(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 Q4(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,Y4);var GT={};_e(GT,{maxNorm:()=>tV,minMaxNorm:()=>rV,nonNeg:()=>aV,unitNorm:()=>nV});function tw(e,t){return P(()=>on(fe(z(e,e),t,!0)))}var Hc=class extends ne.Serializable{getConfig(){return{}}},nw=class extends Hc{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=tw(e,this.axis),n=Qt(t,0,this.maxValue);return z(e,he(n,Y(Gt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};nw.className="MaxNorm";ne.registerClass(nw);var aw=class extends Hc{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>he(e,Y(Gt(),tw(e,this.axis))))}getConfig(){return{axis:this.axis}}};aw.className="UnitNorm";ne.registerClass(aw);var rw=class extends Hc{apply(e){return Xe(e)}};rw.className="NonNeg";ne.registerClass(rw);var sw=class extends Hc{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=tw(e,this.axis),n=Y(z(this.rate,Qt(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}}};sw.className="MinMaxNorm";ne.registerClass(sw);var pk={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function qt(e){return Gv(e)}function ck(e,t={}){return Bc(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Kt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in pk?pk[e]:e,config:{}};return ck(t)}else return e instanceof Hc?e:ck(e)}function tV(e){return new nw(e)}function nV(e){return new aw(e)}function aV(){return new rw}function rV(e){return new sw(e)}var HT={};_e(HT,{constant:()=>oV,glorotNormal:()=>mV,glorotUniform:()=>hV,heNormal:()=>fV,heUniform:()=>gV,identity:()=>cV,leCunNormal:()=>bV,leCunUniform:()=>yV,ones:()=>iV,orthogonal:()=>xV,randomNormal:()=>uV,randomUniform:()=>lV,truncatedNormal:()=>pV,varianceScaling:()=>dV,zeros:()=>sV});function sV(){return new qv}function iV(){return new hf}function oV(e){return new Kv(e)}function lV(e){return new Xv(e)}function uV(e){return new Yv(e)}function pV(e){return new Zv(e)}function cV(e){return new Jv(e)}function dV(e){return new Bn(e)}function hV(e){return new mf(e)}function mV(e){return new ff(e)}function fV(e){return new gf(e)}function gV(e){return new bf(e)}function bV(e){return new yf(e)}function yV(e){return new xf(e)}function xV(e){return new Qv(e)}var jT={};_e(jT,{Layer:()=>qe,RNN:()=>cr,RNNCell:()=>Yc,activation:()=>HU,add:()=>eG,alphaDropout:()=>OG,average:()=>tG,averagePooling1d:()=>h0,averagePooling2d:()=>m0,averagePooling3d:()=>f0,avgPool1d:()=>pG,avgPool2d:()=>dG,avgPool3d:()=>mG,avgPooling1d:()=>cG,avgPooling2d:()=>hG,avgPooling3d:()=>fG,batchNormalization:()=>oG,bidirectional:()=>EG,concatenate:()=>nG,conv1d:()=>PU,conv2d:()=>OU,conv2dTranspose:()=>LU,conv3d:()=>zU,conv3dTranspose:()=>BU,convLstm2d:()=>TG,convLstm2dCell:()=>NG,cropping2D:()=>VU,dense:()=>jU,depthwiseConv2d:()=>GU,dot:()=>iG,dropout:()=>qU,elu:()=>AU,embedding:()=>QU,flatten:()=>XU,gaussianDropout:()=>PG,gaussianNoise:()=>MG,globalAveragePooling1d:()=>gG,globalAveragePooling2d:()=>bG,globalMaxPool1d:()=>$G,globalMaxPool2d:()=>FG,globalMaxPooling1d:()=>ON,globalMaxPooling2d:()=>LN,gru:()=>xG,gruCell:()=>vG,input:()=>pN,inputLayer:()=>EU,layerNormalization:()=>lG,leakyReLU:()=>FU,lstm:()=>wG,lstmCell:()=>kG,masking:()=>LG,maxPool1d:()=>DG,maxPool2d:()=>RG,maxPooling1d:()=>zN,maxPooling2d:()=>BN,maxPooling3d:()=>yG,maximum:()=>aG,minimum:()=>rG,multiply:()=>sG,permute:()=>JU,prelu:()=>DU,reLU:()=>$U,repeatVector:()=>YU,rescaling:()=>zG,reshape:()=>ZU,rnn:()=>CG,separableConv2d:()=>WU,simpleRNN:()=>IG,simpleRNNCell:()=>SG,softmax:()=>RU,spatialDropout1d:()=>KU,stackedRNNCells:()=>_G,thresholdedReLU:()=>MU,timeDistributed:()=>AG,upSampling2d:()=>UU,zeroPadding2d:()=>uG});async function Hr(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(),Zt(t[n])}))}},XT=class extends pl{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 YT(n,t))}var Sa=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}`),Sa.checkForDuplicate(t),Sa.constructors[e]==null&&(Sa.constructors[e]=[]),Sa.constructors[e].push(t)}static checkForDuplicate(e){for(let t in Sa.constructors)Sa.constructors[+t].forEach(n=>{if(n===e)throw new V("Duplicate callback constructor.")})}static clear(){Sa.constructors={}}static createCallbacks(e){let t=[];for(let n in Sa.constructors){let a=+n;e>=a&&t.push(...Sa.constructors[a])}return t.map(n=>new n)}};Sa.constructors={};function JT(e,t,n,a,r,s,i,o,l){let u=new XT,p=[new wV,...Sa.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new KT(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 Wa(e,t={},n=!1){return Bc(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function _h(e,t){return P(()=>{e.dtype!=="float32"&&(e=oe(e,"float32"));let n=fe(Uc(e),t,!0),a=gn(n.shape,Gt()),r=on(ur(n,a));return he(e,r)})}function bo(e,t){return P(()=>Nt(Uc(pe(t,e)),-1))}function wf(e,t){return P(()=>Nt(Lt(pe(t,e)),-1))}function Fu(e,t){return P(()=>{let n=pe(e,t),a=Qt(Lt(e),Gt(),Number.MAX_VALUE),r=Lt(he(n,a));return z(100,Nt(r,-1))})}function kV(e,t){return P(()=>{let n=Qt(t,Gt(),Number.MAX_VALUE),a=Qn(Y(1,n)),r=Qt(e,Gt(),Number.MAX_VALUE),s=Qn(Y(1,r));return Nt(Uc(pe(a,s)),-1)})}function IV(e,t){return P(()=>{let n=ur(0,pe(1,z(e,t)));return Nt(Uc(n),-1)})}function SV(e,t){return P(()=>{let n=ur(0,pe(1,z(e,t)));return Nt(n,-1)})}function TV(e,t){return P(()=>{let n=fe(z(e,t),-1),a=Na(z(pe(1,e),t),-1);return ur(0,Y(1,pe(a,n)))})}function NV(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 qp(e,t,n=!1){return P(()=>{if(n)t=ja(t);else{let a=fe(t,t.shape.length-1,!0);t=he(t,a)}return t=Qt(t,Gt(),1-Gt()),yt(fe(z(oe(e,"float32"),Qn(t)),t.shape.length-1))})}function Eh(e,t,n=!1){return P(()=>{let a=oe(Nu(R4(e)),"int32");t=Qt(t,Gt(),1-Gt());let r=t.shape,s=B(al(a,r[r.length-1]),r);return qp(s,t,n)})}function CV(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=yt(Lt(t));return Y(pe(n,z(t,e)),$c(fn(a)))})}function kf(e,t){return P(()=>{let n;return n=Qt(t,Gt(),1-Gt()),n=Qn(he(n,pe(1,n))),Nt(CV(e,n),-1)})}function _V(e,t){return P(()=>{let n=Qt(e,Gt(),1),a=Qt(t,Gt(),1);return fe(z(e,Qn(he(n,a))),-1)})}function EV(e,t){return P(()=>{let n=Qn(Y(Gt(),t));return Nt(pe(t,z(e,n)),-1)})}function iw(e,t){return P(()=>{let n=_h(e,-1),a=_h(t,-1),r=z(n,a);return yt(fe(r,-1))})}var Ah={meanSquaredError:bo,meanAbsoluteError:wf,meanAbsolutePercentageError:Fu,meanSquaredLogarithmicError:kV,squaredHinge:IV,hinge:SV,categoricalHinge:TV,logcosh:NV,categoricalCrossentropy:qp,sparseCategoricalCrossentropy:Eh,binaryCrossentropy:kf,kullbackLeiblerDivergence:_V,poisson:EV,cosineProximity:iw};function py(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 ow(e,t){return P(()=>{let n=z(.5,ea(t)),a=Wc(Vn(t,n),e.dtype);return Nt(Jn(e,a),-1)})}function lw(e,t){return P(()=>Wc(Jn(ai(e,-1),ai(t,-1)),"float32"))}function QT(e,t){return P(()=>oe(fe(_a(Jn(e,1),Jn(t,1))),"float32"))}function AV(e,t){return P(()=>oe(fe(_a(Jn(e,1),Jn(t,0))),"float32"))}function $V(e,t){return P(()=>oe(fe(_a(Jn(e,0),Jn(t,1))),"float32"))}function eN(e,t){return P(()=>{let n=QT(e,t),a=$V(e,t),r=Y(n,a);return oe(mn(Vn(r,0),he(n,r),0),"float32")})}function FV(e,t){return P(()=>{let n=QT(e,t),a=AV(e,t),r=Y(n,a);return oe(mn(Vn(r,0),he(n,r),0),"float32")})}function tN(e,t){return kf(e,t)}function nN(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(Jn(e,t),"float32")}var DV=bo,RV=bo,MV=wf,PV=wf,OV=Fu,LV=Fu,uw=qp,zV=iw,aN=Eh,$h={binaryAccuracy:ow,categoricalAccuracy:lw,precision:eN,categoricalCrossentropy:uw,sparseCategoricalCrossentropy:aN,mse:DV,MSE:RV,mae:MV,MAE:PV,mape:OV,MAPE:LV,cosine:zV};function BV(e){if(typeof e=="string"&&e in $h)return $h[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function Kd(e){if(er(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($h))if($h[n]===e){t=n;break}return t!==void 0?t:e.name}}function WV(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 hk(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Ly(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 Ly(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"||!Ly(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!Ly(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function VV(e,t,n,a=console.log){let r=GV(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)),Fh(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 Fh(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 HV(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()];Fh(o,t,n)}function jV(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;cb.name)}`);Zr(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 y=b.sourceLayer,x=b.nodeIndex,w=b.tensorIndex;this.outputLayers.push(y),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(w)}for(let b of this.inputs){let y=b.sourceLayer,x=b.nodeIndex,w=b.tensorIndex;er(x===0,"input layer has >1 nodes"),er(w===0,"input layer has >1 tensors"),this.inputLayers.push(y),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(w)}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 t={},n={},a={},r={},s={},i=[],o=(b,y,x,w,I,T)=>{(w==null||I==null||T==null)&&(w=b.sourceLayer,I=b.nodeIndex,T=b.tensorIndex);let C=w.inboundNodes[I];if(x.indexOf(C)!==-1)throw new La(`The tensor ${b.name} at layer "${w.name}" is part of a cycle.`);if(y.indexOf(C)!==-1)return;this.containerNodes.add(Za.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 b of this.outputs)o(b,l,u);let p=i.slice().reverse();for(let b of p){n[b.id]=b,b.id in t||(t[b.id]=0);let y=t[b.id],x=a[b.outboundLayer.id]==null?0:a[b.outboundLayer.id];y=Math.max(y,x),a[b.outboundLayer.id]=y,r[b.outboundLayer.id]=b.outboundLayer,t[b.id]=y;for(let w=0;wparseInt(b,10)).sort(Hd);this.layers=[];for(let b of h){let y=c[b];y.sort((x,w)=>{let I=s[x.id],T=s[w.id];return IT?1:0});for(let x of y)x instanceof Za&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=c,h=Object.keys(d).map(b=>parseInt(b,10)).sort(Hd);let m=this.inputs.slice(),f=[];for(let b of h)for(let y of d[b]){let x=y.outboundLayer;if(x!=null){for(let w of y.inputTensors)if(m.indexOf(w)===-1)throw new La(`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 y.outputTensors)m.push(w);f.push(x.name)}}this.nodesByDepth=d;let g=this.layers.map(b=>b.name);for(let b of g){let y=g.filter(x=>x===b).length;if(y!==1)throw new La(`The name "${b}" is used ${y} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new vf({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 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}`)}ew(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${pw}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=zy(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return P(()=>{e=bt(e);let n=new Hs;for(let a=0;a{e=bt(e);let n;return t==null?n=oi(null,e.length):n=bt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=Sh(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(Hd);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(Hd);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,b,y;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,w]=h[0];m.mask==null&&(m.mask=w),b=bt(p.call(x,m)),y=bt(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),b=bt(p.call(f,m)),y=bt(p.computeMask(f,g));if(p.activityRegularizer)throw new De("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(Mn(b),y)}function l(f){let g=f.name,b=Wa(f,t.customObjects!=null?t.customObjects:{});b.setFastWeightInitDuringBuild(a),r[g]=b,f.inboundNodes.forEach(y=>{if(!(y instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${y}`);i(b,y)})}let u=t.name,p=t.layers;for(let f of p)l(f);for(;!w4(s);)for(let f of p){let g=r[f.name];if(g.name in s){let b=s[g.name];delete s[g.name];for(let y of b)o(g,y)}}let d=[],c=[],h=t.inputLayers;for(let f of h){let g=f[0],b=f[1],y=f[2];er(g in r);let x=r[g].inboundNodes[b].outputTensors;d.push(x[y])}let m=t.outputLayers;for(let f of m){let g=f[0],b=f[1],y=f[2];er(g in r);let x=r[g].inboundNodes[b].outputTensors;c.push(x[y])}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 qV(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 sN(e,t){return qV(e,t,"classWeight")}async function iN(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 ar(e);if(e.shape.length===2){if(e.shape[1]>1)return ai(e,1);if(e.shape[1]===1)return B(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 KV(e,t){return z(e,t)}var XV=32;function oN(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=mk("input",e.inputNames,n),i=mk("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 mk(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 YV(e){if(e.length===3)throw new De("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function ZV(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(fk(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=YV(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=ZT(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=JT(p,d,n.epochs,null,null,JV(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;fk(n.validationData)?w=bt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):w=bt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?XV:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new De("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=QV(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=oN(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(b)}$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 cw(e,t){return P(()=>e==null?null:Array.isArray(e)?e.map(n=>cw(n,t)):zT(e,t.dtype==="int32"?t:oe(t,"int32")))}function Wy(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function tU(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"),b;g!=null&&(b=Ua(0,g)),i==null&&(i=1);let{callbackList:y,history:x}=JT(o,i,s,c,g,h,r,f,d);y.setModel(e),e.history=x,await y.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=cw(n,S),W=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 De("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],b=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=_p(r,E,A),i=r,r=_p(r,0,E),d=_p(s,E,A),o=s,s=_p(s,0,E),b=p.concat(d)}else a.validationSteps!=null&&(g=!0);let y=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,b=[],T=w.slice());let C=ZT(a.callbacks,a.yieldEvery);return await tU(e,x,y,w,h,a.epochs,a.verbose,C,I,b,a.shuffle,T,a.initialEpoch,null,null)}finally{e.isTraining=!1,Oa(r,t),Oa(s,n),Oa(i,t),Oa(o,n),Oa(p,l),Oa(d,u),c!=null&&$e(c)}}function lN(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 aU(e){return e instanceof Te}function Vy(e){return Array.isArray(e)}function gk(e){return!aU(e)&&!Vy(e)}function bk(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(Vy(e)&&e.length>0)i=!0;else if(gk(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(gk(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(Vy(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=lN(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 rU(e,t,n){let a=Zr(e.map(s=>s.shape[0]));a.sort();let r=Zr(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 sU(e,t,n){let a=[bo,kf,qp];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 oU="layers-model",Nr=class extends Za{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).");VV(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=WV(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(py(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=>py(s))}else{let s=py(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=iU(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]===kf?["accuracy","acc"].indexOf(c)!==-1?p=ow:["crossentropy","ce"].indexOf(c)!==-1&&(p=tN):this.lossFunctions[s]===Eh?["accuracy","acc"].indexOf(c)!==-1?p=nN:["crossentropy","ce"].indexOf(c)!==-1&&(p=aN):["accuracy","acc"].indexOf(c)!==-1?p=lw:["crossentropy","ce"].indexOf(c)!==-1&&(p=uw);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=BV(c),u=l+Kd(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;By(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 Mn(l)}finally{Oa(s[0],e),Oa(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),eU(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 De("Verbose predictLoop() is not implemented yet.");let r=Wy(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 Mn(s.map(i=>Ze(i,0)))})}predict(e,t={}){let n=lN(e);yk(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return By(a),this.predictLoop(n,a)}finally{Oa(n,e)}}predictOnBatch(e){yk(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 La("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=sN(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new De("Verbose mode is not implemented yet.");if(r!=null)throw new De("steps mode in testLoop() is not implemented yet");{let o=Wy(s,n),l=Ke(Ua(0,s));for(let u=0;u1&&(r+=`_${ak(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;lvr(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]=vr(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[vr(Kd(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>vr(Kd(e)));{let e={};for(let t in this.metrics)e[t]=vr(Kd(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=Kp(e.optimizer_config),n=Wa(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:oU,generatedBy:`TensorFlow.js tfjs-layers v${pw}`,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&&(hk(this.userDefinedMetadata,this.name,!0),s.userDefinedMetadata=this.userDefinedMetadata),s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){hk(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Nr.className="Model";ne.registerClass(Nr);var uN=class extends Nr{};uN.className="Functional";ne.registerClass(uN);async function lU(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=Kp(n),r=Wa(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 uU(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 pU(e,void 0,t)}async function pU(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=Wa(Kp(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}=cU(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 cU(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 cl=class extends Nr{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:cf("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 cl||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=UT({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=VT(this.outputs[0])}this.inboundNodes=[],new vf({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(at(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 La("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 La("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 La("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 La("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 cl))throw new De(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=Wa(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}}};cl.className="Sequential";ne.registerClass(cl);function dU(e){return new Nr(e)}function hU(e){return new cl(e)}function mU(e,t){return t==null&&(t={}),uU(e,t)}function pN(e){return UT(e)}function fU(e,t){Sa.registerCallbackConstructor(e,t)}var Un=class extends ne.Serializable{getConfig(){return{}}},cN=class extends Un{apply(e,t=1){return P4(e,t)}};cN.className="elu";ne.registerClass(cN);var dN=class extends Un{apply(e){return Hm(e)}};dN.className="selu";ne.registerClass(dN);var hN=class extends Un{apply(e){return Xe(e)}};hN.className="relu";ne.registerClass(hN);var mN=class extends Un{apply(e){return P(()=>_u(6,Xe(e)))}};mN.className="relu6";ne.registerClass(mN);var fN=class extends Un{apply(e){return e}};fN.className="linear";ne.registerClass(fN);var gN=class extends Un{apply(e){return da(e)}};gN.className="sigmoid";ne.registerClass(gN);var bN=class extends Un{apply(e){return L4(e)}};bN.className="hardSigmoid";ne.registerClass(bN);var yN=class extends Un{apply(e){return ho(e)}};yN.className="softplus";ne.registerClass(yN);var xN=class extends Un{apply(e){return O4(e)}};xN.className="softsign";ne.registerClass(xN);var vN=class extends Un{apply(e){return ri(e)}};vN.className="tanh";ne.registerClass(vN);var dw=class extends Un{apply(e,t=-1){return ja(e,t)}};dw.className="softmax";ne.registerClass(dw);var wN=class extends Un{apply(e,t=-1){return Om(e,t)}};wN.className="logSoftmax";ne.registerClass(wN);var kN=class extends Un{apply(e,t=1){return P(()=>z(da(z(e,t)),e))}};kN.className="swish";ne.registerClass(kN);var IN=class extends Un{apply(e){return P(()=>z(e,ri(ho(e))))}};IN.className="mish";ne.registerClass(IN);function as(e){return e.getClassName()}function cy(e,t={}){return Bc(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function rs(e){if(e==null){let t={};return t.className="linear",t.config={},cy(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},cy(t)}else return e instanceof Un?e:cy(e)}function hw(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 SN=class extends ne.Serializable{},jc=class extends SN{constructor(e){super(),hw(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,Uc(e))))),B(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};jc.className="L1L2";ne.registerClass(jc);function gU(e){return hw(e),new jc({l1:e!=null?e.l1:null,l2:0})}function bU(e){return hw(e),new jc({l2:e!=null?e.l2:null,l1:0})}var xk={l1l2:"L1L2"};function pt(e){return Gv(e)}function vk(e,t={}){return Bc(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Tt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in xk?xk[e]:e,config:{}};return vk(t)}else return e instanceof SN?e:vk(e)}var mw=class extends qe{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Re(e);let n=Xe(e);return this.maxValue!=null&&(n=Qt(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};mw.className="ReLU";ne.registerClass(mw);var fw=class extends qe{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=Re(e);return Ac(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};fw.className="LeakyReLU";ne.registerClass(fw);var gw=class extends qe{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=at(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"?Ce(e,[0,2,3,1]):e))}function TN(e,t){return P(()=>(Rt(t),t==="channelsFirst"?Ce(e,[0,2,3,4,1]):e))}function yU(e,t,n,a=1,r="valid",s,i=1){return P(()=>{if(s==null&&(s=Ga()),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=Ce(e,[0,2,1])),r==="causal")throw new De("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=Am(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=qa(o,n)),o})}function wk(e,t,n,a=[1,1],r="valid",s,i,o=null){return P(()=>{if(s==null&&(s=Ga()),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=vw(e,s);if(r==="causal")throw new De("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=ll.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ce(l,[0,3,1,2])),l})}function xU(e,t,n,a=[1,1,1],r="valid",s,i){return P(()=>{if(s==null&&(s=Ga()),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=TN(e,s);if(r==="causal")throw new De("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=sv(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=qa(o,n)),s==="channelsFirst"&&(o=Ce(o,[0,4,1,2,3])),o})}var ww=class extends qe{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",ww.verifyArgs(t),this.rank=e,Jt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new De(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Qo(t.kernelSize,e,"kernelSize"),this.strides=Qo(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=rs(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=Qo(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(er("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!Hv(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:as(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}},qc=class extends ww{constructor(e,t){super(e,t),this.kernel=null,qc.verifyArgs(t),this.filters=t.filters,Jt(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=at(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=Re(e);let n,a=this.bias==null?null:this.bias.read(),r=DT(this.activation.getClassName());if(r!=null&&this.rank===2)n=wk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=yU(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=wk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=xU(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new De("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=at(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)}`)}},Kc=class extends qc{constructor(e){super(2,e),Kc.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Hv(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)}.`)}};Kc.className="Conv2D";ne.registerClass(Kc);var Xc=class extends qc{constructor(e){super(3,e),Xc.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)}.`)}};Xc.className="Conv3D";ne.registerClass(Xc);var kw=class extends Kc{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=at(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=Re(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=tr(o,d,u,this.padding),m=tr(l,c,p,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ce(n,[0,2,3,1]));let g=$m(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ce(g,[0,3,1,2])),this.bias!=null&&(g=qa(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=at(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]=tr(t[a],o,s,this.padding),t[r]=tr(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};kw.className="Conv2DTranspose";ne.registerClass(kw);var Iw=class extends Xc{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=at(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=Re(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],b=tr(l,m,d,this.padding),y=tr(u,f,c,this.padding),x=tr(p,g,h,this.padding),w=[r,b,y,x,this.filters];this.dataFormat!=="channelsLast"&&(n=Ce(n,[0,2,3,4,1]));let I=iv(n,this.kernel.read(),w,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=Ce(I,[0,4,1,2,3])),this.bias!==null&&(I=qa(I,this.bias.read(),this.dataFormat)),this.activation!==null&&(I=this.activation.apply(I)),I})}computeOutputShape(e){e=at(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]=tr(t[a],u,i,this.padding),t[r]=tr(t[r],p,o,this.padding),t[s]=tr(t[s],d,l,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Iw.className="Conv3DTranspose";ne.registerClass(Iw);var NN=class extends qc{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=at(e),e.length{e=Re(e);let n;if(this.rank===1)throw new De("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ce(e,[0,2,3,1])),n=vs(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=qa(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ce(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}};NN.className="SeparableConv";var Sw=class extends NN{constructor(e){super(2,e)}};Sw.className="SeparableConv2D";ne.registerClass(Sw);var If=class extends qc{constructor(e){super(1,e),If.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"&&!Hv(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)}.`)}};If.className="Conv1D";ne.registerClass(If);var Tw=class extends qe{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=Re(e),this.dataFormat==="channelsLast"){let n=qd(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return qd(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=qd(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return qd(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}};Tw.className="Cropping2D";ne.registerClass(Tw);var Nw=class extends qe{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,E4(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=Re(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ce(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?Ir.resizeNearestNeighbor(n,[r,s]):Ir.resizeBilinear(n,[r,s]);return Ce(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?Ir.resizeNearestNeighbor(n,[r,s]):Ir.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}};Nw.className="UpSampling2D";ne.registerClass(Nw);function vU(e,t,n=[1,1],a="valid",r,s){return P(()=>{r==null&&(r=Ga()),Rt(r);let i=vw(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=Ce(i,[0,3,1,2])),i})}var Cw=class extends ww{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=at(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=Re(e);let n=vU(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=qa(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=at(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=Va(t,this.kernelSize[0],this.padding,this.strides[0]),s=Va(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}};Cw.className="DepthwiseConv2D";ne.registerClass(Cw);function CN(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 _N(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(Ua(2,l));if(t=Ce(t,u),s!=null)throw new De("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=hn(r,-1)),r=Ce(r,u)),a&&(t=ma(t,0),r!=null&&(r=ma(r,0)));let p=[],d,c=n,h=t.shape[0],m=ct(t),f;r!=null&&(f=ct(r));for(let b=0;be(y,c));if(r==null)d=x[0],c=x[1];else{let w=P(()=>{let I=f[b],T=pe(ea(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 cr=class extends qe{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 Nf({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 Ua(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Py(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 xr("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;aZt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=CN(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 za){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=Re(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=_N((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=Vc(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Ry(t,[1,n]):t):this.cell.stateSize>1?[Ry(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()===cr.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){let a=t.cell,r=Wa(a,n);return new e(Object.assign(t,{cell:r}))}};cr.className="RNN";ne.registerClass(cr);var Yc=class extends qe{},Sf=class extends Yc{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,Jt(this.units,"units"),this.activation=rs(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=ul([1,ns([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ul([1,ns([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=at(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;0ea(e),rate:this.dropout,training:a,dropoutFunc:this.dropoutFunc})),0ea(n),rate:this.recurrentDropout,training:a,dropoutFunc:this.dropoutFunc}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=rr(z(e,s),this.kernel.read()):r=rr(e,this.kernel.read()),this.bias!=null&&(r=qa(r,this.bias.read())),i!=null&&(n=z(n,i));let o=Y(r,rr(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:as(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({},e,t)}};Sf.className="SimpleRNNCell";ne.registerClass(Sf);var _w=class extends cr{constructor(e){e.cell=new Sf(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 Tf=class extends Yc{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,Jt(this.units,"units"),this.activation=rs(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=rs(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=ul([1,ns([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ul([1,ns([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=at(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],0ea(e),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0ea(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)}};Ew.className="GRU";ne.registerClass(Ew);var Zc=class extends Yc{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,Jt(this.units,"units"),this.activation=rs(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=rs(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=ul([1,ns([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ul([1,ns([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=at(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 $a{apply(i,o){let l=r.apply([s]),u=new hf().apply([s]),p=r.apply([s*2]);return sk(sk(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],0ea(e),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0ea(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)}};Aw.className="LSTM";ne.registerClass(Aw);var Nf=class extends Yc{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({},e,n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Wa(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 Oy(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):BT(t(),n),o=()=>Gc(i,t,a);return!r||r<=1?Zt(o().clone()):Array(r).fill(void 0).map(o).map(l=>Zt(l.clone()))}var wU=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 xr("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;sZt(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=Va(l,a[0],r,s[0],i[0]),d=Va(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,p,d]:[p,d,n]]}};EN.className="ConvRNN2D";var Cf=class extends Zc{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign({},e,{units:t})),this.filters=t,Jt(this.filters,"filters"),this.kernelSize=Qo(n,2,"kernelSize"),this.kernelSize.forEach(o=>Jt(o,"kernelSize")),this.strides=Qo(a||1,2,"strides"),this.strides.forEach(o=>Jt(o,"strides")),this.padding=r||"valid",ba(this.padding),this.dataFormat=s||"channelsLast",Rt(this.dataFormat),this.dilationRate=Qo(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>Jt(o,"dilationRate"))}build(e){var t;e=at(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 $a{apply(p,d){let c=l.apply([u]),h=Yn([u]),m=l.apply([u*2]);return jv([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;0ea(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);0ea(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),b=l(r,h,3),y=3,[x,w,I,T]=Ln(this.kernel.read(),i,y),[C,E,A,R]=this.useBias?Ln(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,W]=Ln(this.recurrentKernel.read(),i,y);m=this.recurrentConv(m,F),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),b=this.recurrentConv(b,W);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,b)),this.activation.apply(q));return[K,K,q]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=wU(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return 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?qa(r,n,this.dataFormat):r}recurrentConv(e,t){return $t(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Cf.className="ConvLSTM2DCell";ne.registerClass(Cf);var $w=class extends EN{constructor(e){let t=new Cf(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}};$w.className="ConvLSTM2D";ne.registerClass($w);var _f=class extends qe{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=Re(e);if(0BT(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 Fw=class extends _f{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};Fw.className="SpatialDropout1D";ne.registerClass(Fw);var Dw=class extends qe{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,Jt(this.units,"units"),this.activation=rs(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=at(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=at(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Re(e),a=DT(this.activation.getClassName()),r;return a!=null?r=rr(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=rr(n,this.kernel.read()),this.bias!=null&&(r=qa(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:as(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}};Dw.className="Dense";ne.registerClass(Dw);var Rw=class extends qe{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=at(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],Jr(e,1)]}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Re(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Re(e);return this.activation.apply(n)})}getConfig(){let e={activation:as(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};Mw.className="Activation";ne.registerClass(Mw);var Pw=class extends qe{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=Re(e),D4(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};Pw.className="RepeatVector";ne.registerClass(Pw);var Ow=class extends qe{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Re(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return B(n,r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};Ow.className="Reshape";ne.registerClass(Ow);var Lw=class extends qe{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=Ua(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=at(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ce(Re(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};Lw.className="Permute";ne.registerClass(Lw);var zw=class extends qe{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=Re(e),a=-1;return Gp(ii(n,this.maskValue),a)}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Re(e),a=-1,r=!0,s=Gp(ii(n,this.maskValue),a,r);return z(n,oe(s,n.dtype))})}};zw.className="Masking";ne.registerClass(zw);var Bw=class extends qe{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(bt(e.inputLength))}this.inputDim=e.inputDim,Jt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Jt(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=Re(e),ii(e,je(e))):null)}computeOutputShape(e){if(e=at(e),this.inputLength==null)return[...e,this.outputDim];let t=bt(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=Re(e);n.dtype!=="int32"&&(n=Wc(n,"int32"));let a=zT(this.embeddings.read(),B(n,[n.size]));return B(a,at(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}};Bw.className="Embedding";ne.registerClass(Bw);var yo=class extends qe{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new De}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&&Zr(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=ns(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=Ua(1,l).concat([0]);n.push(Ce(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=B(Ce(B(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(Ua(0,i-1));s=Ce(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:hn(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(()=>jv(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 De("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 De("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 De("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)=>kp(r,e[s].shape.length)):a=[kp(this.axes,t.shape.length),kp(this.axes,n.shape.length)],this.normalize&&(t=_h(t,a[0]),n=_h(n,a[1])),kU(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[kp(this.axes,e.length),kp(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 De("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}};qw.className="Dot";ne.registerClass(qw);var Kw=class extends qe{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=Re(e);return Gc(()=>Y(df(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};Kw.className="GaussianNoise";ne.registerClass(Kw);var Xw=class extends qe{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=Re(e);return this.rate>0&&this.rate<1?Gc(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,df(n.shape,1,a))},()=>n,t.training||!1):n})}};Xw.className="GaussianDropout";ne.registerClass(Xw);var Yw=class extends qe{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Re(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 Gc(()=>{let a=Re(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=ys(Eu(n),this.rate);o=Wc(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)},()=>Re(e),t.training||!1)}return e})}};Yw.className="AlphaDropout";ne.registerClass(Yw);function Xp(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=Xx(e,t,n,a,r,s);else if(e.rank===3)i=Yx(e,t,n,a,r,s);else if(e.rank===4)i=Zx(e,t,n,a,r,s);else throw new De(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function IU(e,t,n,a,r=.001){return P(()=>{let s=Dc(e,a),i=s.mean,o=s.variance;return[Xp(e,i,o,n,t,r),i,o]})}function SU(e,t,n,a,r=.001){return P(()=>{let s=Dc(e,a),i=s.mean,o=s.variance,l=[];for(let h of Ua(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=B(i,l),p=B(o,l),d=t==null?null:B(t,l),c=n==null?null:B(n,l);return[Xp(e,u,p,c,d,r),i,o]})}function TU(e,t,n,a,r=.001){return v.arraysEqual(a.slice().sort(),Ua(0,e.rank-1))?IU(e,t,n,a,r):SU(e,t,n,a,r)}var Zw=class extends qe{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=at(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=Re(e),r=a.shape,s=r.length,i=Ua(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,Ua(0,s).slice(0,s-1)),d=()=>{if(p){let g=B(this.movingMean.read(),l),b=B(this.movingVariance.read(),l),y=this.center?B(this.beta.read(),l):null,x=this.scale?B(this.gamma.read(),l):null;return Xp(a,g,b,y,x,this.epsilon)}else return Xp(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]=TU(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,b,y)=>{P(()=>{let x=1-y,w=g.read(),I=z(pe(w,b),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}};Zw.className="BatchNormalization";ne.registerClass(Zw);var Jw=class extends qe{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=at(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!==Zr(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=Re(e),a=n.shape,r=a.length;return P(()=>{let{mean:s,variance:i}=Dc(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?B(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=Ga()),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]],ga(e,a)})}var Qw=class extends qe{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?Ga():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=at(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(()=>NU(Re(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Qw.className="ZeroPadding2D";ne.registerClass(Qw);function Ef(e,t,n,a,r,s){return P(()=>{Rt(r),MT(s),ba(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=Ga()),s==null&&(s="max"),e=vw(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Dt(e,t,n,o):i=fa(e,t,n,o),r==="channelsFirst"&&(i=Ce(i,[0,3,1,2])),i})}function AN(e,t,n,a,r,s){return P(()=>{Rt(r),MT(s),ba(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=Ga()),s==null&&(s="max"),e=TN(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=kv(e,t,n,o):i=Kx(e,t,n,o),r==="channelsFirst"&&(i=Ce(i,[0,4,1,2,3])),i})}var $N=class extends qe{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(Jt(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)}`);Jt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,ba(this.padding),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){e=at(e);let t=Va(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=Vc(Re(e),2);let n=this.poolingFunction(Re(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}},e0=class extends $N{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),Ef(e,t,n,a,r,"max")}};e0.className="MaxPooling1D";ne.registerClass(e0);var t0=class extends $N{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),Ef(e,t,n,a,r,"avg")}};t0.className="AveragePooling1D";ne.registerClass(t0);var FN=class extends qe{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];Jt(this.poolSize,"poolSize"),Jt(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=at(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Va(t,this.poolSize[0],this.padding,this.strides[0]),n=Va(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(Re(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}},n0=class extends FN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),Ef(e,t,n,a,r,"max")}};n0.className="MaxPooling2D";ne.registerClass(n0);var a0=class extends FN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),Ef(e,t,n,a,r,"avg")}};a0.className="AveragePooling2D";ne.registerClass(a0);var DN=class extends qe{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];Jt(this.poolSize,"poolSize"),Jt(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=at(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=Va(t,this.poolSize[0],this.padding,this.strides[0]),n=Va(n,this.poolSize[1],this.padding,this.strides[1]),a=Va(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(Re(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 DN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),AN(e,t,n,a,r,"max")}};r0.className="MaxPooling3D";ne.registerClass(r0);var s0=class extends DN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),AN(e,t,n,a,r,"avg")}};s0.className="AveragePooling3D";ne.registerClass(s0);var RN=class extends qe{constructor(e){super(e),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new De}},i0=class extends RN{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Re(e);return Nt(n,1)})}};i0.className="GlobalAveragePooling1D";ne.registerClass(i0);var o0=class extends RN{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Re(e);return Na(n,1)})}};o0.className="GlobalMaxPooling1D";ne.registerClass(o0);var MN=class extends qe{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 De}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},l0=class extends MN{call(e,t){return P(()=>{let n=Re(e);return this.dataFormat==="channelsLast"?Nt(n,[1,2]):Nt(n,[2,3])})}};l0.className="GlobalAveragePooling2D";ne.registerClass(l0);var u0=class extends MN{call(e,t){return P(()=>{let n=Re(e);return this.dataFormat==="channelsLast"?Na(n,[1,2]):Na(n,[2,3])})}};u0.className="GlobalMaxPooling2D";ne.registerClass(u0);var PN=class extends qe{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=Wa(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},p0=class extends PN{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=at(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=at(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=Re(e),_N((n,a)=>[Re(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};p0.className="TimeDistributed";ne.registerClass(p0);function CU(e){go(_4,"BidirectionalMergeMode",e)}var _U="concat",c0=class extends PN{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Wa(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Wa(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?_U:e.mergeMode,CU(this.mergeMode),e.weights)throw new De("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()):Mn(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=CN(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 De("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof za;for(let l of s)if(l instanceof za!==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=ma(r,1));let i;return this.mergeMode==="concat"?i=jv([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=Wa(t.layer);if(delete t.layer,t.numConstants!=null)throw new De("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};c0.className="Bidirectional";ne.registerClass(c0);var d0=class extends qe{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=Re(e),e.dtype!=="float32"&&(e=Wc(e,"float32")),Y(z(e,this.scale),this.offset)))}};d0.className="Rescaling";ne.registerClass(d0);function EU(e){return new $u(e)}function AU(e){return new bw(e)}function $U(e){return new mw(e)}function FU(e){return new fw(e)}function DU(e){return new gw(e)}function RU(e){return new xw(e)}function MU(e){return new yw(e)}function PU(e){return new If(e)}function OU(e){return new Kc(e)}function LU(e){return new kw(e)}function zU(e){return new Xc(e)}function BU(e){return new Iw(e)}function WU(e){return new Sw(e)}function VU(e){return new Tw(e)}function UU(e){return new Nw(e)}function GU(e){return new Cw(e)}function HU(e){return new Mw(e)}function jU(e){return new Dw(e)}function qU(e){return new _f(e)}function KU(e){return new Fw(e)}function XU(e){return new Rw(e)}function YU(e){return new Pw(e)}function ZU(e){return new Ow(e)}function JU(e){return new Lw(e)}function QU(e){return new Bw(e)}function eG(e){return new Ww(e)}function tG(e){return new Uw(e)}function nG(e){return new jw(e)}function aG(e){return new Gw(e)}function rG(e){return new Hw(e)}function sG(e){return new Vw(e)}function iG(e){return new qw(e)}function oG(e){return new Zw(e)}function lG(e){return new Jw(e)}function uG(e){return new Qw(e)}function h0(e){return new t0(e)}function pG(e){return h0(e)}function cG(e){return h0(e)}function m0(e){return new a0(e)}function dG(e){return m0(e)}function hG(e){return m0(e)}function f0(e){return new s0(e)}function mG(e){return f0(e)}function fG(e){return f0(e)}function gG(e){return new i0(e)}function bG(e){return new l0(e)}function ON(e){return new o0(e)}function LN(e){return new u0(e)}function zN(e){return new e0(e)}function BN(e){return new n0(e)}function yG(e){return new r0(e)}function xG(e){return new Ew(e)}function vG(e){return new Tf(e)}function wG(e){return new Aw(e)}function kG(e){return new Zc(e)}function IG(e){return new _w(e)}function SG(e){return new Sf(e)}function TG(e){return new $w(e)}function NG(e){return new Cf(e)}function CG(e){return new cr(e)}function _G(e){return new Nf(e)}function EG(e){return new c0(e)}function AG(e){return new p0(e)}var $G=ON,FG=LN,DG=zN,RG=BN;function MG(e){return new Kw(e)}function PG(e){return new Xw(e)}function OG(e){return new Yw(e)}function LG(e){return new zw(e)}function zG(e){return new d0(e)}var WN={};_e(WN,{MAPE:()=>YG,MSE:()=>QG,binaryAccuracy:()=>BG,binaryCrossentropy:()=>WG,categoricalAccuracy:()=>UG,categoricalCrossentropy:()=>GG,cosineProximity:()=>qG,mape:()=>ZG,meanAbsoluteError:()=>KG,meanAbsolutePercentageError:()=>XG,meanSquaredError:()=>JG,mse:()=>eH,precision:()=>HG,recall:()=>jG,sparseCategoricalAccuracy:()=>VG});function BG(e,t){return ow(e,t)}function WG(e,t){return tN(e,t)}function VG(e,t){return nN(e,t)}function UG(e,t){return lw(e,t)}function GG(e,t){return uw(e,t)}function HG(e,t){return eN(e,t)}function jG(e,t){return FV(e,t)}function qG(e,t){return iw(e,t)}function KG(e,t){return wf(e,t)}function XG(e,t){return Fu(e,t)}function YG(e,t){return Fu(e,t)}function ZG(e,t){return Fu(e,t)}function JG(e,t){return bo(e,t)}function QG(e,t){return bo(e,t)}function eH(e,t){return bo(e,t)}var VN={};_e(VN,{modelFromJSON:()=>lU});var UN={};_e(UN,{l1:()=>nH,l1l2:()=>tH,l2:()=>aH});function tH(e){return new jc(e)}function nH(e){return gU(e)}function aH(e){return bU(e)}var GN=class extends pl{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 Xd(e,t){return et}var HN=class extends GN{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new De("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=Xd:this.mode==="max"?this.monitorFunc=kk:this.monitor.indexOf("acc")!==-1?this.monitorFunc=kk:this.monitorFunc=Xd,this.monitorFunc===Xd&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Xd?1/0:-1/0}async onEpochEnd(e,t){await Hr(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 rH(e){return new HN(e)}var sH={earlyStopping:rH},iH=H();iH.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 Ia;(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"})(Ia||(Ia={}));var Ik;(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={}))})(Ik||(Ik={}));var g0={};function oH(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};g0[e]=n}function jN(e){return g0[e]}function lH(e){delete g0[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]=Kn(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[Dh(r,o)]);return i!==void 0?t[Dh(r,i)][s]:void 0}function uH(e,t,n){return t[Dh(e,n.currentContextId)]}function nr(e,t){let[n,a,r]=Kn(e);return[Dh(n,t&&t.currentContextId),a,r]}function Dh(e,t){return t?`${e}-${t}`:e}function Kn(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 rh(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 wr(e){return e.kept?e:ar(e)}var qN={};_e(qN,{json:()=>pH});var pH=[{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}]}],KN={};_e(KN,{json:()=>cH});var cH=[{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}]}],XN={};_e(XN,{json:()=>dH});var dH=[{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"}]}],YN={};_e(YN,{json:()=>hH});var hH=[{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"}]}],ZN={};_e(ZN,{json:()=>mH});var mH=[{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"}]}],JN={};_e(JN,{json:()=>fH});var fH=[{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}]}],QN={};_e(QN,{json:()=>gH});var gH=[{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"}]}],t2={};_e(t2,{json:()=>yH});var yH=[{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"}]}],n2={};_e(n2,{json:()=>xH});var xH=[{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"}]}],a2={};_e(a2,{json:()=>vH});var vH=[{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}]}],r2={};_e(r2,{json:()=>wH});var wH=[{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"}]}],s2={};_e(s2,{json:()=>kH});var kH=[{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}]}],i2={};_e(i2,{json:()=>IH});var IH=[{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"}]}],o2={};_e(o2,{json:()=>SH});var SH=[{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}]}],l2={};_e(l2,{json:()=>TH});var TH=[{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"}]}],u2={};_e(u2,{json:()=>NH});var NH=[{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}]}],p2={};_e(p2,{json:()=>CH});var CH=[{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"}]}],c2={};_e(c2,{json:()=>_H});var _H=[{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:[]}],Sk=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[qN,KN,XN,YN,ZN,JN,QN,e2,t2,n2,a2,r2,s2,i2,o2,l2,u2,p2,c2],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}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,b)=>{let[y,,x]=nr(g),w=i[y];if(w.outputs!=null){let I=w.outputs.indexOf(x);if(I!==-1){let T=`${y}:${I}`;f.inputNames[b]=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]=nr(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]=nr(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=jN(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=Uy(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Uy(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=Yy(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Yy(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=Hy(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=Hy(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=Xy(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Xy(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=Gy(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Gy(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=Jy(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Jy(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=Ky(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Ky(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=Zy(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Zy(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=jy(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=jy(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=qy(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=qy(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=Tk(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Tk(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]=nr(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:b0(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]=nr(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let b=`${h}:${g}`;p.inputNames[c]=b}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=nr(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 EH(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 d2(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):EH(e);return t?n:n.toLowerCase()}function Uy(e,t,n,a=!1){let r=e[t];return r!=null?d2(r.s,a):n}function Gy(e,t,n){let a=e[t];return a?a.b:n}function Hy(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 b0(e){switch(typeof e=="string"&&(e=Ia[e]),e){case Ia.DT_FLOAT:case Ia.DT_HALF:return"float32";case Ia.DT_INT32:case Ia.DT_INT64:case Ia.DT_INT8:case Ia.DT_UINT8:return"int32";case Ia.DT_BOOL:return"bool";case Ia.DT_DOUBLE:return"float32";case Ia.DT_STRING:return"string";default:return null}}function Tk(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function jy(e,t,n){let a=e[t];return a&&a.type?b0(a.type):n}function qy(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>b0(r)):n}function h2(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function Ky(e,t,n){let a=e[t];return a&&a.shape?h2(a.shape):n}function Xy(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 Yy(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>d2(s,a)):n}function Zy(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>h2(r)):n}function Jy(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var AH=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 Hy(this.node.rawAttrs,e,t);if(n.s!=null)return Uy(this.node.rawAttrs,e,t);if(n.b!=null)return Gy(this.node.rawAttrs,e,t);if(n.shape!=null)return Ky(this.node.rawAttrs,e,t);if(n.type!=null)return jy(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Xy(this.node.rawAttrs,e,t);if(n.list.s!=null)return Yy(this.node.rawAttrs,e,t);if(n.list.shape!=null)return Zy(this.node.rawAttrs,e,t);if(n.list.b!=null)return Jy(this.node.rawAttrs,e,t);if(n.list.type!=null)return qy(this.node.rawAttrs,e,t)}return t}},ln={};_e(ln,{OP_SCOPE_SUFFIX:()=>Tx,abs:()=>Lt,acos:()=>zx,acosh:()=>Bx,add:()=>Y,addN:()=>xS,all:()=>Em,any:()=>Gp,argMax:()=>ai,argMin:()=>Wx,asin:()=>Vx,asinh:()=>Ux,atan:()=>Gx,atan2:()=>Hx,atanh:()=>jx,avgPool:()=>fa,avgPool3d:()=>Kx,basicLSTMCell:()=>IS,batchNorm:()=>gs,batchNorm2d:()=>Xx,batchNorm3d:()=>Yx,batchNorm4d:()=>Zx,batchToSpaceND:()=>_c,bincount:()=>Jx,booleanMaskAsync:()=>sT,broadcastArgs:()=>SS,broadcastTo:()=>Ks,buffer:()=>Pe,cast:()=>oe,ceil:()=>Qx,clipByValue:()=>Qt,clone:()=>ar,complex:()=>Cr,concat:()=>Ze,concat1d:()=>ev,concat2d:()=>tv,concat3d:()=>nv,concat4d:()=>av,conv1d:()=>Am,conv2d:()=>$t,conv2dTranspose:()=>$m,conv3d:()=>sv,conv3dTranspose:()=>iv,cos:()=>Ec,cosh:()=>Fm,cosineWindow:()=>Qm,cumprod:()=>Hp,cumsum:()=>Dm,denseBincount:()=>NS,depthToSpace:()=>ov,depthwiseConv2d:()=>bs,diag:()=>CS,dilation2d:()=>lv,div:()=>he,divNoNan:()=>uv,dot:()=>pv,dropout:()=>Ov,einsum:()=>_S,elu:()=>Su,enclosingPowerOfTwo:()=>Lv,equal:()=>Jn,erf:()=>cv,euclideanNorm:()=>mv,exp:()=>fn,expandDims:()=>hn,expm1:()=>fv,eye:()=>Rm,fft:()=>Oc,fill:()=>gn,floor:()=>Nu,floorDiv:()=>_m,fused:()=>ll,gather:()=>Cu,gatherND:()=>uT,greater:()=>Vn,greaterEqual:()=>ys,ifft:()=>ol,imag:()=>Tc,image:()=>Ir,inTopKAsync:()=>pT,irfft:()=>Xm,isFinite:()=>gv,isInf:()=>bv,isNaN:()=>yv,leakyRelu:()=>Ac,less:()=>Mm,lessEqual:()=>xs,linalg:()=>Wv,linspace:()=>DS,localResponseNormalization:()=>xv,log:()=>Qn,log1p:()=>$c,logSigmoid:()=>vv,logSoftmax:()=>Om,logSumExp:()=>Lm,logicalAnd:()=>_a,logicalNot:()=>Fc,logicalOr:()=>zm,logicalXor:()=>wv,losses:()=>kT,lowerBound:()=>MS,matMul:()=>Ae,max:()=>Na,maxPool:()=>Dt,maxPool3d:()=>kv,maxPoolWithArgmax:()=>PS,maximum:()=>ur,mean:()=>Nt,meshgrid:()=>OS,min:()=>jp,minimum:()=>_u,mirrorPad:()=>Iv,mod:()=>Sv,moments:()=>Dc,movingAverage:()=>iT,mul:()=>z,multiRNNCell:()=>LS,multinomial:()=>zS,neg:()=>yt,norm:()=>Tu,notEqual:()=>ii,oneHot:()=>al,ones:()=>Yn,onesLike:()=>ea,op:()=>L,outerProduct:()=>BS,pad:()=>ga,pad1d:()=>WS,pad2d:()=>VS,pad3d:()=>US,pad4d:()=>GS,pool:()=>Tv,pow:()=>_r,prelu:()=>Mc,print:()=>Ex,prod:()=>Nv,raggedGather:()=>HS,raggedTensorToTensor:()=>jS,rand:()=>qS,randomGamma:()=>KS,randomNormal:()=>Wm,randomStandardNormal:()=>XS,randomUniform:()=>Eu,range:()=>sl,real:()=>rl,reciprocal:()=>Ev,relu:()=>Xe,relu6:()=>Vm,reshape:()=>B,reverse:()=>ma,reverse1d:()=>YS,reverse2d:()=>ZS,reverse3d:()=>JS,reverse4d:()=>QS,rfft:()=>Lc,round:()=>Um,rsqrt:()=>Gm,scalar:()=>ye,scatterND:()=>oT,searchSorted:()=>Bm,selu:()=>Hm,separableConv2d:()=>vs,setdiff1dAsync:()=>eT,sigmoid:()=>da,sign:()=>Av,signal:()=>wT,sin:()=>jm,sinh:()=>qm,slice:()=>We,slice1d:()=>Pc,slice2d:()=>Km,slice3d:()=>mo,slice4d:()=>il,softmax:()=>ja,softplus:()=>ho,spaceToBatchND:()=>Rc,sparse:()=>IT,sparseToDense:()=>lT,spectral:()=>vT,split:()=>Ln,sqrt:()=>on,square:()=>ot,squaredDifference:()=>Ym,squeeze:()=>ws,stack:()=>Ft,step:()=>fo,stridedSlice:()=>$v,string:()=>ST,sub:()=>pe,sum:()=>fe,tan:()=>Fv,tanh:()=>ri,tensor:()=>On,tensor1d:()=>Ke,tensor2d:()=>Ca,tensor3d:()=>Nc,tensor4d:()=>Aa,tensor5d:()=>tT,tensor6d:()=>nT,tile:()=>Pn,topk:()=>Dv,transpose:()=>Ce,truncatedNormal:()=>Zm,unique:()=>Rv,unsortedSegmentSum:()=>Jm,unstack:()=>ct,upperBound:()=>aT,variable:()=>Mv,where:()=>mn,whereAsync:()=>Pv,zeros:()=>It,zerosLike:()=>je});var $H=(e,t,n,a=ln)=>{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`)}},FH=(e,t,n,a=ln)=>{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 Ta(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 Nk(e){return!(typeof e=="number"||e.some(t=>t<0))}function Ip(e,t,n){let a=Qy(e,n),r=!Nk(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=Qy(s.shape,a)}),!Nk(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function Qy(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 DH=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=ye(0),Zt(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),Ta(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,Zt(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=[];O(()=>{t=B(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}`);Sa(t,r.shape,"TensorList shape mismatch: "),Qt(r)}),this.idTensor=ke(0),this.maxNumElements=a,Qt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new Tl([...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.`);Sa(e,this.elementShape,"TensorList shape mismatch: ");let a=zp(this.elementShape,this.tensors,e);return O(()=>{let r=this.tensors.map(s=>B(s,a));return Rt(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=zp(this.elementShape,this.tensors,e),a=this.tensors.pop();return a.kept=!1,Sa(a.shape,e,"TensorList shape mismatch: "),B(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(Sa(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Qt(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 Tl([],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.`);Sa(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=zp(this.elementShape,this.tensors,t);return B(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.`);Sa(this.elementShape,t.shape,"TensorList shape mismatch: "),Qt(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}`);Sa(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=zp(this.elementShape,this.tensors,n);return e.length===0?Bn([],[0].concat(a)):O(()=>{let r=e.map(s=>B(this.tensors[s],a));return Rt(r,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);Sa(this.elementShape,t,"TensorList shape mismatch: ");let n=zp(this.elementShape,this.tensors,t);return this.size()===0?Bn([],[0].concat(n)):O(()=>{let a=this.tensors.map(r=>B(r,n));return Qe(a,0)})}};function p6(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);Sa(r,t,"TensorList shape mismatch: ");let s=mt(e);return new Tl(s,t,a)}function c6(e,t,n,a){return new Tl([],e,t,a)}function d6(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 Tl([],n,e.dtype,a),i=mt(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function h6(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=B(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}`);Ta(t,r.shape,"TensorList shape mismatch: "),Zt(r)}),this.idTensor=ye(0),this.maxNumElements=a,Zt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new dl([...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.`);Ta(e,this.elementShape,"TensorList shape mismatch: ");let a=Ip(this.elementShape,this.tensors,e);return P(()=>{let r=this.tensors.map(s=>B(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=Ip(this.elementShape,this.tensors,e),a=this.tensors.pop();return a.kept=!1,Ta(a.shape,e,"TensorList shape mismatch: "),B(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(Ta(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Zt(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 dl([],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.`);Ta(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=Ip(this.elementShape,this.tensors,t);return B(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.`);Ta(this.elementShape,t.shape,"TensorList shape mismatch: "),Zt(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}`);Ta(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=Ip(this.elementShape,this.tensors,n);return e.length===0?On([],[0].concat(a)):P(()=>{let r=e.map(s=>B(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}`);Ta(this.elementShape,t,"TensorList shape mismatch: ");let n=Ip(this.elementShape,this.tensors,t);return this.size()===0?On([],[0].concat(n)):P(()=>{let a=this.tensors.map(r=>B(r,n));return Ze(a,0)})}};function RH(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);Ta(r,t,"TensorList shape mismatch: ");let s=ct(e);return new dl(s,t,a)}function MH(e,t,n,a){return new dl([],e,t,a)}function PH(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 dl([],n,e.dtype,a),i=ct(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function OH(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=xx(s,n),o=a===0?0:e.size/a,l=O(()=>{let p=[];e=B(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=>In(r,t,n)!==void 0);if(a){let r=In(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 u6(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,ke(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[ke(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=d6(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=c6(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=p6(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=h6(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[ke(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 Xk(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=Ch(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 f6=(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=Ch(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}=Xk(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}=Xk(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=Ch(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=Ch(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`)}},g6=(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 Fy(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 b6=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}=Fy(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}=Fy(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}=Fy(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`)}},y6=(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`)}},x6=(e,t,n,a=un)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[In(e.name,t,n)||r];case"Placeholder":return[In(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 ke(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(),O(()=>{let a=mt(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=k("keyDType",e,t,n),s=k("valueDType",e,t,n),i=new v6(r,s);return a.addHashTable(e.name,i),[i.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`)}},k6=(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`)}},T6=(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`)}},S6=(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`)}},N6=(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`)}},C6=(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`)}},_6=(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`)}},E6=(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`)}},$6=(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`)}},A6=(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 Yk(e,t,n,a,r=O){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>o6(i,o,l));case"basic_math":return r(()=>l6(i,o,l));case"control":return m6(i,o,l);case"convolution":return r(()=>f6(i,o,l));case"creation":return r(()=>g6(i,o,l));case"dynamic":return b6(i,o,l);case"evaluation":return r(()=>y6(i,o,l));case"image":return r(()=>k6(i,o,l));case"graph":return r(()=>x6(i,o,l));case"logical":return r(()=>I6(i,o,l));case"matrices":return r(()=>T6(i,o,l));case"normalization":return r(()=>S6(i,o,l));case"reduction":return r(()=>N6(i,o,l));case"slice_join":return r(()=>C6(i,o,l));case"sparse":return r(()=>_6(i,o,l));case"spectral":return r(()=>E6(i,o,l));case"string":return r(()=>$6(i,o,l));case"transformation":return r(()=>A6(i,o,l));case"hash_table":return w6(i,o,l,a);case"custom":let u=u2(i.op);if(u&&u.customExecutor)return u.customExecutor(new i6(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 Zk=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 Jk(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((A2(c)||P6(c)||O6(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=>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 D6=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],R6=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],M6=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function A2(e){return D6.indexOf(e.op)>=0}function P6(e){return R6.indexOf(e.op)>=0}function O6(e){return M6.indexOf(e.op)>=0}var vx=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 vx(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=Jk(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[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 O(()=>{let p=new Zk(this.weightMap,l,u,this.functionExecutorMap),d=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=Yn(m),b=[];b[g]=e[m],d[f]=b});let c=this.getFrozenTensorIds(d),h={};for(let m=0;mIn(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=zH(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]=lr(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=X().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(u){console.warn(u.message)}this.resetIntermediateTensors();let s=new Zk(this.weightMap,a,r,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(e,s,t,n);let i=t.map(u=>In(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(y=>this.graph.nodes[Yn(y)[0]]),i=n.map(y=>Yn(y)[0]),o=i.map(y=>this.graph.nodes[y]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:u,dynamicNode:p,syncInputs:d}=Jk(e,o,this.weightMap,this._initNodes),c=[...s,...this.graph.weights,...this._initNodes||[]].map(y=>({node:y,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(y=>{let[x,w]=Yn(y),I=[];I[w]=e[y],h[x]=I});let m={},f=this.getFrozenTensorIds(h),g={};for(;c.length>0;){let y=this.processStack(s,c,t,h,g,f,i,m,l);await Promise.all(y)}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 b=o.filter(y=>!A2(y)&&!In(y.name,h,t)).map(y=>y.name);if(b.length>0){let y="";throw p!=null&&(y=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${d}]`),new Error(`Cannot compute the outputs [${b}] from the provided inputs [${r}]. Consider providing the following inputs: [${u}]. ${y}`)}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]=lr(p.node.name,n)),a[p.node.name]==null){let c=Yk(p.node,a,n,this._resourceManager);d||([d]=lr(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]=lr(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!In(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!In(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`)})}},L6=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]}},z6="?tfjs-format=file",W6="model.json",O0=class{constructor(e,t={},n=Sn){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new L6}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 vx(jk.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=jk.Instance.transformGraph(e.modelInitializer);this.initializer=new vx(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}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 $e?[n]:n,r={};return a.forEach((s,i)=>r[this.structuredOutputKeys[i]]=s),r}return n}normalizeInputs(e){if(!(e instanceof $e)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,n,a)=>(t[n]=e[a],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=this.executor.execute(e,t);return n.length>1?n:n[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);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.resourceManager.dispose()}};async function B6(e,t={},n=Sn){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=U6(e));let a=new O0(e,t,n);return await a.load(),a}function V6(e){if(e==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide a url or an IOHandler that loads the model");if(!e.load)throw new Error(`modelUrl IO Handler ${e} has no load function`);let t=new O0(e);return t.load(),t}function U6(e){return e.endsWith("/")||(e=e+"/"),`${e}${W6}${z6}`}var G6="3.20.0",F2={};Fe(F2,{CSVDataset:()=>B2,Dataset:()=>Hu,FileDataSource:()=>K2,TextLineDataset:()=>W2,URLDataSource:()=>X2,array:()=>hj,csv:()=>Tj,func:()=>Sj,generator:()=>Nj,microphone:()=>_j,version_data:()=>Ej,webcam:()=>Cj,zip:()=>mj});var H6=ds(hm()),j6=ds(hm());function q6(e,t){return am(e,t)}function am(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(Sl(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=am(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 K6(e,t=R2){return D2(e,t)}function D2(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(Sl(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=D2(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 R2(e){return e===null?null:Sl(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function M2(e,t){let n=new Map;am(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 am(e,t,n)}function Sl(e){let t=!1;if(X().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=DI();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof $e)&&!(e instanceof Promise)&&!t)}function X6(e){return e==null||Y6(e)||Array.isArray(e)||typeof e=="object"&&e instanceof $e||v.isTypedArray(e)}function Y6(e){return e===null||typeof e!="object"&&typeof e!="function"}function Z6(e){return q6(e,J6)}function J6(e){return e instanceof $e?{value:e.clone(),recurse:!1}:Sl(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var P2=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}},L0=class extends P2{constructor(){super(L0.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 ij(this,e,t)}columnMajorBatch(e,t=!0,n=R2){return this.rowMajorBatch(e,t).map(a=>K6(a,n))}concatenate(e,t){return new L2(O2([this,e]),t)}take(e){return e<0||e==null?this:new sj(this,e)}skip(e){return e<0||e==null?this:new rj(this,e)}prefetch(e){return new z2(this,e)}shuffle(e,t){return new dj(this,e,t)}serial(){return new aj(this)}},tj=class extends nn{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:Z6(e),done:!1}}},nj=class extends nn{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}}},aj=class extends nn{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()}},rj=class extends nn{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()}},ij=class extends nn{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}}},oj=class extends nn{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;Me(e.value)}}},lj=class extends nn{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=qa.getTensorsInContainer(e.value),n=this.transform(e.value),a=qa.getTensorsInContainer(n);for(let r of t)qa.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},uj=class extends nn{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}}}},Qk=class extends nn{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=qa.getTensorsInContainer(e.value),n=await this.transform(e.value),a=qa.getTensorsInContainer(n);for(let r of t)qa.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},W0=class extends nn{constructor(){super(),this.outputQueue=new L0,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}}},pj=class extends W0{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=qa.getTensorsInContainer(e.value),n=this.transform(e.value),a=qa.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)qa.isTensorInList(r,a)||r.dispose();return!0}},L2=class extends nn{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}},Qr;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(Qr||(Qr={}));var cj=class extends nn{constructor(e,t=Qr.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 nn?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await M2(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case Qr.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Qr.SHORTEST:return{value:null,done:!0};case Qr.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},z2=class extends nn{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new P2(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()}},dj=class extends z2{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=j6.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}}},Hu=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,fj),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=>O(()=>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=>O(()=>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=z0(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=H6.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()}};Hu.MAX_BUFFER_SIZE=1e4;function Xn(e,t=null){return new class extends Hu{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function hj(e){return Xn(async()=>O2(e),e.length)}function mj(e){if(!Sl(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 M2(e,a=>{if(a instanceof Hu)return{value:a.iterator(),recurse:!1};if(Sl(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return ej(n,Qr.SHORTEST)},t)}function fj(e){if(e===null)return null;let t=e[0];return X6(t)?{value:gj(e),recurse:!1}:{value:null,recurse:!0}}function gj(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof $e?Rt(e):Bn(e)}var W2=class extends Hu{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))}},xh='"',Wp=Symbol("out"),eI=Symbol("field"),vh=Symbol("quote"),Dy=Symbol("quoteafterquote"),tI=Symbol("quoteinquote"),B2=class extends Hu{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 W2(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(!X().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let t=new V2(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),Bn(n,t)}},U2=class extends nn{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=Ca([s,r,o,i],[1,4])}else this.cropBox=Ca([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(!X().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 U2(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=wo.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 O(()=>{let t=mn(le(e,"float32"),0),n;n=Nr.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return B(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.")}},G2=class{},H2=class extends nn{split(e){return new bj(this,e)}},bj=class extends H2{constructor(e,t){super(),this.upstream=e,this.impl=new yj(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},yj=class extends W0{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}},xj=class extends nn{decodeUTF8(){return new vj(this)}},vj=class extends H2{constructor(e){super(),this.upstream=e,this.impl=new wj(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},wj=class extends W0{constructor(e){if(super(),this.upstream=e,X().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=DI();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 X().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},j2=class extends xj{constructor(e,t={}){super(),this.file=e,this.options=t,v.assert(e instanceof Uint8Array||(X().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 kj(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 j2(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 q2(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var K2=class extends G2{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(q2(this.input)&&X().get("IS_NODE")){let e=Ox();this.input=e.readFileSync(this.input.slice(7))}return new j2(this.input,this.options)}},X2=class extends G2{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return q2(this.url)?new K2(this.url,this.fileOptions).iterator():kj(this.url,this.fileOptions)}};function Tj(e,t={}){return new B2(new X2(e),t)}function Sj(e){let t=z0(e);return Xn(async()=>t)}function Nj(e){return Xn(async()=>{let t=await e();return z0(()=>t.next())})}async function Cj(e,t){return U2.create(e,t)}async function _j(e){return V2.create(e)}var Ej="3.20.0";function xe(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 $j=gr.whereImpl,B0=class extends yc{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new mm(this,rr())}nextDataId(){return B0.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,X().get("IS_NODE")&&C.warn(` + ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=Qy(s,n),o=a===0?0:e.size/a,l=P(()=>{let p=[];e=B(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[wr(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=wr(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[wr(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[wr(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[wr(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[wr(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 DH(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,ye(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[ye(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=PH(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=MH(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=RH(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=OH(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[ye(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 Ck(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=rh(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 zH=(e,t,n,a=ln)=>{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=rh(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}=Ck(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}=Ck(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=rh(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=rh(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`)}},BH=(e,t,n,a=ln)=>{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 dy(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 WH=async(e,t,n,a,r=ln)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u,softNmsSigma:p}=dy(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}=dy(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}=dy(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`)}},VH=(e,t,n,a=ln)=>{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`)}},UH=(e,t,n,a=ln)=>{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[wr(p)]}case"IdentityN":return k("x",e,t,n).map(p=>wr(p));case"Snapshot":let s=k("x",e,t,n);return[wr(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 ye(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=k("keyDType",e,t,n),s=k("valueDType",e,t,n),i=new GH(r,s);return a.addHashTable(e.name,i),[i.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`)}},jH=(e,t,n,a=ln)=>{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`)}},qH=(e,t,n,a=ln)=>{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`)}},KH=(e,t,n,a=ln)=>{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`)}},XH=(e,t,n,a=ln)=>{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`)}},YH=(e,t,n,a=ln)=>{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`)}},ZH=(e,t,n,a=ln)=>{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`)}},JH=(e,t,n,a=ln)=>{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`)}},QH=(e,t,n,a=ln)=>{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`)}},e6=(e,t,n,a=ln)=>{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=ln)=>{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 _k(e,t,n,a,r=P){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>$H(i,o,l));case"basic_math":return r(()=>FH(i,o,l));case"control":return LH(i,o,l);case"convolution":return r(()=>zH(i,o,l));case"creation":return r(()=>BH(i,o,l));case"dynamic":return WH(i,o,l);case"evaluation":return r(()=>VH(i,o,l));case"image":return r(()=>jH(i,o,l));case"graph":return r(()=>UH(i,o,l));case"logical":return r(()=>qH(i,o,l));case"matrices":return r(()=>KH(i,o,l));case"normalization":return r(()=>XH(i,o,l));case"reduction":return r(()=>YH(i,o,l));case"slice_join":return r(()=>ZH(i,o,l));case"sparse":return r(()=>JH(i,o,l));case"spectral":return r(()=>QH(i,o,l));case"string":return r(()=>e6(i,o,l));case"transformation":return r(()=>t6(i,o,l));case"hash_table":return HH(i,o,l,a);case"custom":let u=jN(i.op);if(u&&u.customExecutor)return u.customExecutor(new AH(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 Ek=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 Ak(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=Object.keys(e).map(c=>Kn(c)[0]),p=[];a!=null&&(p=a.map(c=>Kn(c.name)[0]));let d=[...t];for(;d.length>0;){let c=d.pop();if((m2(c)||i6(c)||o6(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=>Kn(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 a6=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],r6=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],s6=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function m2(e){return a6.indexOf(e.op)>=0}function i6(e){return r6.indexOf(e.op)>=0}function o6(e){return s6.indexOf(e.op)>=0}var ex=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 ex(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=Ak(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[Kn(p)[0]]),r=t.map(p=>Kn(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 Ek(this.weightMap,l,u,this.functionExecutorMap),d=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=Kn(m),b=[];b[g]=e[m],d[f]=b});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=uH(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]=nr(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 Ek(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(y=>this.graph.nodes[Kn(y)[0]]),i=n.map(y=>Kn(y)[0]),o=i.map(y=>this.graph.nodes[y]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:u,dynamicNode:p,syncInputs:d}=Ak(e,o,this.weightMap,this._initNodes),c=[...s,...this.graph.weights,...this._initNodes||[]].map(y=>({node:y,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(y=>{let[x,w]=Kn(y),I=[];I[w]=e[y],h[x]=I});let m={},f=this.getFrozenTensorIds(h),g={};for(;c.length>0;){let y=this.processStack(s,c,t,h,g,f,i,m,l);await Promise.all(y)}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 b=o.filter(y=>!m2(y)&&!vn(y.name,h,t)).map(y=>y.name);if(b.length>0){let y="";throw p!=null&&(y=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${d}]`),new Error(`Cannot compute the outputs [${b}] from the provided inputs [${r}]. Consider providing the following inputs: [${u}]. ${y}`)}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]=nr(p.node.name,n)),a[p.node.name]==null){let c=_k(p.node,a,n,this._resourceManager);d||([d]=nr(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]=nr(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]=Kn(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]=Kn(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]=Kn(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},l6=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]}},u6="?tfjs-format=file",p6="model.json",y0=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 l6}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 ex(Sk.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=Sk.Instance.transformGraph(e.modelInitializer);this.initializer=new ex(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}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))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,n,a)=>(t[n]=e[a],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=this.executor.execute(e,t);return n.length>1?n:n[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);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.resourceManager.dispose()}};async function c6(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=h6(e));let a=new y0(e,t,n);return await a.load(),a}function d6(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 y0(t);return n.load(),n}function h6(e){return e.endsWith("/")||(e=e+"/"),`${e}${p6}${u6}`}var m6="3.21.0",f2={};_e(f2,{CSVDataset:()=>S2,Dataset:()=>Du,FileDataSource:()=>$2,TextLineDataset:()=>I2,URLDataSource:()=>F2,array:()=>O6,csv:()=>K6,func:()=>X6,generator:()=>Y6,microphone:()=>J6,version_data:()=>Q6,webcam:()=>Z6,zip:()=>L6});var f6=ls(Gh()),g6=ls(Gh());function b6(e,t){return Rh(e,t)}function Rh(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(hl(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=Rh(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 y6(e,t=b2){return g2(e,t)}function g2(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(hl(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=g2(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 b2(e){return e===null?null:hl(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function y2(e,t){let n=new Map;Rh(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 Rh(e,t,n)}function hl(e){let t=!1;if(H().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=hI();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Te)&&!(e instanceof Promise)&&!t)}function x6(e){return e==null||v6(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Te||v.isTypedArray(e)}function v6(e){return e===null||typeof e!="object"&&typeof e!="function"}function w6(e){return b6(e,k6)}function k6(e){return e instanceof Te?{value:e.clone(),recurse:!1}:hl(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var x2=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}},x0=class extends x2{constructor(){super(x0.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 A6(this,e,t)}columnMajorBatch(e,t=!0,n=b2){return this.rowMajorBatch(e,t).map(a=>y6(a,n))}concatenate(e,t){return new w2(v2([this,e]),t)}take(e){return e<0||e==null?this:new E6(this,e)}skip(e){return e<0||e==null?this:new _6(this,e)}prefetch(e){return new k2(this,e)}shuffle(e,t){return new P6(this,e,t)}serial(){return new C6(this)}},T6=class extends en{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:w6(e),done:!1}}},N6=class extends en{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}}},C6=class extends en{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()}},_6=class extends en{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()}},A6=class extends en{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}}},$6=class extends en{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)}}},F6=class extends en{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=Ba.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ba.getTensorsInContainer(n);for(let r of t)Ba.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},D6=class extends en{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}}}},$k=class extends en{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=Ba.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Ba.getTensorsInContainer(n);for(let r of t)Ba.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},w0=class extends en{constructor(){super(),this.outputQueue=new x0,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}}},R6=class extends w0{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=Ba.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ba.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Ba.isTensorInList(r,a)||r.dispose();return!0}},w2=class extends en{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}},Xr;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(Xr||(Xr={}));var M6=class extends en{constructor(e,t=Xr.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 en?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await y2(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case Xr.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Xr.SHORTEST:return{value:null,done:!0};case Xr.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},k2=class extends en{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new x2(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()}},P6=class extends k2{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=g6.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}}},Du=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),qn(async()=>(await n.iterator()).columnMajorBatch(e,t,z6),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,qn(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,qn(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 qn(async()=>(await t.iterator()).map(n=>P(()=>e(n))),this.size)}mapAsync(e){let t=this;return qn(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 qn(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,qn(async()=>{let a=v0(async()=>({value:await t.iterator(),done:!1}));return I6(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=f6.alea(t||v.now().toString());return qn(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,qn(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()}};Du.MAX_BUFFER_SIZE=1e4;function qn(e,t=null){return new class extends Du{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function O6(e){return qn(async()=>v2(e),e.length)}function L6(e){if(!hl(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 y2(e,a=>{if(a instanceof Du)return{value:a.iterator(),recurse:!1};if(hl(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return S6(n,Xr.SHORTEST)},t)}function z6(e){if(e===null)return null;let t=e[0];return x6(t)?{value:B6(e),recurse:!1}:{value:null,recurse:!0}}function B6(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Te?Ft(e):On(e)}var I2=class extends Du{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))}},Yd='"',Sp=Symbol("out"),Fk=Symbol("field"),Zd=Symbol("quote"),hy=Symbol("quoteafterquote"),Dk=Symbol("quoteinquote"),S2=class extends Du{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 I2(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 T2(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),On(n,t)}},N2=class extends en{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=Ca([s,r,o,i],[1,4])}else this.cropBox=Ca([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 N2(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=hn(oe(e,"float32"),0),n;n=Ir.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return B(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.")}},C2=class{},_2=class extends en{split(e){return new W6(this,e)}},W6=class extends _2{constructor(e,t){super(),this.upstream=e,this.impl=new V6(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},V6=class extends w0{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}},U6=class extends en{decodeUTF8(){return new G6(this)}},G6=class extends _2{constructor(e){super(),this.upstream=e,this.impl=new H6(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},H6=class extends w0{constructor(e){if(super(),this.upstream=e,H().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=hI();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}},E2=class extends U6{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 j6(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=q6(e));let s=await(n||v.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new E2(i,t)}else throw new Error(s.statusText)}var q6=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 A2(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var $2=class extends C2{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(A2(this.input)&&H().get("IS_NODE")){let e=bx();this.input=e.readFileSync(this.input.slice(7))}return new E2(this.input,this.options)}},F2=class extends C2{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return A2(this.url)?new $2(this.url,this.fileOptions).iterator():j6(this.url,this.fileOptions)}};function K6(e,t={}){return new S2(new F2(e),t)}function X6(e){let t=v0(e);return qn(async()=>t)}function Y6(e){return qn(async()=>{let t=await e();return v0(()=>t.next())})}async function Z6(e,t){return N2.create(e,t)}async function J6(e){return T2.create(e)}var Q6="3.21.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 ej=pr.whereImpl,k0=class extends nc{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new Hh(this,Ja())}nextDataId(){return k0.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 C.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 Le(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,t)}makeOutput(e,t,n){return rr().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){xe([e],"where");let t=this.readSync(e.dataId);return $j(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};B0.nextDataId=0;var Y2={};Fe(Y2,{addImpl:()=>Q2,bincountImpl:()=>U0,bincountReduceImpl:()=>eC,castImpl:()=>J2,ceilImpl:()=>tC,concatImpl:()=>G0,equalImpl:()=>nC,expImpl:()=>rC,expm1Impl:()=>iC,floorImpl:()=>oC,gatherNdImpl:()=>lC,gatherV2Impl:()=>uC,greaterEqualImpl:()=>cC,greaterImpl:()=>pC,lessEqualImpl:()=>hC,lessImpl:()=>dC,linSpaceImpl:()=>mC,logImpl:()=>fC,maxImpl:()=>gC,maximumImpl:()=>bC,minimumImpl:()=>yC,multiplyImpl:()=>H0,negImpl:()=>xC,notEqualImpl:()=>vC,prodImpl:()=>wC,raggedTensorToTensorImpl:()=>kC,rangeImpl:()=>q0,rsqrtImpl:()=>IC,scatterImpl:()=>ol,sigmoidImpl:()=>yq,simpleAbsImpl:()=>Z2,sliceImpl:()=>sm,sparseFillEmptyRowsImpl:()=>SC,sparseReshapeImpl:()=>NC,sparseSegmentReductionImpl:()=>K0,sqrtImpl:()=>wq,squaredDifferenceImpl:()=>CC,stridedSliceImpl:()=>_C,stringNGramsImpl:()=>X0,stringSplitImpl:()=>Y0,stringToHashBucketFastImpl:()=>Z0,subImpl:()=>EC,tileImpl:()=>$C,topKImpl:()=>FC,transposeImpl:()=>j0,uniqueImpl:()=>DC});function Z2(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;xe(t,"abs");let a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=Z2(r),n.makeOutput(a,t.shape,t.dtype)},Fj={kernelName:Al,backendName:"cpu",kernelFunc:Aj};function Vt(e){return(t,n,a,r,s)=>{let i=C.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=C.getBroadcastDims(t,i),g=C.getBroadcastDims(n,i);if(f.length+g.length===0)for(let b=0;bx[_]=0);let w=v.locToIndex(x,d,h),I=y.slice(-c);g.forEach(_=>I[_]=0);let N=v.locToIndex(I,c,m);p[b]=e(a[w],r[N])}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 Dj={kernelName:wm,backendName:"cpu",kernelFunc:Zn};function rm(e,t,n="float32"){if(n==="complex64"){let r=rm(e,t,"float32"),s=rm(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 hr(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 Rj={kernelName:Vi,backendName:"cpu",kernelFunc:hr};function bi(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 Mj={kernelName:Bm,backendName:"cpu",kernelFunc:bi};function J2(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 ps(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return hr({inputs:{x:r},backend:n});let p=rm(n,r.shape,r.dtype),d=ps({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=bi({inputs:{input:r},backend:n}),d=ps({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!v.hasEncodingLoss(r.dtype,s)){let p=hr({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]=J2(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var Pj={kernelName:Ci,backendName:"cpu",kernelFunc:ps};function an(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;xe([i,o],e);let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=i.dtype==="string"?C.fromUint8ToStringArray(u):u,c=i.dtype==="string"?C.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=ps({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=ps({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),b=g.complexTensorInfos.real,y=g.complexTensorInfos.imag,x=l.data.get(b.dataId).values,w=l.data.get(y.dataId).values,[I,N,_]=n(i.shape,o.shape,h,m,x,w),$=l.makeTensorInfo(_,"float32",I),A=l.makeTensorInfo(_,"float32",N),M=Zn({inputs:{real:$,imag:A},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo($),l.disposeIntermediateTensorInfo(A),M}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 V0(e){return(t,n,a,r,s,i)=>{let o=C.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=C.getBroadcastDims(t,o),m=C.getBroadcastDims(n,o),f=C.mergeRealAndImagArrays(a,r),g=C.mergeRealAndImagArrays(s,i),b=t.length,y=v.computeStrides(t),x=n.length,w=v.computeStrides(n);if(h.length+m.length===0)for(let I=0;I_[T]=0);let $=v.locToIndex(_,b,y),A=N.slice(-x);m.forEach(T=>A[T]=0);let M=v.locToIndex(A,x,w),D=e(f[$*2],f[$*2+1],g[M*2],g[M*2+1]);d[I]=D.real,c[I]=D.imag}return[d,c,o]}}var Q2=Vt((e,t)=>e+t),Oj=V0((e,t,n,a)=>({real:e+n,imag:t+a})),Nl=an(ms,Q2,Oj),Lj={kernelName:ms,backendName:"cpu",kernelFunc:Nl};function U0(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 eC(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Le([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 Ns(e){return(t,n,a)=>{let r=v.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(xe(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(xe(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 tC=Ns(e=>Math.ceil(e)),zj=ju(_i,tC),Wj={kernelName:_i,backendName:"cpu",kernelFunc:zj};function G0(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"?C.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let u=0;ue===t?1:0),aC=an(ql,nC,null,"bool"),Bj={kernelName:ql,backendName:"cpu",kernelFunc:aC},rC=Ns(e=>Math.exp(e)),sC=ju(Oi,rC,"float32"),Vj={kernelName:Oi,backendName:"cpu",kernelFunc:sC},iC=Ns(e=>Math.expm1(e)),Uj=ju(Xl,iC),Gj={kernelName:Xl,backendName:"cpu",kernelFunc:Uj},oC=Ns(e=>Math.floor(e)),Hj=ju(Li,oC),jj={kernelName:Li,backendName:"cpu",kernelFunc:Hj};function lC(e,t,n,a,r,s,i,o,l){let u=Le([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),qj=an(Ql,pC,null,"bool"),Kj={kernelName:Ql,backendName:"cpu",kernelFunc:qj},cC=Vt((e,t)=>e>=t?1:0),Xj=an(Bi,cC,null,"bool"),Yj={kernelName:Bi,backendName:"cpu",kernelFunc:Xj},dC=Vt((e,t)=>ee<=t?1:0),Qj=an(ru,hC,null,"bool"),eq={kernelName:ru,backendName:"cpu",kernelFunc:Qj};function mC(e,t,n){let a=(t-e)/(n-1),r=v.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),tq=ju(Gi,fC),nq={kernelName:Gi,backendName:"cpu",kernelFunc:tq};function gC(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 bC=Vt((e,t)=>Math.max(e,t)),aq=an(ji,bC),rq={kernelName:ji,backendName:"cpu",kernelFunc:aq},yC=Vt((e,t)=>Math.min(e,t)),sq=an(Yi,yC),iq={kernelName:Yi,backendName:"cpu",kernelFunc:sq},H0=Vt((e,t)=>e*t),oq=V0((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Qf=an(Ji,H0,oq),lq={kernelName:Ji,backendName:"cpu",kernelFunc:Qf};function xC(e,t,n){let a=v.createScalarValue(-1,n);return H0([],t,a,e,n)}function uq(e){let{inputs:t,backend:n}=e,{x:a}=t;xe(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=xC(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var pq={kernelName:pu,backendName:"cpu",kernelFunc:uq},vC=Vt((e,t)=>e!==t?1:0),cq=an(cu,vC,null,"bool"),dq={kernelName:cu,backendName:"cpu",kernelFunc:cq};function j0(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(y)),n.makeTensorInfo(b,g,m)}var fq={kernelName:ao,backendName:"cpu",kernelFunc:mq},ka=C.RowPartitionType,wx=class{constructor(e,t,n,a,r,s,i,o,l,u){this.shape=e,this.shapeShape=t,this.values=n,this.valuesShape=a,this.valuesDType=r,this.defaultValue=s,this.defaultValueShape=i,this.rowPartitionValues=o,this.rowPartitionValuesShapes=l,this.rowPartitionTypes=C.getRowPartitionTypesHelper(u),this.raggedRank=C.getRaggedRank(this.rowPartitionTypes)}getRowPartitionTypeByDimension(e){return this.rowPartitionTypes[0]===ka.FIRST_DIM_SIZE?this.rowPartitionTypes[e+1]:this.rowPartitionTypes[e]}getRowPartitionTensor(e){return this.rowPartitionTypes[0]===ka.FIRST_DIM_SIZE?this.rowPartitionValues[e+1]:this.rowPartitionValues[e]}getMaxWidth(e){let t=this.getRowPartitionTensor(e-1);switch(this.getRowPartitionTypeByDimension(e-1)){case ka.VALUE_ROWIDS:return wx.getMaxWidthValueRowID(t);case ka.ROW_SPLITS:return wx.getMaxWidthRowSplit(t);default:throw new Error(`Cannot handle partition type ${ka[this.getRowPartitionTypeByDimension(e-1)]}`)}}static getMaxWidthRowSplit(e){let t=e.length;if(t===0||t===1)return 0;let n=0;for(let a=0;an&&(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 ka.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(r,t,n,a);case ka.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: ${ka[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 ka.FIRST_DIM_SIZE:return e[0];case ka.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case ka.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${ka[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=aI(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;O(()=>{let m=B(u,h);u=ai(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);nI(f,u,o),++c}m<0?(p=h+1,d=c):(p=h,d=c,c=d+1)}}};function nI(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 kC(e,t,n,a,r,s,i,o,l,u){return new wx(e,t,n,a,r,s,i,o,l,u).compute()}function q0(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=ju(po,IC),bq={kernelName:po,backendName:"cpu",kernelFunc:gq};function ol(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 Le(n,t.dtype);let h=Le(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 b=0;b1/(1+Math.exp(-e))),TC=ot(ho,e=>1/(1+Math.exp(-e))),xq={kernelName:ho,backendName:"cpu",kernelFunc:TC};function sm(e,t,n,a,r){let s=qt.isSliceContinous(a,t,n),i=v.sizeFromShape(n),o=v.computeStrides(a);if(s){let d=qt.computeFlatOffset(t,o);return r==="string"?e.slice(d,d+i):e.subarray(d,d+i)}let l=r==="string"?C.fromUint8ToStringArray(e):e,u=Le(a,r,l),p=Le(n,r);for(let d=0;dm+t[f]);p.set(u.get(...h),...c)}return r==="string"?C.fromStringArrayToUint8(p.values):p.values}function yi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;xe(r,"slice");let[o,l]=qt.parseSliceParams(r,s,i);qt.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,p=sm(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var vq={kernelName:ku,backendName:"cpu",kernelFunc:yi};function SC(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(C.getSparseFillEmptyRowsIndicesDenseShapeMismatch(o));let g=v.getArrayFromDType(n,0),b=v.getArrayFromDType(r,0);return[g,[0,d],b,u,p]}let c=!0,h=0,m=new Array(l).fill(0);for(let g=0;g=l)throw new Error(C.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,b,l));++m[b],c=c&&b>=h,h=b}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,b=a;for(let y=0;y0){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(C.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let d=t.slice();d[0]=p;let c=d.reduce((y,x)=>y*x,1),h=v.getArrayFromDType(n,c);if(o===0)return p>0&&h.fill(i),[h,d];if(p<=0)throw new Error(C.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=0,f=1,g=0,b=r[m];for(;;){let y=0;if(f=y)throw new Error(C.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(C.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>g&&h.fill(i,g*u,b*u);for(let x=m;x=l[0])throw new Error(C.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(x,a[x],l[0]));for(let I=0;Io)break}return gMath.sqrt(e)),kq=ot(mo,e=>Math.sqrt(e)),Iq={kernelName:mo,backendName:"cpu",kernelFunc:kq},CC=Vt((e,t)=>{let n=e-t;return n*n}),Tq=an(bo,CC),Sq={kernelName:bo,backendName:"cpu",kernelFunc:Tq};function _C(e,t,n,a){let r=Le(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let g=0;gg.forEach(b=>h[m++]=b);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 X0(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=V0((e,t,n,a)=>({real:e-n,imag:t-a})),J0=an(yo,EC,_q),Eq={kernelName:yo,backendName:"cpu",kernelFunc:J0};function $C(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 AC(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));AC(e,t,c,h)}let r=e[t],s=n,i=a;for(v.swap(e,n,t),Hp(e[a],r)>0&&v.swap(e,n,a);s0;)i=i-1}Hp(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 FC(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:y,index:x}),a{for(let g=0;gnew B0,1);var RC=ot(Pi,e=>e>=0?e:Math.exp(e)-1),$q={kernelName:Pi,backendName:"cpu",kernelFunc:RC};function MC(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;xe([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 PC(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;xe([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:no,backendName:"cpu",kernelFunc:PC},OC=ot(ro,e=>Math.max(0,e)),Rq={kernelName:ro,backendName:"cpu",kernelFunc:OC},LC=ot(oo,e=>Math.min(Math.max(0,e),6)),Mq={kernelName:oo,backendName:"cpu",kernelFunc:LC};function im(e,t,n,a,r){if(n==="linear")return hr({inputs:{x:t},backend:e});if(n==="relu")return OC({inputs:{x:t},backend:e});if(n==="elu")return RC({inputs:{x:t},backend:e});if(n==="relu6")return LC({inputs:{x:t},backend:e});if(n==="prelu")return PC({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return MC({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return TC({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function yt(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:yu,backendName:"cpu",kernelFunc:yt};function zC(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;xe([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),b=v.sizeFromShape(f),y=Mu.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?[b,h,d]:[b,d,h],I=yt({inputs:{x:r},backend:n,attrs:{shape:x}}),N=yt({inputs:{x:s},backend:n,attrs:{shape:w}}),_=i?I.shape[1]:I.shape[2],$=i?I.shape[2]:I.shape[1],A=o?N.shape[1]:N.shape[2],M=Math.max(g,b),D=n.data.get(I.dataId).values,T=n.data.get(N.dataId).values,P=v.computeStrides(I.shape),U=v.computeStrides(N.shape),[j,q,K]=i?[P[0],1,P[1]]:[P[0],P[1],1],[Y,te,re]=o?[1,U[1],U[0]]:[U[1],1,U[0]],J=$*A,ie=Le([M,$,A],I.dtype),ae=ie.values,oe=n.blockSize;for(let ue=0;ueMath.acos(e)),Bq={kernelName:Fl,backendName:"cpu",kernelFunc:Wq},Vq=ot(Dl,e=>Math.acosh(e)),Uq={kernelName:Dl,backendName:"cpu",kernelFunc:Vq};function Gq(e){let{inputs:t,backend:n}=e,a=t;xe(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Le(a[0].shape,a[0].dtype),i=s.values;for(let o=0;oy&&(y=I,x=w)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var Zq={kernelName:Ti,backendName:"cpu",kernelFunc:Yq};function Jq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;xe(r,"argMin");let i=v.parseAxisParam(s,r.shape),o=C.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Hn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=C.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],C.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[p,d]=C.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:xc,backendName:"cpu",kernelFunc:Jq},e5=ot(Pl,e=>Math.asin(e)),t5={kernelName:Pl,backendName:"cpu",kernelFunc:e5},n5=ot(Ol,e=>Math.asinh(e)),a5={kernelName:Ol,backendName:"cpu",kernelFunc:n5},r5=ot(Ll,e=>Math.atan(e)),s5={kernelName:Ll,backendName:"cpu",kernelFunc:r5},i5=Vt((e,t)=>Math.atan2(e,t)),o5=an(Wl,i5),l5={kernelName:Wl,backendName:"cpu",kernelFunc:o5},u5=ot(zl,e=>Math.atanh(e)),p5={kernelName:zl,backendName:"cpu",kernelFunc:u5};function Q0(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=Le(r.outShape,n),g=f.values,b=r.outShape[1]*r.outShape[2]*r.outShape[3],y=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let w=0;wK?K=ue:s==="avg"&&(Y+=ue,te++)}if(isNaN(K))break}let re=T+P*x+_;g[re]=s==="avg"?Y/te:K}}}return f}function WC(e,t,n,a,r=!1,s=!1){let i=Le(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=Le(t,n,e);for(let g=0;gM&&(M=q,r?D=s?((g*a.inHeight+T)*a.inWidth+U)*a.inChannels+b:(T*a.inWidth+U)*a.inChannels+b:D=P*c+j)}}i.set(D,g,y,N,b)}}return i}function BC(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,b=r.padInfo.left,y=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Le(r.outShape,n),w=x.values,I=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],N=r.outShape[2]*r.outShape[3]*r.outShape[4],_=r.outShape[3]*r.outShape[4],$=r.outShape[4];for(let A=0;AIe?Ie=dt:s==="avg"&&(Ee+=dt,De++),isNaN(Ie))break}if(isNaN(Ie))break}if(isNaN(Ie))break}let Be=be+T;w[Be]=s==="avg"?Ee/De:Ie}}}}return x}function c5(e,t){let n=Le(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=P&&(P=J,U=q*p*d+Y*p+re)}}}n.set(U,f,b,I,A,g)}}}return n}function d5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;xe(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(C.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=C.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=hr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=Q0(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var h5={kernelName:Si,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;xe(r,"avgPool3d");let p=C.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=BC(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var f5={kernelName:vc,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;xe([r,s],"avgPool3DGrad");let p=C.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,b=p.dilationDepth,y=p.dilationHeight,x=p.dilationWidth,w=p.effectiveFilterDepth,I=p.effectiveFilterHeight,N=p.effectiveFilterWidth,_=w-1-p.padInfo.front,$=N-1-p.padInfo.left,A=I-1-p.padInfo.top,M=Le(s.shape,"float32"),D=1/(m*f*g),T=n.bufferSync(r);for(let P=0;P=p.outDepth||Math.floor(ae)!==ae))for(let oe=0;oe=p.outHeight||Math.floor(ue)!==ue))for(let we=0;we=p.outWidth||Math.floor(be)!==be||(J+=T.get(P,ae,ue,be,U))}}}M.set(J*D,P,j,q,K,U)}return n.makeTensorInfo(M.shape,M.dtype,M.values)}var b5={kernelName:ym,backendName:"cpu",kernelFunc:g5};function y5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;xe([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=C.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,b=p.effectiveFilterHeight,y=p.effectiveFilterWidth,x=y-1-p.padInfo.left,w=b-1-p.padInfo.top,I=Le(i.shape,"float32"),N=1/(h*m),_=n.data.get(r.dataId).values,$=Le(r.shape,"float32",_);for(let A=0;A=p.outHeight||Math.floor(K)!==K))for(let Y=0;Y=p.outWidth||Math.floor(te)!==te||(j+=$.get(A,K,te,M))}}I.set(j*N,A,D,T,M)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var x5={kernelName:bm,backendName:"cpu",kernelFunc:y5};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."),xe([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,b=h.length,y=c.length,x=d.length,w=0,I=0,N=0,_=0;for(let $=0;$=g&&(w=0),I>=x&&(I=0),N>=b&&(N=0),_>=y&&(_=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var w5={kernelName:Wi,backendName:"cpu",kernelFunc:v5};function k5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;xe([r],"batchToSpaceND");let o=s.reduce((b,y)=>b*y),l=C.getReshaped(r.shape,s,o),u=C.getPermuted(l.length,s.length),p=C.getReshapedPermuted(r.shape,s,o),d=C.getSliceBeginCoords(i,s.length),c=C.getSliceSize(p,i,s.length),h=yt({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Hn({inputs:{x:h},backend:n,attrs:{perm:u}}),f=yt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=yi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var I5={kernelName:Bl,backendName:"cpu",kernelFunc:k5};function T5(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=U0(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var S5={kernelName:xm,backendName:"cpu",kernelFunc:T5};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=C.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var C5={kernelName:vm,backendName:"cpu",kernelFunc:N5},_5=ot(fs,(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),s);if(v.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(f=>v.sizeFromShape(f.shape)>0);if(o.length===1)return hr({inputs:{x:o[0]},backend:n});let l=o.map(f=>f.shape);if(C.assertParamsConsistent(l,s),o[0].dtype==="complex64"){let f=o.map(w=>bi({inputs:{input:w},backend:n})),g=o.map(w=>Cl({inputs:{input:w},backend:n})),b=_l({inputs:f,backend:n,attrs:{axis:s}}),y=_l({inputs:g,backend:n,attrs:{axis:s}}),x=Zn({inputs:{real:b,imag:y},backend:n});return f.forEach(w=>n.disposeIntermediateTensorInfo(w)),g.forEach(w=>n.disposeIntermediateTensorInfo(w)),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(y),x}let u=o.map(f=>{let g=v.sizeFromShape(f.shape.slice(s));return yt({inputs:{x:f},backend:n,attrs:{shape:[-1,g]}})}),p=u.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));i=C.computeOutShape(u.map(f=>f.shape),1);let d=u[0].shape[0]===1,c=G0(p,i,t[0].dtype,d),h=C.computeOutShape(o.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,c);return u.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var D5={kernelName:Vl,backendName:"cpu",kernelFunc:_l};function VC(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;xe([r,s],"conv2d");let d=C.convertConv2DDataFormat(l),c=C.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h=c.filterHeight,m=c.filterWidth,f=c.dilationHeight,g=c.dilationWidth,b=c.padInfo.left,y=c.padInfo.top,x=c.dataFormat==="channelsLast",w=new jt(c.outShape,r.dtype),I=v.computeStrides(r.shape),N=v.computeStrides(s.shape),_=I[0],$=x?I[1]:I[2],A=x?I[2]:1,M=x?1:I[1],D=w.strides[0],T=x?w.strides[1]:w.strides[2],P=x?w.strides[2]:1,U=x?1:w.strides[1],j=n.data.get(r.dataId).values,q=n.data.get(s.dataId).values,K=w.values;for(let Y=0;Y=c.inHeight)continue;let we=oe*N[0],be=te+ue*$;for(let Ie=0;Ie=c.inWidth)continue;let st=we+Be*N[1],et=be+je*A,tt=st;for(let Ne=0;Ne=u.inDepth)continue;let Y=q*A[0],te=D+K*$[1];for(let re=0;re=u.inHeight)continue;let ue=Y+ae*A[1],we=te+oe*$[2];for(let be=0;be=u.inWidth)continue;let je=ue+De*A[2],st=we+Be*u.inChannels,et=je;for(let tt=0;ttMath.cos(e)),j5={kernelName:Ai,backendName:"cpu",kernelFunc:H5},q5=ot(Fi,e=>Math.cosh(e)),K5={kernelName:Fi,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,b=Le([m,f,g,h],"float32"),y=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),N=v.computeStrides(b.shape);for(let _=0;_=p)continue;let U=f>1?(D-A)*(d-1)/(f-1):0,j=g>1?(T-M)*(c-1)/(g-1):0;for(let q=0;q1?A*(d-1)+q*U:.5*(A+D)*(d-1);if(K<0||K>d-1){for(let Y=0;Y1?M*(c-1)+J*j:.5*(M+T)*(c-1);if(ie<0||ie>c-1){for(let we=0;we1?M*(c-1)+Y*j:.5*(M+T)*(c-1);if(te<0||te>c-1){for(let ie=0;ieb+m-y-1:(b,y)=>b+y;for(let b=0;bb+m-y-1:(b,y)=>b+y;for(let b=0;b`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 b=0;b`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let h=C.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:b,padInfo:y}=h,x=y.left,w=y.top,I=h.outChannels/h.inChannels,N=new jt(h.outShape,r.dtype),_=n.data.get(r.dataId).values,$=n.data.get(s.dataId).values,A=N.values;for(let M=0;M=h.inHeight)continue;let Y=q*d[0],te=D+K*p[1];for(let re=0;re=h.inWidth)continue;let ue=Y+ae*d[1],we=te+oe*h.inChannels,be=J,Ie=ue;for(let Ee=0;Ee{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:b,outWidth:y,padInfo:x,strideHeight:w,strideWidth:I,filterHeight:N,filterWidth:_,dilationHeight:$,dilationWidth:A,outShape:M}=C.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),D=v.sizeFromShape(M),T=M.length,P=v.getArrayFromDType(a.dtype,D);for(let U=0;U=0&&ae=0&&uere&&(re=Ie)}}}let J=v.locToIndex([U,j,K,te],T,v.computeStrides(M));P[J]=re}}}return{dataId:l.write(v.toTypedArray(P,a.dtype),M,a.dtype),shape:M,dtype:a.dtype}}},hK={kernelName:zh,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:b,padInfo:y,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:N,dilationHeight:_,dilationWidth:$,outShape:A}=C.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===A.length,()=>`Error in ${zh}, dy must have the same rank as output ${A.length}, but got ${s.rank}`);let M=v.toNestedArray(A,u.data.get(s.dataId).values),D=v.makeZerosNestedTypedArray(r.shape,r.dtype);for(let T=0;T=0&&ie=0&&oeY&&(Y=ue,te=J,re=ae)}}}D[te][re][K]+=M[T][P][j][K]}}}return{dataId:u.write(v.toTypedArray(D,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},mK={kernelName:Lh,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:b,padInfo:y,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:N,dilationHeight:_,dilationWidth:$,outShape:A}=C.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===A.length,()=>`Error in ${Lh}, dy must have the same rank as output ${A.length}, but got ${s.rank}`);let M=v.toNestedArray(A,u.data.get(s.dataId).values),D=v.makeZerosNestedTypedArray(a.shape,a.dtype);for(let T=0;T=0&&ie=0&&oeY&&(Y=ue,te=ie,re=oe)}}}D[T][te][re][K]+=M[T][P][j][K]}}}return{dataId:u.write(v.toTypedArray(D,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function hd(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;xe(r,"sum");let o;r.dtype==="bool"?o=ps({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=hr({inputs:{x:r},backend:n});let l=o.shape.length,u=v.parseAxisParam(s,o.shape),p=C.getAxesPermutation(u,l),d=u,c=o;p!=null&&(c=Hn({inputs:{x:o},backend:n,attrs:{perm:p}}),d=C.getInnerMostAxes(d.length,l)),C.assertAxesAreInnerMostDims("sum",d,c.shape.length);let[h,m]=C.computeOutAndReduceShapes(c.shape,d),f=C.upcastType(c.dtype,"int32"),g=rm(n,h,f),b=v.sizeFromShape(m),y=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let w=0;w=0&&(c=hd({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 bK={kernelName:Em,backendName:"cpu",kernelFunc:gK};function yK(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;xe([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 xK={kernelName:$m,backendName:"cpu",kernelFunc:yK},vK=C.ERF_P,wK=C.ERF_A1,kK=C.ERF_A2,IK=C.ERF_A3,TK=C.ERF_A4,SK=C.ERF_A5,NK=ot(jl,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+vK*n);return t*(1-((((SK*a+TK)*a+IK)*a+kK)*a+wK)*a*Math.exp(-n*n))}),CK={kernelName:jl,backendName:"cpu",kernelFunc:NK};function om(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),yt({inputs:{x:r},backend:n,attrs:{shape:o}})}var _K={kernelName:Kl,backendName:"cpu",kernelFunc:om},EK=Vt((e,t)=>e/t),e1=an(Mi,EK),kx={kernelName:Mi,backendName:"cpu",kernelFunc:e1};function GC(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&&yMath.floor(e/t)),zK=an(zi,LK,null,"int32"),WK={kernelName:zi,backendName:"cpu",kernelFunc:zK};function BK(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=VC({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 b=yt({inputs:{x:i},backend:n,attrs:{shape:[i.shape[0],1,1]}});f=Nl({inputs:{a:f,b},backend:n}),n.disposeIntermediateTensorInfo(b)}else f=Nl({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 b=yt({inputs:{x:o},backend:n,attrs:{shape:[o.shape[0],1,1]}});f=im(n,f,h,b,m),n.disposeIntermediateTensorInfo(b)}else f=im(n,f,h,o,m);n.disposeIntermediateTensorInfo(g)}return f}var VK={kernelName:li,backendName:"cpu",kernelFunc:BK};function UK(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=UC({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;f=Nl({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=im(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var GK={kernelName:ui,backendName:"cpu",kernelFunc:UK};function HK(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]=C.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=lC(c,h,a.dtype,u,o,p,d,a.shape,s);return n.makeTensorInfo(l,a.dtype,m.values)}var jK={kernelName:Jl,backendName:"cpu",kernelFunc:HK};function qK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,indices:s}=t,{axis:i,batchDims:o}=a;xe([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=C.segment_util.collectGatherOpShapeInfo(r,s,l,d),m=yt({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=yt({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],b=n.bufferSync(f),y=n.bufferSync(m),x=uC(y,b,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var KK={kernelName:Zl,backendName:"cpu",kernelFunc:qK};function XK(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=yt({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=GC(o,!0,n),u=yt({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var YK={kernelName:Fm,backendName:"cpu",kernelFunc:XK},ZK=ot(eu,e=>Number.isFinite(e)?1:0,"bool"),JK={kernelName:eu,backendName:"cpu",kernelFunc:ZK},QK=ot(tu,e=>Math.abs(e)===1/0?1:0,"bool"),e8={kernelName:tu,backendName:"cpu",kernelFunc:QK},t8=ot(nu,e=>Number.isNaN(e)?1:0,"bool"),n8={kernelName:nu,backendName:"cpu",kernelFunc:t8};function a8(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=mC(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var r8={kernelName:Rm,backendName:"cpu",kernelFunc:a8},s8=ot(su,e=>Math.log1p(e)),i8={kernelName:su,backendName:"cpu",kernelFunc:s8},o8=Vt((e,t)=>e&&t),l8=an(iu,o8,null,"bool"),u8={kernelName:iu,backendName:"cpu",kernelFunc:l8},p8=ot(ou,e=>e?0:1,"bool"),c8={kernelName:ou,backendName:"cpu",kernelFunc:p8},d8=Vt((e,t)=>e||t),h8=an(lu,d8,null,"bool"),m8={kernelName:lu,backendName:"cpu",kernelFunc:h8};function f8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;xe(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,b=f-g+Math.max(0,g-s),y=f-g+Math.min(g+s,p),x=0;for(;b<=y;b++){let w=d[b];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=C.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=hr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=Q0(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var w8={kernelName:qi,backendName:"cpu",kernelFunc:v8};function k8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;xe(r,"maxPool3d");let p=C.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=BC(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var I8={kernelName:Nc,backendName:"cpu",kernelFunc:k8};function T8(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;xe([r,s],"maxPool3DGrad");let p=C.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,b=p.dilationHeight,y=p.dilationWidth,x=p.effectiveFilterDepth,w=p.effectiveFilterHeight,I=p.effectiveFilterWidth,N=x-1-p.padInfo.front,_=I-1-p.padInfo.left,$=w-1-p.padInfo.top,A=Le(s.shape,"float32"),M=n.bufferSync(r);for(let D=0;D=p.outDepth||Math.floor(J)!==J))for(let ie=0;ie=p.outHeight||Math.floor(ae)!==ae))for(let oe=0;oe=p.outWidth||Math.floor(ue)!==ue)continue;let we=x*w*I-1-c.get(D,J,ae,ue,T),be=re*w*I+ie*I+oe,Ie=we===be?1:0;Ie!==0&&(te+=M.get(D,J,ae,ue,T)*Ie)}}}A.set(te,D,P,U,j,T)}return n.makeTensorInfo(A.shape,A.dtype,A.values)}var S8={kernelName:Om,backendName:"cpu",kernelFunc:T8};function N8(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;xe([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=C.computePool2DInfo(o.shape,l,u,1,p,d),h=n.data.get(o.dataId).values,m=Le(c.outShape,o.dtype,WC(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,b=c.dilationHeight,y=c.dilationWidth,x=c.effectiveFilterHeight,w=c.effectiveFilterWidth,I=w-1-c.padInfo.left,N=x-1-c.padInfo.top,_=Le(o.shape,"float32"),$=n.data.get(r.dataId).values,A=Le(r.shape,"float32",$);for(let M=0;M=c.outHeight||Math.floor(Y)!==Y))for(let te=0;te=c.outWidth||Math.floor(re)!==re)continue;let J=x*w-1-m.get(M,Y,re,D),ie=K*w+te,ae=J===ie?1:0;ae!==0&&(q+=A.get(M,Y,re,D)*ae)}}_.set(q,M,T,P,D)}return n.makeTensorInfo(_.shape,_.dtype,_.values)}var C8={kernelName:Pm,backendName:"cpu",kernelFunc:N8};function _8(e,t,n,a,r){let s=v.computeStrides(t),i=Q0(e,t,n,s,r,"max"),o=WC(e,t,n,r,!0,a);return[i.values,o.values]}var E8={kernelName:Lm,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;xe(a,"MaxPoolWithArgmax");let u=l.data.get(a.dataId).values,p=C.computePool2DInfo(a.shape,r,s,[1,1],i),[d,c]=_8(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 $8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=v.parseAxisParam(s,r.shape),l=C.computeOutAndReduceShapes(r.shape,o)[1],u=v.sizeFromShape(l),p=[],d=n.makeTensorInfo([],"float32",new Float32Array([u]));p.push(d);let c=ps({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=e1({inputs:{a:c,b:d},backend:n});p.push(h);let m=hd({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var A8={kernelName:Ki,backendName:"cpu",kernelFunc:$8};function F8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;xe(r,"min");let o=v.parseAxisParam(s,r.shape),l=o,u=C.getAxesPermutation(l,r.shape.length),p=r;u!=null&&(p=Hn({inputs:{x:r},backend:n,attrs:{perm:u}}),l=C.getInnerMostAxes(l.length,r.shape.length)),C.assertAxesAreInnerMostDims("min",l,p.shape.length);let[d,c]=C.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 b=0;by[0]+r.shape[x]+y[1]),l=s.map(y=>y[0]),u=s.map((y,x)=>y[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),b=v.getTypedArrayFromDType(r.dtype,m);for(let y=0;y=u[I]&&(x[I]=(u[I]-1)*2-x[I]+p);x=x.map((I,N)=>I-l[N]);let w=v.locToIndex(x,c,h);b[y]=d[w]}return{dataId:n.write(b,o,r.dtype),shape:o,dtype:r.dtype}}var M8={kernelName:Zi,backendName:"cpu",kernelFunc:R8},P8=Vt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),O8=an(uu,P8),L8={kernelName:uu,backendName:"cpu",kernelFunc:O8},z8=ds(hm());function jC(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=HC({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=C.expandShapeToKeepDim(u.shape,l),d=yt({inputs:{x:u},backend:n,attrs:{shape:p}}),c=J0({inputs:{a:r,b:d},backend:n}),h=sC({inputs:{x:c},backend:n}),m=hd({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=yt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=e1({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 W8={kernelName:go,backendName:"cpu",kernelFunc:jC};function B8(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;xe(r,"multinomial");let l=o?r:jC({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=om({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:gu,backendName:"cpu",kernelFunc:KC};function aX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;xe(r,"pad");let o=s.map((b,y)=>b[0]+r.shape[y]+b[1]),l=s.map(b=>b[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 b=0;bw+l[I]),x=v.locToIndex(y,m,f);g[x]=u[b]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var XC={kernelName:eo,backendName:"cpu",kernelFunc:aX},rX=Vt((e,t)=>Math.pow(e,t)),sX=an(to,rX),iX={kernelName:to,backendName:"cpu",kernelFunc:sX};function oX(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]=kC(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var lX={kernelName:Wm,backendName:"cpu",kernelFunc:oX};function uX(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=q0(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var pX={kernelName:Cc,backendName:"cpu",kernelFunc:uX},cX=ot(bu,e=>1/e),dX={kernelName:bu,backendName:"cpu",kernelFunc:cX};function hX(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;xe(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])),b=[s&&u>1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,w=b[0]/y[0],I=b[1]/y[1];for(let N=0;N1?u-1:u,i&&h>1?p-1:p],g=[i&&c>1?c-1:c,i&&h>1?h-1:h],b=f[0]/g[0],y=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],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=b[0]/y[0],w=b[1]/y[1],I=0;for(let N=0;N1?p-1:p,i&&m>1?d-1:d],y=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=b[0]/y[0],w=b[1]/y[1],I=1/x,N=1/w,_=Math.ceil(I)*2+2,$=Math.ceil(N)*2+2;for(let A=0;A=h)continue;let ae=M+ie*l[1],oe=ie*x,ue=Math.min(p-1,i?Math.round(oe):Math.floor(oe));if(D===ue)for(let we=0;we<$;we++){let be=we+Y;if(be<0||be>=m)continue;let Ie=ae+be*l[2],Ee=be*w,De=Math.min(d-1,i?Math.round(Ee):Math.floor(Ee));j===De&&(re+=g[Ie+te])}}f[q+te]=re}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var vX={kernelName:Vm,backendName:"cpu",kernelFunc:xX};function wX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;xe(r,"reverse");let i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return hr({inputs:{x:r},backend:n});let l=new jt(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 kX={kernelName:lo,backendName:"cpu",kernelFunc:wX},IX={kernelName:Ru,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]=C.getImageCenter(i,p,d),f=255,g=Math.sin(r),b=Math.cos(r),y=o.data.get(a.dataId).values;for(let x=0;x=0&&P=0&&U{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),SX={kernelName:uo,backendName:"cpu",kernelFunc:TX};function NX(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}=C.calculateShapes(s,r,i),c=!0,h=n.bufferSync(r),m=n.bufferSync(s),f=ol(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var CX={kernelName:xu,backendName:"cpu",kernelFunc:NX};function _X(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?PX*e:MX*(Math.exp(e)-1)),LX={kernelName:wu,backendName:"cpu",kernelFunc:OX},zX=ot(Tu,e=>e<0?-1:e>0?1:0),WX={kernelName:Tu,backendName:"cpu",kernelFunc:zX},BX=ot(co,e=>Math.sin(e)),VX={kernelName:co,backendName:"cpu",kernelFunc:BX},UX=ot(Iu,e=>Math.sinh(e)),GX={kernelName:Iu,backendName:"cpu",kernelFunc:UX},HX=11920928955078125e-23,rI=Math.log(HX)+2,jX=ot(Su,e=>{let t=e>-rI,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 Ja().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 ej(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};k0.nextDataId=0;var D2={};_e(D2,{addImpl:()=>P2,bincountImpl:()=>S0,bincountReduceImpl:()=>O2,castImpl:()=>M2,ceilImpl:()=>L2,concatImpl:()=>T0,equalImpl:()=>z2,expImpl:()=>W2,expm1Impl:()=>U2,floorImpl:()=>G2,gatherNdImpl:()=>H2,gatherV2Impl:()=>j2,greaterEqualImpl:()=>K2,greaterImpl:()=>q2,lessEqualImpl:()=>Y2,lessImpl:()=>X2,linSpaceImpl:()=>Z2,logImpl:()=>J2,maxImpl:()=>Q2,maximumImpl:()=>eC,minimumImpl:()=>tC,multiplyImpl:()=>N0,negImpl:()=>nC,notEqualImpl:()=>aC,prodImpl:()=>rC,raggedGatherImpl:()=>sC,raggedTensorToTensorImpl:()=>iC,rangeImpl:()=>_0,rsqrtImpl:()=>oC,scatterImpl:()=>Xo,sigmoidImpl:()=>Kj,simpleAbsImpl:()=>R2,sliceImpl:()=>Ph,sparseFillEmptyRowsImpl:()=>uC,sparseReshapeImpl:()=>pC,sparseSegmentReductionImpl:()=>E0,sqrtImpl:()=>Zj,squaredDifferenceImpl:()=>cC,stridedSliceImpl:()=>dC,stringNGramsImpl:()=>A0,stringSplitImpl:()=>$0,stringToHashBucketFastImpl:()=>F0,subImpl:()=>hC,tileImpl:()=>mC,topKImpl:()=>gC,transposeImpl:()=>C0,uniqueImpl:()=>bC});function R2(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=R2(r),n.makeOutput(a,t.shape,t.dtype)},nj={kernelName:xl,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 b=0;bx[C]=0);let w=v.locToIndex(x,d,h),I=y.slice(-c);g.forEach(C=>I[C]=0);let T=v.locToIndex(I,c,m);p[b]=e(a[w],r[T])}return[p,i]}}function Xn(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 aj={kernelName:Jh,backendName:"cpu",kernelFunc:Xn};function Mh(e,t,n="float32"){if(n==="complex64"){let r=Mh(e,t,"float32"),s=Mh(e,t,"float32");return Xn({inputs:{real:r,imag:s},backend:e})}let a=v.makeZerosTypedArray(v.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function or(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 rj={kernelName:Di,backendName:"cpu",kernelFunc:or};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 sj={kernelName:xm,backendName:"cpu",kernelFunc:li};function M2(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 is(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return or({inputs:{x:r},backend:n});let p=Mh(n,r.shape,r.dtype),d=is({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),c=Xn({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=is({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!v.hasEncodingLoss(r.dtype,s)){let p=or({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]=M2(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var ij={kernelName:yi,backendName:"cpu",kernelFunc:is};function tn(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=is({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=is({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),b=g.complexTensorInfos.real,y=g.complexTensorInfos.imag,x=l.data.get(b.dataId).values,w=l.data.get(y.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=Xn({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 I0(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),b=t.length,y=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,b,y),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 P2=Vt((e,t)=>e+t),oj=I0((e,t,n,a)=>({real:e+n,imag:t+a})),ml=tn(ps,P2,oj),lj={kernelName:ps,backendName:"cpu",kernelFunc:ml};function S0(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 O2(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 L2=ks(e=>Math.ceil(e)),uj=Ru(xi,L2),pj={kernelName:xi,backendName:"cpu",kernelFunc:uj};function T0(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),B2=tn(Ml,z2,null,"bool"),cj={kernelName:Ml,backendName:"cpu",kernelFunc:B2},W2=ks(e=>Math.exp(e)),V2=Ru(_i,W2,"float32"),dj={kernelName:_i,backendName:"cpu",kernelFunc:V2},U2=ks(e=>Math.expm1(e)),hj=Ru(Ol,U2),mj={kernelName:Ol,backendName:"cpu",kernelFunc:hj},G2=ks(e=>Math.floor(e)),fj=Ru(Ei,G2),gj={kernelName:Ei,backendName:"cpu",kernelFunc:fj};function H2(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),bj=tn(Wl,q2,null,"bool"),yj={kernelName:Wl,backendName:"cpu",kernelFunc:bj},K2=Vt((e,t)=>e>=t?1:0),xj=tn(Fi,K2,null,"bool"),vj={kernelName:Fi,backendName:"cpu",kernelFunc:xj},X2=Vt((e,t)=>ee<=t?1:0),Ij=tn(jl,Y2,null,"bool"),Sj={kernelName:jl,backendName:"cpu",kernelFunc:Ij};function Z2(e,t,n){let a=(t-e)/(n-1),r=v.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),Tj=Ru(Mi,J2),Nj={kernelName:Mi,backendName:"cpu",kernelFunc:Tj};function Q2(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)),Cj=tn(Oi,eC),_j={kernelName:Oi,backendName:"cpu",kernelFunc:Cj},tC=Vt((e,t)=>Math.min(e,t)),Ej=tn(Wi,tC),Aj={kernelName:Wi,backendName:"cpu",kernelFunc:Ej},N0=Vt((e,t)=>e*t),$j=I0((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Af=tn(Ui,N0,$j),Fj={kernelName:Ui,backendName:"cpu",kernelFunc:Af};function nC(e,t,n){let a=v.createScalarValue(-1,n);return N0([],t,a,e,n)}function Dj(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=nC(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var Rj={kernelName:Jl,backendName:"cpu",kernelFunc:Dj},aC=Vt((e,t)=>e!==t?1:0),Mj=tn(Ql,aC,null,"bool"),Pj={kernelName:Ql,backendName:"cpu",kernelFunc:Mj};function C0(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(y)),n.makeTensorInfo(b,g,m)}var zj={kernelName:Ki,backendName:"cpu",kernelFunc:Lj};function Bj(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 Wj(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 Vj(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);Wj(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let b=p;br[i]=s)}return t}function Rk(e,t){let n=e.slice(0,t);for(;n.lengthn&&(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 ka.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(r,t,n,a);case ka.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: ${ka[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 ka.FIRST_DIM_SIZE:return e[0];case ka.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case ka.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${ka[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=Pk(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=B(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);Mk(f,u,o),++c}m<0?(p=h+1,d=c):(p=h,d=c,c=d+1)}}};function Mk(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 iC(e,t,n,a,r,s,i,o,l,u){return new tx(e,t,n,a,r,s,i,o,l,u).compute()}function _0(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)),jj=Ru(to,oC),qj={kernelName:to,backendName:"cpu",kernelFunc:jj};function Xo(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 b=0;b1/(1+Math.exp(-e))),lC=rt(ao,e=>1/(1+Math.exp(-e))),Xj={kernelName:ao,backendName:"cpu",kernelFunc:lC};function Ph(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=Ph(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var Yj={kernelName:pu,backendName:"cpu",kernelFunc:ui};function uC(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),b=v.getArrayFromDType(r,0);return[g,[0,d],b,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,b,l));++m[b],c=c&&b>=h,h=b}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,b=a;for(let y=0;y0){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((y,x)=>y*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,b=r[m];for(;;){let y=0;if(f=y)throw new Error(N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>g&&h.fill(i,g*u,b*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)),Jj=rt(ro,e=>Math.sqrt(e)),Qj={kernelName:ro,backendName:"cpu",kernelFunc:Jj},cC=Vt((e,t)=>{let n=e-t;return n*n}),eq=tn(oo,cC),tq={kernelName:oo,backendName:"cpu",kernelFunc:eq};function dC(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(b=>h[m++]=b);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 A0(e,t,n,a,r,s,i,o){return new nq(n,a,r,s,i,o).compute(e,t)}function aq(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),rq=I0((e,t,n,a)=>({real:e-n,imag:t-a})),D0=tn(lo,hC,rq),sq={kernelName:lo,backendName:"cpu",kernelFunc:D0};function mC(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 fC(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));fC(e,t,c,h)}let r=e[t],s=n,i=a;for(v.swap(e,n,t),Ep(e[a],r)>0&&v.swap(e,n,a);s0;)i=i-1}Ep(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 gC(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:y,index:x}),a{for(let g=0;gnew k0,1);var yC=rt(Ci,e=>e>=0?e:Math.exp(e)-1),iq={kernelName:Ci,backendName:"cpu",kernelFunc:yC};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 vC(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]=lq(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var uq={kernelName:qi,backendName:"cpu",kernelFunc:vC},wC=rt(Xi,e=>Math.max(0,e)),pq={kernelName:Xi,backendName:"cpu",kernelFunc:wC},kC=rt(Ji,e=>Math.min(Math.max(0,e),6)),cq={kernelName:Ji,backendName:"cpu",kernelFunc:kC};function Oh(e,t,n,a,r){if(n==="linear")return or({inputs:{x:t},backend:e});if(n==="relu")return wC({inputs:{x:t},backend:e});if(n==="elu")return yC({inputs:{x:t},backend:e});if(n==="relu6")return kC({inputs:{x:t},backend:e});if(n==="prelu")return vC({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 dq={kernelName:iu,backendName:"cpu",kernelFunc:ft};function IC(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),b=v.sizeFromShape(f),y=Iu.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?[b,h,d]:[b,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,b),F=n.data.get(I.dataId).values,S=n.data.get(T.dataId).values,M=v.computeStrides(I.shape),W=v.computeStrides(T.shape),[U,G,q]=i?[M[0],1,M[1]]:[M[0],M[1],1],[K,Z,Q]=o?[1,W[1],W[0]]:[W[1],1,W[0]],ee=E*A,ae=Pe([R,E,A],I.dtype),te=ae.values,le=n.blockSize;for(let ie=0;ieMath.acos(e)),bq={kernelName:vl,backendName:"cpu",kernelFunc:gq},yq=rt(wl,e=>Math.acosh(e)),xq={kernelName:wl,backendName:"cpu",kernelFunc:yq};function vq(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;oy&&(y=I,x=w)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var Cq={kernelName:fi,backendName:"cpu",kernelFunc:Nq};function _q(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=Wn({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 Eq={kernelName:ac,backendName:"cpu",kernelFunc:_q},Aq=rt(Sl,e=>Math.asin(e)),$q={kernelName:Sl,backendName:"cpu",kernelFunc:Aq},Fq=rt(Tl,e=>Math.asinh(e)),Dq={kernelName:Tl,backendName:"cpu",kernelFunc:Fq},Rq=rt(Nl,e=>Math.atan(e)),Mq={kernelName:Nl,backendName:"cpu",kernelFunc:Rq},Pq=Vt((e,t)=>Math.atan2(e,t)),Oq=tn(_l,Pq),Lq={kernelName:_l,backendName:"cpu",kernelFunc:Oq},zq=rt(Cl,e=>Math.atanh(e)),Bq={kernelName:Cl,backendName:"cpu",kernelFunc:zq};function R0(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,b=r.outShape[1]*r.outShape[2]*r.outShape[3],y=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 SC(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+W)*a.inChannels+b:(S*a.inWidth+W)*a.inChannels+b:F=M*c+U)}}i.set(F,g,y,T,b)}}return i}function TC(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,b=r.padInfo.left,y=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 Wq(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,W=G*p*d+K*p+Q)}}}n.set(W,f,b,I,A,g)}}}return n}function Vq(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=or({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=R0(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var Uq={kernelName:gi,backendName:"cpu",kernelFunc:Vq};function Gq(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=TC(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var Hq={kernelName:rc,backendName:"cpu",kernelFunc:Gq};function jq(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,b=p.dilationDepth,y=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 be=0;be=p.outWidth||Math.floor(ue)!==ue||(ee+=S.get(M,te,ie,ue,W))}}}R.set(ee*F,M,U,G,q,W)}return n.makeTensorInfo(R.shape,R.dtype,R.values)}var qq={kernelName:Xh,backendName:"cpu",kernelFunc:jq};function Kq(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,b=p.effectiveFilterHeight,y=p.effectiveFilterWidth,x=y-1-p.padInfo.left,w=b-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 Xq={kernelName:Kh,backendName:"cpu",kernelFunc:Kq};function Yq(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,b=h.length,y=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>=b&&(T=0),C>=y&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var Zq={kernelName:$i,backendName:"cpu",kernelFunc:Yq};function Jq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((b,y)=>b*y),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=Wn({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 Qq={kernelName:El,backendName:"cpu",kernelFunc:Jq};function e5(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=S0(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var t5={kernelName:Yh,backendName:"cpu",kernelFunc:e5};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 a5={kernelName:Zh,backendName:"cpu",kernelFunc:n5},r5=rt(cs,(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 or({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=>fl({inputs:{input:w},backend:n})),b=gl({inputs:f,backend:n,attrs:{axis:s}}),y=gl({inputs:g,backend:n,attrs:{axis:s}}),x=Xn({inputs:{real:b,imag:y},backend:n});return f.forEach(w=>n.disposeIntermediateTensorInfo(w)),g.forEach(w=>n.disposeIntermediateTensorInfo(w)),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(y),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=T0(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 u5={kernelName:Al,backendName:"cpu",kernelFunc:gl};function NC(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,b=c.padInfo.left,y=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,W=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 be=le*T[0],ue=Z+ie*E;for(let xe=0;xe=c.inWidth)continue;let tt=be+Le*T[1],st=ue+Ve*A,Je=tt;for(let nt=0;nt=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],be=Z+le*E[2];for(let ue=0;ue=u.inWidth)continue;let Ve=ie+Se*A[2],tt=be+Le*u.inChannels,st=Ve;for(let Je=0;JeMath.cos(e)),k5={kernelName:ki,backendName:"cpu",kernelFunc:w5},I5=rt(Ii,e=>Math.cosh(e)),S5={kernelName:Ii,backendName:"cpu",kernelFunc:I5};function T5(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,b=Pe([m,f,g,h],"float32"),y=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(b.shape);for(let C=0;C=p)continue;let W=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*W:.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 be=0;be1?R*(c-1)+K*U:.5*(R+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aeb+m-y-1:(b,y)=>b+y;for(let b=0;bb+m-y-1:(b,y)=>b+y;for(let b=0;b`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 b=0;b`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:b,padInfo:y}=h,x=y.left,w=y.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],be=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:b,outWidth:y,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 W=0;W=0&&te=0&&ieQ&&(Q=xe)}}}let ee=v.locToIndex([W,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}}},U5={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:b,padInfo:y,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}}},G5={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:b,padInfo:y,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 Jc(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=is({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=or({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=Wn({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=Mh(n,h,f),b=v.sizeFromShape(m),y=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let w=0;w=0&&(c=Jc({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 q5={kernelName:im,backendName:"cpu",kernelFunc:j5};function K5(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 X5={kernelName:om,backendName:"cpu",kernelFunc:K5},Y5=N.ERF_P,Z5=N.ERF_A1,J5=N.ERF_A2,Q5=N.ERF_A3,e8=N.ERF_A4,t8=N.ERF_A5,n8=rt(Rl,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+Y5*n);return t*(1-((((t8*a+e8)*a+Q5)*a+J5)*a+Z5)*a*Math.exp(-n*n))}),a8={kernelName:Rl,backendName:"cpu",kernelFunc:n8};function Lh(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 r8={kernelName:Pl,backendName:"cpu",kernelFunc:Lh},s8=Vt((e,t)=>e/t),M0=tn(Ni,s8),nx={kernelName:Ni,backendName:"cpu",kernelFunc:M0};function _C(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&&yMath.floor(e/t)),f8=tn(Ai,m8,null,"int32"),g8={kernelName:Ai,backendName:"cpu",kernelFunc:f8};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=NC({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 b=ft({inputs:{x:i},backend:n,attrs:{shape:[i.shape[0],1,1]}});f=ml({inputs:{a:f,b},backend:n}),n.disposeIntermediateTensorInfo(b)}else f=ml({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 b=ft({inputs:{x:o},backend:n,attrs:{shape:[o.shape[0],1,1]}});f=Oh(n,f,h,b,m),n.disposeIntermediateTensorInfo(b)}else f=Oh(n,f,h,o,m);n.disposeIntermediateTensorInfo(g)}return f}var y8={kernelName:Qs,backendName:"cpu",kernelFunc:b8};function x8(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=CC({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;f=ml({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Oh(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var v8={kernelName:ei,backendName:"cpu",kernelFunc:x8};function w8(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=H2(c,h,a.dtype,u,o,p,d,a.shape,s);return n.makeTensorInfo(l,a.dtype,m.values)}var k8={kernelName:Bl,backendName:"cpu",kernelFunc:w8};function I8(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],b=n.bufferSync(f),y=n.bufferSync(m),x=j2(y,b,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var S8={kernelName:zl,backendName:"cpu",kernelFunc:I8};function T8(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=_C(o,!0,n),u=ft({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var N8={kernelName:um,backendName:"cpu",kernelFunc:T8},C8=rt(Vl,e=>Number.isFinite(e)?1:0,"bool"),_8={kernelName:Vl,backendName:"cpu",kernelFunc:C8},E8=rt(Ul,e=>Math.abs(e)===1/0?1:0,"bool"),A8={kernelName:Ul,backendName:"cpu",kernelFunc:E8},$8=rt(Gl,e=>Number.isNaN(e)?1:0,"bool"),F8={kernelName:Gl,backendName:"cpu",kernelFunc:$8};function D8(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=Z2(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var R8={kernelName:cm,backendName:"cpu",kernelFunc:D8},M8=rt(ql,e=>Math.log1p(e)),P8={kernelName:ql,backendName:"cpu",kernelFunc:M8},O8=Vt((e,t)=>e&&t),L8=tn(Kl,O8,null,"bool"),z8={kernelName:Kl,backendName:"cpu",kernelFunc:L8},B8=rt(Xl,e=>e?0:1,"bool"),W8={kernelName:Xl,backendName:"cpu",kernelFunc:B8},V8=Vt((e,t)=>e||t),U8=tn(Yl,V8,null,"bool"),G8={kernelName:Yl,backendName:"cpu",kernelFunc:U8};function H8(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,b=f-g+Math.max(0,g-s),y=f-g+Math.min(g+s,p),x=0;for(;b<=y;b++){let w=d[b];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=or({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=R0(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var Z8={kernelName:Li,backendName:"cpu",kernelFunc:Y8};function J8(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=TC(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var Q8={kernelName:pc,backendName:"cpu",kernelFunc:J8};function eK(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=Wq(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,b=p.dilationHeight,y=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 be=x*w*I-1-c.get(F,ee,te,ie,S),ue=Q*w*I+ae*I+le,xe=be===ue?1:0;xe!==0&&(Z+=R.get(F,ee,te,ie,S)*xe)}}}A.set(Z,F,M,W,U,S)}return n.makeTensorInfo(A.shape,A.dtype,A.values)}var tK={kernelName:mm,backendName:"cpu",kernelFunc:eK};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=Pe(c.outShape,o.dtype,SC(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,b=c.dilationHeight,y=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 aK={kernelName:hm,backendName:"cpu",kernelFunc:nK};function rK(e,t,n,a,r){let s=v.computeStrides(t),i=R0(e,t,n,s,r,"max"),o=SC(e,t,n,r,!0,a);return[i.values,o.values]}var sK={kernelName:fm,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]=rK(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 iK(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=is({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=M0({inputs:{a:c,b:d},backend:n});p.push(h);let m=Jc({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var oK={kernelName:zi,backendName:"cpu",kernelFunc:iK};function lK(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=Wn({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 b=0;by[0]+r.shape[x]+y[1]),l=s.map(y=>y[0]),u=s.map((y,x)=>y[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),b=v.getTypedArrayFromDType(r.dtype,m);for(let y=0;y=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);b[y]=d[w]}return{dataId:n.write(b,o,r.dtype),shape:o,dtype:r.dtype}}var cK={kernelName:Vi,backendName:"cpu",kernelFunc:pK},dK=Vt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),hK=tn(Zl,dK),mK={kernelName:Zl,backendName:"cpu",kernelFunc:hK},fK=ls(Gh());function AC(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=EC({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=D0({inputs:{a:r,b:d},backend:n}),h=V2({inputs:{x:c},backend:n}),m=Jc({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=M0({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 gK={kernelName:io,backendName:"cpu",kernelFunc:AC};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:AC({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=Lh({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=gl({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var FK={kernelName:ru,backendName:"cpu",kernelFunc:FC};function DK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((b,y)=>b[0]+r.shape[y]+b[1]),l=s.map(b=>b[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 b=0;bw+l[I]),x=v.locToIndex(y,m,f);g[x]=u[b]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var DC={kernelName:Hi,backendName:"cpu",kernelFunc:DK},RK=Vt((e,t)=>Math.pow(e,t)),MK=tn(ji,RK),PK={kernelName:ji,backendName:"cpu",kernelFunc:MK};function OK(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.data.get(b.dataId).values),u=r.map(b=>b.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=sC(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var LK={kernelName:bm,backendName:"cpu",kernelFunc:OK};function zK(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]=iC(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var BK={kernelName:ym,backendName:"cpu",kernelFunc:zK};function WK(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=_0(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var VK={kernelName:cc,backendName:"cpu",kernelFunc:WK},UK=rt(su,e=>1/e),GK={kernelName:su,backendName:"cpu",kernelFunc:UK};function HK(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])),b=[s&&u>1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,w=b[0]/y[0],I=b[1]/y[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],b=f[0]/g[0],y=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],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=b[0]/y[0],w=b[1]/y[1],I=0;for(let T=0;T1?p-1:p,i&&m>1?d-1:d],y=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=b[0]/y[0],w=b[1]/y[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 be=0;be=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 JK={kernelName:vm,backendName:"cpu",kernelFunc:ZK};function QK(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 or({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 eX={kernelName:Qi,backendName:"cpu",kernelFunc:QK},tX={kernelName:ku,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),b=Math.cos(r),y=o.data.get(a.dataId).values;for(let x=0;x=0&&M=0&&W{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),aX={kernelName:eo,backendName:"cpu",kernelFunc:nX};function rX(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=Xo(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var sX={kernelName:ou,backendName:"cpu",kernelFunc:rX};function iX(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?mX*e:hX*(Math.exp(e)-1)),gX={kernelName:uu,backendName:"cpu",kernelFunc:fX},bX=rt(du,e=>e<0?-1:e>0?1:0),yX={kernelName:du,backendName:"cpu",kernelFunc:bX},xX=rt(no,e=>Math.sin(e)),vX={kernelName:no,backendName:"cpu",kernelFunc:xX},wX=rt(cu,e=>Math.sinh(e)),kX={kernelName:cu,backendName:"cpu",kernelFunc:wX},IX=11920928955078125e-23,Ok=Math.log(IX)+2,SX=rt(hu,e=>{let t=e>-Ok,n=eNumber(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var ZX={kernelName:_c,backendName:"cpu",kernelFunc:YX};function JX(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 + ${i.shape}`);let o=n.data.get(a.dataId).values,l=n.data.get(r.dataId).values,u=n.data.get(s.dataId).values,p=n.data.get(i.dataId).values[0],[d,c,h,m,f]=uC(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 EX={kernelName:dc,backendName:"cpu",kernelFunc:_X};function AX(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]=NC(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var QX={kernelName:_u,backendName:"cpu",kernelFunc:JX};function e7(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]=pC(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var $X={kernelName:gu,backendName:"cpu",kernelFunc:AX};function FX(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]=K0(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var t7={kernelName:Ec,backendName:"cpu",kernelFunc:e7};function n7(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 + ${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]=E0(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var DX={kernelName:hc,backendName:"cpu",kernelFunc:FX};function RX(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]=K0(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var a7={kernelName:$c,backendName:"cpu",kernelFunc:n7};function r7(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}=C.calculateShapes(s,r,o),h=!1,m=n.bufferSync(r),f;switch(s.dtype){case"bool":{let g=n.bufferSync(s),b=Boolean(n.data.get(i.dataId).values[0]);f=ol(m,g,o,c,p,u,l,d,b,h);break}case"float32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ol(m,g,o,c,p,u,l,d,b,h);break}case"int32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ol(m,g,o,c,p,u,l,d,b,h);break}case"string":{let g=n.bufferSync(s),b=v.decodeString(n.data.get(i.dataId).values[0]);f=ol(m,g,o,c,p,u,l,d,b,h);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var s7={kernelName:Hm,backendName:"cpu",kernelFunc:r7};function i7(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=C.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=yi({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var o7={kernelName:Cu,backendName:"cpu",kernelFunc:i7},l7={kernelName:Ac,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;xe(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}),p7={kernelName:bs,backendName:"cpu",kernelFunc:u7};function c7(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;xe(r,"stridedSlice");let{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:b,begin:y,end:x,strides:w}=qt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=yt({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let N=qt.computeOutShape(y,x,w),_=yi({inputs:{x:r},backend:n,attrs:{begin:y,size:N}});I=yt({inputs:{x:_},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(_)}else{let N=n.bufferSync(r),_=_C(h,N,w,y);I=n.makeTensorInfo(m,_.dtype,_.values)}return I}var d7={kernelName:Eu,backendName:"cpu",kernelFunc:c7};function h7(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]=X0(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var m7={kernelName:Fc,backendName:"cpu",kernelFunc:h7};function f7(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]=Y0(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 g7={kernelName:Dc,backendName:"cpu",kernelFunc:f7};function b7(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=Z0(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var y7={kernelName:Rc,backendName:"cpu",kernelFunc:b7},x7=ot(xo,e=>Math.tan(e)),v7={kernelName:xo,backendName:"cpu",kernelFunc:x7},w7=ot(vo,e=>Math.tanh(e)),k7={kernelName:vo,backendName:"cpu",kernelFunc:w7};function I7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;xe(r,"tile");let i=$C(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var T7={kernelName:gs,backendName:"cpu",kernelFunc:I7};function S7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;xe(r,"topk");let o=n.data.get(r.dataId).values,[l,u]=FC(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 N7={kernelName:$u,backendName:"cpu",kernelFunc:S7};function C7(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],b=v.computeStrides(r.shape),y=b[0],x=b[1],w=b[2],I=v.computeStrides(g),N=I[0],_=I[1],$=I[2],A=v.getTypedArrayFromDType(r.dtype,v.sizeFromShape(g));A.fill(l);let M=a.data.get(r.dataId).values,D=a.data.get(s.dataId).values;for(let T=0;Tt-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 $7(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 A7(e,t){return e}function F7(e,t){return v.clamp(0,e,t-1)}function jp(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 W7={kernelName:Mc,backendName:"cpu",kernelFunc:z7},B7=[zq,Fj,Bq,Uq,Lj,Hq,qq,Xq,Zq,Qq,t5,a5,s5,l5,p5,h5,f5,b5,x5,Oq,w5,I5,S5,C5,Pj,Wj,E5,Dj,A5,D5,R5,P5,L5,W5,V5,G5,j5,K5,Y5,J5,eK,nK,rK,sK,oK,uK,cK,dK,hK,mK,bK,$q,xK,Bj,CK,Vj,_K,Gj,RK,MK,OK,jj,WK,VK,GK,jK,KK,Kj,Yj,Rj,YK,F5,JK,e8,n8,Aq,Jj,eq,r8,nq,i8,u8,c8,m8,g8,y8,x8,rq,w8,I8,S8,C8,E8,A8,D8,iq,M8,L8,V8,lq,pq,H8,K8,Z8,dq,Q8,tX,nX,XC,iX,Dq,fq,lX,pX,Mj,kx,dX,Rq,Mq,Pq,mX,gX,yX,vX,kX,IX,SX,bq,CX,FX,RX,LX,xq,WX,VX,GX,vq,W8,qX,XX,ZX,QX,t7,a7,s7,o7,Iq,l7,Sq,p7,d7,m7,g7,y7,Eq,fK,v7,k7,T7,N7,_7,hq,P7,L7,W7,eX];for(let e of B7)Pc(e);var YC={};Fe(YC,{assertNotComplex:()=>Ku,bindCanvasToFramebuffer:()=>J7,bindColorTextureToFramebuffer:()=>Eh,bindTextureToProgramUniformSampler:()=>d_,bindTextureUnit:()=>u_,bindVertexBufferToProgramAttribute:()=>Tx,callAndCheck:()=>ge,canBeRepresented:()=>JC,createFragmentShader:()=>t_,createFramebuffer:()=>l_,createProgram:()=>n_,createStaticIndexBuffer:()=>s_,createStaticVertexBuffer:()=>r_,createTexture:()=>i_,createVertexShader:()=>e_,getBatchDim:()=>xi,getExtensionOrThrow:()=>qp,getFramebufferErrorMessage:()=>h_,getMaxTexturesInShader:()=>b_,getNumChannels:()=>Y7,getProgramUniformLocation:()=>c_,getProgramUniformLocationOrThrow:()=>p_,getRowsCols:()=>vi,getShapeAs3D:()=>$h,getTextureShapeFromLogicalShape:()=>f_,getWebGLDisjointQueryTimerVersion:()=>y_,getWebGLErrorMessage:()=>QC,getWebGLMaxTextureSize:()=>g_,hasExtension:()=>ca,isCapableOfRenderingToFloatTexture:()=>x_,isDownloadFloatTextureEnabled:()=>v_,isReshapeFree:()=>hc,isWebGLFenceEnabled:()=>w_,isWebGLVersionEnabled:()=>Nx,linkProgram:()=>a_,logShaderSourceAndInfoLog:()=>a1,resetMaxTextureSize:()=>Q7,resetMaxTexturesInShader:()=>eY,unbindColorTextureFromFramebuffer:()=>Sx,unbindTextureUnit:()=>Z7,validateFramebuffer:()=>Kp,validateProgram:()=>_h,validateTextureSize:()=>o_});var Js={},wh={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function ZC(e,t){Js[e]=t}function Ja(e,t){if(!(e in Js)||t!=null){let a=U7(e,t);if(a!==null)Js[e]=a;else return console.log("Could not get context for WebGL version",e),null}let n=Js[e];return n==null||n.isContextLost()?(delete Js[e],Ja(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),Js[e])}function V7(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 U7(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?V7(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete Js[e]},!1),X().getBool("SOFTWARE_WEBGL_ENABLED")&&(wh.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",wh)||n.getContext("experimental-webgl",wh):n.getContext("webgl2",wh)}var dc;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(dc||(dc={}));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 md(e,t){return[t,e]}function G7(e,t){return e*t}function kh(e){let t=v.sizeFromShape(e),n=Math.ceil(t/4);return v.sizeToSquarishShape(n)}function qu(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function H7(e,t){let[n,a]=qu(e,t);return n*a*4}function n1(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return X().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 ge(e,t){let n=t();return X().getBool("DEBUG")&&j7(e),n}function j7(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+QC(e,t))}var q7=596e-10,K7=65504;function JC(e){return!!(X().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||q7e.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function e_(e,t){let n=Rr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(ge(e,()=>e.shaderSource(n,t)),ge(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 t_(e,t){let n=Rr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(ge(e,()=>e.shaderSource(n,t)),ge(e,()=>e.compileShader(n)),X().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw a1(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var X7=/ERROR: [0-9]+:([0-9]+):/g;function a1(e,t){let n=X7.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]=E0(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var MX={kernelName:mc,backendName:"cpu",kernelFunc:RX};function PX(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),b=Boolean(n.data.get(i.dataId).values[0]);f=Xo(m,g,o,c,p,u,l,d,b,h);break}case"float32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=Xo(m,g,o,c,p,u,l,d,b,h);break}case"int32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=Xo(m,g,o,c,p,u,l,d,b,h);break}case"string":{let g=n.bufferSync(s),b=v.decodeString(n.data.get(i.dataId).values[0]);f=Xo(m,g,o,c,p,u,l,d,b,h);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var OX={kernelName:Im,backendName:"cpu",kernelFunc:PX};function LX(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 zX={kernelName:fu,backendName:"cpu",kernelFunc:LX},BX={kernelName:fc,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}),VX={kernelName:hs,backendName:"cpu",kernelFunc:WX};function UX(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:b,begin:y,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||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=jt.computeOutShape(y,x,w),C=ui({inputs:{x:r},backend:n,attrs:{begin:y,size:T}});I=ft({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let T=n.bufferSync(r),C=dC(h,T,w,y);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var GX={kernelName:bu,backendName:"cpu",kernelFunc:UX};function HX(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]=A0(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var jX={kernelName:gc,backendName:"cpu",kernelFunc:HX};function qX(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]=$0(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 KX={kernelName:bc,backendName:"cpu",kernelFunc:qX};function XX(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=F0(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var YX={kernelName:yc,backendName:"cpu",kernelFunc:XX},ZX=rt(uo,e=>Math.tan(e)),JX={kernelName:uo,backendName:"cpu",kernelFunc:ZX},QX=rt(po,e=>Math.tanh(e)),eY={kernelName:po,backendName:"cpu",kernelFunc:QX};function tY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=mC(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var nY={kernelName:ds,backendName:"cpu",kernelFunc:tY};function aY(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]=gC(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 rY={kernelName:yu,backendName:"cpu",kernelFunc:aY};function sY(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],b=v.computeStrides(r.shape),y=b[0],x=b[1],w=b[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 lY(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 uY(e,t){return e}function pY(e,t){return v.clamp(0,e,t-1)}function Ap(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 yY={kernelName:xc,backendName:"cpu",kernelFunc:bY},xY=[fq,nj,bq,xq,lj,wq,Iq,Tq,Cq,Eq,$q,Dq,Mq,Lq,Bq,Uq,Hq,qq,Xq,hq,Zq,Qq,t5,a5,ij,pj,s5,aj,o5,u5,p5,d5,m5,g5,y5,v5,k5,S5,N5,_5,A5,F5,R5,M5,O5,z5,W5,V5,U5,G5,q5,iq,X5,cj,a8,dj,r8,mj,p8,c8,h8,gj,g8,y8,v8,k8,S8,yj,vj,rj,N8,l5,_8,A8,F8,oq,kj,Sj,R8,Nj,P8,z8,W8,G8,j8,K8,X8,_j,Z8,Q8,tK,aK,sK,oK,uK,Aj,cK,mK,yK,Fj,Rj,wK,SK,CK,Pj,EK,$K,FK,DC,PK,uq,zj,LK,BK,VK,sj,nx,GK,pq,cq,dq,jK,KK,YK,JK,eX,tX,aX,qj,sX,pX,dX,gX,Xj,yX,vX,kX,Yj,gK,TX,CX,EX,$X,DX,MX,OX,zX,Qj,BX,tq,VX,GX,jX,KX,YX,sq,H5,JX,eY,nY,rY,iY,Oj,mY,gY,yY,AK];for(let e of xY)vc(e);var RC={};_e(RC,{assertNotComplex:()=>Pu,bindCanvasToFramebuffer:()=>AY,bindColorTextureToFramebuffer:()=>ih,bindTextureToProgramUniformSampler:()=>YC,bindTextureUnit:()=>qC,bindVertexBufferToProgramAttribute:()=>rx,callAndCheck:()=>me,canBeRepresented:()=>PC,createFragmentShader:()=>zC,createFramebuffer:()=>jC,createProgram:()=>BC,createStaticIndexBuffer:()=>UC,createStaticVertexBuffer:()=>VC,createTexture:()=>GC,createVertexShader:()=>LC,getBatchDim:()=>pi,getExtensionOrThrow:()=>$p,getFramebufferErrorMessage:()=>ZC,getMaxTexturesInShader:()=>t_,getNumChannels:()=>_Y,getProgramUniformLocation:()=>XC,getProgramUniformLocationOrThrow:()=>KC,getRowsCols:()=>ci,getShapeAs3D:()=>oh,getTextureShapeFromLogicalShape:()=>QC,getWebGLDisjointQueryTimerVersion:()=>n_,getWebGLErrorMessage:()=>OC,getWebGLMaxTextureSize:()=>e_,hasExtension:()=>ca,isCapableOfRenderingToFloatTexture:()=>a_,isDownloadFloatTextureEnabled:()=>r_,isReshapeFree:()=>Zp,isWebGLFenceEnabled:()=>s_,isWebGLVersionEnabled:()=>ix,linkProgram:()=>WC,logShaderSourceAndInfoLog:()=>L0,resetMaxTextureSize:()=>$Y,resetMaxTexturesInShader:()=>FY,unbindColorTextureFromFramebuffer:()=>sx,unbindTextureUnit:()=>EY,validateFramebuffer:()=>Fp,validateProgram:()=>sh,validateTextureSize:()=>HC});var Us={},Jd={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function MC(e,t){Us[e]=t}function Ha(e,t){if(!(e in Us)||t!=null){let a=wY(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],Ha(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 vY(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 wY(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?vY(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete Us[e]},!1),H().getBool("SOFTWARE_WEBGL_ENABLED")&&(Jd.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",Jd)||n.getContext("experimental-webgl",Jd):n.getContext("webgl2",Jd)}var Yp;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(Yp||(Yp={}));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 sn;(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"})(sn||(sn={}));function Qc(e,t){return[t,e]}function kY(e,t){return e*t}function Qd(e){let t=v.sizeFromShape(e),n=Math.ceil(t/4);return v.sizeToSquarishShape(n)}function Mu(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function IY(e,t){let[n,a]=Mu(e,t);return n*a*4}function O0(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")&&SY(e),n}function SY(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+OC(e,t))}var TY=596e-10,NY=65504;function PC(e){return!!(H().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||TYe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function LC(e,t){let n=$r(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 zC(e,t){let n=$r(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 L0(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var CY=/ERROR: [0-9]+:([0-9]+):/g;function L0(e,t){let n=CY.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 a_(e,t){if(ge(e,()=>e.linkProgram(t)),!X().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 _h(e,t){if(ge(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function r_(e,t){let n=Rr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return ge(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),ge(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function s_(e,t){let n=Rr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return ge(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),ge(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function Y7(){return X().getNumber("WEBGL_VERSION")===2?1:4}function i_(e){return Rr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function o_(e,t){let n=X().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 l_(e){return Rr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function Tx(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(ge(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),ge(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),ge(e,()=>e.enableVertexAttribArray(o)),!0)}function u_(e,t,n){m_(e,n),ge(e,()=>e.activeTexture(e.TEXTURE0+n)),ge(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function Z7(e,t){m_(e,t),ge(e,()=>e.activeTexture(e.TEXTURE0+t)),ge(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function p_(e,t,n){return Rr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function c_(e,t,n){return e.getUniformLocation(t,n)}function d_(e,t,n,a){ge(e,()=>u_(e,t,a)),ge(e,()=>e.uniform1i(n,a))}function J7(e){ge(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),ge(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),ge(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function Eh(e,t,n){ge(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),ge(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function Sx(e,t){ge(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),ge(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function Kp(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+h_(e,t))}function h_(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 Rr(e,t,n){let a=ge(e,()=>t());if(a==null)throw new Error(n);return a}function m_(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 xi(e,t=2){return v.sizeFromShape(e.slice(0,e.length-t))}function vi(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 $h(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[xi(e),...vi(e)]),t}function f_(e,t=!1){let n=X().getNumber("WEBGL_MAX_TEXTURE_SIZE");t&&(n=n*2,e=e.map((r,s)=>s>=e.length-2?v.nearestLargerEven(e[s]):e[s]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=v.squeezeShape(e).newShape);let a=v.sizeFromShape(e);if(e.length<=1&&a<=n)return[1,a];if(e.length===2&&e[0]<=n&&e[1]<=n)return e;if(e.length===3&&e[0]*e[1]<=n&&e[2]<=n)return[e[0]*e[1],e[2]];if(e.length===3&&e[0]<=n&&e[1]*e[2]<=n)return[e[0],e[1]*e[2]];if(e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n)return[e[0]*e[1]*e[2],e[3]];if(e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n)return[e[0],e[1]*e[2]*e[3]];if(t){let r=xi(e),s=2,i=2;return e.length&&([s,i]=vi(e)),a=r*(s/2)*(i/2),v.sizeToSquarishShape(a).map(o=>o*2)}return v.sizeToSquarishShape(a)}function Ih(e){return e%2===0}function hc(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||Ih(n)&&Ih(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&Ih(e[0])&&Ih(t[0])}var Ah,Fh;function g_(e){if(Ah==null){let t=Ja(e);Ah=t.getParameter(t.MAX_TEXTURE_SIZE)}return Ah}function Q7(){Ah=null}function eY(){Fh=null}function b_(e){if(Fh==null){let t=Ja(e);Fh=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Fh)}function y_(e){if(e===0)return 0;let t,n=Ja(e);return ca(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:ca(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function ca(e,t){return e.getExtension(t)!=null}function Nx(e){try{if(Ja(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function x_(e){if(e===0)return!1;let t=Ja(e);if(e===1){if(!ca(t,"OES_texture_float"))return!1}else if(!ca(t,"EXT_color_buffer_float"))return!1;return Cx(t)}function v_(e){if(e===0)return!1;let t=Ja(e);if(e===1){if(!ca(t,"OES_texture_float")||!ca(t,"WEBGL_color_buffer_float"))return!1}else{if(ca(t,"EXT_color_buffer_float"))return Cx(t);let n="EXT_color_buffer_half_float";if(ca(t,n)){let a=t.getExtension(n);return tY(t,a)}return!1}return Cx(t)}function Cx(e){let t=n1(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 tY(e,t){let n=n1(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 w_(e){return e!==2?!1:Ja(e).fenceSync!=null}function Ku(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 Se=X();Se.registerFlag("HAS_WEBGL",()=>Se.getNumber("WEBGL_VERSION")>0);Se.registerFlag("WEBGL_VERSION",()=>Nx(2)?2:Nx(1)?1:0);Se.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Se.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Se.get("WEBGL_VERSION")===2);Se.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Se.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Se.registerFlag("WEBGL_PACK",()=>Se.getBool("HAS_WEBGL"));Se.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_PACK_CLIP",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_PACK_REDUCE",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_LAZILY_UNPACK",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_CONV_IM2COL",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>g_(Se.getNumber("WEBGL_VERSION")));Se.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>b_(Se.getNumber("WEBGL_VERSION")));Se.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=Se.getNumber("WEBGL_VERSION");return e===0?0:y_(e)});Se.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Se.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!zc.isMobile());Se.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>x_(Se.getNumber("WEBGL_VERSION")));Se.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Se.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Se.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Se.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>v_(Se.getNumber("WEBGL_VERSION")));Se.registerFlag("WEBGL_FENCE_API_ENABLED",()=>w_(Se.getNumber("WEBGL_VERSION")));Se.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Se.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Se.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}.`)});Se.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>zc.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}.`)});Se.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);Se.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);Se.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);Se.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);Se.registerFlag("WEBGL_EXP_CONV",()=>!1);Se.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>Se.getBool("IS_TEST"));function $n(){let e,t,n,a,r,s,i,o,l,u;return X().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=` +`))}function BC(e){return $r(e,()=>e.createProgram(),"Unable to create WebGLProgram.")}function WC(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 sh(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 VC(e,t){let n=$r(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 UC(e,t){let n=$r(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 _Y(){return H().getNumber("WEBGL_VERSION")===2?1:4}function GC(e){return $r(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function HC(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 jC(e){return $r(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function rx(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 qC(e,t,n){JC(e,n),me(e,()=>e.activeTexture(e.TEXTURE0+n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function EY(e,t){JC(e,t),me(e,()=>e.activeTexture(e.TEXTURE0+t)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function KC(e,t,n){return $r(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function XC(e,t,n){return e.getUniformLocation(t,n)}function YC(e,t,n,a){me(e,()=>qC(e,t,a)),me(e,()=>e.uniform1i(n,a))}function AY(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 ih(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 sx(e,t){me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),me(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function Fp(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+ZC(e,t))}function ZC(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 $r(e,t,n){let a=me(e,()=>t());if(a==null)throw new Error(n);return a}function JC(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 pi(e,t=2){return v.sizeFromShape(e.slice(0,e.length-t))}function ci(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 oh(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[pi(e),...ci(e)]),t}function QC(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=pi(e),l=2,u=2;e.length&&([l,u]=ci(e)),r=o*(l/2)*(u/2),s=v.sizeToSquarishShape(r).map(p=>p*2)}else s=v.sizeToSquarishShape(r);return s}function eh(e){return e%2===0}function Zp(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||eh(n)&&eh(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&eh(e[0])&&eh(t[0])}var lh,uh;function e_(e){if(lh==null){let t=Ha(e);lh=t.getParameter(t.MAX_TEXTURE_SIZE)}return lh}function $Y(){lh=null}function FY(){uh=null}function t_(e){if(uh==null){let t=Ha(e);uh=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,uh)}function n_(e){if(e===0)return 0;let t,n=Ha(e);return ca(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:ca(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function ca(e,t){return e.getExtension(t)!=null}function ix(e){try{if(Ha(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function a_(e){if(e===0)return!1;let t=Ha(e);if(e===1){if(!ca(t,"OES_texture_float"))return!1}else if(!ca(t,"EXT_color_buffer_float"))return!1;return ox(t)}function r_(e){if(e===0)return!1;let t=Ha(e);if(e===1){if(!ca(t,"OES_texture_float")||!ca(t,"WEBGL_color_buffer_float"))return!1}else{if(ca(t,"EXT_color_buffer_float"))return ox(t);let n="EXT_color_buffer_half_float";if(ca(t,n)){let a=t.getExtension(n);return DY(t,a)}return!1}return ox(t)}function ox(e){let t=O0(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 DY(e,t){let n=O0(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 s_(e){return e!==2?!1:Ha(e).fenceSync!=null}function Pu(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",()=>ix(2)?2:ix(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",()=>e_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>t_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=ve.getNumber("WEBGL_VERSION");return e===0?0:n_(e)});ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>ve.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Ic.isMobile());ve.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>a_(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",()=>s_(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",()=>Ic.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 Tn(){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; @@ -73,7 +73,7 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram } #define isnan(value) isnan_custom(value) - `,l="",u=` + `:"",l="",u=` #define round(value) newRound(value) int newRound(float value) { return int(floor(value + 0.5)); @@ -107,15 +107,15 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram ivec4 round(vec4 value) { return ivec4(floor(value + vec4(0.5))); } - `),{version:e,attribute:t,varyingVs:n,varyingFs:a,texture2D:r,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:u}}function _o(e,t,n="index"){let a=v.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / ${r}`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * ${r}`:`index -= ${e[s]} * ${r}`;return`${i}; ${o};`}).join("")}function eg(e,t,n="index"){let a=v.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / outShapeStrides[${s}]`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * outShapeStrides[${s}]`:`index -= ${e[s]} * outShapeStrides[${s}]`;return`${i}; ${o};`}).join("")}function nY(e,t){let n=e.length,a=e.map(s=>`${t}[${s}]`),r=new Array(n-1);r[n-2]=a[n-1];for(let s=n-3;s>=0;--s)r[s]=`(${r[s+1]} * ${a[s+1]})`;return r}function aY(e,t,n="index"){let a=e.map((s,i)=>i),r=nY(a,t);return r.map((s,i)=>{let o=`int ${e[i]} = ${n} / ${r[i]}`,l=i===r.length-1?`int ${e[i+1]} = ${n} - ${e[i]} * ${r[i]}`:`index -= ${e[i]} * ${r[i]}`;return`${o}; ${l};`}).join("")}function r1(e){let t=v.computeStrides(e).map(n=>n.toString());return` + `),{version:e,attribute:t,varyingVs:n,varyingFs:a,texture2D:r,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:u}}function xo(e,t,n="index"){let a=v.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / ${r}`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * ${r}`:`index -= ${e[s]} * ${r}`;return`${i}; ${o};`}).join("")}function $f(e,t,n="index"){let a=v.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / outShapeStrides[${s}]`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * outShapeStrides[${s}]`:`index -= ${e[s]} * outShapeStrides[${s}]`;return`${i}; ${o};`}).join("")}function RY(e,t){let n=e.length,a=e.map(s=>`${t}[${s}]`),r=new Array(n-1);r[n-2]=a[n-1];for(let s=n-3;s>=0;--s)r[s]=`(${r[s+1]} * ${a[s+1]})`;return r}function MY(e,t,n="index"){let a=e.map((s,i)=>i),r=RY(a,t);return r.map((s,i)=>{let o=`int ${e[i]} = ${n} / ${r[i]}`,l=i===r.length-1?`int ${e[i+1]} = ${n} - ${e[i]} * ${r[i]}`:`index -= ${e[i]} * ${r[i]}`;return`${o}; ${l};`}).join("")}function z0(e){let t=v.computeStrides(e).map(n=>n.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; } -`}function s1(){return` +`}function B0(){return` int getFlatIndex(ivec3 coords) { return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z; } -`}var k_=` +`}var i_=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; @@ -154,22 +154,22 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return c / 255.0; } -`,{getBroadcastDims:I_}=C;function rY(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}=i1(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=>sY(c,t,n.packedInputs,n.enableShapeUniforms)).join(` -`),i=t.texShape,o=$n(),l=lY(o),u,p,d=cY(o);return t.isPacked?(u=iY(t.logicalShape,i,n.enableShapeUniforms),p=pY(o)):(u=oY(t.logicalShape,i,n.enableShapeUniforms),p=uY(o)),n.packedInputs&&(d+=fY),[d,l,p,r,u,s,n.userCode].join(` -`)}function Xu(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return CY(e,t);case 1:return EY(e,t);case 2:return AY(e,t);case 3:return DY(e,t);case 4:return MY(e,t);case 5:return PY(e);case 6:return OY(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function T_(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return NY(e);case 1:return _Y(e,t);case 2:return $Y(e,t);case 3:return FY(e,t);default:return RY(e,t)}}function sY(e,t,n=!1,a){let r="";n?r+=T_(e,a):r+=Xu(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=LY(e,t):r+=zY(e,t)),r}function iY(e,t,n){switch(e.length){case 0:return S_();case 1:return gY(e,t,n);case 2:return TY(e,t,n);case 3:return yY(e,t,n);default:return vY(e,t,n)}}function oY(e,t,n){switch(e.length){case 0:return S_();case 1:return bY(e,t,n);case 2:return SY(e,t,n);case 3:return xY(e,t,n);case 4:return wY(e,t,n);case 5:return kY(e,t);case 6:return IY(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function lY(e){return` +`,{getBroadcastDims:o_}=N;function PY(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}=W0(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=>OY(c,t,n.packedInputs,n.enableShapeUniforms)).join(` +`),i=t.texShape,o=Tn(),l=BY(o),u,p,d=UY(o);return t.isPacked?(u=LY(t.logicalShape,i,n.enableShapeUniforms),p=VY(o)):(u=zY(t.logicalShape,i,n.enableShapeUniforms),p=WY(o)),n.packedInputs&&(d+=qY),[d,l,p,r,u,s,n.userCode].join(` +`)}function Ou(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return s7(e,t);case 1:return o7(e,t);case 2:return u7(e,t);case 3:return c7(e,t);case 4:return h7(e,t);case 5:return m7(e);case 6:return f7(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 r7(e);case 1:return i7(e,t);case 2:return l7(e,t);case 3:return p7(e,t);default:return d7(e,t)}}function OY(e,t,n=!1,a){let r="";n?r+=l_(e,a):r+=Ou(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=g7(e,t):r+=b7(e,t)),r}function LY(e,t,n){switch(e.length){case 0:return u_();case 1:return KY(e,t,n);case 2:return n7(e,t,n);case 3:return YY(e,t,n);default:return JY(e,t,n)}}function zY(e,t,n){switch(e.length){case 0:return u_();case 1:return XY(e,t,n);case 2:return a7(e,t,n);case 3:return ZY(e,t,n);case 4:return QY(e,t,n);case 5:return e7(e,t);case 6:return t7(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function BY(e){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${e.texture2D}(textureSampler, uv).r; } - `}function uY(e){return` + `}function WY(e){return` void setOutput(float val) { ${e.output} = vec4(val, 0, 0, 0); } - `}function pY(e){return` + `}function VY(e){return` void setOutput(vec4 val) { ${e.output} = val; } - `}function cY(e){return`${e.version} + `}function UY(e){return`${e.version} precision highp float; precision highp int; precision highp sampler2D; @@ -224,10 +224,10 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return fract((p3.x + p3.y) * p3.z); } - ${dY} - ${hY} - ${mY} - `}var dY=` + ${GY} + ${HY} + ${jY} + `}var GY=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -239,7 +239,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,hY=` +`,HY=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -247,7 +247,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,mY=` +`,jY=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -256,7 +256,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,fY=` +`,qY=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -267,11 +267,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function S_(){return` +`;function u_(){return` int getOutputCoords() { return 0; } - `}function gY(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return a[0]===1?n?` + `}function KY(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return a[0]===1?n?` int getOutputCoords() { return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0)); } @@ -300,7 +300,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${a[0]}, ${a[1]})); return 2 * (resTexRC.x * ${a[1]} + resTexRC.y); } - `}function bY(e,t,n){return t[0]===1?n?` + `}function XY(e,t,n){return t[0]===1?n?` int getOutputCoords() { return int(resultUV.x * float(outTexShape[1])); } @@ -328,7 +328,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return resTexRC.x * ${t[1]} + resTexRC.y; } - `}function yY(e,t,n){if(n)return` + `}function YY(e,t,n){if(n)return` ivec3 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0)); @@ -359,15 +359,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function xY(e,t,n){if(n)return` + `}function ZY(e,t,n){if(n)return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; - ${eg(["r","c","d"],e)} + ${$f(["r","c","d"],e)} return ivec3(r, c, d); } -`;let a=_o(["r","c","d"],e);return` +`;let a=xo(["r","c","d"],e);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -375,7 +375,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${a} return ivec3(r, c, d); } - `}function vY(e,t,n){if(n)return` + `}function JY(e,t,n){if(n)return` ivec4 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); ivec2 resTexRC = ivec2(resultUV.yx * @@ -416,15 +416,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec${e.length}(${l}); } - `}function wY(e,t,n){if(n)return` + `}function QY(e,t,n){if(n)return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; - ${eg(["r","c","d","d2"],e)} + ${$f(["r","c","d","d2"],e)} return ivec4(r, c, d, d2); } - `;let a=_o(["r","c","d","d2"],e);return` + `;let a=xo(["r","c","d","d2"],e);return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -432,7 +432,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${a} return ivec4(r, c, d, d2); } - `}function kY(e,t){let n=_o(["r","c","d","d2","d3"],e);return` + `}function e7(e,t){let n=xo(["r","c","d","d2","d3"],e);return` ivec5 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -444,7 +444,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec5 outShape = ivec5(r, c, d, d2, d3); return outShape; } - `}function IY(e,t){let n=_o(["r","c","d","d2","d3","d4"],e);return` + `}function t7(e,t){let n=xo(["r","c","d","d2","d3","d4"],e);return` ivec6 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -455,7 +455,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec6 result = ivec6(r, c, d, d2, d3, d4); return result; } - `}function TY(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(v.arraysEqual(e,t))return n?` + `}function n7(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(v.arraysEqual(e,t))return n?` ivec2 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); return 2 * ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); @@ -488,7 +488,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec2(r, c); } - `}function SY(e,t,n){return v.arraysEqual(e,t)?n?` + `}function a7(e,t,n){return v.arraysEqual(e,t)?n?` ivec2 getOutputCoords() { return ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); } @@ -542,15 +542,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int c = index - r * ${e[1]}; return ivec2(r, c); } - `}function Eo(e){return`offset${e}`}function NY(e){let t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),a=$n();return` + `}function vo(e){return`offset${e}`}function r7(e){let t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),a=Tn();return` vec4 ${n}() { return ${a.texture2D}(${t}, halfCR); } - `}function CY(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 s7(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); } - `;let i=Eo(n);if(t)return` + `;let i=vo(n);if(t)return` float ${a}() { vec2 uv = uvFromFlat(${n}TexShape[0], ${n}TexShape[1], ${i}); return sampleTexture(${n}, uv); @@ -560,7 +560,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${o}, ${l}, ${i}); return sampleTexture(${n}, uv); } - `}function _Y(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1),r=e.shapeInfo.texShape,s=$n();if(t)return` + `}function i7(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1),r=e.shapeInfo.texShape,s=Tn();if(t)return` vec4 ${a}(int index) { ivec2 packedTexShape = ivec2(ceil(float(${n}TexShape[0]) / 2.0), ceil(float(${n}TexShape[1]) / 2.0)); vec2 uv = packedUVfrom1D( @@ -573,15 +573,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${i[0]}, ${i[1]}, index); return ${s.texture2D}(${n}, uv); } - `}function EY(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return` + `}function o7(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return` float ${a}(int index) { - ${Yu(e)} + ${Lu(e)} } `;let r=e.shapeInfo.texShape,s=r[0],i=r[1];if(i===1&&s===1)return` float ${a}(int index) { return sampleTexture(${n}, halfCR); } - `;let o=Eo(n);return i===1?t?` + `;let o=vo(n);return i===1?t?` float ${a}(int index) { vec2 uv = vec2(0.5, (float(index + ${o}) + 0.5) / float(${n}TexShape[0])); return sampleTexture(${n}, uv); @@ -611,7 +611,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${s}, ${i}, index + ${o}); return sampleTexture(${n}, uv); } - `}function $Y(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape,i=s[0],o=s[1],l=$n();if(s!=null&&v.arraysEqual(n,s))return t?` + `}function l7(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape,i=s[0],o=s[1],l=Tn();if(s!=null&&v.arraysEqual(n,s))return t?` vec4 ${r}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${a}TexShape[1], ${a}TexShape[0]); @@ -635,7 +635,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = packedUVfrom2D(${p}, ${u[0]}, ${u[1]}, row, col); return ${l.texture2D}(${a}, uv); } - `}function AY(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape;if(s!=null&&v.arraysEqual(n,s)){if(t)return` + `}function u7(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape;if(s!=null&&v.arraysEqual(n,s)){if(t)return` float ${r}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${a}TexShape[1], ${a}TexShape[0]); return sampleTexture(${a}, uv); @@ -645,17 +645,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = (vec2(col, row) + halfCR) / vec2(${h}.0, ${c}.0); return sampleTexture(${a}, uv); } - `}let{newShape:i,keptDims:o}=v.squeezeShape(n),l=i;if(l.length=1?p="coords = 0;":p=o.map(g=>`coords.${d[g+u]} = 0;`).join(` + `}function g7(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=o_(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,b)=>`coords.${d[b+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=` @@ -972,20 +972,20 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec4 outputValue = get${a}(${c}); ${h} } - `}function zY(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&e.shapeInfo.flatOffset==null&&v.arraysEqual(i,s))return` + `}function b7(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&e.shapeInfo.flatOffset==null&&v.arraysEqual(i,s))return` float ${r}() { return sampleTexture(${n}, resultUV); } - `;let u=ut(l),p=I_(e.shapeInfo.logicalShape,t.logicalShape),d=l-o,c,h=["x","y","z","w","u","v"];o===0?c="":l<2&&p.length>=1?c="coords = 0;":c=p.map(f=>`coords.${h[f+d]} = 0;`).join(` + `;let u=gt(l),p=o_(e.shapeInfo.logicalShape,t.logicalShape),d=l-o,c,h=["x","y","z","w","u","v"];o===0?c="":l<2&&p.length>=1?c="coords = 0;":c=p.map(f=>`coords.${h[f+d]} = 0;`).join(` `);let m="";return l<2&&o>0?m="coords":m=e.shapeInfo.logicalShape.map((f,g)=>`coords.${h[g+d]}`).join(", "),` float ${r}() { ${u} coords = getOutputCoords(); ${c} return get${a}(${m}); } - `}function ut(e){if(e<=1)return"int";if(e===2)return"ivec2";if(e===3)return"ivec3";if(e===4)return"ivec4";if(e===5)return"ivec5";if(e===6)return"ivec6";throw Error(`GPU for rank ${e} is not yet supported`)}function i1(e,t,n){let{newShape:a,keptDims:r}=v.squeezeShape(t),s=t.length,i=e&&s===3&&t[0]===1,o=i?t.slice(1):a,l=!e&&s>1&&!v.arraysEqual(t,n)&&a.lengthe[n]).join(", ")}function WY(e,t,n,a){let r=n.map((p,d)=>{let c={logicalShape:p.shape,texShape:p.isUniform?null:p.texData.texShape,isUniform:p.isUniform,isPacked:p.isUniform?!1:p.texData.isPacked,flatOffset:null};return p.texData!=null&&p.texData.slice!=null&&p.texData.slice.flatOffset>0&&(c.flatOffset=p.texData.slice.flatOffset),{name:t.variableNames[d],shapeInfo:c}}),s=r.map(p=>p.shapeInfo),i={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},o=rY(r,i,t),l=t_(e.gl,o),u=e.createProgram(l);return X().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,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:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i},N_(e,t,u))}function N_(e,t,n){let a={},r={},s={},i=[],o,l,u,p=null,d=null;d=e.getUniformLocation(n,"NAN",!1),X().getNumber("WEBGL_VERSION")===1&&(p=e.getUniformLocation(n,"INFINITY",!1));let c=!1;for(let h=0;h{i[m]=e.getUniformLocation(n,h.name,c)}),{uniformLocations:a,customUniformLocations:i,infLoc:p,nanLoc:d,inShapesLocations:r,inTexShapesLocations:s,outShapeLocation:o,outShapeStridesLocation:u,outTexShapeLocation:l}}function iI(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach((n,a)=>{let r=n.logicalShape,s=t[a],i=s.shape;if(!v.arraysEqual(r,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${i} must match`);if(n.isUniform&&s.isUniform)return;let o=n.texShape,l=s.isUniform?null:s.texData.texShape;if(!v.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function BY(e,t,n,a,r){t.program.enableShapeUniforms||(iI(t.inShapeInfos,n),iI([t.outShapeInfo],[a]));let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):e.setOutputMatrixTexture(s.texture,i[0],i[1]),e.setProgram(t.webGLProgram),X().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((l,u)=>{let p=t.program.variableNames[u],d=t.uniformLocations[p],c=t.uniformLocations[`offset${p}`],h=t.inShapesLocations[`${p}Shape`],m=t.inTexShapesLocations[`${p}TexShape`];if(h){let{uniformShape:f}=i1(t.program.packedInputs,l.shape,l.texData.texShape);switch(f.length){case 1:e.gl.uniform1iv(h,new Int32Array(f));break;case 2:e.gl.uniform2iv(h,new Int32Array(f));break;case 3:e.gl.uniform3iv(h,new Int32Array(f));break;case 4:e.gl.uniform4iv(h,new Int32Array(f));break;default:break}}if(m&&e.gl.uniform2i(m,l.texData.texShape[0],l.texData.texShape[1]),d!=null){if(l.isUniform){if(v.sizeFromShape(l.shape)<2)e.gl.uniform1f(d,l.uniformValues[0]);else{let f=l.uniformValues;f instanceof Float32Array||(f=new Float32Array(f)),e.gl.uniform1fv(d,f)}return}l.texData.slice!=null&&c!=null&&e.gl.uniform1i(c,l.texData.slice.flatOffset),e.setInputMatrixTexture(l.texData.texture.texture,d,u)}});let o=t.outShapeLocation;if(o)switch(a.shape.length){case 1:e.gl.uniform1iv(o,new Int32Array(a.shape));break;case 2:e.gl.uniform2iv(o,new Int32Array(a.shape));break;case 3:e.gl.uniform3iv(o,new Int32Array(a.shape));break;case 4:e.gl.uniform4iv(o,new Int32Array(a.shape));break;default:break}if(t.outShapeStridesLocation){let l=v.computeStrides(a.shape);switch(a.shape.length){case 2:e.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(l));break;case 3:e.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(l));break;case 4:e.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(l));break;default:break}}t.outTexShapeLocation&&e.gl.uniform2i(t.outTexShapeLocation,a.texData.texShape[0],a.texData.texShape[1]),t.program.customUniforms&&r&&t.program.customUniforms.forEach((l,u)=>{let p=t.customUniformLocations[u],d=r[u];if(l.type==="float")e.gl.uniform1fv(p,d);else if(l.type==="vec2")e.gl.uniform2fv(p,d);else if(l.type==="vec3")e.gl.uniform3fv(p,d);else if(l.type==="vec4")e.gl.uniform4fv(p,d);else if(l.type==="int")e.gl.uniform1iv(p,d);else if(l.type==="ivec2")e.gl.uniform2iv(p,d);else if(l.type==="ivec3")e.gl.uniform3iv(p,d);else if(l.type==="ivec4")e.gl.uniform4iv(p,d);else throw Error(`uniform type ${l.type} is not supported yet.`)}),e.executeProgram()}function VY(e,t,n){let a="";t.concat(n).forEach(i=>{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!i.isUniform){let l=i.texData.texShape,{useSqueezeShape:u,uniformShape:p,keptDims:d}=i1(e.packedInputs,i.shape,l),c="",h="",m="";if(p.length===1&&e.packedInputs){let I=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];c=`${I[0]>1}_${I[1]>1}`}else if(p.length===2&&!e.packedInputs)h=`${p[0]>1}_${p[1]>1}`;else if(p.length>2&&!e.packedInputs){let I=v.computeStrides(p);m=`${I[0]===l[1]}_${I[I.length-1]===l[1]}`}let f=i.shape.length,g=p.length===2&&v.arraysEqual(i.shape,l),b=v.sizeFromShape(i.shape)===1,y=C.getBroadcastDims(i.shape,n.shape),x=!e.packedInputs&&f===n.shape.length&&v.arraysEqual(l,n.texData.texShape),w=e.packedInputs||p.length>2?"":`${l[0]>1}_${l[1]>1}`;a+=`${f}_${x}_${u?d:""}_${p.length}_${b}_${y}_${g}_${c}_${h}_${m}_${w}_${o}`}else{let l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`}});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r+`${X().getNumber("WEBGL_VERSION")}`,s}function An(e){return X().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}var UY=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=dc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=$n();this.outputShape=e,this.enableShapeUniforms=An(this.outputShape.length),this.userCode=` + `}function gt(e){if(e<=1)return"int";if(e===2)return"ivec2";if(e===3)return"ivec3";if(e===4)return"ivec4";if(e===5)return"ivec5";if(e===6)return"ivec6";throw Error(`GPU for rank ${e} is not yet supported`)}function W0(e,t,n){let{newShape:a,keptDims:r}=v.squeezeShape(t),s=t.length,i=e&&s===3&&t[0]===1,o=i?t.slice(1):a,l=!e&&s>1&&!v.arraysEqual(t,n)&&a.lengthe[n]).join(", ")}function y7(e,t,n,a){let r=n.map((p,d)=>{let c={logicalShape:p.shape,texShape:p.isUniform?null:p.texData.texShape,isUniform:p.isUniform,isPacked:p.isUniform?!1:p.texData.isPacked,flatOffset:null};return p.texData!=null&&p.texData.slice!=null&&p.texData.slice.flatOffset>0&&(c.flatOffset=p.texData.slice.flatOffset),{name:t.variableNames[d],shapeInfo:c}}),s=r.map(p=>p.shapeInfo),i={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},o=PY(r,i,t),l=zC(e.gl,o),u=e.createProgram(l);return H().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,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:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i},p_(e,t,u))}function p_(e,t,n){let a={},r={},s={},i=[],o,l,u,p=null,d=null;d=e.getUniformLocation(n,"NAN",!1),H().getNumber("WEBGL_VERSION")===1&&(p=e.getUniformLocation(n,"INFINITY",!1));let c=!1;for(let h=0;h{i[m]=e.getUniformLocation(n,h.name,c)}),{uniformLocations:a,customUniformLocations:i,infLoc:p,nanLoc:d,inShapesLocations:r,inTexShapesLocations:s,outShapeLocation:o,outShapeStridesLocation:u,outTexShapeLocation:l}}function zk(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach((n,a)=>{let r=n.logicalShape,s=t[a],i=s.shape;if(!v.arraysEqual(r,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${i} must match`);if(n.isUniform&&s.isUniform)return;let o=n.texShape,l=s.isUniform?null:s.texData.texShape;if(!v.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function x7(e,t,n,a,r){t.program.enableShapeUniforms||(zk(t.inShapeInfos,n),zk([t.outShapeInfo],[a]));let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):e.setOutputMatrixTexture(s.texture,i[0],i[1]),e.setProgram(t.webGLProgram),H().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((l,u)=>{let p=t.program.variableNames[u],d=t.uniformLocations[p],c=t.uniformLocations[`offset${p}`],h=t.inShapesLocations[`${p}Shape`],m=t.inTexShapesLocations[`${p}TexShape`];if(h){let{uniformShape:f}=W0(t.program.packedInputs,l.shape,l.texData.texShape);switch(f.length){case 1:e.gl.uniform1iv(h,new Int32Array(f));break;case 2:e.gl.uniform2iv(h,new Int32Array(f));break;case 3:e.gl.uniform3iv(h,new Int32Array(f));break;case 4:e.gl.uniform4iv(h,new Int32Array(f));break;default:break}}if(m&&e.gl.uniform2i(m,l.texData.texShape[0],l.texData.texShape[1]),d!=null){if(l.isUniform){if(v.sizeFromShape(l.shape)<2)e.gl.uniform1f(d,l.uniformValues[0]);else{let f=l.uniformValues;f instanceof Float32Array||(f=new Float32Array(f)),e.gl.uniform1fv(d,f)}return}l.texData.slice!=null&&c!=null&&e.gl.uniform1i(c,l.texData.slice.flatOffset),e.setInputMatrixTexture(l.texData.texture.texture,d,u)}});let o=t.outShapeLocation;if(o)switch(a.shape.length){case 1:e.gl.uniform1iv(o,new Int32Array(a.shape));break;case 2:e.gl.uniform2iv(o,new Int32Array(a.shape));break;case 3:e.gl.uniform3iv(o,new Int32Array(a.shape));break;case 4:e.gl.uniform4iv(o,new Int32Array(a.shape));break;default:break}if(t.outShapeStridesLocation){let l=v.computeStrides(a.shape);switch(a.shape.length){case 2:e.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(l));break;case 3:e.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(l));break;case 4:e.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(l));break;default:break}}t.outTexShapeLocation&&e.gl.uniform2i(t.outTexShapeLocation,a.texData.texShape[0],a.texData.texShape[1]),t.program.customUniforms&&r&&t.program.customUniforms.forEach((l,u)=>{let p=t.customUniformLocations[u],d=r[u];if(l.type==="float")e.gl.uniform1fv(p,d);else if(l.type==="vec2")e.gl.uniform2fv(p,d);else if(l.type==="vec3")e.gl.uniform3fv(p,d);else if(l.type==="vec4")e.gl.uniform4fv(p,d);else if(l.type==="int")e.gl.uniform1iv(p,d);else if(l.type==="ivec2")e.gl.uniform2iv(p,d);else if(l.type==="ivec3")e.gl.uniform3iv(p,d);else if(l.type==="ivec4")e.gl.uniform4iv(p,d);else throw Error(`uniform type ${l.type} is not supported yet.`)}),e.executeProgram()}function v7(e,t,n){let a="";t.concat(n).forEach(i=>{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!i.isUniform){let l=i.texData.texShape,{useSqueezeShape:u,uniformShape:p,keptDims:d}=W0(e.packedInputs,i.shape,l),c="",h="",m="";if(p.length===1&&e.packedInputs){let I=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];c=`${I[0]>1}_${I[1]>1}`}else if(p.length===2&&!e.packedInputs)h=`${p[0]>1}_${p[1]>1}`;else if(p.length>2&&!e.packedInputs){let I=v.computeStrides(p);m=`${I[0]===l[1]}_${I[I.length-1]===l[1]}`}let f=i.shape.length,g=p.length===2&&v.arraysEqual(i.shape,l),b=v.sizeFromShape(i.shape)===1,y=N.getBroadcastDims(i.shape,n.shape),x=!e.packedInputs&&f===n.shape.length&&v.arraysEqual(l,n.texData.texShape),w=e.packedInputs||p.length>2?"":`${l[0]>1}_${l[1]>1}`;a+=`${f}_${x}_${u?d:""}_${p.length}_${b}_${y}_${g}_${c}_${h}_${m}_${w}_${o}`}else{let l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`}});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r+`${H().getNumber("WEBGL_VERSION")}`,s}function Nn(e){return H().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}var w7=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Yp.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=Tn();this.outputShape=e,this.enableShapeUniforms=Nn(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?eg(["r","c","d"],e):_o(["r","c","d"],e)} + ${this.enableShapeUniforms?$f(["r","c","d"],e):xo(["r","c","d"],e)} return ivec3(r, c, d); } @@ -1003,9 +1003,9 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t.output} = result; } - `}},GY=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=dc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=$n();this.outputShape=e,this.enableShapeUniforms=An(this.outputShape.length),this.userCode=` + `}},k7=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Yp.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=Tn();this.outputShape=e,this.enableShapeUniforms=Nn(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?eg(["r","c","d"],e):_o(["r","c","d"],e)} + ${this.enableShapeUniforms?$f(["r","c","d"],e):xo(["r","c","d"],e)} return ivec3(r, c, d); } @@ -1023,23 +1023,23 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t.output} = result; } - `}},HY=class{constructor(e){this.variableNames=["A"],this.outTexUsage=pa.DOWNLOAD;let t=$n();this.outputShape=e,this.userCode=` - ${k_} + `}},I7=class{constructor(e){this.variableNames=["A"],this.outTexUsage=pa.DOWNLOAD;let t=Tn();this.outputShape=e,this.userCode=` + ${i_} void main() { float x = getAAtOutCoords(); ${t.output} = encode_float(x); } - `}},jY=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=pa.DOWNLOAD;let t=$n();this.outputShape=e,this.userCode=` - ${k_} + `}},S7=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=pa.DOWNLOAD;let t=Tn();this.outputShape=e,this.userCode=` + ${i_} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${t.output} = encode_float(x); } - `}},qY=class{constructor(e,t=!1){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let n=$n();this.outputShape=e,this.enableShapeUniforms=An(this.outputShape.length);let a="result";t&&(a="floor(result * 255. + 0.5)"),this.userCode=` - ${this.enableShapeUniforms?s1():r1(e)} + `}},T7=class{constructor(e,t=!1){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let n=Tn();this.outputShape=e,this.enableShapeUniforms=Nn(this.outputShape.length);let a="result";t&&(a="floor(result * 255. + 0.5)"),this.userCode=` + ${this.enableShapeUniforms?B0():z0(e)} void main() { ivec3 coords = getOutputCoords(); @@ -1068,7 +1068,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n.output} = vec4(${a}, 0., 0., 0.); } - `}},KY=class{constructor(e,t=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.customUniforms=[{name:"texShape",type:"ivec2"}];let n=$n();this.outputShape=e,this.enableShapeUniforms=An(this.outputShape.length);let a="",r="result";t&&(r="floor(result * 255. + 0.5)");for(let s=0;s<=1;s++)for(let i=0;i<=1;i++){let o=s*2+i;a+=` + `}},N7=class{constructor(e,t=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.customUniforms=[{name:"texShape",type:"ivec2"}];let n=Tn();this.outputShape=e,this.enableShapeUniforms=Nn(this.outputShape.length);let a="",r="result";t&&(r="floor(result * 255. + 0.5)");for(let s=0;s<=1;s++)for(let i=0;i<=1;i++){let o=s*2+i;a+=` localCoords = coords; if(localCoords[2] + ${i} < ${this.enableShapeUniforms?"outShape[2]":`${e[2]}`}) { localCoords[2] += ${i}; @@ -1097,7 +1097,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } } `}this.userCode=` - ${this.enableShapeUniforms?s1():r1(e)} + ${this.enableShapeUniforms?B0():z0(e)} void main() { ivec3 coords = getOutputCoords(); @@ -1112,7 +1112,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n.output} = ${r}; } - `}},C_={};Fe(C_,{bindVertexProgramAttributeStreams:()=>P_,createBufferFromOutputTexture:()=>z_,createFloat16MatrixTexture:()=>F_,createFloat16PackedMatrixTexture:()=>M_,createFloat32MatrixTexture:()=>A_,createIndexBuffer:()=>$_,createPackedMatrixTexture:()=>R_,createUnsignedBytesMatrixTexture:()=>D_,createVertexBuffer:()=>E_,createVertexShader:()=>__,downloadByteEncodedFloatMatrixFromOutputTexture:()=>B_,downloadFloat32MatrixFromBuffer:()=>W_,downloadMatrixFromPackedOutputTexture:()=>U_,downloadPackedMatrixFromBuffer:()=>V_,getInternalFormatForFloat16MatrixTexture:()=>l1,getInternalFormatForFloat16PackedMatrixTexture:()=>c1,getInternalFormatForFloat32MatrixTexture:()=>o1,getInternalFormatForPackedMatrixTexture:()=>p1,getInternalFormatForUnsignedBytesMatrixTexture:()=>u1,uploadDenseMatrixToTexture:()=>O_,uploadPixelDataToTexture:()=>L_});function __(e){let t=$n(),n=`${t.version} + `}},c_={};_e(c_,{bindVertexProgramAttributeStreams:()=>v_,createBufferFromOutputTexture:()=>I_,createFloat16MatrixTexture:()=>g_,createFloat16PackedMatrixTexture:()=>x_,createFloat32MatrixTexture:()=>f_,createIndexBuffer:()=>m_,createPackedMatrixTexture:()=>y_,createUnsignedBytesMatrixTexture:()=>b_,createVertexBuffer:()=>h_,createVertexShader:()=>d_,downloadByteEncodedFloatMatrixFromOutputTexture:()=>T_,downloadFloat32MatrixFromBuffer:()=>S_,downloadMatrixFromPackedOutputTexture:()=>C_,downloadPackedMatrixFromBuffer:()=>N_,getInternalFormatForFloat16MatrixTexture:()=>U0,getInternalFormatForFloat16PackedMatrixTexture:()=>j0,getInternalFormatForFloat32MatrixTexture:()=>V0,getInternalFormatForPackedMatrixTexture:()=>H0,getInternalFormatForUnsignedBytesMatrixTexture:()=>G0,uploadDenseMatrixToTexture:()=>w_,uploadPixelDataToTexture:()=>k_});function d_(e){let t=Tn(),n=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -1121,11 +1121,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return e_(e,n)}function E_(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 r_(e,t)}function $_(e){let t=new Uint16Array([0,1,2,2,1,3]);return s_(e,t)}function fd(e,t,n,a,r,s){o_(t,n);let i=i_(e),o=e.TEXTURE_2D;return ge(e,()=>e.bindTexture(o,i)),ge(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),ge(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),ge(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),ge(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),X().getNumber("WEBGL_VERSION")===1?ge(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):ge(e,()=>e.texStorage2D(o,1,a,t,n)),ge(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function o1(e){return e.internalFormatFloat}function A_(e,t,n,a){let[r,s]=md(t,n);return fd(e,r,s,o1(a),a.textureFormatFloat,e.FLOAT)}function l1(e){return e.internalFormatHalfFloat}function F_(e,t,n,a){let[r,s]=md(t,n);return fd(e,r,s,l1(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function u1(e){return e.downloadTextureFormat}function D_(e,t,n,a){let[r,s]=md(t,n);return fd(e,r,s,u1(a),e.RGBA,e.UNSIGNED_BYTE)}function p1(e){return e.internalFormatPackedFloat}function R_(e,t,n,a){let[r,s]=qu(t,n);return fd(e,r,s,p1(a),e.RGBA,e.FLOAT)}function c1(e){return e.internalFormatPackedHalfFloat}function M_(e,t,n,a){let[r,s]=qu(t,n);return fd(e,r,s,c1(a),e.RGBA,a.textureTypeHalfFloat)}function P_(e,t,n){return ge(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),Tx(e,t,"clipSpacePos",n,3,20,0)&&Tx(e,t,"uv",n,2,20,12)}function O_(e,t,n,a,r,s){ge(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),X().getNumber("WEBGL_VERSION")===2?ge(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):ge(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),ge(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function L_(e,t,n){ge(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?X().getNumber("WEBGL_VERSION")===2?ge(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):ge(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):X().getNumber("WEBGL_VERSION")===2?ge(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):ge(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),ge(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function z_(e,t,n,a){let r=e.createBuffer();ge(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return ge(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),ge(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),ge(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function W_(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 B_(e,t,n,a){let[r,s]=md(t,n),i=4,o=new Uint8Array(G7(t*n,i));return ge(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function V_(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(H7(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 U_(e,t,n){let a=new Float32Array(t*n*4);return ge(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var Dh=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=X().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,ZC(t,e)):this.gl=Ja(t);let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),X().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=qp(this.gl,r),ca(this.gl,s))this.textureHalfFloatExtension=qp(this.gl,s);else if(X().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=qp(this.gl,a);else if(X().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=E_(this.gl),this.indexBuffer=$_(this.gl),this.framebuffer=l_(this.gl),this.textureConfig=n1(this.gl,this.textureHalfFloatExtension)}get debug(){return X().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;ge(e,()=>e.finish()),ge(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),ge(e,()=>e.deleteFramebuffer(this.framebuffer)),ge(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),ge(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),ge(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),A_(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),F_(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),D_(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),L_(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),O_(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),M_(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),R_(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(Sx(this.gl,this.framebuffer),this.outputTexture=null),ge(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>B_(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return V_(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return W_(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=z_(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(X().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 X().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,X().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>U_(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=__(t));let n=n_(t);return ge(t,()=>t.attachShader(n,this.vertexShader)),ge(t,()=>t.attachShader(n,e)),a_(t,n),this.debug&&_h(t,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=P_(t,this.program,this.vertexBuffer)),n}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&ge(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&_h(this.gl,this.program),ge(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?p_(this.gl,e,t):c_(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),ge(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(),d_(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=qu(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&&_h(this.gl,this.program),Kp(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),ge(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),ge(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=qp(this.gl,X().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(X().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(X().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,X().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,X().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=XY(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){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),!(this.itemsToPoll.length>1)&&v.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Eh(this.gl,e,this.framebuffer),this.debug&&Kp(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Eh(this.gl,this.outputTexture,this.framebuffer),this.debug&&Kp(this.gl)):Sx(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;Eh(a,e,this.framebuffer),this.debug&&Kp(a),this.outputTexture=e,ge(a,()=>a.viewport(0,0,t,n)),ge(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),ge(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 XY(e){let t=0;for(;t`${e}.${n}`)}function Tn(e,t){return t===1?[e]:q_(e,t)}function OZ(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 V0(e){return e.internalFormatFloat}function f_(e,t,n,a){let[r,s]=Qc(t,n);return ed(e,r,s,V0(a),a.textureFormatFloat,e.FLOAT)}function U0(e){return e.internalFormatHalfFloat}function g_(e,t,n,a){let[r,s]=Qc(t,n);return ed(e,r,s,U0(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function G0(e){return e.downloadTextureFormat}function b_(e,t,n,a){let[r,s]=Qc(t,n);return ed(e,r,s,G0(a),e.RGBA,e.UNSIGNED_BYTE)}function H0(e){return e.internalFormatPackedFloat}function y_(e,t,n,a){let[r,s]=Mu(t,n);return ed(e,r,s,H0(a),e.RGBA,e.FLOAT)}function j0(e){return e.internalFormatPackedHalfFloat}function x_(e,t,n,a){let[r,s]=Mu(t,n);return ed(e,r,s,j0(a),e.RGBA,a.textureTypeHalfFloat)}function v_(e,t,n){return me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),rx(e,t,"clipSpacePos",n,3,20,0)&&rx(e,t,"uv",n,2,20,12)}function w_(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 k_(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 I_(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 S_(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 T_(e,t,n,a){let[r,s]=Qc(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 N_(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(IY(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 C_(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,MC(t,e)):this.gl=Ha(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=$p(this.gl,r),ca(this.gl,s))this.textureHalfFloatExtension=$p(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=$p(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=h_(this.gl),this.indexBuffer=m_(this.gl),this.framebuffer=jC(this.gl),this.textureConfig=O0(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(),f_(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),g_(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),b_(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),k_(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),w_(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(),y_(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(sx(this.gl,this.framebuffer),this.outputTexture=null),me(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>T_(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return N_(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return S_(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=I_(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,()=>C_(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=d_(t));let n=BC(t);return me(t,()=>t.attachShader(n,this.vertexShader)),me(t,()=>t.attachShader(n,e)),WC(t,n),this.debug&&sh(t,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=v_(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&&sh(this.gl,this.program),me(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?KC(this.gl,e,t):XC(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(),YC(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=Mu(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&&sh(this.gl,this.program),Fp(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=$p(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=C7(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(),ih(this.gl,e,this.framebuffer),this.debug&&Fp(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(ih(this.gl,this.outputTexture,this.framebuffer),this.debug&&Fp(this.gl)):sx(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;ih(a,e,this.framebuffer),this.debug&&Fp(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 C7(e){let t=0;for(;t`${e}.${n}`)}function wn(e,t){return t===1?[e]:$_(e,t)}function gZ(e,t){if(e===1)return"rc";let n="";for(let a=0;a= ${this.enableShapeUniforms?"outShape":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`:`getA(${t[0]}), cEdge ? 0. : getA(${t[1]}), rEdge ? 0. : getA(${t[2]}), - rEdge || cEdge ? 0. : getA(${t[3]})`}},K_=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=An(this.outputShape.length);let n="";for(let a=0;a<4;a++){let r="thisRC = rc;";a%2===1&&(r+="thisRC.z += 1;"),a>1&&(r+="thisRC.y += 1;"),n+=` + rEdge || cEdge ? 0. : getA(${t[3]})`}},F_=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=Nn(this.outputShape.length);let n="";for(let a=0;a<4;a++){let r="thisRC = rc;";a%2===1&&(r+="thisRC.z += 1;"),a>1&&(r+="thisRC.y += 1;"),n+=` ${r} ${a>0?"if(thisRC.y < rows && thisRC.z < cols){":""} int flatIndex = getFlatIndex(thisRC); @@ -1160,8 +1160,8 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${a>0?"}":""} `}this.userCode=` - ${zZ(t,this.enableShapeUniforms)} - ${this.enableShapeUniforms?s1():r1(e)} + ${yZ(t,this.enableShapeUniforms)} + ${this.enableShapeUniforms?B0():z0(e)} void main() { ivec3 rc = getOutputCoords(); @@ -1176,12 +1176,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function zZ(e,t){return` + `}};function yZ(e,t){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { - ${t?aY(["r","c","d"],"inputShape"):_o(["r","c","d"],e)} + ${t?MY(["r","c","d"],"inputShape"):xo(["r","c","d"],e)} return ivec3(r, c, d); } - `}var WZ=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){let a=lI(t,n),r=uI(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=oI(e,a,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();let o=this.freeTextures[r].shift();return this.usedTextures[r].push(o),o}let i;return a===on.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===on.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===on.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===on.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===on.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[r].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,a){if(this.freeTextures==null)return;let r=lI(n,a),s=uI(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=oI(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=X().get("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],u=l.indexOf(e);if(u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(u,1),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function BZ(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F||t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;if(t===n.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function oI(e,t,n,a,r){let s=VZ(t,a),i;if(r){let[l,u]=qu(e[0],e[1]);i=l*u}else{let[l,u]=md(e[0],e[1]);i=l*u}let o=BZ(n,s);return i*o}function VZ(e,t){switch(e){case on.PACKED_2X2_FLOAT32:return p1(t);case on.PACKED_2X2_FLOAT16:return c1(t);case on.UNPACKED_FLOAT32:return o1(t);case on.UNPACKED_FLOAT16:return l1(t);case on.PACKED_4X1_UNSIGNED_BYTE:return u1(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function UZ(e){return X().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?on.PACKED_2X2_FLOAT32:on.UNPACKED_FLOAT32:e?on.PACKED_2X2_FLOAT16:on.UNPACKED_FLOAT16}function lI(e,t){if(e===pa.UPLOAD)return on.PACKED_2X2_FLOAT32;if(e===pa.RENDER||e==null)return UZ(t);if(e===pa.DOWNLOAD||e===pa.PIXELS)return on.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function uI(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var Cr=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=An(this.outputShape.length),this.userCode=` + `}var xZ=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){let a=Wk(t,n),r=Vk(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=Bk(e,a,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();let o=this.freeTextures[r].shift();return this.usedTextures[r].push(o),o}let i;return a===sn.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===sn.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===sn.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===sn.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===sn.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[r].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,a){if(this.freeTextures==null)return;let r=Wk(n,a),s=Vk(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=Bk(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=H().get("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],u=l.indexOf(e);if(u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(u,1),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function vZ(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F||t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;if(t===n.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function Bk(e,t,n,a,r){let s=wZ(t,a),i;if(r){let[l,u]=Mu(e[0],e[1]);i=l*u}else{let[l,u]=Qc(e[0],e[1]);i=l*u}let o=vZ(n,s);return i*o}function wZ(e,t){switch(e){case sn.PACKED_2X2_FLOAT32:return H0(t);case sn.PACKED_2X2_FLOAT16:return j0(t);case sn.UNPACKED_FLOAT32:return V0(t);case sn.UNPACKED_FLOAT16:return U0(t);case sn.PACKED_4X1_UNSIGNED_BYTE:return G0(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function kZ(e){return H().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?sn.PACKED_2X2_FLOAT32:sn.UNPACKED_FLOAT32:e?sn.PACKED_2X2_FLOAT16:sn.UNPACKED_FLOAT16}function Wk(e,t){if(e===pa.UPLOAD)return sn.PACKED_2X2_FLOAT32;if(e===pa.RENDER||e==null)return kZ(t);if(e===pa.DOWNLOAD||e===pa.PIXELS)return sn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function Vk(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var Sr=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=Nn(this.outputShape.length),this.userCode=` float unaryOperation(float x) { ${t} } @@ -1192,11 +1192,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},Fa="if (isnan(x)) return x;",GZ="return x;",pI="return abs(x);",HZ="return (x >= 0.0) ? x : (exp(x) - 1.0);",jZ=Fa+` + `}},Fa="if (isnan(x)) return x;",IZ="return x;",Uk="return abs(x);",SZ="return (x >= 0.0) ? x : (exp(x) - 1.0);",TZ=Fa+` return (x < 0.0) ? 0.0 : x; -`,qZ=Fa+` +`,NZ=Fa+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,al="return x;",KZ="return 1.0 / (1.0 + exp(-1.0 * x));",XZ="return x;",YZ=` +`,Ho="return x;",CZ="return 1.0 / (1.0 + exp(-1.0 * x));",_Z="return x;",EZ=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -1205,7 +1205,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,ZZ=` +`,AZ=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1215,7 +1215,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,JZ=` +`,$Z=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1225,7 +1225,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,QZ="return 1.0 / (1.0 + exp(-1.0 * x));",ti=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=An(this.outputShape.length),this.userCode=` +`,FZ="return 1.0 / (1.0 + exp(-1.0 * x));",js=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=Nn(this.outputShape.length),this.userCode=` vec4 unaryOperation(vec4 x) { ${t} } @@ -1236,17 +1236,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},eJ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=An(this.outputShape.length);let t=e.length,n=Tn("rc",t),a=ut(t),r=OZ(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` + `}},DZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=Nn(this.outputShape.length);let t=e.length,n=wn("rc",t),a=gt(t),r=gZ(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` void main() { ${a} rc = getOutputCoords(); vec4 packedInput = getA(${r}); setOutput(getChannel(packedInput, ${i})); } - `}},tJ=gr.whereImpl,nJ=1e-7,aJ=1e-4,Ry={};function rJ(e){return e in Ry||(Ry[e]={}),Ry[e]}var sJ=X().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),iJ=600;function oJ(){return X().global.screen==null?1024:X().global.screen.height*X().global.screen.width*window.devicePixelRatio*iJ/1024/1024}var tg=class extends yc{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,!X().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let t;if(e!=null){if(e instanceof Dh)t=e;else{let n=Ja(X().getNumber("WEBGL_VERSION"),e);t=new Dh(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Ja(X().getNumber("WEBGL_VERSION"));t=new Dh(n),this.binaryCache=rJ(X().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new WZ(this.gpgpu),this.numMBBeforeWarning=oJ(),this.texData=new mm(this,rr())}nextDataId(){return tg.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}write(e,t,n){if((X().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||X().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(X().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 ti(i,al):d=new Cr(i,al);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=C.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 ti(a,al):h=new Cr(a,al);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(X().getBool("DEBUG")&&!X().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&X().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"&&X().get("WEBGL_BUFFER_SUPPORTED")){u=this.decode(e);let h=this.texData.get(u.dataId);l=this.gpgpu.createBufferFromTexture(h.texture.texture,...kh(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=C.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;ge(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)&&rr().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 ti(r,al):c=new Cr(r,al);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=rr().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 Le(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(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(X().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 X().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:v.now(),endMs:null}}endTimer(e){return X().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=v.now(),e)}async getQueryTime(e){if(X().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=sJ){return X().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 rr().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,n),this)}unpackTensor(e){let t=new eJ(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new LZ(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[xi(e.shape),...vi(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[xi(t),...vi(t)],s=new K_(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=$h(r),o;a?o=new GY(i):o=new UY(i);let l=!0,u=[t!=null?t:kh(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===dc.DENSE){let g=s!=null?s:kh(e.outputShape);o.texShape=g.map(b=>b*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 b=this.texData.get(g.dataId);if(b.texture==null){if(!e.packedInputs&&v.sizeFromShape(g.shape)<=X().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:b.values};e.packedInputs&&(b.isPacked=!0,b.shape=g.shape)}if(this.uploadToGPU(g.dataId),!!b.isPacked!=!!e.packedInputs)g=b.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),b=this.texData.get(g.dataId);else if(b.isPacked&&!hc(b.shape,g.shape)){let y=g,x=g.shape;g.shape=b.shape,g=this.packedReshape(g,x),l.push(g),b=this.texData.get(g.dataId),y.shape=x}return{shape:g.shape,texData:b,isUniform:!1}});this.uploadToGPU(i.dataId);let p={shape:i.shape,texData:o,isUniform:!1},d=VY(e,u,p),c=this.getAndSaveBinary(d,()=>WY(this.gpgpu,e,u,p)),h=this.activeTimers!=null,m;h&&(m=this.startTimer()),X().get("ENGINE_COMPILE_ONLY")||BY(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=X().get("WEBGL_FLUSH_THRESHOLD");if(f>0){let g=v.now();g-this.lastGlFlushTime>f&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=g)}if(!X().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||(X().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=O(()=>{if(!X().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=X().getBool("DEBUG");X().set("DEBUG",!1);let t=this.abs(ke(1e-8)).dataSync()[0];if(X().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?nJ:aJ}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=f_(n,o),t.texShape=p),r!=null){let d=$h(n),c,h=p[1],m=p[0],f=r instanceof Uint8Array||r instanceof Uint8ClampedArray;(o||!f)&&([h,m]=qu(p[0],p[1])),o?c=new KY(d,f):c=new qY(d,f);let g=f?[m,h]:p,b=this.makeTensorInfo(g,a),y=this.texData.get(b.dataId);f?y.usage=pa.PIXELS:y.usage=pa.UPLOAD,y.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),h,m,r);let x=[[m,h]],w=!0,I=this.runWebGLProgram(c,[b],a,x,w),N=this.texData.get(I.dataId);t.texShape=N.texShape,t.isPacked=N.isPacked,t.usage=N.usage,X().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(t.texture=N.texture,t.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(b),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=lJ(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 lw(),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?(a1(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}=N_(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}}};tg.nextDataId=0;function lJ(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 tg,2);var pJ={forceHalfFloat:X_},Y_=` + `}},RZ=pr.whereImpl,MZ=1e-7,PZ=1e-4,my={};function OZ(e){return e in my||(my[e]={}),my[e]}var LZ=H().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),zZ=600;function BZ(){return H().global.screen==null?1024:H().global.screen.height*H().global.screen.width*window.devicePixelRatio*zZ/1024/1024}var Ff=class extends nc{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=Ha(H().getNumber("WEBGL_VERSION"),e);t=new ph(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Ha(H().getNumber("WEBGL_VERSION"));t=new ph(n),this.binaryCache=OZ(H().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new xZ(this.gpgpu),this.numMBBeforeWarning=BZ(),this.texData=new Hh(this,Ja())}nextDataId(){return Ff.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}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,Ho):d=new Sr(i,Ho);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,Ho):h=new Sr(a,Ho);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,...Qd(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)&&Ja().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,Ho):c=new Sr(r,Ho);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=Ja().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=LZ){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 Ja().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,n),this)}unpackTensor(e){let t=new DZ(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new bZ(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 F_(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=oh(r),o;a?o=new k7(i):o=new w7(i);let l=!0,u=[t!=null?t:Qd(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===Yp.DENSE){let g=s!=null?s:Qd(e.outputShape);o.texShape=g.map(b=>b*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 b=this.texData.get(g.dataId);if(b.texture==null){if(!e.packedInputs&&v.sizeFromShape(g.shape)<=H().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:b.values};e.packedInputs&&(b.isPacked=!0,b.shape=g.shape)}if(this.uploadToGPU(g.dataId),!!b.isPacked!=!!e.packedInputs)g=b.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),b=this.texData.get(g.dataId);else if(b.isPacked&&!Zp(b.shape,g.shape)){let y=g,x=g.shape;g.shape=b.shape,g=this.packedReshape(g,x),l.push(g),b=this.texData.get(g.dataId),y.shape=x}return{shape:g.shape,texData:b,isUniform:!1}});this.uploadToGPU(i.dataId);let p={shape:i.shape,texData:o,isUniform:!1},d=v7(e,u,p),c=this.getAndSaveBinary(d,()=>y7(this.gpgpu,e,u,p)),h=this.activeTimers!=null,m;h&&(m=this.startTimer()),H().get("ENGINE_COMPILE_ONLY")||x7(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(ye(1e-8)).dataSync()[0];if(H().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?MZ:PZ}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=QC(n,o),t.texShape=p),r!=null){let d=oh(n),c,h=p[1],m=p[0],f=r instanceof Uint8Array||r instanceof Uint8ClampedArray;(o||!f)&&([h,m]=Mu(p[0],p[1])),o?c=new N7(d,f):c=new T7(d,f);let g=f?[m,h]:p,b=this.makeTensorInfo(g,a),y=this.texData.get(b.dataId);f?y.usage=pa.PIXELS:y.usage=pa.UPLOAD,y.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),h,m,r);let x=[[m,h]],w=!0,I=this.runWebGLProgram(c,[b],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(b),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=WZ(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 Vv(),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?(L0(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}=p_(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}}};Ff.nextDataId=0;function WZ(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 Ff,2);var UZ={forceHalfFloat:D_},K0=` if (isnan(a)) return a; if (isnan(b)) return b; -`,El=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=C.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=An(this.outputShape.length),this.userCode=` +`,bl=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=Nn(this.outputShape.length),this.userCode=` float binaryOperation(float a, float b) { ${e} } @@ -1256,17 +1256,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float b = getBAtOutCoords(); setOutput(binaryOperation(a, b)); } - `}},ng=` - result.r = isNaN.r > 0. ? NAN : result.r; - result.g = isNaN.g > 0. ? NAN : result.g; - result.b = isNaN.b > 0. ? NAN : result.b; - result.a = isNaN.a > 0. ? NAN : result.a; -`,gd=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=C.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length;this.enableShapeUniforms=An(r);let s="";if(a)if(r===0||v.sizeFromShape(this.outputShape)===1)s=` + `}},td=` + result.r = isNaN.r ? NAN : result.r; + result.g = isNaN.g ? NAN : result.g; + result.b = isNaN.b ? NAN : result.b; + result.a = isNaN.a ? NAN : result.a; +`,nd=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=N.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length;this.enableShapeUniforms=Nn(r);let s="";if(a)if(r===0||v.sizeFromShape(this.outputShape)===1)s=` result.y = 0.; result.z = 0.; result.w = 0.; `;else if(s=` - ${ut(r)} coords = getOutputCoords(); + ${gt(r)} coords = getOutputCoords(); `,r===1)this.enableShapeUniforms?s+=` result.y = (coords + 1) >= outShape ? 0. : result.y; result.z = 0.; @@ -1275,7 +1275,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y; result.z = 0.; result.w = 0.; - `;else{let i=Tn("coords",r);this.enableShapeUniforms?s+=` + `;else{let i=wn("coords",r);this.enableShapeUniforms?s+=` bool nextRowOutOfBounds = (${i[r-2]} + 1) >= outShape[${r} - 2]; bool nextColOutOfBounds = @@ -1305,21 +1305,13 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function na(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 cJ={kernelName:Vi,backendName:"webgl",kernelFunc:na};function Cs(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=na({inputs:{x:a},backend:n}),l=na({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var dJ={kernelName:wm,backendName:"webgl",kernelFunc:Cs},Z_="return (a < 0.) ? b * a : a;",J_=` + `}};function ta(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 GZ={kernelName:Di,backendName:"webgl",kernelFunc:ta};function Is(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=ta({inputs:{x:a},backend:n}),l=ta({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var HZ={kernelName:Jh,backendName:"webgl",kernelFunc:Is},R_="return (a < 0.) ? b * a : a;",M_=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function hJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",v.createScalarValue(s,"float32")),o=X().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new gd(J_,r.shape,i.shape):new El(Z_,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var mJ={kernelName:Ui,backendName:"webgl",kernelFunc:hJ},Q_="return (a < 0.) ? b * a : a;",eE=` +`;function jZ(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 nd(M_,r.shape,i.shape):new bl(R_,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var qZ={kernelName:Ri,backendName:"webgl",kernelFunc:jZ},P_="return (a < 0.) ? b * a : a;",O_=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function fJ(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=X().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new gd(eE,a.shape,r.shape):new El(Q_,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var gJ={kernelName:no,backendName:"webgl",kernelFunc:fJ},Qu="if (isnan(x)) return x;",bJ=` - if (isnan(a)) return a; - if (isnan(b)) return b; -`,yJ=` - result.r = isNaN.r > 0. ? NAN : result.r; - result.g = isNaN.g > 0. ? NAN : result.g; - result.b = isNaN.b > 0. ? NAN : result.b; - result.a = isNaN.a > 0. ? NAN : result.a; -`;function Ze({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=X().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,p;return u?p=new ti(i.shape,t):p=new Cr(i.shape,e),o.runWebGLProgram(p,[i],l)}}function pn({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,b]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[w,I]=x,N={dataId:w.dataId,dtype:w.dtype,shape:l.shape},_={dataId:I.dataId,dtype:I.dtype,shape:u.shape},$=new El(e,l.shape,u.shape);return p.runWebGLProgram($,[N,_],ha(w.dtype,I.dtype))}),y=Cs({inputs:{real:g,imag:b},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(b),y}let d=s||ha(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"?C.fromUint8ToStringArray(m):m,b=l.dtype==="string"?C.fromUint8ToStringArray(f):f,[y,x]=r(l.shape,u.shape,g,b,d),w=p.makeTensorInfo(x,d),I=p.texData.get(w.dataId);return I.values=y,w}let c=X().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new gd(t,l.shape,u.shape,n):h=new El(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function mc(e,t=!1){if(e==="linear")return t?XZ:GZ;if(e==="relu")return t?ZZ:jZ;if(e==="elu")return t?YZ:HZ;if(e==="relu6")return t?JZ:qZ;if(e==="prelu")return t?eE:Q_;if(e==="leakyrelu")return t?J_:Z_;if(e==="sigmoid")return t?QZ:KZ;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var tE=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=An(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 KZ(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new nd(O_,a.shape,r.shape):new bl(P_,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var XZ={kernelName:qi,backendName:"webgl",kernelFunc:KZ},Wu="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 js(i.shape,t):p=new Sr(i.shape,e),o.runWebGLProgram(p,[i],l)}}function un({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,b]=[[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 bl(e,l.shape,u.shape);return p.runWebGLProgram(E,[T,C],ha(w.dtype,I.dtype))}),y=Is({inputs:{real:g,imag:b},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(b),y}let d=s||ha(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,b=l.dtype==="string"?N.fromUint8ToStringArray(f):f,[y,x]=r(l.shape,u.shape,g,b,d),w=p.makeTensorInfo(x,d),I=p.texData.get(w.dataId);return I.values=y,w}let c=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new nd(t,l.shape,u.shape,n):h=new bl(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function Jp(e,t=!1){if(e==="linear")return t?_Z:IZ;if(e==="relu")return t?AZ:TZ;if(e==="elu")return t?EZ:SZ;if(e==="relu6")return t?$Z:NZ;if(e==="prelu")return t?O_:P_;if(e==="leakyrelu")return t?M_:R_;if(e==="sigmoid")return t?FZ:CZ;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var L_=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=Nn(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) { @@ -1358,7 +1350,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}},cI={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},dI=class{constructor(e,t,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=C.assertAndGetBroadcastShape(t,n),this.userCode=` + `}},Gk={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},Hk=class{constructor(e,t,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.userCode=` float binaryOpComplex( float areal, float aimag, float breal, float bimag) { ${e} @@ -1371,7 +1363,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } - `}},hI="return a * b;";function h1(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=C.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),u=new dI(cI.REAL,a.shape,r.shape),p=new dI(cI.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=Cs({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]=gZ(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 X().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new gd(hI,a.shape,r.shape):i=new El(hI,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var xJ={kernelName:Ji,backendName:"webgl",kernelFunc:h1};function vJ(e,t,n){let a=[xi(e.shape),...vi(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[xi(t),...vi(t)],i=new K_(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 he(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&&!hc(r.shape,l)&&!(p.texture!==null&&hc(p.shape,l))?vJ(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var wJ={kernelName:yu,backendName:"webgl",kernelFunc:he},mI=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=` + `}},jk="return a * b;";function X0(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 Hk(Gk.REAL,a.shape,r.shape),p=new Hk(Gk.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=Is({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]=K7(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 nd(jk,a.shape,r.shape):i=new bl(jk,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var YZ={kernelName:Ui,backendName:"webgl",kernelFunc:X0};function ZZ(e,t,n){let a=[pi(e.shape),...ci(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[pi(t),...ci(t)],i=new F_(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&&!Zp(r.shape,l)&&!(p.texture!==null&&Zp(p.shape,l))?ZZ(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var JZ={kernelName:iu,backendName:"webgl",kernelFunc:de},qk=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; } @@ -1424,7 +1416,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(sumValue); } - `}},kJ=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i="0.0",o="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",o="min"):t==="max"&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");let u=Math.floor(n/4)*4,p=n%4,d=` + `}},QZ=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i="0.0",o="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",o="min"):t==="max"&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");let u=Math.floor(n/4)*4,p=n%4,d=` if (${t==="sum"}) { sumValue += dot(values, ones); } else if (${t==="prod"}) { @@ -1516,12 +1508,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${l}); } - `}};function IJ(e){let t=[];for(;t.length===0||t[t.length-1].outSize!==1;){let n=t.length?t[t.length-1].outSize:e[1],a=C.computeOptimalWindowSize(n);t.push({inSize:n,windowSize:a,outSize:Math.ceil(n/a)})}return t}function $o(e,t,n,a){let r=IJ(e.shape),s=e;for(let i=0;i6)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=ut(this.rank),r=q_("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=$_("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?[b,d,h]:[b,h,d],I=a?[y,m,c]:[y,c,m],N=he({inputs:{x:e},backend:r,attrs:{shape:w}}),_=he({inputs:{x:t},backend:r,attrs:{shape:I}}),$=[N,_],A=Math.max(b,y),M=n?N.shape[1]:N.shape[2],D=s!=null,T=i!=null,P=l==="leakyrelu",U=l!=null?mc(l,!0):null,j=D||T||P||U!=null,q;if((h===1||m===1)&&M>nE&&j===!1){let Y=N,te=_;n&&(Y=Nn({inputs:{x:N},backend:r,attrs:{perm:[0,2,1]}}),$.push(Y)),a&&(te=Nn({inputs:{x:_},backend:r,attrs:{perm:[0,2,1]}}),$.push(te));let re=m!==1,J=m===1,ie=Y;re&&(ie=he({inputs:{x:Y},backend:r,attrs:{shape:[A,M,1]}}),$.push(ie));let ae=m===1?2:1,oe=te;J&&(oe=he({inputs:{x:te},backend:r,attrs:{shape:[A,1,M]}}),$.push(oe));let ue=h1({inputs:{a:ie,b:oe},backend:r});q=rg({inputs:{x:ue},backend:r,attrs:{axis:ae,keepDims:!0}}),$.push(ue)}else{let Y=ha(e.dtype,t.dtype),te=new tE(w,I,[A,h,m],n,a,D,U,T,P),re=[N,_];if(s!=null&&re.push(s),T&&re.push(i),P){let J=r.makeTensorInfo([],"float32",v.createScalarValue(o,"float32"));re.push(J),$.push(J)}q=r.runWebGLProgram(te,re,Y)}let K=he({inputs:{x:q},backend:r,attrs:{shape:x}});$.push(q);for(let Y of $)r.disposeIntermediateTensorInfo(Y);return K}function $J(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 um({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var AJ={kernelName:oi,backendName:"webgl",kernelFunc:$J},fI="return abs(x);";function FJ(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=H_(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return X().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ti(a.shape,fI):r=new Cr(a.shape,fI),n.runWebGLProgram(r,[a],a.dtype)}var DJ={kernelName:Al,backendName:"webgl",kernelFunc:FJ},RJ=Fa+` + `}};function Df(e,t,n){let a=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new aJ(e.shape,t):new tJ(e.shape,t);return n.runWebGLProgram(a,[e],e.dtype)}function rJ(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=Df(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}),b=Nm(e.dtype),y=wo(g,b,"sum",a),x=de({inputs:{x:y},attrs:{shape:h},backend:a});return a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(y),u&&a.disposeIntermediateTensorInfo(p),x}function Rf(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;return rJ(r,s,i,n)}var sJ={kernelName:so,backendName:"webgl",kernelFunc:Rf};function kn(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?[b,d,h]:[b,h,d],I=a?[y,m,c]:[y,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(b,y),R=n?T.shape[1]:T.shape[2],F=s!=null,S=i!=null,M=l==="leakyrelu",W=l!=null?Jp(l,!0):null,U=F||S||M||W!=null,G;if((h===1||m===1)&&R>z_&&U===!1){let K=T,Z=C;n&&(K=kn({inputs:{x:T},backend:r,attrs:{perm:[0,2,1]}}),E.push(K)),a&&(Z=kn({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=X0({inputs:{a:ae,b:le},backend:r});G=Rf({inputs:{x:ie},backend:r,attrs:{axis:te,keepDims:!0}}),E.push(ie)}else{let K=ha(e.dtype,t.dtype),Z=new L_(w,I,[A,h,m],n,a,F,W,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 oJ(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 lJ={kernelName:Js,backendName:"webgl",kernelFunc:oJ},Kk="return abs(x);";function uJ(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=E_(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return H().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new js(a.shape,Kk):r=new Sr(a.shape,Kk),n.runWebGLProgram(r,[a],a.dtype)}var pJ={kernelName:xl,backendName:"webgl",kernelFunc:uJ},cJ=Fa+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,MJ=Ze({opSnippet:RJ}),PJ={kernelName:Fl,backendName:"webgl",kernelFunc:MJ},OJ=Fa+` +`,dJ=Ye({opSnippet:cJ}),hJ={kernelName:vl,backendName:"webgl",kernelFunc:dJ},mJ=Fa+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,LJ=Ze({opSnippet:OJ}),zJ={kernelName:Dl,backendName:"webgl",kernelFunc:LJ},gI="return a + b;",WJ=pn({opSnippet:gI,packedOpSnippet:gI,supportsComplex:!0,cpuKernelImpl:YY}),BJ={kernelName:ms,backendName:"webgl",kernelFunc:WJ},VJ=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));`,fJ=Ye({opSnippet:mJ}),gJ={kernelName:wl,backendName:"webgl",kernelFunc:fJ},Xk="return a + b;",bJ=un({opSnippet:Xk,packedOpSnippet:Xk,supportsComplex:!0,cpuKernelImpl:_7}),yJ={kernelName:ps,backendName:"webgl",kernelFunc:bJ},xJ=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(` `)} @@ -1553,7 +1545,7 @@ return log(x + sqrt(x * x - 1.0));`,LJ=Ze({opSnippet:OJ}),zJ={kernelName:Dl,back float result = ${a}; setOutput(result); } - `}},UJ=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`vec4 v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` + `}},vJ=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`vec4 v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1561,7 +1553,7 @@ return log(x + sqrt(x * x - 1.0));`,LJ=Ze({opSnippet:OJ}),zJ={kernelName:Dl,back vec4 result = ${a}; setOutput(result); } - `}};function Rh(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return na({inputs:{x:a[0]},backend:n});if(a.length>X().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=Rh({inputs:a.slice(0,o),backend:n}),u=Rh({inputs:a.slice(o),backend:n});return Rh({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>ha(o,l)),s=a.map(o=>o.shape),i=X().getBool("WEBGL_PACK")?new UJ(a[0].shape,s):new VJ(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var GJ={kernelName:Ii,backendName:"webgl",kernelFunc:Rh};function HJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=C.getAxesPermutation(u,o),d=r;p!=null&&(d=Nn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=C.getInnerMostAxes(u.length,o)),C.assertAxesAreInnerMostDims("all",u,o);let[c,h]=C.computeOutAndReduceShapes(d.shape,u),m=v.sizeFromShape(h),f=he({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=$o(f,f.dtype,"all",n),b;if(i){let y=C.expandShapeToKeepDim(c,l);b=he({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=he({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var jJ={kernelName:Rl,backendName:"webgl",kernelFunc:HJ};function qJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=C.getAxesPermutation(u,o),d=r;p!=null&&(d=Nn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=C.getInnerMostAxes(u.length,o)),C.assertAxesAreInnerMostDims("any",u,o);let[c,h]=C.computeOutAndReduceShapes(d.shape,u),m=v.sizeFromShape(h),f=he({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=$o(f,f.dtype,"any",n),b;if(i){let y=C.expandShapeToKeepDim(c,l);b=he({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=he({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var KJ={kernelName:Ml,backendName:"webgl",kernelFunc:qJ},XJ=class{constructor(e,t,n){this.variableNames=["A"];let{windowSize:a,batchSize:r,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,s];let i=t==="max"?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` + `}};function ch(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return ta({inputs:{x:a[0]},backend:n});if(a.length>H().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=ch({inputs:a.slice(0,o),backend:n}),u=ch({inputs:a.slice(o),backend:n});return ch({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>ha(o,l)),s=a.map(o=>o.shape),i=H().getBool("WEBGL_PACK")?new vJ(a[0].shape,s):new xJ(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var wJ={kernelName:mi,backendName:"webgl",kernelFunc:ch};function kJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=r;p!=null&&(d=kn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=N.getInnerMostAxes(u.length,o)),N.assertAxesAreInnerMostDims("all",u,o);let[c,h]=N.computeOutAndReduceShapes(d.shape,u),m=v.sizeFromShape(h),f=de({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=wo(f,f.dtype,"all",n),b;if(i){let y=N.expandShapeToKeepDim(c,l);b=de({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=de({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var IJ={kernelName:kl,backendName:"webgl",kernelFunc:kJ};function SJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=r;p!=null&&(d=kn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=N.getInnerMostAxes(u.length,o)),N.assertAxesAreInnerMostDims("any",u,o);let[c,h]=N.computeOutAndReduceShapes(d.shape,u),m=v.sizeFromShape(h),f=de({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=wo(f,f.dtype,"any",n),b;if(i){let y=N.expandShapeToKeepDim(c,l);b=de({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=de({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var TJ={kernelName:Il,backendName:"webgl",kernelFunc:SJ},NJ=class{constructor(e,t,n){this.variableNames=["A"];let{windowSize:a,batchSize:r,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,s];let i=t==="max"?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -1581,14 +1573,14 @@ return log(x + sqrt(x * x - 1.0));`,LJ=Ze({opSnippet:OJ}),zJ={kernelName:Dl,back } setOutput(float(bestIndex)); } - `}},YJ=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,v.assert(e.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let r=e[e.length-1],s=Math.ceil(r/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),a||this.variableNames.push("bestIndicesA");let i=this.outputShape,o=i.length,l=ut(o),u=Tn("coords",o),p,d;if(s===1){d=o+1;let _=ut(d);p=` - ${_} sourceLocR = ${_}(${u.join()}, 0); + `}},CJ=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,v.assert(e.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let r=e[e.length-1],s=Math.ceil(r/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),a||this.variableNames.push("bestIndicesA");let i=this.outputShape,o=i.length,l=gt(o),u=wn("coords",o),p,d;if(s===1){d=o+1;let C=gt(d);p=` + ${C} sourceLocR = ${C}(${u.join()}, 0); ++${u[o-1]}; - ${_} sourceLocG = ${_}(${u.join()}, 0); + ${C} sourceLocG = ${C}(${u.join()}, 0); ++${u[o-2]}; - ${_} sourceLocA = ${_}(${u.join()}, 0); + ${C} sourceLocA = ${C}(${u.join()}, 0); --${u[o-1]}; - ${_} sourceLocB = ${_}(${u.join()}, 0); + ${C} sourceLocB = ${C}(${u.join()}, 0); --${u[o-2]};`}else d=o,p=` ${l} sourceLocR = coords; ++${u[o-1]}; @@ -1597,7 +1589,7 @@ return log(x + sqrt(x * x - 1.0));`,LJ=Ze({opSnippet:OJ}),zJ={kernelName:Dl,back ${l} sourceLocA = coords; --${u[o-1]}; ${l} sourceLocB = coords; - --${u[o-2]};`;let c=["x","y","z","w","u","v"].slice(0,d),h="."+c[d-1],m=c.map(_=>"int "+_),f=Tn("sourceLocR",d-1).concat("inIdx.r"),g=Tn("sourceLocG",d-1).concat("inIdx.g"),b=Tn("sourceLocB",d-1).concat("inIdx.b"),y=Tn("sourceLocA",d-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",w=a?"":` + --${u[o-2]};`;let c=["x","y","z","w","u","v"].slice(0,d),h="."+c[d-1],m=c.map(C=>"int "+C),f=wn("sourceLocR",d-1).concat("inIdx.r"),g=wn("sourceLocG",d-1).concat("inIdx.g"),b=wn("sourceLocB",d-1).concat("inIdx.b"),y=wn("sourceLocA",d-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",w=a?"":` inIdx = round(vec4(getBestIndicesAChannel(${f.join()}), getBestIndicesAChannel(${g.join()}), getBestIndicesAChannel(${b.join()}), @@ -1605,7 +1597,7 @@ return log(x + sqrt(x * x - 1.0));`,LJ=Ze({opSnippet:OJ}),zJ={kernelName:Dl,back getAChannel(${f.join()}), hasNextCol ? getAChannel(${g.join()}) : 0., hasNextRow ? getAChannel(${b.join()}) : 0., - hasNextRow && hasNextCol ? getAChannel(${y.join()}) : 0.)`,N=a?"":` + hasNextRow && hasNextCol ? getAChannel(${y.join()}) : 0.)`,T=a?"":` float getBestIndicesAChannel(${m.join()}) { return getChannel(getBestIndicesA(${c.join()}), vec2(${c.slice(-2).join()})); @@ -1614,7 +1606,7 @@ return log(x + sqrt(x * x - 1.0));`,LJ=Ze({opSnippet:OJ}),zJ={kernelName:Dl,back return getChannel(getA(${c.join()}), vec2(${c.slice(-2).join()})); } - ${N} + ${T} void main() { ${l} coords = getOutputCoords(); bool hasNextCol = ${u[o-1]} < ${i[o-1]-1}; @@ -1643,23 +1635,25 @@ return log(x + sqrt(x * x - 1.0));`,LJ=Ze({opSnippet:OJ}),zJ={kernelName:Dl,back } setOutput(bestIndex); } - `}};function aE(e,t,n,a=null){let r=t.shape[0],s=t.shape[1];a!=null&&(r=a.shape[0],s=a.shape[1]);let i=C.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new XJ(o,n,a==null),u=[t];a!=null&&u.push(a);let p=e.runWebGLProgram(l,u,"int32");if(p.shape[1]===1)return p;let d=aE(e,t,n,p);return e.disposeIntermediateTensorInfo(p),d}function rE(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=C.computeOptimalWindowSize(s),o=new YJ(r,i,n,a==null),l=a==null?[t]:[t,a],u=e.runWebGLProgram(o,l,"int32");if(u.shape.length===t.shape.length){let p=rE(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}return u}function sE(e,t,n,a){let r=[n];if(C.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!X().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=e.texData.get(t.dataId),o=i!==null&&i.isPacked,l=t;o&&(l=e.unpackTensor(t),s.push(l));let[u,p]=C.computeOutAndReduceShapes(l.shape,r),d=v.sizeFromShape(p),c=he({inputs:{x:l},backend:e,attrs:{shape:[-1,d]}});s.push(c);let h=aE(e,c,a);s.push(h);let m=he({inputs:{x:h},backend:e,attrs:{shape:u}});return s.forEach(f=>e.disposeIntermediateTensorInfo(f)),m}return rE(e,t,a)}function ZJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=v.parseAxisParam(s,r.shape),o=C.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Nn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=C.getInnerMostAxes(i.length,l.shape.length)),C.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let p=sE(n,l,i[0],"max");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var JJ={kernelName:Ti,backendName:"webgl",kernelFunc:ZJ};function QJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=v.parseAxisParam(s,r.shape),o=C.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Nn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=C.getInnerMostAxes(i.length,l.shape.length)),C.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let p=sE(n,l,i[0],"min");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var e9={kernelName:xc,backendName:"webgl",kernelFunc:QJ},t9=Fa+` + `}};function B_(e,t,n,a=null){let r=t.shape[0],s=t.shape[1];a!=null&&(r=a.shape[0],s=a.shape[1]);let i=N.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new NJ(o,n,a==null),u=[t];a!=null&&u.push(a);let p=e.runWebGLProgram(l,u,"int32");if(p.shape[1]===1)return p;let d=B_(e,t,n,p);return e.disposeIntermediateTensorInfo(p),d}function W_(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=N.computeOptimalWindowSize(s),o=new CJ(r,i,n,a==null),l=a==null?[t]:[t,a],u=e.runWebGLProgram(o,l,"int32");if(u.shape.length===t.shape.length){let p=W_(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}return u}function V_(e,t,n,a){let r=[n];if(N.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!H().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=e.texData.get(t.dataId),o=i!==null&&i.isPacked,l=t;o&&(l=e.unpackTensor(t),s.push(l));let[u,p]=N.computeOutAndReduceShapes(l.shape,r),d=v.sizeFromShape(p),c=de({inputs:{x:l},backend:e,attrs:{shape:[-1,d]}});s.push(c);let h=B_(e,c,a);s.push(h);let m=de({inputs:{x:h},backend:e,attrs:{shape:u}});return s.forEach(f=>e.disposeIntermediateTensorInfo(f)),m}return W_(e,t,a)}function _J(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=kn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let p=V_(n,l,i[0],"max");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var EJ={kernelName:fi,backendName:"webgl",kernelFunc:_J};function AJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=kn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let p=V_(n,l,i[0],"min");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var $J={kernelName:ac,backendName:"webgl",kernelFunc:AJ},FJ=Fa+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,n9=Ze({opSnippet:t9}),a9={kernelName:Pl,backendName:"webgl",kernelFunc:n9},r9=Fa+"return log(x + sqrt(x * x + 1.0));",s9=Ze({opSnippet:r9}),i9={kernelName:Ol,backendName:"webgl",kernelFunc:s9},o9=Fa+` +`,DJ=Ye({opSnippet:FJ}),RJ={kernelName:Sl,backendName:"webgl",kernelFunc:DJ},MJ=Fa+"return log(x + sqrt(x * x + 1.0));",PJ=Ye({opSnippet:MJ}),OJ={kernelName:Tl,backendName:"webgl",kernelFunc:PJ},LJ=Fa+` return atan(x); -`,l9=Ze({opSnippet:o9}),u9={kernelName:Ll,backendName:"webgl",kernelFunc:l9},p9=bJ+` +`,zJ=Ye({opSnippet:LJ}),BJ={kernelName:Nl,backendName:"webgl",kernelFunc:zJ},WJ=K0+` return atan(a, b); -`,c9=` +`,VJ=` vec4 result = atan(a, b); - vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); - `+yJ+` + bvec4 isNaNA = isnan(a); + bvec4 isNaNB = isnan(b); + bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); + `+td+` return result; -`,d9=pn({opSnippet:p9,packedOpSnippet:c9}),h9={kernelName:Wl,backendName:"webgl",kernelFunc:d9},m9=Fa+` +`,UJ=un({opSnippet:WJ,packedOpSnippet:VJ}),GJ={kernelName:_l,backendName:"webgl",kernelFunc:UJ},HJ=Fa+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelName:zl,backendName:"webgl",kernelFunc:f9},fc=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`,b="0.0";if(m||(b="-1.0 / 1e-20"),n){let _=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,jJ=Ye({opSnippet:HJ}),qJ={kernelName:Cl,backendName:"webgl",kernelFunc:jJ},Qp=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`,b="0.0";if(m||(b="-1.0 / 1e-20"),n){let C=">=";this.userCode=` const ivec2 strides = ivec2(${i}, ${o}); const ivec2 pads = ivec2(${c}, ${h}); @@ -1701,7 +1695,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam // use the current value. float currMinMaxValue = mix( value, minMaxValue, minMaxValueFound); - if (value ${_} currMinMaxValue) { + if (value ${C} currMinMaxValue) { minMaxValue = value; minMaxValueFound = 1.0; minMaxPosition = ${a?r?f:g:`wR * ${d} + wC`}; @@ -1710,7 +1704,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam } setOutput(float(minMaxPosition)); } - `;return}let y="max",x=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(x="avgValue / count");let w=Math.floor(s/4)*4,I=s%4,N=` + `;return}let y="max",x=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(x="avgValue / count");let w=Math.floor(s/4)*4,I=s%4,T=` if (${m}) { avgValue += dot(values, ones); } else { @@ -1765,7 +1759,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam getValue(batch, xR, xC + 3 * ${u}, d) ); - ${N} + ${T} } int xC = xCCorner + ${w}; @@ -1777,7 +1771,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam initializationValue ); - ${N} + ${T} } else if (${I===2}) { vec4 values = vec4( getValue(batch, xR, xC, d), @@ -1786,7 +1780,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam initializationValue ); - ${N} + ${T} } else if (${I===3}) { vec4 values = vec4( getValue(batch, xR, xC, d), @@ -1795,12 +1789,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam initializationValue ); - ${N} + ${T} } } setOutput(${x}); } - `}},m1=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,b=e.padInfo.left;this.outputShape=e.outShape;let y=t==="avg",x="0.0";if(y||(x="-1.0 / 1e-20"),n){let A=">=";this.userCode=` + `}},Y0=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,b=e.padInfo.left;this.outputShape=e.outShape;let y=t==="avg",x="0.0";if(y||(x="-1.0 / 1e-20"),n){let A=">=";this.userCode=` const ivec3 strides = ivec3(${i}, ${o}, ${l}); const ivec3 pads = ivec3(${f}, ${g}, ${b}); @@ -1862,7 +1856,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam } setOutput(float(minMaxPosition)); } - `;return}let w="max",I=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(I="avgValue / count");let N=Math.floor(s/4)*4,_=s%4,$=` + `;return}let w="max",I=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(I="avgValue / count");let T=Math.floor(s/4)*4,C=s%4,E=` if (${y}) { avgValue += dot(values, ones); } else { @@ -1917,7 +1911,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam continue; } - for (int wC = 0; wC < ${N}; wC += 4) { + for (int wC = 0; wC < ${T}; wC += 4) { int xC = xCCorner + wC * ${d}; vec4 values = vec4( @@ -1927,11 +1921,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam getValue(batch, xD, xR, xC + 3 * ${d}, ch) ); - ${$} + ${E} } - int xC = xCCorner + ${N}; - if (${_===1}) { + int xC = xCCorner + ${T}; + if (${C===1}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), initializationValue, @@ -1939,8 +1933,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam initializationValue ); - ${$} - } else if (${_===2}) { + ${E} + } else if (${C===2}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), getValue(batch, xD, xR, xC + ${d}, ch), @@ -1948,8 +1942,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam initializationValue ); - ${$} - } else if (${_===3}) { + ${E} + } else if (${C===3}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), getValue(batch, xD, xR, xC + ${d}, ch), @@ -1957,13 +1951,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam initializationValue ); - ${$} + ${E} } } setOutput(${I}); } } - `}};function b9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;Ku(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(C.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=C.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))return na({inputs:{x:r},backend:n});let d=new fc(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var y9={kernelName:Si,backendName:"webgl",kernelFunc:b9};function x9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=[1,1,1],d=C.computePool3DInfo(r.shape,s,i,p,o,l,u),c=new m1(d,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}var v9={kernelName:vc,backendName:"webgl",kernelFunc:x9},w9=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,u=o-1-e.padInfo.top,p=l-1-e.padInfo.left,d=1/(t*n);this.userCode=` + `}};function KJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;Pu(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);if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))return ta({inputs:{x:r},backend:n});let d=new Qp(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var XJ={kernelName:gi,backendName:"webgl",kernelFunc:KJ};function YJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=[1,1,1],d=N.computePool3DInfo(r.shape,s,i,p,o,l,u),c=new Y0(d,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}var ZJ={kernelName:rc,backendName:"webgl",kernelFunc:YJ},JJ=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,u=o-1-e.padInfo.top,p=l-1-e.padInfo.left,d=1/(t*n);this.userCode=` const ivec2 pads = ivec2(${u}, ${p}); const float avgMultiplier = float(${d}); @@ -2005,7 +1999,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam } setOutput(dotProd); } - `}},k9=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterDepth,d=e.effectiveFilterHeight,c=e.effectiveFilterWidth,h=p-1-e.padInfo.front,m=d-1-e.padInfo.top,f=c-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` + `}},QJ=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterDepth,d=e.effectiveFilterHeight,c=e.effectiveFilterWidth,h=p-1-e.padInfo.front,m=d-1-e.padInfo.top,f=c-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` const ivec3 pads = ivec3(${h}, ${m}, ${f}); const float avgMultiplier = float(${g}); @@ -2061,7 +2055,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam } setOutput(dotProd); } - `}};function I9(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=C.computePool3DInfo(i.shape,o,l,d,u,p),h=new k9(c);return n.runWebGLProgram(h,[r],i.dtype)}var T9={kernelName:ym,backendName:"webgl",kernelFunc:I9};function S9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;Ku([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=C.computePool2DInfo(i.shape,o,l,1,u),d=new w9(p);return n.runWebGLProgram(d,[r],i.dtype)}var N9={kernelName:bm,backendName:"webgl",kernelFunc:S9};function C9(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return um({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var _9={kernelName:Ni,backendName:"webgl",kernelFunc:C9},E9=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],C.assertAndGetBroadcastShape(e,t),C.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(C.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(C.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}};function e9(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 QJ(c);return n.runWebGLProgram(h,[r],i.dtype)}var t9={kernelName:Xh,backendName:"webgl",kernelFunc:e9};function n9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;Pu([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=new JJ(p);return n.runWebGLProgram(d,[r],i.dtype)}var a9={kernelName:Kh,backendName:"webgl",kernelFunc:n9};function r9(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return Bh({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var s9={kernelName:bi,backendName:"webgl",kernelFunc:r9},i9=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(); @@ -2071,7 +2065,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam float inv = scale * inversesqrt(variance + float(${s})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}},$9=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],C.assertAndGetBroadcastShape(e,t),C.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(C.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(C.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}},o9=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(N.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(N.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { vec4 offset = ${i}; vec4 scale = ${o}; @@ -2084,7 +2078,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam setOutput((x - mean) * inv + offset); } - `}},A9=({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=X().getBool("WEBGL_PACK_NORMALIZATION")?new $9(a.shape,r.shape,s.shape,p,d,l):new E9(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},F9={kernelName:Wi,backendName:"webgl",kernelFunc:A9},D9=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=ut(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=R9(this.rank),a,r=e.map((s,i)=>`sourceLoc.${_x[i]} = start[${i}] + coords.${_x[i]};`);a=` + `}},l9=({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 o9(a.shape,r.shape,s.shape,p,d,l):new i9(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},u9={kernelName:$i,backendName:"webgl",kernelFunc:l9},p9=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.${lx[i]} = start[${i}] + coords.${lx[i]};`);a=` ${t} sourceLoc; ${t} coords = getOutputCoords(); ${r.join(` @@ -2094,7 +2088,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam ${a} setOutput(getSource(${n})); } - `}},_x=["x","y","z","w","u","v"];function R9(e){if(e===1)return"sourceLoc";if(e<=6)return _x.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var M9=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let t=ut(this.rank),n=Tn("coords",this.rank),a=Tn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` + `}},lx=["x","y","z","w","u","v"];function c9(e){if(e===1)return"sourceLoc";if(e<=6)return lx.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var d9=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let t=gt(this.rank),n=wn("coords",this.rank),a=wn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` result.x = ${s}; if (++${n[this.rank-1]} < ${e[this.rank-1]}) { ++${a[this.rank-1]}; @@ -2123,7 +2117,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam ${o} setOutput(result); } - `}};function P9(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=qt.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 ep(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=qt.parseSliceParams(r,s,i);if(qt.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=SZ(d.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}let{isPacked:u}=n.texData.get(r.dataId),p=qt.isSliceContinous(r.shape,o,l);if(u||!p){let d=X().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new M9(l):new D9(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),P9(r,o,l,n)}var O9={kernelName:ku,backendName:"webgl",kernelFunc:ep},L9=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((y,x)=>y*x),l=C.getReshaped(r.shape,s,o),u=C.getPermuted(l.length,s.length),p=C.getReshapedPermuted(r.shape,s,o),d=C.getSliceBeginCoords(i,s.length),c=C.getSliceSize(p,i,s.length),h=[],m=he({inputs:{x:r},backend:n,attrs:{shape:l}}),f=Nn({inputs:{x:m},backend:n,attrs:{perm:u}}),g=he({inputs:{x:f},backend:n,attrs:{shape:p}}),b=ep({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(y=>n.disposeIntermediateTensorInfo(y)),b},z9={kernelName:Bl,backendName:"webgl",kernelFunc:L9};function W9(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=G_(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var B9={kernelName:xm,backendName:"webgl",kernelFunc:W9};function V9(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.readSync(a.dataId),i=n.readSync(r.dataId),o=C.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var U9={kernelName:vm,backendName:"webgl",kernelFunc:V9},G9="return float(a != b);",iE=pn({opSnippet:G9,cpuKernelImpl:yZ,dtype:"bool"}),H9={kernelName:cu,backendName:"webgl",kernelFunc:iE};function bd(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 j9={kernelName:Bm,backendName:"webgl",kernelFunc:bd},q9="return float(int(x));";function K9(e,t){let n=new Cr(e.shape,q9),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function Ex(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=Ex({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Cs({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=bd({inputs:{input:r},backend:n}),o=Ex({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]=JY(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return K9(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",v.getTypedArrayFromDType("bool",1)),o=iE({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 X9={kernelName:Ci,backendName:"webgl",kernelFunc:Ex},bI="return ceil(x);",Y9=Ze({opSnippet:bI,packedOpSnippet:bI,cpuKernelImpl:QY}),Z9={kernelName:_i,backendName:"webgl",kernelFunc:Y9},J9=class{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + `}};function h9(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 Vu(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=rZ(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 d9(l):new p9(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),h9(r,o,l,n)}var m9={kernelName:pu,backendName:"webgl",kernelFunc:Vu},f9=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((y,x)=>y*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=kn({inputs:{x:m},backend:n,attrs:{perm:u}}),g=de({inputs:{x:f},backend:n,attrs:{shape:p}}),b=Vu({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(y=>n.disposeIntermediateTensorInfo(y)),b},g9={kernelName:El,backendName:"webgl",kernelFunc:f9};function b9(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,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var y9={kernelName:Yh,backendName:"webgl",kernelFunc:b9};function x9(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 v9={kernelName:Zh,backendName:"webgl",kernelFunc:x9},w9="return float(a != b);",U_=un({opSnippet:w9,cpuKernelImpl:Y7,dtype:"bool"}),k9={kernelName:Ql,backendName:"webgl",kernelFunc:U_};function ad(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return ta({inputs:{x:r.complexTensorInfos.real},backend:n})}var I9={kernelName:xm,backendName:"webgl",kernelFunc:ad},S9="return float(int(x));";function T9(e,t){let n=new Sr(e.shape,S9),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function ux(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return ta({inputs:{x:r},backend:n});let i=It(r.shape),o=ux({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=ad({inputs:{input:r},backend:n}),o=ux({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!v.hasEncodingLoss(r.dtype,s)){let i=ta({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]=A7(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return T9(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",v.getTypedArrayFromDType("bool",1)),o=U_({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 N9={kernelName:yi,backendName:"webgl",kernelFunc:ux},Yk="return ceil(x);",C9=Ye({opSnippet:Yk,packedOpSnippet:Yk,cpuKernelImpl:$7}),_9={kernelName:xi,backendName:"webgl",kernelFunc:C9},E9=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(); @@ -2134,7 +2128,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam setOutput(clamp(value, minVal, maxVal)); } - `}},Q9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + `}},A9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` void main() { vec4 value = getAAtOutCoords(); @@ -2145,7 +2139,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}};function eQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;X().getBool("WEBGL_PACK_CLIP")?o=new Q9(r.shape):o=new J9(r.shape);let l=[[s],[i]];return n.runWebGLProgram(o,[r],r.dtype,l)}var tQ={kernelName:fs,backendName:"webgl",kernelFunc:eQ},nQ=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + `}};function $9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;H().getBool("WEBGL_PACK_CLIP")?o=new A9(r.shape):o=new E9(r.shape);let l=[[s],[i]];return n.runWebGLProgram(o,[r],r.dtype,l)}var F9={kernelName:cs,backendName:"webgl",kernelFunc:$9},D9=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -2158,7 +2152,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function yI(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}function aQ(e){let{inputs:t,backend:n}=e,{x:a}=t,r=n.texData.get(a.dataId),s=new nQ(a.shape),i=[yI(a,r.complexTensorInfos.real),yI(a,r.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}var rQ={kernelName:wc,backendName:"webgl",kernelFunc:aQ},sQ=class{constructor(e){this.outputShape=[],this.outputShape=C.computeOutShape(e,1),this.variableNames=e.map((s,i)=>`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let s=1;s`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let s=1;s`T${f}`);let o=new Array(e.length-1);o[0]=e[0][t];for(let m=1;m`T${f}`);let o=new Array(e.length-1);o[0]=e[0][t];for(let m=1;m= ${o[m-1]}) { return getChannel( - getT${m}(${Th(i,l,f)}), - vec2(${Th(u,l,f)})); + getT${m}(${th(i,l,f)}), + vec2(${th(u,l,f)})); }`}let c=o.length,h=o[o.length-1];d+=` return getChannel( - getT${c}(${Th(i,l,h)}), - vec2(${Th(u,l,h)}));`,this.userCode=` + getT${c}(${th(i,l,h)}), + vec2(${th(u,l,h)}));`,this.userCode=` float getValue(${i.map(m=>"int "+m)}) { ${d} } @@ -2204,7 +2198,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam } setOutput(result); } - `}};function Th(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function sg(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 oQ={kernelName:Dm,backendName:"webgl",kernelFunc:sg};function Xp(e,t,n){let a=e[0].dtype;if(a==="complex64"){let d=e.map(g=>bd({inputs:{input:g},backend:n})),c=e.map(g=>sg({inputs:{input:g},backend:n})),h=Xp(d,t,n),m=Xp(c,t,n),f=Cs({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(y=>{let x=v.sizeFromShape(y.shape.slice(t));return he({inputs:{x:y},backend:n,attrs:{shape:[-1,x]}})}),c=d.map(y=>({vals:n.readSync(y.dataId),shape:y.shape})),h=C.computeOutShape(d.map(y=>y.shape),1),m=d[0].shape[0]===1,f=eZ(c,h,a,m),g=C.computeOutShape(e.map(y=>y.shape),t),b=n.makeTensorInfo(g,a,f);return d.forEach(y=>n.disposeIntermediateTensorInfo(y)),b}let s=X().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(e.length>s){let d=[];for(let h=0;h1){let d=new iQ(e.map(c=>c.shape),t);return n.runWebGLProgram(d,e,a)}let{tensors2D:i,outShape:o}=lQ(e,t,n),l=new sQ(i.map(d=>d.shape)),u=n.runWebGLProgram(l,i,a);i.forEach(d=>n.disposeIntermediateTensorInfo(d));let p=he({inputs:{x:u},attrs:{shape:o},backend:n});return n.disposeIntermediateTensorInfo(u),p}function lQ(e,t,n){let a=C.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>he({inputs:{x:r},attrs:{shape:[-1,v.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function oE(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=v.parseAxisParam(r,t[0].shape)[0],i=C.computeOutShape(t.map(u=>u.shape),s);if(v.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(u=>v.sizeFromShape(u.shape)>0);if(o.length===1)return na({inputs:{x:o[0]},backend:n});let l=o.map(u=>u.shape);return C.assertParamsConsistent(l,s),Xp(o,s,n)}var uQ={kernelName:Vl,backendName:"webgl",kernelFunc:oE},lE=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,b=f?2:3,y=f?3:1,x="",w="";n&&(a?x=`float activation(float a) { + `}};function th(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function Mf(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return ta({inputs:{x:r.complexTensorInfos.imag},backend:n})}var L9={kernelName:pm,backendName:"webgl",kernelFunc:Mf};function Dp(e,t,n){let a=e[0].dtype;if(a==="complex64"){let d=e.map(g=>ad({inputs:{input:g},backend:n})),c=e.map(g=>Mf({inputs:{input:g},backend:n})),h=Dp(d,t,n),m=Dp(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(y=>{let x=v.sizeFromShape(y.shape.slice(t));return de({inputs:{x:y},backend:n,attrs:{shape:[-1,x]}})}),c=d.map(y=>({vals:n.readSync(y.dataId),shape:y.shape})),h=N.computeOutShape(d.map(y=>y.shape),1),m=d[0].shape[0]===1,f=F7(c,h,a,m),g=N.computeOutShape(e.map(y=>y.shape),t),b=n.makeTensorInfo(g,a,f);return d.forEach(y=>n.disposeIntermediateTensorInfo(y)),b}let s=H().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(e.length>s){let d=[];for(let h=0;h1){let d=new O9(e.map(c=>c.shape),t);return n.runWebGLProgram(d,e,a)}let{tensors2D:i,outShape:o}=z9(e,t,n),l=new P9(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 z9(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 G_(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?ta({inputs:{x:l[0]},backend:n}):Dp(l,s,n)}var B9={kernelName:Al,backendName:"webgl",kernelFunc:G_},H_=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,b=f?2:3,y=f?3:1,x="",w="";n&&(a?x=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?x=`float activation(float a) { @@ -2338,7 +2332,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam ${w} setOutput(result); } - `}},pQ=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,n=e.padInfo.top,a=e.padInfo.left,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,p=e.filterDepth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` + `}},W9=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,n=e.padInfo.top,a=e.padInfo.left,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,p=e.filterDepth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` const ivec3 strides = ivec3(${r}, ${s}, ${i}); const ivec3 pads = ivec3(${t}, ${n}, ${a}); @@ -2426,7 +2420,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam } setOutput(dotProd); } - `}},uE=class{constructor(e,t=!1,n=null,a=!1,r=!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=e.outShape,this.enableShapeUniforms=An(this.outputShape.length);let s=e.padInfo.left,i=e.strideWidth,o=e.dilationWidth,l=e.filterHeight,u=e.filterWidth,p=u,d=` + `}},j_=class{constructor(e,t=!1,n=null,a=!1,r=!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=e.outShape,this.enableShapeUniforms=Nn(this.outputShape.length);let s=e.padInfo.left,i=e.strideWidth,o=e.dilationWidth,l=e.filterHeight,u=e.filterWidth,p=u,d=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let f=0;f=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 pE({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,b=[];if(s!=null){let y=pm(s.shape,h);y!=null&&(s=he({inputs:{x:s},backend:a,attrs:{shape:y}}),b.push(s))}if(r!=null){let y=pm(r.shape,h);y!=null&&(r=he({inputs:{x:r},backend:a,attrs:{shape:y}}),b.push(r))}if(!((d===1||c===1)&&p>nE)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&v.arraysEqual(u.shape.slice(-3),l.slice(-3))){let y=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,y,n.inChannels],dtype:e.dtype},w=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,v.assert(hc(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=he({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});b.push(I);let N=um({a:x,b:I,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),_=a.texData.get(N.dataId);v.assert(_.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=w,_.shape=n.outShape,g=na({inputs:{x:N},backend:a}),g.shape=n.outShape,b.push(N)}else{let y=n.outHeight*n.outWidth,x=he({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,y,n.inChannels]:[n.batchSize,n.inChannels,y]}}),w=he({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=um({a:h?x:w,b:h?w:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=he({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),b.push(x),b.push(w),b.push(I)}for(let y of b)a.disposeIntermediateTensorInfo(y);return g}function cE({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,b=[n.batchSize,f,g],y=!0,x=!1,w=[];if(s!=null){let Y=pm(s.shape,m);Y!=null&&(s=he({inputs:{x:s},backend:a,attrs:{shape:Y}}),w.push(s))}if(r!=null){let Y=pm(r.shape,m);Y!=null&&(r=he({inputs:{x:r},backend:a,attrs:{shape:Y}}),w.push(r))}let I=he({inputs:{x:t},backend:a,attrs:{shape:[1,f,v.sizeFromShape(t.shape)/f]}});w.push(I);let N=new cQ(b,n),_=[e.shape,[n.padInfo.top,n.padInfo.left],[n.strideHeight,n.strideWidth],[n.dilationHeight,n.dilationWidth],[n.inChannels],[n.filterWidth*n.inChannels],[n.outWidth]],$=a.runWebGLProgram(N,[e],"float32",_),A=he({inputs:{x:$},backend:a,attrs:{shape:b}});w.push($),w.push(A);let M=r!=null,D=s!=null,T=o==="leakyrelu",P=o?mc(o,!0):null,U=new tE(m?A.shape:I.shape,m?I.shape:A.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],y,x,M,P,D,T),j=m?[A,I]:[I,A];if(r&&j.push(r),D&&j.push(s),T){let Y=a.makeTensorInfo([],"float32",v.createScalarValue(i,"float32"));j.push(Y),w.push(Y)}let q=a.runWebGLProgram(U,j,"float32"),K=he({inputs:{x:q},backend:a,attrs:{shape:n.outShape}});w.push(q);for(let Y of w)a.disposeIntermediateTensorInfo(Y);return K}function dQ(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=C.convertConv2DDataFormat(l),c=C.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=pE({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&X().getBool("WEBGL_EXP_CONV")){let f=new uE(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(X().getBool("WEBGL_CONV_IM2COL"))h=cE({x:r,filter:s,convInfo:c,backend:n});else{let f=new lE(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=he({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var hQ={kernelName:Ei,backendName:"webgl",kernelFunc:dQ},mQ=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 Wh(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 q_({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,b=[];if(s!=null){let y=Wh(s.shape,h);y!=null&&(s=de({inputs:{x:s},backend:a,attrs:{shape:y}}),b.push(s))}if(r!=null){let y=Wh(r.shape,h);y!=null&&(r=de({inputs:{x:r},backend:a,attrs:{shape:y}}),b.push(r))}if(!((d===1||c===1)&&p>z_)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&v.arraysEqual(u.shape.slice(-3),l.slice(-3))){let y=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,y,n.inChannels],dtype:e.dtype},w=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,v.assert(Zp(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]}});b.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=ta({inputs:{x:T},backend:a}),g.shape=n.outShape,b.push(T)}else{let y=n.outHeight*n.outWidth,x=de({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,y,n.inChannels]:[n.batchSize,n.inChannels,y]}}),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}}),b.push(x),b.push(w),b.push(I)}for(let y of b)a.disposeIntermediateTensorInfo(y);return g}function K_({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,b=[n.batchSize,f,g],y=!0,x=!1,w=[];if(s!=null){let K=Wh(s.shape,m);K!=null&&(s=de({inputs:{x:s},backend:a,attrs:{shape:K}}),w.push(s))}if(r!=null){let K=Wh(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 V9(b,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:b}});w.push(E),w.push(A);let R=r!=null,F=s!=null,S=o==="leakyrelu",M=o?Jp(o,!0):null,W=new L_(m?A.shape:I.shape,m?I.shape:A.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],y,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(W,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 U9(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=q_({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let f=new j_(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=K_({x:r,filter:s,convInfo:c,backend:n});else{let f=new H_(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 G9={kernelName:vi,backendName:"webgl",kernelFunc:U9},H9=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; @@ -2711,7 +2705,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam } setOutput(dotProd); } - `}},fQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,u=s?2:3,p=s?3:1;this.userCode=` + `}},j9=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,u=s?2:3,p=s?3:1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { @@ -2764,7 +2758,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam } setOutput(dotProd); } - `}},gQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=` + `}},q9=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=` void main() { ivec5 coords = getOutputCoords(); int wF = coords.x; @@ -2806,7 +2800,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam } setOutput(dotProd); } - `}},bQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,u=a-1-e.padInfo.left;this.userCode=` + `}},K9=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,u=a-1-e.padInfo.left;this.userCode=` const ivec3 pads = ivec3(${o}, ${l}, ${u}); void main() { @@ -2863,12 +2857,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam } setOutput(dotProd); } - `}};function yQ(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=C.convertConv2DDataFormat(l),c=C.computeConv2DInfo(r.shape,p,i,1,o,u,!1,d),h=new mQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var xQ={kernelName:km,backendName:"webgl",kernelFunc:yQ};function vQ(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=C.convertConv2DDataFormat(u),c=C.computeConv2DInfo(i,s.shape,o,1,l,p,!1,d),h=new fQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var wQ={kernelName:$i,backendName:"webgl",kernelFunc:vQ};function kQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=C.computeConv3DInfo(r.shape,s.shape,i,l,o),p=new pQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var IQ={kernelName:kc,backendName:"webgl",kernelFunc:kQ};function TQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,u=C.computeConv3DInfo(r.shape,l,i,1,o),p=new gQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var SQ={kernelName:Im,backendName:"webgl",kernelFunc:TQ};function NQ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,u=C.computeConv3DInfo(l,s.shape,o,1,i),p=new bQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var CQ={kernelName:Tm,backendName:"webgl",kernelFunc:NQ},_Q=Qu+` + `}};function X9(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 H9(c);return n.runWebGLProgram(h,[r,s],"float32")}var Y9={kernelName:Qh,backendName:"webgl",kernelFunc:X9};function Z9(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 j9(c);return n.runWebGLProgram(h,[r,s],"float32")}var J9={kernelName:wi,backendName:"webgl",kernelFunc:Z9};function Q9(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 W9(u);return n.runWebGLProgram(p,[r,s],"float32")}var eQ={kernelName:ic,backendName:"webgl",kernelFunc:Q9};function tQ(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 q9(u);return n.runWebGLProgram(p,[r,s],"float32")}var nQ={kernelName:em,backendName:"webgl",kernelFunc:tQ};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 K9(u);return n.runWebGLProgram(p,[r,s],"float32")}var rQ={kernelName:tm,backendName:"webgl",kernelFunc:aQ},sQ=Wu+` return cos(x); -`,EQ=Ze({opSnippet:_Q}),$Q={kernelName:Ai,backendName:"webgl",kernelFunc:EQ},AQ=` +`,iQ=Ye({opSnippet:sQ}),oQ={kernelName:ki,backendName:"webgl",kernelFunc:iQ},lQ=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,FQ=Ze({opSnippet:AQ}),DQ={kernelName:Fi,backendName:"webgl",kernelFunc:FQ},RQ=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[u]=t,[p,d]=n;this.outputShape=[u,p,d,l];let c=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,b]=p>1?[`${(i-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[y,x,w]=d>1?[`${(o-1)/(d-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` +`,uQ=Ye({opSnippet:lQ}),pQ={kernelName:Ii,backendName:"webgl",kernelFunc:uQ},cQ=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[u]=t,[p,d]=n;this.outputShape=[u,p,d,l];let c=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,b]=p>1?[`${(i-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[y,x,w]=d>1?[`${(o-1)/(d-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` const float height_ratio = float(${f}); const float width_ratio = float(${y}); void main() { @@ -2929,20 +2923,20 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam setOutput(newValue); } } - `}},MQ=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,p=new RQ(r.shape,s.shape,o,l,u);return n.runWebGLProgram(p,[r,s,i],"float32")},PQ={kernelName:Gl,backendName:"webgl",kernelFunc:MQ},gc;(function(e){e.Prod="*",e.Sum="+"})(gc||(gc={}));var xI=class{constructor(e,t,n,a){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let r=this.outputShape.length,s=this.op===gc.Prod?"1.0":"0.0",i=n?s:`getX(${vI(r,"coords",this.op)})`,o=this.outputShape[this.outputShape.length-1],l="",u="";n?(l=a?`end != ${o-1}`:"end != 0",u=a?"end + 1":"end - 1"):(l=a?`end + pow2 < ${o}`:"end >= pow2",u=a?"end + pow2":"end - pow2"),this.userCode=` + `}},dQ=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,p=new cQ(r.shape,s.shape,o,l,u);return n.runWebGLProgram(p,[r,s,i],"float32")},hQ={kernelName:Fl,backendName:"webgl",kernelFunc:dQ},ec;(function(e){e.Prod="*",e.Sum="+"})(ec||(ec={}));var Jk=class{constructor(e,t,n,a){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let r=this.outputShape.length,s=this.op===ec.Prod?"1.0":"0.0",i=n?s:`getX(${Qk(r,"coords",this.op)})`,o=this.outputShape[this.outputShape.length-1],l="",u="";n?(l=a?`end != ${o-1}`:"end != 0",u=a?"end + 1":"end - 1"):(l=a?`end + pow2 < ${o}`:"end >= pow2",u=a?"end + pow2":"end - pow2"),this.userCode=` void main() { - ${ut(r)} coords = getOutputCoords(); - int end = ${wI(r,"coords",this.op)}; + ${gt(r)} coords = getOutputCoords(); + int end = ${eI(r,"coords",this.op)}; float val = ${i}; int pow2 = int(pow(2.0, index)); if (${l}) { int idx = ${u}; - ${wI(r,"coords",this.op)} = idx; - val ${this.op}= getX(${vI(r,"coords",this.op)}); + ${eI(r,"coords",this.op)} = idx; + val ${this.op}= getX(${Qk(r,"coords",this.op)}); } setOutput(val); } - `}};function vI(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 wI(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 dE(e,t,n,a,r,s){let i=t.shape.length,o=C.getAxesPermutation([a],i),l=t;o!=null&&(l=Nn({inputs:{x:t},backend:n,attrs:{perm:o}}));let u=C.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 xI(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 xI(e,l.shape,r,s),h=d;d=n.runWebGLProgram(c,[d],d.dtype),n.disposeIntermediateTensorInfo(h)}if(o!=null){let c=C.getUndoAxesPermutation(o),h=Nn({inputs:{x:d},backend:n,attrs:{perm:c}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(l),h}return d}function OQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return dE(gc.Prod,r,n,s,i,o)}var LQ={kernelName:Ul,backendName:"webgl",kernelFunc:OQ};function zQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return dE(gc.Sum,r,n,s,i,o)}var WQ={kernelName:Di,backendName:"webgl",kernelFunc:zQ};function BQ(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=G_(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=ZY(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 VQ={kernelName:Sm,backendName:"webgl",kernelFunc:BQ},UQ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` + `}};function Qk(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 eI(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 X_(e,t,n,a,r,s){let i=t.shape.length,o=N.getAxesPermutation([a],i),l=t;o!=null&&(l=kn({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=ta({inputs:{x:l},backend:n});for(let c=0;c<=Math.ceil(Math.log2(p))-1;c++){let h=new Jk(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 Jk(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=kn({inputs:{x:d},backend:n,attrs:{perm:c}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(l),h}return d}function mQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return X_(ec.Prod,r,n,s,i,o)}var fQ={kernelName:$l,backendName:"webgl",kernelFunc:mQ};function gQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return X_(ec.Sum,r,n,s,i,o)}var bQ={kernelName:Si,backendName:"webgl",kernelFunc:gQ};function yQ(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=__(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=E7(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 xQ={kernelName:nm,backendName:"webgl",kernelFunc:yQ},vQ=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]; @@ -2961,7 +2955,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam float result = ${this.getInputSamplingString()}; setOutput(result); } - `}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 GQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{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=new UQ(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var HQ={kernelName:Hl,backendName:"webgl",kernelFunc:GQ},hE=class{constructor(e,t=!1,n=null,a=!1,r=!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=e.outShape,this.enableShapeUniforms=An(this.outputShape.length);let s=e.filterHeight,i=e.filterWidth,o=e.outChannels/e.inChannels,l="",u="";n&&(a?l=`float activation(float a) { + `}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 wQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{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=new vQ(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var kQ={kernelName:Dl,backendName:"webgl",kernelFunc:wQ},Y_=class{constructor(e,t=!1,n=null,a=!1,r=!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=e.outShape,this.enableShapeUniforms=Nn(this.outputShape.length);let s=e.filterHeight,i=e.filterWidth,o=e.outChannels/e.inChannels,l="",u="";n&&(a?l=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?l=`float activation(float a) { @@ -3014,7 +3008,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam ${u} setOutput(result); } - `}},mE=class{constructor(e,t=!1,n=null,a=!1,r=!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=e.outShape,this.enableShapeUniforms=An(this.outputShape.length);let s=e.outChannels/e.inChannels,i=e.padInfo.left,o=e.strideWidth,l=e.dilationWidth,u=e.filterHeight,p=e.filterWidth,d=p,c=` + `}},Z_=class{constructor(e,t=!1,n=null,a=!1,r=!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=e.outShape,this.enableShapeUniforms=Nn(this.outputShape.length);let s=e.outChannels/e.inChannels,i=e.padInfo.left,o=e.strideWidth,l=e.dilationWidth,u=e.filterHeight,p=e.filterWidth,d=p,c=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let g=0;g`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${p}'`);let d=C.computeConv2DInfo(r.shape,s.shape,i,p,o,u,!0),c;X().getBool("WEBGL_PACK_DEPTHWISECONV")&&d.strideWidth<=2&&d.outChannels/d.inChannels===1?c=new mE(d):c=new hE(d);let h=[[d.padInfo.top,d.padInfo.left],[d.strideHeight,d.strideWidth],[d.dilationHeight,d.dilationWidth],[d.inHeight,d.inWidth]];return n.runWebGLProgram(c,[r,s],"float32",h)}var qQ={kernelName:Ri,backendName:"webgl",kernelFunc:jQ},KQ=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.outChannels/e.inChannels;this.userCode=` + `}};function IQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l,dimRoundingMode:u}=a,p=l;p==null&&(p=[1,1]),v.assert(N.eitherStridesOrDilationsAreOne(i,p),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${p}'`);let d=N.computeConv2DInfo(r.shape,s.shape,i,p,o,u,!0),c;H().getBool("WEBGL_PACK_DEPTHWISECONV")&&d.strideWidth<=2&&d.outChannels/d.inChannels===1?c=new Z_(d):c=new Y_(d);let h=[[d.padInfo.top,d.padInfo.left],[d.strideHeight,d.strideWidth],[d.dilationHeight,d.dilationWidth],[d.inHeight,d.inWidth]];return n.runWebGLProgram(c,[r,s],"float32",h)}var SQ={kernelName:Ti,backendName:"webgl",kernelFunc:IQ},TQ=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.outChannels/e.inChannels;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -3238,7 +3232,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam } setOutput(dotProd); } - `}},XQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=` + `}},NQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=` const ivec2 pads = ivec2(${s}, ${i}); void main() { @@ -3283,13 +3277,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam } setOutput(dotProd); } - `}};function YQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:p}=a,d=C.computeConv2DInfo(r.shape,p,i,o,l,u,!0),c=new KQ(d);return n.runWebGLProgram(c,[r,s],"float32")}var ZQ={kernelName:Nm,backendName:"webgl",kernelFunc:YQ};function JQ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:p}=a,d=C.computeConv2DInfo(p,s.shape,i,o,l,u,!0),c=new XQ(d);return n.runWebGLProgram(c,[r,s],"float32")}var QQ={kernelName:Cm,backendName:"webgl",kernelFunc:JQ},eee=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + `}};function CQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:p}=a,d=N.computeConv2DInfo(r.shape,p,i,o,l,u,!0),c=new TQ(d);return n.runWebGLProgram(c,[r,s],"float32")}var _Q={kernelName:am,backendName:"webgl",kernelFunc:CQ};function EQ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:p}=a,d=N.computeConv2DInfo(p,s.shape,i,o,l,u,!0),c=new NQ(d);return n.runWebGLProgram(c,[r,s],"float32")}var AQ={kernelName:rm,backendName:"webgl",kernelFunc:EQ},$Q=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` void main() { ivec2 coords = getOutputCoords(); float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; setOutput(val); } - `}};function tee(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=v.sizeFromShape(a.shape),i=he({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new eee(s),l=n.runWebGLProgram(o,[i],i.dtype),u=he({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var nee={kernelName:_m,backendName:"webgl",kernelFunc:tee},aee=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:n,padInfo:a,strideHeight:r,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:u}=e,{top:p,left:d}=a;this.userCode=` + `}};function FQ(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=v.sizeFromShape(a.shape),i=de({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new $Q(s),l=n.runWebGLProgram(o,[i],i.dtype),u=de({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var DQ={kernelName:sm,backendName:"webgl",kernelFunc:FQ},RQ=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:n,padInfo:a,strideHeight:r,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:u}=e,{top:p,left:d}=a;this.userCode=` const ivec2 strides = ivec2(${r}, ${s}); const ivec2 pads = ivec2(${p}, ${d}); const float neg_infinity = -3.4e38; @@ -3327,7 +3321,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam float result = curVal; setOutput(result); } - `}};function ree(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=C.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p,d=new aee(u);p=n.runWebGLProgram(d,[r,s],"float32");let c=he({inputs:{x:p},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(p),c}var see={kernelName:Ic,backendName:"webgl",kernelFunc:ree};function iee(e){let{inputs:t,backend:n,attrs:a}=e,{equation:r}=a,s=t,{allDims:i,summedDims:o,idDims:l}=C.decodeEinsumEquation(r,s.length);C.checkEinsumDimSizes(i.length,l,s);let{path:u,steps:p}=C.getEinsumComputePath(o,l),d=p.length,c=null,h=i.length,m=[];for(let f=0;f=0&&(c=rg({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 oee={kernelName:Em,backendName:"webgl",kernelFunc:iee},lee="return (x >= 0.0) ? x : (exp(x) - 1.0);",uee=` + `}};function MQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=N.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p,d=new RQ(u);p=n.runWebGLProgram(d,[r,s],"float32");let c=de({inputs:{x:p},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(p),c}var PQ={kernelName:oc,backendName:"webgl",kernelFunc:MQ};function OQ(e){let{inputs:t,backend:n,attrs:a}=e,{equation:r}=a,s=t,{allDims:i,summedDims:o,idDims:l}=N.decodeEinsumEquation(r,s.length);N.checkEinsumDimSizes(i.length,l,s);let{path:u,steps:p}=N.getEinsumComputePath(o,l),d=p.length,c=null,h=i.length,m=[];for(let f=0;f=0&&(c=Rf({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 LQ={kernelName:im,backendName:"webgl",kernelFunc:OQ},zQ="return (x >= 0.0) ? x : (exp(x) - 1.0);",BQ=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -3336,29 +3330,29 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,pee=Ze({opSnippet:lee,packedOpSnippet:uee}),cee={kernelName:Pi,backendName:"webgl",kernelFunc:pee},dee="return (b >= 1.0) ? a : a * (b + 1.0);",hee=` +`,WQ=Ye({opSnippet:zQ,packedOpSnippet:BQ}),VQ={kernelName:Ci,backendName:"webgl",kernelFunc:WQ},UQ="return (b >= 1.0) ? a : a * (b + 1.0);",GQ=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,mee=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=X().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new gd(hee,a.shape,r.shape):new El(dee,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},fee={kernelName:$m,backendName:"webgl",kernelFunc:mee},gee=` +`,HQ=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new nd(GQ,a.shape,r.shape):new bl(UQ,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},jQ={kernelName:om,backendName:"webgl",kernelFunc:HQ},qQ=` return vec4(equal(a, b)); -`,bee="return float(a == b);",yee=pn({opSnippet:bee,packedOpSnippet:gee,dtype:"bool",cpuKernelImpl:tZ}),xee={kernelName:ql,backendName:"webgl",kernelFunc:yee},vee=` +`,KQ="return float(a == b);",XQ=un({opSnippet:KQ,packedOpSnippet:qQ,dtype:"bool",cpuKernelImpl:D7}),YQ={kernelName:Ml,backendName:"webgl",kernelFunc:XQ},ZQ=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. - float p = ${C.ERF_P}; - float a1 = ${C.ERF_A1}; - float a2 = ${C.ERF_A2}; - float a3 = ${C.ERF_A3}; - float a4 = ${C.ERF_A4}; - float a5 = ${C.ERF_A5}; + float p = ${N.ERF_P}; + float a1 = ${N.ERF_A1}; + float a2 = ${N.ERF_A2}; + float a3 = ${N.ERF_A3}; + float a4 = ${N.ERF_A4}; + float a5 = ${N.ERF_A5}; float sign = sign(x); x = abs(x); float t = 1.0 / (1.0 + p * x); return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); -`,wee=Ze({opSnippet:vee}),kee={kernelName:jl,backendName:"webgl",kernelFunc:wee},Iee=Qu+` +`,JQ=Ye({opSnippet:ZQ}),QQ={kernelName:Rl,backendName:"webgl",kernelFunc:JQ},eee=Wu+` return exp(x); -`,Tee=` +`,tee=` vec4 result = exp(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; @@ -3367,7 +3361,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam result.a = isNaN.a ? x.a : result.a; return result; -`,fE=Ze({opSnippet:Iee,packedOpSnippet:Tee,cpuKernelImpl:nZ,dtype:"float32"}),See={kernelName:Oi,backendName:"webgl",kernelFunc:fE};function $x(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),he({inputs:{x:s},backend:a,attrs:{shape:o}})}var Nee={kernelName:Kl,backendName:"webgl",kernelFunc:$x},kI="return exp(x) - 1.0;",Cee=Ze({opSnippet:kI,packedOpSnippet:kI,cpuKernelImpl:aZ}),_ee={kernelName:Xl,backendName:"webgl",kernelFunc:Cee},II=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=` +`,J_=Ye({opSnippet:eee,packedOpSnippet:tee,cpuKernelImpl:R7,dtype:"float32"}),nee={kernelName:_i,backendName:"webgl",kernelFunc:J_};function px(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:Pl,backendName:"webgl",kernelFunc:px},tI="return exp(x) - 1.0;",ree=Ye({opSnippet:tI,packedOpSnippet:tI,cpuKernelImpl:M7}),see={kernelName:Ol,backendName:"webgl",kernelFunc:ree},nI=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) { @@ -3400,12 +3394,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function gE(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=he({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new II("real",l,t),p=new II("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=Cs({inputs:{real:c,imag:h},backend:n});n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h);let f=he({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function Eee(e){let{inputs:t,backend:n}=e,{input:a}=t;return gE(a,!1,n)}var $ee={kernelName:Am,backendName:"webgl",kernelFunc:Eee},Aee=class{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` + `}};function Q_(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 nI("real",l,t),p=new nI("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=Is({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 iee(e){let{inputs:t,backend:n}=e,{input:a}=t;return Q_(a,!1,n)}var oee={kernelName:lm,backendName:"webgl",kernelFunc:iee},lee=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); } - `}};function yd(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||v.inferDtype(r),s==="string"){let i=v.getArrayFromDType(s,v.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new Aee(a,r),o=[[r]];return t.runWebGLProgram(i,[],s,o)}}var Fee={kernelName:Tc,backendName:"webgl",kernelFunc:yd},Dee=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` + `}};function rd(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||v.inferDtype(r),s==="string"){let i=v.getArrayFromDType(s,v.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new lee(a,r),o=[[r]];return t.runWebGLProgram(i,[],s,o)}}var uee={kernelName:lc,backendName:"webgl",kernelFunc:rd},pee=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; @@ -3419,7 +3413,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam } setOutput(outputValue); } - `}},Ree={kernelName:Yl,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new Dee(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},TI="return floor(x);",Mee=Ze({opSnippet:TI,packedOpSnippet:TI,cpuKernelImpl:rZ}),Pee={kernelName:Li,backendName:"webgl",kernelFunc:Mee},Oee=` + `}},cee={kernelName:Ll,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new pee(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},aI="return floor(x);",dee=Ye({opSnippet:aI,packedOpSnippet:aI,cpuKernelImpl:P7}),hee={kernelName:Ei,backendName:"webgl",kernelFunc:dee},mee=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -3429,7 +3423,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam } else { return NAN; } -`,Lee=` +`,fee=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -3450,7 +3444,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,zee=pn({opSnippet:Oee,packedOpSnippet:Lee,dtype:"int32"}),Wee={kernelName:zi,backendName:"webgl",kernelFunc:zee},Bee=class{constructor(e){this.variableNames=["A"];let t=$n(),[n,a]=e;this.outputShape=e,this.userCode=` +`,gee=un({opSnippet:mee,packedOpSnippet:fee,dtype:"int32"}),bee={kernelName:Ai,backendName:"webgl",kernelFunc:gee},yee=class{constructor(e){this.variableNames=["A"];let t=Tn(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3472,7 +3466,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam setOutput(floor(value * 255.0 + 0.5)); } - `}},Vee=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=$n(),[n,a]=e;this.outputShape=e,this.userCode=` + `}},xee=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=Tn(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3506,39 +3500,39 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam ${t.output} = result; } - `}},Uee={kernelName:Wh,backendName:"webgl",kernelFunc:Gee},rl,My=X().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Gee(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=X().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(rl==null||f!==My)&&(My=f,rl=document.createElement("canvas").getContext("2d",{willReadFrequently:My})),rl.canvas.width=l,rl.canvas.height=u,rl.drawImage(r,0,0,l,u),r=rl.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=X().getBool("WEBGL_PACK")?new Vee(d):new Bee(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function Hee(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=C.convertConv2DDataFormat(p),g=C.computeConv2DInfo(r.shape,s.shape,l,d,u,c,!1,f),b,y=[],x=i!=null,w=o!=null,I=h==="leakyrelu",N=()=>{let $=[r,s],A=(M,D)=>{if(D==="NCHW"&&M.shape.length===1&&M.shape[0]!==1){let T=he({inputs:{x:M},backend:n,attrs:{shape:[M.shape[0],1,1]}});return y.push(T),T}return M};if(x&&$.push(A(i,p)),w&&$.push(A(o,p)),I){let M=n.makeTensorInfo([],"float32",v.createScalarValue(m,"float32"));$.push(M),y.push(M)}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"))b=pE({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&X().getBool("WEBGL_EXP_CONV")){let $=h?mc(h,!0):null,A=new uE(g,x,$,w,I),M=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],D=N();b=n.runWebGLProgram(A,D,"float32",M)}else if(X().getBool("WEBGL_CONV_IM2COL"))b=cE({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let $=h?mc(h,!1):null,A=new lE(g,x,$,w,I),M=N();b=n.runWebGLProgram(A,M,"float32")}let _=he({inputs:{x:b},backend:n,attrs:{shape:g.outShape}});return y.push(b),y.forEach($=>n.disposeIntermediateTensorInfo($)),_}var jee={kernelName:li,backendName:"webgl",kernelFunc:Hee};function qee(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(C.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=C.computeConv2DInfo(r.shape,s.shape,l,f,u,d,!0),b=X().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,y=c?mc(c,b):null,x=[r,s],w=i!=null,I=o!=null,N=c==="leakyrelu";if(w&&x.push(i),I&&x.push(o),N){let M=n.makeTensorInfo([],"float32",v.createScalarValue(h,"float32"));x.push(M),m.push(M)}let _;b?_=new mE(g,w,y,I,N):_=new hE(g,w,y,I,N);let $=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],A=n.runWebGLProgram(_,x,"float32",$);return m.forEach(M=>n.disposeIntermediateTensorInfo(M)),A}var Kee={kernelName:ui,backendName:"webgl",kernelFunc:qee},Xee=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=ut(t.length),s=ut(n.length),i=this.sliceDim>1?"strides[j]":"strides",o=ut(a.length),l=a.length>1?"paramsShape[j]":"paramsShape";this.userCode=` - ${r} strides = ${r}(${this.strides}); - ${o} paramsShape = ${o}(${this.paramsShape}); + `}},vee={kernelName:bh,backendName:"webgl",kernelFunc:wee},jo,fy=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function wee(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");(jo==null||f!==fy)&&(fy=f,jo=document.createElement("canvas").getContext("2d",{willReadFrequently:fy})),jo.canvas.width=l,jo.canvas.height=u,jo.drawImage(r,0,0,l,u),r=jo.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 xee(d):new yee(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function kee(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),b,y=[],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 y.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),y.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"))b=q_({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?Jp(h,!0):null,A=new j_(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();b=n.runWebGLProgram(A,F,"float32",R)}else if(H().getBool("WEBGL_CONV_IM2COL"))b=K_({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let E=h?Jp(h,!1):null,A=new H_(g,x,E,w,I),R=T();b=n.runWebGLProgram(A,R,"float32")}let C=de({inputs:{x:b},backend:n,attrs:{shape:g.outShape}});return y.push(b),y.forEach(E=>n.disposeIntermediateTensorInfo(E)),C}var Iee={kernelName:Qs,backendName:"webgl",kernelFunc:kee};function See(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),b=H().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,y=c?Jp(c,b):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;b?C=new Z_(g,w,y,I,T):C=new Y_(g,w,y,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 Tee={kernelName:ei,backendName:"webgl",kernelFunc:See},Nee=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= ${this.paramsShape[i]}; + flattenIndex += index * ${this.strides[i]};`;this.userCode=` void main() { - ${s} coords = getOutputCoords(); + ${r} coords = getOutputCoords(); int flattenIndex = 0; bool out_of_bounds = false; - for (int j = 0; j < ${this.sliceDim}; j++) { - int index = round(getIndices(coords[0], j)); - out_of_bounds = out_of_bounds || index < 0; - out_of_bounds = out_of_bounds || index >= ${l}; - flattenIndex += index * ${i}; - } + + ${s} + setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1])); } - `}};function Yee(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=r.shape,i=s[s.length-1],o=v.sizeFromShape(a.shape),[l,u,p,d]=C.prepareAndValidate(a,r),c=he({inputs:{x:r},backend:n,attrs:{shape:[u,i]}}),h=he({inputs:{x:a},backend:n,attrs:{shape:[v.sizeFromShape(a.shape)/p,p]}});if(n.shouldExecuteOnCPU([a,r])||a.dtype==="string"){let b=n.readSync(r.dataId),y=n.bufferSync(a),x=sZ(b,y,a.dtype,u,i,p,d,a.shape,o);return n.makeTensorInfo(l,a.dtype,x.values)}let m=new Xee(i,d,[u,p],a.shape),f=n.runWebGLProgram(m,[h,c],h.dtype),g=he({inputs:{x:f},backend:n,attrs:{shape:l}});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),g}var Zee={kernelName:Jl,backendName:"webgl",kernelFunc:Yee},Jee=class{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let n=ut(this.rank),a=Qee(e,2);this.userCode=` + `}};function Cee(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=r.shape,i=s[s.length-1],o=v.sizeFromShape(a.shape),[l,u,p,d]=N.prepareAndValidate(a,r),c=de({inputs:{x:r},backend:n,attrs:{shape:[u,i]}}),h=de({inputs:{x:a},backend:n,attrs:{shape:[v.sizeFromShape(a.shape)/p,p]}});if(n.shouldExecuteOnCPU([a,r])||a.dtype==="string"){let b=n.readSync(r.dataId),y=n.bufferSync(a),x=O7(b,y,a.dtype,u,i,p,d,a.shape,o);return n.makeTensorInfo(l,a.dtype,x.values)}let m=new Nee(i,d,[u,p],a.shape),f=n.runWebGLProgram(m,[h,c],h.dtype),g=de({inputs:{x:f},backend:n,attrs:{shape:l}});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),g}var _ee={kernelName:Bl,backendName:"webgl",kernelFunc:Cee},Eee=class{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let n=gt(this.rank),a=Aee(e,2);this.userCode=` void main() { ${n} resRC = getOutputCoords(); int index = int(getIndices(resRC.x, resRC.z)); float inBounds = (index >= 0) && (index < ${e[2]}) ? 1.0 : 0.0; setOutput(inBounds * getA(${a})); } - `}};function Qee(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=C.segment_util.collectGatherOpShapeInfo(r,s,l,o),p=v.sizeFromShape(s.shape),d=[],c=he({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),h=he({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 y=n.bufferSync(h),x=n.bufferSync(c),w=iZ(x,y,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,w.dtype,w.values)}let f=new Jee(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let b=he({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(y=>n.disposeIntermediateTensorInfo(y)),b}var ete={kernelName:Zl,backendName:"webgl",kernelFunc:bE},tte="return float(a > b);",nte=` + `}};function Aee(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 y=n.bufferSync(h),x=n.bufferSync(c),w=L7(x,y,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,w.dtype,w.values)}let f=new Eee(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let b=de({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(y=>n.disposeIntermediateTensorInfo(y)),b}var $ee={kernelName:zl,backendName:"webgl",kernelFunc:eE},Fee="return float(a > b);",Dee=` return vec4(greaterThan(a, b)); -`,ate=pn({opSnippet:tte,packedOpSnippet:nte,cpuKernelImpl:oZ,dtype:"bool"}),rte={kernelName:Ql,backendName:"webgl",kernelFunc:ate},ste="return float(a >= b);",ite=` +`,Ree=un({opSnippet:Fee,packedOpSnippet:Dee,cpuKernelImpl:z7,dtype:"bool"}),Mee={kernelName:Wl,backendName:"webgl",kernelFunc:Ree},Pee="return float(a >= b);",Oee=` return vec4(greaterThanEqual(a, b)); -`,ote=pn({opSnippet:ste,packedOpSnippet:ite,dtype:"bool",cpuKernelImpl:lZ}),lte={kernelName:Bi,backendName:"webgl",kernelFunc:ote};function ute(e){let{inputs:t,backend:n}=e,{input:a}=t;return gE(a,!0,n)}var pte={kernelName:Fm,backendName:"webgl",kernelFunc:ute},cte="return float(!isnan(x) && !isinf(x));",dte=Ze({opSnippet:cte,dtype:"bool"}),hte={kernelName:eu,backendName:"webgl",kernelFunc:dte},mte="return float(isinf(x));",fte=Ze({opSnippet:mte,dtype:"bool"}),gte={kernelName:tu,backendName:"webgl",kernelFunc:fte},bte="return float(isnan(x));",yte=Ze({opSnippet:bte,dtype:"bool"}),xte={kernelName:nu,backendName:"webgl",kernelFunc:yte},vte="return float(a < b);",wte=` +`,Lee=un({opSnippet:Pee,packedOpSnippet:Oee,dtype:"bool",cpuKernelImpl:B7}),zee={kernelName:Fi,backendName:"webgl",kernelFunc:Lee};function Bee(e){let{inputs:t,backend:n}=e,{input:a}=t;return Q_(a,!0,n)}var Wee={kernelName:um,backendName:"webgl",kernelFunc:Bee},Vee="return float(!isnan(x) && !isinf(x));",Uee=Ye({opSnippet:Vee,dtype:"bool"}),Gee={kernelName:Vl,backendName:"webgl",kernelFunc:Uee},Hee="return float(isinf(x));",jee=Ye({opSnippet:Hee,dtype:"bool"}),qee={kernelName:Ul,backendName:"webgl",kernelFunc:jee},Kee="return float(isnan(x));",Xee=Ye({opSnippet:Kee,dtype:"bool"}),Yee={kernelName:Gl,backendName:"webgl",kernelFunc:Xee},Zee="return float(a < b);",Jee=` return vec4(lessThan(a, b)); -`,kte=pn({opSnippet:vte,packedOpSnippet:wte,cpuKernelImpl:uZ,dtype:"bool"}),Ite={kernelName:au,backendName:"webgl",kernelFunc:kte},Tte="return float(a <= b);",Ste=` +`,Qee=un({opSnippet:Zee,packedOpSnippet:Jee,cpuKernelImpl:W7,dtype:"bool"}),ete={kernelName:Hl,backendName:"webgl",kernelFunc:Qee},tte="return float(a <= b);",nte=` return vec4(lessThanEqual(a, b)); -`,Nte=pn({opSnippet:Tte,packedOpSnippet:Ste,cpuKernelImpl:pZ,dtype:"bool"}),Cte={kernelName:ru,backendName:"webgl",kernelFunc:Nte};function _te(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=cZ(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var Ete={kernelName:Rm,backendName:"webgl",kernelFunc:_te},$te=Qu+` +`,ate=un({opSnippet:tte,packedOpSnippet:nte,cpuKernelImpl:V7,dtype:"bool"}),rte={kernelName:jl,backendName:"webgl",kernelFunc:ate};function ste(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=U7(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var ite={kernelName:cm,backendName:"webgl",kernelFunc:ste},ote=Wu+` return x < 0.0 ? 0./0. : log(x); -`,Ate=` +`,lte=` vec4 result = log(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r); @@ -3546,18 +3540,18 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b); result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a); return result; -`,Fte=Ze({opSnippet:$te,packedOpSnippet:Ate,cpuKernelImpl:dZ}),Dte={kernelName:Gi,backendName:"webgl",kernelFunc:Fte},Rte=Qu+` +`,ute=Ye({opSnippet:ote,packedOpSnippet:lte,cpuKernelImpl:G7}),pte={kernelName:Mi,backendName:"webgl",kernelFunc:ute},cte=Wu+` return log(1.0 + x); -`,Mte=Ze({opSnippet:Rte}),Pte={kernelName:su,backendName:"webgl",kernelFunc:Mte},Ote="return float(a >= 1.0 && b >= 1.0);",Lte=` +`,dte=Ye({opSnippet:cte}),hte={kernelName:ql,backendName:"webgl",kernelFunc:dte},mte="return float(a >= 1.0 && b >= 1.0);",fte=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,zte=pn({opSnippet:Ote,packedOpSnippet:Lte,dtype:"bool"}),Wte={kernelName:iu,backendName:"webgl",kernelFunc:zte},Bte="return float(!(x >= 1.0));",Vte=Ze({opSnippet:Bte}),Ute={kernelName:ou,backendName:"webgl",kernelFunc:Vte},Gte="return float(a >= 1.0 || b >= 1.0);",Hte=` +`,gte=un({opSnippet:mte,packedOpSnippet:fte,dtype:"bool"}),bte={kernelName:Kl,backendName:"webgl",kernelFunc:gte},yte="return float(!(x >= 1.0));",xte=Ye({opSnippet:yte}),vte={kernelName:Xl,backendName:"webgl",kernelFunc:xte},wte="return float(a >= 1.0 || b >= 1.0);",kte=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,jte=pn({opSnippet:Gte,packedOpSnippet:Hte,dtype:"bool"}),qte={kernelName:lu,backendName:"webgl",kernelFunc:jte},Kte=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[];let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` +`,Ite=un({opSnippet:wte,packedOpSnippet:kte,dtype:"bool"}),Ste={kernelName:Yl,backendName:"webgl",kernelFunc:Ite},Tte=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[];let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3576,7 +3570,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam float val = x * ${o}; setOutput(val); } - `}},Xte=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` + `}},Nte=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords.x; @@ -3638,7 +3632,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam vec4 result = xAtOutputCoords * ${o}; setOutput(result); } - `}},Yte=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=X().getBool("WEBGL_PACK_NORMALIZATION")?new Xte(r.shape,s,i,o,l):new Kte(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},Zte={kernelName:Sc,backendName:"webgl",kernelFunc:Yte},Jte=class{constructor(e,t,n,a,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=a,this.beta=r,this.userCode=` + `}},Cte=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=H().getBool("WEBGL_PACK_NORMALIZATION")?new Nte(r.shape,s,i,o,l):new Tte(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},_te={kernelName:uc,backendName:"webgl",kernelFunc:Cte},Ete=class{constructor(e,t,n,a,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=a,this.beta=r,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3693,14 +3687,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam } setOutput(result); } - `}},Qte=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 Jte(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},ene={kernelName:Mm,backendName:"webgl",kernelFunc:Qte};function tne(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=he({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=$o(i,e.dtype,"max",a),l=he({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function yE(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=C.getAxesPermutation(u,o),d=p!=null,c=n.shouldExecuteOnCPU([r]),h=r;if(d){if(c){let y=n.texData.get(h.dataId).values,x=new Array(o);for(let N=0;N{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 Ete(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},$te={kernelName:dm,backendName:"webgl",kernelFunc:Ate};function Fte(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=wo(i,e.dtype,"max",a),l=de({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function tE(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 y=n.texData.get(h.dataId).values,x=new Array(o);for(let T=0;T`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=C.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))return na({inputs:{x:r},backend:n});let d=new fc(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var lne={kernelName:qi,backendName:"webgl",kernelFunc:one};function une(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=a,p=[1,1,1],d=C.computePool3DInfo(r.shape,s,i,p,o,u,l),c=new m1(d,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}var pne={kernelName:Nc,backendName:"webgl",kernelFunc:une},cne=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,n=e.strideWidth,a=e.dilationHeight,r=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=r-1-e.padInfo.top,o=s-1-e.padInfo.left,l=r*s-1;this.userCode=` +`,Pte=un({opSnippet:Rte,packedOpSnippet:Mte,cpuKernelImpl:j7}),Ote={kernelName:Oi,backendName:"webgl",kernelFunc:Pte};function Lte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;Pu(r,"maxPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(N.eitherStridesOrDilationsAreOne(i,u),()=>`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);if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))return ta({inputs:{x:r},backend:n});let d=new Qp(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var zte={kernelName:Li,backendName:"webgl",kernelFunc:Lte};function Bte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=a,p=[1,1,1],d=N.computePool3DInfo(r.shape,s,i,p,o,u,l),c=new Y0(d,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}var Wte={kernelName:pc,backendName:"webgl",kernelFunc:Bte},Vte=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,n=e.strideWidth,a=e.dilationHeight,r=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=r-1-e.padInfo.top,o=s-1-e.padInfo.left,l=r*s-1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { @@ -3746,7 +3742,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam } setOutput(dotProd); } - `}},dne=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,p=o-1-e.padInfo.front,d=l-1-e.padInfo.top,c=u-1-e.padInfo.left,h=o*l*u-1;this.userCode=` + `}},Ute=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,p=o-1-e.padInfo.front,d=l-1-e.padInfo.top,c=u-1-e.padInfo.left,h=o*l*u-1;this.userCode=` const ivec3 pads = ivec3(${p}, ${d}, ${c}); void main() { @@ -3810,14 +3806,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam } setOutput(dotProd); } - `}};function hne(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=C.computePool3DInfo(i.shape,o,l,d,u,p),h=new m1(c,"max",!0),m=n.runWebGLProgram(h,[i],i.dtype),f=new dne(c),g=n.runWebGLProgram(f,[r,m],i.dtype);return n.disposeIntermediateTensorInfo(m),g}var mne={kernelName:Om,backendName:"webgl",kernelFunc:hne};function fne(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;Ku([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=C.computePool2DInfo(o.shape,l,u,1,p,d),h=!0,m=new fc(c,"max",h),f=n.runWebGLProgram(m,[o],o.dtype),g=new cne(c),b=n.runWebGLProgram(g,[r,f],o.dtype);return n.disposeIntermediateTensorInfo(f),b}var gne={kernelName:Pm,backendName:"webgl",kernelFunc:fne};function bne(e,t,n,a){let r=new fc(n,"max",!1),s=a.runWebGLProgram(r,[e],"float32");r=new fc(n,"max",!0,!0,t);let i=a.runWebGLProgram(r,[e],"float32");return[s,i]}var yne={kernelName:Lm,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{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(C.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let p=C.computePool2DInfo(a.shape,r,s,u,i),[d,c]=bne(a,o,p,l);return[d,c]}};function xne(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=he({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=$o(i,"float32","mean",a),l=he({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var vne={kernelName:Ki,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=C.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 _=0;_{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]=Kte(a,o,p,l);return[d,c]}};function Yte(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=wo(i,"float32","mean",a),l=de({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var Zte={kernelName:zi,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=ut(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=` +`,nne=un({opSnippet:ene,packedOpSnippet:tne,cpuKernelImpl:q7}),ane={kernelName:Wi,backendName:"webgl",kernelFunc:nne},rne=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}; @@ -3846,7 +3844,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam ${r} coords = outC - start; setOutput(getX(${o})); } - `}},_ne=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,m)=>h[0]+e[m]+h[1]);let a=e.length,r=ut(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=Tn("rc",a),l=Tn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=n==="reflect"?0:1,c="";if(a===1){let h=` + `}},sne=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,m)=>h[0]+e[m]+h[1]);let a=e.length,r=gt(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=wn("rc",a),l=wn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=n==="reflect"?0:1,c="";if(a===1){let h=` ${r} source = rc; if (source < start) { source = start * 2 - source - ${d}; @@ -3902,13 +3900,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam ${c} setOutput(result); } - `}},Ene=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=X().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new _ne(a.shape,r,s):new Cne(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},$ne={kernelName:Zi,backendName:"webgl",kernelFunc:Ene},Ane=`if (b == 0.0) return NAN; - return mod(a, b);`,Fne=` + `}},ine=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new sne(a.shape,r,s):new rne(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},one={kernelName:Vi,backendName:"webgl",kernelFunc:ine},lne=`if (b == 0.0) return NAN; + return mod(a, b);`,une=` vec4 result = mod(a, b); - vec4 isNaN = vec4(equal(b, vec4(0.0))); - `+ng+` + bvec4 isNaN = equal(b, vec4(0.0)); + `+td+` return result; -`,Dne=pn({opSnippet:Ane,packedOpSnippet:Fne}),Rne={kernelName:uu,backendName:"webgl",kernelFunc:Dne},Mne=class{constructor(e,t,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,n],this.userCode=` +`,pne=un({opSnippet:lne,packedOpSnippet:une}),cne={kernelName:Zl,backendName:"webgl",kernelFunc:pne},dne=class{constructor(e,t,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,n],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -3928,11 +3926,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,f9=Ze({opSnippet:m9}),g9={kernelNam // If no other event happened, last event happened. setOutput(float(${t-1})); } - `}},Pne=` + `}},hne=` if (a == b) { return 1.0; }; -return a / b;`,One=` +return a / b;`,mne=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -3950,9 +3948,9 @@ return a / b;`,One=` } return result; -`,xE=pn({opSnippet:Pne,packedOpSnippet:One,checkOutOfBounds:!0}),Lne={kernelName:Mi,backendName:"webgl",kernelFunc:xE},SI="return a - b;",vE=pn({opSnippet:SI,packedOpSnippet:SI,supportsComplex:!0,cpuKernelImpl:DZ}),zne={kernelName:yo,backendName:"webgl",kernelFunc:vE};function wE(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=v.parseAxisParam([s],r.shape),o=yE({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=C.expandShapeToKeepDim(o.shape,i),u=he({inputs:{x:o},backend:n,attrs:{shape:l}}),p=vE({inputs:{a:r,b:u},backend:n}),d=fE({inputs:{x:p},backend:n}),c=rg({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=he({inputs:{x:c},backend:n,attrs:{shape:l}}),m=xE({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 Wne={kernelName:go,backendName:"webgl",kernelFunc:wE};function Bne(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:wE({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new Mne(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var Vne={kernelName:zm,backendName:"webgl",kernelFunc:Bne},Une=Fa+` +`,nE=un({opSnippet:hne,packedOpSnippet:mne,checkOutOfBounds:!0}),fne={kernelName:Ni,backendName:"webgl",kernelFunc:nE},rI="return a - b;",aE=un({opSnippet:rI,packedOpSnippet:rI,supportsComplex:!0,cpuKernelImpl:dZ}),gne={kernelName:lo,backendName:"webgl",kernelFunc:aE};function rE(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=v.parseAxisParam([s],r.shape),o=tE({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=aE({inputs:{a:r,b:u},backend:n}),d=J_({inputs:{x:p},backend:n}),c=Rf({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=de({inputs:{x:c},backend:n,attrs:{shape:l}}),m=nE({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 bne={kernelName:io,backendName:"webgl",kernelFunc:rE};function yne(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 dne(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var xne={kernelName:gm,backendName:"webgl",kernelFunc:yne},vne=Fa+` return -x; -`,Gne=` +`,wne=` vec4 result = -x; bvec4 isNaN = isnan(x); @@ -3962,14 +3960,14 @@ return a / b;`,One=` result.a = isNaN.a ? x.a : result.a; return result; -`;function Hne(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=bZ(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return X().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ti(a.shape,Gne):r=new Cr(a.shape,Une),n.runWebGLProgram(r,[a],a.dtype)}var jne={kernelName:pu,backendName:"webgl",kernelFunc:Hne},qne=gr.nonMaxSuppressionV3Impl;function Kne(e){C.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d}=qne(u,p,i,o,l);return n.makeTensorInfo([d.length],"int32",new Int32Array(d))}var Xne={kernelName:du,backendName:"webgl",kernelFunc:Kne},Yne=gr.nonMaxSuppressionV4Impl;function Zne(e){C.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),{selectedIndices:c,validOutputs:h}=Yne(p,d,i,o,l,u);return[n.makeTensorInfo([c.length],"int32",new Int32Array(c)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var Jne={kernelName:hu,backendName:"webgl",kernelFunc:Zne},Qne=gr.nonMaxSuppressionV5Impl;function eae(e){C.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),c=i,h=o,m=l,f=u,{selectedIndices:g,selectedScores:b}=Qne(p,d,c,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([b.length],"float32",new Float32Array(b))]}var tae={kernelName:mu,backendName:"webgl",kernelFunc:eae},nae=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` +`;function kne(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=X7(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return H().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new js(a.shape,wne):r=new Sr(a.shape,vne),n.runWebGLProgram(r,[a],a.dtype)}var Ine={kernelName:Jl,backendName:"webgl",kernelFunc:kne},Sne=pr.nonMaxSuppressionV3Impl;function Tne(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d}=Sne(u,p,i,o,l);return n.makeTensorInfo([d.length],"int32",new Int32Array(d))}var Nne={kernelName:eu,backendName:"webgl",kernelFunc:Tne},Cne=pr.nonMaxSuppressionV4Impl;function _ne(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),{selectedIndices:c,validOutputs:h}=Cne(p,d,i,o,l,u);return[n.makeTensorInfo([c.length],"int32",new Int32Array(c)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var Ene={kernelName:tu,backendName:"webgl",kernelFunc:_ne},Ane=pr.nonMaxSuppressionV5Impl;function $ne(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),c=i,h=o,m=l,f=u,{selectedIndices:g,selectedScores:b}=Ane(p,d,c,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([b.length],"float32",new Float32Array(b))]}var Fne={kernelName:nu,backendName:"webgl",kernelFunc:$ne},Dne=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int index = round(getIndices(coords.x)); setOutput(mix(float(${a}), float(${n}), float(index == coords.y))); } - `}},aae=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=v.sizeFromShape(r.shape),p=new nae(u,i,o,l),d=he({inputs:{x:r},backend:n,attrs:{shape:[u]}}),c=n.runWebGLProgram(p,[d],s);n.disposeIntermediateTensorInfo(d);let h=[...r.shape,i],m=he({inputs:{x:c},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(c),m},rae={kernelName:Qi,backendName:"webgl",kernelFunc:aae};function cm(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=bd({inputs:{input:a},backend:n}),s=cm({inputs:{x:r},backend:n}),i=sg({inputs:{input:a},backend:n}),o=cm({inputs:{x:i},backend:n}),l=Cs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return yd({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var sae={kernelName:Du,backendName:"webgl",kernelFunc:cm};function kE(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(a.dtype==="complex64"){let r=bd({inputs:{input:a},backend:n}),s=kE({inputs:{x:r},backend:n}),i=sg({inputs:{input:a},backend:n}),o=cm({inputs:{x:i},backend:n}),l=Cs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return yd({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var iae={kernelName:fu,backendName:"webgl",kernelFunc:kE};function oae(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return $x({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=$x({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=oE({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var lae={kernelName:gu,backendName:"webgl",kernelFunc:oae},uae=class{constructor(e,t,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((l,u)=>l[0]+e[u]+l[1]);let a=e.length,r=ut(a),s=t.map(l=>l[0]).join(","),i=t.map((l,u)=>l[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` + `}},Rne=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=v.sizeFromShape(r.shape),p=new Dne(u,i,o,l),d=de({inputs:{x:r},backend:n,attrs:{shape:[u]}}),c=n.runWebGLProgram(p,[d],s);n.disposeIntermediateTensorInfo(d);let h=[...r.shape,i],m=de({inputs:{x:c},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(c),m},Mne={kernelName:Gi,backendName:"webgl",kernelFunc:Rne};function Vh(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=ad({inputs:{input:a},backend:n}),s=Vh({inputs:{x:r},backend:n}),i=Mf({inputs:{input:a},backend:n}),o=Vh({inputs:{x:i},backend:n}),l=Is({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return rd({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var Pne={kernelName:wu,backendName:"webgl",kernelFunc:Vh};function sE(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(a.dtype==="complex64"){let r=ad({inputs:{input:a},backend:n}),s=sE({inputs:{x:r},backend:n}),i=Mf({inputs:{input:a},backend:n}),o=Vh({inputs:{x:i},backend:n}),l=Is({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return rd({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var One={kernelName:au,backendName:"webgl",kernelFunc:sE};function Lne(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return px({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=px({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=G_({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var zne={kernelName:ru,backendName:"webgl",kernelFunc:Lne},Bne=class{constructor(e,t,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((l,u)=>l[0]+e[u]+l[1]);let a=e.length,r=gt(a),s=t.map(l=>l[0]).join(","),i=t.map((l,u)=>l[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` int start = ${s}; int end = ${i}; @@ -3994,7 +3992,7 @@ return a / b;`,One=` setOutput(getX(${o})); } } - `}},pae=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);let a=e.length,r=ut(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=Tn("rc",a),l=Tn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; + `}},Wne=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);let a=e.length,r=gt(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=wn("rc",a),l=wn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; if(${u}) { `,a===1?"":`} rc = outputLoc; @@ -4018,7 +4016,7 @@ return a / b;`,One=` ${h} setOutput(result); } - `}},IE=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;if(v.sizeFromShape(r.shape)===0){let u=s.map((p,d)=>p[0]+r.shape[d]+p[1]);return yd({backend:n,attrs:{shape:u,value:i,dtype:r.dtype}})}let o=X().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new pae(r.shape,s,i):new uae(r.shape,s,i),l=[[i]];return n.runWebGLProgram(o,[r],r.dtype,l)},cae={kernelName:eo,backendName:"webgl",kernelFunc:IE},dae=` + `}},iE=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;if(v.sizeFromShape(r.shape)===0){let u=s.map((p,d)=>p[0]+r.shape[d]+p[1]);return rd({backend:n,attrs:{shape:u,value:i,dtype:r.dtype}})}let o=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Wne(r.shape,s,i):new Bne(r.shape,s,i),l=[[i]];return n.runWebGLProgram(o,[r],r.dtype,l)},Vne={kernelName:Hi,backendName:"webgl",kernelFunc:iE},Une=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -4027,7 +4025,7 @@ return a / b;`,One=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,hae=` +`,Gne=` // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); @@ -4040,12 +4038,14 @@ return a / b;`,One=` result.b = isExpZero.b ? 1.0 : result.b; result.a = isExpZero.a ? 1.0 : result.a; - vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b)); - `+ng+` + bvec4 isNaN1 = lessThan(a, vec4(0.0)); + bvec4 isNaN2 = lessThan(floor(b), b); + bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w); + `+td+` return result; -`,mae=pn({opSnippet:dae,packedOpSnippet:hae}),fae={kernelName:to,backendName:"webgl",kernelFunc:mae};function gae(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=C.getAxesPermutation(p,o),c=r;d!=null&&(c=Nn({inputs:{x:r},backend:n,attrs:{perm:d}}),p=C.getInnerMostAxes(p.length,o),l.push(c)),C.assertAxesAreInnerMostDims("prod",p,o);let h;if(n.shouldExecuteOnCPU([c])){let m=n.texData.get(c.dataId).values,{outVals:f,outShape:g,outDtype:b}=xZ(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,b,f)}else{let[m,f]=C.computeOutAndReduceShapes(c.shape,p),g=v.sizeFromShape(f),b=he({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),y=Km(r.dtype),x=$o(b,y,"prod",n);h=he({inputs:{x},backend:n,attrs:{shape:m}}),l.push(b),l.push(x)}if(i){l.push(h);let m=C.expandShapeToKeepDim(h.shape,u);h=he({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var bae={kernelName:ao,backendName:"webgl",kernelFunc:gae};function yae(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]=vZ(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var xae={kernelName:Wm,backendName:"webgl",kernelFunc:yae},TE=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=wZ(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},vae={kernelName:Cc,backendName:"webgl",kernelFunc:TE},wae="return 1.0 / x;",kae=Ze({opSnippet:wae}),Iae={kernelName:bu,backendName:"webgl",kernelFunc:kae},Tae=Fa+` +`,Hne=un({opSnippet:Une,packedOpSnippet:Gne}),jne={kernelName:ji,backendName:"webgl",kernelFunc:Hne};function qne(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=kn({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:b}=Z7(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,b,f)}else{let[m,f]=N.computeOutAndReduceShapes(c.shape,p),g=v.sizeFromShape(f),b=de({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),y=Nm(r.dtype),x=wo(b,y,"prod",n);h=de({inputs:{x},backend:n,attrs:{shape:m}}),l.push(b),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 Kne={kernelName:Ki,backendName:"webgl",kernelFunc:qne};function Xne(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.readSync(b.dataId)),u=r.map(b=>b.shape),p=n.readSync(s.dataId),d=n.readSync(i.dataId),[c,h,m]=J7(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var Yne={kernelName:bm,backendName:"webgl",kernelFunc:Xne};function Zne(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]=Q7(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var Jne={kernelName:ym,backendName:"webgl",kernelFunc:Zne},oE=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=eZ(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},Qne={kernelName:cc,backendName:"webgl",kernelFunc:oE},eae="return 1.0 / x;",tae=Ye({opSnippet:eae}),nae={kernelName:su,backendName:"webgl",kernelFunc:tae},aae=Fa+` return (x < 0.0) ? 0.0 : x; -`,Sae=` +`,rae=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4055,9 +4055,9 @@ return a / b;`,One=` result.a = isNaN.a ? x.a : result.a; return result; -`,Nae=Ze({opSnippet:Tae,packedOpSnippet:Sae}),Cae={kernelName:ro,backendName:"webgl",kernelFunc:Nae},_ae=Fa+` +`,sae=Ye({opSnippet:aae,packedOpSnippet:rae}),iae={kernelName:Xi,backendName:"webgl",kernelFunc:sae},oae=Fa+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Eae=` +`,lae=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4067,7 +4067,7 @@ return a / b;`,One=` result.a = isNaN.a ? x.a : result.a; return result; -`,$ae=Ze({opSnippet:_ae,packedOpSnippet:Eae}),Aae={kernelName:oo,backendName:"webgl",kernelFunc:$ae},Fae=class{constructor(e,t,n,a,r){this.variableNames=["A"],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="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` +`,uae=Ye({opSnippet:oae,packedOpSnippet:lae}),pae={kernelName:Ji,backendName:"webgl",kernelFunc:uae},cae=class{constructor(e,t,n,a,r){this.variableNames=["A"],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="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${u[0]/p[0]}, ${u[1]/p[1]}); @@ -4100,7 +4100,7 @@ return a / b;`,One=` setOutput(newValue); } - `}},Dae=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=` + `}},dae=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]}, @@ -4177,7 +4177,7 @@ return a / b;`,One=` setOutput(newValue); } - `}};function Rae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=X().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Dae(r.shape,l,u,s,i):new Fae(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var Mae={kernelName:io,backendName:"webgl",kernelFunc:Rae},Pae=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 hae(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 dae(r.shape,l,u,s,i):new cae(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var mae={kernelName:Zi,backendName:"webgl",kernelFunc:hae},fae=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]; @@ -4258,7 +4258,7 @@ return a / b;`,One=` setOutput(accumulator); } - `}};function Oae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Pae(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var Lae={kernelName:Um,backendName:"webgl",kernelFunc:Oae},zae=class{constructor(e,t,n,a,r){this.variableNames=["A"],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=a?"0.5":"0.0",c;r?c="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":c="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};function gae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new fae(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var bae={kernelName:wm,backendName:"webgl",kernelFunc:gae},yae=class{constructor(e,t,n,a,r){this.variableNames=["A"],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=a?"0.5":"0.0",c;r?c="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":c="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${u[0]/p[0]}, ${u[1]/p[1]}); @@ -4280,7 +4280,7 @@ return a / b;`,One=` setOutput(newValue); } - `}},Wae=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=a?"0.5":"0.0",c;r?c="max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":c="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}},xae=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=a?"0.5":"0.0",c;r?c="max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":c="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${u[0]/p[0]}, ${u[1]/p[1]}, @@ -4321,7 +4321,7 @@ return a / b;`,One=` setOutput(newValue); } - `}};function Bae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=X().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Wae(r.shape,l,u,s,i):new zae(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],r.dtype)}var Vae={kernelName:so,backendName:"webgl",kernelFunc:Bae},Uae=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 vae(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 xae(r.shape,l,u,s,i):new yae(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],r.dtype)}var wae={kernelName:Yi,backendName:"webgl",kernelFunc:vae},kae=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]; @@ -4391,17 +4391,17 @@ return a / b;`,One=` setOutput(accumulator); } - `}};function Gae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Uae(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var Hae={kernelName:Vm,backendName:"webgl",kernelFunc:Gae},jae=class{constructor(e,t){this.variableNames=["x"];let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,n===1){this.userCode=` + `}};function Iae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new kae(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var Sae={kernelName:vm,backendName:"webgl",kernelFunc:Iae},Tae=class{constructor(e,t){this.variableNames=["x"];let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,n===1){this.userCode=` void main() { int coord = getOutputCoords(); setOutput(getX(${e[0]} - coord - 1)); } - `;return}let a=i=>t.indexOf(i)!==-1&&e[i]!==1?`${e[i]} - coords[${i}] - 1`:`coords[${i}]`,r=e.map((i,o)=>a(o)).join(","),s=ut(n);this.userCode=` + `;return}let a=i=>t.indexOf(i)!==-1&&e[i]!==1?`${e[i]} - coords[${i}] - 1`:`coords[${i}]`,r=e.map((i,o)=>a(o)).join(","),s=gt(n);this.userCode=` void main() { ${s} coords = getOutputCoords(); setOutput(getX(${r})); } - `}},qae=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;let a=Tn("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=ut(n);n===1?this.userCode=` + `}},Nae=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;let a=wn("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=gt(n);n===1?this.userCode=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); @@ -4429,7 +4429,7 @@ return a / b;`,One=` } setOutput(result); } - `;function o(h){return d(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",d(h)}function u(h){return h[n-2]="("+h[n-2]+" + 1)",d(h)}function p(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",d(h)}function d(h){let m=e.map((b,y)=>c(y,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function c(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function Kae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return na({inputs:{x:r},backend:n});let l=X().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new qae(r.shape,o):new jae(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var Xae={kernelName:lo,backendName:"webgl",kernelFunc:Kae},Yae=class{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];let n=e[1],a=e[2];this.outputShape=e;let r="";typeof t=="number"?r=`float outputValue = ${t.toFixed(2)};`:r=` + `;function o(h){return d(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",d(h)}function u(h){return h[n-2]="("+h[n-2]+" + 1)",d(h)}function p(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",d(h)}function d(h){let m=e.map((b,y)=>c(y,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function c(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function Cae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return ta({inputs:{x:r},backend:n});let l=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Nae(r.shape,o):new Tae(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var _ae={kernelName:Qi,backendName:"webgl",kernelFunc:Cae},Eae=class{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];let n=e[1],a=e[2];this.outputShape=e;let r="";typeof t=="number"?r=`float outputValue = ${t.toFixed(2)};`:r=` vec3 fill = vec3(${t.join(",")}); float outputValue = fill[coords[3]];`,this.userCode=` void main() { @@ -4448,7 +4448,7 @@ return a / b;`,One=` } setOutput(outputValue); } - `}},Zae={kernelName:Ru,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new Yae(a.shape,s),[u,p]=C.getImageCenter(i,a.shape[1],a.shape[2]),d=[[u,p,Math.sin(r),Math.cos(r)]];return o.runWebGLProgram(l,[a],a.dtype,d)}},Jae=` + `}},Aae={kernelName:ku,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new Eae(a.shape,s),[u,p]=N.getImageCenter(i,a.shape[1],a.shape[2]),d=[[u,p,Math.sin(r),Math.cos(r)]];return o.runWebGLProgram(l,[a],a.dtype,d)}},$ae=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -4463,7 +4463,7 @@ return a / b;`,One=` return base + 1.0; } } -`,Qae=Ze({opSnippet:Jae}),ere={kernelName:uo,backendName:"webgl",kernelFunc:Qae},tre="return inversesqrt(x);",nre=Ze({opSnippet:tre,cpuKernelImpl:kZ}),are={kernelName:po,backendName:"webgl",kernelFunc:nre},SE=class{constructor(e,t,n,a,r,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let o=ut(r.length),l=ut(s.length),u="";n===1?u="i":n===2&&(u="i, j");let p=`getIndices(${u})`,d="";a===1?d="i":a===2&&(d="i, coords[1]");let c=`getUpdates(${d})`,h=t>1?"strides[j]":"strides";this.userCode=` +`,Fae=Ye({opSnippet:$ae}),Dae={kernelName:eo,backendName:"webgl",kernelFunc:Fae},Rae="return inversesqrt(x);",Mae=Ye({opSnippet:Rae,cpuKernelImpl:tZ}),Pae={kernelName:to,backendName:"webgl",kernelFunc:Mae},lE=class{constructor(e,t,n,a,r,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let o=gt(r.length),l=gt(s.length),u="";n===1?u="i":n===2&&(u="i, j");let p=`getIndices(${u})`,d="";a===1?d="i":a===2&&(d="i, coords[1]");let c=`getUpdates(${d})`,h=t>1?"strides[j]":"strides";this.userCode=` ${o} strides = ${o}(${r}); void main() { @@ -4483,7 +4483,7 @@ return a / b;`,One=` } setOutput(mix(getDefaultValue(), sum, float(found))); } - `}};function rre(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}=C.calculateShapes(s,r,i),c=[d/u,u];if(d===0)return n.makeTensorInfo(i,r.dtype);let h=he({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=he({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new SE(l,o,h.shape.length,m.shape.length,p,c),b=n.runWebGLProgram(g,[m,h,f],m.dtype),y=he({inputs:{x:b},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(f),y}var sre={kernelName:xu,backendName:"webgl",kernelFunc:rre},ire=class{constructor(e,t,n,a){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,n];let r="while (left < right) {",s=`for (int i = 0; i < ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,i=X().getNumber("WEBGL_VERSION")===2?r:s,o=a==="left"?"<":"<=";this.userCode=` + `}};function Oae(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=[d/u,u];if(d===0)return n.makeTensorInfo(i,r.dtype);let h=de({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=de({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new lE(l,o,h.shape.length,m.shape.length,p,c),b=n.runWebGLProgram(g,[m,h,f],m.dtype),y=de({inputs:{x:b},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(f),y}var Lae={kernelName:ou,backendName:"webgl",kernelFunc:Oae},zae=class{constructor(e,t,n,a){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,n];let r="while (left < right) {",s=`for (int i = 0; i < ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,i=H().getNumber("WEBGL_VERSION")===2?r:s,o=a==="left"?"<":"<=";this.userCode=` int findBound(int batch, float value) { int left = 0; int right = numInputs; @@ -4508,7 +4508,7 @@ return a / b;`,One=` setOutput(float(findBound(batch, value))); } - `}};function ore(e){let{inputs:t,backend:n,attrs:a}=e,{sortedSequence:r,values:s}=t,{side:i}=a,o=new ire(r.shape[0],r.shape[1],s.shape[1],i),l=[[r.shape[1]]];return n.runWebGLProgram(o,[r,s],"int32",l)}var lre={kernelName:Gm,backendName:"webgl",kernelFunc:ore},ure=class{constructor(e,t,n){this.variableNames=["c","a","b"],this.outputShape=t;let a,r;if(n>4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)r="resRC",a="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],l=[];for(let u=0;u4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)r="resRC",a="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],l=[];for(let u=0;u= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); -`,hre=Ze({opSnippet:dre}),mre={kernelName:wu,backendName:"webgl",kernelFunc:hre},fre=Qu+` +`,jae=Ye({opSnippet:Hae}),qae={kernelName:uu,backendName:"webgl",kernelFunc:jae},Kae=Wu+` return 1.0 / (1.0 + exp(-1.0 * x)); -`,gre=` +`,Xae=` vec4 result = 1.0 / (1.0 + exp(-1.0 * x)); bvec4 isNaN = isnan(x); @@ -4536,15 +4536,15 @@ return a / b;`,One=` result.a = isNaN.a ? x.a : result.a; return result; -`,bre=Ze({opSnippet:fre,packedOpSnippet:gre,cpuKernelImpl:TZ}),yre={kernelName:ho,backendName:"webgl",kernelFunc:bre},xre=` +`,Yae=Ye({opSnippet:Kae,packedOpSnippet:Xae,cpuKernelImpl:aZ}),Zae={kernelName:ao,backendName:"webgl",kernelFunc:Yae},Jae=` if (isnan(x)) { return 0.0; } return sign(x); -`,vre=Ze({opSnippet:xre}),wre={kernelName:Tu,backendName:"webgl",kernelFunc:vre},kre=Qu+` +`,Qae=Ye({opSnippet:Jae}),ere={kernelName:du,backendName:"webgl",kernelFunc:Qae},tre=Wu+` return sin(x); -`,Ire=Ze({opSnippet:kre}),Tre={kernelName:co,backendName:"webgl",kernelFunc:Ire},Sre=` +`,nre=Ye({opSnippet:tre}),are={kernelName:no,backendName:"webgl",kernelFunc:nre},rre=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,Nre=Ze({opSnippet:Sre}),Cre={kernelName:Iu,backendName:"webgl",kernelFunc:Nre},_re=` +`,sre=Ye({opSnippet:rre}),ire={kernelName:cu,backendName:"webgl",kernelFunc:sre},ore=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -4564,17 +4564,17 @@ return a / b;`,One=` result = log(exp_x + 1.0); } return result; -`,Ere=Ze({opSnippet:_re}),$re={kernelName:Su,backendName:"webgl",kernelFunc:Ere},Are=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((b,y)=>b*y),l=[[0,0]];l.push(...i);for(let b=1+s.length;bn.disposeIntermediateTensorInfo(b)),g},Fre={kernelName:Nu,backendName:"webgl",kernelFunc:Are};function Dre(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: +`,lre=Ye({opSnippet:ore}),ure={kernelName:hu,backendName:"webgl",kernelFunc:lre},pre=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((b,y)=>b*y),l=[[0,0]];l.push(...i);for(let b=1+s.length;bn.disposeIntermediateTensorInfo(b)),g},cre={kernelName:mu,backendName:"webgl",kernelFunc:pre};function dre(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]=NZ(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 Rre={kernelName:_c,backendName:"webgl",kernelFunc:Dre};function Mre(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]=CZ(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var Pre={kernelName:_u,backendName:"webgl",kernelFunc:Mre};function Ore(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]=sZ(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 hre={kernelName:dc,backendName:"webgl",kernelFunc:dre};function mre(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]=iZ(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var fre={kernelName:gu,backendName:"webgl",kernelFunc:mre};function gre(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]=j_(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var Lre={kernelName:Ec,backendName:"webgl",kernelFunc:Ore};function zre(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 + ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=A_(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var bre={kernelName:hc,backendName:"webgl",kernelFunc:gre};function yre(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]=j_(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var Wre={kernelName:$c,backendName:"webgl",kernelFunc:zre};function Bre(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}=C.calculateShapes(s,r,o),h=!1;if(s.dtype==="string"){let b=n.bufferSync(r),y=n.bufferSync(s),x=v.decodeString(n.readSync(i.dataId)[0]),w=IZ(b,y,o,c,p,u,l,d,x,h);return n.makeTensorInfo(o,w.dtype,w.values)}let m=new SE(u,l,r.shape.length,s.shape.length,d,[c,1],h),f=n.runWebGLProgram(m,[s,r,i],s.dtype),g=he({inputs:{x:f},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(f),g}var Vre={kernelName:Hm,backendName:"webgl",kernelFunc:Bre};function Ure(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=C.prepareSplitSize(r,s,o),u=r.shape.length,p=new Array(u).fill(0),d=r.shape.slice();return l.map(c=>{let h=[...d];h[o]=c;let m=ep({inputs:{x:r},backend:n,attrs:{begin:p,size:h}});return p[o]+=c,m})}var Gre={kernelName:Cu,backendName:"webgl",kernelFunc:Ure},NI="return sqrt(x);",Hre=Ze({opSnippet:NI,packedOpSnippet:NI,cpuKernelImpl:_Z}),jre={kernelName:mo,backendName:"webgl",kernelFunc:Hre},qre="return x * x;",Kre=Ze({opSnippet:qre}),Xre={kernelName:Ac,backendName:"webgl",kernelFunc:Kre},CI="return (a - b) * (a - b);",Yre=pn({opSnippet:CI,packedOpSnippet:CI}),Zre={kernelName:bo,backendName:"webgl",kernelFunc:Yre};function Jre({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Fa+` + ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=A_(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var xre={kernelName:mc,backendName:"webgl",kernelFunc:yre};function vre(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;if(s.dtype==="string"){let b=n.bufferSync(r),y=n.bufferSync(s),x=v.decodeString(n.readSync(i.dataId)[0]),w=nZ(b,y,o,c,p,u,l,d,x,h);return n.makeTensorInfo(o,w.dtype,w.values)}let m=new lE(u,l,r.shape.length,s.shape.length,d,[c,1],h),f=n.runWebGLProgram(m,[s,r,i],s.dtype),g=de({inputs:{x:f},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(f),g}var wre={kernelName:Im,backendName:"webgl",kernelFunc:vre};function kre(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=r.shape.length,p=new Array(u).fill(0),d=r.shape.slice();return l.map(c=>{let h=[...d];h[o]=c;let m=Vu({inputs:{x:r},backend:n,attrs:{begin:p,size:h}});return p[o]+=c,m})}var Ire={kernelName:fu,backendName:"webgl",kernelFunc:kre},sI="return sqrt(x);",Sre=Ye({opSnippet:sI,packedOpSnippet:sI,cpuKernelImpl:oZ}),Tre={kernelName:ro,backendName:"webgl",kernelFunc:Sre},Nre="return x * x;",Cre=Ye({opSnippet:Nre}),_re={kernelName:fc,backendName:"webgl",kernelFunc:Cre},iI="return (a - b) * (a - b);",Ere=un({opSnippet:iI,packedOpSnippet:iI}),Are={kernelName:oo,backendName:"webgl",kernelFunc:Ere};function $re({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Fa+` return x > 0.0 ? 1.0 : float(${t.alpha}); - `,s=new Cr(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var Qre={kernelName:bs,backendName:"webgl",kernelFunc:Jre},ese=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=ut(n.length),s=ut(n.length),i="";if(a===1)i="coords * strides + begin";else{let o=0;i=n.map((l,u)=>(o++,n.length===1?`coords * strides[${u}] + begin[${u}]`:`coords[${o-1}] * strides[${u}] + begin[${u}]`)).join(",")}this.userCode=` + `,s=new Sr(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var Fre={kernelName:hs,backendName:"webgl",kernelFunc:$re},Dre=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=gt(n.length),s=gt(n.length),i="";if(a===1)i="coords * strides + begin";else{let o=0;i=n.map((l,u)=>(o++,n.length===1?`coords * strides[${u}] + begin[${u}]`:`coords[${o-1}] * strides[${u}] + begin[${u}]`)).join(",")}this.userCode=` ${r} begin = ${r}(${e}); ${r} strides = ${r}(${t}); @@ -4582,15 +4582,15 @@ return a / b;`,One=` ${s} coords = getOutputCoords(); setOutput(getX(${i})); } - `}};function tse(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:b,begin:y,end:x,strides:w}=qt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=he({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let _=qt.computeOutShape(y,x,w),$=ep({inputs:{x:r},backend:n,attrs:{begin:y,size:_}});I=he({inputs:{x:$},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo($)}else if(n.shouldExecuteOnCPU([r])){let _=n.readSync(r.dataId),$=Le(r.shape,r.dtype,_),A=EZ(h,$,w,y);I=n.makeTensorInfo(m,r.dtype,A.values)}else{let _=new ese(y,w,h);I=n.runWebGLProgram(_,[r],r.dtype)}let N=he({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),N}var nse={kernelName:Eu,backendName:"webgl",kernelFunc:tse};function ase(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]=$Z(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var rse={kernelName:Fc,backendName:"webgl",kernelFunc:ase};function sse(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]=AZ(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 ise={kernelName:Dc,backendName:"webgl",kernelFunc:sse};function ose(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=FZ(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var lse={kernelName:Rc,backendName:"webgl",kernelFunc:ose},use="return tan(x);",pse=Ze({opSnippet:use}),cse={kernelName:xo,backendName:"webgl",kernelFunc:pse},dse=` + `}};function Rre(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:b,begin:y,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||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=jt.computeOutShape(y,x,w),E=Vu({inputs:{x:r},backend:n,attrs:{begin:y,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=lZ(h,E,w,y);I=n.makeTensorInfo(m,r.dtype,A.values)}else{let C=new Dre(y,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 Mre={kernelName:bu,backendName:"webgl",kernelFunc:Rre};function Pre(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]=uZ(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var Ore={kernelName:gc,backendName:"webgl",kernelFunc:Pre};function Lre(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]=pZ(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 zre={kernelName:bc,backendName:"webgl",kernelFunc:Lre};function Bre(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=cZ(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var Wre={kernelName:yc,backendName:"webgl",kernelFunc:Bre},Vre="return tan(x);",Ure=Ye({opSnippet:Vre}),Gre={kernelName:uo,backendName:"webgl",kernelFunc:Ure},Hre=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,hse=Ze({opSnippet:dse}),mse={kernelName:vo,backendName:"webgl",kernelFunc:hse},fse=class{constructor(e,t){this.variableNames=["A"];let n=new Array(e.length);for(let s=0;s5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],a=[];for(let r=0;r5){let o=n.readSync(r.dataId),l=r.dtype==="string"?o.map(d=>v.decodeString(d)):o,u=Le(r.shape,r.dtype,l),p=RZ(u,s);return n.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new fse(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var bse={kernelName:gs,backendName:"webgl",kernelFunc:NE},yse=class{constructor(e){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=e,this.userCode=` + `}};function Xre(e){let t=e.length;if(t>5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],a=[];for(let r=0;r5){let o=n.readSync(r.dataId),l=r.dtype==="string"?o.map(d=>v.decodeString(d)):o,u=Pe(r.shape,r.dtype,l),p=hZ(u,s);return n.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new Kre(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var Yre={kernelName:ds,backendName:"webgl",kernelFunc:uE},Zre=class{constructor(e){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=e,this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -4630,7 +4630,7 @@ return a / b;`,One=` setOutput(float(i1)); } } - `}},xse=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode=` + `}},Jre=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode=` void main() { // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ... ivec2 coords = getOutputCoords(); @@ -4664,7 +4664,7 @@ return a / b;`,One=` setOutput(x0 >= x1 ? float(i0) : float(i1)); } - `}};function js(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function _I(e){let t=1;for(;tl){let A=n.readSync(r.dataId),[M,D]=MZ(A,u,r.dtype,s,i);return[n.makeTensorInfo(M.shape,M.dtype,M.values),n.makeTensorInfo(D.shape,D.dtype,D.values)]}if(s===0)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(p===1)return[r,yd({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=he({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&js(n,h);let g=_I(s),b=_I(p),y=null,x=()=>y===null?[f,f]:[f,y],w=(A,M,D)=>{let T=x(),P=new yse(D),U=[[p],[y===null?1:0],[Number.NEGATIVE_INFINITY],[A],[M]],j=y;y=n.runWebGLProgram(P,T,"int32",U),js(n,j)};for(let A=1;A=1;D/=2)w(M,D,[m,b])}for(let A=b;A>g;A/=2){let M=x(),D=new xse([m,A/2]),T=[[p],[y===null?1:0],[g]],P=y;y=n.runWebGLProgram(D,M,"int32",T),js(n,P);let U=g/2,j=U*2;for(let q=U;q>=1;q/=2)w(j,q,y.shape)}let I=y;y=ep({inputs:{x:y},backend:n,attrs:{begin:0,size:[m,s]}}),js(n,I);let N=bE({inputs:{x:f,indices:y},backend:n,attrs:{axis:1,batchDims:1}});js(n,f);let _=u.slice(0,-1);_.push(s),I=y,y=he({inputs:{x:y},attrs:{shape:_},backend:n}),js(n,I);let $=N;return N=he({inputs:{x:N},attrs:{shape:_},backend:n}),js(n,$),[N,y]}var wse={kernelName:$u,backendName:"webgl",kernelFunc:vse},kse=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 oI(e){let t=1;for(;tl){let A=n.readSync(r.dataId),[R,F]=mZ(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,rd({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=oI(s),b=oI(p),y=null,x=()=>y===null?[f,f]:[f,y],w=(A,R,F)=>{let S=x(),M=new Zre(F),W=[[p],[y===null?1:0],[Number.NEGATIVE_INFINITY],[A],[R]],U=y;y=n.runWebGLProgram(M,S,"int32",W),Os(n,U)};for(let A=1;A=1;F/=2)w(R,F,[m,b])}for(let A=b;A>g;A/=2){let R=x(),F=new Jre([m,A/2]),S=[[p],[y===null?1:0],[g]],M=y;y=n.runWebGLProgram(F,R,"int32",S),Os(n,M);let W=g/2,U=W*2;for(let G=W;G>=1;G/=2)w(U,G,y.shape)}let I=y;y=Vu({inputs:{x:y},backend:n,attrs:{begin:0,size:[m,s]}}),Os(n,I);let T=eE({inputs:{x:f,indices:y},backend:n,attrs:{axis:1,batchDims:1}});Os(n,f);let C=u.slice(0,-1);C.push(s),I=y,y=de({inputs:{x:y},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,y]}var ese={kernelName:yu,backendName:"webgl",kernelFunc:Qre},tse=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) { @@ -4776,7 +4776,7 @@ return a / b;`,One=` } setOutput(outputValue); } - `}};function Ise(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],b=new kse(d,c,i,o,l,g);return n.runWebGLProgram(b,[r,s],"float32")}var Tse={kernelName:Au,backendName:"webgl",kernelFunc:Ise};function Sse(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;Ku(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}=PZ(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var Nse={kernelName:jm,backendName:"webgl",kernelFunc:Sse};function Cse(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 _se={kernelName:Fu,backendName:"webgl",kernelFunc:Cse},Ese=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 nse(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],b=new tse(d,c,i,o,l,g);return n.runWebGLProgram(b,[r,s],"float32")}var ase={kernelName:xu,backendName:"webgl",kernelFunc:nse};function rse(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;Pu(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}=fZ(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var sse={kernelName:Sm,backendName:"webgl",kernelFunc:rse};function ise(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 ose={kernelName:vu,backendName:"webgl",kernelFunc:ise},lse=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}) { @@ -4882,7 +4882,7 @@ return a / b;`,One=` } setOutput(${l}); } - `}};function $se(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=C.getAxesPermutation([u],o),d=r;p!=null&&(d=Nn({inputs:{x:r},backend:n,attrs:{perm:p}}),l.push(d),u=C.getInnerMostAxes(1,o)[0]);let c=C.segment_util.computeOutShape(d.shape,u,i),h=v.sizeFromShape([d.shape[u]]),m=he({inputs:{x:d},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=Km(r.dtype),g=(w,I,N,_,$)=>{let A=w.shape[0],M=w.shape[1],D=C.segment_util.segOpComputeOptimalWindowSize(M,$),T={windowSize:D,inSize:M,batchSize:A,numSegments:$},P=new Ese(T,I),U=n.compileAndRun(P,[w,N],_);if(l.push(U),U.shape[1]===$)return U;let j=TE({backend:n,attrs:{start:0,stop:$,step:1,dtype:"float32"}}),q=NE({inputs:{x:j},backend:n,attrs:{reps:[M/D]}});return l.push(j),l.push(q),g(U,I,q,_,$)},b=g(m,"unsortedSegmentSum",s,f,i),y=he({inputs:{x:b},backend:n,attrs:{shape:c}}),x=y;if(p!=null){l.push(y);let w=C.getUndoAxesPermutation(p);x=Nn({inputs:{x},backend:n,attrs:{perm:w}})}return l.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}var Ase={kernelName:Mc,backendName:"webgl",kernelFunc:$se},Fse=[AJ,DJ,PJ,zJ,BJ,GJ,jJ,KJ,JJ,e9,a9,i9,u9,h9,g9,y9,v9,T9,N9,_9,F9,z9,B9,U9,X9,Z9,tQ,dJ,rQ,uQ,hQ,xQ,wQ,IQ,SQ,CQ,$Q,DQ,PQ,LQ,WQ,VQ,HQ,qQ,ZQ,QQ,nee,see,oee,cee,fee,xee,kee,See,Nee,_ee,$ee,Fee,Ree,Pee,Wee,Uee,jee,Kee,Zee,ete,rte,lte,cJ,pte,oQ,hte,gte,xte,mJ,Ite,Cte,Ete,Dte,Pte,Wte,Ute,qte,Zte,ene,nne,ine,lne,pne,mne,gne,yne,vne,kne,Nne,$ne,Rne,Vne,xJ,jne,Xne,Jne,tae,H9,rae,iae,lae,cae,fae,gJ,bae,xae,vae,j9,Lne,Iae,Cae,Aae,wJ,Mae,Lae,Vae,Hae,Xae,Zae,ere,are,sre,lre,cre,mre,yre,wre,Tre,Cre,O9,Wne,$re,Fre,Rre,Pre,Lre,Wre,Vre,Gre,jre,Xre,Zre,Qre,nse,rse,ise,lse,zne,_J,cse,mse,bse,wse,Tse,EJ,Nse,_se,Ase,sae];for(let e of Fse)Pc(e);var At;(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"})(At||(At={}));var bc;(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"})(bc||(bc={}));var CE;function Dse(e){CE=e.wasm.cwrap(oi,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Rse(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 $=n.dataIdMap.get(i.dataId);if($.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${$.shape.length}.`);m=$.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=bc[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let b=l?r.shape[2]:r.shape[1],y=u?s.shape[1]:s.shape[2],x=Mu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),w=n.makeOutput([...x,b,y],r.dtype),I=n.dataIdMap.get(w.dataId).id,N=new Uint8Array(new Int32Array(r.shape).buffer),_=new Uint8Array(new Int32Array(s.shape).buffer);return CE(c,N,r.shape.length,h,_,s.shape.length,l,u,g,m,f,d||0,I),w}var Mse={kernelName:oi,backendName:"wasm",setupFunc:Dse,kernelFunc:Rse};function rn(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,At[o.dtype],p),u}return{kernelName:e,backendName:"wasm",setupFunc:a,kernelFunc:r}}var Pse=rn(Al);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=C.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),b=new Uint8Array(new Int32Array(p.shape).buffer),y=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,b,p.shape.length,At[u.dtype],y),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var Ose=!0,Lse=cn(ms,Ose),_E;function zse(e){_E=e.wasm.cwrap(Ii,null,["array","number","number","number"])}function Wse(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 _E(s,r.length,At[a.dtype],i),a}var Bse={kernelName:Ii,backendName:"wasm",setupFunc:zse,kernelFunc:Wse};function ig(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var Vse={kernelName:Vi,backendName:"wasm",kernelFunc:ig},EE;function Use(e){EE=e.wasm.cwrap(_r,null,["number","array","number","number","number","array","number"])}function cs(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=Hse(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 jse={kernelName:_r,backendName:"wasm",kernelFunc:cs,setupFunc:Use};function _s(e,t,n){let a=e.shape,r=e.shape.length,s=v.parseAxisParam(t,a),i=s,o=C.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 sie={kernelName:yu,backendName:"wasm",kernelFunc:Un},RE;function iie(e){RE=e.wasm.cwrap(Ni,null,["number","array","number","number","array","number","number","number","number"])}function oie(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),b=v.sizeFromShape(f),y=Mu.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?[b,h,d]:[b,d,h],I=Un({inputs:{x:r},backend:n,attrs:{shape:x}}),N=Un({inputs:{x:s},backend:n,attrs:{shape:w}}),_=n.dataIdMap.get(I.dataId).id,$=n.dataIdMap.get(N.dataId).id,A=i?I.shape[2]:I.shape[1],M=o?N.shape[1]:N.shape[2],D=Math.max(g,b),T=n.makeOutput([D,A,M],I.dtype),P=n.dataIdMap.get(T.dataId).id,U=new Uint8Array(new Int32Array(I.shape).buffer),j=new Uint8Array(new Int32Array(N.shape).buffer);return RE(_,U,I.shape.length,$,j,N.shape.length,i,o,P),n.disposeData(I.dataId),n.disposeData(N.dataId),T.shape=y,T}var lie={kernelName:Ni,backendName:"wasm",setupFunc:iie,kernelFunc:oie};function wi(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=qt.parseSliceParams(t,n,a),o=qt.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=qt.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=sm(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)uie(l,p[0],c,s,i);else if(h===3)pie(l,p[0],p[1],c,s,i);else if(h===4)cie(l,p[0],p[1],p[2],c,s,i);else{let m=sm(l,s,i,t.shape,t.dtype);c.set(m)}return u}function uie(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;ub*y),l=C.getReshaped(r.shape,s,o),u=C.getPermuted(l.length,s.length),p=C.getReshapedPermuted(r.shape,s,o),d=C.getSliceBeginCoords(i,s.length),c=C.getSliceSize(p,i,s.length),h=Un({inputs:{x:r},backend:n,attrs:{shape:l}}),m=cs({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Un({inputs:{x:m},backend:n,attrs:{shape:p}}),g=wi({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 mie={kernelName:Bl,backendName:"wasm",kernelFunc:hie};function tp(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 fie={kernelName:Ci,backendName:"wasm",kernelFunc:tp},gie=rn(_i),ME;function bie(e){ME=e.wasm.cwrap(fs,null,["number","number","number","number"])}function yie(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 ME(o,s,i,u),l}var xie={kernelName:fs,backendName:"wasm",setupFunc:bie,kernelFunc:yie};function PE(e){let{inputs:t,backend:n}=e,a=v.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=C.computeOutShape(t.map(h=>h.shape),a),s=t.filter(h=>v.sizeFromShape(h.shape)>0);if(s.length===1)return ig({inputs:{x:s[0]},backend:n});let i=n.makeOutput(r,t[0].dtype);if(v.sizeFromShape(r)===0)return i;let o=s.map(h=>h.shape);if(C.assertParamsConsistent(o,a),s[0].dtype==="string"){let h=s.map(x=>{let w=v.sizeFromShape(x.shape.slice(a));return Un({inputs:{x},backend:n,attrs:{shape:[-1,w]}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));r=C.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=G0(m,r,t[0].dtype,f),b=C.computeOutShape(s.map(x=>x.shape),a);i.shape=b;let y=n.dataIdMap.get(i.dataId);return y.stringBytes=C.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),i}let l=v.sizeFromShape(s[0].shape.slice(0,a)),u=0,p=s.map(h=>{let m=v.sizeFromShape(h.shape.slice(a));return u+=m,m}),d=s.map(h=>n.typedArrayFromHeap(h)),c=n.typedArrayFromHeap(i);for(let h=0;h`cumprod does not support ${r.dtype} tensors in the WASM backend`);let u=C.getAxesPermutation([s],l),p=r;u!==null&&(p=cs({inputs:{x:r},attrs:{perm:u},backend:n}));let d=C.getInnerMostAxes(1,l)[0];C.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;WE(m,i?1:0,o?1:0,h,f,At[r.dtype]);let g=c;if(u!==null){let b=C.getUndoAxesPermutation(u);g=cs({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Rie={kernelName:Ul,backendName:"wasm",setupFunc:Fie,kernelFunc:Die},BE;function Mie(e){BE=e.wasm.cwrap(Di,null,["number","number","number","number","number","number"])}function Pie(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=C.getAxesPermutation([s],l),p=r;u!==null&&(p=cs({inputs:{x:r},attrs:{perm:u},backend:n}));let d=C.getInnerMostAxes(1,l)[0];C.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;BE(m,i?1:0,o?1:0,h,f,At[r.dtype]);let g=c;if(u!==null){let b=C.getUndoAxesPermutation(u);g=cs({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Oie={kernelName:Di,backendName:"wasm",setupFunc:Mie,kernelFunc:Pie},VE;function Lie(e){VE=e.wasm.cwrap(Hl,null,["number","number","number","array","number","array","array","number","number"])}function zie(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,b=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(v.computeStrides(m)).buffer),w=t.dataIdMap.get(f.dataId).id;return VE(g,s,i==="NHWC"?1:0,b,r.shape.length-1,y,x,m.length,w),f}var Wie={kernelName:Hl,backendName:"wasm",setupFunc:Lie,kernelFunc:zie},UE;function Bie(e){UE=e.wasm.cwrap(Ri,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Vie(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=C.computeConv2DInfo(r.shape,s.shape,l,c,p,d,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,b=h.padInfo.right,y=h.padInfo.bottom,x=h.padInfo.left,w=h.dilationHeight,I=h.dilationWidth,N=h.strideHeight,_=h.strideWidth,$=h.inChannels,A=h.outChannels,M=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 D=a.makeOutput(h.outShape,"float32"),T=a.dataIdMap.get(D.dataId).id;return UE(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,b,y,x,M,w,I,N,_,$,A,T),D}var Uie={kernelName:Ri,backendName:"wasm",setupFunc:Bie,kernelFunc:Vie},Gie=rn(Pi),Hie=!1,jie=cn(ql,Hie,"bool"),qie=rn(Oi,"float32");function Fx(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),Un({inputs:{x:r},backend:a,attrs:{shape:o}})}var Kie={kernelName:Kl,backendName:"wasm",kernelFunc:Fx};function GE(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 Xie={kernelName:Tc,backendName:"wasm",kernelFunc:GE},HE;function Yie(e){HE=e.wasm.cwrap(Yl,null,["number","number","number","number","number","number"])}function Zie(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 HE(s,o,l,u,p,i),r}var Jie={kernelName:Yl,backendName:"wasm",kernelFunc:Zie,setupFunc:Yie},Qie=rn(Li),eoe=!1,toe=cn(zi,eoe),jE;function noe(e){jE=e.wasm.cwrap(Wi,null,["number","number","number","number","number","number","number"])}function aoe(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 jE(p,d,c,h,m,r,g),f}var roe={kernelName:Wi,backendName:"wasm",setupFunc:noe,kernelFunc:aoe},qE;function soe(e){qE=e.wasm.cwrap(li,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=C.computeConv2DInfo(r.shape,s.shape,l,p,u,c),g=bc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let ae=a.dataIdMap.get(i.dataId);if(ae.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${ae.shape}) does not match the number of output channels (${x})`);w=ae.id}let I=f.filterHeight,N=f.filterWidth,_=f.padInfo.top,$=f.padInfo.right,A=f.padInfo.bottom,M=f.padInfo.left,D=f.dilationHeight,T=f.dilationWidth,P=f.strideHeight,U=f.strideWidth,j=f.inChannels,q=f.padInfo.type==="SAME"?1:0,K=f.batchSize,Y=f.inHeight,te=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let re=a.makeOutput(f.outShape,"float32"),J=a.dataIdMap.get(re.dataId).id,ie=o==null?0:a.dataIdMap.get(o.dataId).id;return qE(b,K,Y,te,y,I,N,w,_,$,A,M,q,D,T,P,U,j,x,g,ie,m||0,J),re}var ooe={kernelName:li,backendName:"wasm",setupFunc:soe,kernelFunc:ioe},KE;function loe(e){KE=e.wasm.cwrap(ui,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 uoe(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=C.computeConv2DInfo(r.shape,s.shape,l,p,u,c,!0),g=bc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let ae=a.dataIdMap.get(i.dataId);if(ae.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${ae.shape}) does not match the number of output channels (${x})`);w=ae.id}let I=f.filterHeight,N=f.filterWidth,_=f.padInfo.top,$=f.padInfo.right,A=f.padInfo.bottom,M=f.padInfo.left,D=f.dilationHeight,T=f.dilationWidth,P=f.strideHeight,U=f.strideWidth,j=f.inChannels,q=f.padInfo.type==="SAME"?1:0,K=f.batchSize,Y=f.inHeight,te=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let re=a.makeOutput(f.outShape,"float32"),J=a.dataIdMap.get(re.dataId).id,ie=o==null?0:a.dataIdMap.get(o.dataId).id;return KE(b,K,Y,te,y,I,N,w,_,$,A,M,q,D,T,P,U,j,x,g,ie,m||0,J),re}var poe={kernelName:ui,backendName:"wasm",setupFunc:loe,kernelFunc:uoe},XE;function coe(e){XE=e.wasm.cwrap(Jl,null,["number","number","number","number","number","number","array","number"])}function doe(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Qx.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 XE(c,At[a.dtype],h,i,d,o,m,f),u}var hoe={kernelName:Jl,backendName:"wasm",setupFunc:coe,kernelFunc:doe},YE;function moe(e){YE=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function foe(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 _=0;_=0,()=>`GatherV2: the index value ${$} is not in [0, ${p-1}]`)}let d=C.segment_util.collectGatherOpShapeInfo(r,s,l,o),c=Un({inputs:{x:r},attrs:{shape:[d.batchSize,d.outerSize,d.dimSize,d.sliceSize]},backend:t}),h=v.sizeFromShape(s.shape),m=Un({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 b=c.shape.length-1,y=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),N=new Uint8Array(new Int32Array(v.computeStrides(f)).buffer);return YE(y,At[r.dtype],I,b,x,d.batchSize,N,w),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var goe={kernelName:Zl,backendName:"wasm",setupFunc:moe,kernelFunc:foe},boe=!1,yoe=cn(Ql,boe,"bool"),xoe=!1,voe=cn(Bi,xoe,"bool"),ZE;function woe(e){ZE=e.wasm.cwrap(Ui,null,["number","number","number","number"])}function koe(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;ZE(r,At[t.dtype],n,i)}return s}var Ioe={kernelName:Ui,backendName:"wasm",setupFunc:woe,kernelFunc:koe},Toe=!1,Soe=cn(au,Toe,"bool"),Noe=!1,Coe=cn(ru,Noe,"bool"),_oe=rn(Gi),Eoe=!1,$oe=cn(iu,Eoe,"bool"),Aoe=rn(ou),Foe=!1,Doe=cn(lu,Foe,"bool"),Roe=!1,Moe=cn(qI,Roe,"bool"),JE;function Poe(e){JE=e.wasm.cwrap(Hi,null,["number","number","number","number"])}function Ooe(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}=_s(i,r,t);if(c){let y=t.dataIdMap.get(u.dataId).id;l=u,o=y}let h=l.shape.length;C.assertAxesAreInnerMostDims("max",p,h);let[m,f]=C.computeOutAndReduceShapes(l.shape,p),g=v.sizeFromShape(f),b=t.makeOutput(m,i.dtype);if(v.sizeFromShape(l.shape)!==0){let y=t.dataIdMap.get(b.dataId).id;JE(o,At[i.dtype],g,y)}if(c&&t.disposeData(u.dataId),s){let y=C.expandShapeToKeepDim(b.shape,d);b.shape=y}return b}var Loe={kernelName:Hi,backendName:"wasm",setupFunc:Poe,kernelFunc:Ooe},zoe=!1,Woe=cn(ji,zoe),QE;function Boe(e){QE=e.wasm.cwrap(qi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Voe(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=C.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,b=p.dilationHeight,y=p.dilationWidth,x=p.strideHeight,w=p.strideWidth,I=p.inChannels,N=p.outChannels;if(p.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${p.dataFormat}'. Please use 'channelsLast'.`);let _=a.makeOutput(p.outShape,"float32"),$=a.dataIdMap.get(_.dataId).id;return QE(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,b,y,x,w,I,N,$),_}var Uoe={kernelName:qi,backendName:"wasm",setupFunc:Boe,kernelFunc:Voe},e$;function Goe(e){e$=e.wasm.cwrap(Ki,null,["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}=_s(i,r,t),m=d;if(h){let w=t.dataIdMap.get(p.dataId).id;w!==o&&(u=p,l=w,m=C.getInnerMostAxes(m.length,u.shape.length))}C.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=C.computeOutAndReduceShapes(u.shape,m),b=v.sizeFromShape(g),y=u;u.dtype!=="float32"&&(y=tp({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(y.dataId).id);let x=t.makeOutput(f,"float32");if(v.sizeFromShape(u.shape)!==0){let w=t.dataIdMap.get(x.dataId).id;e$(l,b,w)}if(h&&t.disposeData(p.dataId),s){let w=C.expandShapeToKeepDim(x.shape,c);x.shape=w}return u.dtype!=="float32"&&t.disposeData(y.dataId),x}var joe={kernelName:Ki,backendName:"wasm",setupFunc:Goe,kernelFunc:Hoe},t$;function qoe(e){t$=e.wasm.cwrap(Xi,null,["number","number","number","number"])}function Koe(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}=_s(i,r,t);if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x)}let m=u.shape.length;C.assertAxesAreInnerMostDims("min",d,m);let[f,g]=C.computeOutAndReduceShapes(u.shape,d),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;t$(l,At[i.dtype],b,x)}if(h&&t.disposeData(p.dataId),s){let x=C.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Xoe={kernelName:Xi,backendName:"wasm",setupFunc:qoe,kernelFunc:Koe},Yoe=!1,Zoe=cn(Yi,Yoe),Dx;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(Dx||(Dx={}));var n$;function Joe(e){n$=e.wasm.cwrap(Zi,null,["number","array","number","number","array","array","number","number"])}function Qoe(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 n$(i,u,t.shape.length,At[t.dtype],c,h,Dx[r],l),o}var ele={kernelName:Zi,backendName:"wasm",kernelFunc:Qoe,setupFunc:Joe},tle=!0,nle=cn(Ji,tle),ale=rn(pu);function f1(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 a$;function rle(e){a$=e.wasm.cwrap(du,"number",["number","number","number","number","number"])}function sle(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=a$(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=f1(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var ile={kernelName:du,backendName:"wasm",setupFunc:rle,kernelFunc:sle},r$;function ole(e){r$=e.wasm.cwrap(hu,"number",["number","number","number","number","number","bool"])}function lle(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=r$(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=f1(t,c);t.wasm._free(f);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([],"int32",g);return[b,y]}var ule={kernelName:hu,backendName:"wasm",setupFunc:ole,kernelFunc:lle},s$;function ple(e){s$=e.wasm.cwrap(mu,"number",["number","number","number","number","number","number"])}function cle(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=s$(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=f1(t,c);t.wasm._free(g);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([m],"float32",f);return[b,y]}var dle={kernelName:mu,backendName:"wasm",setupFunc:ple,kernelFunc:cle},hle=!1,mle=cn(cu,hle,"bool"),i$;function fle(e){i$=e.wasm.cwrap(Qi,null,["number","number","number","number","number"])}function gle(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 i$(d,i,o,l,p),u}var ble={kernelName:Qi,backendName:"wasm",setupFunc:fle,kernelFunc:gle};function yle(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var xle={kernelName:fu,backendName:"wasm",kernelFunc:yle};function vle(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return Fx({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=Fx({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=PE({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var wle={kernelName:gu,backendName:"wasm",kernelFunc:vle},o$;function kle(e){o$=e.wasm.cwrap(eo,null,["number","array","number","number","array","array","number","number"])}function Ile(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 GE({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 o$(i,u,t.shape.length,At[t.dtype],c,h,r,l),o}var l$={kernelName:eo,backendName:"wasm",kernelFunc:Ile,setupFunc:kle},Tle=!1,Sle=cn(to,Tle),u$;function Nle(e){u$=e.wasm.cwrap(no,null,["number","number","number"])}function Cle(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=tp({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 u$(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var _le={kernelName:no,backendName:"wasm",setupFunc:Nle,kernelFunc:Cle},p$;function Ele(e){p$=e.wasm.cwrap(ao,null,["number","number","number","number"])}function $le(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}=_s(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=C.getInnerMostAxes(m.length,u.shape.length))}C.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=C.computeOutAndReduceShapes(u.shape,m),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;p$(l,b,At[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=C.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Ale={kernelName:ao,backendName:"wasm",setupFunc:Ele,kernelFunc:$le},Fle=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=q0(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},Dle={kernelName:Cc,backendName:"wasm",kernelFunc:Fle},Rle=!0,Mle=cn(Mi,Rle),Ple=rn(ro),Ole=rn(oo),c$;function Lle(e){c$=e.wasm.cwrap(io,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.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=tp({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let b=f.id,y=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return y;let x=t.dataIdMap.get(y.dataId).id;return c$(b,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),y}var Wle={kernelName:io,backendName:"wasm",setupFunc:Lle,kernelFunc:zle},d$;function Ble(e){d$=e.wasm.cwrap(so,null,["number","number","number","number","number","number","number","number","number","number"])}function Vle(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),b;g.dtype!=="float32"&&(b=tp({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(b.dataId));let y=g.id,x=t.dataIdMap.get(f.dataId).id;return d$(y,p,d,c,h,l,u,s?1:0,i?1:0,x),b!=null&&t.disposeData(b.dataId),f}var Ule={kernelName:so,backendName:"wasm",setupFunc:Ble,kernelFunc:Vle},h$;function Gle(e){h$=e.wasm.cwrap(lo,null,["number","array","number","array","number","number"])}function Hle(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 ig({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);h$(l,p,i.length,d,r.shape.length,u);let c=Un({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),c}var jle={kernelName:lo,backendName:"wasm",kernelFunc:Hle,setupFunc:Gle},m$;function qle(e){m$=e.wasm.cwrap(Ru,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Kle(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]=C.getImageCenter(o,c,h),b=i===0,y=255,x=typeof i=="number"?[i,i,i,b?0:y]:[...i,y],w=new Uint8Array(new Int32Array(x).buffer);return m$(u,d,c,h,m,s,f,g,w,x.length,p),l}var Xle={kernelName:Ru,backendName:"wasm",kernelFunc:Kle,setupFunc:qle},Yle=rn(uo),Zle=rn(po),f$;function Jle(e){f$=e.wasm.cwrap(xu,null,["number","number","number","number","number","number","array","number","number"])}function Qle(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}=ev.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 f$(h,m,At[s.dtype],l,u,p,f,c,g),o}var eue={kernelName:xu,backendName:"wasm",setupFunc:Jle,kernelFunc:Qle},g$;function tue(e){g$=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function nue(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 g$(i,o,l,h,p),u}var aue={kernelName:vu,backendName:"wasm",kernelFunc:nue,setupFunc:tue},b$;function rue(e){b$=e.wasm.cwrap(ho,null,["number","number"])}function sue(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||b$(a,s),r}var iue={kernelName:"Sigmoid",backendName:"wasm",setupFunc:rue,kernelFunc:sue},oue=rn(co),y$;function lue(e){y$=e.wasm.cwrap(go,null,["number","number","number","number"])}function uue(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||y$(r,i,o,l),s}var pue={kernelName:go,backendName:"wasm",setupFunc:lue,kernelFunc:uue};function cue(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 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 lse(S,I),W=n.compileAndRun(M,[w,T],C);if(l.push(W),W.shape[1]===E)return W;let U=oE({backend:n,attrs:{start:0,stop:E,step:1,dtype:"float32"}}),G=uE({inputs:{x:U},backend:n,attrs:{reps:[R/F]}});return l.push(U),l.push(G),g(W,I,G,C,E)},b=g(m,"unsortedSegmentSum",s,f,i),y=de({inputs:{x:b},backend:n,attrs:{shape:c}}),x=y;if(p!=null){l.push(y);let w=N.getUndoAxesPermutation(p);x=kn({inputs:{x},backend:n,attrs:{perm:w}})}return l.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}var pse={kernelName:xc,backendName:"webgl",kernelFunc:use},cse=[lJ,pJ,hJ,gJ,yJ,wJ,IJ,TJ,EJ,$J,RJ,OJ,BJ,GJ,qJ,XJ,ZJ,t9,a9,s9,u9,g9,y9,v9,N9,_9,F9,HZ,M9,B9,G9,Y9,J9,eQ,nQ,rQ,oQ,pQ,hQ,fQ,bQ,xQ,kQ,SQ,_Q,AQ,DQ,PQ,LQ,VQ,jQ,YQ,QQ,nee,aee,see,oee,uee,cee,hee,bee,vee,Iee,Tee,_ee,$ee,Mee,zee,GZ,Wee,L9,Gee,qee,Yee,qZ,ete,rte,ite,pte,hte,bte,vte,Ste,_te,$te,Dte,Ote,zte,Wte,Hte,qte,Xte,Zte,Qte,ane,one,cne,xne,YZ,Ine,Nne,Ene,Fne,k9,Mne,One,zne,Vne,jne,XZ,Kne,Yne,Jne,Qne,I9,fne,nae,iae,pae,JZ,mae,bae,wae,Sae,_ae,Aae,Dae,Pae,Lae,Wae,Gae,qae,Zae,ere,are,ire,m9,bne,ure,cre,hre,fre,bre,xre,wre,Ire,Tre,_re,Are,Fre,Mre,Ore,zre,Wre,gne,sJ,Gre,qre,Yre,ese,ase,iJ,sse,ose,pse,Pne];for(let e of cse)vc(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 tc;(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"})(tc||(tc={}));var pE;function dse(e){pE=e.wasm.cwrap(Js,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function hse(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=tc[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let b=l?r.shape[2]:r.shape[1],y=u?s.shape[1]:s.shape[2],x=Iu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),w=n.makeOutput([...x,b,y],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 pE(c,T,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),w}var mse={kernelName:Js,backendName:"wasm",setupFunc:dse,kernelFunc:hse};function nn(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 fse=nn(xl);function pn(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),b=new Uint8Array(new Int32Array(p.shape).buffer),y=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,b,p.shape.length,Et[u.dtype],y),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var gse=!0,bse=pn(ps,gse),cE;function yse(e){cE=e.wasm.cwrap(mi,null,["array","number","number","number"])}function xse(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 cE(s,r.length,Et[a.dtype],i),a}var vse={kernelName:mi,backendName:"wasm",setupFunc:yse,kernelFunc:xse};function Pf(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var wse={kernelName:Di,backendName:"wasm",kernelFunc:Pf},dE;function kse(e){dE=e.wasm.cwrap(Tr,null,["number","array","number","number","number","array","number"])}function os(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=Sse(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 Tse={kernelName:Tr,backendName:"wasm",kernelFunc:os,setupFunc:kse};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 Lse={kernelName:iu,backendName:"wasm",kernelFunc:zn},bE;function zse(e){bE=e.wasm.cwrap(bi,null,["number","array","number","number","array","number","number","number","number"])}function Bse(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),b=v.sizeFromShape(f),y=Iu.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?[b,h,d]:[b,d,h],I=zn({inputs:{x:r},backend:n,attrs:{shape:x}}),T=zn({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,b),S=n.makeOutput([F,A,R],I.dtype),M=n.dataIdMap.get(S.dataId).id,W=new Uint8Array(new Int32Array(I.shape).buffer),U=new Uint8Array(new Int32Array(T.shape).buffer);return bE(C,W,I.shape.length,E,U,T.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(T.dataId),S.shape=y,S}var Wse={kernelName:bi,backendName:"wasm",setupFunc:zse,kernelFunc:Bse};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=Ph(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)Vse(l,p[0],c,s,i);else if(h===3)Use(l,p[0],p[1],c,s,i);else if(h===4)Gse(l,p[0],p[1],p[2],c,s,i);else{let m=Ph(l,s,i,t.shape,t.dtype);c.set(m)}return u}function Vse(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;ub*y),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=zn({inputs:{x:r},backend:n,attrs:{shape:l}}),m=os({inputs:{x:h},backend:n,attrs:{perm:u}}),f=zn({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 qse={kernelName:El,backendName:"wasm",kernelFunc:jse};function Uu(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 Kse={kernelName:yi,backendName:"wasm",kernelFunc:Uu},Xse=nn(xi),yE;function Yse(e){yE=e.wasm.cwrap(cs,null,["number","number","number","number"])}function Zse(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 yE(o,s,i,u),l}var Jse={kernelName:cs,backendName:"wasm",setupFunc:Yse,kernelFunc:Zse};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 Pf({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 zn({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=T0(m,s,t[0].dtype,f),b=N.computeOutShape(i.map(x=>x.shape),a);o.shape=b;let y=n.dataIdMap.get(o.dataId);return y.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=os({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;IE(m,i?1:0,o?1:0,h,f,Et[r.dtype]);let g=c;if(u!==null){let b=N.getUndoAxesPermutation(u);g=os({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var hie={kernelName:$l,backendName:"wasm",setupFunc:cie,kernelFunc:die},SE;function mie(e){SE=e.wasm.cwrap(Si,null,["number","number","number","number","number","number"])}function fie(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=os({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;SE(m,i?1:0,o?1:0,h,f,Et[r.dtype]);let g=c;if(u!==null){let b=N.getUndoAxesPermutation(u);g=os({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var gie={kernelName:Si,backendName:"wasm",setupFunc:mie,kernelFunc:fie},TE;function bie(e){TE=e.wasm.cwrap(Dl,null,["number","number","number","array","number","array","array","number","number"])}function yie(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,b=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(v.computeStrides(m)).buffer),w=t.dataIdMap.get(f.dataId).id;return TE(g,s,i==="NHWC"?1:0,b,r.shape.length-1,y,x,m.length,w),f}var xie={kernelName:Dl,backendName:"wasm",setupFunc:bie,kernelFunc:yie},NE;function vie(e){NE=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 wie(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,b=h.padInfo.right,y=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 NE(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,b,y,x,R,w,I,T,C,E,A,S),F}var kie={kernelName:Ti,backendName:"wasm",setupFunc:vie,kernelFunc:wie},Iie=nn(Ci),Sie=!1,Tie=pn(Ml,Sie,"bool"),Nie=nn(_i,"float32");function dx(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),zn({inputs:{x:r},backend:a,attrs:{shape:o}})}var Cie={kernelName:Pl,backendName:"wasm",kernelFunc:dx};function CE(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 _ie={kernelName:lc,backendName:"wasm",kernelFunc:CE},_E;function Eie(e){_E=e.wasm.cwrap(Ll,null,["number","number","number","number","number","number"])}function Aie(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 _E(s,o,l,u,p,i),r}var $ie={kernelName:Ll,backendName:"wasm",kernelFunc:Aie,setupFunc:Eie},Fie=nn(Ei),Die=!1,Rie=pn(Ai,Die),EE;function Mie(e){EE=e.wasm.cwrap($i,null,["number","number","number","number","number","number","number"])}function Pie(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 EE(p,d,c,h,m,r,g),f}var Oie={kernelName:$i,backendName:"wasm",setupFunc:Mie,kernelFunc:Pie},AE;function Lie(e){AE=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 zie(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=tc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=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,W=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 AE(b,q,K,Z,y,I,T,w,C,E,A,R,G,F,S,M,W,U,x,g,ae,m||0,ee),Q}var Bie={kernelName:Qs,backendName:"wasm",setupFunc:Lie,kernelFunc:zie},$E;function Wie(e){$E=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 Vie(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=tc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=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,W=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 $E(b,q,K,Z,y,I,T,w,C,E,A,R,G,F,S,M,W,U,x,g,ae,m||0,ee),Q}var Uie={kernelName:ei,backendName:"wasm",setupFunc:Wie,kernelFunc:Vie},FE;function Gie(e){FE=e.wasm.cwrap(Bl,null,["number","number","number","number","number","number","array","number"])}function Hie(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Dx.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 FE(c,Et[a.dtype],h,i,d,o,m,f),u}var jie={kernelName:Bl,backendName:"wasm",setupFunc:Gie,kernelFunc:Hie},DE;function qie(e){DE=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Kie(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=zn({inputs:{x:r},attrs:{shape:[d.batchSize,d.outerSize,d.dimSize,d.sliceSize]},backend:t}),h=v.sizeFromShape(s.shape),m=zn({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 b=c.shape.length-1,y=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 DE(y,Et[r.dtype],I,b,x,d.batchSize,T,w),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var Xie={kernelName:zl,backendName:"wasm",setupFunc:qie,kernelFunc:Kie},Yie=!1,Zie=pn(Wl,Yie,"bool"),Jie=!1,Qie=pn(Fi,Jie,"bool"),RE;function eoe(e){RE=e.wasm.cwrap(Ri,null,["number","number","number","number"])}function toe(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;RE(r,Et[t.dtype],n,i)}return s}var noe={kernelName:Ri,backendName:"wasm",setupFunc:eoe,kernelFunc:toe},aoe=!1,roe=pn(Hl,aoe,"bool"),soe=!1,ioe=pn(jl,soe,"bool"),ooe=nn(Mi),loe=!1,uoe=pn(Kl,loe,"bool"),poe=nn(Xl),coe=!1,doe=pn(Yl,coe,"bool"),hoe=!1,moe=pn(CI,hoe,"bool"),ME;function foe(e){ME=e.wasm.cwrap(Pi,null,["number","number","number","number"])}function goe(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 y=t.dataIdMap.get(u.dataId).id;l=u,o=y}let h=l.shape.length;N.assertAxesAreInnerMostDims("max",p,h);let[m,f]=N.computeOutAndReduceShapes(l.shape,p),g=v.sizeFromShape(f),b=t.makeOutput(m,i.dtype);if(v.sizeFromShape(l.shape)!==0){let y=t.dataIdMap.get(b.dataId).id;ME(o,Et[i.dtype],g,y)}if(c&&t.disposeData(u.dataId),s){let y=N.expandShapeToKeepDim(b.shape,d);b.shape=y}return b}var boe={kernelName:Pi,backendName:"wasm",setupFunc:foe,kernelFunc:goe},yoe=!1,xoe=pn(Oi,yoe),PE;function voe(e){PE=e.wasm.cwrap(Li,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function woe(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,b=p.dilationHeight,y=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 PE(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,b,y,x,w,I,T,E),C}var koe={kernelName:Li,backendName:"wasm",setupFunc:voe,kernelFunc:woe},OE;function Ioe(e){OE=e.wasm.cwrap(zi,null,["number, number, number"])}function Soe(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),b=v.sizeFromShape(g),y=u;u.dtype!=="float32"&&(y=Uu({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(y.dataId).id);let x=t.makeOutput(f,"float32");if(v.sizeFromShape(u.shape)!==0){let w=t.dataIdMap.get(x.dataId).id;OE(l,b,w)}if(h&&t.disposeData(p.dataId),s){let w=N.expandShapeToKeepDim(x.shape,c);x.shape=w}return u.dtype!=="float32"&&t.disposeData(y.dataId),x}var Toe={kernelName:zi,backendName:"wasm",setupFunc:Ioe,kernelFunc:Soe},LE;function Noe(e){LE=e.wasm.cwrap(Bi,null,["number","number","number","number"])}function Coe(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),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;LE(l,Et[i.dtype],b,x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var _oe={kernelName:Bi,backendName:"wasm",setupFunc:Noe,kernelFunc:Coe},Eoe=!1,Aoe=pn(Wi,Eoe),hx;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(hx||(hx={}));var zE;function $oe(e){zE=e.wasm.cwrap(Vi,null,["number","array","number","number","array","array","number","number"])}function Foe(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 zE(i,u,t.shape.length,Et[t.dtype],c,h,hx[r],l),o}var Doe={kernelName:Vi,backendName:"wasm",kernelFunc:Foe,setupFunc:$oe},Roe=!0,Moe=pn(Ui,Roe),Poe=nn(Jl);function Z0(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 BE;function Ooe(e){BE=e.wasm.cwrap(eu,"number",["number","number","number","number","number"])}function Loe(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=BE(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=Z0(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var zoe={kernelName:eu,backendName:"wasm",setupFunc:Ooe,kernelFunc:Loe},WE;function Boe(e){WE=e.wasm.cwrap(tu,"number",["number","number","number","number","number","bool"])}function Woe(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=WE(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=Z0(t,c);t.wasm._free(f);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([],"int32",g);return[b,y]}var Voe={kernelName:tu,backendName:"wasm",setupFunc:Boe,kernelFunc:Woe},VE;function Uoe(e){VE=e.wasm.cwrap(nu,"number",["number","number","number","number","number","number"])}function Goe(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=VE(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=Z0(t,c);t.wasm._free(g);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([m],"float32",f);return[b,y]}var Hoe={kernelName:nu,backendName:"wasm",setupFunc:Uoe,kernelFunc:Goe},joe=!1,qoe=pn(Ql,joe,"bool"),UE;function Koe(e){UE=e.wasm.cwrap(Gi,null,["number","number","number","number","number"])}function Xoe(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 UE(d,i,o,l,p),u}var Yoe={kernelName:Gi,backendName:"wasm",setupFunc:Koe,kernelFunc:Xoe};function Zoe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var Joe={kernelName:au,backendName:"wasm",kernelFunc:Zoe};function Qoe(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return dx({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=dx({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:ru,backendName:"wasm",kernelFunc:Qoe},GE;function tle(e){GE=e.wasm.cwrap(Hi,null,["number","array","number","number","array","array","number","number"])}function nle(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 CE({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 GE(i,u,t.shape.length,Et[t.dtype],c,h,r,l),o}var HE={kernelName:Hi,backendName:"wasm",kernelFunc:nle,setupFunc:tle},ale=!1,rle=pn(ji,ale),jE;function sle(e){jE=e.wasm.cwrap(qi,null,["number","number","number"])}function ile(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=Uu({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 jE(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var ole={kernelName:qi,backendName:"wasm",setupFunc:sle,kernelFunc:ile},qE;function lle(e){qE=e.wasm.cwrap(Ki,null,["number","number","number","number"])}function ule(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),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;qE(l,b,Et[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var ple={kernelName:Ki,backendName:"wasm",setupFunc:lle,kernelFunc:ule},cle=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=_0(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},dle={kernelName:cc,backendName:"wasm",kernelFunc:cle},hle=!0,mle=pn(Ni,hle),fle=nn(Xi),gle=nn(Ji),KE;function ble(e){KE=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.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=Uu({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let b=f.id,y=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return y;let x=t.dataIdMap.get(y.dataId).id;return KE(b,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),y}var xle={kernelName:Zi,backendName:"wasm",setupFunc:ble,kernelFunc:yle},XE;function vle(e){XE=e.wasm.cwrap(Yi,null,["number","number","number","number","number","number","number","number","number","number"])}function wle(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),b;g.dtype!=="float32"&&(b=Uu({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(b.dataId));let y=g.id,x=t.dataIdMap.get(f.dataId).id;return XE(y,p,d,c,h,l,u,s?1:0,i?1:0,x),b!=null&&t.disposeData(b.dataId),f}var kle={kernelName:Yi,backendName:"wasm",setupFunc:vle,kernelFunc:wle},YE;function Ile(e){YE=e.wasm.cwrap(Qi,null,["number","array","number","array","number","number"])}function Sle(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 Pf({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);YE(l,p,i.length,d,r.shape.length,u);let c=zn({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),c}var Tle={kernelName:Qi,backendName:"wasm",kernelFunc:Sle,setupFunc:Ile},ZE;function Nle(e){ZE=e.wasm.cwrap(ku,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Cle(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),b=i===0,y=255,x=typeof i=="number"?[i,i,i,b?0:y]:[...i,y],w=new Uint8Array(new Int32Array(x).buffer);return ZE(u,d,c,h,m,s,f,g,w,x.length,p),l}var _le={kernelName:ku,backendName:"wasm",kernelFunc:Cle,setupFunc:Nle},Ele=nn(eo),Ale=nn(to),JE;function $le(e){JE=e.wasm.cwrap(ou,null,["number","number","number","number","number","number","array","number","number"])}function Fle(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}=Rx.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 JE(h,m,Et[s.dtype],l,u,p,f,c,g),o}var Dle={kernelName:ou,backendName:"wasm",setupFunc:$le,kernelFunc:Fle},QE;function Rle(e){QE=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function Mle(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 QE(i,o,l,h,p),u}var Ple={kernelName:lu,backendName:"wasm",kernelFunc:Mle,setupFunc:Rle},eA;function Ole(e){eA=e.wasm.cwrap(ao,null,["number","number"])}function Lle(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||eA(a,s),r}var zle={kernelName:"Sigmoid",backendName:"wasm",setupFunc:Ole,kernelFunc:Lle},Ble=nn(no),tA;function Wle(e){tA=e.wasm.cwrap(io,null,["number","number","number","number"])}function Vle(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||tA(r,i,o,l),s}var Ule={kernelName:io,backendName:"wasm",setupFunc:Wle,kernelFunc:Vle};function Gle(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(C.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"),b=n.dataIdMap.get(g.dataId).id;w$(d,At[r.dtype],r.shape[0],c,h,f,b,t,0);let y=n.readSync(g.dataId),x;switch(y[0]){case 0:{x=C.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=C.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=C.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y[1],y[2]);break;case 3:x=C.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(y[1],y[2],y[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function xue(e){return I$(e,!0)}var vue={kernelName:Ec,backendName:"wasm",setupFunc:k$,kernelFunc:xue};function wue(e){return I$(e,!1)}var kue={kernelName:$c,backendName:"wasm",setupFunc:k$,kernelFunc:wue};function Iue(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=C.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=wi({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var Tue={kernelName:Cu,backendName:"wasm",kernelFunc:Iue},Sue=rn(mo),Nue=rn(Ac),Cue=!0,_ue=cn(bo,Cue),T$;function Eue(e){T$=e.wasm.cwrap(bs,null,["number","number","number","number"])}function $ue(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 T$(i,r,At[s.dtype],l),o}var Aue={kernelName:bs,backendName:"wasm",setupFunc:Eue,kernelFunc:$ue},S$;function Fue(e){S$=e.wasm.cwrap(Eu,null,["number","array","number","array","array","array","array","array","number","number"])}function Due(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:b,begin:y,end:x,strides:w}=qt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=Un({inputs:{x:r},backend:t,attrs:{shape:m}});else if(g||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let N=qt.computeOutShape(y,x,w),_=wi({inputs:{x:r},backend:t,attrs:{begin:y,size:N}});I=Un({inputs:{x:_},backend:t,attrs:{shape:m}}),t.disposeData(_.dataId)}else{let N=t.makeOutput(h,"float32"),_=t.dataIdMap.get(r.dataId).id,$=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),A=new Uint8Array(new Int32Array(y).buffer),M=new Uint8Array(new Int32Array(x).buffer),D=new Uint8Array(new Int32Array(w).buffer),T=new Uint8Array(new Int32Array(h).buffer),P=new Uint8Array(new Int32Array(v.computeStrides(h)).buffer),U=t.dataIdMap.get(N.dataId).id;S$(_,$,r.shape.length,A,M,D,T,P,h.length,U),I=Un({inputs:{x:N},backend:t,attrs:{shape:m}}),t.disposeData(N.dataId)}return I}var Rue={kernelName:Eu,backendName:"wasm",setupFunc:Fue,kernelFunc:Due};function Mue(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]=X0(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),b=t.dataIdMap.get(g.dataId);b.stringBytes=m;let y=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(y).set(f),[g,y]}var Pue={kernelName:Fc,backendName:"wasm",kernelFunc:Mue};function Oue(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]=Y0(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 Lue={kernelName:Dc,backendName:"wasm",kernelFunc:Oue};function zue(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=Z0(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var Wue={kernelName:Rc,backendName:"wasm",kernelFunc:zue},Bue=!0,Vue=cn(yo,Bue),N$;function Uue(e){N$=e.wasm.cwrap(fo,null,["number","number","number","number"])}function Gue(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}=_s(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=C.getInnerMostAxes(m.length,u.shape.length))}C.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=C.computeOutAndReduceShapes(u.shape,m),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;N$(l,b,At[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=C.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Hue={kernelName:fo,backendName:"wasm",setupFunc:Uue,kernelFunc:Gue},jue=rn(xo),que=rn(vo),C$;function Kue(e){C$=e.wasm.cwrap(gs,null,["number","array","number","array","number","number"])}function Xue(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 _$(i,o,a.shape.length,At[a.dtype],r,s,p,c),[u,d]},Que={kernelName:$u,backendName:"wasm",setupFunc:Zue,kernelFunc:Jue},E$;function epe(e){E$=e.wasm.cwrap(Au,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function tpe(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],b=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),y=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,N=t.dataIdMap.get(s.dataId).id,_=i==="nearest"?1:2,$;switch(o){case"constant":$=1;break;case"reflect":$=2;break;case"wrap":$=3;break;case"nearest":$=4;break;default:$=1;break}return E$(I,N,s.shape[0]>1,p,m,f,h,c,d,b,r.shape.length-1,y,g.length-1,_,$,l,w),x}var npe={kernelName:Au,backendName:"wasm",setupFunc:epe,kernelFunc:tpe};function ape(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 rpe={kernelName:Fu,backendName:"wasm",kernelFunc:ape};function spe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var ipe={kernelName:Du,backendName:"wasm",kernelFunc:spe},ope=[Mse,Pse,Lse,Bse,Xse,Jse,tie,rie,lie,mie,fie,gie,xie,vie,Iie,Nie,Cie,_ie,Aie,Rie,Oie,Wie,Uie,Gie,jie,qie,Kie,Xie,Jie,Qie,toe,roe,ooe,poe,hoe,goe,yoe,voe,Vse,Ioe,Soe,Coe,_oe,$oe,Aoe,Doe,Moe,Loe,Woe,Uoe,joe,Xoe,Zoe,ele,nle,ale,ile,ule,dle,mle,ble,xle,wle,l$,Sle,_le,Ale,Dle,Mle,Ple,Ole,sie,Wle,Ule,jle,Xle,Yle,Zle,eue,aue,iue,oue,die,pue,due,fue,yue,vue,kue,Tue,Sue,Nue,_ue,Aue,Rue,Pue,Lue,Wue,Vue,Hue,jue,que,Yue,Que,npe,jse,rpe,ipe];for(let e of ope)Pc(e);var Rx=X();Rx.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>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])));Rx.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Rx.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 EI=ds(qF()),lpe=ds(KF()),$I=ds(XF()),AI=EI.default||EI,upe=$I.default||$I,$$=class extends yc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(A$),Mx=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new mm(this,rr())}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 dpe(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 ppe(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 FI(e,t,n){if(dm!=null)return dm;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),Qp!=null&&Qp[a]!=null?Qp[a]:n+a}async function cpe(){let[e,t]=await Promise.all([X().getAsync("WASM_HAS_SIMD_SUPPORT"),X().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=lpe.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?FI(e,t,Yp!=null?Yp:l):l+o},g1&&(r.instantiateWasm=ppe(FI(e,t,Yp!=null?Yp:"")));let s=!1;r.onAbort=()=>{s||ec||(ec=!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&&dm==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+AI.toString()],{type:"text/javascript"}),i=AI(r)):i=upe(r),i.then(o=>{s=!0,ec=!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 dpe(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 hpe=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],dm=null,Yp=null,Qp={},ec=!1,g1=!1;function mpe(e,t=!1){if(Jx("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),ec)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");dm=e,g1=t}function fpe(e,t=!1){if(ec)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")Yp=e;else{Qp=e;let n=hpe.filter(a=>Qp[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.`)}g1=t}var A$=-1,Mx=-1;function gpe(e){A$=e}function bpe(){if(Mx===-1)throw new Error("WASM backend not initialized.");return Mx}var ype="3.20.0",xpe=2;Xm("wasm",async()=>{let{wasm:e}=await cpe();return new $$(e)},xpe);var vpe="3.20.0",wpe="3.20.0",kpe="3.20.0",Ipe="3.20.0",Tpe="3.20.0",Spe="3.20.0",Npe="3.20.0",Cpe="3.20.0",_pe={tfjs:vpe,"tfjs-core":wpe,"tfjs-data":kpe,"tfjs-layers":Ipe,"tfjs-converter":Tpe,"tfjs-backend-cpu":Spe,"tfjs-backend-webgl":Npe,"tfjs-backend-wasm":Cpe};var J$={};wy(J$,{AnchorPosition:()=>S1,DrawBox:()=>kd,DrawBoxOptions:()=>cg,DrawFaceLandmarks:()=>Ig,DrawFaceLandmarksOptions:()=>kg,DrawTextField:()=>zr,DrawTextFieldOptions:()=>lp,drawContour:()=>Mr,drawDetections:()=>Mpe,drawFaceExpressions:()=>Ppe,drawFaceLandmarks:()=>Lpe});function Mr(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 F$={};wy(F$,{computeReshapedDimensions:()=>x1,getCenterPoint:()=>Do,isDimensions:()=>lg,isEven:()=>og,isFloat:()=>y1,isTensor:()=>Ao,isTensor1D:()=>Epe,isTensor2D:()=>b1,isTensor3D:()=>Pr,isTensor4D:()=>xa,isValidNumber:()=>tr,isValidProbablitiy:()=>np,range:()=>yr,round:()=>Fo});var Fn=class{constructor(t,n){if(!tr(t)||!tr(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 Fn(1/this.width,1/this.height)}};function Ao(e,t){return e instanceof $e&&e.shape.length===t}function Epe(e){return Ao(e,1)}function b1(e){return Ao(e,2)}function Pr(e){return Ao(e,3)}function xa(e){return Ao(e,4)}function y1(e){return e%1!==0}function og(e){return e%2===0}function Fo(e,t=2){let n=10**t;return Math.floor(e*n)/n}function lg(e){return e&&e.width&&e.height}function x1({width:e,height:t},n){let a=n/Math.max(t,e);return new Fn(Math.round(e*a),Math.round(t*a))}function Do(e){return e.reduce((t,n)=>t.add(n),new Oe(0,0)).div(new Oe(e.length,e.length))}function yr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function tr(e){return!!e&&e!==1/0&&e!==-1/0&&!Number.isNaN(e)||e===0}function np(e){return tr(e)&&e>=0&&e<=1}var Oe=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new Oe(this.x+t.x,this.y+t.y)}sub(t){return new Oe(this.x-t.x,this.y-t.y)}mul(t){return new Oe(this.x*t.x,this.y*t.y)}div(t){return new Oe(this.x/t.x,this.y/t.y)}abs(){return new Oe(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new Oe(Math.floor(this.x),Math.floor(this.y))}};var ct=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(tr)}static assertIsValidBox(t,n,a=!1){if(!ct.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(tr),s=[a.x,a.y,a.width,a.height].every(tr);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];ct.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 Oe(this.left,this.top)}get topRight(){return new Oe(this.right,this.top)}get bottomLeft(){return new Oe(this.left,this.bottom)}get bottomRight(){return new Oe(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 ct({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 ct({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 ct({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 ap=class extends ct{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var Es=class{constructor(t,n,a,r,s){this._imageDims=new Fn(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new ct(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 ct(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new Es(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var wt=class extends Es{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 wt(a,r,s)}};function D$(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 R$(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 xr(e,t){return O(()=>{let[n,a,r]=t,s=En([...e.shape.slice(0,3),1],n,"float32"),i=En([...e.shape.slice(0,3),1],a,"float32"),o=En([...e.shape.slice(0,3),1],r,"float32"),l=Qe([s,i,o],3);return ce(e,l)})}function P$(e,t=!1){return O(()=>{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,En(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 Qe(d,i)})}function Nbe(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 ug(e){return 1/(1+Math.exp(-e))}function _be(e){return Math.log(e/(1-e))}var rp=class extends ct{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var $pe=.5,Ape=.43,Fpe=.45,va=class{constructor(t,n,a=new Oe(0,0)){let{width:r,height:s}=n;this._imgDims=new Fn(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new Oe(r,s)).add(a))}get shift(){return new Oe(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 Oe(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 Oe(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof wt?t.box.floor():new ct(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/Fpe),l=Do(t),u=Math.floor(Math.max(0,l.x-$pe*o)),p=Math.floor(Math.max(0,l.y-Ape*o));return new rp(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=R$(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var O$=class extends va{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Do([t[3],t[4]])]}};var sp=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(Do)}};var xd=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?` (${Fo(this.distance)})`:""}`}};var vd=class extends ct{constructor(n,a){super(n);this._label=a}static assertIsValidLabeledBox(n,a){if(ct.assertIsValidBox(n,a),!tr(n.label))throw new Error(`${a} - expected property label (${n.label}) to be a number`)}get label(){return this._label}};var Or=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 Or(t.label,n)}};var L$=class extends vd{constructor(n,a,r,s){super(n,a);this._score=r,this._classScore=s}static assertIsValidPredictedBox(n,a){if(vd.assertIsValidLabeledBox(n,a),!np(n.score)||!np(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 Lr(e){return e.detection instanceof wt}function ip(e,t){return{...e,...{detection:t}}}function v1(){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 wd(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function pg(e){let t="";if(!e&&wd())try{e=NF("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 w1(){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=pg();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 k1(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var sn;function Dpe(){if(!sn)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return sn}function I1(e){sn=e}function T1(){return k1()?I1(v1()):wd()?I1(w1()):null}function Rpe(e){if(sn||T1(),!sn)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=sn.Canvas,Image:n=sn.Image}=e;sn.Canvas=t,sn.Image=n,sn.createCanvasElement=e.createCanvasElement||(()=>new t),sn.createImageElement=e.createImageElement||(()=>new n),sn.ImageData=e.ImageData||sn.ImageData,sn.Video=e.Video||sn.Video,sn.fetch=e.fetch||sn.fetch,sn.readFile=e.readFile||sn.readFile}var at={getEnv:Dpe,setEnv:I1,initialize:T1,createBrowserEnv:v1,createFileSystem:pg,createNodejsEnv:w1,monkeyPatch:Rpe,isBrowser:k1,isNodejs:wd};T1();function op(e){return!at.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function aa(e){let{Canvas:t,CanvasRenderingContext2D:n}=at.getEnv();if(e instanceof n)return e;let a=op(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 S1=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(S1||{}),lp=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 lp(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 cg=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 lp({...i,...s})}},kd=class{constructor(t,n={}){this.box=new ct(t),this.options=new cg(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 zr([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function Mpe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof wt?a.score:Lr(a)?a.detection.score:void 0,s=a instanceof wt?a.box:Lr(a)?a.detection.box:new ct(a),i=r?`${Fo(r)}`:void 0;new kd(s,{label:i}).draw(e)})}function dg(e){let{Image:t,Video:n}=at.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function z$(e){return new Promise((t,n)=>{(e instanceof at.getEnv().Canvas||dg(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 W$(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=at.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function up(e){let{Image:t,Video:n}=at.getEnv();return e instanceof t?new Fn(e.naturalWidth,e.naturalHeight):e instanceof n?new Fn(e.videoWidth,e.videoHeight):new Fn(e.width,e.height)}function pp({width:e,height:t}){let{createCanvasElement:n}=at.getEnv(),a=n();return a.width=e,a.height=t,a}function hg(e,t){let{ImageData:n}=at.getEnv();if(!(e instanceof n)&&!dg(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||up(e),s=pp({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 B$(e,t){let n=t||at.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(xa(e)?1:0),i=O(()=>e.as3D(a,r,s).toInt());return await wo.toPixels(i,n),i.dispose(),n}function N1(e){let{Image:t,Canvas:n,Video:a}=at.getEnv();return e instanceof t||e instanceof n||e instanceof a}function V$(e,t,n=!1){let{Image:a,Canvas:r}=at.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return pp({width:1,height:1});let s=up(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=pp({width:t,height:t}),p=e instanceof r?e:hg(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&aa(u).drawImage(p,c,h,o,l),u}var Wr=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(Pr(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 at.getEnv().Canvas?a:hg(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 yr(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 x1({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,O(()=>{let a=yr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof $e){let o=xa(i)?i:mn(i);return o=P$(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Nr.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof at.getEnv().Canvas)return wo.fromPixels(V$(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return Rt(a.map(s=>le(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function kt(e){if(e instanceof Wr)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(op);return a.forEach((r,s)=>{if(!N1(r)&&!Pr(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=>N1(r)&&z$(r))),new Wr(a,Array.isArray(e))}async function Id(e,t){let{Canvas:n}=at.getEnv(),a=e;if(!(e instanceof n)){let i=await kt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await B$(o)}let r=aa(a);return t.map(i=>i instanceof wt?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=pp({width:l,height:u});return l>0&&u>0&&aa(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function Td(e,t){if(!Pr(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 O(()=>{let[n,a,r]=e.shape.slice(xa(e)?1:0);return t.map(o=>o instanceof wt?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})=>Io(e.as3D(n,a,r),[l,o,0],[p,u,r]))})}async function $s(e,t){let{fetch:n}=at.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 hve(e){let t=await $s(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 W$(n)}async function U$(e){return(await $s(e)).json()}async function yve(e){return new Float32Array(await(await $s(e)).arrayBuffer())}function G$(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=at.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function Tve(e){let t=await $s(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 G$(n)}function mg(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 H$(e,t){let{manifestUri:n,modelBaseUri:a}=mg(e,t),r=await U$(n);return Sn.loadWeights(r,a)}function Ave(e,t,n=!1){let{width:a,height:r}=n?up(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 rs)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof rs))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=Bn(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 H$(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}=at.getEnv(),{manifestUri:a,modelBaseUri:r}=mg(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>d.buffer))),i=Sn.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 $e))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Kn(e,t,n){return O(()=>{let a=Ts(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=Q(a,t.bias),a})}function fg(e,t,n=!1){return O(()=>{let a=Xe(n?Q(Dt(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Kn(e,t.conv0,[2,2])),r=Kn(a,t.conv1,[1,1]),s=Xe(Q(a,r)),i=Kn(s,t.conv2,[1,1]);return Xe(Q(a,Q(r,i)))})}function Sd(e,t,n=!1,a=!0){return O(()=>{let r=Xe(n?Q(Dt(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Kn(e,t.conv0,a?[2,2]:[1,1])),s=Kn(r,t.conv1,[1,1]),i=Xe(Q(r,s)),o=Kn(i,t.conv2,[1,1]),l=Xe(Q(r,Q(s,o))),u=Kn(l,t.conv3,[1,1]);return Xe(Q(r,Q(s,Q(o,u))))})}function Ro(e,t,n="same",a=!1){return O(()=>{let r=Q(Dt(e,t.filters,[1,1],n),t.bias);return a?Xe(r):r})}function Dn(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function cp(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 gg(e,t){return(n,a,r)=>{let s=Ca(e(n*a),[n,a]),i=Ke(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var Nd=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function dp(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 Nd(s,i,o)}}function hp(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new Nd(n,a,r)}}function ra(e,t){return(n,a,r)=>{let s=e[n];if(!Ao(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 Rn(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 bg(e,t){let n=cp(e,t),a=dp(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}=Rn(e),{extractDenseBlock4Params:r}=bg(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 yg(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function xg(e,t){let n=ra(e,t),a=yg(n),r=hp(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}=xg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return Dn(e,t),{params:a,paramMappings:t}}var mp=class extends dn{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return O(()=>{let a=le(t.toBatchTensor(112,!0),"float32"),s=xr(a,[122.782,117.001,104.298]).div(255),i=Sd(s,n.dense0,!0);return i=Sd(i,n.dense1),i=Sd(i,n.dense2),i=Sd(i,n.dense3),i=ga(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await kt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return q$(t)}extractParams(t){return j$(t)}};function Cd(e,t){return O(()=>Q(Re(e,t.weights),t.bias))}function K$(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=Rn(e),o=gg(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=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 Dn(e,t),{params:r,paramMappings:t}}function vg(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 fp=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 O(()=>{let r=n instanceof Wr?this.faceFeatureExtractor.forwardInput(n):n;return Cd(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}=vg(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 Y$=["neutral","happy","sad","angry","fearful","disgusted","surprised"],As=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}`);Y$.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return Y$.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var wg=class extends fp{constructor(t=new mp){super("FaceExpressionNet",t)}forwardInput(t){return O(()=>Qa(this.runNet(t)))}async forward(t){return this.forwardInput(await kt(t))}async predictExpressions(t){let n=await kt(t),a=await this.forwardInput(n),r=await Promise.all(mt(a).map(async i=>{let o=i.dataSync();return i.dispose(),o}));a.dispose();let s=r.map(i=>new As(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Z$(e){return e.expressions instanceof As}function C1(e,t){return{...e,...{expressions:t}}}function Ppe(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof As?s:Z$(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=Lr(s)?s.detection.box.bottomLeft:a||new Oe(0,0);new zr(l.map(d=>`${d.expression} (${Fo(d.probability)})`),u).draw(e)})}function gp(e){return Lr(e)&&e.landmarks instanceof va&&e.unshiftedLandmarks instanceof va&&e.alignedRect instanceof wt}function Ope(e){let t=(o,l,u,p)=>Math.atan2(p-l,u-o)%Math.PI,n=o=>o*180/Math.PI,a={roll:void 0,pitch:void 0,yaw:void 0};if(!e||!e._positions||e._positions.length!==68)return a;let r=e._positions;a.roll=-t(r[36]._x,r[36]._y,r[45]._x,r[45]._y),a.pitch=t(0,Math.abs(r[0]._x-r[30]._x)/r[30]._x,Math.PI,Math.abs(r[16]._x-r[30]._x)/r[30]._x);let s=r.reduce((o,l)=>oo>l._y?o:l._y,-1/0);return a.yaw=Math.PI*(e._imgDims._height/(i-s)/1.4-1),a}function _d(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new wt(e.detection.score,r.rescale(s.reverse()),s),o=Ope(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var kg=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)"}},Ig=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new kg(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 sp&&(n.strokeStyle=i,n.lineWidth=s,Mr(n,this.faceLandmarks.getJawOutline()),Mr(n,this.faceLandmarks.getLeftEyeBrow()),Mr(n,this.faceLandmarks.getRightEyeBrow()),Mr(n,this.faceLandmarks.getNose()),Mr(n,this.faceLandmarks.getLeftEye(),!0),Mr(n,this.faceLandmarks.getRightEye(),!0),Mr(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 Lpe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof va?a:gp(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new Ig(r).draw(e)})}var Q$="1.7.4";function Bpe(e,t){let n=cp(e,t),a=dp(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 eA(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=Rn(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Bpe(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={};yr(t,0,1).forEach(b=>{h[`main_block_${b}`]=l(128,`middle_flow/main_block_${b}`)});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 Vpe(e,t){let n=ra(e,t),a=yg(n),r=hp(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 tA(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=Vpe(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={};yr(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 Dn(e,n),{params:{entry_flow:p,middle_flow:d,exit_flow:m},paramMappings:n}}function nA(e,t,n){return Q(Dt(e,t.filters,n,"same"),t.bias)}function _1(e,t,n=!0){let a=n?Xe(e):e;return a=Kn(a,t.separable_conv0,[1,1]),a=Kn(Xe(a),t.separable_conv1,[1,1]),a=Mt(a,[3,3],[2,2],"same"),a=Q(a,nA(e,t.expansion_conv,[2,2])),a}function Upe(e,t){let n=Kn(Xe(e),t.separable_conv0,[1,1]);return n=Kn(Xe(n),t.separable_conv1,[1,1]),n=Kn(Xe(n),t.separable_conv2,[1,1]),n=Q(n,e),n}var Tg=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 O(()=>{let r=le(n.toBatchTensor(112,!0),"float32"),i=xr(r,[122.782,117.001,104.298]).div(255),o=Xe(nA(i,a.entry_flow.conv_in,[2,2]));return o=_1(o,a.entry_flow.reduction_block_0,!1),o=_1(o,a.entry_flow.reduction_block_1),yr(this._numMainBlocks,0,1).forEach(l=>{o=Upe(o,a.middle_flow[`main_block_${l}`])}),o=_1(o,a.exit_flow.reduction_block),o=Xe(Kn(o,a.exit_flow.separable_conv,[1,1])),o})}async forward(n){return this.forwardInput(await kt(n))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(n){return tA(n,this._numMainBlocks)}extractParams(n){return eA(n,this._numMainBlocks)}};function aA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Rn(e),r=gg(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 rA(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 Dn(e,t),{params:r,paramMappings:t}}var E1=(n=>(n.FEMALE="female",n.MALE="male",n))(E1||{});var Sg=class extends dn{constructor(n=new Tg(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 O(()=>{let r=n instanceof Wr?this.faceFeatureExtractor.forwardInput(n):n,s=ga(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=Cd(s,a.fc.age).as1D(),o=Cd(s,a.fc.gender);return{age:i,gender:o}})}forwardInput(n){return O(()=>{let{age:a,gender:r}=this.runNet(n);return{age:a,gender:Qa(r)}})}async forward(n){return this.forwardInput(await kt(n))}async predictAgeAndGender(n){let a=await kt(n),r=await this.forwardInput(a),s=mt(r.age),i=mt(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 aA(n)}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=vg(n);return this.faceFeatureExtractor.loadFromWeightMap(a),rA(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 bp=class extends fp{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 O(()=>{let i=(d,c)=>Rt([En([68],d,"float32"),En([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(Rt(Array.from(Array(s),(d,c)=>i(r[c].width,r[c].height))))})}forwardInput(t){return O(()=>{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 kt(t))}async detectLandmarks(t){let n=await kt(t),a=O(()=>mt(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(s.dataSync()),l=o.filter((p,d)=>og(d)),u=o.filter((p,d)=>!og(d));return new sp(Array(68).fill(0).map((p,d)=>new Oe(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 yp=class extends bp{constructor(t=new mp){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function sA(e){let t=[],{extractDenseBlock3Params:n}=xg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return Dn(e,t),{params:a,paramMappings:t}}function iA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Rn(e),{extractDenseBlock3Params:r}=bg(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 Ng=class extends dn{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return O(()=>{let a=le(t.toBatchTensor(112,!0),"float32"),s=xr(a,[122.782,117.001,104.298]).div(255),i=fg(s,n.dense0,!0);return i=fg(i,n.dense1),i=fg(i,n.dense2),i=ga(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await kt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return sA(t)}extractParams(t){return iA(t)}};var Cg=class extends bp{constructor(t=new Ng){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var oA=class extends yp{};function lA(e,t){return Q(W(e,t.weights),t.biases)}function $1(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=Dt(e,s,n,r);return o=Q(o,i),o=lA(o,t.scale),a?Xe(o):o}function uA(e,t){return $1(e,t,[1,1],!0)}function A1(e,t){return $1(e,t,[1,1],!1)}function _g(e,t){return $1(e,t,[2,2],!0,"valid")}function Gpe(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(y1(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return O(()=>Ae($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 pA(e){let{extractWeights:t,getRemainingWeights:n}=Rn(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=Gpe(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"),b=s(589824,256,3,"conv256_down",!0),y=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),w=s(589824,256,3,"conv256_down_out"),I=O(()=>Ae(Ca(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:b,conv256_1:y,conv256_2:x,conv256_down_out:w,fc:I},paramMappings:a}}function Hpe(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 cA(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Hpe(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"),b=a("conv256_2"),y=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!b1(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:b,conv256_down_out:y,fc:x};return Dn(e,t),{params:w,paramMappings:t}}function nr(e,t){let n=uA(e,t.conv1);return n=A1(n,t.conv2),n=Q(n,e),n=Xe(n),n}function Ed(e,t){let n=_g(e,t.conv1);n=A1(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=Qe([n,l],1);let u=[...n.shape];u[2]=1;let p=It(u);n=Qe([n,p],2)}return a=s?Qe([a,r],3):a,n=Q(a,n),n=Xe(n),n}var xp=class extends dn{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return O(()=>{let a=le(t.toBatchTensor(150,!0),"float32"),s=xr(a,[122.782,117.001,104.298]).div(255),i=_g(s,n.conv32_down);i=Mt(i,3,2,"valid"),i=nr(i,n.conv32_1),i=nr(i,n.conv32_2),i=nr(i,n.conv32_3),i=Ed(i,n.conv64_down),i=nr(i,n.conv64_1),i=nr(i,n.conv64_2),i=nr(i,n.conv64_3),i=Ed(i,n.conv128_down),i=nr(i,n.conv128_1),i=nr(i,n.conv128_2),i=Ed(i,n.conv256_down),i=nr(i,n.conv256_1),i=nr(i,n.conv256_2),i=Ed(i,n.conv256_down_out);let o=i.mean([1,2]);return Re(o,n.fc)})}async forward(t){return this.forwardInput(await kt(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 kt(t),a=O(()=>mt(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 cA(t)}extractParams(t){return pA(t)}};function aIe(e){let t=new xp;return t.extractWeights(e),t}function F1(e,t){return{...e,...{descriptor:t}}}function oIe(e){return typeof e.age=="number"}function D1(e,t){return{...e,...{age:t}}}function cIe(e){return(e.gender==="male"||e.gender==="female")&&np(e.genderProbability)}function R1(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function jpe(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"),b=s(512,512,"mobilenetv1/conv_9"),y=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:b,conv_10:y,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"),b=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),y=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"),N=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),_=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),$=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),A=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),M=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),D=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:b},box_predictor_1:{box_encoding_predictor:y,class_predictor:x},box_predictor_2:{box_encoding_predictor:w,class_predictor:I},box_predictor_3:{box_encoding_predictor:N,class_predictor:_},box_predictor_4:{box_encoding_predictor:$,class_predictor:A},box_predictor_5:{box_encoding_predictor:M,class_predictor:D}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function dA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Rn(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=jpe(n,t),i=r(),o=s(),u={extra_dim:Vc(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 qpe(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`),b=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),y=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:b,batch_norm_variance:y},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 hA(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=qpe(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Pr(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 Dn(e,t),{params:s,paramMappings:t}}function Da(e,t,n){return O(()=>{let a=Dt(e,t.filters,n,"same");return a=Q(a,t.batch_norm_offset),tn(a,0,6)})}var Kpe=.0010000000474974513;function Xpe(e,t,n){return O(()=>{let a=ws(e,t.filters,n,"same");return a=vs(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Kpe),tn(a,0,6)})}function Ype(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function mA(e,t){return O(()=>{let n,a=Da(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=Ype(o);a=Xpe(a,s.depthwise_conv,l),a=Da(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 Zpe(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),b=Math.min(o,d),y=Math.max(g-m,0)*Math.max(b-f,0);return y/(c+h-y)}function fA(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=Zpe(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 Jpe(e){let t=mt(Ae(e,[1,0])),n=[ce(t[2],t[0]),ce(t[3],t[1])],a=[Q(t[0],fe(n[0],2)),Q(t[1],fe(n[1],2))];return{sizes:n,centers:a}}function Qpe(e,t){let{sizes:n,centers:a}=Jpe(e),r=mt(Ae(t,[1,0])),s=fe(W(gn(fe(r[2],5)),n[0]),2),i=Q(W(fe(r[0],10),n[0]),a[0]),o=fe(W(gn(fe(r[3],5)),n[1]),2),l=Q(W(fe(r[1],10),n[1]),a[1]);return Ae(Rt([ce(i,s),ce(l,o),Q(i,s),Q(l,o)]),[1,0])}function gA(e,t,n){return O(()=>{let a=e.shape[0],r=Qpe(B(Wn(n.extra_dim,[a,1,1]),[-1,4]),B(e,[-1,4]));r=B(r,[a,r.shape[0]/a,4]);let s=da(He(t,[0,0,1],[-1,-1,-1])),i=He(s,[0,0,0],[-1,-1,1]);i=B(i,[a,i.shape[1]]);let o=mt(r),l=mt(i);return{boxes:o,scores:l}})}function Mo(e,t){return O(()=>{let n=e.shape[0],a=B(Ro(e,t.box_encoding_predictor),[n,-1,1,4]),r=B(Ro(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function bA(e,t,n){return O(()=>{let a=Da(e,n.conv_0,[1,1]),r=Da(a,n.conv_1,[2,2]),s=Da(r,n.conv_2,[1,1]),i=Da(s,n.conv_3,[2,2]),o=Da(i,n.conv_4,[1,1]),l=Da(o,n.conv_5,[2,2]),u=Da(l,n.conv_6,[1,1]),p=Da(u,n.conv_7,[2,2]),d=Mo(t,n.box_predictor_0),c=Mo(e,n.box_predictor_1),h=Mo(r,n.box_predictor_2),m=Mo(i,n.box_predictor_3),f=Mo(l,n.box_predictor_4),g=Mo(p,n.box_predictor_5),b=Qe([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),y=Qe([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:b,classPredictions:y}})}var Ra=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 Po=class extends dn{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return O(()=>{let a=le(t.toBatchTensor(512,!1),"float32"),r=ce(fe(a,127.5),1),s=mA(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=bA(s.out,s.conv11,n.prediction_layer);return gA(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await kt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new Ra(n),s=await kt(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,b[x][0]),Math.min(1,b[x][2])].map($=>$*g),[N,_]=[Math.max(0,b[x][1]),Math.min(1,b[x][3])].map($=>$*f);return new wt(p[x],new rp(N,w,_-N,I-w),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return hA(t)}extractParams(t){return dA(t)}};function ece(e){let t=new Po;return t.extractWeights(e),t}function aTe(e){return ece(e)}var yA=class extends Po{};var xA=.4,vA=[new Oe(.738768,.874946),new Oe(2.42204,2.65704),new Oe(4.30971,7.04493),new Oe(10.246,4.59428),new Oe(12.6868,11.8741)],wA=[new Oe(1.603231,2.094468),new Oe(6.041143,7.080126),new Oe(2.882459,3.518061),new Oe(4.266906,5.178857),new Oe(9.041765,10.66308)],kA=[117.001,114.697,97.404],IA="tiny_yolov2_model",TA="tiny_yolov2_separable_conv_model";var Eg=e=>typeof e=="number";function SA(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(!Eg(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=>Eg(t.x)&&Eg(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(Eg)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function vp(e){return O(()=>{let t=W(e,ke(.10000000149011612));return Q(Xe(ce(e,t)),t)})}function Br(e,t){return O(()=>{let n=ba(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Dt(n,t.conv.filters,[1,1],"valid"),n=ce(n,t.bn.sub),n=W(n,t.bn.truediv),n=Q(n,t.conv.bias),vp(n)})}function Vr(e,t){return O(()=>{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=Q(n,t.bias),vp(n)})}function tce(e,t){let n=cp(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=dp(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function NA(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=Rn(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=tce(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,b,y,x]=a,w=t.isFirstLayerConv2d?o(d,c,3,"conv0"):u(d,c,"conv0"),I=u(c,h,"conv1"),N=u(h,m,"conv2"),_=u(m,f,"conv3"),$=u(f,g,"conv4"),A=u(g,b,"conv5"),M=y?u(b,y,"conv6"):void 0,D=x?u(y,x,"conv7"):void 0,T=o(x||y||b,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:N,conv3:_,conv4:$,conv5:A,conv6:M,conv7:D,conv8:T}}else{let[d,c,h,m,f,g,b,y,x]=a,w=l(d,c,"conv0"),I=l(c,h,"conv1"),N=l(h,m,"conv2"),_=l(m,f,"conv3"),$=l(f,g,"conv4"),A=l(g,b,"conv5"),M=l(b,y,"conv6"),D=l(y,x,"conv7"),T=o(x,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:N,conv3:_,conv4:$,conv5:A,conv6:M,conv7:D,conv8:T}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function nce(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=hp(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function CA(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=nce(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 Dn(e,n),{params:i,paramMappings:n}}var vr=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 M1=class extends dn{constructor(n){super("TinyYolov2");SA(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=Br(n,a.conv0);return r=Mt(r,[2,2],[2,2],"same"),r=Br(r,a.conv1),r=Mt(r,[2,2],[2,2],"same"),r=Br(r,a.conv2),r=Mt(r,[2,2],[2,2],"same"),r=Br(r,a.conv3),r=Mt(r,[2,2],[2,2],"same"),r=Br(r,a.conv4),r=Mt(r,[2,2],[2,2],"same"),r=Br(r,a.conv5),r=Mt(r,[2,2],[1,1],"same"),r=Br(r,a.conv6),r=Br(r,a.conv7),Ro(r,a.conv8,"valid",!1)}runMobilenet(n,a){let r=this.config.isFirstLayerConv2d?vp(Ro(n,a.conv0,"valid",!1)):Vr(n,a.conv0);return r=Mt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv1),r=Mt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv2),r=Mt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv3),r=Mt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv4),r=Mt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv5),r=Mt(r,[2,2],[1,1],"same"),r=a.conv6?Vr(r,a.conv6):r,r=a.conv7?Vr(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 O(()=>{let s=le(n.toBatchTensor(a,!1),"float32");return s=this.config.meanRgb?xr(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 kt(n),a)}async detect(n,a={}){let{inputSize:r,scoreThreshold:s}=new vr(a),i=await kt(n),o=await this.forwardInput(i,r),l=O(()=>mt(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(b=>b.box),c=p.map(b=>b.score),h=p.map(b=>b.classScore),m=p.map(b=>this.config.classes[b.label]);return M$(d.map(b=>b.rescale(r)),c,this.config.iouThreshold,!0).map(b=>new Es(c[b],h[b],m[b],d[b],u))}getDefaultModelName(){return""}extractParamsFromWeightMap(n){return CA(n,this.config)}extractParams(n){let a=this.config.filterSizes||M1.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 NA(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]=O(()=>{let y=n.reshape([p,p,d,this.boxEncodingSize]),x=y.slice([0,0,0,0],[p,p,d,4]),w=y.slice([0,0,0,4],[p,p,d,1]),I=this.withClassScores?Qa(y.slice([0,0,0,5],[p,p,d,this.config.classes.length]),3):ke(0);return[x,w,I]}),f=[],g=await h.array(),b=await c.array();for(let y=0;yr){let N=(x+ug(b[y][x][w][0]))/p*l,_=(y+ug(b[y][x][w][1]))/p*u,$=Math.exp(b[y][x][w][2])*this.config.anchors[w].x/p*l,A=Math.exp(b[y][x][w][3])*this.config.anchors[w].y/p*u,M=N-$/2,D=_-A/2,T={row:y,col:x,anchor:w},{classScore:P,label:U}=this.withClassScores?await this.extractPredictedClass(m,T):{classScore:1,label:0};f.push({box:new ap(M,D,M+$,D+A),score:I,classScore:I*P,label:U,...T})}}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)}},Oo=M1;Oo.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var wp=class extends Oo{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:xA,classes:["face"],...t?{anchors:wA,meanRgb:kA}:{anchors:vA,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 wt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?TA:IA}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function KTe(e,t=!0){let n=new wp(t);return n.extractWeights(e),n}var $g=class extends vr{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var Ma=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function Lo(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>gp(l)?r(l):l.detection),i=a||(t instanceof $e?await Td(t,s):await Id(t,s)),o=await n(i);return i.forEach(l=>l instanceof $e&&l.dispose()),o}async function kp(e,t,n,a,r){return Lo([e],t,async s=>n(s[0]),a,r)}var _A=.4,EA=[new Oe(1.603231,2.094468),new Oe(6.041143,7.080126),new Oe(2.882459,3.518061),new Oe(4.266906,5.178857),new Oe(9.041765,10.66308)],$A=[117.001,114.697,97.404];var Ip=class extends Oo{constructor(){let t={withSeparableConvs:!0,iouThreshold:_A,classes:["face"],anchors:EA,meanRgb:$A,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 wt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var rt={ssdMobilenetv1:new Po,tinyFaceDetector:new Ip,tinyYolov2:new wp,faceLandmark68Net:new yp,faceLandmark68TinyNet:new Cg,faceRecognitionNet:new xp,faceExpressionNet:new wg,ageGenderNet:new Sg},ace=(e,t)=>rt.ssdMobilenetv1.locateFaces(e,t),TSe=(e,t)=>rt.tinyFaceDetector.locateFaces(e,t),SSe=(e,t)=>rt.tinyYolov2.locateFaces(e,t),rce=e=>rt.faceLandmark68Net.detectLandmarks(e),NSe=e=>rt.faceLandmark68TinyNet.detectLandmarks(e),CSe=e=>rt.faceRecognitionNet.computeFaceDescriptor(e),_Se=e=>rt.faceExpressionNet.predictExpressions(e),ESe=e=>rt.ageGenderNet.predictAgeAndGender(e),sce=e=>rt.ssdMobilenetv1.load(e),$Se=e=>rt.tinyFaceDetector.load(e),ASe=e=>rt.tinyYolov2.load(e),FSe=e=>rt.faceLandmark68Net.load(e),DSe=e=>rt.faceLandmark68TinyNet.load(e),RSe=e=>rt.faceRecognitionNet.load(e),MSe=e=>rt.faceExpressionNet.load(e),PSe=e=>rt.ageGenderNet.load(e),OSe=sce,LSe=ace,zSe=rce;var Ag=class extends Ma{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},zo=class extends Ag{async run(){let t=await this.parentTask,n=await Lo(t,this.input,async a=>Promise.all(a.map(r=>rt.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>C1(a,n[r]))}withAgeAndGender(){return new Bo(this,this.input)}},Wo=class extends Ag{async run(){let t=await this.parentTask;if(!t)return;let n=await kp(t,this.input,a=>rt.faceExpressionNet.predictExpressions(a),this.extractedFaces);return C1(t,n)}withAgeAndGender(){return new Vo(this,this.input)}},Fs=class extends zo{withAgeAndGender(){return new Rs(this,this.input)}withFaceDescriptors(){return new Ps(this,this.input)}},Ds=class extends Wo{withAgeAndGender(){return new Ms(this,this.input)}withFaceDescriptor(){return new Os(this,this.input)}};var Fg=class extends Ma{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Bo=class extends Fg{async run(){let t=await this.parentTask,n=await Lo(t,this.input,async a=>Promise.all(a.map(r=>rt.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return D1(R1(a,i,o),s)})}withFaceExpressions(){return new zo(this,this.input)}},Vo=class extends Fg{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await kp(t,this.input,s=>rt.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return D1(R1(t,a,r),n)}withFaceExpressions(){return new Wo(this,this.input)}},Rs=class extends Bo{withFaceExpressions(){return new Fs(this,this.input)}withFaceDescriptors(){return new Ps(this,this.input)}},Ms=class extends Vo{withFaceExpressions(){return new Ds(this,this.input)}withFaceDescriptor(){return new Os(this,this.input)}};var Dg=class extends Ma{constructor(n,a){super();this.parentTask=n;this.input=a}},Ps=class extends Dg{async run(){let t=await this.parentTask;return(await Lo(t,this.input,a=>Promise.all(a.map(r=>rt.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>F1(t[r],a))}withFaceExpressions(){return new Fs(this,this.input)}withAgeAndGender(){return new Rs(this,this.input)}},Os=class extends Dg{async run(){let t=await this.parentTask;if(!t)return;let n=await kp(t,this.input,a=>rt.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return F1(t,n)}withFaceExpressions(){return new Ds(this,this.input)}withAgeAndGender(){return new Ms(this,this.input)}};var Rg=class extends Ma{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?rt.faceLandmark68TinyNet:rt.faceLandmark68Net}},Mg=class extends Rg{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof $e?await Td(this.input,n):await Id(this.input,n),r=await Promise.all(a.map(i=>this.landmarkNet.detectLandmarks(i)));return a.forEach(i=>i instanceof $e&&i.dispose()),t.filter((i,o)=>r[o]).map((i,o)=>_d(i,r[o]))}withFaceExpressions(){return new Fs(this,this.input)}withAgeAndGender(){return new Rs(this,this.input)}withFaceDescriptors(){return new Ps(this,this.input)}},Pg=class extends Rg{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof $e?await Td(this.input,[n]):await Id(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof $e&&s.dispose()),_d(t,r)}withFaceExpressions(){return new Ds(this,this.input)}withAgeAndGender(){return new Ms(this,this.input)}withFaceDescriptor(){return new Os(this,this.input)}};var Og=class extends Ma{constructor(n,a=new Ra){super();this.input=n;this.options=a}},$d=class extends Og{async run(){let{input:t,options:n}=this,a;if(n instanceof $g)a=rt.tinyFaceDetector.locateFaces(t,n);else if(n instanceof Ra)a=rt.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof vr)a=rt.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=>ip({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new Mg(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new zo(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Bo(this.runAndExtendWithFaceDetections(),this.input)}},Lg=class extends Og{async run(){let t=await new $d(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?ip({},n):void 0)})}withFaceLandmarks(t=!1){return new Pg(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Wo(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Vo(this.runAndExtendWithFaceDetection(),this.input)}};function PNe(e,t=new Ra){return new Lg(e,t)}function P1(e,t=new Ra){return new $d(e,t)}async function ice(e,t){return P1(e,new Ra(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function VNe(e,t={}){return P1(e,new vr(t)).withFaceLandmarks().withFaceDescriptors()}var UNe=ice;function AA(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 zg=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 Or)return i;if(i instanceof Float32Array)return new Or(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new Or(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=>AA(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new xd(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>Or.fromJSON(a));return new zg(n,t.distanceThreshold)}};function o2e(e){let t=new Ip;return t.extractWeights(e),t}function oce(e,t){let{width:n,height:a}=new Fn(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=>oce(r,{width:n,height:a}));if(gp(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return _d(ip(e,r),s)}return Lr(e)?ip(e,e.detection.forSize(n,a)):e instanceof va||e instanceof wt?e.forSize(n,a):e}var y2e=Q$;export{Sg as AgeGenderNet,ap as BoundingBox,ct as Box,Ma as ComposableTask,Ps as ComputeAllFaceDescriptorsTask,Dg as ComputeFaceDescriptorsTaskBase,Os as ComputeSingleFaceDescriptorTask,Mg as DetectAllFaceLandmarksTask,$d as DetectAllFacesTask,Rg as DetectFaceLandmarksTaskBase,Og as DetectFacesTaskBase,Pg as DetectSingleFaceLandmarksTask,Lg as DetectSingleFaceTask,Fn as Dimensions,Y$ as FACE_EXPRESSION_LABELS,wt as FaceDetection,yA as FaceDetectionNet,wg as FaceExpressionNet,As as FaceExpressions,yp as FaceLandmark68Net,Cg as FaceLandmark68TinyNet,oA as FaceLandmarkNet,va as FaceLandmarks,O$ as FaceLandmarks5,sp as FaceLandmarks68,xd as FaceMatch,zg as FaceMatcher,xp as FaceRecognitionNet,E1 as Gender,vd as LabeledBox,Or as LabeledFaceDescriptors,Wr as NetInput,dn as NeuralNetwork,Es as ObjectDetection,Oe as Point,L$ as PredictedBox,rp as Rect,Po as SsdMobilenetv1,Ra as SsdMobilenetv1Options,Ip as TinyFaceDetector,$g as TinyFaceDetectorOptions,wp as TinyYolov2,vr as TinyYolov2Options,UNe as allFaces,ice as allFacesSsdMobilenetv1,VNe as allFacesTinyYolov2,z$ as awaitMediaLoaded,W$ as bufferToImage,CSe as computeFaceDescriptor,pp as createCanvas,hg as createCanvasFromMedia,aTe as createFaceDetectionNet,aIe as createFaceRecognitionNet,ece as createSsdMobilenetv1,o2e as createTinyFaceDetector,KTe as createTinyYolov2,P1 as detectAllFaces,rce as detectFaceLandmarks,NSe as detectFaceLandmarksTiny,zSe as detectLandmarks,PNe as detectSingleFace,J$ as draw,at as env,AA as euclideanDistance,D1 as extendWithAge,F1 as extendWithFaceDescriptor,ip as extendWithFaceDetection,C1 as extendWithFaceExpressions,_d as extendWithFaceLandmarks,R1 as extendWithGender,Td as extractFaceTensors,Id as extractFaces,hve as fetchImage,U$ as fetchJson,yve as fetchNetWeights,$s as fetchOrThrow,Tve as fetchVideo,aa as getContext2dOrThrow,up as getMediaDimensions,B$ as imageTensorToCanvas,V$ as imageToSquare,_be as inverseSigmoid,D$ as iou,N1 as isMediaElement,dg as isMediaLoaded,oIe as isWithAge,Lr as isWithFaceDetection,Z$ as isWithFaceExpressions,gp as isWithFaceLandmarks,cIe as isWithGender,PSe as loadAgeGenderModel,OSe as loadFaceDetectionModel,MSe as loadFaceExpressionModel,FSe as loadFaceLandmarkModel,DSe as loadFaceLandmarkTinyModel,RSe as loadFaceRecognitionModel,sce as loadSsdMobilenetv1Model,$Se as loadTinyFaceDetectorModel,ASe as loadTinyYolov2Model,H$ as loadWeightMap,LSe as locateFaces,Ave as matchDimensions,R$ as minBbox,rt as nets,M$ as nonMaxSuppression,xr as normalize,P$ as padToSquare,ESe as predictAgeAndGender,_Se as recognizeFaceExpressions,oce as resizeResults,op as resolveInput,Nbe as shuffleArray,ug as sigmoid,ace as ssdMobilenetv1,We as tf,TSe as tinyFaceDetector,SSe as tinyYolov2,kt as toNetInput,F$ as utils,SA as validateConfig,y2e 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;aA(i,o,l,u,c,m,g);let b=t.readSync(f.dataId),y;switch(b[0]){case 0:{y=N.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(b[1],b[2]);break}case 1:{y=N.getSparseReshapeNegativeOutputDimErrorMessage(b[1],b[2]);break}case 2:y=N.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();break;case 3:{let x=Array.from(t.readSync(r.dataId)),w=Array.from(t.readSync(h.dataId));y=N.getSparseReshapeInputOutputMultipleErrorMessage(x,w);break}case 4:{let x=Array.from(t.readSync(r.dataId)),w=Array.from(t.readSync(h.dataId));y=N.getSparseReshapeInputOutputMismatchErrorMessage(x,w);break}default:y=""}if(t.disposeData(f.dataId),y)throw t.disposeData(d.dataId),t.disposeData(h.dataId),new Error(y);return[d,h]}var Zle={kernelName:gu,backendName:"wasm",setupFunc:Xle,kernelFunc:Yle},rA;function sA(e){rA=e.wasm.cwrap("SparseSegmentReduction",null,["number","number","number","number","number","number","number","number","number"])}function iA(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"),b=n.dataIdMap.get(g.dataId).id;rA(d,Et[r.dtype],r.shape[0],c,h,f,b,t,0);let y=n.readSync(g.dataId),x;switch(y[0]){case 0:{x=N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y[1],y[2]);break;case 3:x=N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(y[1],y[2],y[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function Jle(e){return iA(e,!0)}var Qle={kernelName:hc,backendName:"wasm",setupFunc:sA,kernelFunc:Jle};function eue(e){return iA(e,!1)}var tue={kernelName:mc,backendName:"wasm",setupFunc:sA,kernelFunc:eue};function nue(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 aue={kernelName:fu,backendName:"wasm",kernelFunc:nue},rue=nn(ro),sue=nn(fc),iue=!0,oue=pn(oo,iue),oA;function lue(e){oA=e.wasm.cwrap(hs,null,["number","number","number","number"])}function uue(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 pue={kernelName:hs,backendName:"wasm",setupFunc:lue,kernelFunc:uue},lA;function cue(e){lA=e.wasm.cwrap(bu,null,["number","array","number","array","array","array","array","array","number","number"])}function due(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:b,begin:y,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=zn({inputs:{x:r},backend:t,attrs:{shape:m}});else if(g||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=jt.computeOutShape(y,x,w),C=di({inputs:{x:r},backend:t,attrs:{begin:y,size:T}});I=zn({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(y).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),W=t.dataIdMap.get(T.dataId).id;lA(C,E,r.shape.length,A,R,F,S,M,h.length,W),I=zn({inputs:{x:T},backend:t,attrs:{shape:m}}),t.disposeData(T.dataId)}return I}var hue={kernelName:bu,backendName:"wasm",setupFunc:cue,kernelFunc:due};function mue(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]=A0(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),b=t.dataIdMap.get(g.dataId);b.stringBytes=m;let y=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(y).set(f),[g,y]}var fue={kernelName:gc,backendName:"wasm",kernelFunc:mue};function gue(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]=$0(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 bue={kernelName:bc,backendName:"wasm",kernelFunc:gue};function yue(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=F0(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var xue={kernelName:yc,backendName:"wasm",kernelFunc:yue},vue=!0,wue=pn(lo,vue),uA;function kue(e){uA=e.wasm.cwrap(so,null,["number","number","number","number"])}function Iue(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),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;uA(l,b,Et[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Sue={kernelName:so,backendName:"wasm",setupFunc:kue,kernelFunc:Iue},Tue=nn(uo),Nue=nn(po),pA;function Cue(e){pA=e.wasm.cwrap(ds,null,["number","array","number","array","number","number"])}function _ue(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 cA(i,o,a.shape.length,Et[a.dtype],r,s,p,c),[u,d]},Fue={kernelName:yu,backendName:"wasm",setupFunc:Aue,kernelFunc:$ue},dA;function Due(e){dA=e.wasm.cwrap(xu,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function Rue(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],b=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),y=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 dA(I,T,s.shape[0]>1,p,m,f,h,c,d,b,r.shape.length-1,y,g.length-1,C,E,l,w),x}var Mue={kernelName:xu,backendName:"wasm",setupFunc:Due,kernelFunc:Rue};function Pue(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 Oue={kernelName:vu,backendName:"wasm",kernelFunc:Pue};function Lue(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var zue={kernelName:wu,backendName:"wasm",kernelFunc:Lue},Bue=[mse,fse,bse,vse,_se,$se,Rse,Ose,Wse,qse,Kse,Xse,Jse,Qse,nie,sie,iie,oie,pie,hie,gie,xie,kie,Iie,Tie,Nie,Cie,_ie,$ie,Fie,Rie,Oie,Bie,Uie,jie,Xie,Zie,Qie,wse,noe,roe,ioe,ooe,uoe,poe,doe,moe,boe,xoe,koe,Toe,_oe,Aoe,Doe,Moe,Poe,zoe,Voe,Hoe,qoe,Yoe,Joe,ele,HE,rle,ole,ple,dle,mle,fle,gle,Lse,xle,kle,Tle,_le,Ele,Ale,Dle,Ple,zle,Ble,Hse,Ule,Hle,Kle,Zle,Qle,tue,aue,rue,sue,oue,pue,hue,fue,bue,xue,wue,Sue,Tue,Nue,Eue,Fue,Mue,Tse,Oue,zue];for(let e of Bue)vc(e);var mx=H();mx.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}});mx.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(mx.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 lI=ls(fF()),Wue=ls(gF()),uI=ls(bF()),pI=lI.default||lI,Vue=uI.default||uI,hA=class extends nc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(mA),fx=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new Hh(this,Ja())}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 Hue(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 Uue(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 cI(e,t,n){if(Uh!=null)return Uh;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),Op!=null&&Op[a]!=null?Op[a]:n+a}async function Gue(){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=Wue.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?cI(e,t,Rp!=null?Rp:l):l+o},J0&&(r.instantiateWasm=Uue(cI(e,t,Rp!=null?Rp:"")));let s=!1;r.onAbort=()=>{s||Lp||(Lp=!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&&Uh==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+pI.toString()],{type:"text/javascript"}),i=pI(r)):i=Vue(r),i.then(o=>{s=!0,Lp=!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 Hue(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 jue=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],Uh=null,Rp=null,Op={},Lp=!1,J0=!1;function que(e,t=!1){if(Fx("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),Lp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");Uh=e,J0=t}function Kue(e,t=!1){if(Lp)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")Rp=e;else{Op=e;let n=jue.filter(a=>Op[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.`)}J0=t}var mA=-1,fx=-1;function Xue(e){mA=e}function Yue(){if(fx===-1)throw new Error("WASM backend not initialized.");return fx}var Zue="3.21.0",Jue=2;Cm("wasm",async()=>{let{wasm:e}=await Gue();return new hA(e)},Jue);var Que="3.21.0",epe="3.21.0",tpe="3.21.0",npe="3.21.0",ape="3.21.0",rpe="3.21.0",spe="3.21.0",ipe="3.21.0",ope={tfjs:Que,"tfjs-core":epe,"tfjs-data":tpe,"tfjs-layers":npe,"tfjs-converter":ape,"tfjs-backend-cpu":rpe,"tfjs-backend-webgl":spe,"tfjs-backend-wasm":ipe};var MA={};ty(MA,{AnchorPosition:()=>o1,DrawBox:()=>ld,DrawBoxOptions:()=>Wf,DrawFaceLandmarks:()=>Qf,DrawFaceLandmarksOptions:()=>Jf,DrawTextField:()=>Pr,DrawTextFieldOptions:()=>Yu,drawContour:()=>Fr,drawDetections:()=>mpe,drawFaceExpressions:()=>fpe,drawFaceLandmarks:()=>bpe});function Fr(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 fA={};ty(fA,{computeReshapedDimensions:()=>t1,getCenterPoint:()=>So,isDimensions:()=>Lf,isEven:()=>Of,isFloat:()=>e1,isTensor:()=>ko,isTensor1D:()=>lpe,isTensor2D:()=>Q0,isTensor3D:()=>Dr,isTensor4D:()=>ya,isValidNumber:()=>Ka,isValidProbablitiy:()=>Gu,range:()=>dr,round:()=>Io});var Cn=class{constructor(t,n){if(!Ka(t)||!Ka(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 Cn(1/this.width,1/this.height)}};function ko(e,t){return e instanceof Te&&e.shape.length===t}function lpe(e){return ko(e,1)}function Q0(e){return ko(e,2)}function Dr(e){return ko(e,3)}function ya(e){return ko(e,4)}function e1(e){return e%1!==0}function Of(e){return e%2===0}function Io(e,t=2){let n=10**t;return Math.floor(e*n)/n}function Lf(e){return e&&e.width&&e.height}function t1({width:e,height:t},n){let a=n/Math.max(t,e);return new Cn(Math.round(e*a),Math.round(t*a))}function So(e){return e.reduce((t,n)=>t.add(n),new Me(0,0)).div(new Me(e.length,e.length))}function dr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Ka(e){return!!e&&e!==1/0&&e!==-1/0&&!Number.isNaN(e)||e===0}function Gu(e){return Ka(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(Ka)}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(Ka),s=[a.x,a.y,a.width,a.height].every(Ka);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 Hu=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 Cn(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 gA(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 bA(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 hr(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 xA(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 obe(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 zf(e){return 1/(1+Math.exp(-e))}function ube(e){return Math.log(e/(1-e))}var ju=class extends ut{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var upe=.5,ppe=.43,cpe=.45,xa=class{constructor(t,n,a=new Me(0,0)){let{width:r,height:s}=n;this._imgDims=new Cn(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/cpe),l=So(t),u=Math.floor(Math.max(0,l.x-upe*o)),p=Math.floor(Math.max(0,l.y-ppe*o));return new ju(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=bA(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var vA=class extends xa{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],So([t[3],t[4]])]}};var qu=class extends xa{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(So)}};var sd=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?` (${Io(this.distance)})`:""}`}};var id=class extends ut{constructor(n,a){super(n);this._label=a}static assertIsValidLabeledBox(n,a){if(ut.assertIsValidBox(n,a),!Ka(n.label))throw new Error(`${a} - expected property label (${n.label}) to be a number`)}get label(){return this._label}};var Rr=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 Rr(t.label,n)}};var wA=class extends id{constructor(n,a,r,s){super(n,a);this._score=r,this._classScore=s}static assertIsValidPredictedBox(n,a){if(id.assertIsValidLabeledBox(n,a),!Gu(n.score)||!Gu(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 Mr(e){return e.detection instanceof xt}function Ku(e,t){return{...e,...{detection:t}}}function n1(){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 od(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function Bf(e){let t="";if(!e&&od())try{e=Ur("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 a1(){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=Bf();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 r1(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var an;function dpe(){if(!an)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return an}function s1(e){an=e}function i1(){return r1()?s1(n1()):od()?s1(a1()):null}function hpe(e){if(an||i1(),!an)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=an.Canvas,Image:n=an.Image}=e;an.Canvas=t,an.Image=n,an.createCanvasElement=e.createCanvasElement||(()=>new t),an.createImageElement=e.createImageElement||(()=>new n),an.ImageData=e.ImageData||an.ImageData,an.Video=e.Video||an.Video,an.fetch=e.fetch||an.fetch,an.readFile=e.readFile||an.readFile}var Qe={getEnv:dpe,setEnv:s1,initialize:i1,createBrowserEnv:n1,createFileSystem:Bf,createNodejsEnv:a1,monkeyPatch:hpe,isBrowser:r1,isNodejs:od};i1();function Xu(e){return!Qe.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function na(e){let{Canvas:t,CanvasRenderingContext2D:n}=Qe.getEnv();if(e instanceof n)return e;let a=Xu(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 o1=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(o1||{}),Yu=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}},Pr=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof Pr?t.text:t,this.anchor=n,this.options=new Yu(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 Wf=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 Yu({...i,...s})}},ld=class{constructor(t,n={}){this.box=new ut(t),this.options=new Wf(n)}draw(t){let n=na(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 Pr([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function mpe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof xt?a.score:Mr(a)?a.detection.score:void 0,s=a instanceof xt?a.box:Mr(a)?a.detection.box:new ut(a),i=r?`${Io(r)}`:void 0;new ld(s,{label:i}).draw(e)})}function Vf(e){let{Image:t,Video:n}=Qe.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function kA(e){return new Promise((t,n)=>{(e instanceof Qe.getEnv().Canvas||Vf(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 IA(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=Qe.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function Zu(e){let{Image:t,Video:n}=Qe.getEnv();return e instanceof t?new Cn(e.naturalWidth,e.naturalHeight):e instanceof n?new Cn(e.videoWidth,e.videoHeight):new Cn(e.width,e.height)}function Ju({width:e,height:t}){let{createCanvasElement:n}=Qe.getEnv(),a=n();return a.width=e,a.height=t,a}function Uf(e,t){let{ImageData:n}=Qe.getEnv();if(!(e instanceof n)&&!Vf(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||Zu(e),s=Ju({width:a,height:r});return e instanceof n?na(s).putImageData(e,0,0):na(s).drawImage(e,0,0,a,r),s}async function SA(e,t){let n=t||Qe.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(ya(e)?1:0),i=P(()=>e.as3D(a,r,s).toInt());return await co.toPixels(i,n),i.dispose(),n}function l1(e){let{Image:t,Canvas:n,Video:a}=Qe.getEnv();return e instanceof t||e instanceof n||e instanceof a}function TA(e,t,n=!1){let{Image:a,Canvas:r}=Qe.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Ju({width:1,height:1});let s=Zu(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=Ju({width:t,height:t}),p=e instanceof r?e:Uf(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&na(u).drawImage(p,c,h,o,l),u}var Or=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(Dr(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(ya(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 Qe.getEnv().Canvas?a:Uf(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 dr(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 t1({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,P(()=>{let a=dr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Te){let o=ya(i)?i:hn(i);return o=xA(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Ir.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof Qe.getEnv().Canvas)return co.fromPixels(TA(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 Or)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(Xu);return a.forEach((r,s)=>{if(!l1(r)&&!Dr(r)&&!ya(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(ya(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=>l1(r)&&kA(r))),new Or(a,Array.isArray(e))}async function ud(e,t){let{Canvas:n}=Qe.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 SA(o)}let r=na(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=Ju({width:l,height:u});return l>0&&u>0&&na(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function pd(e,t){if(!Dr(e)&&!ya(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(ya(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return P(()=>{let[n,a,r]=e.shape.slice(ya(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}=Qe.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 Kxe(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 IA(n)}async function NA(e){return(await Ns(e)).json()}async function Qxe(e){return new Float32Array(await(await Ns(e)).arrayBuffer())}function CA(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=Qe.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function sve(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 CA(n)}function Gf(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 _A(e,t){let{manifestUri:n,modelBaseUri:a}=Gf(e,t),r=await NA(n);return Ut.loadWeights(r,a)}function dve(e,t,n=!1){let{width:a,height:r}=n?Zu(t):t;return e.width=a,e.height=r,{width:a,height:r}}var cn=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 es)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof es))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=On(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 _A(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}=Qe.getEnv(),{manifestUri:a,modelBaseUri:r}=Gf(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 Hf(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 cd(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 To(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 _n(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function Qu(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 jf(e,t){return(n,a,r)=>{let s=Ca(e(n*a),[n,a]),i=Ke(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var dd=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function ep(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 dd(s,i,o)}}function tp(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new dd(n,a,r)}}function aa(e,t){return(n,a,r)=>{let s=e[n];if(!ko(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 En(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 qf(e,t){let n=Qu(e,t),a=ep(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 EA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=En(e),{extractDenseBlock4Params:r}=qf(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 Kf(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function Xf(e,t){let n=aa(e,t),a=Kf(n),r=tp(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 AA(e){let t=[],{extractDenseBlock4Params:n}=Xf(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 np=class extends cn{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=hr(a,[122.782,117.001,104.298]).div(255),i=cd(s,n.dense0,!0);return i=cd(i,n.dense1),i=cd(i,n.dense2),i=cd(i,n.dense3),i=fa(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 AA(t)}extractParams(t){return EA(t)}};function hd(e,t){return P(()=>Y(Ae(e,t.weights),t.bias))}function $A(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=En(e),o=jf(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 FA(e){let t=[],n=aa(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 Yf(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 ap=class extends cn{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 Or?this.faceFeatureExtractor.forwardInput(n):n;return hd(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 $A(n,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=Yf(n);return this.faceFeatureExtractor.loadFromWeightMap(a),FA(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 DA=["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}`);DA.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return DA.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var Zf=class extends ap{constructor(t=new np){super("FaceExpressionNet",t)}forwardInput(t){return P(()=>ja(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 RA(e){return e.expressions instanceof Cs}function u1(e,t){return{...e,...{expressions:t}}}function fpe(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Cs?s:RA(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=Mr(s)?s.detection.box.bottomLeft:a||new Me(0,0);new Pr(l.map(d=>`${d.expression} (${Io(d.probability)})`),u).draw(e)})}function rp(e){return Mr(e)&&e.landmarks instanceof xa&&e.unshiftedLandmarks instanceof xa&&e.alignedRect instanceof xt}function gpe(e){let t=(o,l,u,p)=>Math.atan2(p-l,u-o)%Math.PI,n=o=>o*180/Math.PI,a={roll:void 0,pitch:void 0,yaw:void 0};if(!e||!e._positions||e._positions.length!==68)return a;let r=e._positions;a.roll=-t(r[36]._x,r[36]._y,r[45]._x,r[45]._y),a.pitch=t(0,Math.abs(r[0]._x-r[30]._x)/r[30]._x,Math.PI,Math.abs(r[16]._x-r[30]._x)/r[30]._x);let s=r.reduce((o,l)=>oo>l._y?o:l._y,-1/0);return a.yaw=Math.PI*(e._imgDims._height/(i-s)/1.4-1),a}function md(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=gpe(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var Jf=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)"}},Qf=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new Jf(n)}draw(t){let n=na(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof qu&&(n.strokeStyle=i,n.lineWidth=s,Fr(n,this.faceLandmarks.getJawOutline()),Fr(n,this.faceLandmarks.getLeftEyeBrow()),Fr(n,this.faceLandmarks.getRightEyeBrow()),Fr(n,this.faceLandmarks.getNose()),Fr(n,this.faceLandmarks.getLeftEye(),!0),Fr(n,this.faceLandmarks.getRightEye(),!0),Fr(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 bpe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof xa?a:rp(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new Qf(r).draw(e)})}var PA="1.7.4";function vpe(e,t){let n=Qu(e,t),a=ep(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 OA(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=En(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=vpe(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={};dr(t,0,1).forEach(b=>{h[`main_block_${b}`]=l(128,`middle_flow/main_block_${b}`)});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 wpe(e,t){let n=aa(e,t),a=Kf(n),r=tp(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 LA(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=wpe(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={};dr(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 zA(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=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,zA(e,t.expansion_conv,[2,2])),a}function kpe(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 eg=class extends cn{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=hr(r,[122.782,117.001,104.298]).div(255),o=Xe(zA(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),dr(this._numMainBlocks,0,1).forEach(l=>{o=kpe(o,a.middle_flow[`main_block_${l}`])}),o=p1(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 LA(n,this._numMainBlocks)}extractParams(n){return OA(n,this._numMainBlocks)}};function BA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=En(e),r=jf(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 WA(e){let t=[],n=aa(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 c1=(n=>(n.FEMALE="female",n.MALE="male",n))(c1||{});var tg=class extends cn{constructor(n=new eg(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 Or?this.faceFeatureExtractor.forwardInput(n):n,s=fa(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=hd(s,a.fc.age).as1D(),o=hd(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:ja(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 BA(n)}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=Yf(n);return this.faceFeatureExtractor.loadFromWeightMap(a),WA(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 sp=class extends ap{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)=>Of(d)),u=o.filter((p,d)=>!Of(d));return new qu(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 ip=class extends sp{constructor(t=new np){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function VA(e){let t=[],{extractDenseBlock3Params:n}=Xf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return _n(e,t),{params:a,paramMappings:t}}function UA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=En(e),{extractDenseBlock3Params:r}=qf(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 ng=class extends cn{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=hr(a,[122.782,117.001,104.298]).div(255),i=Hf(s,n.dense0,!0);return i=Hf(i,n.dense1),i=Hf(i,n.dense2),i=fa(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 VA(t)}extractParams(t){return UA(t)}};var ag=class extends sp{constructor(t=new ng){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var GA=class extends ip{};function HA(e,t){return Y(z(e,t.weights),t.biases)}function d1(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=HA(o,t.scale),a?Xe(o):o}function jA(e,t){return d1(e,t,[1,1],!0)}function h1(e,t){return d1(e,t,[1,1],!1)}function rg(e,t){return d1(e,t,[2,2],!0,"valid")}function Ipe(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(e1(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return P(()=>Ce(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 qA(e){let{extractWeights:t,getRemainingWeights:n}=En(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=Ipe(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"),b=s(589824,256,3,"conv256_down",!0),y=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),w=s(589824,256,3,"conv256_down_out"),I=P(()=>Ce(Ca(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:b,conv256_1:y,conv256_2:x,conv256_down_out:w,fc:I},paramMappings:a}}function Spe(e,t){let n=aa(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 KA(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Spe(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"),b=a("conv256_2"),y=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!Q0(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:b,conv256_down_out:y,fc:x};return _n(e,t),{params:w,paramMappings:t}}function Xa(e,t){let n=jA(e,t.conv1);return n=h1(n,t.conv2),n=Y(n,e),n=Xe(n),n}function fd(e,t){let n=rg(e,t.conv1);n=h1(n,t.conv2);let a=fa(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 op=class extends cn{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=hr(a,[122.782,117.001,104.298]).div(255),i=rg(s,n.conv32_down);i=Dt(i,3,2,"valid"),i=Xa(i,n.conv32_1),i=Xa(i,n.conv32_2),i=Xa(i,n.conv32_3),i=fd(i,n.conv64_down),i=Xa(i,n.conv64_1),i=Xa(i,n.conv64_2),i=Xa(i,n.conv64_3),i=fd(i,n.conv128_down),i=Xa(i,n.conv128_1),i=Xa(i,n.conv128_2),i=fd(i,n.conv256_down),i=Xa(i,n.conv256_1),i=Xa(i,n.conv256_2),i=fd(i,n.conv256_down_out);let o=i.mean([1,2]);return Ae(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 KA(t)}extractParams(t){return qA(t)}};function Lke(e){let t=new op;return t.extractWeights(e),t}function m1(e,t){return{...e,...{descriptor:t}}}function Vke(e){return typeof e.age=="number"}function f1(e,t){return{...e,...{age:t}}}function jke(e){return(e.gender==="male"||e.gender==="female")&&Gu(e.genderProbability)}function g1(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function Tpe(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"),b=s(512,512,"mobilenetv1/conv_9"),y=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:b,conv_10:y,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"),b=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),y=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:b},box_predictor_1:{box_encoding_predictor:y,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 XA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=En(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=Tpe(n,t),i=r(),o=s(),u={extra_dim:Nc(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 Npe(e,t){let n=aa(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`),b=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),y=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:b,batch_norm_variance:y},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 YA(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=Npe(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Dr(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 Da(e,t,n){return P(()=>{let a=$t(e,t.filters,n,"same");return a=Y(a,t.batch_norm_offset),Qt(a,0,6)})}var Cpe=.0010000000474974513;function _pe(e,t,n){return P(()=>{let a=bs(e,t.filters,n,"same");return a=gs(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Cpe),Qt(a,0,6)})}function Epe(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function ZA(e,t){return P(()=>{let n,a=Da(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=Epe(o);a=_pe(a,s.depthwise_conv,l),a=Da(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 Ape(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),b=Math.min(o,d),y=Math.max(g-m,0)*Math.max(b-f,0);return y/(c+h-y)}function JA(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=Ape(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 $pe(e){let t=ct(Ce(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 Fpe(e,t){let{sizes:n,centers:a}=$pe(e),r=ct(Ce(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 Ce(Ft([pe(i,s),pe(l,o),Y(i,s),Y(l,o)]),[1,0])}function QA(e,t,n){return P(()=>{let a=e.shape[0],r=Fpe(B(Pn(n.extra_dim,[a,1,1]),[-1,4]),B(e,[-1,4]));r=B(r,[a,r.shape[0]/a,4]);let s=da(We(t,[0,0,1],[-1,-1,-1])),i=We(s,[0,0,0],[-1,-1,1]);i=B(i,[a,i.shape[1]]);let o=ct(r),l=ct(i);return{boxes:o,scores:l}})}function No(e,t){return P(()=>{let n=e.shape[0],a=B(To(e,t.box_encoding_predictor),[n,-1,1,4]),r=B(To(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function e$(e,t,n){return P(()=>{let a=Da(e,n.conv_0,[1,1]),r=Da(a,n.conv_1,[2,2]),s=Da(r,n.conv_2,[1,1]),i=Da(s,n.conv_3,[2,2]),o=Da(i,n.conv_4,[1,1]),l=Da(o,n.conv_5,[2,2]),u=Da(l,n.conv_6,[1,1]),p=Da(u,n.conv_7,[2,2]),d=No(t,n.box_predictor_0),c=No(e,n.box_predictor_1),h=No(r,n.box_predictor_2),m=No(i,n.box_predictor_3),f=No(l,n.box_predictor_4),g=No(p,n.box_predictor_5),b=Ze([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),y=Ze([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:b,classPredictions:y}})}var Ra=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 Co=class extends cn{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=ZA(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=e$(s.out,s.conv11,n.prediction_layer);return QA(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await vt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new Ra(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,b[x][0]),Math.min(1,b[x][2])].map(E=>E*g),[T,C]=[Math.max(0,b[x][1]),Math.min(1,b[x][3])].map(E=>E*f);return new xt(p[x],new ju(T,w,C-T,I-w),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return YA(t)}extractParams(t){return XA(t)}};function Dpe(e){let t=new Co;return t.extractWeights(e),t}function LIe(e){return Dpe(e)}var t$=class extends Co{};var n$=.4,a$=[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)],r$=[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)],s$=[117.001,114.697,97.404],i$="tiny_yolov2_model",o$="tiny_yolov2_separable_conv_model";var sg=e=>typeof e=="number";function l$(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(!sg(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=>sg(t.x)&&sg(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(sg)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function lp(e){return P(()=>{let t=z(e,ye(.10000000149011612));return Y(Xe(pe(e,t)),t)})}function Lr(e,t){return P(()=>{let n=ga(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),lp(n)})}function zr(e,t){return P(()=>{let n=ga(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),lp(n)})}function Rpe(e,t){let n=Qu(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=ep(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function u$(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=En(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=Rpe(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,b,y,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,b,"conv5"),R=y?u(b,y,"conv6"):void 0,F=x?u(y,x,"conv7"):void 0,S=o(x||y||b,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,b,y,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,b,"conv5"),R=l(b,y,"conv6"),F=l(y,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 Mpe(e,t){let n=aa(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=tp(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function p$(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=Mpe(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 mr=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 b1=class extends cn{constructor(n){super("TinyYolov2");l$(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=Lr(n,a.conv0);return r=Dt(r,[2,2],[2,2],"same"),r=Lr(r,a.conv1),r=Dt(r,[2,2],[2,2],"same"),r=Lr(r,a.conv2),r=Dt(r,[2,2],[2,2],"same"),r=Lr(r,a.conv3),r=Dt(r,[2,2],[2,2],"same"),r=Lr(r,a.conv4),r=Dt(r,[2,2],[2,2],"same"),r=Lr(r,a.conv5),r=Dt(r,[2,2],[1,1],"same"),r=Lr(r,a.conv6),r=Lr(r,a.conv7),To(r,a.conv8,"valid",!1)}runMobilenet(n,a){let r=this.config.isFirstLayerConv2d?lp(To(n,a.conv0,"valid",!1)):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=a.conv6?zr(r,a.conv6):r,r=a.conv7?zr(r,a.conv7):r,To(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?hr(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 mr(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(b=>b.box),c=p.map(b=>b.score),h=p.map(b=>b.classScore),m=p.map(b=>this.config.classes[b.label]);return yA(d.map(b=>b.rescale(r)),c,this.config.iouThreshold,!0).map(b=>new Ts(c[b],h[b],m[b],d[b],u))}getDefaultModelName(){return""}extractParamsFromWeightMap(n){return p$(n,this.config)}extractParams(n){let a=this.config.filterSizes||b1.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 u$(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 y=n.reshape([p,p,d,this.boxEncodingSize]),x=y.slice([0,0,0,0],[p,p,d,4]),w=y.slice([0,0,0,4],[p,p,d,1]),I=this.withClassScores?ja(y.slice([0,0,0,5],[p,p,d,this.config.classes.length]),3):ye(0);return[x,w,I]}),f=[],g=await h.array(),b=await c.array();for(let y=0;yr){let T=(x+zf(b[y][x][w][0]))/p*l,C=(y+zf(b[y][x][w][1]))/p*u,E=Math.exp(b[y][x][w][2])*this.config.anchors[w].x/p*l,A=Math.exp(b[y][x][w][3])*this.config.anchors[w].y/p*u,R=T-E/2,F=C-A/2,S={row:y,col:x,anchor:w},{classScore:M,label:W}=this.withClassScores?await this.extractPredictedClass(m,S):{classScore:1,label:0};f.push({box:new Hu(R,F,R+E,F+A),score:I,classScore:I*M,label:W,...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)}},_o=b1;_o.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var up=class extends _o{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:n$,classes:["face"],...t?{anchors:r$,meanRgb:s$}:{anchors:a$,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?o$:i$}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function ESe(e,t=!0){let n=new up(t);return n.extractWeights(e),n}var ig=class extends mr{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var Ma=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function Eo(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>rp(l)?r(l):l.detection),i=a||(t instanceof Te?await pd(t,s):await ud(t,s)),o=await n(i);return i.forEach(l=>l instanceof Te&&l.dispose()),o}async function pp(e,t,n,a,r){return Eo([e],t,async s=>n(s[0]),a,r)}var c$=.4,d$=[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)],h$=[117.001,114.697,97.404];var cp=class extends _o{constructor(){let t={withSeparableConvs:!0,iouThreshold:c$,classes:["face"],anchors:d$,meanRgb:h$,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 et={ssdMobilenetv1:new Co,tinyFaceDetector:new cp,tinyYolov2:new up,faceLandmark68Net:new ip,faceLandmark68TinyNet:new ag,faceRecognitionNet:new op,faceExpressionNet:new Zf,ageGenderNet:new tg},Ppe=(e,t)=>et.ssdMobilenetv1.locateFaces(e,t),sTe=(e,t)=>et.tinyFaceDetector.locateFaces(e,t),iTe=(e,t)=>et.tinyYolov2.locateFaces(e,t),Ope=e=>et.faceLandmark68Net.detectLandmarks(e),oTe=e=>et.faceLandmark68TinyNet.detectLandmarks(e),lTe=e=>et.faceRecognitionNet.computeFaceDescriptor(e),uTe=e=>et.faceExpressionNet.predictExpressions(e),pTe=e=>et.ageGenderNet.predictAgeAndGender(e),Lpe=e=>et.ssdMobilenetv1.load(e),cTe=e=>et.tinyFaceDetector.load(e),dTe=e=>et.tinyYolov2.load(e),hTe=e=>et.faceLandmark68Net.load(e),mTe=e=>et.faceLandmark68TinyNet.load(e),fTe=e=>et.faceRecognitionNet.load(e),gTe=e=>et.faceExpressionNet.load(e),bTe=e=>et.ageGenderNet.load(e),yTe=Lpe,xTe=Ppe,vTe=Ope;var og=class extends Ma{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Ao=class extends og{async run(){let t=await this.parentTask,n=await Eo(t,this.input,async a=>Promise.all(a.map(r=>et.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>u1(a,n[r]))}withAgeAndGender(){return new Fo(this,this.input)}},$o=class extends og{async run(){let t=await this.parentTask;if(!t)return;let n=await pp(t,this.input,a=>et.faceExpressionNet.predictExpressions(a),this.extractedFaces);return u1(t,n)}withAgeAndGender(){return new Do(this,this.input)}},_s=class extends Ao{withAgeAndGender(){return new As(this,this.input)}withFaceDescriptors(){return new Fs(this,this.input)}},Es=class extends $o{withAgeAndGender(){return new $s(this,this.input)}withFaceDescriptor(){return new Ds(this,this.input)}};var lg=class extends Ma{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Fo=class extends lg{async run(){let t=await this.parentTask,n=await Eo(t,this.input,async a=>Promise.all(a.map(r=>et.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return f1(g1(a,i,o),s)})}withFaceExpressions(){return new Ao(this,this.input)}},Do=class extends lg{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await pp(t,this.input,s=>et.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return f1(g1(t,a,r),n)}withFaceExpressions(){return new $o(this,this.input)}},As=class extends Fo{withFaceExpressions(){return new _s(this,this.input)}withFaceDescriptors(){return new Fs(this,this.input)}},$s=class extends Do{withFaceExpressions(){return new Es(this,this.input)}withFaceDescriptor(){return new Ds(this,this.input)}};var ug=class extends Ma{constructor(n,a){super();this.parentTask=n;this.input=a}},Fs=class extends ug{async run(){let t=await this.parentTask;return(await Eo(t,this.input,a=>Promise.all(a.map(r=>et.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>m1(t[r],a))}withFaceExpressions(){return new _s(this,this.input)}withAgeAndGender(){return new As(this,this.input)}},Ds=class extends ug{async run(){let t=await this.parentTask;if(!t)return;let n=await pp(t,this.input,a=>et.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return m1(t,n)}withFaceExpressions(){return new Es(this,this.input)}withAgeAndGender(){return new $s(this,this.input)}};var pg=class extends Ma{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?et.faceLandmark68TinyNet:et.faceLandmark68Net}},cg=class extends pg{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Te?await pd(this.input,n):await ud(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)=>md(i,r[o]))}withFaceExpressions(){return new _s(this,this.input)}withAgeAndGender(){return new As(this,this.input)}withFaceDescriptors(){return new Fs(this,this.input)}},dg=class extends pg{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Te?await pd(this.input,[n]):await ud(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Te&&s.dispose()),md(t,r)}withFaceExpressions(){return new Es(this,this.input)}withAgeAndGender(){return new $s(this,this.input)}withFaceDescriptor(){return new Ds(this,this.input)}};var hg=class extends Ma{constructor(n,a=new Ra){super();this.input=n;this.options=a}},gd=class extends hg{async run(){let{input:t,options:n}=this,a;if(n instanceof ig)a=et.tinyFaceDetector.locateFaces(t,n);else if(n instanceof Ra)a=et.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof mr)a=et.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=>Ku({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new cg(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Ao(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Fo(this.runAndExtendWithFaceDetections(),this.input)}},mg=class extends hg{async run(){let t=await new gd(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?Ku({},n):void 0)})}withFaceLandmarks(t=!1){return new dg(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new $o(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Do(this.runAndExtendWithFaceDetection(),this.input)}};function bNe(e,t=new Ra){return new mg(e,t)}function y1(e,t=new Ra){return new gd(e,t)}async function zpe(e,t){return y1(e,new Ra(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function INe(e,t={}){return y1(e,new mr(t)).withFaceLandmarks().withFaceDescriptors()}var SNe=zpe;function m$(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 fg=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 Rr)return i;if(i instanceof Float32Array)return new Rr(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new Rr(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=>m$(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new sd(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>Rr.fromJSON(a));return new fg(n,t.distanceThreshold)}};function VNe(e){let t=new cp;return t.extractWeights(e),t}function Bpe(e,t){let{width:n,height:a}=new Cn(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=>Bpe(r,{width:n,height:a}));if(rp(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return md(Ku(e,r),s)}return Mr(e)?Ku(e,e.detection.forSize(n,a)):e instanceof xa||e instanceof xt?e.forSize(n,a):e}var QNe=PA;export{tg as AgeGenderNet,Hu as BoundingBox,ut as Box,Ma as ComposableTask,Fs as ComputeAllFaceDescriptorsTask,ug as ComputeFaceDescriptorsTaskBase,Ds as ComputeSingleFaceDescriptorTask,cg as DetectAllFaceLandmarksTask,gd as DetectAllFacesTask,pg as DetectFaceLandmarksTaskBase,hg as DetectFacesTaskBase,dg as DetectSingleFaceLandmarksTask,mg as DetectSingleFaceTask,Cn as Dimensions,DA as FACE_EXPRESSION_LABELS,xt as FaceDetection,t$ as FaceDetectionNet,Zf as FaceExpressionNet,Cs as FaceExpressions,ip as FaceLandmark68Net,ag as FaceLandmark68TinyNet,GA as FaceLandmarkNet,xa as FaceLandmarks,vA as FaceLandmarks5,qu as FaceLandmarks68,sd as FaceMatch,fg as FaceMatcher,op as FaceRecognitionNet,c1 as Gender,id as LabeledBox,Rr as LabeledFaceDescriptors,Or as NetInput,cn as NeuralNetwork,Ts as ObjectDetection,Me as Point,wA as PredictedBox,ju as Rect,Co as SsdMobilenetv1,Ra as SsdMobilenetv1Options,cp as TinyFaceDetector,ig as TinyFaceDetectorOptions,up as TinyYolov2,mr as TinyYolov2Options,SNe as allFaces,zpe as allFacesSsdMobilenetv1,INe as allFacesTinyYolov2,kA as awaitMediaLoaded,IA as bufferToImage,lTe as computeFaceDescriptor,Ju as createCanvas,Uf as createCanvasFromMedia,LIe as createFaceDetectionNet,Lke as createFaceRecognitionNet,Dpe as createSsdMobilenetv1,VNe as createTinyFaceDetector,ESe as createTinyYolov2,y1 as detectAllFaces,Ope as detectFaceLandmarks,oTe as detectFaceLandmarksTiny,vTe as detectLandmarks,bNe as detectSingleFace,MA as draw,Qe as env,m$ as euclideanDistance,f1 as extendWithAge,m1 as extendWithFaceDescriptor,Ku as extendWithFaceDetection,u1 as extendWithFaceExpressions,md as extendWithFaceLandmarks,g1 as extendWithGender,pd as extractFaceTensors,ud as extractFaces,Kxe as fetchImage,NA as fetchJson,Qxe as fetchNetWeights,Ns as fetchOrThrow,sve as fetchVideo,na as getContext2dOrThrow,Zu as getMediaDimensions,SA as imageTensorToCanvas,TA as imageToSquare,ube as inverseSigmoid,gA as iou,l1 as isMediaElement,Vf as isMediaLoaded,Vke as isWithAge,Mr as isWithFaceDetection,RA as isWithFaceExpressions,rp as isWithFaceLandmarks,jke as isWithGender,bTe as loadAgeGenderModel,yTe as loadFaceDetectionModel,gTe as loadFaceExpressionModel,hTe as loadFaceLandmarkModel,mTe as loadFaceLandmarkTinyModel,fTe as loadFaceRecognitionModel,Lpe as loadSsdMobilenetv1Model,cTe as loadTinyFaceDetectorModel,dTe as loadTinyYolov2Model,_A as loadWeightMap,xTe as locateFaces,dve as matchDimensions,bA as minBbox,et as nets,yA as nonMaxSuppression,hr as normalize,xA as padToSquare,pTe as predictAgeAndGender,uTe as recognizeFaceExpressions,Bpe as resizeResults,Xu as resolveInput,obe as shuffleArray,zf as sigmoid,Ppe as ssdMobilenetv1,Oe as tf,sTe as tinyFaceDetector,iTe as tinyYolov2,vt as toNetInput,fA as utils,l$ as validateConfig,QNe 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 3be1a77..9bebb1b 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 ZU=Object.create;var p0=Object.defineProperty;var JU=Object.getOwnPropertyDescriptor;var QU=Object.getOwnPropertyNames;var t4=Object.getPrototypeOf,e4=Object.prototype.hasOwnProperty;var gr=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),jt=(r,t)=>{for(var e in t)p0(r,e,{get:t[e],enumerable:!0})},r4=(r,t,e,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of QU(t))!e4.call(r,o)&&o!==e&&p0(r,o,{get:()=>t[o],enumerable:!(n=JU(t,o))||n.enumerable});return r};var Tl=(r,t,e)=>(e=r!=null?ZU(t4(r)):{},r4(t||!r||!r.__esModule?p0(e,\"default\",{value:r,enumerable:!0}):e,r));var V1=gr((Flt,B1)=>{B1.exports=Ke;var po=null;try{po=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 Ke(r,t,e){this.low=r|0,this.high=t|0,this.unsigned=!!e}Ke.prototype.__isLong__;Object.defineProperty(Ke.prototype,\"__isLong__\",{value:!0});function On(r){return(r&&r.__isLong__)===!0}Ke.isLong=On;var $1={},D1={};function Hu(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=D1[r],n)?n:(e=je(r,(r|0)<0?-1:0,!0),o&&(D1[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=$1[r],n)?n:(e=je(r,r<0?-1:0,!1),o&&($1[r]=e),e))}Ke.fromInt=Hu;function mo(r,t){if(isNaN(r))return t?Uu:fo;if(t){if(r<0)return Uu;if(r>=P1)return z1}else{if(r<=-F1)return Fn;if(r+1>=F1)return M1}return r<0?mo(-r,t).neg():je(r%tm|0,r/tm|0,t)}Ke.fromNumber=mo;function je(r,t,e){return new Ke(r,t,e)}Ke.fromBits=je;var ex=Math.pow;function S0(r,t,e){if(r.length===0)throw Error(\"empty string\");if(r===\"NaN\"||r===\"Infinity\"||r===\"+Infinity\"||r===\"-Infinity\")return fo;if(typeof t==\"number\"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error(\"interior hyphen\");if(n===0)return S0(r.substring(1),t,e).neg();for(var o=mo(ex(e,8)),s=fo,i=0;i>>0:this.low};yt.toNumber=function(){return this.unsigned?(this.high>>>0)*tm+(this.low>>>0):this.high*tm+(this.low>>>0)};yt.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}};yt.getHighBits=function(){return this.high};yt.getHighBitsUnsigned=function(){return this.high>>>0};yt.getLowBits=function(){return this.low};yt.getLowBitsUnsigned=function(){return this.low>>>0};yt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Fn)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,e=31;e>0&&(t&1<=0};yt.isOdd=function(){return(this.low&1)===1};yt.isEven=function(){return(this.low&1)===0};yt.equals=function(t){return On(t)||(t=Ws(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low};yt.eq=yt.equals;yt.notEquals=function(t){return!this.eq(t)};yt.neq=yt.notEquals;yt.ne=yt.notEquals;yt.lessThan=function(t){return this.comp(t)<0};yt.lt=yt.lessThan;yt.lessThanOrEqual=function(t){return this.comp(t)<=0};yt.lte=yt.lessThanOrEqual;yt.le=yt.lessThanOrEqual;yt.greaterThan=function(t){return this.comp(t)>0};yt.gt=yt.greaterThan;yt.greaterThanOrEqual=function(t){return this.comp(t)>=0};yt.gte=yt.greaterThanOrEqual;yt.ge=yt.greaterThanOrEqual;yt.compare=function(t){if(On(t)||(t=Ws(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};yt.comp=yt.compare;yt.negate=function(){return!this.unsigned&&this.eq(Fn)?Fn:this.not().add(Qp)};yt.neg=yt.negate;yt.add=function(t){On(t)||(t=Ws(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,je(m<<16|f,c<<16|p,this.unsigned)};yt.subtract=function(t){return On(t)||(t=Ws(t)),this.add(t.neg())};yt.sub=yt.subtract;yt.multiply=function(t){if(this.isZero())return fo;if(On(t)||(t=Ws(t)),po){var e=po.mul(this.low,this.high,t.low,t.high);return je(e,po.get_high(),this.unsigned)}if(t.isZero())return fo;if(this.eq(Fn))return t.isOdd()?Fn:fo;if(t.eq(Fn))return this.isOdd()?Fn:fo;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(O1)&&t.lt(O1))return mo(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,je(f<<16|d,p<<16|m,this.unsigned)};yt.mul=yt.multiply;yt.divide=function(t){if(On(t)||(t=Ws(t)),t.isZero())throw Error(\"division by zero\");if(po){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?po.div_u:po.div_s)(this.low,this.high,t.low,t.high);return je(e,po.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Uu:fo;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Uu;if(t.gt(this.shru(1)))return L1;s=Uu}else{if(this.eq(Fn)){if(t.eq(Qp)||t.eq(I0))return Fn;if(t.eq(Fn))return Qp;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(fo)?t.isNegative()?Qp:I0:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(Fn))return this.unsigned?Uu:fo;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=fo}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:ex(2,a-48),l=mo(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=mo(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Qp),s=s.add(l),o=o.sub(c)}return s};yt.div=yt.divide;yt.modulo=function(t){if(On(t)||(t=Ws(t)),po){var e=(this.unsigned?po.rem_u:po.rem_s)(this.low,this.high,t.low,t.high);return je(e,po.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))};yt.mod=yt.modulo;yt.rem=yt.modulo;yt.not=function(){return je(~this.low,~this.high,this.unsigned)};yt.and=function(t){return On(t)||(t=Ws(t)),je(this.low&t.low,this.high&t.high,this.unsigned)};yt.or=function(t){return On(t)||(t=Ws(t)),je(this.low|t.low,this.high|t.high,this.unsigned)};yt.xor=function(t){return On(t)||(t=Ws(t)),je(this.low^t.low,this.high^t.high,this.unsigned)};yt.shiftLeft=function(t){return On(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?je(this.low<>>32-t,this.unsigned):je(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):je(this.high>>t-32,this.high>=0?0:-1,this.unsigned)};yt.shr=yt.shiftRight;yt.shiftRightUnsigned=function(t){if(On(t)&&(t=t.toInt()),t&=63,t===0)return this;var e=this.high;if(t<32){var n=this.low;return je(n>>>t|e<<32-t,e>>>t,this.unsigned)}else return t===32?je(e,0,this.unsigned):je(e>>>t-32,0,this.unsigned)};yt.shru=yt.shiftRightUnsigned;yt.shr_u=yt.shiftRightUnsigned;yt.toSigned=function(){return this.unsigned?je(this.low,this.high,!1):this};yt.toUnsigned=function(){return this.unsigned?this:je(this.low,this.high,!0)};yt.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()};yt.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]};yt.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]};Ke.fromBytes=function(t,e,n){return n?Ke.fromBytesLE(t,e):Ke.fromBytesBE(t,e)};Ke.fromBytesLE=function(t,e){return new Ke(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)};Ke.fromBytesBE=function(t,e){return new Ke(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}});var C_=gr(()=>{});var v_=gr(()=>{});var IE=gr((vE,fS)=>{(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})(vE,typeof fS==\"object\"&&fS,typeof define==\"function\"&&define)});var TE=gr((SE,dS)=>{(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})(SE,typeof dS==\"object\"&&dS,typeof define==\"function\"&&define)});var kE=gr((NE,hS)=>{(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})(NE,typeof hS==\"object\"&&hS,typeof define==\"function\"&&define)});var EE=gr((_E,gS)=>{(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})(_E,typeof gS==\"object\"&&gS,typeof define==\"function\"&&define)});var $E=gr((AE,xS)=>{(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})(AE,typeof xS==\"object\"&&xS,typeof define==\"function\"&&define)});var RE=gr((DE,yS)=>{(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})(DE,typeof yS==\"object\"&&yS,typeof define==\"function\"&&define)});var FE=gr(()=>{});var PE=gr((OE,cy)=>{(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,T){var E=[];C=C==!0?{entropy:!0}:C||{};var $=g(h(C.entropy?[w,b(t)]:w==null?x():w,3),E),D=new f(E),P=function(){for(var M=D.g(o),W=a,H=0;M=l;)M/=2,W/=2,H>>>=1;return(M+H)/W};return P.int32=function(){return D.g(4)|0},P.quick=function(){return D.g(4)/4294967296},P.double=P,g(b(D.S),t),(C.pass||T||function(M,W,H,q){return q&&(q.S&&d(q,D),M.state=function(){return d(D,{})}),H?(e[i]=M,W):M})(P,$,\"global\"in C?C.global:this==e,C.state)}function f(w){var C,T=w.length,E=this,$=0,D=E.i=E.j=0,P=E.S=[];for(T||(w=[T++]);${var Tj=IE(),Nj=TE(),kj=kE(),_j=EE(),Ej=$E(),Aj=RE(),sc=PE();sc.alea=Tj;sc.xor128=Nj;sc.xorwow=kj;sc.xorshift7=_j;sc.xor4096=Ej;sc.tychei=Aj;LE.exports=sc});var kT=gr(()=>{});var pw=gr(()=>{});var hg=gr(()=>{});var qW=gr(()=>{});var KW=gr(()=>{});var jW=gr(()=>{});var XW=gr((kv,qk)=>{var Hk=(()=>{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 Ft.buffer!=dr&&zo(Ft.buffer),op}function n(){return Ft.buffer!=dr&&zo(Ft.buffer),sp}function o(){return Ft.buffer!=dr&&zo(Ft.buffer),Vd}function s(){return Ft.buffer!=dr&&zo(Ft.buffer),wg}function i(){return Ft.buffer!=dr&&zo(Ft.buffer),Cg}function a(){return Ft.buffer!=dr&&zo(Ft.buffer),vg}function u(){return Ft.buffer!=dr&&zo(Ft.buffer),Ig}var l=typeof t!=\"undefined\"?t:{},c,p;l.ready=new Promise(function(k,R){c=k,p=R});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=(k,R)=>{throw R},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,T=\"\";function E(k){return l.locateFile?l.locateFile(k,T):T+k}var $,D,P,M;function W(k){if(k instanceof Zd)return;K(\"exiting due to exception: \"+k)}var H,q,X;if(w){b?T=hg().dirname(T)+\"/\":T=__dirname+\"/\",X=()=>{q||(H=pw(),q=hg())},$=function(V,Y){return X(),V=q.normalize(V),H.readFileSync(V,Y?void 0:\"utf8\")},P=R=>{var V=$(R,!0);return V.buffer||(V=new Uint8Array(V)),V},D=(R,V,Y)=>{X(),R=q.normalize(R),H.readFile(R,function(ht,wt){ht?Y(ht):V(wt.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\\\/g,\"/\")),d=process.argv.slice(2),process.on(\"uncaughtException\",function(R){if(!(R instanceof Zd))throw R}),process.on(\"unhandledRejection\",function(R){throw R}),g=(R,V)=>{if(Pu())throw process.exitCode=R,V;W(V),process.exit(R)},l.inspect=function(){return\"[Emscripten Module object]\"};let k;try{k=qW()}catch(R){throw console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?'),R}global.Worker=k.Worker}else(x||b)&&(b?T=self.location.href:typeof document!=\"undefined\"&&document.currentScript&&(T=document.currentScript.src),typeof r!=\"undefined\"&&r&&(T=r),T.indexOf(\"blob:\")!==0?T=T.substr(0,T.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):T=\"\",w||($=k=>{var R=new XMLHttpRequest;return R.open(\"GET\",k,!1),R.send(null),R.responseText},b&&(P=k=>{var R=new XMLHttpRequest;return R.open(\"GET\",k,!1),R.responseType=\"arraybuffer\",R.send(null),new Uint8Array(R.response)}),D=(k,R,V)=>{var Y=new XMLHttpRequest;Y.open(\"GET\",k,!0),Y.responseType=\"arraybuffer\",Y.onload=()=>{if(Y.status==200||Y.status==0&&Y.response){R(Y.response);return}V()},Y.onerror=V,Y.send(null)}),M=k=>document.title=k);w&&typeof performance==\"undefined\"&&(global.performance=KW().performance);var j=console.log.bind(console),Z=console.warn.bind(console);w&&(X(),j=k=>H.writeSync(1,k+`\n`),Z=k=>H.writeSync(2,k+`\n`));var et=l.print||j,K=l.printErr||Z;Object.assign(l,f),f=null,l.arguments&&(d=l.arguments),l.thisProgram&&(h=l.thisProgram),l.quit&&(g=l.quit);var ot=4;function st(k){st.shown||(st.shown={}),st.shown[k]||(st.shown[k]=1,K(k))}function it(k,R){if(typeof WebAssembly.Function==\"function\"){for(var V={i:\"i32\",j:\"i64\",f:\"f32\",d:\"f64\"},Y={parameters:[],results:R[0]==\"v\"?[]:[V[R[0]]]},ht=1;ht{bt=k},At=Atomics.load,Rt=Atomics.store,qt=Atomics.compareExchange,Kt;l.wasmBinary&&(Kt=l.wasmBinary);var me=l.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&ap(\"no native wasm support detected\");var Ft,Ae,Ie=!1,le;function qe(k,R){k||ap(R)}function Re(k){var R=l[\"_\"+k];return R}function Jr(k,R,V,Y,ht){var wt={string:function(Dn){var xp=0;if(Dn!=null&&Dn!==0){var b1=(Dn.length<<2)+1;xp=gp(b1),$n(Dn,xp,b1)}return xp},array:function(Dn){var xp=gp(Dn.length);return Cl(Dn,xp),xp}};function kt(Dn){return R===\"string\"?qr(Dn):R===\"boolean\"?Boolean(Dn):Dn}var Vt=Re(k),nr=[],Wo=0;if(Y)for(var Uo=0;Uo(V.buffer instanceof SharedArrayBuffer&&(V=new Uint8Array(V)),R.decode.call(R,V))}var Qr=typeof TextDecoder!=\"undefined\"?new Or(\"utf8\"):void 0;function tn(k,R,V){for(var Y=R+V,ht=R;k[ht]&&!(ht>=Y);)++ht;if(ht-R>16&&k.subarray&&Qr)return Qr.decode(k.subarray(R,ht));for(var wt=\"\";R>10,56320|Wo&1023)}}return wt}function qr(k,R){return k?tn(n(),k,R):\"\"}function so(k,R,V,Y){if(!(Y>0))return 0;for(var ht=V,wt=V+Y-1,kt=0;kt=55296&&Vt<=57343){var nr=k.charCodeAt(++kt);Vt=65536+((Vt&1023)<<10)|nr&1023}if(Vt<=127){if(V>=wt)break;R[V++]=Vt}else if(Vt<=2047){if(V+1>=wt)break;R[V++]=192|Vt>>6,R[V++]=128|Vt&63}else if(Vt<=65535){if(V+2>=wt)break;R[V++]=224|Vt>>12,R[V++]=128|Vt>>6&63,R[V++]=128|Vt&63}else{if(V+3>=wt)break;R[V++]=240|Vt>>18,R[V++]=128|Vt>>12&63,R[V++]=128|Vt>>6&63,R[V++]=128|Vt&63}}return R[V]=0,V-ht}function $n(k,R,V){return so(k,n(),R,V)}function Mo(k){for(var R=0,V=0;V=55296&&Y<=57343&&(Y=65536+((Y&1023)<<10)|k.charCodeAt(++V)&1023),Y<=127?++R:Y<=2047?R+=2:Y<=65535?R+=3:R+=4}return R}var io=typeof TextDecoder!=\"undefined\"?new Or(\"utf-16le\"):void 0;function Cl(k,R){e().set(k,R)}function Fu(k,R,V){for(var Y=0;Y>0]=k.charCodeAt(Y);V||(e()[R>>0]=0)}function np(k,R){return k%R>0&&(k+=R-k%R),k}var dr,op,sp,Vd,wg,Cg,Qk,vg,Ig;C&&(dr=l.buffer);function zo(k){dr=k,l.HEAP8=op=new Int8Array(k),l.HEAP16=Vd=new Int16Array(k),l.HEAP32=Cg=new Int32Array(k),l.HEAPU8=sp=new Uint8Array(k),l.HEAPU16=wg=new Uint16Array(k),l.HEAPU32=Qk=new Uint32Array(k),l.HEAPF32=vg=new Float32Array(k),l.HEAPF64=Ig=new Float64Array(k)}var Sg=l.INITIAL_MEMORY||16777216;if(C)Ft=l.wasmMemory,dr=l.buffer;else if(l.wasmMemory)Ft=l.wasmMemory;else if(Ft=new WebAssembly.Memory({initial:Sg/65536,maximum:32768,shared:!0}),!(Ft.buffer instanceof SharedArrayBuffer))throw K(\"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\");Ft&&(dr=Ft.buffer),Sg=dr.byteLength,zo(dr);var Hn,ip=[],vl=[],Av=[],Tg=[],Ou=!1,$v=!1,Ng=0;function Pu(){return me||Ng>0}function en(){if(l.preRun)for(typeof l.preRun==\"function\"&&(l.preRun=[l.preRun]);l.preRun.length;)t1(l.preRun.shift());Ag(ip)}function Gd(){Ou=!0,!C&&Ag(vl)}function Dv(){C||(Ut.terminateAllThreads(),$v=!0)}function Rv(){if(!C){if(l.postRun)for(typeof l.postRun==\"function\"&&(l.postRun=[l.postRun]);l.postRun.length;)Wd(l.postRun.shift());Ag(Tg)}}function t1(k){ip.unshift(k)}function e1(k){vl.unshift(k)}function Wd(k){Tg.unshift(k)}var Il=0,kg=null,Bo=null;function Ud(k){Il++,l.monitorRunDependencies&&l.monitorRunDependencies(Il)}function r1(k){if(Il--,l.monitorRunDependencies&&l.monitorRunDependencies(Il),Il==0&&(kg!==null&&(clearInterval(kg),kg=null),Bo)){var R=Bo;Bo=null,R()}}l.preloadedImages={},l.preloadedAudios={};function ap(k){C?postMessage({cmd:\"onAbort\",arg:k}):l.onAbort&&l.onAbort(k),k=\"Aborted(\"+k+\")\",K(k),Ie=!0,le=1,k+=\". Build with -s ASSERTIONS=1 for more info.\";var R=new WebAssembly.RuntimeError(k);throw p(R),R}var Fv=\"data:application/octet-stream;base64,\";function Hd(k){return k.startsWith(Fv)}function _g(k){return k.startsWith(\"file://\")}var rn;rn=\"tfjs-backend-wasm-threaded-simd.wasm\",Hd(rn)||(rn=E(rn));function Eg(k){try{if(k==rn&&Kt)return new Uint8Array(Kt);if(P)return P(k);throw\"both async and sync fetching of the wasm failed\"}catch(R){ap(R)}}function lp(){if(!Kt&&(x||b)){if(typeof fetch==\"function\"&&!_g(rn))return fetch(rn,{credentials:\"same-origin\"}).then(function(k){if(!k.ok)throw\"failed to load wasm binary file at '\"+rn+\"'\";return k.arrayBuffer()}).catch(function(){return Eg(rn)});if(D)return new Promise(function(k,R){D(rn,function(V){k(new Uint8Array(V))},R)})}return Promise.resolve().then(function(){return Eg(rn)})}function Ov(){var k={env:Gg,wasi_snapshot_preview1:Gg};function R(kt,Vt){var nr=kt.exports;if(l.asm=nr,Gv(l.asm.emscripten_tls_init),Hn=l.asm.__indirect_function_table,e1(l.asm.__wasm_call_ctors),Ae=Vt,!C){var Wo=Ut.unusedWorkers.length;Ut.unusedWorkers.forEach(function(Uo){Ut.loadWasmModuleToWorker(Uo,function(){--Wo||r1(\"wasm-instantiate\")})})}}C||Ud(\"wasm-instantiate\");function V(kt){R(kt.instance,kt.module)}function Y(kt){return lp().then(function(Vt){return WebAssembly.instantiate(Vt,k)}).then(function(Vt){return Vt}).then(kt,function(Vt){K(\"failed to asynchronously prepare wasm: \"+Vt),ap(Vt)})}function ht(){return!Kt&&typeof WebAssembly.instantiateStreaming==\"function\"&&!Hd(rn)&&!_g(rn)&&typeof fetch==\"function\"?fetch(rn,{credentials:\"same-origin\"}).then(function(kt){var Vt=WebAssembly.instantiateStreaming(kt,k);return Vt.then(V,function(nr){return K(\"wasm streaming compile failed: \"+nr),K(\"falling back to ArrayBuffer instantiation\"),Y(V)})}):Y(V)}if(l.instantiateWasm)try{var wt=l.instantiateWasm(k,R);return wt}catch(kt){return K(\"Module.instantiateWasm callback failed with error: \"+kt),!1}return ht().catch(p),{}}var n1,o1,Pv={};function Ag(k){for(;k.length>0;){var R=k.shift();if(typeof R==\"function\"){R(l);continue}var V=R.func;typeof V==\"number\"?R.arg===void 0?cp(V)():cp(V)(R.arg):V(R.arg===void 0?null:R.arg)}}function up(k){var R=u0(),V=k();return Kg(R),V}function oU(k){return k}function s1(k){var R=/\\b_Z[\\w\\d_]+/g;return k.replace(R,function(V){var Y=V;return V===Y?V:Y+\" [\"+V+\"]\"})}function Lv(k){i()[k>>2]=0;var R=Ut.pthreads[k];delete Ut.pthreads[k],R.worker.terminate(),l0(k),Ut.runningWorkers.splice(Ut.runningWorkers.indexOf(R.worker),1),R.worker.pthread=void 0}function Mv(k){var R=Ut.pthreads[k];R.worker.postMessage({cmd:\"cancel\"})}function $g(k){var R=Ut.pthreads[k];if(R){i()[k>>2]=0;var V=R.worker;Ut.returnWorkerToPool(V)}}function Dg(k){KU(k)}function zv(k){if(k instanceof Zd||k==\"unwind\")return le;g(1,k)}var Ut={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],init:function(){C?Ut.initWorker():Ut.initMainThread()},initMainThread:function(){for(var k=8,R=0;R>2]=0;try{k()}finally{i()[y1>>2]=1}},receiveObjectTransfer:function(k){},threadInit:function(){for(var k in Ut.tlsInitFunctions)Ut.tlsInitFunctions[k]()},loadWasmModuleToWorker:function(k,R){k.onmessage=V=>{var Y=V.data,ht=Y.cmd;if(k.pthread&&(Ut.currentProxiedOperationCallerThread=k.pthread.threadInfoStruct),Y.targetThread&&Y.targetThread!=qg()){var wt=Ut.pthreads[Y.targetThread];wt?wt.worker.postMessage(Y,Y.transferList):K('Internal error! Worker sent a message \"'+ht+'\" to target pthread '+Y.targetThread+\", but that thread no longer exists!\"),Ut.currentProxiedOperationCallerThread=void 0;return}ht===\"processQueuedMainThreadWork\"?f1():ht===\"spawnThread\"?Fg(Y):ht===\"cleanupThread\"?$g(Y.thread):ht===\"killThread\"?Lv(Y.thread):ht===\"cancelThread\"?Mv(Y.thread):ht===\"loaded\"?(k.loaded=!0,R&&R(k),k.runPthread&&(k.runPthread(),delete k.runPthread)):ht===\"print\"?et(\"Thread \"+Y.threadId+\": \"+Y.text):ht===\"printErr\"?K(\"Thread \"+Y.threadId+\": \"+Y.text):ht===\"alert\"?alert(\"Thread \"+Y.threadId+\": \"+Y.text):Y.target===\"setimmediate\"?k.postMessage(Y):ht===\"onAbort\"?l.onAbort&&l.onAbort(Y.arg):K(\"worker sent an unknown command \"+ht),Ut.currentProxiedOperationCallerThread=void 0},k.onerror=V=>{var Y=\"worker sent an error!\";throw K(Y+\" \"+V.filename+\":\"+V.lineno+\": \"+V.message),V},w&&(k.on(\"message\",function(V){k.onmessage({data:V})}),k.on(\"error\",function(V){k.onerror(V)}),k.on(\"detachedExit\",function(){})),k.postMessage({cmd:\"load\",urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:Ft,wasmModule:Ae})},allocateUnusedWorker:function(){var k=E(\"tfjs-backend-wasm-threaded-simd.worker.js\");Ut.unusedWorkers.push(new Worker(k))},getNewWorker:function(){return Ut.unusedWorkers.length==0&&(Ut.allocateUnusedWorker(),Ut.loadWasmModuleToWorker(Ut.unusedWorkers[0])),Ut.unusedWorkers.pop()}};function Bv(){var k=qg(),R=i()[k+44>>2],V=i()[k+48>>2],Y=R-V;x1(R,Y),Kg(R)}l.establishStackSpace=Bv;function Rg(k){if(C)return zu(1,0,k);try{Dg(k)}catch(R){zv(R)}}var Lu=[];function cp(k){var R=Lu[k];return R||(k>=Lu.length&&(Lu.length=k+1),Lu[k]=R=Hn.get(k)),R}function Vv(k,R){return cp(k)(R)}l.invokeEntryPoint=Vv;function i1(){var k=new Error;if(!k.stack){try{throw new Error}catch(R){k=R}if(!k.stack)return\"(no stack trace available)\"}return k.stack.toString()}function Gv(k,R,V){Ut.tlsInitFunctions.push(k)}function a1(k,R){Hn.set(k,R),Lu[k]=R}var Mu;w?Mu=()=>{var k=process.hrtime();return k[0]*1e3+k[1]/1e6}:C?Mu=()=>performance.now()-l.__performance_now_clock_drift:Mu=()=>performance.now();var Wv=!0;function Uv(k){return i()[m1()>>2]=k,k}function Hv(k,R){var V;if(k===0)V=Date.now();else if((k===1||k===4)&&Wv)V=Mu();else return Uv(28),-1;return i()[R>>2]=V/1e3|0,i()[R+4>>2]=V%1e3*1e3*1e3|0,0}function qv(k,R){return Hv(k,R)}function Kv(k){d1(k,!b,1,!x),Ut.threadInit()}function jv(k){C?postMessage({cmd:\"cleanupThread\",thread:k}):$g(k)}function Fg(k){var R=Ut.getNewWorker();if(!R)return 6;Ut.runningWorkers.push(R);var V=Ut.pthreads[k.pthread_ptr]={worker:R,threadInfoStruct:k.pthread_ptr};R.pthread=V;var Y={cmd:\"run\",start_routine:k.startRoutine,arg:k.arg,threadInfoStruct:k.pthread_ptr};return R.runPthread=()=>{Y.time=performance.now(),R.postMessage(Y,k.transferList)},R.loaded&&(R.runPthread(),delete R.runPthread),0}function Xv(k,R,V,Y){if(typeof SharedArrayBuffer==\"undefined\")return K(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\"),6;var ht=[],wt=0;if(C&&(ht.length===0||wt))return h1(687865856,k,R,V,Y);if(wt)return wt;var kt={startRoutine:V,pthread_ptr:k,arg:Y,transferList:ht};return C?(kt.cmd=\"spawnThread\",postMessage(kt,ht),0):Fg(kt)}function Yv(){return 2097152}function Zv(k,R){if(k==R)postMessage({cmd:\"processQueuedMainThreadWork\"});else if(C)postMessage({targetThread:k,cmd:\"processThreadQueue\"});else{var V=Ut.pthreads[k],Y=V&&V.worker;if(!Y)return;Y.postMessage({cmd:\"processThreadQueue\"})}return 1}function Jv(){ap(\"\")}function Qv(){w||b||st(\"Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread\")}function Og(){return 2147483648}function tI(k,R,V){n().copyWithin(k,R,R+V)}function eI(){return w?jW().cpus().length:navigator.hardwareConcurrency}function zu(k,R){var V=arguments.length-2,Y=arguments;return up(function(){for(var ht=V,wt=gp(ht*8),kt=wt>>3,Vt=0;Vt>3,ht=0;ht>>16),zo(Ft.buffer),1}catch(R){}}function oI(k){var R=n().length;if(k=k>>>0,k<=R)return!1;var V=Og();if(k>V)return!1;for(var Y=1;Y<=4;Y*=2){var ht=R*(1+.2/Y);ht=Math.min(ht,k+100663296);var wt=Math.min(V,np(Math.max(k,ht),65536)),kt=nI(wt);if(kt)return!0}return!1}var ne={inEventHandler:0,removeAllEventListeners:function(){for(var k=ne.eventHandlers.length-1;k>=0;--k)ne._removeHandler(k);ne.eventHandlers=[],ne.deferredCalls=[]},registerRemoveEventListeners:function(){ne.removeEventListenersRegistered||(Av.push(ne.removeAllEventListeners),ne.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(k,R,V){function Y(kt,Vt){if(kt.length!=Vt.length)return!1;for(var nr in kt)if(kt[nr]!=Vt[nr])return!1;return!0}for(var ht in ne.deferredCalls){var wt=ne.deferredCalls[ht];if(wt.targetFunction==k&&Y(wt.argsList,V))return}ne.deferredCalls.push({targetFunction:k,precedence:R,argsList:V}),ne.deferredCalls.sort(function(kt,Vt){return kt.precedence>2]=V,i()[wt+4>>2]=Y,i()[wt+8>>2]=ht,a0(k,637534208,R,Y,wt)})},getTargetThreadForEventCallback:function(k){switch(k){case 1:return 0;case 2:return Ut.currentProxiedOperationCallerThread;default:return k}},getNodeNameForTarget:function(k){return k?k==window?\"#window\":k==screen?\"#screen\":k&&k.nodeName?k.nodeName:\"\":\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function sI(k){var R=Mo(k)+1,V=i0(R);return $n(k,V,R),V}function iI(k,R,V,Y){up(function(){var ht=gp(12),wt=0;R&&(wt=sI(R)),i()[ht>>2]=wt,i()[ht+4>>2]=V,i()[ht+8>>2]=Y,a0(k,657457152,0,wt,ht)})}function aI(k,R,V,Y){R=R?qr(R):\"\",iI(k,R,V,Y)}function lI(k){return k>2?qr(k):k}var uI=[0,typeof document!=\"undefined\"?document:0,typeof window!=\"undefined\"?window:0];function cI(k){k=lI(k);var R=uI[k]||(typeof document!=\"undefined\"?document.querySelector(k):void 0);return R}function Kd(k){return cI(k)}function Pg(k,R,V){var Y=Kd(k);if(!Y)return-4;if(Y.canvasSharedPtr&&(i()[Y.canvasSharedPtr>>2]=R,i()[Y.canvasSharedPtr+4>>2]=V),Y.offscreenCanvas||!Y.controlTransferredOffscreen){Y.offscreenCanvas&&(Y=Y.offscreenCanvas);var ht=!1;if(Y.GLctxObject&&Y.GLctxObject.GLctx){var wt=Y.GLctxObject.GLctx.getParameter(2978);ht=wt[0]===0&&wt[1]===0&&wt[2]===Y.width&&wt[3]===Y.height}Y.width=R,Y.height=V,ht&&Y.GLctxObject.GLctx.viewport(0,0,R,V)}else if(Y.canvasSharedPtr){var kt=i()[Y.canvasSharedPtr+8>>2];return aI(kt,k,R,V),1}else return-4;return 0}function Lg(k,R,V){return C?zu(2,1,k,R,V):Pg(k,R,V)}function pI(k,R,V){var Y=Kd(k);return Y?Pg(k,R,V):Lg(k,R,V)}function mI(){throw\"unwind\"}function fI(k){var R=k.getExtension(\"ANGLE_instanced_arrays\");if(R)return k.vertexAttribDivisor=function(V,Y){R.vertexAttribDivisorANGLE(V,Y)},k.drawArraysInstanced=function(V,Y,ht,wt){R.drawArraysInstancedANGLE(V,Y,ht,wt)},k.drawElementsInstanced=function(V,Y,ht,wt,kt){R.drawElementsInstancedANGLE(V,Y,ht,wt,kt)},1}function dI(k){var R=k.getExtension(\"OES_vertex_array_object\");if(R)return k.createVertexArray=function(){return R.createVertexArrayOES()},k.deleteVertexArray=function(V){R.deleteVertexArrayOES(V)},k.bindVertexArray=function(V){R.bindVertexArrayOES(V)},k.isVertexArray=function(V){return R.isVertexArrayOES(V)},1}function hI(k){var R=k.getExtension(\"WEBGL_draw_buffers\");if(R)return k.drawBuffers=function(V,Y){R.drawBuffersWEBGL(V,Y)},1}function gI(k){return!!(k.multiDrawWebgl=k.getExtension(\"WEBGL_multi_draw\"))}var rr={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function(R){rr.lastError||(rr.lastError=R)},getNewId:function(k){for(var R=rr.counter++,V=k.length;V>2]:-1;ht+=qr(i()[V+wt*4>>2],kt<0?void 0:kt)}return ht},createContext:function(k,R){k.getContextSafariWebGL2Fixed||(k.getContextSafariWebGL2Fixed=k.getContext,k.getContext=function(ht,wt){var kt=k.getContextSafariWebGL2Fixed(ht,wt);return ht==\"webgl\"==kt instanceof WebGLRenderingContext?kt:null});var V=k.getContext(\"webgl\",R);if(!V)return 0;var Y=rr.registerContext(V,R);return Y},registerContext:function(k,R){var V=i0(8);i()[V+4>>2]=qg();var Y={handle:V,attributes:R,version:R.majorVersion,GLctx:k};return k.canvas&&(k.canvas.GLctxObject=Y),rr.contexts[V]=Y,(typeof R.enableExtensionsByDefault==\"undefined\"||R.enableExtensionsByDefault)&&rr.initExtensions(Y),V},makeContextCurrent:function(k){return rr.currentContext=rr.contexts[k],l.ctx=Vg=rr.currentContext&&rr.currentContext.GLctx,!(k&&!Vg)},getContext:function(k){return rr.contexts[k]},deleteContext:function(k){rr.currentContext===rr.contexts[k]&&(rr.currentContext=null),typeof ne==\"object\"&&ne.removeAllHandlersOnTarget(rr.contexts[k].GLctx.canvas),rr.contexts[k]&&rr.contexts[k].GLctx.canvas&&(rr.contexts[k].GLctx.canvas.GLctxObject=void 0),p1(rr.contexts[k].handle),rr.contexts[k]=null},initExtensions:function(k){if(k||(k=rr.currentContext),!k.initExtensionsDone){k.initExtensionsDone=!0;var R=k.GLctx;fI(R),dI(R),hI(R),R.disjointTimerQueryExt=R.getExtension(\"EXT_disjoint_timer_query\"),gI(R);var V=R.getSupportedExtensions()||[];V.forEach(function(Y){!Y.includes(\"lose_context\")&&!Y.includes(\"debug\")&&R.getExtension(Y)})}}},xI=[\"default\",\"low-power\",\"high-performance\"];function yI(k,R){var V=R>>2,Y=i()[V+6],ht={alpha:!!i()[V+0],depth:!!i()[V+1],stencil:!!i()[V+2],antialias:!!i()[V+3],premultipliedAlpha:!!i()[V+4],preserveDrawingBuffer:!!i()[V+5],powerPreference:xI[Y],failIfMajorPerformanceCaveat:!!i()[V+7],majorVersion:i()[V+8],minorVersion:i()[V+9],enableExtensionsByDefault:i()[V+10],explicitSwapControl:i()[V+11],proxyContextToMainThread:i()[V+12],renderViaOffscreenBackBuffer:i()[V+13]},wt=Kd(k);if(!wt||ht.explicitSwapControl)return 0;var kt=rr.createContext(wt,ht);return kt}function bI(k,R){return yI(k,R)}var pp={mappings:{},buffers:[null,[],[]],printChar:function(k,R){var V=pp.buffers[k];R===0||R===10?((k===1?et:K)(tn(V,0)),V.length=0):V.push(R)},varargs:void 0,get:function(){pp.varargs+=4;var k=i()[pp.varargs-4>>2];return k},getStr:function(k){var R=qr(k);return R},get64:function(k,R){return k}};function Mg(k){return C?zu(3,1,k):0}function zg(k,R,V,Y,ht){if(C)return zu(4,1,k,R,V,Y,ht)}function Bg(k,R,V,Y){if(C)return zu(5,1,k,R,V,Y);for(var ht=0,wt=0;wt>2],Vt=i()[R+4>>2];R+=8;for(var nr=0;nr>2]=ht,0}function wI(k){Tt(k)}Ut.init();var Vg,CI=[null,Rg,Lg,Mg,zg,Bg],l1=!1,Gg={__clock_gettime:qv,__emscripten_init_main_thread_js:Kv,__emscripten_thread_cleanup:jv,__pthread_create_js:Xv,_emscripten_default_pthread_stack_size:Yv,_emscripten_notify_thread_queue:Zv,abort:Jv,emscripten_check_blocking_allowed:Qv,emscripten_get_heap_max:Og,emscripten_get_now:Mu,emscripten_memcpy_big:tI,emscripten_num_logical_cores:eI,emscripten_receive_on_main_thread_js:rI,emscripten_resize_heap:oI,emscripten_set_canvas_element_size:pI,emscripten_unwind_to_js_event_loop:mI,emscripten_webgl_create_context:bI,exit:Dg,fd_close:Mg,fd_seek:zg,fd_write:Bg,memory:Ft||l.wasmMemory,setTempRet0:wI},u1=Ov(),vI=l.___wasm_call_ctors=function(){return(vI=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},II=l._init=function(){return(II=l._init=l.asm.init).apply(null,arguments)},SI=l._init_with_threads_count=function(){return(SI=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},TI=l._get_threads_count=function(){return(TI=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},NI=l._register_tensor=function(){return(NI=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},kI=l._dispose_data=function(){return(kI=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},_I=l._dispose=function(){return(_I=l._dispose=l.asm.dispose).apply(null,arguments)},EI=l._Abs=function(){return(EI=l._Abs=l.asm.Abs).apply(null,arguments)},AI=l._Add=function(){return(AI=l._Add=l.asm.Add).apply(null,arguments)},$I=l._AddN=function(){return($I=l._AddN=l.asm.AddN).apply(null,arguments)},DI=l._All=function(){return(DI=l._All=l.asm.All).apply(null,arguments)},RI=l._Any=function(){return(RI=l._Any=l.asm.Any).apply(null,arguments)},FI=l._ArgMax=function(){return(FI=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},OI=l._AvgPool=function(){return(OI=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},PI=l._BatchMatMul=function(){return(PI=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},LI=l._Ceil=function(){return(LI=l._Ceil=l.asm.Ceil).apply(null,arguments)},MI=l._ClipByValue=function(){return(MI=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},zI=l._Conv2D=function(){return(zI=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},BI=l._Conv2DBackpropInput=function(){return(BI=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},VI=l._Cos=function(){return(VI=l._Cos=l.asm.Cos).apply(null,arguments)},GI=l._Cosh=function(){return(GI=l._Cosh=l.asm.Cosh).apply(null,arguments)},WI=l._CropAndResize=function(){return(WI=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},UI=l._Cumprod=function(){return(UI=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},HI=l._Cumsum=function(){return(HI=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},qI=l._DepthToSpace=function(){return(qI=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},KI=l._DepthwiseConv2dNative=function(){return(KI=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},jI=l._Elu=function(){return(jI=l._Elu=l.asm.Elu).apply(null,arguments)},XI=l._Equal=function(){return(XI=l._Equal=l.asm.Equal).apply(null,arguments)},YI=l._Exp=function(){return(YI=l._Exp=l.asm.Exp).apply(null,arguments)},ZI=l._FlipLeftRight=function(){return(ZI=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},JI=l._Floor=function(){return(JI=l._Floor=l.asm.Floor).apply(null,arguments)},QI=l._FloorDiv=function(){return(QI=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},t0=l._FusedBatchNorm=function(){return(t0=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},e0=l._FusedConv2D=function(){return(e0=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},Wg=l._FusedDepthwiseConv2D=function(){return(Wg=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},Ug=l._Gather=function(){return(Ug=l._Gather=l.asm.Gather).apply(null,arguments)},jd=l._GatherNd=function(){return(jd=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},r0=l._Greater=function(){return(r0=l._Greater=l.asm.Greater).apply(null,arguments)},n0=l._GreaterEqual=function(){return(n0=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},mp=l._LeakyRelu=function(){return(mp=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},Xd=l._Less=function(){return(Xd=l._Less=l.asm.Less).apply(null,arguments)},Yd=l._LessEqual=function(){return(Yd=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},c1=l._Log=function(){return(c1=l._Log=l.asm.Log).apply(null,arguments)},fp=l._LogicalAnd=function(){return(fp=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},dp=l._LogicalNot=function(){return(dp=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},o0=l._LogicalOr=function(){return(o0=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},U=l._LogicalXor=function(){return(U=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},Q=l._Max=function(){return(Q=l._Max=l.asm.Max).apply(null,arguments)},xt=l._MaxPool=function(){return(xt=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},$t=l._Maximum=function(){return($t=l._Maximum=l.asm.Maximum).apply(null,arguments)},he=l._Mean=function(){return(he=l._Mean=l.asm.Mean).apply(null,arguments)},xe=l._Min=function(){return(xe=l._Min=l.asm.Min).apply(null,arguments)},oe=l._Minimum=function(){return(oe=l._Minimum=l.asm.Minimum).apply(null,arguments)},ee=l._MirrorPad=function(){return(ee=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},hr=l._Multiply=function(){return(hr=l._Multiply=l.asm.Multiply).apply(null,arguments)},Vo=l._Neg=function(){return(Vo=l._Neg=l.asm.Neg).apply(null,arguments)},Go=l._NonMaxSuppressionV3=function(){return(Go=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},hp=l._NonMaxSuppressionV4=function(){return(hp=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},Bu=l._NonMaxSuppressionV5=function(){return(Bu=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},s0=l._NotEqual=function(){return(s0=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},nn=l._OneHot=function(){return(nn=l._OneHot=l.asm.OneHot).apply(null,arguments)},Sl=l._PadV2=function(){return(Sl=l._PadV2=l.asm.PadV2).apply(null,arguments)},Hg=l._Pow=function(){return(Hg=l._Pow=l.asm.Pow).apply(null,arguments)},sU=l._Prelu=function(){return(sU=l._Prelu=l.asm.Prelu).apply(null,arguments)},iU=l._Prod=function(){return(iU=l._Prod=l.asm.Prod).apply(null,arguments)},aU=l._RealDiv=function(){return(aU=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},lU=l._Relu=function(){return(lU=l._Relu=l.asm.Relu).apply(null,arguments)},uU=l._Relu6=function(){return(uU=l._Relu6=l.asm.Relu6).apply(null,arguments)},cU=l._ResizeBilinear=function(){return(cU=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},pU=l._ResizeNearestNeighbor=function(){return(pU=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},mU=l._Reverse=function(){return(mU=l._Reverse=l.asm.Reverse).apply(null,arguments)},fU=l._RotateWithOffset=function(){return(fU=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},dU=l._Round=function(){return(dU=l._Round=l.asm.Round).apply(null,arguments)},hU=l._Rsqrt=function(){return(hU=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},gU=l._ScatterNd=function(){return(gU=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},xU=l._SelectV2=function(){return(xU=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},yU=l._Sigmoid=function(){return(yU=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},bU=l._Sin=function(){return(bU=l._Sin=l.asm.Sin).apply(null,arguments)},wU=l._Softmax=function(){return(wU=l._Softmax=l.asm.Softmax).apply(null,arguments)},CU=l._SparseFillEmptyRows=function(){return(CU=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},vU=l._SparseReshape=function(){return(vU=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},IU=l._SparseSegmentReduction=function(){return(IU=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},SU=l._Sqrt=function(){return(SU=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},TU=l._Square=function(){return(TU=l._Square=l.asm.Square).apply(null,arguments)},NU=l._SquaredDifference=function(){return(NU=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},kU=l._Step=function(){return(kU=l._Step=l.asm.Step).apply(null,arguments)},_U=l._StridedSlice=function(){return(_U=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},EU=l._Sub=function(){return(EU=l._Sub=l.asm.Sub).apply(null,arguments)},AU=l._Sum=function(){return(AU=l._Sum=l.asm.Sum).apply(null,arguments)},$U=l._Tan=function(){return($U=l._Tan=l.asm.Tan).apply(null,arguments)},DU=l._Tanh=function(){return(DU=l._Tanh=l.asm.Tanh).apply(null,arguments)},RU=l._Tile=function(){return(RU=l._Tile=l.asm.Tile).apply(null,arguments)},FU=l._TopK=function(){return(FU=l._TopK=l.asm.TopK).apply(null,arguments)},OU=l._Transform=function(){return(OU=l._Transform=l.asm.Transform).apply(null,arguments)},PU=l._Transpose=function(){return(PU=l._Transpose=l.asm.Transpose).apply(null,arguments)},LU=l.__FusedMatMul=function(){return(LU=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},i0=l._malloc=function(){return(i0=l._malloc=l.asm.malloc).apply(null,arguments)},p1=l._free=function(){return(p1=l._free=l.asm.free).apply(null,arguments)},MU=l._emscripten_tls_init=function(){return(MU=l._emscripten_tls_init=l.asm.emscripten_tls_init).apply(null,arguments)},m1=l.___errno_location=function(){return(m1=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},qg=l._pthread_self=function(){return(qg=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},f1=l._emscripten_main_thread_process_queued_calls=function(){return(f1=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},zU=l.__emscripten_thread_crashed=function(){return(zU=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},d1=l.__emscripten_thread_init=function(){return(d1=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},BU=l._emscripten_current_thread_process_queued_calls=function(){return(BU=l._emscripten_current_thread_process_queued_calls=l.asm.emscripten_current_thread_process_queued_calls).apply(null,arguments)},VU=l._emscripten_main_browser_thread_id=function(){return(VU=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},GU=l._emscripten_sync_run_in_main_thread_2=function(){return(GU=l._emscripten_sync_run_in_main_thread_2=l.asm.emscripten_sync_run_in_main_thread_2).apply(null,arguments)},h1=l._emscripten_sync_run_in_main_thread_4=function(){return(h1=l._emscripten_sync_run_in_main_thread_4=l.asm.emscripten_sync_run_in_main_thread_4).apply(null,arguments)},g1=l._emscripten_run_in_main_runtime_thread_js=function(){return(g1=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},a0=l._emscripten_dispatch_to_thread_=function(){return(a0=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},l0=l.__emscripten_thread_free_data=function(){return(l0=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},WU=l.__emscripten_thread_exit=function(){return(WU=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},UU=l._memalign=function(){return(UU=l._memalign=l.asm.memalign).apply(null,arguments)},x1=l._emscripten_stack_set_limits=function(){return(x1=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},u0=l.stackSave=function(){return(u0=l.stackSave=l.asm.stackSave).apply(null,arguments)},Kg=l.stackRestore=function(){return(Kg=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},gp=l.stackAlloc=function(){return(gp=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},HU=l.dynCall_iijjiiii=function(){return(HU=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},qU=l.dynCall_jiji=function(){return(qU=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)},y1=l.__emscripten_allow_main_runtime_queued_calls=21672;l.cwrap=Me,l.keepRuntimeAlive=Pu,l.PThread=Ut,l.PThread=Ut,l.wasmMemory=Ft,l.ExitStatus=Zd;var jg;function Zd(k){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+k+\")\",this.status=k}Bo=function k(){jg||c0(),jg||(Bo=k)};function c0(k){if(k=k||d,Il>0)return;if(C){c(l),Gd(),postMessage({cmd:\"loaded\"});return}if(en(),Il>0)return;function R(){jg||(jg=!0,l.calledRun=!0,!Ie&&(Gd(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),Rv()))}l.setStatus?(l.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){l.setStatus(\"\")},1),R()},1)):R()}l.run=c0;function KU(k,R){if(le=k,!R&&C)throw Rg(k),\"unwind\";Pu()||Dv(),jU(k)}function jU(k){le=k,Pu()||(Ut.terminateAllThreads(),l.onExit&&l.onExit(k),Ie=!0),g(k,new Zd(k))}if(l.preInit)for(typeof l.preInit==\"function\"&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.pop()();c0();var Xg;m&&(Xg={uncaughtException:process.listeners(\"uncaughtException\").filter(function(k){return!m.uncaughtException.indexOf(k)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(k){return!m.unhandledRejection.indexOf(k)>-1})});var Yg;if(typeof WasmBackendModule!=\"undefined\")Yg=WasmBackendModule;else if(typeof t!=\"undefined\")Yg=t;else throw new Error(\"Could not find wasm module in post.js\");if(Xg){var XU=Yg._dispose;Yg._dispose=function(){XU(),Xg.uncaughtException.forEach(function(k){process.removeListener(\"uncaughtException\",k)}),Xg.unhandledRejection.forEach(function(k){process.removeListener(\"unhandledRejection\",k)})}}return t.ready}})();typeof kv==\"object\"&&typeof qk==\"object\"?qk.exports=Hk:typeof define==\"function\"&&define.amd?define([],function(){return Hk}):typeof kv==\"object\"&&(kv.WasmBackendModuleThreadedSimd=Hk)});var ZW=gr((B5e,YW)=>{YW.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\",function(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()}}})}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.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.threadInfoStruct,0,0,1);Module[\"establishStackSpace\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].threadInit();try{var result=Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg);if(Module[\"keepRuntimeAlive\"]()){Module[\"PThread\"].setExitStatus(result)}else{Module[\"__emscripten_thread_exit\"](result)}}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===\"processThreadQueue\"){if(Module[\"_pthread_self\"]()){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else if(e.data.cmd===\"processProxyingQueue\"){if(Module[\"_pthread_self\"]()){Module[\"_emscripten_proxy_execute_queue\"](e.data.queue)}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex&&ex.stack)err(ex.stack);if(Module[\"__emscripten_thread_crashed\"]){Module[\"__emscripten_thread_crashed\"]()}throw ex}});`});var JW=gr((_v,jk)=>{var Kk=(()=>{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(U,Q){n=U,o=Q});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=(U,Q)=>{throw Q},c=typeof window==\"object\",p=typeof importScripts==\"function\",m=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\",f=\"\";function d(U){return e.locateFile?e.locateFile(U,f):f+U}var h,g,x,b;function w(U){if(U instanceof Xd)return;D(\"exiting due to exception: \"+U)}var C,T,E;m?(p?f=hg().dirname(f)+\"/\":f=__dirname+\"/\",E=()=>{T||(C=pw(),T=hg())},h=function(Q,xt){return E(),Q=T.normalize(Q),C.readFileSync(Q,xt?void 0:\"utf8\")},x=U=>{var Q=h(U,!0);return Q.buffer||(Q=new Uint8Array(Q)),Q},g=(U,Q,xt)=>{E(),U=T.normalize(U),C.readFile(U,function($t,he){$t?xt($t):Q(he.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\\\/g,\"/\")),a=process.argv.slice(2),process.on(\"uncaughtException\",function(U){if(!(U instanceof Xd))throw U}),process.on(\"unhandledRejection\",function(U){throw U}),l=(U,Q)=>{if(Vd())throw process.exitCode=U,Q;w(Q),process.exit(U)},e.inspect=function(){return\"[Emscripten Module object]\"}):(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=U=>{var Q=new XMLHttpRequest;return Q.open(\"GET\",U,!1),Q.send(null),Q.responseText},p&&(x=U=>{var Q=new XMLHttpRequest;return Q.open(\"GET\",U,!1),Q.responseType=\"arraybuffer\",Q.send(null),new Uint8Array(Q.response)}),g=(U,Q,xt)=>{var $t=new XMLHttpRequest;$t.open(\"GET\",U,!0),$t.responseType=\"arraybuffer\",$t.onload=()=>{if($t.status==200||$t.status==0&&$t.response){Q($t.response);return}xt()},$t.onerror=xt,$t.send(null)},b=U=>document.title=U);var $=e.print||console.log.bind(console),D=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 P=4;function M(U){M.shown||(M.shown={}),M.shown[U]||(M.shown[U]=1,D(U))}function W(U,Q){if(typeof WebAssembly.Function==\"function\"){for(var xt={i:\"i32\",j:\"i64\",f:\"f32\",d:\"f64\"},$t={parameters:[],results:Q[0]==\"v\"?[]:[xt[Q[0]]]},he=1;he{Z=U},K;e.wasmBinary&&(K=e.wasmBinary);var ot=e.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&Ou(\"no native wasm support detected\");var st,it=!1,pt;function at(U,Q){U||Ou(Q)}function gt(U){var Q=e[\"_\"+U];return Q}function dt(U,Q,xt,$t,he){var xe={string:function(nn){var Sl=0;if(nn!=null&&nn!==0){var Hg=(nn.length<<2)+1;Sl=jd(Hg),me(nn,Sl,Hg)}return Sl},array:function(nn){var Sl=jd(nn.length);return Ie(nn,Sl),Sl}};function oe(nn){return Q===\"string\"?qt(nn):Q===\"boolean\"?Boolean(nn):nn}var ee=gt(U),hr=[],Vo=0;if($t)for(var Go=0;Go<$t.length;Go++){var hp=xe[xt[Go]];hp?(Vo===0&&(Vo=Wg()),hr[Go]=hp($t[Go])):hr[Go]=$t[Go]}var Bu=ee.apply(null,hr);function s0(nn){return Vo!==0&&Ug(Vo),oe(nn)}return Bu=s0(Bu),Bu}function bt(U,Q,xt,$t){xt=xt||[];var he=xt.every(function(oe){return oe===\"number\"}),xe=Q!==\"string\";return xe&&he&&!$t?gt(U):function(){return dt(U,Q,xt,arguments,$t)}}var Tt=1,At=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function Rt(U,Q,xt){for(var $t=Q+xt,he=Q;U[he]&&!(he>=$t);)++he;if(he-Q>16&&U.subarray&&At)return At.decode(U.subarray(Q,he));for(var xe=\"\";Q>10,56320|Vo&1023)}}return xe}function qt(U,Q){return U?Rt(Me,U,Q):\"\"}function Kt(U,Q,xt,$t){if(!($t>0))return 0;for(var he=xt,xe=xt+$t-1,oe=0;oe=55296&&ee<=57343){var hr=U.charCodeAt(++oe);ee=65536+((ee&1023)<<10)|hr&1023}if(ee<=127){if(xt>=xe)break;Q[xt++]=ee}else if(ee<=2047){if(xt+1>=xe)break;Q[xt++]=192|ee>>6,Q[xt++]=128|ee&63}else if(ee<=65535){if(xt+2>=xe)break;Q[xt++]=224|ee>>12,Q[xt++]=128|ee>>6&63,Q[xt++]=128|ee&63}else{if(xt+3>=xe)break;Q[xt++]=240|ee>>18,Q[xt++]=128|ee>>12&63,Q[xt++]=128|ee>>6&63,Q[xt++]=128|ee&63}}return Q[xt]=0,xt-he}function me(U,Q,xt){return Kt(U,Me,Q,xt)}function Ft(U){for(var Q=0,xt=0;xt=55296&&$t<=57343&&($t=65536+(($t&1023)<<10)|U.charCodeAt(++xt)&1023),$t<=127?++Q:$t<=2047?Q+=2:$t<=65535?Q+=3:Q+=4}return Q}var Ae=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf-16le\"):void 0;function Ie(U,Q){Jr.set(U,Q)}function le(U,Q,xt){for(var $t=0;$t>0]=U.charCodeAt($t);xt||(Jr[Q>>0]=0)}function qe(U,Q){return U%Q>0&&(U+=Q-U%Q),U}var Re,Jr,Me,Lo,Or,Qr,tn,qr,so;function $n(U){Re=U,e.HEAP8=Jr=new Int8Array(U),e.HEAP16=Lo=new Int16Array(U),e.HEAP32=Qr=new Int32Array(U),e.HEAPU8=Me=new Uint8Array(U),e.HEAPU16=Or=new Uint16Array(U),e.HEAPU32=tn=new Uint32Array(U),e.HEAPF32=qr=new Float32Array(U),e.HEAPF64=so=new Float64Array(U)}var Mo=e.INITIAL_MEMORY||16777216,io,Cl=[],Fu=[],np=[],dr=!1,op=!1,sp=0;function Vd(){return ot||sp>0}function wg(){if(e.preRun)for(typeof e.preRun==\"function\"&&(e.preRun=[e.preRun]);e.preRun.length;)Ig(e.preRun.shift());Wd(Cl)}function Cg(){dr=!0,Wd(Fu)}function Qk(){op=!0}function vg(){if(e.postRun)for(typeof e.postRun==\"function\"&&(e.postRun=[e.postRun]);e.postRun.length;)Sg(e.postRun.shift());Wd(np)}function Ig(U){Cl.unshift(U)}function zo(U){Fu.unshift(U)}function Sg(U){np.unshift(U)}var Hn=0,ip=null,vl=null;function Av(U){Hn++,e.monitorRunDependencies&&e.monitorRunDependencies(Hn)}function Tg(U){if(Hn--,e.monitorRunDependencies&&e.monitorRunDependencies(Hn),Hn==0&&(ip!==null&&(clearInterval(ip),ip=null),vl)){var Q=vl;vl=null,Q()}}e.preloadedImages={},e.preloadedAudios={};function Ou(U){e.onAbort&&e.onAbort(U),U=\"Aborted(\"+U+\")\",D(U),it=!0,pt=1,U+=\". Build with -s ASSERTIONS=1 for more info.\";var Q=new WebAssembly.RuntimeError(U);throw o(Q),Q}var $v=\"data:application/octet-stream;base64,\";function Ng(U){return U.startsWith($v)}function Pu(U){return U.startsWith(\"file://\")}var en;en=\"tfjs-backend-wasm.wasm\",Ng(en)||(en=d(en));function Gd(U){try{if(U==en&&K)return new Uint8Array(K);if(x)return x(U);throw\"both async and sync fetching of the wasm failed\"}catch(Q){Ou(Q)}}function Dv(){if(!K&&(c||p)){if(typeof fetch==\"function\"&&!Pu(en))return fetch(en,{credentials:\"same-origin\"}).then(function(U){if(!U.ok)throw\"failed to load wasm binary file at '\"+en+\"'\";return U.arrayBuffer()}).catch(function(){return Gd(en)});if(g)return new Promise(function(U,Q){g(en,function(xt){U(new Uint8Array(xt))},Q)})}return Promise.resolve().then(function(){return Gd(en)})}function Rv(){var U={env:up,wasi_snapshot_preview1:up};function Q(oe,ee){var hr=oe.exports;e.asm=hr,st=e.asm.memory,$n(st.buffer),io=e.asm.__indirect_function_table,zo(e.asm.__wasm_call_ctors),Tg(\"wasm-instantiate\")}Av(\"wasm-instantiate\");function xt(oe){Q(oe.instance)}function $t(oe){return Dv().then(function(ee){return WebAssembly.instantiate(ee,U)}).then(function(ee){return ee}).then(oe,function(ee){D(\"failed to asynchronously prepare wasm: \"+ee),Ou(ee)})}function he(){return!K&&typeof WebAssembly.instantiateStreaming==\"function\"&&!Ng(en)&&!Pu(en)&&typeof fetch==\"function\"?fetch(en,{credentials:\"same-origin\"}).then(function(oe){var ee=WebAssembly.instantiateStreaming(oe,U);return ee.then(xt,function(hr){return D(\"wasm streaming compile failed: \"+hr),D(\"falling back to ArrayBuffer instantiation\"),$t(xt)})}):$t(xt)}if(e.instantiateWasm)try{var xe=e.instantiateWasm(U,Q);return xe}catch(oe){return D(\"Module.instantiateWasm callback failed with error: \"+oe),!1}return he().catch(o),{}}var t1,e1;function Wd(U){for(;U.length>0;){var Q=U.shift();if(typeof Q==\"function\"){Q(e);continue}var xt=Q.func;typeof xt==\"number\"?Q.arg===void 0?Ud(xt)():Ud(xt)(Q.arg):xt(Q.arg===void 0?null:Q.arg)}}function Il(U){return U}function kg(U){var Q=/\\b_Z[\\w\\d_]+/g;return U.replace(Q,function(xt){var $t=xt;return xt===$t?xt:$t+\" [\"+xt+\"]\"})}var Bo=[];function Ud(U){var Q=Bo[U];return Q||(U>=Bo.length&&(Bo.length=U+1),Bo[U]=Q=io.get(U)),Q}function r1(){var U=new Error;if(!U.stack){try{throw new Error}catch(Q){U=Q}if(!U.stack)return\"(no stack trace available)\"}return U.stack.toString()}function ap(U,Q){io.set(U,Q),Bo[U]=Q}function Fv(){Ou(\"\")}function Hd(){return 2147483648}function _g(U,Q,xt){Me.copyWithin(U,Q,Q+xt)}function rn(U){try{return st.grow(U-Re.byteLength+65535>>>16),$n(st.buffer),1}catch(Q){}}function Eg(U){var Q=Me.length;U=U>>>0;var xt=Hd();if(U>xt)return!1;for(var $t=1;$t<=4;$t*=2){var he=Q*(1+.2/$t);he=Math.min(he,U+100663296);var xe=Math.min(xt,qe(Math.max(U,he),65536)),oe=rn(xe);if(oe)return!0}return!1}var lp={mappings:{},buffers:[null,[],[]],printChar:function(U,Q){var xt=lp.buffers[U];Q===0||Q===10?((U===1?$:D)(Rt(xt,0)),xt.length=0):xt.push(Q)},varargs:void 0,get:function(){lp.varargs+=4;var U=Qr[lp.varargs-4>>2];return U},getStr:function(U){var Q=qt(U);return Q},get64:function(U,Q){return U}};function Ov(U){return 0}function n1(U,Q,xt,$t,he){}function o1(U,Q,xt,$t){for(var he=0,xe=0;xe>2],ee=Qr[Q+4>>2];Q+=8;for(var hr=0;hr>2]=he,0}function Pv(U){et(U)}var Ag=!1,up={abort:Fv,emscripten_get_heap_max:Hd,emscripten_memcpy_big:_g,emscripten_resize_heap:Eg,fd_close:Ov,fd_seek:n1,fd_write:o1,setTempRet0:Pv},oU=Rv(),s1=e.___wasm_call_ctors=function(){return(s1=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},Lv=e._init=function(){return(Lv=e._init=e.asm.init).apply(null,arguments)},Mv=e._init_with_threads_count=function(){return(Mv=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},$g=e._get_threads_count=function(){return($g=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},Dg=e._register_tensor=function(){return(Dg=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},zv=e._dispose_data=function(){return(zv=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},Ut=e._dispose=function(){return(Ut=e._dispose=e.asm.dispose).apply(null,arguments)},Bv=e._Abs=function(){return(Bv=e._Abs=e.asm.Abs).apply(null,arguments)},Rg=e._Add=function(){return(Rg=e._Add=e.asm.Add).apply(null,arguments)},Lu=e._AddN=function(){return(Lu=e._AddN=e.asm.AddN).apply(null,arguments)},cp=e._All=function(){return(cp=e._All=e.asm.All).apply(null,arguments)},Vv=e._Any=function(){return(Vv=e._Any=e.asm.Any).apply(null,arguments)},i1=e._ArgMax=function(){return(i1=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},Gv=e._AvgPool=function(){return(Gv=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},a1=e._BatchMatMul=function(){return(a1=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},Mu=e._Ceil=function(){return(Mu=e._Ceil=e.asm.Ceil).apply(null,arguments)},Wv=e._ClipByValue=function(){return(Wv=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},Uv=e._Conv2D=function(){return(Uv=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},Hv=e._Conv2DBackpropInput=function(){return(Hv=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},qv=e._Cos=function(){return(qv=e._Cos=e.asm.Cos).apply(null,arguments)},Kv=e._Cosh=function(){return(Kv=e._Cosh=e.asm.Cosh).apply(null,arguments)},jv=e._CropAndResize=function(){return(jv=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},Fg=e._Cumprod=function(){return(Fg=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},Xv=e._Cumsum=function(){return(Xv=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},Yv=e._DepthToSpace=function(){return(Yv=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},Zv=e._DepthwiseConv2dNative=function(){return(Zv=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Jv=e._Elu=function(){return(Jv=e._Elu=e.asm.Elu).apply(null,arguments)},Qv=e._Equal=function(){return(Qv=e._Equal=e.asm.Equal).apply(null,arguments)},Og=e._Exp=function(){return(Og=e._Exp=e.asm.Exp).apply(null,arguments)},tI=e._FlipLeftRight=function(){return(tI=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},eI=e._Floor=function(){return(eI=e._Floor=e.asm.Floor).apply(null,arguments)},zu=e._FloorDiv=function(){return(zu=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},qd=e._FusedBatchNorm=function(){return(qd=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},rI=e._FusedConv2D=function(){return(rI=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},nI=e._FusedDepthwiseConv2D=function(){return(nI=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},oI=e._Gather=function(){return(oI=e._Gather=e.asm.Gather).apply(null,arguments)},ne=e._GatherNd=function(){return(ne=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},sI=e._Greater=function(){return(sI=e._Greater=e.asm.Greater).apply(null,arguments)},iI=e._GreaterEqual=function(){return(iI=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},aI=e._LeakyRelu=function(){return(aI=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},lI=e._Less=function(){return(lI=e._Less=e.asm.Less).apply(null,arguments)},uI=e._LessEqual=function(){return(uI=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},cI=e._Log=function(){return(cI=e._Log=e.asm.Log).apply(null,arguments)},Kd=e._LogicalAnd=function(){return(Kd=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},Pg=e._LogicalNot=function(){return(Pg=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},Lg=e._LogicalOr=function(){return(Lg=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},pI=e._LogicalXor=function(){return(pI=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},mI=e._Max=function(){return(mI=e._Max=e.asm.Max).apply(null,arguments)},fI=e._MaxPool=function(){return(fI=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},dI=e._Maximum=function(){return(dI=e._Maximum=e.asm.Maximum).apply(null,arguments)},hI=e._Mean=function(){return(hI=e._Mean=e.asm.Mean).apply(null,arguments)},gI=e._Min=function(){return(gI=e._Min=e.asm.Min).apply(null,arguments)},rr=e._Minimum=function(){return(rr=e._Minimum=e.asm.Minimum).apply(null,arguments)},xI=e._MirrorPad=function(){return(xI=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},yI=e._Multiply=function(){return(yI=e._Multiply=e.asm.Multiply).apply(null,arguments)},bI=e._Neg=function(){return(bI=e._Neg=e.asm.Neg).apply(null,arguments)},pp=e._NonMaxSuppressionV3=function(){return(pp=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},Mg=e._NonMaxSuppressionV4=function(){return(Mg=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},zg=e._NonMaxSuppressionV5=function(){return(zg=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},Bg=e._NotEqual=function(){return(Bg=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},wI=e._OneHot=function(){return(wI=e._OneHot=e.asm.OneHot).apply(null,arguments)},Vg=e._PadV2=function(){return(Vg=e._PadV2=e.asm.PadV2).apply(null,arguments)},CI=e._Pow=function(){return(CI=e._Pow=e.asm.Pow).apply(null,arguments)},l1=e._Prelu=function(){return(l1=e._Prelu=e.asm.Prelu).apply(null,arguments)},Gg=e._Prod=function(){return(Gg=e._Prod=e.asm.Prod).apply(null,arguments)},u1=e._RealDiv=function(){return(u1=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},vI=e._Relu=function(){return(vI=e._Relu=e.asm.Relu).apply(null,arguments)},II=e._Relu6=function(){return(II=e._Relu6=e.asm.Relu6).apply(null,arguments)},SI=e._ResizeBilinear=function(){return(SI=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},TI=e._ResizeNearestNeighbor=function(){return(TI=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},NI=e._Reverse=function(){return(NI=e._Reverse=e.asm.Reverse).apply(null,arguments)},kI=e._RotateWithOffset=function(){return(kI=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},_I=e._Round=function(){return(_I=e._Round=e.asm.Round).apply(null,arguments)},EI=e._Rsqrt=function(){return(EI=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},AI=e._ScatterNd=function(){return(AI=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},$I=e._SelectV2=function(){return($I=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},DI=e._Sigmoid=function(){return(DI=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},RI=e._Sin=function(){return(RI=e._Sin=e.asm.Sin).apply(null,arguments)},FI=e._Softmax=function(){return(FI=e._Softmax=e.asm.Softmax).apply(null,arguments)},OI=e._SparseFillEmptyRows=function(){return(OI=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},PI=e._SparseReshape=function(){return(PI=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},LI=e._SparseSegmentReduction=function(){return(LI=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},MI=e._Sqrt=function(){return(MI=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},zI=e._Square=function(){return(zI=e._Square=e.asm.Square).apply(null,arguments)},BI=e._SquaredDifference=function(){return(BI=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},VI=e._Step=function(){return(VI=e._Step=e.asm.Step).apply(null,arguments)},GI=e._StridedSlice=function(){return(GI=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},WI=e._Sub=function(){return(WI=e._Sub=e.asm.Sub).apply(null,arguments)},UI=e._Sum=function(){return(UI=e._Sum=e.asm.Sum).apply(null,arguments)},HI=e._Tan=function(){return(HI=e._Tan=e.asm.Tan).apply(null,arguments)},qI=e._Tanh=function(){return(qI=e._Tanh=e.asm.Tanh).apply(null,arguments)},KI=e._Tile=function(){return(KI=e._Tile=e.asm.Tile).apply(null,arguments)},jI=e._TopK=function(){return(jI=e._TopK=e.asm.TopK).apply(null,arguments)},XI=e._Transform=function(){return(XI=e._Transform=e.asm.Transform).apply(null,arguments)},YI=e._Transpose=function(){return(YI=e._Transpose=e.asm.Transpose).apply(null,arguments)},ZI=e.__FusedMatMul=function(){return(ZI=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},JI=e._malloc=function(){return(JI=e._malloc=e.asm.malloc).apply(null,arguments)},QI=e._free=function(){return(QI=e._free=e.asm.free).apply(null,arguments)},t0=e.___errno_location=function(){return(t0=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},e0=e._emscripten_main_thread_process_queued_calls=function(){return(e0=e._emscripten_main_thread_process_queued_calls=e.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},Wg=e.stackSave=function(){return(Wg=e.stackSave=e.asm.stackSave).apply(null,arguments)},Ug=e.stackRestore=function(){return(Ug=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},jd=e.stackAlloc=function(){return(jd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},r0=e.dynCall_iijjiiii=function(){return(r0=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},n0=e.dynCall_jiji=function(){return(n0=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=bt;var mp;function Xd(U){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+U+\")\",this.status=U}vl=function U(){mp||Yd(),mp||(vl=U)};function Yd(U){if(U=U||a,Hn>0||(wg(),Hn>0))return;function Q(){mp||(mp=!0,e.calledRun=!0,!it&&(Cg(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),vg()))}e.setStatus?(e.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){e.setStatus(\"\")},1),Q()},1)):Q()}e.run=Yd;function c1(U){pt=U,Vd()||(e.onExit&&e.onExit(U),it=!0),l(U,new Xd(U))}if(e.preInit)for(typeof e.preInit==\"function\"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();Yd();var fp;s&&(fp={uncaughtException:process.listeners(\"uncaughtException\").filter(function(U){return!s.uncaughtException.indexOf(U)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(U){return!s.unhandledRejection.indexOf(U)>-1})});var dp;if(typeof t!=\"undefined\")dp=t;else if(typeof WasmBackendModuleThreadedSimd!=\"undefined\")dp=WasmBackendModuleThreadedSimd;else throw new Error(\"Could not find wasm module in post.js\");if(fp){var o0=dp._dispose;dp._dispose=function(){o0(),fp.uncaughtException.forEach(function(U){process.removeListener(\"uncaughtException\",U)}),fp.unhandledRejection.forEach(function(U){process.removeListener(\"unhandledRejection\",U)})}}return t.ready}})();typeof _v==\"object\"&&typeof jk==\"object\"?jk.exports=Kk:typeof define==\"function\"&&define.amd?define([],function(){return Kk}):typeof _v==\"object\"&&(_v.WasmBackendModule=Kk)});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}},Ho=class{refCount(t){return qn(\"refCount\")}incRef(t){return qn(\"incRef\")}timerAvailable(){return!0}time(t){return qn(\"time\")}read(t){return qn(\"read\")}readSync(t){return qn(\"readSync\")}readToGPU(t,e){return qn(\"readToGPU\")}numDataIds(){return qn(\"numDataIds\")}disposeData(t,e){return qn(\"disposeData\")}write(t,e,n){return qn(\"write\")}move(t,e,n,o,s){return qn(\"move\")}memory(){return qn(\"memory\")}floatPrecision(){return qn(\"floatPrecision\")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return qn(\"dispose\")}};function qn(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 w1(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Jg(r,t,e)}function n4(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--,Jg(r,e,n),Jg(t,e,n)}function yp(r,t,e){return Math.max(r,Math.min(t,e))}function o4(r){return r%2===0?r:r+1}function Jg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function s4(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function Kn(r){A(r!=null,()=>\"The input to the tensor constructor must be a non-null value.\")}function qo(r,t=[],e=!1){if(t==null&&(t=[]),Array.isArray(r)||xr(r)&&!e)for(let n=0;n0,e){return new Promise((n,o)=>{let s=0,i=()=>{if(r()){n();return}s++;let a=t(s);if(e!=null&&s>=e){o();return}setTimeout(i,a)};i()})}function f4(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 ur(r,t){let e=t.length;return r=r==null?t.map((n,o)=>o):[].concat(r),A(r.every(n=>n>=-e&&n`All values in axis param must be in range [-${e}, ${e}) but got axis ${r}`),A(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 m0(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:ur(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 f0(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 d0(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 h0(r,t){for(let e=0;et+=e.length),t}function Ko(r){return typeof r==\"string\"||r instanceof String}function C1(r){return typeof r==\"boolean\"}function v1(r){return typeof r==\"number\"}function bp(r){return Array.isArray(r)?bp(r[0]):r instanceof Float32Array?\"float32\":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?\"int32\":v1(r)?\"float32\":Ko(r)?\"string\":C1(r)?\"bool\":\"float32\"}function ui(r){return!!(r&&r.constructor&&r.call&&r.apply)}function wp(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function I1(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 I1(0,r,t,e)}function Qd(r,t){let e=Cp(r,t);for(let n=0;nn*o,1);if(t==null||t===\"float32\")return Vu(r,new Float32Array(e));if(t===\"int32\")return Vu(r,new Int32Array(e));if(t===\"bool\")return Vu(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function th(r){r.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function g4(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]=C4(o,s)})}};function b4(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(w4(t,n[0],n[1]),n.join(\"=\"))),t}function w4(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||\"\")}function C4(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 B(){return y0}var y0=null;function T1(r){y0=r}var b0;function w0(){if(b0==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\");b0=r}return b0}function v4(){let r=w0();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function nh(r,t){let e=v4();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var pi=\"Abs\",oa=\"Acos\",sa=\"Acosh\",jn=\"Add\",jo=\"AddN\",ia=\"All\",aa=\"Any\",Xo=\"ArgMax\",Nl=\"ArgMin\",la=\"Asin\",ua=\"Asinh\",ca=\"Atan\",pa=\"Atanh\",ma=\"Atan2\",Yo=\"AvgPool\",vp=\"AvgPoolGrad\",kl=\"AvgPool3D\",Ip=\"AvgPool3DGrad\",Zo=\"BatchMatMul\",mi=\"BatchToSpaceND\",Sp=\"Bincount\",N1=\"BroadcastTo\",Tp=\"BroadcastArgs\",ao=\"Cast\",Jo=\"Ceil\",lo=\"ClipByValue\",Np=\"Complex\",_l=\"ComplexAbs\",fi=\"Concat\",Qo=\"Conv2D\",kp=\"Conv2DBackpropFilter\",ts=\"Conv2DBackpropInput\",El=\"Conv3D\",_p=\"Conv3DBackpropFilterV2\",Ep=\"Conv3DBackpropInputV2\",es=\"Cos\",rs=\"Cosh\",fa=\"Cumprod\",ns=\"Cumsum\",da=\"CropAndResize\",Ap=\"DenseBincount\",ha=\"DepthToSpace\",os=\"DepthwiseConv2dNative\",$p=\"DepthwiseConv2dNativeBackpropFilter\",Dp=\"DepthwiseConv2dNativeBackpropInput\",Rp=\"Diag\",Al=\"Dilation2D\",oh=\"Dilation2DBackpropInput\",sh=\"Dilation2DBackpropFilter\",ss=\"RealDiv\",Fp=\"Einsum\",is=\"Elu\",Op=\"EluGrad\",ga=\"Erf\",xa=\"Equal\",as=\"Exp\",di=\"ExpandDims\",ya=\"Expm1\",Pp=\"FFT\",$l=\"Fill\",ba=\"FlipLeftRight\",ls=\"Floor\",us=\"FloorDiv\",cs=\"FusedBatchNorm\",hi=\"GatherV2\",wa=\"GatherNd\",Ca=\"Greater\",ps=\"GreaterEqual\",uo=\"Identity\",Lp=\"IFFT\",Mp=\"Imag\",va=\"IsFinite\",Ia=\"IsInf\",Sa=\"IsNan\",ms=\"LeakyRelu\",Ta=\"Less\",Na=\"LessEqual\",zp=\"LinSpace\",fs=\"Log\",ka=\"Log1p\",_a=\"LogicalAnd\",Ea=\"LogicalNot\",Aa=\"LogicalOr\",k1=\"LogicalXor\",_1=\"LogSoftmax\",Ilt=\"LowerBound\",Dl=\"LRN\",Bp=\"LRNGrad\",ds=\"Max\",hs=\"Maximum\",gs=\"MaxPool\",Vp=\"MaxPoolGrad\",Rl=\"MaxPool3D\",Gp=\"MaxPool3DGrad\",Wp=\"MaxPoolWithArgmax\",xs=\"Mean\",ys=\"Min\",bs=\"Minimum\",ws=\"MirrorPad\",$a=\"Mod\",Up=\"Multinomial\",Cs=\"Multiply\",gi=\"Neg\",Da=\"NotEqual\",Ra=\"NonMaxSuppressionV3\",Fa=\"NonMaxSuppressionV4\",Oa=\"NonMaxSuppressionV5\",xi=\"OnesLike\",vs=\"OneHot\",yi=\"Pack\",Is=\"PadV2\",Slt=\"Pool\",Ss=\"Pow\",Ts=\"Prelu\",Ns=\"Prod\",Hp=\"RaggedTensorToTensor\",Fl=\"Range\",qp=\"Real\",Pa=\"Reciprocal\",ks=\"Relu\",bi=\"Reshape\",_s=\"ResizeNearestNeighbor\",Kp=\"ResizeNearestNeighborGrad\",Es=\"ResizeBilinear\",jp=\"ResizeBilinearGrad\",As=\"Relu6\",$s=\"Reverse\",Ds=\"Round\",Rs=\"Rsqrt\",La=\"ScatterNd\",Xp=\"SearchSorted\",wi=\"Select\",Ma=\"Selu\",Ci=\"Slice\",Fs=\"Sin\",za=\"Sinh\",Ba=\"Sign\",Os=\"Sigmoid\",Va=\"Softplus\",Ps=\"Sqrt\",Ls=\"Sum\",vi=\"SpaceToBatchND\",Ii=\"SplitV\",Ms=\"Softmax\",Ol=\"SparseFillEmptyRows\",Ga=\"SparseReshape\",Pl=\"SparseSegmentMean\",Ll=\"SparseSegmentSum\",Yp=\"SparseToDense\",zs=\"SquaredDifference\",Ml=\"Square\",Wa=\"StridedSlice\",zl=\"StringNGrams\",Bl=\"StringSplit\",Vl=\"StringToHashBucketFast\",Bs=\"Sub\",Vs=\"Tan\",Gs=\"Tanh\",Xn=\"Tile\",Ua=\"TopK\",Ha=\"Transform\",Yn=\"Transpose\",Zp=\"Unique\",Si=\"Unpack\",Gl=\"UnsortedSegmentSum\",Tlt=\"UpperBound\",Ti=\"ZerosLike\",co=\"Step\",ih=\"FromPixels\",qa=\"RotateWithOffset\",Ni=\"_FusedMatMul\",ki=\"FusedConv2D\",_i=\"FusedDepthwiseConv2D\";function Ei(...r){B().getBool(\"IS_TEST\")||B().getBool(\"PROD\")||console.warn(...r)}function I4(...r){B().getBool(\"IS_TEST\")||B().getBool(\"PROD\")||console.log(...r)}var Jp=nh(\"kernelRegistry\",()=>new Map),ah=nh(\"gradRegistry\",()=>new Map);function lh(r,t){let e=v0(r,t);return Jp.get(e)}function C0(r){return ah.get(r)}function tx(r){let t=Jp.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 Wu(r){let{kernelName:t,backendName:e}=r,n=v0(t,e);Jp.has(n)&&Ei(`The kernel '${t}' for backend '${e}' is already registered`),Jp.set(n,r)}function A1(r){let{kernelName:t}=r;ah.has(t)&&B().getBool(\"DEBUG\")&&Ei(`Overriding the gradient for '${t}'`),ah.set(t,r)}function Alt(r,t){let e=v0(r,t);if(!Jp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);Jp.delete(e)}function $lt(r){if(!ah.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);ah.delete(r)}function Dlt(r,t){tx(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});Wu(o)})}function v0(r,t){return`${t}_${r}`}var y={};jt(y,{arraysEqual:()=>Rn,assert:()=>A,assertNonNegativeIntegerDimensions:()=>th,assertNonNull:()=>Kn,assertShapesMatch:()=>Fe,bytesFromStringArray:()=>x0,bytesPerElement:()=>Qg,checkConversionForErrors:()=>h0,clamp:()=>yp,computeStrides:()=>ci,createScalarValue:()=>A4,createShuffledIndices:()=>p4,decodeString:()=>rm,distSquared:()=>a4,encodeString:()=>Ul,fetch:()=>D4,fingerPrint64:()=>E4,flatten:()=>qo,getArrayFromDType:()=>d0,getTypedArrayFromDType:()=>f0,hasEncodingLoss:()=>d4,hexToLong:()=>uh,indexToLoc:()=>x4,inferDtype:()=>bp,inferFromImplicitShape:()=>f4,isBoolean:()=>C1,isFunction:()=>ui,isInt:()=>na,isNumber:()=>v1,isPromise:()=>eh,isScalarShape:()=>l4,isString:()=>Ko,isTypedArray:()=>xr,isValidDtype:()=>g0,locToIndex:()=>g4,makeOnesTypedArray:()=>Qd,makeZerosNestedTypedArray:()=>h4,makeZerosTypedArray:()=>Cp,nearestDivisor:()=>wp,nearestLargerEven:()=>o4,now:()=>ju,parseAxisParam:()=>ur,randUniform:()=>i4,repeatedTry:()=>m4,rightPad:()=>Gu,shuffle:()=>w1,shuffleCombo:()=>n4,sizeFromShape:()=>Qt,sizeToSquarishShape:()=>c4,squeezeShape:()=>m0,sum:()=>s4,swap:()=>Jg,tanh:()=>u4,toNestedArray:()=>Vu,toTypedArray:()=>em});var N0=Tl(V1());var Ku=N0.default||N0;function uh(r){return Ku.fromString(r,!0,16)}var W1=uh(\"c3a5c85c97cb3127\"),qu=uh(\"b492b66fbe98f273\"),on=uh(\"9ae16a3b2f90404f\");function T0(r){return r.xor(r.shru(47))}function U1(r,t,e){let n=r.slice(t,t+e);return Ku.fromBytes(Array.from(n),!0,!0)}function ze(r,t){return U1(r,t,8)}function G1(r,t){return U1(r,t,4)}function kr(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function Wl(r,t,e=uh(\"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 T4(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 rx(r,t,e,n){return T4(ze(r,t),ze(r,t+8),ze(r,t+16),ze(r,t+24),e,n)}function N4(r,t=r.length){if(t>=8){let e=on.add(t*2),n=ze(r,0).add(on),o=ze(r,t-8),s=kr(o,37).mul(e).add(n),i=kr(n,25).add(o).mul(e);return Wl(s,i,e)}if(t>=4){let e=on.add(t*2),n=G1(r,0);return Wl(n.shl(3).add(t),G1(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 T0(on.mul(s).xor(W1.mul(i))).mul(on)}return on}function k4(r,t=r.length){let e=on.add(t*2),n=ze(r,0).mul(qu),o=ze(r,8),s=ze(r,t-8).mul(e),i=ze(r,t-16).mul(on);return Wl(kr(n.add(o),43).add(kr(s,30)).add(i),n.add(kr(o.add(on),18)).add(s),e)}function _4(r,t=r.length){let e=on.add(t*2),n=ze(r,0).mul(on),o=ze(r,8),s=ze(r,t-8).mul(e),i=ze(r,t-16).mul(on),a=kr(n.add(o),43).add(kr(s,30)).add(i),u=Wl(a,n.add(kr(o.add(on),18)).add(s),e),l=ze(r,16).mul(e),c=ze(r,24),p=a.add(ze(r,t-32)).mul(e),m=u.add(ze(r,t-24)).mul(e);return Wl(kr(l.add(c),43).add(kr(p,30)).add(m),l.add(kr(c.add(n),18)).add(p),e)}function E4(r,t=r.length){let e=Ku.fromNumber(81,!0);if(t<=32)return t<=16?N4(r,t):k4(r,t);if(t<=64)return _4(r,t);let n=e,o=e.mul(qu).add(113),s=T0(o.mul(on).add(113)).mul(on),i=[Ku.UZERO,Ku.UZERO],a=[Ku.UZERO,Ku.UZERO];n=n.mul(on).add(ze(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(ze(r,u+8)),37).mul(qu),o=kr(o.add(i[1]).add(ze(r,u+48)),42).mul(qu),n=n.xor(a[1]),o=o.add(i[0]).add(ze(r,u+40)),s=kr(s.add(a[0]),33).mul(qu),i=rx(r,u,i[1].mul(qu),n.add(a[0])),a=rx(r,u+32,s.add(a[1]),o.add(ze(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=qu.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(ze(r,u+8)),37).mul(p),o=kr(o.add(i[1]).add(ze(r,u+48)),42).mul(p),n=n.xor(a[1].mul(9)),o=o.add(i[0].mul(9).add(ze(r,u+40))),s=kr(s.add(a[0]),33).mul(p),i=rx(r,u,i[1].mul(p),n.add(a[0])),a=rx(r,u+32,s.add(a[1]),o.add(ze(r,u+16))),[s,n]=[n,s],Wl(Wl(i[0],a[0],p).add(T0(o).mul(W1)).add(s),Wl(i[1],a[1],p).add(n),p)}function A4(r,t){return t===\"string\"?Ul(r):em([r],t)}function $4(r,t){return r instanceof Float32Array&&t===\"float32\"||r instanceof Int32Array&&t===\"int32\"||r instanceof Uint8Array&&t===\"bool\"}function em(r,t){if(t===\"string\")throw new Error(\"Cannot convert a string[] to a TypedArray\");if(Array.isArray(r)&&(r=qo(r)),B().getBool(\"DEBUG\")&&h0(r,t),$4(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=ju();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:ju()-a})}if(B().getBool(\"CHECK_COMPUTATION_FOR_ERRORS\"))for(let l=0;l{R4(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 R4(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 H1(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(!Rn(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 K1=20,ch=3,_0=7;function j1(r,t,e,n){let o=ci(t),s=F4(r,t,e,o),i=t.length,a=ox(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 F4(r,t,e,n){let o=Qt(t),s=n[n.length-1],i=new Array(s).fill(0),a=t.length,u=e===\"complex64\"?mh(r):r;if(a>1)for(let l=0;lK1){let g=ch*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-ch)*i,a*i));return e===\"complex64\"&&(x=mh(x),b=mh(b)),[\"[\"+x.map((w,C)=>ph(w,o[C],e)).join(\", \")+\", ..., \"+b.map((w,C)=>ph(w,o[a-ch+C],e)).join(\", \")+\"]\"]}let h=e===\"complex64\"?mh(r):Array.from(r);return[\"[\"+h.map((g,x)=>ph(g,o[x],e)).join(\", \")+\"]\"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>K1){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||d0(e,this.size),this.strides=ci(t)}set(t,...e){e.length===0&&(e=[0]),A(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;orm(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(),Us().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=Us().readSync(this.dataId);if(this.dtype===\"string\")try{return t.map(e=>rm(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 Us().read(this.dataId);return this.dtype===\"string\"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(Us().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error(\"Tensor is disposed.\")}print(t=!1){return nm.print(this,t)}clone(){return this.throwIfDisposed(),nm.clone(this)}toString(t=!1){let e=this.dataSync();return j1(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),nm.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),Us().makeVariable(this,t,e,n)}};Object.defineProperty(Lt,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function L(){return nh(\"Tensor\",()=>Lt)}L();var Ka=class extends Lt{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(!Rn(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);Us().disposeTensor(this),this.dataId=t.dataId,Us().incRef(this,null)}dispose(){Us().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Ka,Symbol.hasInstance,{value:r=>r instanceof Lt&&r.assign!=null&&r.assign instanceof Function});var ho={};jt(ho,{assertTypesMatch:()=>F0,getTensorsInContainer:()=>fh,isTensorInList:()=>L4,makeTypesMatch:()=>Xt});var E0;(function(r){r.R0=\"R0\",r.R1=\"R1\",r.R2=\"R2\",r.R3=\"R3\",r.R4=\"R4\",r.R5=\"R5\",r.R6=\"R6\"})(E0||(E0={}));var A0;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"int32\",r.complex64=\"complex64\"})(A0||(A0={}));var $0;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"bool\",r.complex64=\"complex64\"})($0||($0={}));var D0;(function(r){r.float32=\"float32\",r.int32=\"float32\",r.bool=\"float32\",r.complex64=\"complex64\"})(D0||(D0={}));var R0;(function(r){r.float32=\"complex64\",r.int32=\"complex64\",r.bool=\"complex64\",r.complex64=\"complex64\"})(R0||(R0={}));var P4={float32:D0,int32:A0,bool:$0,complex64:R0};function ir(r,t){if(r===\"string\"||t===\"string\"){if(r===\"string\"&&t===\"string\")return\"string\";throw new Error(`Can not upcast ${r} with ${t}`)}return P4[r][t]}function Xu(r){return ir(r,\"int32\")}function Xt(r,t){if(r.dtype===t.dtype)return[r,t];let e=ir(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function F0(r,t){A(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function L4(r,t){return t.some(e=>e.id===r.id)}function fh(r){let t=[];return Q1(r,t,new Set),t}function Q1(r,t,e){if(r==null)return;if(r instanceof Lt){t.push(r);return}if(!M4(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),Q1(s,t,e))}}function M4(r){return Array.isArray(r)||typeof r==\"object\"}function O0(r){return r.kernelName!=null}var sx=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()}},Hl=class{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new sx}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){tx(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 Ho)&&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 Hl.nextTensorId++}nextVariableId(){return Hl.nextVariableId++}clone(t){let e=_.runKernel(uo,{x:t}),n={x:t},o=i=>({x:()=>{let a=\"float32\",u={x:i},l={dtype:a};return _.runKernel(ao,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,!(lh(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=O0(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:\"\";if(O0(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=lh(d,this.backendName);A(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(T=>T.rank!=null?T:this.makeTensorFromTensorInfo(T));if(o){let T=this.getTensorsForGradient(d,h,C);n=this.saveTensorsForBackwardMode(T)}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=O0(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=C0(t);if(o!=null){let s=o.inputsToSave||[],i=o.outputsToSave||[],a;o.saveAllInputs?(A(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\"&&Ko(t[0])&&(s=t.map(u=>Ul(u)));let i=o.write(s,e,n),a=new Lt(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n===\"string\"){let u=this.state.tensorInfo.get(i),l=x0(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 Lt(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*Qg(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*Qg(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=C0(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=Cp(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=fh(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(A(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));A(s instanceof Lt,()=>\"The result y returned by f() must be a tensor.\");let i=H1(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?z4(s.shape):n,q1(a,i,l=>this.tidy(l),B4);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 A(ui(t),()=>\"The f passed in customGrad(f) must be a function.\"),(...e)=>{A(e.every(a=>a instanceof Lt),()=>\"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),A(n.value instanceof Lt,()=>\"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor\"),A(ui(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];A(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(...).\"),A(c.every(m=>m instanceof Lt),()=>\"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=ju(),n=await this.backend.time(t);return n.wallMs=ju()-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 sx;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}};Hl.nextTensorId=0;Hl.nextVariableId=0;function z4(r){let t=Qd(Qt(r),\"float32\");return _.makeTensor(t,r,\"float32\")}function P0(){let r=w0();if(r._tfengine==null){let t=new rh(r);r._tfengine=new Hl(t)}return T1(r._tfengine.ENV),Y1(()=>r._tfengine),r._tfengine}var _=P0();function B4(r,t){let e={a:r,b:t};return _.runKernel(jn,e)}var ql={};jt(ql,{isBrowser:()=>M0,isMobile:()=>W4,mockIsMobile:()=>G4});function V4(){return typeof navigator!=\"undefined\"&&navigator!=null}var L0;function G4(r){L0=r}function W4(r){if(L0!==void 0)return L0;if(r||V4()){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 M0(){return typeof window!=\"undefined\"&&window.document!=null||typeof WorkerGlobalScope!=\"undefined\"}var Zn=B();Zn.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.\")});Zn.registerFlag(\"IS_BROWSER\",()=>M0());Zn.registerFlag(\"IS_NODE\",()=>typeof process!=\"undefined\"&&typeof process.versions!=\"undefined\"&&typeof process.versions.node!=\"undefined\");Zn.registerFlag(\"IS_CHROME\",()=>typeof navigator!=\"undefined\"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Zn.registerFlag(\"PROD\",()=>!1);Zn.registerFlag(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\",()=>Zn.getBool(\"DEBUG\"));Zn.registerFlag(\"DEPRECATION_WARNINGS_ENABLED\",()=>!0);Zn.registerFlag(\"IS_TEST\",()=>!1);Zn.registerFlag(\"CHECK_COMPUTATION_FOR_ERRORS\",()=>!0);Zn.registerFlag(\"WRAP_TO_IMAGEBITMAP\",()=>!1);Zn.registerFlag(\"ENGINE_COMPILE_ONLY\",()=>!1);Zn.registerFlag(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\",()=>!1);function Pr(r,t){let e=r;if(xr(r))return t===\"string\"?[]:[r.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)&&B().getBool(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\")&&e_(r,n,[]),n}function e_(r,t,e){if(e=e||[],!Array.isArray(r)&&!xr(r)){A(t.length===0,()=>`Element arr[${e.join(\"][\")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}A(t.length>0,()=>`Element arr[${e.join(\"][\")}] should be a primitive, but is an array of ${r.length} elements`),A(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),t_(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=Pr(r,o);!xr(r)&&!Array.isArray(r)&&(r=[r]);let a=o!==\"string\"?em(r,o):qo(r,[],!0);return _.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)=>v(s,`${t}[${i}]`,e,n))}var z0=\"__op\";function N(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+z0;let o=(...s)=>{_.startScope(e);try{let i=n(...s);return eh(i)&&console.error(\"Cannot return a Promise inside of tidy.\"),_.endScope(i),i}catch(i){throw _.endScope(null),i}};return Object.defineProperty(o,\"name\",{value:e,configurable:!0}),o}function U4(r,t){let e=v(r,\"real\",\"complex\"),n=v(t,\"imag\",\"complex\");Fe(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 _.runKernel(Np,o)}var Cn=N({complex_:U4});function sn(r,t,e,n){if(n==null&&(n=bp(r)),n===\"complex64\")throw new Error(\"Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).\");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){th(t);let o=Qt(t),s=Qt(e);A(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\"?em(r,n):qo(r,[],!0),_.makeTensor(r,t,n)}function vr(r,t,e){let n=Pr(r,e);return sn(r,t,n,e)}var dh={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var ix=4;async function n_(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)+ix*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 B0=typeof Buffer!=\"undefined\"&&(typeof Blob==\"undefined\"||typeof atob==\"undefined\"||typeof btoa==\"undefined\");function r_(r){return B0?Buffer.byteLength(r):new Blob([r]).size}function o_(r){if(B0)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 V0(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 lx(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.trainingConfig!=null&&(e.trainingConfig=r.trainingConfig),e}async function sm(r,t){let e={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy};if(r.trainingConfig!=null&&(e.trainingConfig=r.trainingConfig),r.weightsManifest!=null){let[n,o]=await t(r.weightsManifest);e.weightSpecs=n,e.weightData=o}return r.signature!=null&&(e.signature=r.signature),r.userDefinedMetadata!=null&&(e.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(e.modelInitializer=r.modelInitializer),e}function Ai(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:r_(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:r_(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function q4(){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 K4(){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 j4(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function X4(){let r=q4(),t=K4(),e=j4();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 Se=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Se.instance==null&&(Se.instance=new Se),Se.instance}static registerSaveRouter(t){Se.getInstance().saveRouters.push(t)}static registerLoadRouter(t){Se.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return Se.getHandlers(t,\"save\")}static getLoadHandlers(t,e){return Se.getHandlers(t,\"load\",e)}static getHandlers(t,e,n){let o=[];return(e===\"load\"?Se.getInstance().loadRouters:Se.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},i_=r=>Se.registerSaveRouter(r),a_=r=>Se.registerLoadRouter(r),l_=r=>Se.getSaveHandlers(r),u_=(r,t)=>Se.getLoadHandlers(r,t);var G0=\"tensorflowjs\",W0=1,Yu=\"models_store\",Kl=\"model_info_store\";function c_(){if(!B().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 U0(r){let t=r.result;t.createObjectStore(Yu,{keyPath:\"modelPath\"}),t.createObjectStore(Kl,{keyPath:\"modelPath\"})}var $i=class{constructor(t){if(this.indexedDB=c_(),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(G0,W0);s.onupgradeneeded=()=>U0(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(Yu,\"readonly\"),l=a.objectStore(Yu).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=Ai(e),u=i.transaction(Kl,\"readwrite\"),l=u.objectStore(Kl),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a}),p;c.onsuccess=()=>{p=i.transaction(Yu,\"readwrite\");let f=p.objectStore(Yu).put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a});f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(Kl);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)})}};$i.URL_SCHEME=\"indexeddb://\";var p_=r=>B().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith($i.URL_SCHEME)?Y4(r.slice($i.URL_SCHEME.length)):null;Se.registerSaveRouter(p_);Se.registerLoadRouter(p_);function Y4(r){return new $i(r)}function Z4(r){return r.startsWith($i.URL_SCHEME)?r.slice($i.URL_SCHEME.length):r}var ux=class{constructor(){this.indexedDB=c_()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open(G0,W0);n.onupgradeneeded=()=>U0(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(Kl,\"readonly\"),a=s.objectStore(Kl).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=Z4(t),new Promise((e,n)=>{let o=this.indexedDB.open(G0,W0);o.onupgradeneeded=()=>U0(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(Kl,\"readwrite\"),a=i.objectStore(Kl),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(Yu,\"readwrite\");let f=l.objectStore(Yu).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=\"/\",im=\"tensorflowjs_models\",m_=\"info\",J4=\"model_topology\",Q4=\"weight_specs\",tH=\"weight_data\",eH=\"model_metadata\";function f_(r){return{info:[im,r,m_].join(Xa),topology:[im,r,J4].join(Xa),weightSpecs:[im,r,Q4].join(Xa),weightData:[im,r,tH].join(Xa),modelMetadata:[im,r,eH].join(Xa)}}function d_(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function rH(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 nH(r){return r.startsWith(Di.URL_SCHEME)?r.slice(Di.URL_SCHEME.length):r}var Di=class{constructor(t){if(!B().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=f_(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=Ai(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,o_(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,trainingConfig:t.trainingConfig!=null?t.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:o}}catch(s){throw d_(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.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=s_(i),e}};Di.URL_SCHEME=\"localstorage://\";var h_=r=>B().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Di.URL_SCHEME)?oH(r.slice(Di.URL_SCHEME.length)):null;Se.registerSaveRouter(h_);Se.registerLoadRouter(h_);function oH(r){return new Di(r)}var cx=class{constructor(){A(B().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 t={},e=im+Xa,n=Xa+m_;for(let o=0;o\"scheme must not be undefined or null.\"),t.endsWith(am)&&(t=t.slice(0,t.indexOf(am))),A(t.length>0,()=>\"scheme must not be an empty string.\");let n=_r.getInstance();A(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=_r.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(_r.getInstance().managers)}};function px(r){if(r.indexOf(am)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${_r.getSchemes().join(\",\")}`);return{scheme:r.split(am)[0],path:r.split(am)[1]}}async function g_(r,t,e=!1){A(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=Se.getLoadHandlers(r);A(n.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),A(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${r}.`);let o=n[0],s=Se.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 (${n.length}) save handlers for destination URL ${t}.`);let i=s[0],a=px(r).scheme,u=px(r).path,l=a===px(r).scheme,c=await o.load();e&&l&&await _r.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await _r.getManager(a).removeModel(u),p.modelArtifactsInfo}async function x_(){let r=_r.getSchemes(),t={};for(let e of r){let n=await _r.getManager(e).listModels();for(let o in n){let s=e+am+o;t[s]=n[o]}}return t}async function y_(r){let t=px(r);return _r.getManager(t.scheme).removeModel(t.path)}async function b_(r,t){return g_(r,t,!1)}async function w_(r,t){return g_(r,t,!0)}var H0=class{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)}};if(B().get(\"IS_BROWSER\")){B().setPlatform(\"browser\",new H0);try{_r.registerManager(Di.URL_SCHEME,new cx)}catch(r){}try{_r.registerManager($i.URL_SCHEME,new ux)}catch(r){}}var sH={importFetch:()=>C_()},q0;var K0=class{constructor(){this.util=v_(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return B().global.fetch!=null?B().global.fetch(t,e):(q0==null&&(q0=sH.importFetch()),q0(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)}};B().get(\"IS_NODE\")&&!B().get(\"IS_BROWSER\")&&B().setPlatform(\"node\",new K0);function vt(r,t=\"float32\",e){return t=t||\"float32\",th(r),new fe(r,t,e)}function iH(r,t){let e=v(r,\"x\",\"cast\");if(!g0(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 _.runKernel(ao,n,o)}var tt=N({cast_:iH});function aH(r){let e={x:v(r,\"x\",\"clone\",\"string_or_numeric\")};return _.runKernel(uo,e)}var an=N({clone_:aH});function mx(r,t=!1){console.log(r.toString(t))}P0();var lH={buffer:vt,cast:tt,clone:an,print:mx};Z1(lH);var vn={};jt(vn,{browserFiles:()=>S_,browserHTTPRequest:()=>k_,concatenateArrayBuffers:()=>om,copyModel:()=>b_,decodeWeights:()=>ax,encodeWeights:()=>n_,fromMemory:()=>__,fromMemorySync:()=>Q0,getLoadHandlers:()=>u_,getModelArtifactsForJSON:()=>sm,getModelArtifactsInfoForJSON:()=>Ai,getSaveHandlers:()=>l_,http:()=>dx,isHTTPScheme:()=>fx,listModels:()=>x_,loadWeights:()=>T_,moveModel:()=>w_,registerLoadRouter:()=>a_,registerSaveRouter:()=>i_,removeModel:()=>y_,weightsLoaderFactory:()=>Z0,withSaveHandler:()=>E_,withSaveHandlerSync:()=>A_});var uH=\"model\",cH=\".json\",pH=\".weights.bin\";function I_(r){return new Promise(t=>setTimeout(t)).then(r)}var Ya=class{constructor(t){if(!B().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=uH),this.modelJsonFileName=t+cH,this.weightDataFileName=t+pH}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=lx(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 I_(()=>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 I_(()=>a.dispatchEvent(new MouseEvent(\"click\")))}return{modelArtifactsInfo:Ai(t)}}}};Ya.URL_SCHEME=\"downloads://\";var j0=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=sm(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,om(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=>V0(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=V0(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}},mH=r=>B().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Ya.URL_SCHEME)?fH(r.slice(Ya.URL_SCHEME.length)):null;Se.registerSaveRouter(mH);function fH(r=\"model\"){return new Ya(r)}function S_(r){return new j0(r)}function X0(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){A(u!=null&&Array.isArray(u)&&u.length>0,()=>\"promises must be a none empty array\")}function a(u,l){A(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${u}`),A(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),A(l>=u,()=>`startFraction must be no more than endFraction, but got startFraction ${u} and endFraction ${l}`)}return Promise.all(r.map(s))}async function Y0(r,t){t==null&&(t={});let e=t.fetchFunc==null?B().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 X0(n,t.onProgress,o,s)).map(p=>p.arrayBuffer()),u=.5,l=1;return t.onProgress==null?await Promise.all(a):await X0(a,t.onProgress,u,l)}async function T_(r,t=\"\",e,n){return Z0(i=>Y0(i,{requestInit:n}))(r,t,e)}function Z0(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=dh[x]*Qt(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,T)=>{C===g.name&&(w(),i[T]=!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 T=g.slice(C.groupOffset,C.groupOffset+C.sizeBytes),E=ax(T,[C.manifestEntry]);for(let $ in E)p[$]=E[$]}),m+=d}),p}}var dH=\"application/octet-stream\",hH=\"application/json\",hh=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?(A(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=B().platform.fetch,A(t!=null&&t.length>0,()=>\"URL path for http must not be null, undefined or empty.\"),Array.isArray(t)&&A(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=lx(t,n);e.body.append(\"model.json\",new Blob([JSON.stringify(o)],{type:hH}),\"model.json\"),t.weightData!=null&&e.body.append(\"model.weights.bin\",new Blob([t.weightData],{type:dH}),\"model.weights.bin\");let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:Ai(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 sm(e,s=>this.loadWeights(s))}async loadWeights(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=gH(e),s=this.weightPathPrefix||n,i=[];for(let c of t)i.push(...c.weights);let 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 Y0(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,om(l)]}};hh.URL_SCHEME_REGEX=/^https?:\\/\\//;function gH(r){let t=r.lastIndexOf(\"/\"),e=r.lastIndexOf(\"?\"),n=r.substring(0,t),o=e>t?r.substring(e):\"\";return[n+\"/\",o]}function fx(r){return r.match(hh.URL_SCHEME_REGEX)!=null}var N_=(r,t)=>{if(typeof fetch==\"undefined\"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>fx(n)):e=fx(r),e)return dx(r,t)}return null};Se.registerSaveRouter(N_);Se.registerLoadRouter(N_);function dx(r,t){return new hh(r,t)}function k_(r,t){return dx(r,t)}var gh=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},hx=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},J0=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function __(r,t,e,n){let o=arguments;return new J0(Q0(...o))}function Q0(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new gh(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 gh({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 gh({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function E_(r){return new hx(r)}function A_(r){return new hx(r)}var R_={};jt(R_,{confusionMatrix:()=>D_});function xH(r,t,e=!1,n=!1){let o=v(r,\"a\",\"matMul\"),s=v(t,\"b\",\"matMul\");[o,s]=Xt(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return _.runKernel(Zo,i,a)}var Gt=N({matMul_:xH});function yH(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:v(r,\"indices\",\"oneHot\",\"int32\")},a={dtype:o,depth:t,onValue:e,offValue:n};return _.runKernel(vs,i,a)}var Ri=N({oneHot_:yH});function wpt(){B().set(\"PROD\",!0)}function Cpt(){B().set(\"DEBUG\",!0)}function vpt(){B().set(\"DEPRECATION_WARNINGS_ENABLED\",!1),console.warn(\"TensorFlow.js deprecation warnings have been disabled.\")}function tS(r){B().getBool(\"DEPRECATION_WARNINGS_ENABLED\")&&console.warn(r+\" You can disable deprecation warnings with tf.disableDeprecationWarnings().\")}J1(tS);function Ipt(){_.disposeVariables()}function go(){return _}function xh(){return _.memory()}function Spt(r){return _.profile(r)}function G(r,t){return _.tidy(r,t)}function _t(r){fh(r).forEach(e=>e.dispose())}function Oe(r){return _.keep(r)}function Tpt(r){return _.time(r)}function bH(r){return _.setBackend(r)}function Npt(){return _.ready()}function kpt(){return _.backendName}function _pt(r){_.removeBackend(r)}function Ept(r){return _.findBackend(r)}function Apt(r){return _.findBackendFactory(r)}function lm(r,t,e=1){return _.registerBackend(r,t,e)}function $_(){return _.backend}function $pt(r,t){B().setPlatform(r,t)}function wH(r){let e={input:v(r,\"input\",\"imag\")};return _.runKernel(Mp,e)}var jl=N({imag_:wH});function CH(r){let e={x:v(r,\"x\",\"neg\")};return _.runKernel(gi,e)}var Yt=N({neg_:CH});function vH(r){let e={input:v(r,\"input\",\"real\")};return _.runKernel(qp,e)}var Za=N({real_:vH});function IH(r,t,e){let n=v(r,\"x\",\"transpose\");if(t==null&&(t=n.shape.map((i,a)=>a).reverse()),A(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(i=>{A(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\"?G(()=>{let i=Za(n),a=jl(n);return i=_.runKernel(Yn,{x:i},s),a=_.runKernel(Yn,{x:a},s),e&&(a=Yt(a)),Cn(i,a)}):_.runKernel(Yn,o,s)}var Mt=N({transpose_:IH});function SH(r,t,e){let n=v(r,\"labels\",\"confusionMatrix\"),o=v(t,\"predictions\",\"confusionMatrix\");A(e==null||e>0&&Number.isInteger(e),()=>`If provided, numClasses must be a positive integer, but got ${e}`),A(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),A(o.rank===1,()=>`Expected the rank of predictions to be 1, but got ${o.rank}`),A(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.`),A(e>0&&Number.isInteger(e),()=>`numClasses is required to be a positive integer, but got ${e}`);let s=Ri(tt(n,\"int32\"),e),i=Ri(tt(o,\"int32\"),e),a=Mt(s),u=Gt(a,i);return tt(u,\"int32\")}var D_=N({confusionMatrix_:SH});var Lr={};jt(Lr,{assertAndGetBroadcastShape:()=>zt,getBroadcastDims:()=>F_,getReductionAxes:()=>ye});function F_(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function ye(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function zt(r,t){let e=[],n=Math.max(r.length,t.length);for(let o=0;o$H,fromPixelsAsync:()=>EH,toPixels:()=>AH});function gx(r,t,e){if(Kn(r),t!=null&&t.length!==3)throw new Error(\"tensor3d() requires shape to have three numbers\");let n=Pr(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 sn(r,t,n,e)}var Zu;function O_(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(lh(ih,_.backendName)!=null){let d={pixels:r},h={numChannels:t};return _.runKernel(ih,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(Zu==null)if(typeof document==\"undefined\")if(typeof OffscreenCanvas!=\"undefined\"&&typeof OffscreenCanvasRenderingContext2D!=\"undefined\")Zu=new OffscreenCanvas(1,1).getContext(\"2d\");else throw new Error(\"Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.\");else Zu=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:!0});Zu.canvas.width=l,Zu.canvas.height=c,Zu.drawImage(r,0,0,l,c),p=Zu.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 $H=N({fromPixels_:O_});var yx={};jt(yx,{prepareAndValidate:()=>P_});function P_(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(Qt(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 yh={};jt(yh,{calculateShapes:()=>L_,validateInput:()=>bx,validateUpdateShape:()=>eS});function eS(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;pRH,computeFlatOffset:()=>MH,computeOutShape:()=>OH,getNormalizedAxes:()=>PH,isSliceContinous:()=>LH,maskToAxes:()=>FH,parseSliceParams:()=>nS,sliceInfo:()=>zH,startForAxis:()=>H_,startIndicesWithElidedDims:()=>G_,stopForAxis:()=>q_,stopIndicesWithElidedDims:()=>W_,stridesForAxis:()=>U_,stridesWithElidedDims:()=>z_});var rS=-2,DH=-1;function RH(r,t,e){let n=r.shape.length;A(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),A(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 FH(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function OH(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=G_(i,f,d,n,r),p=W_(a,f,d,o,r),m=z_(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=B_(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=B_(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=yp(0,i,u-1),i}function q_(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=yp(0,i,u):i=yp(-1,i,u-1),i}function LH(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 MH(r,t){let e=r.length>0?r[r.length-1]:1;for(let n=0;n{A(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:(A(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 zH(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?T:T-1];if(C&&m.strides[w]<=0)throw Error(\"only stride 1 allowed on non-range indexing.\");h=h&&m.strides[w]===1;let D=!!(m.beginMask&1<=T)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=M_(m.begin[w],0,m.strides[w],T,E,$),m.end[w]=M_(m.end[w],1,m.strides[w],T,E,$);let W=m.strides[w]===1&&m.begin[w]===0&&m.end[w]===T;f=f&&W,d=d&&(w===0&&m.strides[w]===1||W)}else f=f&&m.strides[w]===1&&D,d=d&&(w===0&&m.strides[w]===1||D);let P,M=!1;if(m.beginValid&&m.endValid?(P=m.end[w]-m.begin[w],M=!0):C?(P=1,M=!0):D&&T>=0&&(m.strides[w]<0?P=-T:P=T,M=!0),M){let W;P===0||P<0!=m.strides[w]<0?W=0:W=Math.trunc(P/m.strides[w])+(P%m.strides[w]!==0?1:0),g.push(W)}else g.push(-1)}for(let w=0;w=0?x.push(g[C]):C===rS&&x.push(1)}return{finalShapeSparse:x.filter((w,C)=>m.finalShapeGatherIndices[C]!==rS),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function BH(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 rt={};jt(rt,{Serializable:()=>bh,SerializationMap:()=>Fi,registerClass:()=>In});var bh=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},Fi=class{constructor(){this.classNameMap={}}static getMap(){return Fi.instance==null&&(Fi.instance=new Fi),Fi.instance}static register(t){Fi.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function In(r){A(r.className!=null,()=>\"Class being registered does not have the static className property defined.\"),A(typeof r.className==\"string\",()=>\"className is required to be a string, but got type \"+typeof r.className),A(r.className.length>0,()=>\"Class being registered has an empty-string as its className, which is disallowed.\"),Fi.register(r)}var Y_={};jt(Y_,{TEST_EPSILON_FLOAT16:()=>K_,createVideoElement:()=>KH,encodeStrings:()=>X_,expectArrayBuffersEqual:()=>qH,expectArraysClose:()=>GH,expectArraysEqual:()=>UH,expectNumbersClose:()=>j_,expectPromiseToFail:()=>WH,expectValuesInRange:()=>HH,play:()=>jH,testEpsilon:()=>wx});var VH=.001,K_=.1;function GH(r,t,e){return e==null&&(e=wx()),oS(r,t,(n,o)=>sS(n,o,e))}function wx(){return _.backend.floatPrecision()===32?VH:K_}function oS(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=Pr(r),a=Pr(t);if(!Rn(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=xr(r)?r:qo(r),s=xr(t)?t:qo(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 UH(r,t){let e=typeof t==\"string\"||typeof t==\"number\"||typeof t==\"boolean\"?[t]:t;return Ko(r)||Ko(r[0])||Ko(t)||Ko(t[0])?oS(r,e,(n,o)=>n==o):oS(r,t,(n,o)=>sS(n,o,0))}function j_(r,t,e){if(e==null&&(e=wx()),!sS(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!=\"undefined\"&&expect().nothing()}function sS(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function HH(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function qH(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 jH(r){await r.play(),\"requestVideoFrameCallback\"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var Z_=\"3.20.0\";function XH(r,t){let e=v(r,\"a\",\"add\"),n=v(t,\"b\",\"add\");[e,n]=Xt(e,n);let o={a:e,b:n};return _.runKernel(jn,o)}var J=N({add_:XH});function YH(r,t){let e=v(r,\"a\",\"floorDiv\"),n=v(t,\"b\",\"floorDiv\");[e,n]=Xt(e,n);let o={a:e,b:n};return _.runKernel(us,o)}var um=N({floorDiv_:YH});function ZH(r,t){let e=v(r,\"a\",\"div\"),n=v(t,\"b\",\"div\");if([e,n]=Xt(e,n),e.dtype===\"int32\"&&n.dtype===\"int32\")return um(e,n);let o={a:e,b:n},s={};return _.runKernel(ss,o,s)}var ct=N({div_:ZH});function JH(r,t){let e=v(r,\"a\",\"mul\"),n=v(t,\"b\",\"mul\");[e,n]=Xt(e,n);let o={a:e,b:n};return _.runKernel(Cs,o)}var O=N({mul_:JH});function QH(r){let t=v(r,\"x\",\"abs\");if(t.dtype===\"complex64\"){let e={x:t};return _.runKernel(_l,e)}else{let e={x:t};return _.runKernel(pi,e)}}var $e=N({abs_:QH});function tq(r){let e={x:v(r,\"x\",\"acos\")};return _.runKernel(oa,e)}var Cx=N({acos_:tq});function eq(r){let e={x:v(r,\"x\",\"acosh\")};return _.runKernel(sa,e)}var vx=N({acosh_:eq});function rq(r){A(Array.isArray(r),()=>\"The argument passed to tf.addN() must be a list of tensors\"),A(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let t=r.map((o,s)=>v(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(!Rn(o.shape,e.shape))throw new Error(\"All tensors passed to tf.addN() must have the same shape\")});let n=t;return _.runKernel(jo,n)}var J_=N({addN_:rq});function nq(r,t=null,e=!1){let o={x:v(r,\"x\",\"all\",\"bool\")},s={axis:t,keepDims:e};return _.runKernel(ia,o,s)}var cm=N({all_:nq});function oq(r,t=null,e=!1){let o={x:v(r,\"x\",\"any\",\"bool\")},s={axis:t,keepDims:e};return _.runKernel(aa,o,s)}var Ju=N({any_:oq});function sq(r,t=0){let n={x:v(r,\"x\",\"argMax\")},o={axis:t};return _.runKernel(Xo,n,o)}var Oi=N({argMax_:sq});function iq(r,t=0){let n={x:v(r,\"x\",\"argMin\")},o={axis:t};return _.runKernel(Nl,n,o)}var Ix=N({argMin_:iq});function aq(r){let e={x:v(r,\"x\",\"asin\")};return _.runKernel(la,e)}var Sx=N({asin_:aq});function lq(r){let e={x:v(r,\"x\",\"asinh\")};return _.runKernel(ua,e)}var Tx=N({asinh_:lq});function uq(r){let e={x:v(r,\"x\",\"atan\")};return _.runKernel(ca,e)}var Nx=N({atan_:uq});function cq(r,t){let e=v(r,\"a\",\"atan2\"),n=v(t,\"b\",\"atan2\");[e,n]=Xt(e,n);let o={a:e,b:n};return _.runKernel(ma,o)}var kx=N({atan2_:cq});function pq(r){let e={x:v(r,\"x\",\"atanh\")};return _.runKernel(pa,e)}var _x=N({atanh_:pq});function mq(r,t,e,n,o=\"NHWC\",s){let i=r[3],a=[...t,i],u=tE(o);return tc(r,a,e,s,n,null,null,u)}function aS(r,t,e,n,o,s,i=\"channelsLast\"){let[a,u]=Ex(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 tc(r,l,e,n,o,s,!1,i)}function fq(r,t,e,n,o,s,i=\"NDHWC\"){let[a,u,l]=iS(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 Q_(r,c,e,n,o,!1,p,s)}function tc(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]=Ex(e),[x,b]=Ex(n),w=pm(m,x),C=pm(f,b),{padInfo:T,outHeight:E,outWidth:$}=gq(o,l,c,h,g,w,C,s,a),D=i?d*p:d,P;return a===\"channelsFirst\"?P=[u,D,E,$]:a===\"channelsLast\"&&(P=[u,E,$,D]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:E,outWidth:$,outChannels:D,padInfo:T,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:C,dilationHeight:x,dilationWidth:b,inShape:r,outShape:P,filterShape:t}}function Q_(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]=iS(e),[C,T,E]=iS(n),$=pm(f,C),D=pm(d,T),P=pm(h,E),{padInfo:M,outDepth:W,outHeight:H,outWidth:q}=xq(o,l,c,p,x,b,w,$,D,P,a),X=s?g*m:g,j;return i===\"channelsFirst\"?j=[u,X,W,H,q]:i===\"channelsLast\"&&(j=[u,W,H,q,X]),{batchSize:u,dataFormat:i,inDepth:l,inHeight:c,inWidth:p,inChannels:m,outDepth:W,outHeight:H,outWidth:q,outChannels:X,padInfo:M,strideDepth:x,strideHeight:b,strideWidth:w,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:$,effectiveFilterHeight:D,effectiveFilterWidth:P,dilationDepth:C,dilationHeight:T,dilationWidth:E,inShape:r,outShape:j,filterShape:t}}function dq(r,t,e,n,o){n==null&&(n=lS(r,t,e));let s=r[0],i=r[1],a=Qu((s-t+2*n)/e+1,o),u=Qu((i-t+2*n)/e+1,o);return[a,u]}function hq(r,t,e,n,o,s){o==null&&(o=lS(r,t,n));let i=r[0],a=r[1],u=r[2],l=Qu((i-t+2*o)/n+1,s),c=Qu((a-t+2*o)/n+1,s),p=Qu((u-t+2*o)/n+1,s);return[l,c,p,e]}function lS(r,t,e,n=1){let o=pm(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function Ex(r){return typeof r==\"number\"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function iS(r){return typeof r==\"number\"?[r,r,r]:r}function pm(r,t){return t<=1?r:r+(r-1)*(t-1)}function gq(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=dq([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=Qu((t-s+m+f)/n+1,a),p=Qu((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function xq(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=hq([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),T=g-C,E=Math.floor(x/2),$=x-E;p={top:C,bottom:T,left:E,right:$,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 Qu(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 Jn(r){let[t,e,n]=Ex(r);return t===1&&e===1&&n===1}function Er(r,t){return Jn(r)||Jn(t)}function tE(r){if(r===\"NHWC\")return\"channelsLast\";if(r===\"NCHW\")return\"channelsFirst\";throw new Error(`Unknown dataFormat ${r}`)}function Te(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\")A(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=>{A(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 yq(r,t){let n={x:v(r,\"x\",\"reshape\",\"string_or_numeric\")},o={shape:t};return _.runKernel(bi,n,o)}var F=N({reshape_:yq});function bq(r,t,e,n,o){let s=v(r,\"x\",\"avgPool\",\"float32\"),i=1;A(Er(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=F(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),Te(\"avgPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=_.runKernel(Yo,l,c);return p=tt(p,s.dtype),u?F(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Xl=N({avgPool_:bq});function wq(r,t,e,n,o,s=\"NDHWC\"){let i=v(r,\"x\",\"avgPool3d\",\"float32\"),a=i,u=!1;i.rank===4&&(u=!0,a=F(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(a.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${a.rank}.`),A(s===\"NDHWC\",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Te(\"avgPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=_.runKernel(kl,l,c);return p=tt(p,a.dtype),u?F(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Ax=N({avgPool3d_:wq});function Cq(r,t=0){A(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 an(e[0]);let n=e,o={axis:t};return _.runKernel(fi,n,o)}var se=N({concat_:Cq});function vq(r){let e={x:v(r,\"x\",\"sigmoid\",\"float32\")};return _.runKernel(Os,e)}var Kr=N({sigmoid_:vq});function Iq(r,t,e){let n=v(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 _.runKernel(Ci,o,s)}var Ot=N({slice_:Iq});function Sq(r){let e={x:v(r,\"x\",\"tanh\",\"float32\")};return _.runKernel(Gs,e)}var Pi=N({tanh_:Sq});function Tq(r,t,e,n,o,s){let i=v(r,\"forgetBias\",\"basicLSTMCell\"),a=v(t,\"lstmKernel\",\"basicLSTMCell\"),u=v(e,\"lstmBias\",\"basicLSTMCell\"),l=v(n,\"data\",\"basicLSTMCell\"),c=v(o,\"c\",\"basicLSTMCell\"),p=v(s,\"h\",\"basicLSTMCell\"),m=se([l,p],1),f=Gt(m,a),d=J(f,u),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Ot(d,[0,0],x),w=Ot(d,[0,g],x),C=Ot(d,[0,g*2],x),T=Ot(d,[0,g*3],x),E=J(O(Kr(b),Pi(w)),O(c,Kr(J(i,C)))),$=O(Pi(E),Kr(T));return[E,$]}var eE=N({basicLSTMCell_:Tq});function Nq(r,t,e){let n=v(r,\"x\",\"batchToSpaceND\"),o=t.reduce((a,u)=>a*u);A(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),A(e.length===t.length,()=>`crops.length is ${e.length} but should be equal to blockShape.length ${t.length}`),A(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 _.runKernel(mi,s,i)}var Yl=N({batchToSpaceND_:Nq});function rE(r){let t;return r.rank===0||r.rank===1?t=F(r,[1,1,1,r.size]):r.rank===2?t=F(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?t=F(r,[1,r.shape[0],r.shape[1],r.shape[2]]):t=r,t}function kq(r,t,e,n,o,s){s==null&&(s=.001);let i=v(r,\"x\",\"batchNorm\"),a=v(t,\"mean\",\"batchNorm\"),u=v(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=v(o,\"scale\",\"batchNorm\"));let c;n!=null&&(c=v(n,\"offset\",\"batchNorm\")),A(a.rank===u.rank,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),A(c==null||a.rank===c.rank,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),A(l==null||a.rank===l.rank,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\");let m={x:rE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=_.runKernel(cs,m,f);return F(d,i.shape)}var Li=N({batchNorm_:kq});function _q(r,t,e,n,o,s){let i=v(r,\"x\",\"batchNorm\"),a=v(t,\"mean\",\"batchNorm\"),u=v(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=v(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=v(n,\"offset\",\"batchNorm\")),A(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),A(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),A(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${u.rank}.`),l!=null&&A(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`),Li(i,a,u,c,l,s)}var $x=N({batchNorm2d_:_q});function Eq(r,t,e,n,o,s){let i=v(r,\"x\",\"batchNorm\"),a=v(t,\"mean\",\"batchNorm\"),u=v(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=v(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=v(n,\"offset\",\"batchNorm\")),A(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),A(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),A(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${u.rank}.`),l!=null&&A(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`),Li(i,a,u,c,l,s)}var Dx=N({batchNorm3d_:Eq});function Aq(r,t,e,n,o,s){let i=v(r,\"x\",\"batchNorm\"),a=v(t,\"mean\",\"batchNorm\"),u=v(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=v(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=v(n,\"offset\",\"batchNorm\")),A(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),A(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),A(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${u.rank}.`),l!=null&&A(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`),Li(i,a,u,c,l,s)}var Rx=N({batchNorm4d_:Aq});function $q(r,t,e){let n=v(r,\"x\",\"bincount\"),o=v(t,\"weights\",\"bincount\");A(n.dtype===\"int32\",()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`),A(e>=0,()=>`size must be non-negative, but got ${e}.`),A(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 _.runKernel(Sp,s,i)}var Fx=N({bincount_:$q});function Dq(r,t){let e=v(r,\"s0\",\"broadcastArgs\",\"int32\"),n=v(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 _.runKernel(Tp,o)}var nE=N({broadcastArgs_:Dq});function Rq(r,t){let e=v(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 an(e);let a={x:e},u={reps:s};return _.runKernel(Xn,a,u)}var Mi=N({broadcastTo_:Rq});function Fq(r){let e={x:v(r,\"x\",\"ceil\",\"float32\")};return _.runKernel(Jo,e)}var Ox=N({ceil_:Fq});function Oq(r,t,e){let n=v(r,\"x\",\"clipByValue\");A(t<=e,()=>`Error in clip: min (${t}) must be less than or equal to max (${e}).`);let o={x:n},s={clipValueMin:t,clipValueMax:e};return _.runKernel(lo,o,s)}var Ir=N({clipByValue_:Oq});function Pq(r){return se(r,0)}var Px=N({concat1d_:Pq});function Lq(r,t){return se(r,t)}var Lx=N({concat2d_:Lq});function Mq(r,t){return se(r,t)}var Mx=N({concat3d_:Mq});function zq(r,t){return se(r,t)}var zx=N({concat4d_:zq});function Bq(r,t,e,n,o=\"NHWC\",s=[1,1],i){let a=v(r,\"x\",\"conv2d\",\"float32\"),u=v(t,\"filter\",\"conv2d\",\"float32\"),l=a,c=!1;a.rank===3&&(c=!0,l=F(a,[1,a.shape[0],a.shape[1],a.shape[2]])),A(l.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${l.rank}.`),A(u.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${u.rank}.`),Te(\"conv2d\",n,i);let p=o===\"NHWC\"?l.shape[3]:l.shape[1];A(p===u.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${u.shape[2]}.`),A(Er(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=_.runKernel(Qo,m,f);return c?F(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Sn=N({conv2d_:Bq});function Vq(r,t,e,n,o=\"NWC\",s=1,i){let a=v(r,\"x\",\"conv1d\"),u=v(t,\"filter\",\"conv1d\"),l=a,c=!1;a.rank===2&&(c=!0,l=F(a,[1,a.shape[0],a.shape[1]])),A(l.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${l.rank}.`),A(u.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${u.rank}.`),Te(\"conv1d\",n,i),A(l.shape[2]===u.shape[1],()=>`Error in conv1d: depth of input (${l.shape[2]}) must match input depth for filter ${u.shape[1]}.`),A(Er(e,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`),A(o===\"NWC\",()=>`Error in conv1d: got dataFormat of ${o} but only NWC is currently supported.`);let p=F(u,[1,u.shape[0],u.shape[1],u.shape[2]]),m=F(l,[l.shape[0],1,l.shape[1],l.shape[2]]),g=Sn(m,p,[1,e],n,\"NHWC\",[1,s],i);return c?F(g,[g.shape[2],g.shape[3]]):F(g,[g.shape[0],g.shape[2],g.shape[3]])}var mm=N({conv1d_:Vq});function Gq(r,t,e,n,o,s=\"NHWC\",i){A(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=F(t,[1,t.shape[0],t.shape[1],t.shape[2]]),a=[1,r[0],r[1],r[2]]),A(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),A(u.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${u.rank}`),A(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];A(c===e.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${e.shape[2]}.`),A(p===e.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${e.shape[3]}.`),Te(\"conv2dDerInput\",o,i);let m={dy:u,filter:e},f={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,inputShape:a},d=_.runKernel(ts,m,f);return l?F(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var fm=N({conv2DBackpropInput_:Gq});function Wq(r,t,e,n,o,s){let i=v(r,\"x\",\"conv2dTranspose\"),a=v(t,\"filter\",\"conv2dTranspose\");return fm(e,i,a,n,o,\"NHWC\",s)}var dm=N({conv2dTranspose_:Wq});function Uq(r,t,e,n,o=\"NDHWC\",s=[1,1,1]){let i=v(r,\"x\",\"conv3d\"),a=v(t,\"filter\",\"conv3d\"),u=i,l=!1;i.rank===4&&(l=!0,u=F(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(u.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${u.rank}.`),A(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),A(u.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${u.shape[4]}) must match input depth for filter ${a.shape[3]}.`),A(Er(e,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),A(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=_.runKernel(El,c,p);return l?F(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Bx=N({conv3d_:Uq});function Hq(r,t,e,n,o){A(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=F(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];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(e.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${e.rank}`),A(u===e.shape[3],()=>`Error in conv3dDerInput: depth of input (${u}) must match input depth for filter ${e.shape[3]}.`),A(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=_.runKernel(Ep,c,p);return a?F(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Vx=N({conv3DBackpropInput_:Hq});function qq(r,t,e,n,o){let s=v(r,\"x\",\"conv3dTranspose\"),i=v(t,\"filter\",\"conv3dTranspose\");return Vx(e,s,i,n,o)}var Gx=N({conv3dTranspose_:qq});function Kq(r){let e={x:v(r,\"x\",\"cos\",\"float32\")};return _.runKernel(es,e)}var Zl=N({cos_:Kq});function jq(r){let e={x:v(r,\"x\",\"cosh\",\"float32\")};return _.runKernel(rs,e)}var hm=N({cosh_:jq});function Xq(r,t=0,e=!1,n=!1){let s={x:v(r,\"x\",\"cumprod\")},i={axis:t,exclusive:e,reverse:n};return _.runKernel(fa,s,i)}var ec=N({cumprod_:Xq});function Yq(r,t=0,e=!1,n=!1){let s={x:v(r,\"x\",\"cumsum\")},i={axis:t,exclusive:e,reverse:n};return _.runKernel(ns,s,i)}var gm=N({cumsum_:Yq});function Zq(r,t,e,n=!1){let o=v(r,\"x\",\"denseBincount\"),s=v(t,\"weights\",\"denseBincount\");A(o.dtype===\"int32\",()=>`Error in denseBincount: input dtype must be int32, but got ${o.dtype}`),A(o.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${o.rank}.`),A(e>=0,()=>`size must be non-negative, but got ${e}.`),A(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 _.runKernel(Ap,i,a)}var oE=N({denseBincount_:Zq});function Jq(r,t,e=\"NHWC\"){let n=v(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];A(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),A(o*t>=0,()=>`Negative dimension size caused by overflow when multiplying\n ${o} and ${t} for depthToSpace with input shape\n ${n.shape}`),A(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying\n ${s} and ${t} for depthToSpace with input shape\n ${n.shape}`),A(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 _.runKernel(ha,a,u)}var Wx=N({depthToSpace_:Jq});function Qq(r,t,e,n,o=\"NHWC\",s=[1,1],i){let a=v(r,\"x\",\"depthwiseConv2d\",\"float32\"),u=v(t,\"filter\",\"depthwiseConv2d\",\"float32\"),l=a,c=!1;a.rank===3&&(c=!0,l=F(a,[1,a.shape[0],a.shape[1],a.shape[2]])),A(l.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${l.rank}.`),A(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];A(p===u.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${p}) must match the inChannels dimension in filter ${u.shape[2]}.`),Te(\"depthwiseConv2d\",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=_.runKernel(os,m,f);return c?F(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var zi=N({depthwiseConv2d_:Qq});function tK(r){let e={x:v(r,\"x\",\"diag\")};return _.runKernel(Rp,e)}var sE=N({diag_:tK});function eK(r,t,e,n,o=[1,1],s=\"NHWC\"){let i=v(r,\"x\",\"dilation2d\"),a=v(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(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),A(s===\"NHWC\",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let u=i,l=!1;i.rank===3&&(u=F(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=_.runKernel(Al,c,p);return l?F(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ux=N({dilation2d_:eK});function rK(r,t){let e=v(r,\"a\",\"equal\",\"string_or_numeric\"),n=v(t,\"b\",\"equal\",\"string_or_numeric\");[e,n]=Xt(e,n),zt(e.shape,n.shape);let o={a:e,b:n};return _.runKernel(xa,o)}var Ar=N({equal_:rK});function nK(r,t,e){let n=v(t,\"a\",\"where\"),o=v(e,\"b\",\"where\"),s=v(r,\"condition\",\"where\",\"bool\"),i=zt(zt(s.shape,n.shape),o.shape),a=Mi(s,i),u=Mi(n,i),l=Mi(o,i),c={condition:a,t:u,e:l};return _.runKernel(wi,c)}var De=N({where_:nK});function oK(r){let e={x:v(r,\"x\",\"zerosLike\")};return _.runKernel(Ti,e)}var St=N({zerosLike_:oK});function sK(r,t){let e=v(r,\"a\",\"div\"),n=v(t,\"b\",\"div\");[e,n]=Xt(e,n);let o=ct(e,n),s=St(o),i=Ar(n,s);return De(i,s,o)}var Hx=N({divNoNan_:sK});function iK(r,t){let e=v(r,\"t1\",\"dot\"),n=v(t,\"t2\",\"dot\");A((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(A(o===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${o} and ${s}.`),e.rank===1&&n.rank===1){let i=F(e,[1,-1]),a=F(n,[-1,1]),u=Gt(i,a);return F(u,[])}else if(e.rank===1&&n.rank===2){let i=F(e,[1,-1]),a=F(n,[n.shape[0],n.shape[1]]),u=Gt(i,a);return F(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=F(n,[-1,1]),a=Gt(e,i);return F(a,[a.size])}else{let i=F(n,[n.shape[0],n.shape[1]]);return Gt(e,i)}}var qx=N({dot_:iK});function aK(r,...t){let e=t.map((o,s)=>v(o,`tensors${s}`,\"einsum\")),n={equation:r};return _.runKernel(Fp,e,n)}var iE=N({einsum_:aK});function lK(r){let e={x:v(r,\"x\",\"elu\",\"float32\")};return _.runKernel(is,e)}var Bi=N({elu_:lK});function uK(r){let t=v(r,\"x\",\"erf\");A(t.dtype===\"int32\"||t.dtype===\"float32\",()=>\"Input dtype must be `int32` or `float32`.\"),t.dtype===\"int32\"&&(t=tt(t,\"float32\"));let e={x:t};return _.runKernel(ga,e)}var Kx=N({erf_:uK});function uS(r,t){for(let e=0;er[s]);return[e,o]}function xo(r,t){let e=t.map(n=>1);return aE(r,e,t)}function cK(r,t,e){A(uS(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function pS(r,t){if(uS(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function wh(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function pK(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 _.runKernel(di,n,o)}var yr=N({expandDims_:CK});function vK(r){let e={x:v(r,\"x\",\"expm1\")};return _.runKernel(ya,e)}var Xx=N({expm1_:vK});function IK(r,t){let e=v(r,\"x\",\"tile\",\"string_or_numeric\");A(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 _.runKernel(Xn,n,o)}var $r=N({tile_:IK});function SK(r,t,e,n=\"float32\"){t==null&&(t=r);let o=vt([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}.`),A(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=F(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=_.runKernel(Dl,u,l);return a?F(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Qx=N({localResponseNormalization_:OK});function PK(r){let e={x:v(r,\"x\",\"log\",\"float32\")};return _.runKernel(fs,e)}var Sr=N({log_:PK});function LK(r){let e={x:v(r,\"x\",\"log1p\")};return _.runKernel(ka,e)}var Ql=N({log1p_:LK});function MK(r){return A(ui(r),()=>\"The f passed in grad(f) must be a function\"),(t,e)=>{let n=v(t,\"x\",\"tf.grad\",\"string_or_numeric\"),o=e!=null?v(e,\"dy\",\"tf.grad\"):null;return _.tidy(()=>{let{value:s,grads:i}=_.gradients(()=>r(n),[n],o);return o!=null&&Fe(s.shape,o.shape,\"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)\"),ey(i),i[0]})}}function zK(r){return A(ui(r),()=>\"The f passed in grads(f) must be a function\"),(t,e)=>{A(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?v(e,\"dy\",\"tf.grads\"):null;return _.tidy(()=>{let{value:s,grads:i}=_.gradients(()=>r(...n),n,o);return o!=null&&Fe(s.shape,o.shape,\"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),ey(i),i})}}function BK(r){return A(ui(r),()=>\"The f passed in valueAndGrad(f) must be a function\"),(t,e)=>{A(t instanceof Lt,()=>\"The x passed in valueAndGrad(f)(x) must be a tensor\"),A(e==null||e instanceof Lt,()=>\"The dy passed in valueAndGrad(f)(x, dy) must be a tensor\");let{grads:n,value:o}=_.gradients(()=>r(t),[t],e);return ey(n),{grad:n[0],value:o}}}function VK(r){return A(ui(r),()=>\"The f passed in valueAndGrads(f) must be a function\"),(t,e)=>{A(Array.isArray(t)&&t.every(o=>o instanceof Lt),()=>\"The args passed in valueAndGrads(f)(args) must be array of tensors\"),A(e==null||e instanceof Lt,()=>\"The dy passed in valueAndGrads(f)(args, dy) must be a tensor\");let n=_.gradients(()=>r(...t),t,e);return e!=null&&Fe(n.value.shape,e.shape,\"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),ey(n.grads),n}}function ty(r,t){A(ui(r),()=>\"The f passed in variableGrads(f) must be a function\"),A(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 _.registeredVariables)t.push(_.registeredVariables[l])}let n=e?t.filter(l=>!l.trainable):null,o=t.length;t=t.filter(l=>l.trainable),A(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}=_.gradients(r,t,null,s);A(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().\"),A(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 _.customGrad(r)}function ey(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 GK(r){let e={x:v(r,\"x\",\"softplus\")};return _.runKernel(Va,e)}var Hs=N({softplus_:GK});function WK(r){let t=v(r,\"x\",\"logSigmoid\");return un(n=>({value:Yt(Hs(Yt(n))),gradFunc:i=>O(i,Kr(Yt(n)))}))(t)}var ry=N({logSigmoid_:WK});function UK(r,t){let e=v(r,\"a\",\"sub\"),n=v(t,\"b\",\"sub\");[e,n]=Xt(e,n);let o={a:e,b:n};return _.runKernel(Bs,o)}var ut=N({sub_:UK});function HK(r,t=-1){let e=v(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=Mr(o,t,!0),u=ut(o,a),l=ut(tt(u,\"float32\"),Sr(ft(or(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=or(f);return ut(p,O(ft(p,t,d),h))}}})(e)}var ym=N({logSoftmax_:HK});function qK(r,t=null,e=!1){let n=v(r,\"x\",\"logSumExp\"),o=ur(t,n.shape),s=Mr(n,o,!0),i=ut(n,s),a=or(i),u=ft(a,o),l=Sr(u),c=J(F(s,l.shape),l);if(e){let p=xo(c.shape,o);return F(c,p)}return c}var bm=N({logSumExp_:qK});function KK(r,t){let e=v(r,\"a\",\"logicalAnd\",\"bool\"),n=v(t,\"b\",\"logicalAnd\",\"bool\");zt(e.shape,n.shape);let o={a:e,b:n};return _.runKernel(_a,o)}var Dr=N({logicalAnd_:KK});function jK(r){let e={x:v(r,\"x\",\"logicalNot\",\"bool\")};return _.runKernel(Ea,e)}var tu=N({logicalNot_:jK});function XK(r,t){let e=v(r,\"a\",\"logicalOr\",\"bool\"),n=v(t,\"b\",\"logicalOr\",\"bool\");zt(e.shape,n.shape);let o={a:e,b:n};return _.runKernel(Aa,o)}var wm=N({logicalOr_:XK});function YK(r,t){let e=v(r,\"a\",\"logicalXor\",\"bool\"),n=v(t,\"b\",\"logicalXor\",\"bool\");return zt(e.shape,n.shape),Dr(wm(r,t),tu(Dr(r,t)))}var ny=N({logicalXor_:YK});var oy=2147483648;function ZK(r,t,e=\"left\"){let n=v(r,\"sortedSequence\",\"searchSorted\"),o=v(t,\"values\",\"searchSorted\"),s=n.shape[n.shape.length-1],i=o.shape[o.shape.length-1],a=F(n,[-1,s]),u=F(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(Qt(u.shape)>=oy)throw new Error(`values tensor size must less than ${oy}`);if(a.shape[1]>=oy)throw new Error(`trailing dim_size must less than ${oy} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return _.runKernel(Xp,l,c)}var Ch=N({searchSorted_:ZK});function cE(r,t){return Ch(r,t,\"left\")}function JK(r,t,e,n,o){let s=v(r,\"x\",\"maxPool\"),i=1,a=s,u=!1;s.rank===3&&(u=!0,a=F(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),A(Er(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),Te(\"maxPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=_.runKernel(gs,l,c);return u?F(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var eu=N({maxPool_:JK});function QK(r,t=[1,1,1],e,n,o,s=\"NDHWC\"){let i=v(r,\"x\",\"maxPool3d\"),a=i,u=!1;i.rank===4&&(u=!0,a=F(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(a.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${a.rank}.`),A(s===\"NDHWC\",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Te(\"maxPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=_.runKernel(Rl,l,c);return u?F(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var sy=N({maxPool3d_:QK});function tj(r,t,e,n,o=!1){let i={x:v(r,\"x\",\"maxPoolWithArgmax\")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=_.runKernel(Wp,i,a);return{result:u[0],indexes:u[1]}}var pE=N({maxPoolWithArgmax_:tj});function ej(r,t){let e=v(r,\"a\",\"maximum\"),n=v(t,\"b\",\"maximum\");[e,n]=Xt(e,n),e.dtype===\"bool\"&&(e=tt(e,\"int32\"),n=tt(n,\"int32\")),zt(e.shape,n.shape);let o={a:e,b:n};return _.runKernel(hs,o)}var Tn=N({maximum_:ej});function rj(r,t=null,e=!1){let o={x:v(r,\"x\",\"mean\")},s={axis:t,keepDims:e};return _.runKernel(xs,o,s)}var ke=N({mean_:rj});function _e(r,t=\"float32\"){if(t===\"complex64\"){let n=_e(r,\"float32\"),o=_e(r,\"float32\");return Cn(n,o)}let e=Cp(Qt(r),t);return _.makeTensor(e,r,t)}function cr(r,t=\"float32\"){if(t===\"complex64\"){let n=cr(r,\"float32\"),o=_e(r,\"float32\");return Cn(n,o)}let e=Qd(Qt(r),t);return _.makeTensor(e,r,t)}function mE(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=v(r,\"x\",\"meshgrid\",r instanceof Lt?r.dtype:\"float32\");if(t===void 0)return[n];let o=v(t,\"y\",\"meshgrid\",t instanceof Lt?t.dtype:\"float32\"),s=Qt(n.shape),i=Qt(o.shape);return e===\"xy\"?(n=F(n,[1,-1]),o=F(o,[-1,1]),[Gt(cr([i,1],n.dtype),n),Gt(o,cr([1,s],o.dtype))]):(n=F(n,[-1,1]),o=F(o,[1,-1]),[Gt(n,cr([1,i],n.dtype)),Gt(cr([s,1],o.dtype),o)])}function nj(r,t){let e=v(r,\"a\",\"minimum\"),n=v(t,\"b\",\"minimum\");[e,n]=Xt(e,n),e.dtype===\"bool\"&&(e=tt(e,\"int32\"),n=tt(n,\"int32\")),zt(e.shape,n.shape);let o={a:e,b:n};return _.runKernel(bs,o)}var Ui=N({minimum_:nj});function oj(r,t,e){A(e===\"reflect\"||e===\"symmetric\",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${e}.`);let n=v(r,\"x\",\"mirrorPad\");if(n.rank===0)throw new Error(\"mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad\");A(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.\"),A(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 _.runKernel(ws,i,s)}var iy=N({mirrorPad_:oj});function sj(r,t){let e=v(r,\"a\",\"mod\"),n=v(t,\"b\",\"mod\");[e,n]=Xt(e,n);let o={a:e,b:n};return _.runKernel($a,o)}var ay=N({mod_:sj});function ij(r,t=null,e=!1){r=v(r,\"x\",\"moments\");let n=ur(t,r.shape),o=ke(r,n,e),s=o.shape;e||(s=xo(o.shape,n));let i=Ht(ut(tt(r,\"float32\"),F(o,s))),a=ke(i,n,e);return{mean:o,variance:a}}var oc=N({moments_:ij});function aj(r,t,e,n){let o=v(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?F(o,[1,-1]):o},l={numSamples:t,seed:e,normalized:n},c=_.runKernel(Up,u,l);return i===1?F(c,[c.size]):c}var dE=N({multinomial_:lj});function uj(r,t){let e=v(r,\"a\",\"notEqual\",\"string_or_numeric\"),n=v(t,\"b\",\"notEqual\",\"string_or_numeric\");[e,n]=Xt(e,n),zt(e.shape,n.shape);let o={a:e,b:n};return _.runKernel(Da,o)}var qs=N({notEqual_:uj});function cj(r){let e={x:v(r,\"x\",\"onesLike\")};return _.runKernel(xi,e)}var br=N({onesLike_:cj});function pj(r,t){let e=v(r,\"v1\",\"outerProduct\"),n=v(t,\"v2\",\"outerProduct\");A(e.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${e.rank} and ${n.rank}.`);let o=F(e,[-1,1]),s=F(n,[1,-1]);return Gt(o,s)}var hE=N({outerProduct_:pj});function mj(r,t,e=0){let n=v(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 _.runKernel(Is,s,o)}var cn=N({pad_:mj});function fj(r,t,e=0){return A(t.length===2,()=>\"Invalid number of paddings. Must be length of 2.\"),cn(r,[t],e)}var gE=N({pad1d_:fj});function dj(r,t,e=0){return A(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 xE=N({pad2d_:dj});function hj(r,t,e=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.\"),cn(r,t,e)}var yE=N({pad3d_:hj});function gj(r,t,e=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.\"),cn(r,t,e)}var bE=N({pad4d_:gj});function xj(r,t,e){let n=v(r,\"x\",\"spaceToBatchND\");A(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),A(e.length===t.length,()=>`paddings.shape[0] ${e.length} must be equal to [blockShape] ${t.length}`),A(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 _.runKernel(vi,o,s)}var ru=N({spaceToBatchND_:xj});function yj(r,t,e,n,o,s,i){o==null&&(o=[1,1]),s==null&&(s=1),n===0&&(n=\"valid\");let a=v(r,\"x\",\"maxPool\"),u=a,l=!1;a.rank===3&&(l=!0,u=F(a,[1,a.shape[0],a.shape[1],a.shape[2]])),A(Er(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=aS(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n===\"same\"?m=wj([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=bj([c.inHeight,c.inWidth],p,m),g=f?n:\"valid\",x=f?u:ru(u,p,d),w=(e===\"avg\"?()=>Xl(x,t,s,g,i):()=>eu(x,t,s,g,i))(),C=f?w:Yl(w,p,h);return l?F(C,[C.shape[1],C.shape[2],C.shape[3]]):C}function bj(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 wj(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 ly=N({pool_:yj});function Cj(r,t){let e=v(r,\"x\",\"prelu\"),n=v(t,\"alpha\",\"prelu\"),o={x:e,alpha:n};return _.runKernel(Ts,o)}var nu=N({prelu_:Cj});function vj(r,t=null,e=!1){let n=v(r,\"x\",\"prod\");n.dtype===\"bool\"&&(n=tt(n,\"int32\"));let o={x:n},s={axis:t,keepDims:e};return _.runKernel(Ns,o,s)}var uy=N({prod_:vj});function Ij(r,t,e,n,o){let s=v(r,\"shape\",\"raggedTensorToTensor\",\"int32\"),i=v(t,\"values\",\"raggedTensorToTensor\"),a=v(e,\"defaultValue\",\"raggedTensorToTensor\",i.dtype),u=n.map((p,m)=>v(p,`tensors${m}`,\"raggedTensorToTensor\",\"int32\")),l={shape:s,values:i,defaultValue:a,rowPartitionTensors:u},c={rowPartitionTypes:o};return _.runKernel(Hp,l,c)}var wE=N({raggedTensorToTensor_:Ij});function Sj(r,t,e){let n=Qt(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}},py=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=fy.alea(s.toString()),this.randn=new ic(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=fy.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function $j(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 py(t,e,n,o),i=vt(r,n);for(let a=0;a`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),pr(t,0)}var BE=N({reverse1d_:zj});function Bj(r,t){let e=v(r,\"x\",\"reverse\");return A(e.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${e.rank}.`),pr(e,t)}var VE=N({reverse2d_:Bj});function Vj(r,t){let e=v(r,\"x\",\"reverse\");return A(e.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${e.rank}.`),pr(e,t)}var GE=N({reverse3d_:Vj});function Gj(r,t){let e=v(r,\"x\",\"reverse\");return A(e.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${e.rank}.`),pr(e,t)}var WE=N({reverse4d_:Gj});function Wj(r){let e={x:v(r,\"x\",\"round\")};return _.runKernel(Ds,e)}var vm=N({round_:Wj});function Uj(r){let e={x:v(r,\"x\",\"rsqrt\",\"float32\")};return _.runKernel(Rs,e)}var Im=N({rsqrt_:Uj});function Hj(r){let e={x:v(r,\"x\",\"selu\")};return _.runKernel(Ma,e)}var Sm=N({selu_:Hj});function qj(r,t,e,n,o,s=[1,1],i=\"NHWC\"){let a=v(r,\"x\",\"separableConv2d\"),u=v(t,\"depthwiseFilter\",\"separableConv2d\"),l=v(e,\"pointwiseFilter\",\"separableConv2d\"),c=a,p=!1;if(a.rank===3&&(p=!0,c=F(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\");A(c.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`),A(u.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${u.rank}.`),A(l.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${l.shape[0]}.`),A(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];A(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=zi(c,u,n,o,i,s),g=Sn(d,l,1,\"valid\",i);return p?F(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var Tm=N({separableConv2d_:qj});async function Kj(r,t){let e=v(r,\"x\",\"setdiff1d\"),n=v(t,\"y\",\"setdiff1d\");A(e.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${e.dtype}) and y (${n.dtype}).`),A(e.rank===1,()=>`x should be 1D tensor, but got x (${e.shape}).`),A(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`),Ot(n,[t],[e])}var _m=N({slice1d_:Zj});function Jj(r,t,e){let n=v(r,\"x\",\"slice2d\");return A(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var Ih=N({slice2d_:Jj});function Qj(r,t,e){let n=v(r,\"x\",\"slice3d\");return A(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var Em=N({slice3d_:Qj});function t6(r,t,e){let n=v(r,\"x\",\"slice4d\");return A(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var lc=N({slice4d_:t6});function e6(r,t=-1){let e=v(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 _.runKernel(Ms,n,o)}var su=N({softmax_:e6});function r6(r){A(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return _.runKernel(Pp,t)}var iu=N({fft_:r6});function n6(r){A(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return _.runKernel(Lp,t)}var Qa=N({ifft_:n6});function o6(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=F(r,[e,t]);n=Qa(o)}else{let o=[e,2*(t-1)],s=F(Za(r),[e,t]),i=F(jl(r),[e,t]),a=pr(Ot(s,[0,1],[e,t-2]),1),u=O(pr(Ot(i,[0,1],[e,t-2]),1),mt(-1)),l=se([s,a],1),c=se([i,u],1),p=F(Cn(l,c),[o[0],o[1]]);n=Qa(p)}if(n=Za(n),r.rank===3&&r.shape[0]!==0){let o=n,s=r.shape[0];n=F(n,[s,n.shape[0]/s,n.shape[1]]),o.dispose()}return n}var Am=N({irfft_:o6});function s6(r,t,e=0){let o={x:v(r,\"x\",\"split\")},s={numOrSizeSplits:t,axis:e};return _.runKernel(Ii,o,s)}var mr=N({split_:s6});function i6(r,t){A(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=Ot(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=se([r,_e(d)],r.shape.length-1),e=t}else o=r;let s=St(o),i=F(Cn(o,s),[n,e]),a=iu(i),u=Math.floor(e/2)+1,l=Za(a),c=jl(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,F(Cn(p[0],m[0]),f)}var au=N({rfft_:i6});function a6(r,t){let e=v(r,\"a\",\"squaredDifference\"),n=v(t,\"b\",\"squaredDifference\");[e,n]=Xt(e,n),zt(e.shape,n.shape);let o={a:e,b:n},s={};return _.runKernel(zs,o,s)}var $m=N({squaredDifference_:a6});function l6(r,t){let e=v(r,\"x\",\"squeeze\",\"string_or_numeric\");return F(e,m0(e.shape,t).newShape)}var Mn=N({squeeze_:l6});function u6(r,t=0){let e=ja(r,\"tensors\",\"stack\",\"string_or_numeric\");A(e.length>=1,()=>\"Pass at least one tensor to tf.stack\"),e.length>0&&A(t<=e[0].rank,()=>\"Axis must be <= rank of the tensor\");let n=e,o={axis:t};return _.runKernel(yi,n,o)}var sr=N({stack_:u6});function c6(r,t=0){let n={x:v(r,\"x\",\"step\")},o={alpha:t};return _.runKernel(co,n,o)}var yo=N({step_:c6});function p6(r,t,e,n,o=0,s=0,i=0,a=0,u=0){let c={x:v(r,\"x\",\"stridedSlice\",\"string_or_numeric\")},p={begin:t,end:e,strides:n,beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};return _.runKernel(Wa,c,p)}var gy=N({stridedSlice_:p6});function m6(r){let e={x:v(r,\"x\",\"tan\",\"float32\")};return _.runKernel(Vs,e)}var xy=N({tan_:m6});function Ve(r,t){Kn(r);let e=Pr(r,t);if(e.length!==1)throw new Error(\"tensor1d() requires values to be a flat/TypedArray\");return sn(r,null,e,t)}function Ks(r,t,e){if(Kn(r),t!=null&&t.length!==2)throw new Error(\"tensor2d() requires shape to have two numbers\");let n=Pr(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 sn(r,t,n,e)}function HE(r,t,e){if(Kn(r),t!=null&&t.length!==4)throw new Error(\"tensor4d() requires shape to have four numbers\");let n=Pr(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 sn(r,t,n,e)}function qE(r,t,e){if(Kn(r),t!=null&&t.length!==5)throw new Error(\"tensor5d() requires shape to have five numbers\");let n=Pr(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 sn(r,t,n,e)}function KE(r,t,e){if(Kn(r),t!=null&&t.length!==6)throw new Error(\"tensor6d() requires shape to have six numbers\");let n=Pr(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,sn(r,t,n,e)}function f6(r,t=1,e=!0){let n=v(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]=_.runKernel(Ua,s,i);return{values:a,indices:u}}var yy=N({topk_:f6});function d6(r,t=0,e=1,n,o){if(n!=null&&n===\"bool\")throw new Error(\"Unsupported data type $ { dtype }\");let s=new ic(t,e,n,!0,o),i=vt(r,n);for(let a=0;a0,()=>\"The input tensor must be at least 1D\");let n={x:e},o={axis:t},[s,i]=_.runKernel(Zp,n,o);return{values:s,indices:i}}var by=N({unique_:h6});function g6(r,t,e){let n=v(r,\"x\",\"unsortedSegmentSum\"),o=v(t,\"segmentIds\",\"unsortedSegmentSum\",\"int32\");A(na(e),()=>\"numSegments must be of dtype int\");let s={x:n,segmentIds:o},i={numSegments:e};return _.runKernel(Gl,s,i)}var Rm=N({unsortedSegmentSum_:g6});function x6(r,t=0){let e=v(r,\"x\",\"unstack\",\"string_or_numeric\");A(t>=-e.shape.length&&t`Axis = ${t} is not in [-${e.shape.length}, ${e.shape.length})`);let n={value:e},o={axis:t};return _.runKernel(Si,n,o)}var Tr=N({unstack_:x6});function jE(r,t){return Ch(r,t,\"right\")}function wy(r,t=!0,e,n){return _.makeVariable(r,t,e,n)}function Cy(r,t){let e=[];for(let s=0;s0,()=>\"mask cannot be scalar\"),Fe(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=ut(u,a),c=O(ut(i,s),l);if(o){A(n!=null,()=>\"When using zeroDebias: true, step is required.\");let p=v(n,\"step\",\"movingAverage\");c=ct(c,ut(u,ln(a,p)))}return J(s,c)}var v6=N({movingAverage_:C6});function I6(r,t,e){let n=v(r,\"indices\",\"scatterND\",\"int32\"),o=v(t,\"updates\",\"scatterND\");bx(o,n,e);let s={indices:n,updates:o},i={shape:e};return _.runKernel(La,s,i)}var S6=N({scatterND_:I6});function XE(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 N6(r,t,e,n=0){let o=v(r,\"sparseIndices\",\"sparseToDense\",\"int32\"),s=v(t,\"sparseValues\",\"sparseToDense\",\"string_or_numeric\"),i=v(n,\"defaultValue\",\"sparseToDense\",s.dtype);XE(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return _.runKernel(Yp,a,u)}var k6=N({sparseToDense_:N6});function _6(r,t){let e=v(t,\"indices\",\"gatherND\",\"int32\"),o={params:v(r,\"x\",\"gatherND\",\"string_or_numeric\"),indices:e};return _.runKernel(wa,o)}var E6=N({gatherND_:_6});function YE(r,t){if(t==null)return r.shape.slice();if(Rn(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.`),A(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return r instanceof Lt?o.clone():o;let s=YE(o,e),i=1-t,a=ct(Gi(J(Hi(s,0,1,\"float32\",n),i)),i);return O(o,a)}var bS=N({dropout_:A6});function wS(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function Sh(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}`),A(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}`),Fe(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];A(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=f0(\"bool\",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hZE,depthwiseConv2d:()=>JE,matMul:()=>QE});function R6(r,t,e,n,o,s=\"NHWC\",i){let a=r;r.rank===3&&(a=F(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=F(t,[1,t.shape[0],t.shape[1],t.shape[2]])),A(a.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),A(u.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${u.shape}.`),A(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];A(l===e[2],()=>`Error in conv2dDerFilter: depth of input ${l}) must match input depth in filter (${e[2]}.`),A(c===e[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${e[3]}).`),Te(\"conv2dDerFilter\",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return _.runKernel(kp,p,m)}var Fm=N({conv2DBackpropFilter_:R6});function uc(r,t,e){if(e==null||e===\"linear\")return r;if(e===\"relu\")return O(r,yo(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function cc(r,t){let e=t,n=ye(r.shape,t.shape);return n.length>0&&(e=ft(e,n)),F(e,r.shape)}function pc(r,t,e,n){if(t===\"linear\")return r;if(t===\"relu\")return Rr(r);if(t===\"elu\")return Bi(r);if(t===\"relu6\")return Cm(r);if(t===\"prelu\")return nu(r,e);if(t===\"leakyrelu\")return Jl(r,n);if(t===\"sigmoid\")return Kr(r);throw new Error(`Unknown fused activation ${t}.`)}var mc=(r,t)=>!(r>0)||t===\"linear\";function F6({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\",mc(_.state.gradientDepth,u)===!1){A(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 E=Sn(r,t,e,n,o,s,i);return a!=null&&(E=J(E,a)),pc(E,u,l,c)}let p=v(r,\"x\",\"conv2d\",\"float32\"),m=v(t,\"filter\",\"conv2d\",\"float32\"),f=p,d=!1;p.rank===3&&(d=!0,f=F(p,[1,p.shape[0],p.shape[1],p.shape[2]])),A(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),A(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),Te(\"fused conv2d\",n,i);let h=o===\"NHWC\"?f.shape[3]:f.shape[1];A(m.shape[2]===h,()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${m.shape[2]}.`),A(Er(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=tc(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=v(a,\"bias\",\"fused conv2d\"),[x]=Xt(x,p),o===\"NHWC\"?zt(g.outShape,x.shape):(A(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}.`),A(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 E=l.shape;if(A(E.length<=1||E.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-${E.length}.`),E.length===1)A(E[0]===1||E[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the number of output channels (${g.outChannels}).`);else if(E.length===3)try{zt(E,g.outShape)}catch($){let D=`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(D)}b=v(l,\"prelu weights\",\"fused conv2d\")}let w=(E,$)=>{A(o===\"NHWC\",()=>`Error in gradient of fused conv2D: got dataFormat of ${o} but only NHWC is currently supported.`);let[D,P,M,W]=$,H=uc(E,M,u);A(Jn(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let q=fm(P.shape,H,D,e,n),X=Fm(P,H,D.shape,e,n),j=[q,X];if(W!=null){let Z=cc(W,H);j.push(Z)}return j},C={x:f,filter:m,bias:x,preluActivationWeights:b},T={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?un(($,D,P)=>{let M=_.runKernel(ki,C,T);return P([D,$,M]),d&&(M=F(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:w}})(f,m):un(($,D,P,M)=>{let W=_.runKernel(ki,C,T);return M([D,$,W,P]),d&&(W=F(W,[W.shape[1],W.shape[2],W.shape[3]])),{value:W,gradFunc:w}})(f,m,x)}var ZE=N({fusedConv2d_:F6});function O6(r,t,e,n,o,s=[1,1],i){let a=r;r.rank===3&&(a=F(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=F(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 _.runKernel($p,l,c)}var Iy=N({depthwiseConv2dNativeBackpropFilter_:O6});function P6(r,t,e,n,o,s=[1,1],i){let a=t,u=!1;t.rank===3&&(u=!0,a=F(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=_.runKernel(Dp,l,c);return u?F(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Sy=N({depthwiseConv2dNativeBackpropInput_:P6});function L6({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(mc(_.state.gradientDepth,u)===!1){let T=zi(r,t,e,n,o,s,i);return a!=null&&(T=J(T,a)),pc(T,u,l,c)}let p=v(r,\"x\",\"depthwiseConv2d\",\"float32\"),m=v(t,\"filter\",\"depthwiseConv2d\",\"float32\"),f=p,d=!1;p.rank===3&&(d=!0,f=F(p,[1,p.shape[0],p.shape[1],p.shape[2]])),A(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),A(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),A(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]),A(Er(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),Te(\"fused depthwiseConv2d\",n,i);let h=tc(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=v(a,\"bias\",\"fused conv2d\"),[g]=Xt(g,p),zt(h.outShape,g.shape));let x;l!=null&&(x=v(l,\"prelu weights\",\"fused depthwiseConv2d\"));let b=(T,E)=>{A(Jn(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[$,D,P,M]=E,W=uc(T,P,u),H=Sy(D.shape,W,$,e,n,s,i),q=Iy(D,W,$.shape,e,n,s,i);if(M!=null){let X=cc(g,W);return[H,q,X]}return[H,q]},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((E,$,D)=>{let P=_.runKernel(_i,w,C);return D([$,E,P]),d&&(P=F(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m):un((E,$,D,P)=>{let M=_.runKernel(_i,w,C);return P([$,E,M,D]),d&&(M=F(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:b}})(f,m,g)}var JE=N({fusedDepthwiseConv2d_:L6});function M6({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s=\"linear\",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(mc(_.state.gradientDepth,s)===!1){let W=Gt(r,t,e,n);return o!=null&&(W=J(W,o)),pc(W,s,i,a)}let u=v(r,\"a\",\"fused matMul\"),l=v(t,\"b\",\"fused matMul\");[u,l]=Xt(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=Qt(d),x=Qt(h);A(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=zt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),C=e?F(u,[g,c,m]):F(u,[g,m,c]),T=n?F(l,[x,f,p]):F(l,[x,p,f]),E;o!=null&&(E=v(o,\"bias\",\"fused matMul\"),[E]=Xt(E,u),zt(w,E.shape));let $;i!=null&&($=v(i,\"prelu weights\",\"fused matMul\"));let D=(W,H)=>{let[q,X,j,Z]=H,et=uc(F(W,j.shape),j,s),K,ot;if(!e&&!n?(K=Gt(et,X,!1,!0),ot=Gt(q,et,!0,!1)):!e&&n?(K=Gt(et,X,!1,!1),ot=Gt(et,q,!0,!1)):e&&!n?(K=Gt(X,et,!1,!0),ot=Gt(q,et,!1,!1)):(K=Gt(X,et,!0,!0),ot=Gt(et,q,!0,!0)),o!=null){let st=cc(Z,et);return[K,ot,st]}else return[K,ot]},P={a:C,b:T,bias:E,preluActivationWeights:$},M={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?un((H,q,X)=>{let j=_.runKernel(Ni,P,M);return X([H,q,j]),{value:F(j,w),gradFunc:D}})(C,T):un((H,q,X,j)=>{let Z=_.runKernel(Ni,P,M);return j([H,q,Z,X]),{value:F(Z,w),gradFunc:D}})(C,T,E)}var QE=N({fusedMatMul_:M6});function z6(r){return Sh(r,.54,.46)}var tA=N({hammingWindow_:z6});function B6(r){return Sh(r,.5,.5)}var Ty=N({hannWindow_:B6});function V6(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Ot(r,s,t)),s+=e;if(n)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),A(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${l},4] but had shape ${a.shape}.`),A(u.rank===1&&u.shape[0]===l,()=>`Error in cropAndResize: boxInd must be have size [${l}] but had shape ${a.shape}.`),A(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),A(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),A(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 _.runKernel(da,c,p)}var rA=N({cropAndResize_:W6});function U6(r){let t=v(r,\"image\",\"flipLeftRight\",\"float32\");A(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let e={image:t};return _.runKernel(ba,e,{})}var nA=N({flipLeftRight_:U6});function H6(r){let t=v(r,\"image\",\"grayscaleToRGB\"),e=t.rank-1,n=t.shape[e];A(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),A(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,$r(t,o)}var oA=N({grayscaleToRGB_:H6});function q6(r,t,e=0,n=.5){let o=v(r,\"image\",\"rotateWithOffset\",\"float32\");A(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 _.runKernel(qa,s,i)}var sA=N({rotateWithOffset_:q6});function bo(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),A(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),A(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),A(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.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:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s}}function K6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=v(r,\"boxes\",\"nonMaxSuppression\",\"float32\"),i=v(t,\"scores\",\"nonMaxSuppression\",\"float32\"),a=bo(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return _.runKernel(Ra,{boxes:s,scores:i},u)}var iA=N({nonMaxSuppression_:K6});function aA(r,t,e){let n=j6(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function j6(r,t,e){return Y6(r,t,e||X6)}function X6(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 ky(r,t,e,n,o){return CS(r,t,e,n,o,0)}function _y(r,t,e,n,o,s){return CS(r,t,e,n,o,0,!1,s,!0)}function Ey(r,t,e,n,o,s){return CS(r,t,e,n,o,s,!0)}function CS(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(lA);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;--T){let E=Z6(r,b,p[T]);if(E>=n){C=!0;break}if(g.score=g.score*J6(n,c,E),g.score<=o)break}g.suppressBeginIndex=p.length,C||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&aA(l,g,lA))}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 Z6(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 J6(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function lA(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function Q6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=v(r,\"boxes\",\"nonMaxSuppressionAsync\"),i=v(t,\"scores\",\"nonMaxSuppressionAsync\"),a=bo(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}=ky(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Ve(p,\"int32\")}var uA=Q6;function t5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=v(r,\"boxes\",\"nonMaxSuppression\"),a=v(t,\"scores\",\"nonMaxSuppression\"),u=bo(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=_.runKernel(Oa,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var cA=N({nonMaxSuppressionWithScore_:t5});async function e5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=v(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=v(t,\"scores\",\"nonMaxSuppressionAsync\"),u=bo(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}=Ey(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Ve(m,\"int32\"),selectedScores:Ve(f)}}var pA=e5;function r5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=v(r,\"boxes\",\"nonMaxSuppression\"),a=v(t,\"scores\",\"nonMaxSuppression\"),u=bo(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=_.runKernel(Fa,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var mA=N({nonMaxSuppressionPadded_:r5});async function n5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=v(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=v(t,\"scores\",\"nonMaxSuppressionAsync\"),u=bo(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}=_y(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Ve(d,\"int32\"),validOutputs:mt(h,\"int32\")}}var fA=n5;function o5(r,t,e=!1,n=!1){let o=v(r,\"images\",\"resizeBilinear\");A(o.rank===3||o.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${o.rank}.`),A(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),A(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=F(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=_.runKernel(Es,a,u);return i?F(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var Ay=N({resizeBilinear_:o5});function s5(r,t,e=!1,n=!1){let o=v(r,\"images\",\"resizeNearestNeighbor\");A(o.rank===3||o.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${o.rank}.`),A(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),A(o.dtype===\"float32\"||o.dtype===\"int32\",()=>\"`images` must have `int32` or `float32` as dtype\"),A(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=F(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=_.runKernel(_s,a,u);return i?F(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var $y=N({resizeNearestNeighbor_:s5});function i5(r,t=\"binary\",e=!1,n=.5){let o=v(r,\"image\",\"threshold\"),s=.2989,i=.587,a=.114,u=o.shape[0]*o.shape[1],l=O(Ve([n]),255),c,p,m,f;if(A(o.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${o.rank}.`),A(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]}.`),A(o.dtype===\"int32\"||o.dtype===\"float32\",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${o.dtype}.`),A(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=O(c,s),x=O(p,i),b=O(m,a);f=J(J(g,x),b)}else f=r;if(t===\"otsu\"){let g=Fx(tt(vm(f),\"int32\"),vr([]),256);l=a5(g,u)}let d=e?Ln(f,l):Xe(f,l);return tt(O(d,255),\"int32\")}function a5(r,t){let e=Ve([-1]),n=Ve([0]),o=Ve([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}.`),A(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\"),A(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 _.runKernel(Ha,u,l)}var hA=N({transform_:l5});function u5(r,t,e){A(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`);let n=v(r,\"a\",\"bandPart\");A(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=F(ou(0,s,1,\"int32\"),[-1,1]),u=ou(0,i,1,\"int32\"),l=ut(a,u),c=Dr(Ln(l,mt(+t,\"int32\")),Pn(l,mt(-e,\"int32\"))),p=_e([s,i],n.dtype);return F(sr(Tr(F(n,[-1,s,i])).map(m=>De(c,m,p))),o)}var gA=N({bandPart_:u5});function c5(r){let t;if(Array.isArray(r)){t=!1,A(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]));A(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 yA(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=Tr(F(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=yA(u,t);o.push(l),s.push(c)});let i=F(sr(o,0),r.shape),a=F(sr(s,0),r.shape);return[i,a]}}function yA(r,t=!1){return _.tidy(()=>{A(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=nc(e),s=an(r),i=Ks([[1]],[1,1]),a=an(i),u=e>=n?n:e;for(let l=0;l{let f=Ot(s,[l,l],[e-l,1]),d=Ja(f),h=Ot(s,[l,l],[1,1]),g=De(Xe(h,0),Ks([[-1]]),Ks([[1]])),x=ut(h,O(g,d)),b=ct(f,x);b.shape[0]===1?a=an(i):a=se([i,Ot(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Yt(ct(Gt(g,x),d)),C=Ot(s,[l,0],[e-l,n]),T=O(w,a),E=Mt(a);if(l===0)s=ut(C,Gt(T,Gt(E,C)));else{let P=ut(C,Gt(T,Gt(E,C)));s=se([Ot(s,[0,0],[l,n]),P],0)}let $=Mt(T),D=Ot(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=ut(D,Gt(Gt(D,a),$));else{let P=ut(D,Gt(Gt(D,a),$));o=se([Ot(o,[0,0],[e,l]),P],1)}return[a,s,o]}),_t([c,p,m])}return!t&&e>n&&(o=Ot(o,[0,0],[e,n]),s=Ot(s,[0,0],[n,n])),[o,s]})}var bA=N({qr_:p5});var Ye;(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\"})(Ye||(Ye={}));function m5(r,t,e=Ye.SUM_BY_NONZERO_WEIGHTS){let n=v(r,\"losses\",\"computeWeightedLoss\"),o=null;t!=null&&(o=v(t,\"weights\",\"computeWeightedLoss\"));let s=o==null?n:O(n,o);if(e===Ye.NONE)return s;if(e===Ye.SUM)return ft(s);if(e===Ye.MEAN){if(o==null)return ke(s);{let i=n.size/o.size,a=ct(ft(s),ft(o));return i>1?ct(a,mt(i)):a}}if(e===Ye.SUM_BY_NONZERO_WEIGHTS){if(o==null)return ct(ft(s),mt(n.size));{let i=O(o,cr(n.shape)),a=tt(ft(qs(i,mt(0))),\"float32\");return ct(ft(s),a)}}throw Error(`Unknown reduction: ${e}`)}var zr=N({computeWeightedLoss_:m5});function f5(r,t,e,n=Ye.SUM_BY_NONZERO_WEIGHTS){let o=v(r,\"labels\",\"absoluteDifference\"),s=v(t,\"predictions\",\"absoluteDifference\"),i=null;e!=null&&(i=v(e,\"weights\",\"absoluteDifference\")),Fe(o.shape,s.shape,\"Error in absoluteDifference: \");let a=$e(ut(o,s));return zr(a,i,n)}var wA=N({absoluteDifference_:f5});function d5(r,t,e,n,o=Ye.SUM_BY_NONZERO_WEIGHTS){let s=v(r,\"labels\",\"cosineDistance\"),i=v(t,\"predictions\",\"cosineDistance\"),a=null;n!=null&&(a=v(n,\"weights\",\"cosineDistance\")),Fe(s.shape,i.shape,\"Error in cosineDistance: \");let u=mt(1),l=ut(u,ft(O(s,i),e,!0));return zr(l,a,o)}var CA=N({cosineDistance_:d5});function h5(r,t,e,n=Ye.SUM_BY_NONZERO_WEIGHTS){let o=v(r,\"labels\",\"hingeLoss\"),s=v(t,\"predictions\",\"hingeLoss\"),i=null;e!=null&&(i=v(e,\"weights\",\"hingeLoss\")),Fe(o.shape,s.shape,\"Error in hingeLoss: \");let a=mt(1);o=ut(O(mt(2),o),a);let u=Rr(ut(a,O(o,s)));return zr(u,i,n)}var vA=N({hingeLoss_:h5});function g5(r,t,e,n=1,o=Ye.SUM_BY_NONZERO_WEIGHTS){let s=v(r,\"labels\",\"huberLoss\"),i=v(t,\"predictions\",\"huberLoss\"),a=null;e!=null&&(a=v(e,\"weights\",\"huberLoss\")),Fe(s.shape,i.shape,\"Error in huberLoss: \");let u=mt(n),l=$e(ut(i,s)),c=Ui(l,u),p=ut(l,c),m=J(O(mt(.5),Ht(c)),O(u,p));return zr(m,a,o)}var IA=N({huberLoss_:g5});function x5(r,t,e,n=1e-7,o=Ye.SUM_BY_NONZERO_WEIGHTS){let s=v(r,\"labels\",\"logLoss\"),i=v(t,\"predictions\",\"logLoss\"),a=null;e!=null&&(a=v(e,\"weights\",\"logLoss\")),Fe(s.shape,i.shape,\"Error in logLoss: \");let u=mt(1),l=mt(n),c=Yt(O(s,Sr(J(i,l)))),p=O(ut(u,s),Sr(J(ut(u,i),l))),m=ut(c,p);return zr(m,a,o)}var SA=N({logLoss_:x5});function y5(r,t,e,n=Ye.SUM_BY_NONZERO_WEIGHTS){let o=v(r,\"labels\",\"meanSquaredError\"),s=v(t,\"predictions\",\"meanSquaredError\"),i=null;e!=null&&(i=v(e,\"weights\",\"meanSquaredError\")),Fe(o.shape,s.shape,\"Error in meanSquaredError: \");let a=$m(o,s);return zr(a,i,n)}var TA=N({meanSquaredError_:y5});function b5(r,t){let e=v(r,\"labels\",\"sigmoidCrossEntropyWithLogits\"),n=v(t,\"logits\",\"sigmoidCrossEntropyWithLogits\");Fe(e.shape,n.shape,\"Error in sigmoidCrossEntropyWithLogits: \");let o=Rr(n),s=O(n,e),i=Ql(or(Yt($e(n))));return J(ut(o,s),i)}function w5(r,t,e,n=0,o=Ye.SUM_BY_NONZERO_WEIGHTS){let s=v(r,\"multiClassLabels\",\"sigmoidCrossEntropy\"),i=v(t,\"logits\",\"sigmoidCrossEntropy\"),a=null;if(e!=null&&(a=v(e,\"weights\",\"sigmoidCrossEntropy\")),Fe(s.shape,i.shape,\"Error in sigmoidCrossEntropy: \"),n>0){let l=mt(n),c=mt(1),p=mt(.5);s=J(O(s,ut(c,l)),O(p,l))}let u=b5(s,i);return zr(u,a,o)}var NA=N({sigmoidCrossEntropy_:w5});function C5(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=bm(s,[e],!0),l=ut(tt(s,\"float32\"),u);i([o,l]);let c=Yt(O(l,o));return{value:ft(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=xo(f.shape,[e]);return[O(F(f,x),ut(tt(h,\"float32\"),or(g))),O(F(f,x),ut(or(g),tt(h,\"float32\")))]}}})(r,t)}function v5(r,t,e,n=0,o=Ye.SUM_BY_NONZERO_WEIGHTS){let s=v(r,\"onehotLabels\",\"softmaxCrossEntropy\"),i=v(t,\"logits\",\"softmaxCrossEntropy\"),a=null;if(e!=null&&(a=v(e,\"weights\",\"softmaxCrossEntropy\")),Fe(s.shape,i.shape,\"Error in softmaxCrossEntropy: \"),n>0){let l=mt(n),c=mt(1),p=mt(s.shape[1]);s=J(O(s,ut(c,l)),ct(l,p))}let u=C5(s,i);return zr(u,a,o)}var kA=N({softmaxCrossEntropy_:v5});function I5(r,t,e,n){let o=v(r,\"indices\",\"sparseFillEmptyRows\",\"int32\"),s=v(t,\"values\",\"sparseFillEmptyRows\"),i=v(e,\"denseShape\",\"sparseFillEmptyRows\",\"int32\"),a=v(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=_.runKernel(Ol,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var _A=N({sparseFillEmptyRows_:I5});function S5(r,t,e){let n=v(r,\"inputIndices\",\"sparseReshape\",\"int32\"),o=v(t,\"inputShape\",\"sparseReshape\",\"int32\"),s=v(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=_.runKernel(Ga,i);return{outputIndices:a[0],outputShape:a[1]}}var EA=N({sparseReshape_:S5});function T5(r,t,e){let n=v(r,\"data\",\"sparseSegmentMean\"),o=v(t,\"indices\",\"sparseSegmentMean\",\"int32\"),s=v(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 _.runKernel(Pl,i)}var AA=N({sparseSegmentMean_:T5});function N5(r,t,e){let n=v(r,\"data\",\"sparseSegmentSum\"),o=v(t,\"indices\",\"sparseSegmentSum\",\"int32\"),s=v(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 _.runKernel(Ll,i)}var $A=N({sparseSegmentSum_:N5});function k5(r,t,e,n,o,s,i,a){let u=v(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=v(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=_.runKernel(zl,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var DA=N({stringNGrams_:k5});function _5(r,t,e=!0){let n=v(r,\"input\",\"stringSplit\",\"string\"),o=v(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=_.runKernel(Bl,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var RA=N({stringSplit_:_5});function E5(r,t){let e=v(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 _.runKernel(Vl,o,n)}var FA=N({stringToHashBucketFast_:E5});var A5={fft:iu,ifft:Qa,rfft:au,irfft:Am},$5={hammingWindow:tA,hannWindow:Ty,frame:Ny,stft:eA},uu={flipLeftRight:nA,grayscaleToRGB:oA,resizeNearestNeighbor:$y,resizeBilinear:Ay,rotateWithOffset:sA,cropAndResize:rA,nonMaxSuppression:iA,nonMaxSuppressionAsync:uA,nonMaxSuppressionWithScore:cA,nonMaxSuppressionWithScoreAsync:pA,nonMaxSuppressionPadded:mA,nonMaxSuppressionPaddedAsync:fA,threshold:dA,transform:hA},vS={bandPart:gA,gramSchmidt:xA,qr:bA},D5={absoluteDifference:wA,computeWeightedLoss:zr,cosineDistance:CA,hingeLoss:vA,huberLoss:IA,logLoss:SA,meanSquaredError:TA,sigmoidCrossEntropy:NA,softmaxCrossEntropy:kA},R5={sparseFillEmptyRows:_A,sparseReshape:EA,sparseSegmentMean:AA,sparseSegmentSum:$A},F5={stringNGrams:DA,stringSplit:RA,stringToHashBucketFast:FA};var Br=class extends bh{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 _t(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 ty(t,e)}dispose(){this.iterations_!=null&&_t(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(Br,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var cu=class extends Br{constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=_.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=_.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:G(()=>St(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:G(()=>St(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;G(()=>{let c=J(O(u,this.rho),O(Ht(a),1-this.rho)),p=O(ct(Ne(J(l,this.epsilon)),Ne(J(u,this.epsilon))),a),m=J(O(l,this.rho),O(Ht(p),1-this.rho));u.assign(c),l.assign(m);let f=J(O(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(_t(this.accumulatedGrads.map(t=>t.variable)),_t(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\";In(cu);var pu=class extends Br{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=_.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:G(()=>Vi(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;G(()=>{let u=J(a,Ht(i));a.assign(u);let l=J(O(ct(i,Ne(J(u,_.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&_t(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\";In(pu);var mu=class extends Br{constructor(t,e,n,o=null){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],G(()=>{this.accBeta1=mt(e).variable(),this.accBeta2=mt(n).variable()}),o==null&&(this.epsilon=_.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);G(()=>{let n=ut(1,this.accBeta1),o=ut(1,this.accBeta2);e.forEach((s,i)=>{let a=_.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:G(()=>St(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:G(()=>St(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=J(O(c,this.beta1),O(l,1-this.beta1)),f=J(O(p,this.beta2),O(Ht(l),1-this.beta2)),d=ct(m,n),h=ct(f,o);c.assign(m),p.assign(f);let g=J(O(ct(d,J(Ne(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign(O(this.accBeta1,this.beta1)),this.accBeta2.assign(O(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&_t(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&_t(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),G(()=>{this.accBeta1.assign(ln(this.beta1,this.iterations_+1)),this.accBeta2.assign(ln(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\";In(mu);var fu=class extends Br{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=[],G(()=>{this.iteration=mt(0).variable(),this.accBeta1=mt(e).variable()}),o==null&&(this.epsilon=_.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);G(()=>{let n=ut(1,this.accBeta1),o=ct(-this.learningRate,J(O(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=_.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:St(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:St(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=J(O(c,this.beta1),O(l,1-this.beta1)),f=O(p,this.beta2),d=$e(l),h=Tn(f,d);c.assign(m),p.assign(h);let g=J(O(ct(o,n),ct(m,J(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(J(this.iteration,1)),this.accBeta1.assign(O(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&_t(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&_t(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\";In(fu);var qi=class extends Br{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=_.registeredVariables[n];G(()=>{let a=J(O(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=Oe(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)}};qi.className=\"SGD\";In(qi);var du=class extends qi{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=_.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:G(()=>St(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&G(()=>{let u,l=J(O(this.m,i),a);this.useNesterov?u=J(O(this.c,J(a,O(l,this.m))),s):u=J(O(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&_t(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\";In(du);var hu=class extends Br{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=_.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=_.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:G(()=>St(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:G(()=>St(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:G(()=>St(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;G(()=>{let c=J(O(u,this.decay),O(Ht(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=J(O(p,this.decay),O(a,1-this.decay)),f=ct(O(a,this.learningRate),Ne(ut(c,J(Ht(m),this.epsilon)))),d=J(O(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=ut(s,d);s.assign(h)}else{let p=J(O(u,this.decay),O(Ht(a),1-this.decay)),m=J(O(l,this.momentum),ct(O(a,this.learningRate),Ne(J(p,this.epsilon))));u.assign(p),l.assign(m);let f=ut(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&_t(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&_t(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&_t(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\";In(hu);var js=class{static sgd(t){return new qi(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 fc={sgd:js.sgd,momentum:js.momentum,adadelta:js.adadelta,adagrad:js.adagrad,rmsprop:js.rmsprop,adamax:js.adamax,adam:js.adam};var O5=(()=>typeof requestAnimationFrame!=\"undefined\"?requestAnimationFrame:typeof setImmediate!=\"undefined\"?setImmediate:r=>r())();function Th(){return new Promise(r=>O5(()=>r()))}var S={};jt(S,{ERF_A1:()=>Y5,ERF_A2:()=>Z5,ERF_A3:()=>J5,ERF_A4:()=>Q5,ERF_A5:()=>tX,ERF_P:()=>X5,PARALLELIZE_THRESHOLD:()=>Dy,RowPartitionType:()=>Ki,SELU_SCALE:()=>SS,SELU_SCALEALPHA:()=>IS,applyActivation:()=>pc,assertAndGetBroadcastShape:()=>zt,assertAxesAreInnerMostDims:()=>cK,assertParamsConsistent:()=>P5,assignToTypedArray:()=>iX,axesAreInnerMostDims:()=>uS,calculateShapes:()=>L_,checkEinsumDimSizes:()=>mX,checkPadOnDimRoundingMode:()=>Te,combineLocations:()=>aE,combineRaggedTensorToTensorShapes:()=>M5,complexWithEvenIndex:()=>nX,complexWithOddIndex:()=>oX,computeConv2DInfo:()=>tc,computeConv3DInfo:()=>Q_,computeDefaultPad:()=>lS,computeDilation2DInfo:()=>mq,computeOptimalWindowSize:()=>G5,computeOutAndReduceShapes:()=>cS,computeOutShape:()=>L5,computePool2DInfo:()=>aS,computePool3DInfo:()=>fq,convertConv2DDataFormat:()=>tE,decodeEinsumEquation:()=>cX,eitherStridesOrDilationsAreOne:()=>Er,expandShapeToKeepDim:()=>xo,exponent:()=>lX,exponents:()=>aX,fromStringArrayToUint8:()=>RX,fromUint8ToStringArray:()=>DX,getAxesPermutation:()=>pS,getBroadcastDims:()=>F_,getComplexWithIndex:()=>sX,getEinsumComputePath:()=>fX,getEinsumPermutation:()=>pX,getFusedBiasGradient:()=>cc,getFusedDyActivation:()=>uc,getImageCenter:()=>W5,getInnerMostAxes:()=>pK,getPermuted:()=>H5,getRaggedRank:()=>B5,getReductionAxes:()=>ye,getReshaped:()=>U5,getReshapedPermuted:()=>q5,getRowPartitionTypesHelper:()=>z5,getSliceBeginCoords:()=>K5,getSliceSize:()=>j5,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>xX,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>yX,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>bX,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>vX,getSparseReshapeInputOutputMismatchErrorMessage:()=>SX,getSparseReshapeInputOutputMultipleErrorMessage:()=>IX,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>wX,getSparseReshapeNegativeOutputDimErrorMessage:()=>CX,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>_X,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>TX,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>NX,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>kX,getUndoAxesPermutation:()=>wh,isIdentityPermutation:()=>dX,log:()=>I4,mergeRealAndImagArrays:()=>eX,prepareAndValidate:()=>P_,prepareSplitSize:()=>gX,segment_util:()=>NS,shouldFuse:()=>mc,slice_util:()=>Be,splitRealAndImagArrays:()=>rX,tupleValuesAreOne:()=>Jn,upcastType:()=>ir,validateDefaultValueShape:()=>V5,validateInput:()=>bx,validateUpdateShape:()=>eS,warn:()=>Ei});function P5(r,t){let e=r[0].length;r.forEach((o,s)=>{A(o.length===e,()=>`Error in concat${e}D: rank of tensors[${s}] must be the same as the rank of the rest (${e})`)}),A(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 L5(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 z5(r){let t={FIRST_DIM_SIZE:Ki.FIRST_DIM_SIZE,VALUE_ROWIDS:Ki.VALUE_ROWIDS,ROW_LENGTHS:Ki.ROW_LENGTHS,ROW_SPLITS:Ki.ROW_SPLITS,ROW_LIMITS:Ki.ROW_LIMITS,ROW_STARTS:Ki.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function B5(r){return r.length===0?0:r[0]===Ki.FIRST_DIM_SIZE?r.length-1:r.length}function V5(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 Dy=30;function G5(r){return r<=Dy?r:wp(r,Math.floor(Math.sqrt(r)))}function W5(r,t,e){let n=e*(typeof r==\"number\"?r:r[0]),o=t*(typeof r==\"number\"?r:r[1]);return[n,o]}function U5(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 q5(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s\",uX=/->/g,OA=\",\",PA=\"...\";function cX(r,t){r=r.replace(/\\s/g,\"\");let e=(r.length-r.replace(uX,\"\").length)/TS.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 (\"${TS}\").`);let[n,o]=r.split(TS);A(n.indexOf(PA)===-1,()=>`The ellipsis notation (\"${PA}\") is not supported yet.`);let s=n.split(OA),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 mX(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 fX(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 hX(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);A(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}A(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 xX(r){return`Received SparseTensor with denseShape[0] = 0 but\n indices.shape[0] = ${r}`}function yX(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function bX(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function wX(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function CX(r,t){return`size ${r} must be non-negative, not ${t}`}function vX(){return\"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero\"}function IX(r,t){let e=Qt(r),n=Qt(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 SX(r,t){let e=Qt(r),n=Qt(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function TX(){return\"segment ids must be >= 0\"}function NX(){return\"segment ids are not increasing\"}function kX(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function _X(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var NS={};jt(NS,{collectGatherOpShapeInfo:()=>$X,computeOutShape:()=>AX,segOpComputeOptimalWindowSize:()=>EX});function EX(r,t){let e=!1,n;for(r<=Dy?(n=r,e=!0):n=wp(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=wp(r,n+1);return n}function AX(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(erm(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function RX(r){return r.map(t=>Ul(t))}var Vr={};jt(Vr,{nonMaxSuppressionV3Impl:()=>ky,nonMaxSuppressionV4Impl:()=>_y,nonMaxSuppressionV5Impl:()=>Ey,whereImpl:()=>Cy});var Ry={kernelName:pi,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(r,yo(tt(e,\"float32\"),-1))}}};var LA={kernelName:oa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Ht(tt(e,\"float32\")),o=Ne(ut(mt(1),n));return Yt(ct(r,o))}}}};var MA={kernelName:sa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Ne(ut(Ht(tt(e,\"float32\")),1));return ct(r,n)}}}};var zA={kernelName:jn,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=zt(e.shape,n.shape);return{a:()=>{let a=r,u=ye(e.shape,o);return u.length>0&&(a=ft(a,u)),F(a,e.shape)},b:()=>{let a=r,u=ye(n.shape,o);return u.length>0&&(a=ft(a,u)),F(a,n.shape)}}}};var BA={kernelName:jo,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var VA={kernelName:Xo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>St(e)}}};var GA={kernelName:Nl,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>St(e)}}};var WA={kernelName:la,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Ne(ut(mt(1),Ht(tt(e,\"float32\")))))}}};var UA={kernelName:ua,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Ne(J(mt(1),Ht(tt(e,\"float32\"))));return ct(r,n)}}}};var HA={kernelName:ma,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=zt(e.shape,n.shape);return{a:()=>{let a=J(Ht(e),Ht(n)),u=O(r,ct(n,a)),l=ye(e.shape,o);return l.length>0&&(u=ft(u,l)),F(u,e.shape)},b:()=>{let a=J(Ht(e),Ht(n)),u=Yt(O(r,ct(e,a))),l=ye(n.shape,o);return l.length>0&&(u=ft(u,l)),F(u,n.shape)}}}};var qA={kernelName:ca,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,J(Ht(tt(e,\"float32\")),1))}}};var KA={kernelName:pa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,ut(mt(1),Ht(tt(e,\"float32\"))))}}};function FX(r,t,e,n,o,s){let i=v(r,\"dy\",\"avgPool3dGrad\"),a=v(t,\"input\",\"avgPool3dGrad\"),u=i,l=a,c=!1;a.rank===4&&(c=!0,u=F(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),l=F(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),A(u.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),A(l.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${l.rank}.`),Te(\"avgPool3dGrad\",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=_.runKernel(Ip,p,m);return c?F(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var jA=N({avgPool3dGrad_:FX});var XA={kernelName:kl,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>jA(r,n,o,s,i,a)}}};function OX(r,t,e,n,o){let s=v(r,\"dy\",\"avgPoolGrad\"),i=v(t,\"input\",\"avgPoolGrad\");A(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=F(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=F(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(u.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${u.rank}.`),A(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=_.runKernel(vp,c,p);return l?F(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var YA=N({avgPoolGrad_:OX});var ZA={kernelName:Yo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>YA(r,n,o,s,i)}}};var JA={kernelName:Zo,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Gt(r,o,!1,!0),b:()=>Gt(n,r,!0,!1)}:!s&&i?{a:()=>Gt(r,o,!1,!1),b:()=>Gt(r,n,!0,!1)}:s&&!i?{a:()=>Gt(o,r,!1,!0),b:()=>Gt(n,r,!1,!1)}:{a:()=>Gt(o,r,!0,!0),b:()=>Gt(r,n,!0,!0)}}};var QA={kernelName:mi,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>ru(r,n,o)}}};var t2={kernelName:N1,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 e2={kernelName:ao,gradFunc:r=>({x:()=>r.clone()})};var r2={kernelName:Jo,gradFunc:r=>({x:()=>St(r)})};var n2={kernelName:lo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>De(Dr(Pn(n,o),Ln(n,s)),r,St(r))}}};var o2={kernelName:_l,inputsToSave:[\"x\"],gradFunc:Ry.gradFunc};var s2={kernelName:fi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=ur(o,t[0].shape)[0],i=n.map(u=>u[s]);return mr(r,i,s).map(u=>()=>u)}};var i2={kernelName:Qo,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return A(Jn(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>fm(n.shape,r,o,i,a,u),filter:()=>Fm(n,r,o.shape,i,a,u)}}};var a2={kernelName:ts,inputsToSave:[\"dy\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>Sn(r,o,s,i,a,1,u),filter:()=>Fm(r,n,o.shape,s,i,a,u)}}};function PX(r,t,e,n,o){let s=r;r.rank===4&&(s=F(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let i=t;i.rank===4&&(i=F(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(e.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${e}.`),A(s.shape[4]===e[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${e[3]}.`),A(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 _.runKernel(_p,a,u)}var l2=N({conv3DBackpropFilter_:PX});var u2={kernelName:El,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;A(Jn(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:()=>Vx(i.shape,r,a,o,s),filter:()=>l2(i,r,a.shape,o,s)}}};var c2={kernelName:es,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(Yt(Nm(tt(e,\"float32\"))),r)}}};var p2={kernelName:rs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(km(tt(e,\"float32\")),r)}}};var m2={kernelName:ns,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=pS([o],n.rank),u=gm(r,o,s,!i);return a!=null&&(u=Mt(u,a)),u}}}};var f2={kernelName:os,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;A(Jn(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);let[u,l]=t;return A(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${l.rank}.`),A(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]}.`),A(Er(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),Te(\"depthwiseConv2d\",s,i),{x:()=>Sy(u.shape,r,l,o,s,a,i),filter:()=>Iy(u,r,l.shape,o,s,a,i)}}};var d2={kernelName:Al,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:()=>_.runKernel(oh,s,e),filter:()=>_.runKernel(sh,i,e)}}};var h2={kernelName:is,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>_.runKernel(Op,n)}}};var g2={kernelName:ga,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=O(or(Yt(Ht(e))),2/Math.sqrt(Math.PI));return{x:()=>O(r,n)}}};var x2={kernelName:as,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(r,e)}}};var y2={kernelName:di,inputsToSave:[\"input\"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>F(r,e.shape)}}};var b2={kernelName:ya,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(r,or(e))}}};var w2={kernelName:ls,gradFunc:r=>({x:()=>St(r)})};var C2={kernelName:us,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=zt(e.shape,n.shape);return{a:()=>{let a=ct(r,tt(n,\"float32\")),u=ye(e.shape,o);return u.length>0?F(ft(a,u),e.shape):a},b:()=>{let a=O(r,tt(e,\"float32\")),u=ye(n.shape,o);u.length>0&&(a=F(ft(a,u),n.shape));let l=Ht(n);return Yt(ct(a,tt(l,\"float32\")))}}}};var v2={kernelName:cs,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=ye(s.shape,o.shape),c=[];if(s.rank===1){for(let C=0;Cs.rank===1?F(O(O(r,$r(F(f,[1,1,1,s.shape[0]]),c)),u),o.shape):F(O(O(r,f),u),o.shape),mean:()=>{let C=O(O(f,mt(-1)),m);return s.rank===1&&(C=ft(C,l)),F(C,s.shape)},variance:()=>{let C=O(O(d,p),m);return s.rank===1&&(C=ft(C,l)),F(C,s.shape)},scale:()=>{let C=O(p,f),T=O(r,C);return s.rank===1&&(T=ft(T,l)),F(T,s.shape)},offset:()=>{let C=r;return s.rank===1&&(C=ft(C,l)),F(C,s.shape)}}}};var T2={kernelName:hi,inputsToSave:[\"x\",\"indices\"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s}=e,i=ur(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=I2(0,p),h=I2(p+1,p+1+f),g=S2([c,[l],m]),x=F(r,g),b=F(o,[l]),w=S2([[p],d,h]),C=Mt(x,w),T=Rm(C,b,n.shape[i]),E=wh(w);return T=Mt(T,E),T},indices:()=>o}}};function I2(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>St(e),b:()=>St(n)}}};var k2={kernelName:uo,gradFunc:r=>({x:()=>tt(r,\"float32\")})};var _2={kernelName:va,gradFunc:r=>({x:()=>St(r)})};var E2={kernelName:Ia,gradFunc:r=>({x:()=>St(r)})};var A2={kernelName:Sa,gradFunc:r=>({x:()=>St(r)})};var $2={kernelName:ms,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Xe(n,0);return{x:()=>De(s,r,O(r,o))}}};var D2={kernelName:ka,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,J(e,1))}}};var R2={kernelName:fs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,tt(e,\"float32\"))}}};var F2={kernelName:_1,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=or(n);return ut(r,O(ft(r,o,!0),i))}}}};function LX(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 _.runKernel(Bp,a,u)}var O2=N({localResponseNormalizationBackprop_:LX});var P2={kernelName:Dl,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>O2(n,o,r,s,i,a,u)}}};function Fy(r,t,e,n){return t.rankO(r,tt(Ar(e,t),r.dtype))}}var kS={kernelName:ds,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=ur(o,s.shape),u=Fy(r,i,s,a);return{x:()=>u.x()}}};var L2={kernelName:hs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>O(r,tt(Pn(e,n),\"float32\")),b:()=>O(r,tt(xm(e,n),\"float32\"))}}};function MX(r,t,e,n,o,s,i){let a=v(r,\"dy\",\"maxPool3dGrad\"),u=v(t,\"input\",\"maxPool3dGrad\"),l=v(e,\"output\",\"maxPool3dGrad\"),c=a,p=u,m=l,f=!1;u.rank===4&&(f=!0,c=F(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=F(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),m=F(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]])),A(c.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`),A(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),A(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),Te(\"maxPool3dGrad\",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=_.runKernel(Gp,d,h);return f?F(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var M2=N({maxPool3dGrad_:MX});var z2={kernelName:Rl,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>M2(r,n,o,s,i,a,u)}}};function zX(r,t,e,n,o,s,i){let a=v(r,\"dy\",\"maxPoolGrad\"),u=v(t,\"input\",\"maxPoolGrad\"),l=v(e,\"output\",\"maxPoolGrad\");A(u.rank===a.rank,()=>`Rank of input (${u.rank}) does not match rank of dy (${a.rank})`),A(a.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${a.rank}.`),A(u.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${u.rank}.`),Te(\"maxPoolGrad\",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return _.runKernel(Vp,c,p)}var B2=N({maxPoolGrad_:zX});var V2={kernelName:gs,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>B2(r,n,o,s,i,a)}}};var G2={kernelName:xs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=ur(o,n.shape),a=cS(n.shape,s)[1],u=Qt(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=F(r,c);return ct(O(p,cr(n.shape,\"float32\")),u)}}}};var W2={kernelName:ys,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=ur(o,s.shape),u=Fy(r,i,s,a);return{x:()=>u.x()}}};var U2={kernelName:bs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>O(r,tt(Ln(e,n),\"float32\")),b:()=>O(r,tt(Xe(e,n),\"float32\"))}}};var H2={kernelName:ws,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Ot(r,s,n.shape)}}};var q2={kernelName:$a,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=zt(e.shape,n.shape);return{a:()=>{let a=ye(e.shape,o);return a.length>0?F(ft(r,a),e.shape):r},b:()=>{let a=O(r,Yt(Gi(ct(e,n)))),u=ye(n.shape,o);return u.length>0?F(ft(a,u),n.shape):a}}}};var K2={kernelName:Cs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=zt(e.shape,n.shape);return{a:()=>{let a=O(r,tt(n,\"float32\")),u=ye(e.shape,o);return u.length>0?F(ft(a,u),e.shape):a},b:()=>{let a=O(r,tt(e,\"float32\")),u=ye(n.shape,o);return u.length>0?F(ft(a,u),n.shape):a}}}};var j2={kernelName:gi,gradFunc:r=>({x:()=>Yt(r)})};var X2={kernelName:vs,inputsToSave:[\"indices\"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>_e(e.shape,\"float32\")}}};var Y2={kernelName:xi,gradFunc:r=>({x:()=>St(r)})};var Z2={kernelName:yi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return Tr(r,n).map(s=>()=>s)}};var _S={kernelName:Is,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Ot(r,s,n.shape)}}};var J2={kernelName:Ss,inputsToSave:[\"a\",\"b\"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=zt(s.shape,i.shape);return{a:()=>{let c=tt(i,\"float32\"),p=O(r,O(c,ln(s,ut(c,mt(1))))),m=ye(s.shape,a);return m.length>0&&(p=ft(p,m)),F(p,s.shape)},b:()=>{let c=Xe(s,0),p=De(c,Sr(s),St(s)),m=O(r,O(o,p)),f=ye(i.shape,a);return f.length>0&&(m=ft(m,f)),F(m,i.shape)}}}};var Q2={kernelName:Ts,inputsToSave:[\"x\",\"alpha\"],gradFunc:(r,t)=>{let[e,n]=t,o=Xe(e,0);return{x:()=>De(o,r,O(r,n)),alpha:()=>{let s=De(o,St(r),O(r,e)),i=ye(n.shape,r.shape);return i.length>0&&(s=ft(s,i)),F(s,n.shape)}}}};function BX(r,t,e){let n=r.shape.slice();n[e]=1;let o=F(t,n),s=ec(r,e,!0,!1),i=ec(r,e,!0,!0),a=O(s,i);return O(o,a)}function VX(r,t,e){let n=r.shape.length,o=n-e.length,s=S.getAxesPermutation(e,n),i=r;s!=null&&(i=Mt(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=BX(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=S.getUndoAxesPermutation(s);p=Mt(p,m)}return p}var t$={kernelName:Ns,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:()=>VX(n,r,s)}}};var e$={kernelName:ss,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=zt(e.shape,n.shape);return{a:()=>{let a=ct(r,tt(n,\"float32\")),u=ye(e.shape,o);return u.length>0?F(ft(a,u),e.shape):a},b:()=>{let a=O(r,tt(e,\"float32\")),u=ye(n.shape,o);u.length>0&&(a=F(ft(a,u),n.shape));let l=Ht(n);return Yt(ct(a,tt(l,\"float32\")))}}}};var r$={kernelName:Pa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Yt(Ht(e)))}}};var n$={kernelName:As,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=O(Ln(e,6),yo(e));return{x:()=>O(r,tt(n,\"float32\"))}}};var o$={kernelName:ks,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(r,tt(yo(e),\"float32\"))}}};var s$={kernelName:bi,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>F(r,e.shape)}}};var i$={kernelName:Es,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>_.runKernel(jp,o,e)}}};var a$={kernelName:_s,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>_.runKernel(Kp,o,e)}}};var l$={kernelName:$s,gradFunc:(r,t,e)=>{let{dims:n}=e,o=ur(n,r.shape);return{x:()=>pr(r,o)}}};var u$={kernelName:Ds,gradFunc:r=>({x:()=>St(r)})};var c$={kernelName:Rs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Yt(ct(r,O(ln(e,1.5),2)))}}};var p$={kernelName:wi,inputsToSave:[\"condition\"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>tt(St(e),\"float32\"),t:()=>O(r,tt(e,r.dtype)),e:()=>O(r,tt(tu(e),r.dtype))}}};var m$={kernelName:Ma,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Xe(e,mt(0)),o=mt(IS),s=mt(SS),i=O(r,s),a=O(O(r,o),or(tt(e,\"float32\")));return De(n,i,a)}}}};var f$={kernelName:Os,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(r,O(e,ut(mt(1),e)))}}};var d$={kernelName:Ba,gradFunc:r=>({x:()=>St(r)})};var h$={kernelName:Fs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(Zl(tt(e,\"float32\")),r)}}};var g$={kernelName:za,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(hm(tt(e,\"float32\")),r)}}};var x$={kernelName:Ci,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=nS(n,o,s),l=[];for(let c=0;ccn(r,l)}}};var y$={kernelName:Ms,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=O(r,n);return{logits:()=>ut(i,O(ft(i,[o],s),n))}}};var b$={kernelName:Va,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(r,Kr(e))}}};var ES={kernelName:vi,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>Yl(r,n,o)}}};var AS={kernelName:Ii,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>se(r,n)}}};var w$={kernelName:Ps,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,O(Ne(tt(e,\"float32\")),2))}}};var C$={kernelName:Ml,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(r,O(tt(e,\"float32\"),2))}}};var v$={kernelName:zs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=mt(2);return{a:()=>O(r,O(o,ut(e,n))),b:()=>O(r,O(o,ut(n,e)))}}};var I$={kernelName:co,gradFunc:r=>({x:()=>St(r)})};var S$={kernelName:Bs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=zt(e.shape,n.shape);return{a:()=>{let a=r,u=ye(e.shape,o);return u.length>0&&(a=ft(a,u)),F(a,e.shape)},b:()=>{let a=r,u=ye(n.shape,o);return u.length>0&&(a=ft(a,u)),F(Yt(a),n.shape)}}}};var T$={kernelName:Ls,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;ur(s,n.shape).forEach(l=>{o[l]=1});let a=F(r,o),u=O(a,cr(n.shape,\"float32\"));return{x:()=>u}}};var N$={kernelName:Vs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Ht(Zl(e)))}}};var k$={kernelName:Gs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(ut(mt(1),Ht(e)),r)}}};var _$={kernelName:Xn,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=St(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=wh(o);return{x:()=>Mt(r,s)}}};var A$={kernelName:Si,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>sr(r,o)}}};var $$={kernelName:Gl,inputsToSave:[\"segmentIds\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>GX(r,e)}}};function GX(r,t){let e=Tn(t,St(t)),n=Wi(r,e),o=Pn(t,mt(0,\"int32\")),s=n.rank-o.rank;for(let a=0;a({x:()=>St(r)})};var WX=[Ry,LA,MA,zA,BA,VA,GA,WA,UA,HA,qA,KA,XA,ZA,JA,QA,t2,e2,r2,n2,o2,s2,a2,i2,u2,c2,p2,m2,f2,d2,e$,h2,g2,x2,y2,b2,C2,w2,v2,T2,N2,k2,_2,E2,A2,$2,D2,R2,F2,P2,kS,kS,L2,z2,V2,G2,W2,U2,H2,q2,K2,j2,X2,Y2,Z2,_S,_S,J2,Q2,t$,r$,n$,o$,s$,i$,a$,l$,u$,c$,p$,m$,f$,d$,h$,g$,x$,y$,b$,ES,ES,AS,AS,w$,v$,C$,I$,S$,T$,N$,k$,_$,E$,A$,$$,D$];for(let r of WX)A1(r);L().prototype.abs=function(){return this.throwIfDisposed(),$e(this)};L().prototype.acos=function(){return this.throwIfDisposed(),Cx(this)};L().prototype.acosh=function(){return this.throwIfDisposed(),vx(this)};L().prototype.add=function(r){return this.throwIfDisposed(),J(this,r)};L().prototype.all=function(r,t){return this.throwIfDisposed(),cm(this,r,t)};L().prototype.any=function(r,t){return this.throwIfDisposed(),Ju(this,r,t)};L().prototype.argMax=function(r){return this.throwIfDisposed(),Oi(this,r)};L().prototype.argMin=function(r){return this.throwIfDisposed(),Ix(this,r)};L().prototype.asScalar=function(){return this.throwIfDisposed(),A(this.size===1,()=>\"The array must have only 1 element.\"),F(this,[])};L().prototype.asType=function(r){return this.throwIfDisposed(),tt(this,r)};L().prototype.as1D=function(){return this.throwIfDisposed(),F(this,[this.size])};L().prototype.as2D=function(r,t){return this.throwIfDisposed(),F(this,[r,t])};L().prototype.as3D=function(r,t,e){return this.throwIfDisposed(),F(this,[r,t,e])};L().prototype.as4D=function(r,t,e,n){return this.throwIfDisposed(),F(this,[r,t,e,n])};L().prototype.as5D=function(r,t,e,n,o){return this.throwIfDisposed(),F(this,[r,t,e,n,o])};L().prototype.asin=function(){return this.throwIfDisposed(),Sx(this)};L().prototype.asinh=function(){return this.throwIfDisposed(),Tx(this)};L().prototype.atan=function(){return this.throwIfDisposed(),Nx(this)};L().prototype.atan2=function(r){return this.throwIfDisposed(),kx(this,r)};L().prototype.atanh=function(){return this.throwIfDisposed(),_x(this)};L().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),Xl(this,r,t,e,n)};L().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),Yl(this,r,t)};L().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),Li(this,r,t,e,n,o)};L().prototype.broadcastTo=function(r){return this.throwIfDisposed(),Mi(this,r)};L().prototype.cast=function(r){return this.throwIfDisposed(),tt(this,r)};L().prototype.ceil=function(){return this.throwIfDisposed(),Ox(this)};L().prototype.clipByValue=function(r,t){return this.throwIfDisposed(),Ir(this,r,t)};L().prototype.concat=function(r,t){return this.throwIfDisposed(),r instanceof Lt&&(r=[r]),se([this,...r],t)};L().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),mm(this,r,t,e,n,o,s)};L().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),dm(this,r,t,e,n,o)};L().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Sn(this,r,t,e,n,o,s)};L().prototype.cos=function(){return this.throwIfDisposed(),Zl(this)};L().prototype.cosh=function(){return this.throwIfDisposed(),hm(this)};L().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),ec(this,r,t,e)};L().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),gm(this,r,t,e)};L().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),Wx(this,r,t)};L().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),zi(this,r,t,e,n,o,s)};L().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Ux(this,r,t,e,n,o)};L().prototype.divNoNan=function(r){return this.throwIfDisposed(),Hx(this,r)};L().prototype.div=function(r){return this.throwIfDisposed(),ct(this,r)};L().prototype.dot=function(r){return this.throwIfDisposed(),qx(this,r)};L().prototype.elu=function(){return this.throwIfDisposed(),Bi(this)};L().prototype.equal=function(r){return this.throwIfDisposed(),Ar(this,r)};L().prototype.erf=function(){return this.throwIfDisposed(),Kx(this)};L().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),jx(this,r,t)};L().prototype.exp=function(){return this.throwIfDisposed(),or(this)};L().prototype.expandDims=function(r){return this.throwIfDisposed(),yr(this,r)};L().prototype.expm1=function(){return this.throwIfDisposed(),Xx(this)};L().prototype.fft=function(){return this.throwIfDisposed(),iu(this)};L().prototype.flatten=function(){return this.throwIfDisposed(),F(this,[this.size])};L().prototype.floor=function(){return this.throwIfDisposed(),Gi(this)};L().prototype.floorDiv=function(r){return this.throwIfDisposed(),um(this,r)};L().prototype.gather=function(r,t){return this.throwIfDisposed(),Wi(this,r,t)};L().prototype.greaterEqual=function(r){return this.throwIfDisposed(),Pn(this,r)};L().prototype.greater=function(r){return this.throwIfDisposed(),Xe(this,r)};L().prototype.ifft=function(){return this.throwIfDisposed(),Qa(this)};L().prototype.irfft=function(){return this.throwIfDisposed(),Am(this)};L().prototype.isFinite=function(){return this.throwIfDisposed(),Yx(this)};L().prototype.isInf=function(){return this.throwIfDisposed(),Zx(this)};L().prototype.isNaN=function(){return this.throwIfDisposed(),Jx(this)};L().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Jl(this,r)};L().prototype.lessEqual=function(r){return this.throwIfDisposed(),Ln(this,r)};L().prototype.less=function(r){return this.throwIfDisposed(),xm(this,r)};L().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),Qx(this,r,t,e,n)};L().prototype.logSigmoid=function(){return this.throwIfDisposed(),ry(this)};L().prototype.logSoftmax=function(r){return this.throwIfDisposed(),ym(this,r)};L().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),bm(this,r,t)};L().prototype.log=function(){return this.throwIfDisposed(),Sr(this)};L().prototype.log1p=function(){return this.throwIfDisposed(),Ql(this)};L().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Dr(this,r)};L().prototype.logicalNot=function(){return this.throwIfDisposed(),tu(this)};L().prototype.logicalOr=function(r){return this.throwIfDisposed(),wm(this,r)};L().prototype.logicalXor=function(r){return this.throwIfDisposed(),ny(this,r)};L().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Gt(this,r,t,e)};L().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),eu(this,r,t,e,n)};L().prototype.max=function(r,t){return this.throwIfDisposed(),Mr(this,r,t)};L().prototype.maximum=function(r){return this.throwIfDisposed(),Tn(this,r)};L().prototype.mean=function(r,t){return this.throwIfDisposed(),ke(this,r,t)};L().prototype.min=function(r,t){return this.throwIfDisposed(),rc(this,r,t)};L().prototype.minimum=function(r){return this.throwIfDisposed(),Ui(this,r)};L().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),iy(this,r,t)};L().prototype.mod=function(r){return this.throwIfDisposed(),ay(this,r)};L().prototype.mul=function(r){return this.throwIfDisposed(),O(this,r)};L().prototype.neg=function(){return this.throwIfDisposed(),Yt(this)};L().prototype.norm=function(r,t,e){return this.throwIfDisposed(),Ja(this,r,t,e)};L().prototype.notEqual=function(r){return this.throwIfDisposed(),qs(this,r)};L().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),Ri(this,r,t,e)};L().prototype.onesLike=function(){return this.throwIfDisposed(),br(this)};L().prototype.pad=function(r,t){return this.throwIfDisposed(),cn(this,r,t)};L().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),ly(this,r,t,e,n,o,s)};L().prototype.pow=function(r){return this.throwIfDisposed(),ln(this,r)};L().prototype.prelu=function(r){return this.throwIfDisposed(),nu(this,r)};L().prototype.prod=function(r,t){return this.throwIfDisposed(),uy(this,r,t)};L().prototype.reciprocal=function(){return this.throwIfDisposed(),dy(this)};L().prototype.relu=function(){return this.throwIfDisposed(),Rr(this)};L().prototype.relu6=function(){return this.throwIfDisposed(),Cm(this)};L().prototype.reshapeAs=function(r){return this.throwIfDisposed(),F(this,r.shape)};L().prototype.reshape=function(r){return this.throwIfDisposed(),F(this,r)};L().prototype.resizeBilinear=function(r,t,e){return this.throwIfDisposed(),Ay(this,r,t,e)};L().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),$y(this,r,t,e)};L().prototype.reverse=function(r){return this.throwIfDisposed(),pr(this,r)};L().prototype.rfft=function(){return this.throwIfDisposed(),au(this)};L().prototype.round=function(){return this.throwIfDisposed(),vm(this)};L().prototype.rsqrt=function(){return this.throwIfDisposed(),Im(this)};L().prototype.selu=function(){return this.throwIfDisposed(),Sm(this)};L().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Tm(this,r,t,e,n,o,s)};L().prototype.sigmoid=function(){return this.throwIfDisposed(),Kr(this)};L().prototype.sign=function(){return this.throwIfDisposed(),hy(this)};L().prototype.sin=function(){return this.throwIfDisposed(),Nm(this)};L().prototype.sinh=function(){return this.throwIfDisposed(),km(this)};L().prototype.slice=function(r,t){return this.throwIfDisposed(),Ot(this,r,t)};L().prototype.softmax=function(r){return this.throwIfDisposed(),su(this,r)};L().prototype.softplus=function(){return this.throwIfDisposed(),Hs(this)};L().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),ru(this,r,t)};L().prototype.split=function(r,t){return this.throwIfDisposed(),mr(this,r,t)};L().prototype.sqrt=function(){return this.throwIfDisposed(),Ne(this)};L().prototype.square=function(){return this.throwIfDisposed(),Ht(this)};L().prototype.squaredDifference=function(r){return this.throwIfDisposed(),$m(this,r)};L().prototype.squeeze=function(r){return this.throwIfDisposed(),Mn(this,r)};L().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Lt?[this,r]:[this,...r];return sr(e,t)};L().prototype.step=function(r){return this.throwIfDisposed(),yo(this,r)};L().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),gy(this,r,t,e,n,o,s,i,a)};L().prototype.sub=function(r){return this.throwIfDisposed(),ut(this,r)};L().prototype.sum=function(r,t){return this.throwIfDisposed(),ft(this,r,t)};L().prototype.tan=function(){return this.throwIfDisposed(),xy(this)};L().prototype.tanh=function(){return this.throwIfDisposed(),Pi(this)};L().prototype.tile=function(r){return this.throwIfDisposed(),$r(this,r)};L().prototype.toBool=function(){return this.throwIfDisposed(),tt(this,\"bool\")};L().prototype.toFloat=function(){return this.throwIfDisposed(),tt(this,\"float32\")};L().prototype.toInt=function(){return this.throwIfDisposed(),tt(this,\"int32\")};L().prototype.topk=function(r,t){return this.throwIfDisposed(),yy(this,r,t)};L().prototype.transpose=function(r){return this.throwIfDisposed(),Mt(this,r)};L().prototype.unique=function(r){return this.throwIfDisposed(),by(this,r)};L().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),Rm(this,r,t)};L().prototype.unstack=function(r){return this.throwIfDisposed(),Tr(this,r)};L().prototype.where=function(r,t){return this.throwIfDisposed(),De(r,this,t)};L().prototype.zerosLike=function(){return this.throwIfDisposed(),St(this)};var Nn=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Nn.prototype)}},Gr=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Gr.prototype)}},z=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,z.prototype)}},Nt=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Nt.prototype)}},Om=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Om.prototype)}};var Nh=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 wo={};function Pm(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function $S(r){if(!(r==null||typeof r!=\"object\"))if(Array.isArray(r))r.forEach(t=>$S(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:$S(n))}}}function ji(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 wo)i=wo[s];else if(i=t[s],i==null)throw new z(`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 z(`${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 wo?[a,u]=wo.className:i in t&&([a,u]=t[i]),a==null)throw new z(`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(wo))l[f]=wo[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},wo);for(let f of Object.keys(e))wo[f]=e[f];$S(s.config);let m=u(a,s.config,e,o);return wo=Object.assign({},p),m}else{let l=Object.assign({},wo);for(let p of Object.keys(e))wo[p]=e[p];let c=new a(s.config);return wo=Object.assign({},l),c}}}function UX(r,t){return rt?1:0}function kh(r,t){return-1*UX(r,t)}function Io(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function R$(r){if(r==null)throw new z(`Invalid value in obj: ${JSON.stringify(r)}`);for(let t in r)if(r.hasOwnProperty(t))return!1;return!0}function Xi(r,t,e){if(e!=null&&r.indexOf(e)<0)throw new z(`${e} is not a valid ${t}. Valid values are ${r} or null/undefined.`)}function Oy(r,t,e=0,n=1/0){return to(e>=0),to(n>=e),Array.isArray(r)&&r.length>=e&&r.length<=n&&r.every(o=>typeof o===t)}function Je(r,t){Array.isArray(r)?(y.assert(r.length>0,()=>`${t} is unexpectedly an empty array.`),r.forEach((e,n)=>Je(e,`element ${n+1} of ${t}`))):y.assert(Number.isInteger(r)&&r>0,()=>`Expected ${t} to be a positive integer, but got ${F$(r)}.`)}function F$(r){return r===null?\"null\":Array.isArray(r)?\"[\"+r.map(t=>F$(t)).join(\",\")+\"]\":typeof r==\"string\"?`\"${r}\"`:`${r}`}function O$(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 Lm.set(e,1),e}else return r}var KX=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\\._\\/]*$/);function W$(r){return!!r.match(KX)}function U$(r){return r===parseInt(r.toString(),10)}function So(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 jr(r,t){if(t{if(r.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let e=rl(r,1);return Gy(e,[1,t,1])})}function q$(r){let t=[So(r.shape)];return F(r,t)}function K$(r){if(r.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],So(r.shape,1)];return F(r,t)}function el(r,t,e){return G(()=>{switch(r.rank){case 1:return _m(r,t,e);case 2:return Ih(r,[t,0],[e,r.shape[1]]);case 3:return Em(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return lc(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Ot(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Ot(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 z(`sliceAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}})}function OS(r,t,e){return G(()=>{switch(r.rank){case 1:return _m(r,t,e);case 2:return Ih(r,[0,t],[r.shape[0],e]);case 3:return Em(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return lc(r,[0,0,0,t],[r.shape[0],r.shape[1],r.shape[2],e]);default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Eh(r,t,e,n){return G(()=>{switch(r.rank){case 1:return _m(r,t,e);case 2:switch(n){case 1:return el(r,t,e);case 2:return OS(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return el(r,t,e);case 2:return Em(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return OS(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return el(r,t,e);case 2:return lc(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return lc(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return OS(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Mm(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),se(r,t)}function LS(r,t){switch(r.rank){case 1:return Px([r,t]);case 2:return Lx([r,t],0);case 3:return Mx([r,t],0);case 4:return zx([r,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Gy(r,t){if(Array.isArray(t)||(t=[t]),r.rank!==t.length)throw new z(`The length of input n (${t.length}) does not match the number of dimensions in input x (${r.rank})`);return $r(r,t)}function zm(r,t=0,e=1,n,o){return ac(r,t,e,n,o)}function To(r,t,e,n){if(r.rank<2||t.rank<2)throw new Nt(`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 Nt(`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 lu.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?PS(r.rank,n,mn()):null,activation:e});{let o=r.shape.slice(),s=o.pop();r=F(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=F(Mt(t,c),[u,-1]);let p=[...o,...l],m=!1,f=!1;return F(lu.matMul({a:r,b:t,transposeA:m,transposeB:f,bias:n?PS(r.rank,n,mn()):null,activation:e}),p)}}function Wy(r,t,e){return G(()=>(Array.isArray(t)?t=Ve(t,\"int32\"):t=tt(t,\"int32\"),Wi(r,t,e)))}function gc(r){return O(r,r)}function PS(r,t,e){let n=t.shape;if(t.rank!==1&&t.rank!==r)throw new z(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${r}`);if(r===5){if(e===\"channelsFirst\")return n.length===1?F(t,[1,n[0],1,1,1]):F(t,[1,n[3],n[0],n[1],n[2]]);if(e===\"channelsLast\")return n.length===1?F(t,[1,1,1,1,n[0]]):F(t,[1].concat(n))}else if(r===4){if(e===\"channelsFirst\")return n.length===1?F(t,[1,n[0],1,1]):F(t,[1,n[2],n[0],n[1]]);if(e===\"channelsLast\")return n.length===1?F(t,[1,1,1,n[0]]):F(t,[1].concat(n))}else if(r===3){if(e===\"channelsFirst\")return n.length===1?F(t,[1,n[0],1]):F(t,[1,n[1],n[0]]);if(e===\"channelsLast\")return n.length===1?F(t,[1,1,n[0]]):F(t,[1].concat(n))}else if(r<3)return t;throw new z(`Unsupported input rank by biasAdd: ${t.rank}`)}function fn(r,t,e){return G(()=>(e==null&&(e=mn()),Pe(e),J(r,PS(r.rank,t,e))))}function j$(r,t=1){if(t!==1)throw new Nt(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Bi(r)}function X$(r){return G(()=>ct(r,J($e(r),1)))}function Uy(r,t,e,n){return G(()=>bS(r,t,e,n))}function Y$(r){return G(()=>{let t=J(.5,O(.2,r));return Ir(t,0,1)})}function xu(r,t,e=!1){return e?r():t()}var Z$=[\"fanIn\",\"fanOut\",\"fanAvg\"],J$=[\"normal\",\"uniform\",\"truncatedNormal\"];function jX(r){Xi(Z$,\"FanMode\",r)}function XX(r){Xi(J$,\"Distribution\",r)}var hn=class extends rt.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Bm=class extends hn{apply(t,e){return _e(t,e)}};Bm.className=\"Zeros\";rt.registerClass(Bm);var yu=class extends hn{apply(t,e){return cr(t,e)}};yu.className=\"Ones\";rt.registerClass(yu);var Vm=class extends hn{constructor(t){if(super(),typeof t!=\"object\")throw new z(`Expected argument of type ConstantConfig but got ${t}`);if(t.value===void 0)throw new z(`config must have value set but got ${t}`);this.value=t.value}apply(t,e){return G(()=>O(mt(this.value),cr(t,e)))}getConfig(){return{value:this.value}}};Vm.className=\"Constant\";rt.registerClass(Vm);var Gm=class extends hn{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 Hi(t,this.minval,this.maxval,e)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Gm.className=\"RandomUniform\";rt.registerClass(Gm);var Wm=class extends hn{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 Nt(`randomNormal does not support dType ${e}.`);return zm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Wm.className=\"RandomNormal\";rt.registerClass(Wm);var Um=class extends hn{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 Nt(`truncatedNormal does not support dType ${e}.`);return Dm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Um.className=\"TruncatedNormal\";rt.registerClass(Um);var Hm=class extends hn{constructor(t){super(),this.gain=t.gain!=null?t.gain:1}apply(t,e){return G(()=>{if(t.length!==2||t[0]!==t[1])throw new z(\"Identity matrix initializer can only be used for 2D square matrices.\");return O(this.gain,nc(t[0]))})}getConfig(){return{gain:this.gain}}};Hm.className=\"Identity\";rt.registerClass(Hm);function YX(r,t=\"channelsLast\"){let e,n;if(Pe(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t===\"channelsFirst\"){let o=So(r,2);e=r[1]*o,n=r[0]*o}else if(t===\"channelsLast\"){let o=So(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=So(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var Wr=class extends hn{constructor(t){if(super(),t.scale<0)throw new z(`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,jX(this.mode),this.distribution=t.distribution==null?\"normal\":t.distribution,XX(this.distribution),this.seed=t.seed}apply(t,e){let n=YX(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 Nt(`${this.getClassName()} does not support dType ${e}.`);return Dm(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return Hi(t,-a,a,e)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Wr.className=\"VarianceScaling\";rt.registerClass(Wr);var xc=class extends Wr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return Wr.className}};xc.className=\"GlorotUniform\";rt.registerClass(xc);var yc=class extends Wr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return Wr.className}};yc.className=\"GlorotNormal\";rt.registerClass(yc);var bc=class extends Wr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return Wr.className}};bc.className=\"HeNormal\";rt.registerClass(bc);var wc=class extends Wr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return Wr.className}};wc.className=\"HeUniform\";rt.registerClass(wc);var Cc=class extends Wr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return Wr.className}};Cc.className=\"LeCunNormal\";rt.registerClass(Cc);var vc=class extends Wr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return Wr.className}};vc.className=\"LeCunNormal\";rt.registerClass(vc);var qm=class extends hn{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 Nt(\"Random seed is not implemented for Orthogonal Initializer yet.\")}apply(t,e){return G(()=>{if(t.length<2)throw new Nt(\"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=zm(n,0,1,\"float32\"),s=vS.gramSchmidt(o);return t[0]>t[1]&&(s=Mt(s)),O(this.gain,s)})}getConfig(){return{gain:this.gain,seed:this.seed}}};qm.className=\"Orthogonal\";rt.registerClass(qm);var Q$={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 tD(r,t={}){return ji(r,rt.SerializationMap.getMap().classNameMap,t,\"initializer\")}function Ee(r){return Pm(r)}function ge(r){if(typeof r==\"string\"){let t=r in Q$?Q$[r]:r;if(t===\"GlorotNormal\")return new yc;if(t===\"GlorotUniform\")return new xc;if(t===\"HeNormal\")return new bc;if(t===\"HeUniform\")return new wc;if(t===\"LeCunNormal\")return new Cc;if(t===\"LeCunUniform\")return new vc;{let e={};return e.className=t,e.config={},tD(e)}}else return r instanceof hn?r:tD(r)}function Hy(r){return Array.isArray(r)&&Array.isArray(r[0])}function Km(r){return r.length===0?[]:Array.isArray(r[0])?r:[r]}function Pt(r){let t;if(Array.isArray(r)){if(r.length!==1)throw new z(`Expected Tensor length to be 1; got ${r.length}`);t=r[0]}else t=r;return t}function te(r){if(Array.isArray(r)&&Array.isArray(r[0])){if(r.length===1)return r=r,r[0];throw new z(`Expected exactly 1 Shape; got ${r.length}`)}else return r}function jm(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 rD=\"Variable\",Ah=class{constructor(t,e=\"float32\",n=rD,o=!0,s=null){this.dtype=e==null?\"float32\":e,this.shape=t.shape,this.id=My(),n=n==null?rD:n,this.originalName=zy(n),this.name=By(this.originalName),this.trainable_=o,this.constraint=s,this.val=wy(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),JX(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 JX(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error(\"Shape mismatch: \"+JSON.stringify(r.shape)+\" vs. \"+JSON.stringify(t.shape))}function $h(r){return r.map(t=>t.read())}function Xm(r){r.forEach(t=>{t[0].write(t[1])})}var we=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||{}}},Xr=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=My(),i!=null&&(this.originalName=zy(i),this.name=By(this.originalName)),this.rank=e.length}},QX=0,nl=class{constructor(t,e){this.callArgs=e,this.id=QX++,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}}},t8=0,Bt=class extends rt.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=t8++,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=vo(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 Gr(`The layer has never been called and thus has no defined ${e}.`);if(this.inboundNodes.length<=t)throw new z(`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 Nn(`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 Nn(`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 Nn(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Nn(`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=be(t),this.inputSpec==null||this.inputSpec.length===0)return;let e=be(this.inputSpec);if(t.length!==e.length)throw new z(`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 z(`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 z(`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 be(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=be(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 Nt(\"Layer invocation in the presence of activity regularizer(s) is not supported yet.\");return i}else{let i=e8(t),a=this.computeOutputShape(i),u,l=r8(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 Xr(l,c,this,be(t),e,this.name,p)):u=new Xr(l,a,this,be(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new Nt(\"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 Nn(`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 Nn(`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 Gr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return jm(this.weights)}build(t){this.built=!0}getWeights(t=!1){return $h(t?this.trainableWeights:this.weights)}setWeights(t){G(()=>{let e=this.weights;if(e.length!==t.length)throw new z(`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=$h(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=be(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=be(t);e=be(e),n=be(n),o=be(o),s=Km(s),i=Km(i);let l=[],c=[],p=[];for(let m of u)l.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new nl({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 e8(r){r=be(r);let t=[];for(let e of r)t.push(e.shape);return Nr(t)}function r8(r){return\"float32\"}function MS(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=Ky.get(c),m;if(p==null){let d=o8(i,t);p=d.sorted,m=d.recipientCounts,Ky.put(c,p),jy.put(c,m)}m={},o||Object.assign(m,jy.get(c));let f=new No(t);for(let d=0;dn.maxNumTensors&&(n.maxNumTensors=P),P0,()=>\"Expected at least one fetch, got none\");let e=[],n={};if(r.length===1){let o=nD(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=nD(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:s8(n)}}function s8(r){let t={};for(let e in r)t[e]=r[e].size;return t}function nD(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 i8(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,oD);var aD={};jt(aD,{maxNorm:()=>l8,minMaxNorm:()=>p8,nonNeg:()=>c8,unitNorm:()=>u8});function zS(r,t){return G(()=>Ne(ft(O(r,r),t,!0)))}var Sc=class extends rt.Serializable{getConfig(){return{}}},Ym=class extends Sc{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 G(()=>{let e=zS(t,this.axis),n=Ir(e,0,this.maxValue);return O(t,ct(n,J(ar(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Ym.className=\"MaxNorm\";rt.registerClass(Ym);var Zm=class extends Sc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return G(()=>ct(t,J(ar(),zS(t,this.axis))))}getConfig(){return{axis:this.axis}}};Zm.className=\"UnitNorm\";rt.registerClass(Zm);var Jm=class extends Sc{apply(t){return Rr(t)}};Jm.className=\"NonNeg\";rt.registerClass(Jm);var Qm=class extends Sc{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 G(()=>{let e=zS(t,this.axis),n=J(O(this.rate,Ir(e,this.minValue,this.maxValue)),O(1-this.rate,e));return O(t,ct(n,J(ar(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Qm.className=\"MinMaxNorm\";rt.registerClass(Qm);var sD={maxNorm:\"MaxNorm\",minMaxNorm:\"MinMaxNorm\",nonNeg:\"NonNeg\",unitNorm:\"UnitNorm\"};function Ge(r){return Pm(r)}function iD(r,t={}){return ji(r,rt.SerializationMap.getMap().classNameMap,t,\"constraint\")}function We(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in sD?sD[r]:r,config:{}};return iD(e)}else return r instanceof Sc?r:iD(r)}function l8(r){return new Ym(r)}function u8(r){return new Zm(r)}function c8(){return new Jm}function p8(r){return new Qm(r)}var lD={};jt(lD,{constant:()=>d8,glorotNormal:()=>C8,glorotUniform:()=>w8,heNormal:()=>v8,heUniform:()=>I8,identity:()=>y8,leCunNormal:()=>S8,leCunUniform:()=>T8,ones:()=>f8,orthogonal:()=>N8,randomNormal:()=>g8,randomUniform:()=>h8,truncatedNormal:()=>x8,varianceScaling:()=>b8,zeros:()=>m8});function m8(){return new Bm}function f8(){return new yu}function d8(r){return new Vm(r)}function h8(r){return new Gm(r)}function g8(r){return new Wm(r)}function x8(r){return new Um(r)}function y8(r){return new Hm(r)}function b8(r){return new Wr(r)}function w8(r){return new xc(r)}function C8(r){return new yc(r)}function v8(r){return new bc(r)}function I8(r){return new wc(r)}function S8(r){return new Cc(r)}function T8(r){return new vc(r)}function N8(r){return new qm(r)}var BD={};jt(BD,{Layer:()=>Bt,RNN:()=>_n,RNNCell:()=>al,activation:()=>VY,add:()=>YY,alphaDropout:()=>R7,average:()=>ZY,averagePooling1d:()=>QS,averagePooling2d:()=>tT,averagePooling3d:()=>eT,avgPool1d:()=>i7,avgPool2d:()=>l7,avgPool3d:()=>c7,avgPooling1d:()=>a7,avgPooling2d:()=>u7,avgPooling3d:()=>p7,batchNormalization:()=>n7,bidirectional:()=>T7,concatenate:()=>JY,conv1d:()=>DY,conv2d:()=>RY,conv2dTranspose:()=>FY,conv3d:()=>OY,conv3dTranspose:()=>PY,convLstm2d:()=>C7,convLstm2dCell:()=>v7,cropping2D:()=>MY,dense:()=>GY,depthwiseConv2d:()=>BY,dot:()=>r7,dropout:()=>WY,elu:()=>NY,embedding:()=>XY,flatten:()=>HY,gaussianDropout:()=>D7,gaussianNoise:()=>$7,globalAveragePooling1d:()=>m7,globalAveragePooling2d:()=>f7,globalMaxPool1d:()=>k7,globalMaxPool2d:()=>_7,globalMaxPooling1d:()=>PD,globalMaxPooling2d:()=>LD,gru:()=>h7,gruCell:()=>g7,input:()=>KS,inputLayer:()=>TY,layerNormalization:()=>o7,leakyReLU:()=>_Y,lstm:()=>x7,lstmCell:()=>y7,masking:()=>F7,maxPool1d:()=>E7,maxPool2d:()=>A7,maxPooling1d:()=>MD,maxPooling2d:()=>zD,maxPooling3d:()=>d7,maximum:()=>QY,minimum:()=>t7,multiply:()=>e7,permute:()=>jY,prelu:()=>EY,reLU:()=>kY,repeatVector:()=>qY,reshape:()=>KY,rnn:()=>I7,separableConv2d:()=>LY,simpleRNN:()=>b7,simpleRNNCell:()=>w7,softmax:()=>AY,spatialDropout1d:()=>UY,stackedRNNCells:()=>S7,thresholdedReLU:()=>$Y,timeDistributed:()=>N7,upSampling2d:()=>zY,zeroPadding2d:()=>s7});async function Yi(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;sJ(this.totals[o],O(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:G(()=>{let o=O(ct(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),Oe(e[n])}))}},Zy=class extends ol{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 Jy(n,t))}var gn=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}`),gn.checkForDuplicate(e),gn.constructors[t]==null&&(gn.constructors[t]=[]),gn.constructors[t].push(e)}static checkForDuplicate(t){for(let e in gn.constructors)gn.constructors[+e].forEach(o=>{if(o===t)throw new z(\"Duplicate callback constructor.\")})}static clear(){gn.constructors={}}static createCallbacks(t){let e=[];for(let n in gn.constructors){let o=+n;t>=o&&e.push(...gn.constructors[o])}return e.map(n=>new n)}};gn.constructors={};function tb(r,t,e,n,o,s,i,a,u){let l=new Zy,c=[new BS,...gn.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Yy(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 xn(r,t={},e=!1){return ji(r,rt.SerializationMap.getMap().classNameMap,t,\"layer\",e)}function Dh(r,t){return G(()=>{r.dtype!==\"float32\"&&(r=tt(r,\"float32\"));let e=ft(gc(r),t,!0),n=Vi(e.shape,ar()),o=Ne(Tn(e,n));return ct(r,o)})}function Zi(r,t){return G(()=>ke(gc(ut(t,r)),-1))}function tf(r,t){return G(()=>ke($e(ut(t,r)),-1))}function bu(r,t){return G(()=>{let e=ut(r,t),n=Ir($e(r),ar(),Number.MAX_VALUE),o=$e(ct(e,n));return O(100,ke(o,-1))})}function _8(r,t){return G(()=>{let e=Ir(t,ar(),Number.MAX_VALUE),n=Sr(J(1,e)),o=Ir(r,ar(),Number.MAX_VALUE),s=Sr(J(1,o));return ke(gc(ut(n,s)),-1)})}function E8(r,t){return G(()=>{let e=Tn(0,ut(1,O(r,t)));return ke(gc(e),-1)})}function A8(r,t){return G(()=>{let e=Tn(0,ut(1,O(r,t)));return ke(e,-1)})}function $8(r,t){return G(()=>{let e=ft(O(r,t),-1),n=Mr(O(ut(1,r),t),-1);return Tn(0,J(1,ut(n,e)))})}function D8(r,t){return G(()=>{let e=Math.log(2),n=ut(t,r),o=ut(J(n,Hs(O(-2,n))),e);return ke(o,-1)})}function Tc(r,t,e=!1){return G(()=>{if(e)t=su(t);else{let n=ft(t,t.shape.length-1,!0);t=ct(t,n)}return t=Ir(t,ar(),1-ar()),Yt(ft(O(tt(r,\"float32\"),Sr(t)),t.shape.length-1))})}function ef(r,t,e=!1){return G(()=>{let n=tt(Gi(q$(r)),\"int32\");t=Ir(t,ar(),1-ar());let o=t.shape,s=F(Ri(n,o[o.length-1]),o);return Tc(s,t,e)})}function R8(r,t){if(!y.arraysEqual(r.shape,t.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);return G(()=>{let e=Rr(t),n=Yt($e(t));return J(ut(e,O(t,r)),Ql(or(n)))})}function rf(r,t){return G(()=>{let e;return e=Ir(t,ar(),1-ar()),e=Sr(ct(e,ut(1,e))),ke(R8(r,e),-1)})}function F8(r,t){return G(()=>{let e=Ir(r,ar(),1),n=Ir(t,ar(),1);return ft(O(r,Sr(ct(e,n))),-1)})}function O8(r,t){return G(()=>{let e=Sr(J(ar(),t));return ke(ut(t,O(r,e)),-1)})}function Fh(r,t){return G(()=>{let e=Dh(r,-1),n=Dh(t,-1),o=O(e,n);return Yt(ft(o,-1))})}var Rh={meanSquaredError:Zi,meanAbsoluteError:tf,meanAbsolutePercentageError:bu,meanSquaredLogarithmicError:_8,squaredHinge:E8,hinge:A8,categoricalHinge:$8,logcosh:D8,categoricalCrossentropy:Tc,sparseCategoricalCrossentropy:ef,binaryCrossentropy:rf,kullbackLeiblerDivergence:F8,poisson:O8,cosineProximity:Fh};function eb(r){if(typeof r==\"string\"){if(r in Rh)return Rh[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 z(t)}else return r}function Oh(r,t){return G(()=>{let e=O(.5,br(t)),n=hc(Xe(t,e),r.dtype);return ke(Ar(r,n),-1)})}function Ph(r,t){return G(()=>hc(Ar(Oi(r,-1),Oi(t,-1)),\"float32\"))}function pD(r,t){return G(()=>tt(ft(Dr(Ar(r,1),Ar(t,1))),\"float32\"))}function P8(r,t){return G(()=>tt(ft(Dr(Ar(r,1),Ar(t,0))),\"float32\"))}function L8(r,t){return G(()=>tt(ft(Dr(Ar(r,0),Ar(t,1))),\"float32\"))}function VS(r,t){return G(()=>{let e=pD(r,t),n=L8(r,t),o=J(e,n);return tt(De(Xe(o,0),ct(e,o),0),\"float32\")})}function mD(r,t){return G(()=>{let e=pD(r,t),n=P8(r,t),o=J(e,n);return tt(De(Xe(o,0),ct(e,o),0),\"float32\")})}function nb(r,t){return rf(r,t)}function ob(r,t){return r.rank===t.rank&&(r=Mn(r,[r.rank-1])),t=Oi(t,-1),t.dtype!==r.dtype&&(t=tt(t,r.dtype)),tt(Ar(r,t),\"float32\")}var M8=Zi,z8=Zi,B8=tf,V8=tf,G8=bu,W8=bu,Lh=Tc,U8=Fh,GS=ef,rb={binaryAccuracy:Oh,categoricalAccuracy:Ph,precision:VS,categoricalCrossentropy:Lh,sparseCategoricalCrossentropy:GS,mse:M8,MSE:z8,mae:B8,MAE:V8,mape:G8,MAPE:W8,cosine:U8};function fD(r){if(typeof r==\"string\"&&r in rb)return rb[r];if(typeof r!=\"string\"&&r!=null)return r;throw new z(`Unknown metric ${r}`)}function Mh(r){if(to(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r==\"string\")return r;{let t;for(let e of Object.keys(Rh))if(Rh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(rb))if(rb[e]===r){t=e;break}return t!==void 0?t:r.name}}function hD(r){let t={Adagrad:()=>fc.adagrad(.01),Adadelta:()=>fc.adadelta(1,.95,ar()),Adam:()=>fc.adam(.001,.9,.999,ar()),Adamax:()=>fc.adamax(.002,.9,.999,ar(),0),RMSProp:()=>fc.rmsprop(.001,.9,0,ar()),SGD:()=>fc.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 z(`Unknown Optimizer ${r}`)}function US(r,t,e=!1){if(r==null||typeof r!=\"object\"||Object.getPrototypeOf(r)!==Object.prototype||!WS(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 WS(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\"||!WS(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!WS(t))return!1;return!0}else return!1;else{let t=typeof r;return t===\"string\"||t===\"number\"||t===\"boolean\"}}function gD(r,t,e,n=console.log){let o=K8(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)),sb(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 sb(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 j8(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()];sb(a,t,e)}function X8(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)}`);Io(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,T=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(C),this.outputLayersTensorIndices.push(T)}for(let b of this.inputs){let w=b.sourceLayer,C=b.nodeIndex,T=b.tensorIndex;to(C===0,\"input layer has >1 nodes\"),to(T===0,\"input layer has >1 tensors\"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(C),this.inputLayersTensorIndices.push(T)}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,T,E,$)=>{(T==null||E==null||$==null)&&(T=b.sourceLayer,E=b.nodeIndex,$=b.tensorIndex);let D=T.inboundNodes[E];if(C.indexOf(D)!==-1)throw new Gr(`The tensor ${b.name} at layer \"${T.name}\" is part of a cycle.`);if(w.indexOf(D)!==-1)return;this.containerNodes.add(zn.nodeKey(T,E)),T.id in i||(i[T.id]=Object.keys(i).length),C.indexOf(D)===-1&&C.push(D);let P=D.inboundLayers.length;for(let M=0;M=0;)C.splice(C.indexOf(D),1);a.push(D)},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 T=0;TparseInt(b,10)).sort(kh);this.layers=[];for(let b of d){let w=f[b];w.sort((C,T)=>{let E=i[C.id],$=i[T.id];return E<$?-1:E>$?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(kh);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 T of w.inputTensors)if(h.indexOf(T)===-1)throw new Gr(`Graph disconnected: cannot obtain value for tensor ${T} at layer \"${C.name}\". The following previous layers were accessed without issue: ${g}`);for(let T of w.outputTensors)h.push(T);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 Gr(`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 nl({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 z(\"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 z(`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 z(`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 z(`${i.length} of ${o} weights are not set: ${i}`)}Xm(s)}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${nf}`,e.backend=\"TensorFlow.js\",e}toJSON(t,e=!0){let n=ib(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return G(()=>{t=be(t);let n=new No;for(let o=0;o{t=be(t);let n;return e==null?n=Co(null,t.length):n=be(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Km(t);if(e.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let a=0;aparseInt(a,10)).sort(kh);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(kh);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,T]=d[0];h.mask==null&&(h.mask=T),b=be(p.call(C,h)),w=be(p.computeMask(C,T)),g=[C],x=[T]}else g=d.map(C=>C[0]),x=d.map(C=>C[1]),h.mask==null&&(h.mask=x),b=be(p.call(g,h)),w=be(p.computeMask(g,x));if(p.activityRegularizer)throw new Nt(\"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=xn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(C=>{if(!(C instanceof Array))throw new z(`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(;!R$(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];to(x in s);let T=s[x].inboundNodes[b].outputTensors;m.push(T[w])}let h=e.outputLayers;for(let g of h){let x=g[0],b=g[1],w=g[2];to(x in s);let T=s[x].inboundNodes[b].outputTensors;f.push(T[w])}return new t({inputs:m,outputs:f,name:c})}get stateful(){if(this._stateful)throw new z(\"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(){G(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function Y8(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 ab(r,t){return Y8(r,t,\"classWeight\")}async function lb(r,t,e,n){if(t!=null||n!=null)throw new Error(\"Support sampleWeight is not implemented yet\");if(e!=null){let o=G(()=>{if(r.shape.length===1)return an(r);if(r.shape.length===2){if(r.shape[1]>1)return Oi(r,1);if(r.shape[1]===1)return F(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());_t(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])}),Ve(i,\"float32\")}else return null}function yD(r,t){return O(r,t)}var Z8=32;function CD(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=bD(\"input\",r.inputNames,e),i=bD(\"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 bD(r,t,e){if(e instanceof Lt)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 z(`The feature data generated by the dataset lacks the required ${r} key '${o}'.`);n.push(e[o])}return n}}function J8(r){if(r.length===3)throw new Nt(\"Validation with sample weights is not implemented yet.\");return{xs:r[0],ys:r[1]}}async function vD(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(wD(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=J8(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=Qy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=tb(c,p,e.epochs,null,null,Q8(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;wD(e.validationData)?C=be(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):C=be(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?Z8:e.validationBatchSize,verbose:0}));for(let T=0;T0)throw new Nt(\"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=tY(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=CD(r,l.value),m=c.concat(p),f=G(()=>o(m));if(_t(m),u===0)for(let h=0;hJ(s[h],O(d,g))),u>0&&_t(x)}_t(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 of(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>el(n,t,e-t)):el(r,t,e-t)}function cb(r,t){return G(()=>r==null?null:Array.isArray(r)?r.map(e=>cb(e,t)):Wy(r,t.dtype===\"int32\"?t:tt(t,\"int32\")))}function pb(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}async function eY(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 z(\"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=jr(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=tb(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 M=$[D][0],W=$[D][1],H=el(E,M,W-M);P.batch=D,P.size=W-M;let q=cb(e,H),X=t(q);for(let j=0;j0){if(g=!0,n.validationData.length===2)u=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new Nt(\"validationData including sample weights is not supported yet.\"):new z(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);let P=!0,M=await r.standardizeUserData(u,l,null,null,P,f);c=M[0],p=M[1],x=c.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){g=!0;let P=Math.floor(o[0].shape[0]*(1-n.validationSplit)),M=o[0].shape[0];c=of(o,P,M),i=o,o=of(o,0,P),p=of(s,P,M),a=s,s=of(s,0,P),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(),T,E;g?(r.makeTestFunction(),T=r.testFunction,E=C.slice().concat(C.map(P=>\"val_\"+P))):(T=null,x=[],E=C.slice());let $=Qy(n.callbacks,n.yieldEvery);return await eY(r,w,b,C,f,n.epochs,n.verbose,$,T,x,n.shuffle,E,n.initialEpoch,null,null)}finally{r.isTraining=!1,ko(o,t),ko(s,e),ko(i,t),ko(a,e),ko(c,u),ko(p,l),m!=null&&_t(m)}}function HS(r){let t=[];r instanceof Lt&&(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 Lt)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 rY(r){return r instanceof Lt}function qS(r){return Array.isArray(r)}function TD(r){return!rY(r)&&!qS(r)}function ND(r,t,e,n=!0,o=\"\"){if(t==null||t.length===0){if(r!=null){let i=!1;if(qS(r)&&r.length>0)i=!0;else if(TD(r)){for(let a in r)if(r.hasOwnProperty(a)){i=!0;break}}else i=!0;if(i)throw new z(`Error when checking model ${o} expected no data, but got ${r}`)}return[]}if(r==null)return t.map(i=>null);let s;if(TD(r)){r=r,s=[];for(let i of t){if(r[i]==null)throw new z(`No data provided for \"${i}\". Need data for each key in: ${t}`);s.push(r[i])}}else if(qS(r)){if(r=r,r.length!==t.length)throw new z(`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 z(`The model ${o} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=HS(s),e!=null)for(let i=0;i=0&&l!==c)throw new z(`${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 nY(r,t,e){let n=Io(r.map(s=>s.shape[0]));n.sort();let o=Io(t.map(s=>s.shape[0]));if(o.sort(),n.length>1)throw new z(`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 z(`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 z(`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 oY(r,t,e){let n=[Zi,rf,Tc];for(let o=0;o1)throw new z(`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 iY=\"layers-model\",Bn=class extends zn{constructor(t){super(t),this.isTraining=!1}summary(t,e,n=console.log){if(!this.built)throw new z(\"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).\");gD(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer==\"string\")this.optimizer_=hD(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof Br))throw new z(\"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 z(`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(eb(t.loss[i]))}else if(Array.isArray(t.loss)){if(t.loss.length!==this.outputs.length)throw new z(`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=>eb(a))}else{let i=eb(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=sY(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])};Ys(\"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]===rf?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Oh:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=nb):this.lossFunctions[i]===ef?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=ob:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=GS):[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Ph:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=Lh);let x;[\"accuracy\",\"acc\"].indexOf(d)!==-1?x=\"acc\":[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(x=\"ce\"),f=m,p=c+x}else f=fD(d),p=c+Mh(d);let h;Ys(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;ub(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{ko(i[0],t),ko(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),ID(this,t,e)}checkNumSamples(t,e,n,o=\"steps\"){let s;if(n!=null){if(s=null,e!=null)throw new z(`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 z(`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 z(\"`outputs` is an empty Array, which is not allowed.\");let n=Array.isArray(e),o=n?e:[e],s=this.retrieveSymbolicTensors(o),i=new No;if(t instanceof Lt&&(t=[t]),Array.isArray(t)){if(t.length!==this.inputs.length)throw new z(`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 z(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(o)}`)}return e}predictLoop(t,e=32,n=!1){return G(()=>{let o=this.checkNumSamples(t);if(n)throw new Nt(\"Verbose predictLoop() is not implemented yet.\");let s=pb(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=of(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return Nr(i.map(a=>se(a,0)))})}predict(t,e={}){let n=HS(t);kD(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return ub(o),this.predictLoop(n,o)}finally{ko(n,t)}}predictOnBatch(t){kD(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 Gr(\"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 z(`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=ab(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,\"steps\"),a=[];if(o>0)throw new Nt(\"Verbose mode is not implemented yet.\");if(s!=null)throw new Nt(\"steps mode in testLoop() is not implemented yet\");{let u=pb(i,n),l=Ve(jr(0,i));for(let c=0;c1&&(s+=`_${DS(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=J(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=>G(()=>{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;lvo(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]=vo(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[vo(Mh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>vo(Mh(t)));{let t={};for(let e in this.metrics)t[e]=vo(Mh(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=Nc(t.optimizer_config),n=xn(e),o;if(typeof t.loss==\"string\")o=tl(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>tl(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=tl(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>tl(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=tl(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t==\"string\"){let l=vn.getSaveHandlers(t);if(l.length===0)throw new z(`Cannot find any save handlers for URL '${t}'`);if(l.length>1)throw new z(`Found more than one (${l.length}) save handlers for URL '${t}'`);t=l[0]}if(t.save==null)throw new z(\"LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.\");let n=await vn.encodeWeights(this.getNamedWeights(e)),o=!1,s=null,a={modelTopology:this.toJSON(s,o),format:iY,generatedBy:`TensorFlow.js tfjs-layers v${nf}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l=\"optimizer\",{data:c,specs:p}=await vn.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=vn.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(US(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){US(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};Bn.className=\"Model\";rt.registerClass(Bn);var mb=class extends Bn{};mb.className=\"Functional\";rt.registerClass(mb);async function _D(r,t){\"modelTopology\"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=Nc(e),o=xn(n,t);if(r.weightsManifest!=null){let s=await vn.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),_t(s)}return o}async function ED(r,t){if(t==null&&(t={}),typeof r==\"string\"){let e=vn.getLoadHandlers(r,t);if(e.length===0)e.push(vn.browserHTTPRequest(r,t));else if(e.length>1)throw new z(`Found more than one (${e.length}) load handlers for URL '${r}'`);r=e[0]}return aY(r,void 0,t)}async function aY(r,t,e){if(e==null&&(e={}),r.load==null)throw new z(\"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=xn(Nc(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 z(\"LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.\");let{modelWeights:l,optimizerWeights:c}=lY(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),_t(l),_t(c.map(p=>p.tensor))}return a}function lY(r,t){let e=vn.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 Ji=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 z(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let e=t instanceof Ji||t instanceof Bn,n;if(e){if(n=t,n.outputs.length!==1)throw new z(\"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 z(\"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 z(\"The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.\");let o=qy({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 z(`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 z(\"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=MS(this.outputs[0])}this.inboundNodes=[],new nl({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Co(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(te(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 Gr(\"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 Gr(\"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 Gr(\"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 Gr(\"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 z(\"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 Ji))throw new Nt(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=xn(u,void 0,o);o&&c.setFastWeightInitDuringBuild(!0),a.add(c)}return a}set stopTraining(t){if(this.model==null)throw new z(\"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 z(\"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}}};Ji.className=\"Sequential\";rt.registerClass(Ji);function uY(r){return new Bn(r)}function cY(r){return new Ji(r)}function pY(r,t){return t==null&&(t={}),ED(r,t)}function KS(r){return qy(r)}function mY(r,t){gn.registerCallbackConstructor(r,t)}var Yr=class extends rt.Serializable{getConfig(){return{}}},fb=class extends Yr{apply(t,e=1){return j$(t,e)}};fb.className=\"elu\";rt.registerClass(fb);var db=class extends Yr{apply(t){return Sm(t)}};db.className=\"selu\";rt.registerClass(db);var hb=class extends Yr{apply(t){return Rr(t)}};hb.className=\"relu\";rt.registerClass(hb);var gb=class extends Yr{apply(t){return G(()=>Ui(6,Rr(t)))}};gb.className=\"relu6\";rt.registerClass(gb);var xb=class extends Yr{apply(t){return t}};xb.className=\"linear\";rt.registerClass(xb);var yb=class extends Yr{apply(t){return Kr(t)}};yb.className=\"sigmoid\";rt.registerClass(yb);var bb=class extends Yr{apply(t){return Y$(t)}};bb.className=\"hardSigmoid\";rt.registerClass(bb);var wb=class extends Yr{apply(t){return Hs(t)}};wb.className=\"softplus\";rt.registerClass(wb);var Cb=class extends Yr{apply(t){return X$(t)}};Cb.className=\"softsign\";rt.registerClass(Cb);var vb=class extends Yr{apply(t){return Pi(t)}};vb.className=\"tanh\";rt.registerClass(vb);var sf=class extends Yr{apply(t,e=-1){return su(t,e)}};sf.className=\"softmax\";rt.registerClass(sf);var Ib=class extends Yr{apply(t,e=-1){return ym(t,e)}};Ib.className=\"logSoftmax\";rt.registerClass(Ib);var Sb=class extends Yr{apply(t,e=1){return G(()=>O(Kr(O(t,e)),t))}};Sb.className=\"swish\";rt.registerClass(Sb);var Tb=class extends Yr{apply(t){return G(()=>O(t,Pi(Hs(t))))}};Tb.className=\"mish\";rt.registerClass(Tb);function Qs(r){return r.getClassName()}function jS(r,t={}){return ji(r,rt.SerializationMap.getMap().classNameMap,t,\"activation\")}function ti(r){if(r==null){let t={};return t.className=\"linear\",t.config={},jS(t)}if(typeof r==\"string\"){let t={};return t.className=r,t.config={},jS(t)}else return r instanceof Yr?r:jS(r)}function XS(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 Nb=class extends rt.Serializable{},wu=class extends Nb{constructor(t){super(),XS(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 G(()=>{let e=_e([1]);return this.hasL1&&(e=J(e,ft(O(this.l1,$e(t))))),this.hasL2&&(e=J(e,ft(O(this.l2,gc(t))))),F(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\";rt.registerClass(wu);function DD(r){return XS(r),new wu({l1:r!=null?r.l1:null,l2:0})}function RD(r){return XS(r),new wu({l2:r!=null?r.l2:null,l1:0})}var AD={l1l2:\"L1L2\"};function de(r){return Pm(r)}function $D(r,t={}){return ji(r,rt.SerializationMap.getMap().classNameMap,t,\"regularizer\")}function Ce(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in AD?AD[r]:r,config:{}};return $D(e)}else return r instanceof Nb?r:$D(r)}var af=class extends Bt{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=Pt(t);let n=Rr(t);return this.maxValue!=null&&(n=Ir(n,0,this.maxValue)),n}computeOutputShape(t){return t}getConfig(){let t={maxValue:this.maxValue},e=super.getConfig();return Object.assign(t,e),t}};af.className=\"ReLU\";rt.registerClass(af);var lf=class extends Bt{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=Pt(t);return Jl(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};lf.className=\"LeakyReLU\";rt.registerClass(lf);var uf=class extends Bt{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER=\"zeros\",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=ge(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Ce(t.alphaRegularizer),this.alphaConstraint=We(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 z(`Expected sharedAxes to be a number or an array of numbers, but got ${t.sharedAxes}`)}build(t){t=te(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(Pe(t),t===\"channelsFirst\"?Mt(r,[0,2,3,1]):r))}function YS(r,t){return G(()=>(Pe(t),t===\"channelsFirst\"?Mt(r,[0,2,3,4,1]):r))}function dY(r,t,e,n=1,o=\"valid\",s,i=1){return G(()=>{if(s==null&&(s=mn()),Pe(s),r.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${r.shape.length} instead.`);if(t.shape.length!==3)throw new z(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(e!=null&&e.shape.length!==1)throw new z(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s===\"channelsFirst\"&&(r=Mt(r,[0,2,1])),o===\"causal\")throw new Nt(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");let a=mm(r,t,n,o===\"same\"?\"same\":\"valid\",\"NWC\",i);return e!=null&&(a=fn(a,e)),a})}function FD(r,t,e,n=[1,1],o=\"valid\",s,i,a=null){return G(()=>{if(s==null&&(s=mn()),Pe(s),r.rank!==3&&r.rank!==4)throw new z(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${r.rank}.`);if(t.rank!==3&&t.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let u=zh(r,s);if(o===\"causal\")throw new Nt(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");return u=lu.conv2d({x:u,filter:t,strides:n,pad:o===\"same\"?\"same\":\"valid\",dilations:i,dataFormat:\"NHWC\",bias:e,activation:a}),s===\"channelsFirst\"&&(u=Mt(u,[0,3,1,2])),u})}function hY(r,t,e,n=[1,1,1],o=\"valid\",s,i){return G(()=>{if(s==null&&(s=mn()),Pe(s),r.rank!==4&&r.rank!==5)throw new z(`conv3dWithBias expects input to be of rank 4 or 5, but received ${r.rank}.`);if(t.rank!==4&&t.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let a=YS(r,s);if(o===\"causal\")throw new Nt(\"The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.\");return a=Bx(a,t,n,o===\"same\"?\"same\":\"valid\",\"NDHWC\",i),e!=null&&(a=fn(a,e)),s===\"channelsFirst\"&&(a=Mt(a,[0,4,1,2,3])),a})}var kc=class extends Bt{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",kc.verifyArgs(e),this.rank=t,Je(this.rank,\"rank\"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Nt(`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,Pe(this.dataFormat),this.activation=ti(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=ge(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=We(e.biasConstraint),this.biasRegularizer=Ce(e.biasRegularizer),this.activityRegularizer=Ce(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 z(`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 z(`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 z(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(t){if(to(\"kernelSize\"in t,\"required key 'kernelSize' not in config\"),typeof t.kernelSize!=\"number\"&&!Oy(t.kernelSize,\"number\",1,3))throw new z(`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:Qs(this.activation),useBias:this.useBias,biasInitializer:Ee(this.biasInitializer),biasRegularizer:de(this.biasRegularizer),activityRegularizer:de(this.activityRegularizer),biasConstraint:Ge(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},vu=class extends kc{constructor(t,e){super(t,e),this.kernel=null,vu.verifyArgs(e),this.filters=e.filters,Je(this.filters,\"filters\"),this.kernelInitializer=ge(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=We(e.kernelConstraint),this.kernelRegularizer=Ce(e.kernelRegularizer)}build(t){t=te(t);let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new z(`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 G(()=>{t=Pt(t);let n,o=this.bias==null?null:this.bias.read(),s=Py(this.activation.getClassName());if(s!=null&&this.rank===2)n=FD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=dY(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=FD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=hY(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Nt(\"convolutions greater than 3D are not implemented yet.\");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=te(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)}`)}},sl=class extends vu{constructor(t){super(2,t),sl.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!Oy(t.kernelSize,\"number\",1,2))throw new z(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(t.kernelSize)}.`)}};sl.className=\"Conv2D\";rt.registerClass(sl);var il=class extends vu{constructor(t){super(3,t),il.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 z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};il.className=\"Conv3D\";rt.registerClass(il);var ff=class extends sl{constructor(t){if(super(t),this.inputSpec=[new we({ndim:4})],this.padding!==\"same\"&&this.padding!==\"valid\")throw new z(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=te(t),t.length!==4)throw new z(\"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 z(\"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 we({ndim:4,axes:{[e]:n}})],this.built=!0}call(t,e){return G(()=>{let n=Pt(t);if(n.shape.length!==4)throw new z(`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=ei(u,m,c,this.padding),h=ei(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Mt(n,[0,2,3,1]));let x=dm(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(x=Mt(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=te(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]=ei(e[o],u,i,this.padding),e[s]=ei(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};ff.className=\"Conv2DTranspose\";rt.registerClass(ff);var df=class extends il{constructor(t){if(super(t),this.inputSpec=[new we({ndim:5})],this.padding!==\"same\"&&this.padding!==\"valid\")throw new z(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=te(t),t.length!==5)throw new z(\"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 z(\"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 we({ndim:5,axes:{[e]:n}})],this.built=!0}call(t,e){return G(()=>{let n=Pt(t);if(n.shape.length!==5)throw new z(`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=ei(l,h,m,this.padding),w=ei(c,g,f,this.padding),C=ei(p,x,d,this.padding),T=[s,b,w,C,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Mt(n,[0,2,3,4,1]));let E=Gx(n,this.kernel.read(),T,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(E=Mt(E,[0,4,1,2,3])),this.bias!==null&&(E=fn(E,this.bias.read(),this.dataFormat)),this.activation!==null&&(E=this.activation.apply(E)),E})}computeOutputShape(t){t=te(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]=ei(e[o],c,a,this.padding),e[s]=ei(e[s],p,u,this.padding),e[i]=ei(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};df.className=\"Conv3DTranspose\";rt.registerClass(df);var kb=class extends vu{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 z(\"The `filters` configuration field is required by SeparableConv, but is unspecified.\");if(e.kernelInitializer!=null||e.kernelRegularizer!=null||e.kernelConstraint!=null)throw new z(\"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 z(`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=ge(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Ce(e.depthwiseRegularizer),this.depthwiseConstraint=We(e.depthwiseConstraint),this.pointwiseInitializer=ge(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Ce(e.pointwiseRegularizer),this.pointwiseConstraint=We(e.pointwiseConstraint)}build(t){if(t=te(t),t.length{t=Pt(t);let n;if(this.rank===1)throw new Nt(\"1D separable convolution is not implemented yet.\");return this.rank===2&&(this.dataFormat===\"channelsFirst\"&&(t=Mt(t,[0,2,3,1])),n=Tm(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=Mt(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=Ee(this.depthwiseInitializer),t.pointwiseInitializer=Ee(this.pointwiseInitializer),t.depthwiseRegularizer=de(this.depthwiseRegularizer),t.pointwiseRegularizer=de(this.pointwiseRegularizer),t.depthwiseConstraint=Ge(this.depthwiseConstraint),t.pointwiseConstraint=Ge(this.pointwiseConstraint),t}};kb.className=\"SeparableConv\";var hf=class extends kb{constructor(t){super(2,t)}};hf.className=\"SeparableConv2D\";rt.registerClass(hf);var Iu=class extends vu{constructor(t){super(1,t),Iu.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\"&&!Oy(t.kernelSize,\"number\",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};Iu.className=\"Conv1D\";rt.registerClass(Iu);var gf=class extends Bt{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 G(()=>{if(t=Pt(t),this.dataFormat===\"channelsLast\"){let n=Eh(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Eh(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Eh(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Eh(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}};gf.className=\"Cropping2D\";rt.registerClass(gf);var xf=class extends Bt{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,Pe(this.dataFormat),this.interpolation=t.interpolation==null?\"nearest\":t.interpolation,G$(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 G(()=>{let n=Pt(t),o=n.shape;if(this.dataFormat===\"channelsFirst\"){n=Mt(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation===\"nearest\"?uu.resizeNearestNeighbor(n,[s,i]):uu.resizeBilinear(n,[s,i]);return Mt(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation===\"nearest\"?uu.resizeNearestNeighbor(n,[s,i]):uu.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}};xf.className=\"UpSampling2D\";rt.registerClass(xf);function gY(r,t,e=[1,1],n=\"valid\",o,s){return G(()=>{o==null&&(o=mn()),Pe(o);let i=zh(r,o);if(r.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(t.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=zi(i,t,e,n===\"same\"?\"same\":\"valid\",\"NHWC\",s),o===\"channelsFirst\"&&(i=Mt(i,[0,3,1,2])),i})}var yf=class extends kc{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=ge(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=We(t.depthwiseConstraint),this.depthwiseRegularizer=Ce(t.depthwiseRegularizer)}build(t){if(t=te(t),t.length<4)throw new z(`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 z(`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 G(()=>{t=Pt(t);let n=gY(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=te(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=kn(e,this.kernelSize[0],this.padding,this.strides[0]),i=kn(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=Ee(this.depthwiseInitializer),t.depthwiseRegularizer=de(this.depthwiseRegularizer),t.depthwiseConstraint=Ge(this.depthwiseRegularizer),t}};yf.className=\"DepthwiseConv2D\";rt.registerClass(yf);function ZS(r,t,e,n){if(Array.isArray(r)){if(t!=null||e!=null)throw new z(\"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 JS(r,t,e,n=!1,o,s,i=!1,a=!1){return G(()=>{let u=t.shape.length;if(u<3)throw new z(`Input should be at least 3D, but is ${u}D.`);let l=[1,0].concat(jr(2,u));if(t=Mt(t,l),s!=null)throw new Nt(\"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=tt(tt(o,\"bool\"),\"float32\"),o.rank===u-1&&(o=yr(o,-1)),o=Mt(o,l)),n&&(t=pr(t,0),o!=null&&(o=pr(o,0)));let c=[],p,m=e,f=t.shape[0],d=Tr(t),h;o!=null&&(h=Tr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let C=G(()=>{let T=h[x],E=ut(br(T),T),$=J(O(w[0],T),O(m[0],E)),D=m.map((P,M)=>J(O(w[1][M],T),O(P,E)));return{output:$,newStates:D}});p=C.output,m=C.newStates}a&&c.push(p)}let g;return a&&(g=sr(c,1)),[p,g,m]})}var _n=class extends Bt{constructor(t){super(t);let e;if(t.cell==null)throw new z(\"cell property is missing for the constructor of RNN.\");if(Array.isArray(t.cell)?e=new Ac({cells:t.cell}):e=t.cell,e.stateSize==null)throw new z(\"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 we({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 jr(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){Hy(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 G(()=>{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 z(`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 we({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){G(()=>{if(!this.stateful)throw new Nn(\"Cannot call resetStates() on an RNN Layer that is not stateful.\");let n=this.inputSpec[0].shape[0];if(n==null)throw new z(\"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=>_e([n,o])):this.states_=[_e([n,this.cell.stateSize])];else if(t==null)_t(this.states_),this.keptStates!=null&&(_t(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>_e([n,o])):this.states_[0]=_e([n,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new z(`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()):_t(this.states_);for(let o=0;oOe(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=ZS(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 we({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 Xr){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 G(()=>{let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;t=Pt(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 z(`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=JS((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 G(()=>{let e=_e(t.shape);return e=ft(e,[1,2]),e=rl(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Gy(e,[1,n]):e):this.cell.stateSize>1?[Gy(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()===_n.className&&(e.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,t,e)}static fromConfig(t,e,n={}){let o=e.cell,s=xn(o,n);return new t(Object.assign(e,{cell:s}))}};_n.className=\"RNN\";rt.registerClass(_n);var al=class extends Bt{},_c=class extends al{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,Je(this.units,\"units\"),this.activation=ti(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=ge(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=ge(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=ge(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=We(t.kernelConstraint),this.recurrentConstraint=We(t.recurrentConstraint),this.biasConstraint=We(t.biasConstraint),this.dropout=dc([1,Zs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=dc([1,Zs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=te(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 G(()=>{if(t=t,t.length!==2)throw new z(`SimpleRNNCell expects 2 input Tensors, got ${t.length}.`);let n=t[1];t=t[0];let o=e.training==null?!1:e.training;0br(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0br(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=To(O(t,i),this.kernel.read()):s=To(t,this.kernel.read()),this.bias!=null&&(s=fn(s,this.bias.read())),a!=null&&(n=O(n,a));let u=J(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:Qs(this.activation),useBias:this.useBias,kernelInitializer:Ee(this.kernelInitializer),recurrentInitializer:Ee(this.recurrentInitializer),biasInitializer:Ee(this.biasInitializer),kernelRegularizer:de(this.kernelRegularizer),recurrentRegularizer:de(this.recurrentRegularizer),biasRegularizer:de(this.biasRegularizer),activityRegularizer:de(this.activityRegularizer),kernelConstraint:Ge(this.kernelConstraint),recurrentConstraint:Ge(this.recurrentConstraint),biasConstraint:Ge(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},t,e)}};_c.className=\"SimpleRNNCell\";rt.registerClass(_c);var bf=class extends _n{constructor(t){t.cell=new _c(t),super(t)}call(t,e){return G(()=>{this.cell.dropoutMask!=null&&(_t(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_t(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)}};bf.className=\"SimpleRNN\";rt.registerClass(bf);var Ec=class extends al{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 z(\"GRUCell does not support reset_after parameter set to true.\");this.units=t.units,Je(this.units,\"units\"),this.activation=ti(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=ti(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=ge(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=ge(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=ge(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=We(t.kernelConstraint),this.recurrentConstraint=We(t.recurrentConstraint),this.biasConstraint=We(t.biasConstraint),this.dropout=dc([1,Zs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=dc([1,Zs([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=te(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 G(()=>{if(t=t,t.length!==2)throw new z(`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],0br(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0br(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&&(_t(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_t(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)}};wf.className=\"GRU\";rt.registerClass(wf);var ll=class extends al{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,Je(this.units,\"units\"),this.activation=ti(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=ti(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=ge(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=ge(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=ge(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=We(t.kernelConstraint),this.recurrentConstraint=We(t.recurrentConstraint),this.biasConstraint=We(t.biasConstraint),this.dropout=dc([1,Zs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=dc([1,Zs([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=te(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 hn{apply(u,l){let c=s.apply([i]),p=new yu().apply([i]),m=s.apply([i*2]);return LS(LS(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 G(()=>{let n=e.training==null?!1:e.training;if(t=t,t.length!==3)throw new z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let o=t[1],s=t[2];t=t[0],0br(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0br(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&&(_t(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_t(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)}};Cf.className=\"LSTM\";rt.registerClass(Cf);var Ac=class extends al{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 G(()=>{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{Ys(`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({},t,o)}static fromConfig(t,e,n={}){let o=[];for(let s of e.cells)o.push(xn(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 $h(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):Uy(t(),e),a=()=>xu(i,t,n);return!o||o<=1?Oe(a().clone()):Array(o).fill(void 0).map(a).map(l=>Oe(l.clone()))}var xY=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&&(_t(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_t(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),e&&e.constants)throw new z(\"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 G(()=>{let{stateSize:e}=this.cell,n=t.shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)],i=_e(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){G(()=>{if(!this.stateful)throw new Nn(\"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 z(\"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(()=>_e(s)):this.states_=[_e(s)];else if(t==null)_t(this.states_),this.keptStates!=null&&(_t(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>_e(s)):this.states_[0]=_e(s);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new z(`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()):_t(this.states_);for(let a=0;aOe(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=kn(l,o[0],s,i[0],a[0]),m=kn(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};_b.className=\"ConvRNN2D\";var $c=class extends ll{constructor(t){let{filters:e,kernelSize:n,strides:o,padding:s,dataFormat:i,dilationRate:a}=t;super(Object.assign({},t,{units:e})),this.filters=e,Je(this.filters,\"filters\"),this.kernelSize=Cu(n,2,\"kernelSize\"),this.kernelSize.forEach(u=>Je(u,\"kernelSize\")),this.strides=Cu(o||1,2,\"strides\"),this.strides.forEach(u=>Je(u,\"strides\")),this.padding=s||\"valid\",pn(this.padding),this.dataFormat=i||\"channelsLast\",Pe(this.dataFormat),this.dilationRate=Cu(a||1,2,\"dilationRate\"),this.dilationRate.forEach(u=>Je(u,\"dilationRate\"))}build(t){var e;t=te(t);let n=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[n]==null)throw new z(`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 hn{apply(m,f){let d=l.apply([c]),h=cr([c]),g=l.apply([c*2]);return Mm([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 G(()=>{if(t.length!==3)throw new z(`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;0br(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(st,it,pt)=>!it||!it[pt]?st:O(it[pt],st),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0br(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,T,E,$]=mr(this.kernel.read(),a,w),[D,P,M,W]=this.useBias?mr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,C,D,this.padding),p=this.inputConv(p,T,P,this.padding),m=this.inputConv(m,E,M,this.padding),f=this.inputConv(f,$,W,this.padding);let[H,q,X,j]=mr(this.recurrentKernel.read(),a,w);h=this.recurrentConv(h,H),g=this.recurrentConv(g,q),x=this.recurrentConv(x,X),b=this.recurrentConv(b,j);let Z=this.recurrentActivation.apply(J(c,h)),et=this.recurrentActivation.apply(J(p,g)),K=J(O(et,i),O(Z,this.activation.apply(J(m,x)))),ot=O(this.recurrentActivation.apply(J(f,b)),this.activation.apply(K));return[ot,ot,K]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=xY(t,[\"units\"]),o={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},n,o)}inputConv(t,e,n,o){let s=Sn(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 Sn(t,e,1,\"same\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\")}};$c.className=\"ConvLSTM2DCell\";rt.registerClass($c);var vf=class extends _b{constructor(t){let e=new $c(t);super(Object.assign({},t,{cell:e}))}static fromConfig(t,e){return new t(e)}};vf.className=\"ConvLSTM2D\";rt.registerClass(vf);var Dc=class extends Bt{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=Pt(t);if(0Uy(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()}};Dc.className=\"Dropout\";rt.registerClass(Dc);var If=class extends Dc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};If.className=\"SpatialDropout1D\";rt.registerClass(If);var Sf=class extends Bt{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,Je(this.units,\"units\"),this.activation=ti(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=ge(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=ge(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=We(t.kernelConstraint),this.biasConstraint=We(t.biasConstraint),this.kernelRegularizer=Ce(t.kernelRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.activityRegularizer=Ce(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=te(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=te(t);let e=t.slice();return e[e.length-1]=this.units,e}call(t,e){return G(()=>{this.invokeCallHook(t,e);let n=Pt(t),o=Py(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:Qs(this.activation),useBias:this.useBias,kernelInitializer:Ee(this.kernelInitializer),biasInitializer:Ee(this.biasInitializer),kernelRegularizer:de(this.kernelRegularizer),biasRegularizer:de(this.biasRegularizer),activityRegularizer:de(this.activityRegularizer),kernelConstraint:Ge(this.kernelConstraint),biasConstraint:Ge(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};Sf.className=\"Dense\";rt.registerClass(Sf);var Tf=class extends Bt{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=te(t);for(let e of t.slice(1))if(e==null)throw new z(`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],So(t,1)]}call(t,e){return G(()=>{this.invokeCallHook(t,e);let n=Pt(t);if(this.dataFormat===\"channelsFirst\"&&n.rank>1){let o=[0];for(let s=2;s{this.invokeCallHook(t,e);let n=Pt(t);return this.activation.apply(n)})}getConfig(){let t={activation:Qs(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};Nf.className=\"Activation\";rt.registerClass(Nf);var kf=class extends Bt{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 G(()=>(t=Pt(t),H$(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};kf.className=\"RepeatVector\";rt.registerClass(kf);var _f=class extends Bt{constructor(t){super(t),this.targetShape=t.targetShape;for(let e=0;e{this.invokeCallHook(t,e);let n=Pt(t),o=n.shape,s=o.slice(0,1).concat(this.fixUnknownDimension(o.slice(1),this.targetShape));return F(n,s)})}getConfig(){let t={targetShape:this.targetShape},e=super.getConfig();return Object.assign(t,e),t}};_f.className=\"Reshape\";rt.registerClass(_f);var Ef=class extends Bt{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=jr(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 we({ndim:this.dims.length+1})]}computeOutputShape(t){t=te(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Mt(Pt(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};Ef.className=\"Permute\";rt.registerClass(Ef);var Af=class extends Bt{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=Pt(t),o=-1;return Ju(qs(n,this.maskValue),o)}call(t,e){return G(()=>{this.invokeCallHook(t,e);let n=Pt(t),o=-1,s=!0,i=Ju(qs(n,this.maskValue),o,s);return O(n,tt(i,n.dtype))})}};Af.className=\"Masking\";rt.registerClass(Af);var $f=class extends Bt{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(be(t.inputLength))}this.inputDim=t.inputDim,Je(this.inputDim,\"inputDim\"),this.outputDim=t.outputDim,Je(this.outputDim,\"outputDim\"),this.embeddingsInitializer=ge(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Ce(t.embeddingsRegularizer),this.activityRegularizer=Ce(t.activityRegularizer),this.embeddingsConstraint=We(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 G(()=>this.maskZero?(t=Pt(t),qs(t,St(t))):null)}computeOutputShape(t){if(t=te(t),this.inputLength==null)return[...t,this.outputDim];let e=be(this.inputLength);if(e.length!==t.length-1)throw new z(`\"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=Pt(t);n.dtype!==\"int32\"&&(n=hc(n,\"int32\"));let o=Wy(this.embeddings.read(),F(n,[n.size]));return F(o,te(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ee(this.embeddingsInitializer),embeddingsRegularizer:de(this.embeddingsRegularizer),activityRegularizer:de(this.activityRegularizer),embeddingsConstraint:Ge(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};$f.className=\"Embedding\";rt.registerClass($f);var cl=class extends Bt{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new Nt}computeElementwiseOpOutputShape(t,e){if(t==null||e==null)return null;if(t.length1)throw new z(`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&&Io(o).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(t,e){return G(()=>{if(t=t,this.reshapeRequired){let n=[],o=t.map(s=>s.rank);if(o.indexOf(null)===-1){let s=Zs(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=jr(1,l).concat([0]);n.push(Mt(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=F(Mt(F(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(jr(0,a-1));i=Mt(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 z(\"`mask` should be an Array\");if(!Array.isArray(t))throw new z(\"`inputs` should be an Array\");if(e.length!==t.length)throw new z(`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:yr(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 z(\"A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: \"+JSON.stringify(t))}mergeFunction(t){return G(()=>Mm(t,this.axis))}computeOutputShape(t){if(!(Array.isArray(t)&&Array.isArray(t[0])))throw new z(\"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 z(\"`mask` should be an array for Concatenate\");if(!Array.isArray(t))throw new z(\"`inputs` should be an array for Concatenate\");if(e.length!==t.length)throw new z(`Mismatch in the length of mask (${e.length}) and the legnth of inputs (${t.length})`);return G(()=>{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 Nt(\"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 Nt(\"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 G(()=>{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 Nt(\"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 z(`Dimension incompatibility: ${e[o[0]]} !== ${n[o[1]]}`)}mergeFunction(t){if(t.length!==2)throw new z(`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)=>Bh(s,t[i].shape.length)):o=[Bh(this.axes,e.shape.length),Bh(this.axes,n.shape.length)],this.normalize&&(e=Dh(e,o[0]),n=Dh(n,o[1])),yY(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[Bh(this.axes,t.length),Bh(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 Nt(\"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}};Mf.className=\"Dot\";rt.registerClass(Mf);var zf=class extends Bt{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 G(()=>{this.invokeCallHook(t,e);let n=Pt(t);return xu(()=>J(zm(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};zf.className=\"GaussianNoise\";rt.registerClass(zf);var Bf=class extends Bt{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 G(()=>{this.invokeCallHook(t,e);let n=Pt(t);return this.rate>0&&this.rate<1?xu(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return O(n,zm(n.shape,1,s))},()=>n,e.training||!1):n})}};Bf.className=\"GaussianDropout\";rt.registerClass(Bf);var Vf=class extends Bt{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate,this.noiseShape=t.noiseShape}_getNoiseShape(t){return this.noiseShape||Pt(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 G(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(t);return xu(()=>{let s=Pt(t),i=1.6732632423543772,a=1.0507009873554805,u=-i*a,l=Pn(Hi(n),this.rate);l=hc(l,\"float32\");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=J(O(s,l),O(J(l,-1),u));return J(O(m,c),p)},()=>Pt(t),e.training||!1)}return t})}};Vf.className=\"AlphaDropout\";rt.registerClass(Vf);function Vh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=$x(r,t,e,n,o,s);else if(r.rank===3)i=Dx(r,t,e,n,o,s);else if(r.rank===4)i=Rx(r,t,e,n,o,s);else throw new Nt(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function bY(r,t,e,n,o=.001){return G(()=>{let s=oc(r,n),i=s.mean,a=s.variance;return[Vh(r,i,a,e,t,o),i,a]})}function wY(r,t,e,n,o=.001){return G(()=>{let s=oc(r,n),i=s.mean,a=s.variance,u=[];for(let d of jr(0,r.rank))n.indexOf(d)!==-1?u.push(1):u.push(r.shape[d]);let l=F(i,u),c=F(a,u),p=t==null?null:F(t,u),m=e==null?null:F(e,u);return[Vh(r,l,c,m,p,o),i,a]})}function CY(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),jr(0,r.rank-1))?bY(r,t,e,n,o):wY(r,t,e,n,o)}var Gf=class extends Bt{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=ge(t.betaInitializer||\"zeros\"),this.gammaInitializer=ge(t.gammaInitializer||\"ones\"),this.movingMeanInitializer=ge(t.movingMeanInitializer||\"zeros\"),this.movingVarianceInitializer=ge(t.movingVarianceInitializer||\"ones\"),this.betaConstraint=We(t.betaConstraint),this.gammaConstraint=We(t.gammaConstraint),this.betaRegularizer=Ce(t.betaRegularizer),this.gammaRegularizer=Ce(t.gammaRegularizer)}build(t){t=te(t);let e=this.axis>=0?this.axis:this.axis+t.length,n=t[e];if(n==null)throw new z(`Axis ${e} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(t)}.`);this.inputSpec=[new we({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 G(()=>{let n=e.training==null?!1:e.training,o=Pt(t),s=o.shape,i=s.length,a=jr(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=Co(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,jr(0,i).slice(0,i-1)),m=()=>{if(p){let b=F(this.movingMean.read(),l),w=F(this.movingVariance.read(),l),C=this.center?F(this.beta.read(),l):null,T=this.scale?F(this.gamma.read(),l):null;return Vh(o,b,w,C,T,this.epsilon)}else return Vh(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]=CY(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,C)=>{G(()=>{let T=1-C,E=b.read(),$=O(ut(E,w),T);b.write(ut(E,$))})};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:Ee(this.betaInitializer),gammaInitializer:Ee(this.gammaInitializer),movingMeanInitializer:Ee(this.movingMeanInitializer),movingVarianceInitializer:Ee(this.movingVarianceInitializer),betaRegularizer:de(this.betaRegularizer),gammaRegularizer:de(this.gammaRegularizer),betaConstraint:Ge(this.betaConstraint),gammaConstraint:Ge(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};Gf.className=\"BatchNormalization\";rt.registerClass(Gf);var Wf=class extends Bt{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=ge(t.betaInitializer||\"zeros\"),this.gammaInitializer=ge(t.gammaInitializer||\"ones\"),this.betaRegularizer=Ce(t.betaRegularizer),this.gammaRegularizer=Ce(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=te(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!==Io(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=Pt(t),o=n.shape,s=o.length;return G(()=>{let{mean:a,variance:u}=oc(n,this.axis,!0),l=Co(1,s);for(let h of this.axis)l[h]=o[h];let c=h=>h!=null&&h.shape.length!==s?F(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 z(`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 z(\"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 z(`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 Uf=class extends Bt{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 z(`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 z(`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 z(`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 we({ndim:4})]}computeOutputShape(t){t=te(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 G(()=>vY(Pt(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};Uf.className=\"ZeroPadding2D\";rt.registerClass(Uf);function Fb(r,t,e,n,o,s){return G(()=>{Pe(o),RS(s),pn(n),e==null&&(e=[1,1]),n==null&&(n=\"valid\"),o==null&&(o=mn()),s==null&&(s=\"max\"),r=zh(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=eu(r,t,e,a):i=Xl(r,t,e,a),o===\"channelsFirst\"&&(i=Mt(i,[0,3,1,2])),i})}function OD(r,t,e,n,o,s){return G(()=>{Pe(o),RS(s),pn(n),e==null&&(e=[1,1,1]),n==null&&(n=\"valid\"),o==null&&(o=mn()),s==null&&(s=\"max\"),r=YS(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=sy(r,t,e,a):i=Ax(r,t,e,a),o===\"channelsFirst\"&&(i=Mt(i,[0,4,1,2,3])),i})}var Eb=class extends Bt{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 z(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.poolSize)}`);if(Je(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 z(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.strides)}`);Je(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,pn(this.padding),this.inputSpec=[new we({ndim:3})]}computeOutputShape(t){t=te(t);let e=kn(t[1],this.poolSize[0],this.padding,this.strides[0]);return[t[0],e,t[2]]}call(t,e){return G(()=>{this.invokeCallHook(t,e),t=rl(Pt(t),2);let n=this.poolingFunction(Pt(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}},Hf=class extends Eb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Pe(s),pn(o),Fb(t,e,n,o,s,\"max\")}};Hf.className=\"MaxPooling1D\";rt.registerClass(Hf);var qf=class extends Eb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Pe(s),pn(o),Fb(t,e,n,o,s,\"avg\")}};qf.className=\"AveragePooling1D\";rt.registerClass(qf);var Ab=class extends Bt{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 z(`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];Je(this.poolSize,\"poolSize\"),Je(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Pe(this.dataFormat),pn(this.padding),this.inputSpec=[new we({ndim:4})]}computeOutputShape(t){t=te(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2];return e=kn(e,this.poolSize[0],this.padding,this.strides[0]),n=kn(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 G(()=>(this.invokeCallHook(t,e),this.poolingFunction(Pt(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}},Kf=class extends Ab{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Pe(s),pn(o),Fb(t,e,n,o,s,\"max\")}};Kf.className=\"MaxPooling2D\";rt.registerClass(Kf);var jf=class extends Ab{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Pe(s),pn(o),Fb(t,e,n,o,s,\"avg\")}};jf.className=\"AveragePooling2D\";rt.registerClass(jf);var $b=class extends Bt{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 z(`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];Je(this.poolSize,\"poolSize\"),Je(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Pe(this.dataFormat),pn(this.padding),this.inputSpec=[new we({ndim:5})]}computeOutputShape(t){t=te(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=kn(e,this.poolSize[0],this.padding,this.strides[0]),n=kn(n,this.poolSize[1],this.padding,this.strides[1]),o=kn(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 G(()=>(this.invokeCallHook(t,e),this.poolingFunction(Pt(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}},Xf=class extends $b{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Pe(s),pn(o),OD(t,e,n,o,s,\"max\")}};Xf.className=\"MaxPooling3D\";rt.registerClass(Xf);var Yf=class extends $b{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Pe(s),pn(o),OD(t,e,n,o,s,\"avg\")}};Yf.className=\"AveragePooling3D\";rt.registerClass(Yf);var Db=class extends Bt{constructor(t){super(t),this.inputSpec=[new we({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new Nt}},Zf=class extends Db{constructor(t){super(t||{})}call(t,e){return G(()=>{let n=Pt(t);return ke(n,1)})}};Zf.className=\"GlobalAveragePooling1D\";rt.registerClass(Zf);var Jf=class extends Db{constructor(t){super(t||{})}call(t,e){return G(()=>{let n=Pt(t);return Mr(n,1)})}};Jf.className=\"GlobalMaxPooling1D\";rt.registerClass(Jf);var Rb=class extends Bt{constructor(t){super(t),this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Pe(this.dataFormat),this.inputSpec=[new we({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat===\"channelsLast\"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new Nt}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Qf=class extends Rb{call(t,e){return G(()=>{let n=Pt(t);return this.dataFormat===\"channelsLast\"?ke(n,[1,2]):ke(n,[2,3])})}};Qf.className=\"GlobalAveragePooling2D\";rt.registerClass(Qf);var td=class extends Rb{call(t,e){return G(()=>{let n=Pt(t);return this.dataFormat===\"channelsLast\"?Mr(n,[1,2]):Mr(n,[2,3])})}};td.className=\"GlobalMaxPooling2D\";rt.registerClass(td);var Ob=class extends Bt{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=xn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},ed=class extends Ob{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=te(t),t.length<3)throw new z(`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=te(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 G(()=>(t=Pt(t),JS((i,a)=>[Pt(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};ed.className=\"TimeDistributed\";rt.registerClass(ed);function IY(r){Xi(B$,\"BidirectionalMergeMode\",r)}var SY=\"concat\",rd=class extends Ob{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=xn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=xn(o),this.forwardLayer.name=\"forward_\"+this.forwardLayer.name,this.backwardLayer.name=\"backward_\"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?SY:t.mergeMode,IY(this.mergeMode),t.weights)throw new Nt(\"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=ZS(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 z(\"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 we({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 Nt(\"Support for constants in Bidirectional layers is not implemented yet.\");let u=i[0]instanceof Xr;for(let l of i)if(l instanceof Xr!==u)throw new z(\"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 G(()=>{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=Mm([o,s]):this.mergeMode===\"sum\"?a=J(o,s):this.mergeMode===\"ave\"?a=O(.5,J(o,s)):this.mergeMode===\"mul\"?a=O(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){Ys(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),Ys(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=xn(e.layer);if(delete e.layer,e.numConstants!=null)throw new Nt(\"Deserialization of a Bidirectional layer with numConstants present is not supported yet.\");let o=e;return o.layer=n,new t(o)}};rd.className=\"Bidirectional\";rt.registerClass(rd);function TY(r){return new Js(r)}function NY(r){return new cf(r)}function kY(r){return new af(r)}function _Y(r){return new lf(r)}function EY(r){return new uf(r)}function AY(r){return new mf(r)}function $Y(r){return new pf(r)}function DY(r){return new Iu(r)}function RY(r){return new sl(r)}function FY(r){return new ff(r)}function OY(r){return new il(r)}function PY(r){return new df(r)}function LY(r){return new hf(r)}function MY(r){return new gf(r)}function zY(r){return new xf(r)}function BY(r){return new yf(r)}function VY(r){return new Nf(r)}function GY(r){return new Sf(r)}function WY(r){return new Dc(r)}function UY(r){return new If(r)}function HY(r){return new Tf(r)}function qY(r){return new kf(r)}function KY(r){return new _f(r)}function jY(r){return new Ef(r)}function XY(r){return new $f(r)}function YY(r){return new Df(r)}function ZY(r){return new Ff(r)}function JY(r){return new Lf(r)}function QY(r){return new Of(r)}function t7(r){return new Pf(r)}function e7(r){return new Rf(r)}function r7(r){return new Mf(r)}function n7(r){return new Gf(r)}function o7(r){return new Wf(r)}function s7(r){return new Uf(r)}function QS(r){return new qf(r)}function i7(r){return QS(r)}function a7(r){return QS(r)}function tT(r){return new jf(r)}function l7(r){return tT(r)}function u7(r){return tT(r)}function eT(r){return new Yf(r)}function c7(r){return eT(r)}function p7(r){return eT(r)}function m7(r){return new Zf(r)}function f7(r){return new Qf(r)}function PD(r){return new Jf(r)}function LD(r){return new td(r)}function MD(r){return new Hf(r)}function zD(r){return new Kf(r)}function d7(r){return new Xf(r)}function h7(r){return new wf(r)}function g7(r){return new Ec(r)}function x7(r){return new Cf(r)}function y7(r){return new ll(r)}function b7(r){return new bf(r)}function w7(r){return new _c(r)}function C7(r){return new vf(r)}function v7(r){return new $c(r)}function I7(r){return new _n(r)}function S7(r){return new Ac(r)}function T7(r){return new rd(r)}function N7(r){return new ed(r)}var k7=PD,_7=LD,E7=MD,A7=zD;function $7(r){return new zf(r)}function D7(r){return new Bf(r)}function R7(r){return new Vf(r)}function F7(r){return new Af(r)}var VD={};jt(VD,{MAPE:()=>H7,MSE:()=>j7,binaryAccuracy:()=>O7,binaryCrossentropy:()=>P7,categoricalAccuracy:()=>M7,categoricalCrossentropy:()=>z7,cosineProximity:()=>G7,mape:()=>q7,meanAbsoluteError:()=>W7,meanAbsolutePercentageError:()=>U7,meanSquaredError:()=>K7,mse:()=>X7,precision:()=>B7,recall:()=>V7,sparseCategoricalAccuracy:()=>L7});function O7(r,t){return Oh(r,t)}function P7(r,t){return nb(r,t)}function L7(r,t){return ob(r,t)}function M7(r,t){return Ph(r,t)}function z7(r,t){return Lh(r,t)}function B7(r,t){return VS(r,t)}function V7(r,t){return mD(r,t)}function G7(r,t){return Fh(r,t)}function W7(r,t){return tf(r,t)}function U7(r,t){return bu(r,t)}function H7(r,t){return bu(r,t)}function q7(r,t){return bu(r,t)}function K7(r,t){return Zi(r,t)}function j7(r,t){return Zi(r,t)}function X7(r,t){return Zi(r,t)}var GD={};jt(GD,{modelFromJSON:()=>_D});var WD={};jt(WD,{l1:()=>Z7,l1l2:()=>Y7,l2:()=>J7});function Y7(r){return new wu(r)}function Z7(r){return DD(r)}function J7(r){return RD(r)}var Lb=class extends ol{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 Pb(r,t){return rt}var Mb=class extends Lb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new Nt(\"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=Pb:this.mode===\"max\"?this.monitorFunc=UD:this.monitor.indexOf(\"acc\")!==-1?this.monitorFunc=UD:this.monitorFunc=Pb,this.monitorFunc===Pb&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Pb?1/0:-1/0}async onEpochEnd(t,e){await Yi(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 Q7(r){return new Mb(r)}var tZ={earlyStopping:Q7};var eZ=B();eZ.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 eo;(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\"})(eo||(eo={}));var HD;(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={}))})(HD||(HD={}));var rT={};function nZ(r,t){let e={tfOpName:r,category:\"custom\",inputs:[],attrs:[],customExecutor:t};rT[r]=e}function zb(r){return rT[r]}function oZ(r){delete rT[r]}function I(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 wr(t.inputNames[s.inputIndexStart],e,n,o);if(s.type===\"tensors\")return t.inputNames.slice(a,u).map(m=>wr(m,e,n,o));let l=wr(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 wr(r,t,e,n){let[o,s]=yn(r);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Bb(o,a)]);return i!==void 0?t[Bb(o,i)][s]:void 0}function qD(r,t,e){return t[Bb(r,e.currentContextId)]}function _o(r,t){let[e,n,o]=yn(r);return[Bb(e,t&&t.currentContextId),n,o]}function Bb(r,t){return t?`${r}-${t}`:r}function yn(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 Gh(r,t,e){let n=I(\"pad\",r,t,e);if(n===\"explicit\"){n=I(\"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 ri(r){return r.kept?r:an(r)}var nT={};jt(nT,{json:()=>sZ});var sZ=[{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 oT={};jt(oT,{json:()=>iZ});var iZ=[{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 sT={};jt(sT,{json:()=>aZ});var aZ=[{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 iT={};jt(iT,{json:()=>lZ});var lZ=[{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 aT={};jt(aT,{json:()=>uZ});var uZ=[{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 lT={};jt(lT,{json:()=>cZ});var cZ=[{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 uT={};jt(uT,{json:()=>pZ});var pZ=[{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 cT={};jt(cT,{json:()=>mZ});var mZ=[{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 pT={};jt(pT,{json:()=>fZ});var fZ=[{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 mT={};jt(mT,{json:()=>dZ});var dZ=[{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 fT={};jt(fT,{json:()=>hZ});var hZ=[{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 dT={};jt(dT,{json:()=>gZ});var gZ=[{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 hT={};jt(hT,{json:()=>xZ});var xZ=[{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 gT={};jt(gT,{json:()=>yZ});var yZ=[{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 xT={};jt(xT,{json:()=>bZ});var bZ=[{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 yT={};jt(yT,{json:()=>wZ});var wZ=[{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 bT={};jt(bT,{json:()=>CZ});var CZ=[{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 wT={};jt(wT,{json:()=>vZ});var vZ=[{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 CT={};jt(CT,{json:()=>IZ});var IZ=[{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 Wh=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let t=[nT,oT,sT,iT,aT,lT,uT,cT,pT,mT,fT,dT,hT,gT,xT,yT,bT,wT,CT],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}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),T=a[w];if(T.outputs!=null){let E=T.outputs.indexOf(C);if(E!==-1){let $=`${w}:${E}`;g.inputNames[b]=$}}g.inputs.push(T),T.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=zb(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=Vb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Vb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"string[]\":a=jb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=jb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number\":a=Wb(t.attr,s.tfName,s.defaultValue||0),a===void 0&&!!s.tfDeprecatedName&&(a=Wb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number[]\":a=Kb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool\":a=Gb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Gb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool[]\":a=Yb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Yb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape\":a=qb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=qb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape[]\":a=Xb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Xb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype\":a=Ub(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ub(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype[]\":a=Hb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Hb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"func\":a=KD(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=KD(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:vT(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 SZ(r){let t=B().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 jD(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):SZ(r);return t?e:e.toLowerCase()}function Vb(r,t,e,n=!1){let o=r[t];return o!=null?jD(o.s,n):e}function Gb(r,t,e){let n=r[t];return n?n.b:e}function Wb(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 vT(r){switch(typeof r==\"string\"&&(r=eo[r]),r){case eo.DT_FLOAT:case eo.DT_HALF:return\"float32\";case eo.DT_INT32:case eo.DT_INT64:case eo.DT_INT8:case eo.DT_UINT8:return\"int32\";case eo.DT_BOOL:return\"bool\";case eo.DT_DOUBLE:return\"float32\";case eo.DT_STRING:return\"string\";default:return null}}function KD(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function Ub(r,t,e){let n=r[t];return n&&n.type?vT(n.type):e}function Hb(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>vT(o)):e}function XD(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size==\"number\"?t.size:parseInt(t.size,10)):[]}function qb(r,t,e){let n=r[t];return n&&n.shape?XD(n.shape):e}function Kb(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 jb(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>jD(s,n)):e}function Xb(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>XD(o)):e}function Yb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Zb=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 wr(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return wr(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Wb(this.node.rawAttrs,t,e);if(n.s!=null)return Vb(this.node.rawAttrs,t,e);if(n.b!=null)return Gb(this.node.rawAttrs,t,e);if(n.shape!=null)return qb(this.node.rawAttrs,t,e);if(n.type!=null)return Ub(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Kb(this.node.rawAttrs,t,e);if(n.list.s!=null)return jb(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Xb(this.node.rawAttrs,t,e);if(n.list.b!=null)return Yb(this.node.rawAttrs,t,e);if(n.list.type!=null)return Hb(this.node.rawAttrs,t,e)}return e}};var ue={};jt(ue,{OP_SCOPE_SUFFIX:()=>z0,abs:()=>$e,acos:()=>Cx,acosh:()=>vx,add:()=>J,addN:()=>J_,all:()=>cm,any:()=>Ju,argMax:()=>Oi,argMin:()=>Ix,asin:()=>Sx,asinh:()=>Tx,atan:()=>Nx,atan2:()=>kx,atanh:()=>_x,avgPool:()=>Xl,avgPool3d:()=>Ax,basicLSTMCell:()=>eE,batchNorm:()=>Li,batchNorm2d:()=>$x,batchNorm3d:()=>Dx,batchNorm4d:()=>Rx,batchToSpaceND:()=>Yl,bincount:()=>Fx,booleanMaskAsync:()=>w6,broadcastArgs:()=>nE,broadcastTo:()=>Mi,buffer:()=>vt,cast:()=>tt,ceil:()=>Ox,clipByValue:()=>Ir,clone:()=>an,complex:()=>Cn,concat:()=>se,concat1d:()=>Px,concat2d:()=>Lx,concat3d:()=>Mx,concat4d:()=>zx,conv1d:()=>mm,conv2d:()=>Sn,conv2dTranspose:()=>dm,conv3d:()=>Bx,conv3dTranspose:()=>Gx,cos:()=>Zl,cosh:()=>hm,cosineWindow:()=>Sh,cumprod:()=>ec,cumsum:()=>gm,denseBincount:()=>oE,depthToSpace:()=>Wx,depthwiseConv2d:()=>zi,diag:()=>sE,dilation2d:()=>Ux,div:()=>ct,divNoNan:()=>Hx,dot:()=>qx,dropout:()=>bS,einsum:()=>iE,elu:()=>Bi,enclosingPowerOfTwo:()=>wS,equal:()=>Ar,erf:()=>Kx,euclideanNorm:()=>jx,exp:()=>or,expandDims:()=>yr,expm1:()=>Xx,eye:()=>nc,fft:()=>iu,fill:()=>Vi,floor:()=>Gi,floorDiv:()=>um,fused:()=>lu,gather:()=>Wi,gatherND:()=>E6,greater:()=>Xe,greaterEqual:()=>Pn,ifft:()=>Qa,imag:()=>jl,image:()=>uu,inTopKAsync:()=>D6,irfft:()=>Am,isFinite:()=>Yx,isInf:()=>Zx,isNaN:()=>Jx,leakyRelu:()=>Jl,less:()=>xm,lessEqual:()=>Ln,linalg:()=>vS,linspace:()=>uE,localResponseNormalization:()=>Qx,log:()=>Sr,log1p:()=>Ql,logSigmoid:()=>ry,logSoftmax:()=>ym,logSumExp:()=>bm,logicalAnd:()=>Dr,logicalNot:()=>tu,logicalOr:()=>wm,logicalXor:()=>ny,losses:()=>D5,lowerBound:()=>cE,matMul:()=>Gt,max:()=>Mr,maxPool:()=>eu,maxPool3d:()=>sy,maxPoolWithArgmax:()=>pE,maximum:()=>Tn,mean:()=>ke,meshgrid:()=>mE,min:()=>rc,minimum:()=>Ui,mirrorPad:()=>iy,mod:()=>ay,moments:()=>oc,movingAverage:()=>v6,mul:()=>O,multiRNNCell:()=>fE,multinomial:()=>dE,neg:()=>Yt,norm:()=>Ja,notEqual:()=>qs,oneHot:()=>Ri,ones:()=>cr,onesLike:()=>br,op:()=>N,outerProduct:()=>hE,pad:()=>cn,pad1d:()=>gE,pad2d:()=>xE,pad3d:()=>yE,pad4d:()=>bE,pool:()=>ly,pow:()=>ln,prelu:()=>nu,print:()=>mx,prod:()=>uy,raggedTensorToTensor:()=>wE,rand:()=>CE,randomGamma:()=>ME,randomNormal:()=>ac,randomStandardNormal:()=>zE,randomUniform:()=>Hi,range:()=>ou,real:()=>Za,reciprocal:()=>dy,relu:()=>Rr,relu6:()=>Cm,reshape:()=>F,reverse:()=>pr,reverse1d:()=>BE,reverse2d:()=>VE,reverse3d:()=>GE,reverse4d:()=>WE,rfft:()=>au,round:()=>vm,rsqrt:()=>Im,scalar:()=>mt,scatterND:()=>S6,searchSorted:()=>Ch,selu:()=>Sm,separableConv2d:()=>Tm,setdiff1dAsync:()=>UE,sigmoid:()=>Kr,sign:()=>hy,signal:()=>$5,sin:()=>Nm,sinh:()=>km,slice:()=>Ot,slice1d:()=>_m,slice2d:()=>Ih,slice3d:()=>Em,slice4d:()=>lc,softmax:()=>su,softplus:()=>Hs,spaceToBatchND:()=>ru,sparse:()=>R5,sparseToDense:()=>k6,spectral:()=>A5,split:()=>mr,sqrt:()=>Ne,square:()=>Ht,squaredDifference:()=>$m,squeeze:()=>Mn,stack:()=>sr,step:()=>yo,stridedSlice:()=>gy,string:()=>F5,sub:()=>ut,sum:()=>ft,tan:()=>xy,tanh:()=>Pi,tensor:()=>vr,tensor1d:()=>Ve,tensor2d:()=>Ks,tensor3d:()=>gx,tensor4d:()=>HE,tensor5d:()=>qE,tensor6d:()=>KE,tile:()=>$r,topk:()=>yy,transpose:()=>Mt,truncatedNormal:()=>Dm,unique:()=>by,unsortedSegmentSum:()=>Rm,unstack:()=>Tr,upperBound:()=>jE,variable:()=>wy,where:()=>De,whereAsync:()=>vy,zeros:()=>_e,zerosLike:()=>St});var YD=(r,t,e,n=ue)=>{switch(r.op){case\"BiasAdd\":case\"AddV2\":case\"Add\":return[n.add(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"AddN\":return[n.addN(I(\"tensors\",r,t,e))];case\"FloorMod\":case\"Mod\":return[n.mod(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"Mul\":return[n.mul(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"RealDiv\":case\"Div\":return[n.div(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"DivNoNan\":return[n.divNoNan(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"FloorDiv\":return[n.floorDiv(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"Sub\":return[n.sub(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"Minimum\":return[n.minimum(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"Maximum\":return[n.maximum(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"Pow\":return[n.pow(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"SquaredDifference\":return[n.squaredDifference(I(\"a\",r,t,e),I(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var ZD=(r,t,e,n=ue)=>{switch(r.op){case\"Abs\":case\"ComplexAbs\":return[n.abs(I(\"x\",r,t,e))];case\"Acos\":return[n.acos(I(\"x\",r,t,e))];case\"Acosh\":return[n.acosh(I(\"x\",r,t,e))];case\"Asin\":return[n.asin(I(\"x\",r,t,e))];case\"Asinh\":return[n.asinh(I(\"x\",r,t,e))];case\"Atan\":return[n.atan(I(\"x\",r,t,e))];case\"Atan2\":return[n.atan2(I(\"x\",r,t,e),I(\"y\",r,t,e))];case\"Atanh\":return[n.atanh(I(\"x\",r,t,e))];case\"Ceil\":return[n.ceil(I(\"x\",r,t,e))];case\"Complex\":return[n.complex(I(\"real\",r,t,e),I(\"imag\",r,t,e))];case\"Cos\":return[n.cos(I(\"x\",r,t,e))];case\"Cosh\":return[n.cosh(I(\"x\",r,t,e))];case\"Elu\":return[n.elu(I(\"x\",r,t,e))];case\"Erf\":return[n.erf(I(\"x\",r,t,e))];case\"Exp\":return[n.exp(I(\"x\",r,t,e))];case\"Expm1\":return[n.expm1(I(\"x\",r,t,e))];case\"Floor\":return[n.floor(I(\"x\",r,t,e))];case\"Log\":return[n.log(I(\"x\",r,t,e))];case\"Log1p\":return[n.log1p(I(\"x\",r,t,e))];case\"Imag\":return[n.imag(I(\"x\",r,t,e))];case\"Neg\":return[n.neg(I(\"x\",r,t,e))];case\"Reciprocal\":return[n.reciprocal(I(\"x\",r,t,e))];case\"Real\":return[n.real(I(\"x\",r,t,e))];case\"Relu\":return[n.relu(I(\"x\",r,t,e))];case\"Round\":return[n.round(I(\"x\",r,t,e))];case\"Selu\":return[n.selu(I(\"x\",r,t,e))];case\"Sigmoid\":return[n.sigmoid(I(\"x\",r,t,e))];case\"Sin\":return[n.sin(I(\"x\",r,t,e))];case\"Sign\":return[n.sign(I(\"x\",r,t,e))];case\"Sinh\":return[n.sinh(I(\"x\",r,t,e))];case\"Softplus\":return[n.softplus(I(\"x\",r,t,e))];case\"Sqrt\":return[n.sqrt(I(\"x\",r,t,e))];case\"Square\":return[n.square(I(\"x\",r,t,e))];case\"Tanh\":return[n.tanh(I(\"x\",r,t,e))];case\"Tan\":return[n.tan(I(\"x\",r,t,e))];case\"ClipByValue\":return[n.clipByValue(I(\"x\",r,t,e),I(\"clipValueMin\",r,t,e),I(\"clipValueMax\",r,t,e))];case\"Relu6\":return[n.relu6(I(\"x\",r,t,e))];case\"Rsqrt\":return[n.rsqrt(wr(r.inputNames[0],t,e))];case\"Prod\":return[n.prod(I(\"x\",r,t,e),I(\"axes\",r,t,e))];case\"LeakyRelu\":return[n.leakyRelu(I(\"x\",r,t,e),I(\"alpha\",r,t,e))];case\"Prelu\":return[n.prelu(I(\"x\",r,t,e),I(\"alpha\",r,t,e))];case\"IsNan\":return[n.isNaN(wr(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 JD(r){return!(typeof r==\"number\"||r.some(t=>t<0))}function nd(r,t,e){let n=Jb(r,e),o=!JD(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=Jb(s.shape,n)}),!JD(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function Jb(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 Qb=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),Oe(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,Oe(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,Tr(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=[];G(()=>{e=F(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: \"),Oe(s)}),this.idTensor=mt(0),this.maxNumElements=o,Oe(this.idTensor)}get id(){return this.idTensor.id}copy(){return new pl([...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=nd(this.elementShape,this.tensors,t);return G(()=>{let s=this.tensors.map(i=>F(i,o));return sr(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=nd(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Vn(o.shape,t,\"TensorList shape mismatch: \"),F(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.\");Oe(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 pl([],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=nd(this.elementShape,this.tensors,e);return F(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: \"),Oe(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=nd(this.elementShape,this.tensors,n);return t.length===0?vr([],[0].concat(o)):G(()=>{let s=t.map(i=>F(this.tensors[i],o));return sr(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=nd(this.elementShape,this.tensors,e);return this.size()===0?vr([],[0].concat(n)):G(()=>{let o=this.tensors.map(s=>F(s,n));return se(o,0)})}};function QD(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=Tr(r);return new pl(s,t,n)}function tR(r,t,e,n){return new pl([],r,t,n)}function eR(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 pl([],e,r.dtype,n),i=Tr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function rR(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=Jb(s,e),a=n===0?0:r.size/n,u=G(()=>{let c=[];r=F(r,[1,n,a]);for(let p=0;p{switch(r.op){case\"If\":case\"StatelessIf\":{let n=I(\"thenBranch\",r,t,e),o=I(\"elseBranch\",r,t,e),s=I(\"cond\",r,t,e),i=I(\"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=I(\"body\",r,t,e),o=I(\"cond\",r,t,e),s=I(\"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=I(\"pred\",r,t,e);return[ri(n)]}case\"Switch\":{let n=I(\"pred\",r,t,e),o=I(\"data\",r,t,e);return o.kept||(o=ri(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case\"Merge\":{let n=r.inputNames.find(o=>wr(o,t,e)!==void 0);if(n){let o=wr(n,t,e);return[ri(o)]}return}case\"Enter\":{let n=I(\"frameName\",r,t,e),o=I(\"tensor\",r,t,e);return e.enterFrame(n),[ri(o)]}case\"Exit\":{let n=I(\"tensor\",r,t,e);return e.exitFrame(),[ri(n)]}case\"NextIteration\":{let n=I(\"tensor\",r,t,e);return e.nextIteration(),[ri(n)]}case\"TensorArrayV3\":{let n=I(\"size\",r,t,e),o=I(\"dtype\",r,t,e),s=I(\"elementShape\",r,t,e),i=I(\"dynamicSize\",r,t,e),a=I(\"clearAfterRead\",r,t,e),u=I(\"identicalElementShapes\",r,t,e),l=I(\"name\",r,t,e),c=new Qb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,mt(1)]}case\"TensorArrayWriteV3\":{let n=I(\"tensorArrayId\",r,t,e),o=I(\"index\",r,t,e),s=I(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case\"TensorArrayReadV3\":{let n=I(\"tensorArrayId\",r,t,e),o=I(\"index\",r,t,e);return[e.getTensorArray(n.id).read(o)]}case\"TensorArrayGatherV3\":{let n=I(\"tensorArrayId\",r,t,e),o=I(\"indices\",r,t,e),s=I(\"dtype\",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case\"TensorArrayScatterV3\":{let n=I(\"tensorArrayId\",r,t,e),o=I(\"indices\",r,t,e),s=I(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case\"TensorArrayConcatV3\":{let n=I(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id),s=I(\"dtype\",r,t,e);return[o.concat(s)]}case\"TensorArraySplitV3\":{let n=I(\"tensorArrayId\",r,t,e),o=I(\"tensor\",r,t,e),s=I(\"lengths\",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case\"TensorArraySizeV3\":{let n=I(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return[mt(o.size(),\"int32\")]}case\"TensorArrayCloseV3\":{let n=I(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case\"TensorListSetItem\":{let n=I(\"tensorListId\",r,t,e),o=I(\"index\",r,t,e),s=I(\"tensor\",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case\"TensorListGetItem\":{let n=I(\"tensorListId\",r,t,e),o=I(\"index\",r,t,e),s=I(\"elementShape\",r,t,e),i=I(\"elementDType\",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case\"TensorListScatterV2\":case\"TensorListScatter\":{let n=I(\"indices\",r,t,e),o=I(\"tensor\",r,t,e),s=I(\"elementShape\",r,t,e),i=I(\"numElements\",r,t,e),a=eR(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case\"TensorListReserve\":case\"EmptyTensorList\":{let n=I(\"elementShape\",r,t,e),o=I(\"elementDType\",r,t,e),s;r.op===\"TensorListReserve\"?s=\"numElements\":s=\"maxNumElements\";let i=I(s,r,t,e),a=r.op===\"TensorListReserve\"?-1:i,u=tR(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case\"TensorListGather\":{let n=I(\"tensorListId\",r,t,e),o=I(\"indices\",r,t,e),s=I(\"elementShape\",r,t,e),i=I(\"elementDType\",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case\"TensorListStack\":{let n=I(\"tensorListId\",r,t,e),o=I(\"elementShape\",r,t,e),s=I(\"elementDType\",r,t,e),i=I(\"numElements\",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case\"TensorListFromTensor\":{let n=I(\"tensor\",r,t,e),o=I(\"elementShape\",r,t,e),s=I(\"elementDType\",r,t,e),i=QD(n,o,s);return e.addTensorList(i),[i.idTensor]}case\"TensorListConcat\":case\"TensorListConcatV2\":{let n=I(\"tensorListId\",r,t,e),o=e.getTensorList(n.id),s=I(\"dtype\",r,t,e),i=I(\"elementShape\",r,t,e);return[o.concat(s,i)]}case\"TensorListPushBack\":{let n=I(\"tensorListId\",r,t,e),o=I(\"tensor\",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case\"TensorListPopBack\":{let n=I(\"tensorListId\",r,t,e),o=I(\"elementShape\",r,t,e),s=I(\"elementDType\",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case\"TensorListSplit\":{let n=I(\"tensor\",r,t,e),o=I(\"elementShape\",r,t,e),s=I(\"lengths\",r,t,e),i=rR(n,s,o);return e.addTensorList(i),[i.idTensor]}case\"TensorListLength\":{let n=I(\"tensorListId\",r,t,e),o=e.getTensorList(n.id);return[mt(o.size(),\"int32\")]}case\"TensorListResize\":{let n=I(\"tensorListId\",r,t,e),o=I(\"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 oR(r,t,e){let[n,o]=I(\"fusedOps\",r,t,e),s=n===\"biasadd\",i=!s,a=o===\"prelu\",u=n===\"fusedbatchnorm\",l=I(\"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=I(\"strides\",r,t,e),p=Gh(r,t,e),m=I(\"dataFormat\",r,t,e).toUpperCase(),f=I(\"dilations\",r,t,e),[d,h]=I(\"args\",r,t,e);i&&(h=d,d=void 0);let g=I(\"leakyreluAlpha\",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var sR=(r,t,e,n=ue)=>{switch(r.op){case\"Conv1D\":{let o=I(\"stride\",r,t,e),s=I(\"pad\",r,t,e),i=I(\"dataFormat\",r,t,e).toUpperCase(),a=I(\"dilation\",r,t,e);return[n.conv1d(I(\"x\",r,t,e),I(\"filter\",r,t,e),o,s,i,a)]}case\"Conv2D\":{let o=I(\"strides\",r,t,e),s=Gh(r,t,e),i=I(\"dataFormat\",r,t,e).toUpperCase(),a=I(\"dilations\",r,t,e);return[n.conv2d(I(\"x\",r,t,e),I(\"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}=oR(r,t,e);return[n.fused.conv2d({x:I(\"x\",r,t,e),filter:I(\"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}=oR(r,t,e);return[n.fused.depthwiseConv2d({x:I(\"x\",r,t,e),filter:I(\"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=I(\"outputShape\",r,t,e),s=I(\"strides\",r,t,e),i=Gh(r,t,e);return[n.conv2dTranspose(I(\"x\",r,t,e),I(\"filter\",r,t,e),o,[s[1],s[2]],i)]}case\"DepthwiseConv2dNative\":case\"DepthwiseConv2d\":{let o=I(\"strides\",r,t,e),s=Gh(r,t,e),i=I(\"dilations\",r,t,e),a=I(\"dataFormat\",r,t,e).toUpperCase();return[n.depthwiseConv2d(I(\"input\",r,t,e),I(\"filter\",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case\"Conv3D\":{let o=I(\"strides\",r,t,e),s=I(\"pad\",r,t,e),i=I(\"dataFormat\",r,t,e).toUpperCase(),a=I(\"dilations\",r,t,e);return[n.conv3d(I(\"x\",r,t,e),I(\"filter\",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case\"AvgPool\":{let o=I(\"strides\",r,t,e),s=I(\"pad\",r,t,e),i=I(\"kernelSize\",r,t,e);return[n.avgPool(I(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPool\":{let o=I(\"strides\",r,t,e),s=I(\"pad\",r,t,e),i=I(\"kernelSize\",r,t,e);return[n.maxPool(I(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPoolWithArgmax\":{let o=I(\"strides\",r,t,e),s=I(\"pad\",r,t,e),i=I(\"kernelSize\",r,t,e),a=I(\"includeBatchInIndex\",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(I(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case\"AvgPool3D\":{let o=I(\"strides\",r,t,e),s=I(\"pad\",r,t,e),i=I(\"kernelSize\",r,t,e);return[n.avgPool3d(I(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"MaxPool3D\":{let o=I(\"strides\",r,t,e),s=I(\"pad\",r,t,e),i=I(\"kernelSize\",r,t,e);return[n.maxPool3d(I(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"Dilation2D\":{let o=I(\"strides\",r,t,e),s=I(\"pad\",r,t,e),i=I(\"dilations\",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(I(\"x\",r,t,e),I(\"filter\",r,t,e),[a,u],s,[l,c],\"NHWC\")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var iR=(r,t,e,n=ue)=>{switch(r.op){case\"Fill\":{let o=I(\"shape\",r,t,e),s=I(\"dtype\",r,t,e),i=I(\"value\",r,t,e);return[n.fill(o,i,s)]}case\"LinSpace\":{let o=I(\"start\",r,t,e),s=I(\"stop\",r,t,e),i=I(\"num\",r,t,e);return[n.linspace(o,s,i)]}case\"Multinomial\":{let o=I(\"logits\",r,t,e),s=I(\"numSamples\",r,t,e),i=I(\"seed\",r,t,e);return[n.multinomial(o,s,i)]}case\"OneHot\":{let o=I(\"indices\",r,t,e),s=I(\"depth\",r,t,e),i=I(\"onValue\",r,t,e),a=I(\"offValue\",r,t,e),u=I(\"dtype\",r,t,e);return[n.oneHot(o,s,i,a,u)]}case\"Ones\":return[n.ones(I(\"shape\",r,t,e),I(\"dtype\",r,t,e))];case\"OnesLike\":return[n.onesLike(I(\"x\",r,t,e))];case\"RandomStandardNormal\":return[n.randomStandardNormal(I(\"shape\",r,t,e),I(\"dtype\",r,t,e),I(\"seed\",r,t,e))];case\"RandomUniform\":return[n.randomUniform(I(\"shape\",r,t,e),I(\"minval\",r,t,e),I(\"maxval\",r,t,e),I(\"dtype\",r,t,e))];case\"Range\":{let o=I(\"start\",r,t,e),s=I(\"stop\",r,t,e),i=I(\"step\",r,t,e);return[n.range(o,s,i,I(\"dtype\",r,t,e))]}case\"TruncatedNormal\":{let o=I(\"shape\",r,t,e),s=I(\"mean\",r,t,e),i=I(\"stdDev\",r,t,e),a=I(\"seed\",r,t,e);return[n.truncatedNormal(o,s,i,I(\"dtype\",r,t,e),a)]}case\"Zeros\":return[n.zeros(I(\"shape\",r,t,e),I(\"dtype\",r,t,e))];case\"ZerosLike\":return[n.zerosLike(I(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function IT(r,t,e){let n=I(\"boxes\",r,t,e),o=I(\"scores\",r,t,e),s=I(\"maxOutputSize\",r,t,e),i=I(\"iouThreshold\",r,t,e),a=I(\"scoreThreshold\",r,t,e),u=I(\"softNmsSigma\",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var aR=async(r,t,e,n,o=ue)=>{switch(r.op){case\"NonMaxSuppressionV5\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l,softNmsSigma:c}=IT(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}=IT(r,t,e),c=I(\"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}=IT(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case\"Where\":{let s=o.cast(I(\"condition\",r,t,e),\"bool\"),i=[await o.whereAsync(s)];return s.dispose(),i}case\"ListDiff\":return o.setdiff1dAsync(I(\"x\",r,t,e),I(\"y\",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var lR=(r,t,e,n=ue)=>{switch(r.op){case\"LowerBound\":{let o=I(\"sortedSequence\",r,t,e),s=I(\"values\",r,t,e);return[n.lowerBound(o,s)]}case\"TopKV2\":{let o=I(\"x\",r,t,e),s=I(\"k\",r,t,e),i=I(\"sorted\",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case\"UpperBound\":{let o=I(\"sortedSequence\",r,t,e),s=I(\"values\",r,t,e);return[n.upperBound(o,s)]}case\"Unique\":{let o=I(\"x\",r,t,e),s=n.unique(o);return[s.values,s.indices]}case\"UniqueV2\":{let o=I(\"x\",r,t,e),s=I(\"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 uR=(r,t,e,n=ue)=>{switch(r.op){case\"Const\":return t[r.name];case\"PlaceholderWithDefault\":let o=I(\"default\",r,t,e);return[wr(r.name,t,e)||o];case\"Placeholder\":return[wr(r.name,t,e)];case\"Identity\":case\"StopGradient\":case\"FakeQuantWithMinMaxVars\":{let c=I(\"x\",r,t,e);return[ri(c)]}case\"IdentityN\":return I(\"x\",r,t,e).map(c=>ri(c));case\"Snapshot\":let s=I(\"x\",r,t,e);return[ri(s)];case\"Shape\":return[n.tensor1d(I(\"x\",r,t,e).shape,\"int32\")];case\"ShapeN\":return I(\"x\",r,t,e).map(c=>n.tensor1d(c.shape));case\"Size\":return[n.scalar(I(\"x\",r,t,e).size,\"int32\")];case\"Rank\":return[n.scalar(I(\"x\",r,t,e).rank,\"int32\")];case\"NoOp\":return[n.scalar(1)];case\"Print\":let i=I(\"x\",r,t,e),a=I(\"data\",r,t,e),u=I(\"message\",r,t,e),l=I(\"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(),G(()=>{let o=Tr(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=I(\"keyDType\",r,t,e),s=I(\"valueDType\",r,t,e),i=new tw(o,s);return n.addHashTable(r.name,i),[i.handle]}case\"LookupTableImport\":case\"LookupTableImportV2\":{let o=I(\"tableHandle\",r,t,e,n),s=I(\"keys\",r,t,e),i=I(\"values\",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case\"LookupTableFind\":case\"LookupTableFindV2\":{let o=I(\"tableHandle\",r,t,e,n),s=I(\"keys\",r,t,e),i=I(\"defaultValue\",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case\"LookupTableSize\":case\"LookupTableSizeV2\":{let o=I(\"tableHandle\",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var pR=(r,t,e,n=ue)=>{switch(r.op){case\"ResizeBilinear\":{let o=I(\"images\",r,t,e),s=I(\"size\",r,t,e),i=I(\"alignCorners\",r,t,e),a=I(\"halfPixelCenters\",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case\"ResizeNearestNeighbor\":{let o=I(\"images\",r,t,e),s=I(\"size\",r,t,e),i=I(\"alignCorners\",r,t,e),a=I(\"halfPixelCenters\",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case\"CropAndResize\":{let o=I(\"image\",r,t,e),s=I(\"boxes\",r,t,e),i=I(\"boxInd\",r,t,e),a=I(\"cropSize\",r,t,e),u=I(\"method\",r,t,e),l=I(\"extrapolationValue\",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case\"ImageProjectiveTransformV3\":{let o=I(\"images\",r,t,e),s=I(\"transforms\",r,t,e),i=I(\"outputShape\",r,t,e),a=I(\"fillValue\",r,t,e),u=I(\"interpolation\",r,t,e),l=I(\"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 mR=(r,t,e,n=ue)=>{switch(r.op){case\"Equal\":return[n.equal(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"NotEqual\":return[n.notEqual(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"Greater\":return[n.greater(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"GreaterEqual\":return[n.greaterEqual(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"Less\":return[n.less(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"LessEqual\":return[n.lessEqual(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"LogicalAnd\":return[n.logicalAnd(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"LogicalNot\":return[n.logicalNot(I(\"a\",r,t,e))];case\"LogicalOr\":return[n.logicalOr(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"Select\":case\"SelectV2\":return[n.where(I(\"condition\",r,t,e),I(\"a\",r,t,e),I(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var fR=(r,t,e,n=ue)=>{switch(r.op){case\"BatchMatMul\":case\"BatchMatMulV2\":case\"MatMul\":return[n.matMul(I(\"a\",r,t,e),I(\"b\",r,t,e),I(\"transposeA\",r,t,e),I(\"transposeB\",r,t,e))];case\"Einsum\":return[n.einsum(I(\"equation\",r,t,e),...I(\"tensors\",r,t,e))];case\"Transpose\":return[n.transpose(I(\"x\",r,t,e),I(\"perm\",r,t,e))];case\"_FusedMatMul\":let[o,s]=I(\"fusedOps\",r,t,e),i=o===\"biasadd\",a=s===\"prelu\",u=I(\"numArgs\",r,t,e),l=I(\"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]=I(\"args\",r,t,e);return[n.fused.matMul({a:I(\"a\",r,t,e),b:I(\"b\",r,t,e),transposeA:I(\"transposeA\",r,t,e),transposeB:I(\"transposeB\",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var dR=(r,t,e,n=ue)=>{switch(r.op){case\"EuclideanNorm\":return[n.euclideanNorm(I(\"x\",r,t,e),I(\"axis\",r,t,e),I(\"keepDims\",r,t,e))];case\"FusedBatchNorm\":case\"FusedBatchNormV2\":return[n.batchNorm(I(\"x\",r,t,e),I(\"mean\",r,t,e),I(\"variance\",r,t,e),I(\"offset\",r,t,e),I(\"scale\",r,t,e),I(\"epsilon\",r,t,e))];case\"FusedBatchNormV3\":return[n.batchNorm(I(\"x\",r,t,e),I(\"mean\",r,t,e),I(\"variance\",r,t,e),I(\"offset\",r,t,e),I(\"scale\",r,t,e),I(\"epsilon\",r,t,e))];case\"LRN\":return[n.localResponseNormalization(I(\"x\",r,t,e),I(\"radius\",r,t,e),I(\"bias\",r,t,e),I(\"alpha\",r,t,e),I(\"beta\",r,t,e))];case\"Softmax\":return[n.softmax(I(\"x\",r,t,e))];case\"LogSoftmax\":return[n.logSoftmax(I(\"x\",r,t,e))];case\"SparseToDense\":return[n.sparseToDense(I(\"sparseIndices\",r,t,e),I(\"outputShape\",r,t,e),I(\"sparseValues\",r,t,e),I(\"defaultValue\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var hR=(r,t,e,n=ue)=>{switch(r.op){case\"Max\":{let a=I(\"axis\",r,t,e),u=I(\"keepDims\",r,t,e);return[n.max(I(\"x\",r,t,e),a,u)]}case\"Mean\":{let a=I(\"axis\",r,t,e),u=I(\"keepDims\",r,t,e);return[n.mean(I(\"x\",r,t,e),a,u)]}case\"Min\":{let a=I(\"axis\",r,t,e),u=I(\"keepDims\",r,t,e);return[n.min(I(\"x\",r,t,e),a,u)]}case\"Sum\":{let a=I(\"axis\",r,t,e),u=I(\"keepDims\",r,t,e);return[n.sum(I(\"x\",r,t,e),a,u)]}case\"All\":{let a=I(\"axis\",r,t,e),u=I(\"keepDims\",r,t,e);return[n.all(I(\"x\",r,t,e),a,u)]}case\"Any\":{let a=I(\"axis\",r,t,e),u=I(\"keepDims\",r,t,e);return[n.any(I(\"x\",r,t,e),a,u)]}case\"ArgMax\":{let a=I(\"axis\",r,t,e);return[n.argMax(I(\"x\",r,t,e),a)]}case\"ArgMin\":{let a=I(\"axis\",r,t,e);return[n.argMin(I(\"x\",r,t,e),a)]}case\"Prod\":{let a=I(\"axis\",r,t,e),u=I(\"keepDims\",r,t,e);return[n.prod(I(\"x\",r,t,e),a,u)]}case\"Cumprod\":{let a=I(\"axis\",r,t,e),u=I(\"exclusive\",r,t,e),l=I(\"reverse\",r,t,e);return[n.cumprod(I(\"x\",r,t,e),a,u,l)]}case\"Cumsum\":{let a=I(\"axis\",r,t,e),u=I(\"exclusive\",r,t,e),l=I(\"reverse\",r,t,e);return[n.cumsum(I(\"x\",r,t,e),a,u,l)]}case\"Bincount\":let o=I(\"x\",r,t,e),s=I(\"weights\",r,t,e),i=I(\"size\",r,t,e);return[n.bincount(o,s,i)];case\"DenseBincount\":{let a=I(\"x\",r,t,e),u=I(\"weights\",r,t,e),l=I(\"size\",r,t,e),c=I(\"binaryOutput\",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var gR=(r,t,e,n=ue)=>{switch(r.op){case\"ConcatV2\":case\"Concat\":{let o=I(\"n\",r,t,e),s=I(\"axis\",r,t,e),i=I(\"tensors\",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case\"Gather\":{let o=I(\"x\",r,t,e),s=I(\"indices\",r,t,e);return[n.gather(o,n.cast(s,\"int32\"),0)]}case\"GatherV2\":{let o=I(\"axis\",r,t,e),s=I(\"batchDims\",r,t,e),i=I(\"x\",r,t,e),a=I(\"indices\",r,t,e);return[n.gather(i,n.cast(a,\"int32\"),o,s)]}case\"Reverse\":{let o=I(\"dims\",r,t,e),s=[];for(let a=0;a{let o=I(\"axis\",r,t,e),s=I(\"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=I(\"axis\",r,t,e),s=I(\"tensor\",r,t,e);return n.unstack(s,o)}case\"Tile\":{let o=I(\"reps\",r,t,e);return[n.tile(I(\"x\",r,t,e),o)]}case\"Split\":case\"SplitV\":{let o=I(\"axis\",r,t,e),s=I(\"numOrSizeSplits\",r,t,e),i=I(\"x\",r,t,e);return n.split(i,s,o)}case\"ScatterNd\":{let o=I(\"indices\",r,t,e),s=I(\"values\",r,t,e),i=I(\"shape\",r,t,e);return[n.scatterND(o,s,i)]}case\"GatherNd\":{let o=I(\"x\",r,t,e),s=I(\"indices\",r,t,e);return[n.gatherND(o,s)]}case\"SparseToDense\":{let o=I(\"sparseIndices\",r,t,e),s=I(\"outputShape\",r,t,e),i=I(\"sparseValues\",r,t,e),a=I(\"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 xR=(r,t,e,n=ue)=>{switch(r.op){case\"SparseFillEmptyRows\":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(I(\"indices\",r,t,e),I(\"values\",r,t,e),I(\"denseShape\",r,t,e),I(\"defaultValue\",r,t,e));return[o,s,i,a]}case\"SparseReshape\":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(I(\"inputIndices\",r,t,e),I(\"inputShape\",r,t,e),I(\"newShape\",r,t,e));return[o,s]}case\"SparseSegmentMean\":return[n.sparse.sparseSegmentMean(I(\"data\",r,t,e),I(\"indices\",r,t,e),I(\"segmentIds\",r,t,e))];case\"SparseSegmentSum\":return[n.sparse.sparseSegmentSum(I(\"data\",r,t,e),I(\"indices\",r,t,e),I(\"segmentIds\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var yR=(r,t,e,n=ue)=>{switch(r.op){case\"FFT\":return[n.fft(I(\"x\",r,t,e))];case\"IFFT\":return[n.ifft(I(\"x\",r,t,e))];case\"RFFT\":return[n.rfft(I(\"x\",r,t,e))];case\"IRFFT\":return[n.irfft(I(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var bR=(r,t,e,n=ue)=>{switch(r.op){case\"StringNGrams\":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(I(\"data\",r,t,e),I(\"dataSplits\",r,t,e),I(\"separator\",r,t,e),I(\"nGramWidths\",r,t,e),I(\"leftPad\",r,t,e),I(\"rightPad\",r,t,e),I(\"padWidth\",r,t,e),I(\"preserveShortSequences\",r,t,e));return[o,s]}case\"StringSplit\":{let{indices:o,values:s,shape:i}=n.string.stringSplit(I(\"input\",r,t,e),I(\"delimiter\",r,t,e),I(\"skipEmpty\",r,t,e));return[o,s,i]}case\"StringToHashBucketFast\":return[n.string.stringToHashBucketFast(I(\"input\",r,t,e),I(\"numBuckets\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var wR=(r,t,e,n=ue)=>{switch(r.op){case\"Cast\":return[n.cast(I(\"x\",r,t,e),I(\"dtype\",r,t,e))];case\"ExpandDims\":{let o=I(\"axis\",r,t,e);return[n.expandDims(I(\"x\",r,t,e),o)]}case\"Squeeze\":{let o=I(\"axis\",r,t,e);return[n.squeeze(I(\"x\",r,t,e),o)]}case\"Reshape\":return[n.reshape(I(\"x\",r,t,e),I(\"shape\",r,t,e))];case\"MirrorPad\":return[n.mirrorPad(I(\"x\",r,t,e),I(\"padding\",r,t,e),I(\"mode\",r,t,e))];case\"PadV2\":case\"Pad\":return[n.pad(I(\"x\",r,t,e),I(\"padding\",r,t,e),I(\"constantValue\",r,t,e))];case\"SpaceToBatchND\":{let o=I(\"blockShape\",r,t,e),s=I(\"paddings\",r,t,e);return[n.spaceToBatchND(I(\"x\",r,t,e),o,s)]}case\"BatchToSpaceND\":{let o=I(\"blockShape\",r,t,e),s=I(\"crops\",r,t,e);return[n.batchToSpaceND(I(\"x\",r,t,e),o,s)]}case\"DepthToSpace\":{let o=I(\"blockSize\",r,t,e),s=I(\"dataFormat\",r,t,e).toUpperCase();return[n.depthToSpace(I(\"x\",r,t,e),o,s)]}case\"BroadcastTo\":return[n.broadcastTo(I(\"x\",r,t,e),I(\"shape\",r,t,e))];case\"BroadcastArgs\":return[n.broadcastArgs(I(\"s0\",r,t,e),I(\"s1\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function ST(r,t,e,n,o=G){let s=((i,a,u)=>{switch(i.category){case\"arithmetic\":return o(()=>YD(i,a,u));case\"basic_math\":return o(()=>ZD(i,a,u));case\"control\":return nR(i,a,u);case\"convolution\":return o(()=>sR(i,a,u));case\"creation\":return o(()=>iR(i,a,u));case\"dynamic\":return aR(i,a,u);case\"evaluation\":return o(()=>lR(i,a,u));case\"image\":return o(()=>pR(i,a,u));case\"graph\":return o(()=>uR(i,a,u));case\"logical\":return o(()=>mR(i,a,u));case\"matrices\":return o(()=>fR(i,a,u));case\"normalization\":return o(()=>dR(i,a,u));case\"reduction\":return o(()=>hR(i,a,u));case\"slice_join\":return o(()=>gR(i,a,u));case\"sparse\":return o(()=>xR(i,a,u));case\"spectral\":return o(()=>yR(i,a,u));case\"string\":return o(()=>bR(i,a,u));case\"transformation\":return o(()=>wR(i,a,u));case\"hash_table\":return cR(i,a,u,n);case\"custom\":let l=zb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Zb(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 Uh=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 TT(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=Object.keys(r).map(m=>yn(m)[0]),c=[];n!=null&&(c=n.map(m=>yn(m.name)[0]));let p=[...t];for(;p.length>0;){let m=p.pop();if((NT(m)||KZ(m)||jZ(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 CR(r,t,e){let{usedNodes:n,inputs:o}=e,s=[],i=Object.keys(o).map(c=>yn(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 UZ=[\"Switch\",\"Merge\",\"Enter\",\"Exit\",\"NextIteration\",\"StatelessIf\",\"StatelessWhile\",\"if\",\"While\"],HZ=[\"NonMaxSuppressionV2\",\"NonMaxSuppressionV3\",\"NonMaxSuppressionV5\",\"Where\"],qZ=[\"HashTable\",\"HashTableV2\",\"LookupTableImport\",\"LookupTableImportV2\",\"LookupTableFind\",\"LookupTableFindV2\",\"LookupTableSize\",\"LookupTableSizeV2\"];function NT(r){return UZ.indexOf(r.op)>=0}function KZ(r){return HZ.indexOf(r.op)>=0}function jZ(r){return qZ.indexOf(r.op)>=0}var Rc=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 Rc(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=TT(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 CR(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[yn(p)[0]]),s=e.map(p=>yn(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 G(()=>{let p=new Uh(this.weightMap,l,c,this.functionExecutorMap),m=Object.assign({},this.weightMap);Object.keys(t).forEach(h=>{let[g,x]=yn(h),b=[];b[x]=t[h],m[g]=b});let f=this.getFrozenTensorIds(m),d={};for(let h=0;hwr(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=qD(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=B().getBool(\"KEEP_INTERMEDIATE_TENSORS\")}catch(c){console.warn(c.message)}this.resetIntermediateTensors();let i=new Uh(this.weightMap,o,s,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(t,i,e,n);let a=e.map(c=>wr(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[yn(w)[0]]),a=n.map(w=>yn(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}=TT(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,T]=yn(w),E=[];E[T]=t[w],d[C]=E});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=>!NT(w)&&!wr(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\"&&I(\"isConstant\",p.node,o,n)&&([m]=_o(p.node.name,n)),o[p.node.name]==null){let f=ST(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=>!!wr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!wr(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]=yn(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]=yn(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]=yn(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var ew=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 XZ=\"?tfjs-format=file\",YZ=\"model.json\",Hh=class{constructor(t,e={},n=vn){this.modelUrl=t,this.loadOptions=e,this.version=\"n/a\",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new ew}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 Rc(Wh.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=Wh.Instance.transformGraph(t.modelInitializer);this.initializer=new Rc(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}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 Lt?[n]:n,s={};return o.forEach((i,a)=>s[this.structuredOutputKeys[a]]=i),s}return n}normalizeInputs(t){if(!(t instanceof Lt)&&!Array.isArray(t))return t;if(t=Array.isArray(t)?t:[t],t.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${t.length} input tensors.`);return this.inputNodes.reduce((e,n,o)=>(e[n]=t[o],e),{})}normalizeOutputs(t){return t=t||this.outputNodes,Array.isArray(t)?t:[t]}execute(t,e){t=this.normalizeInputs(t),e=this.normalizeOutputs(e);let n=this.executor.execute(t,e);return n.length>1?n:n[0]}async executeAsync(t,e){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.resourceManager.dispose()}};async function ZZ(r,t={},e=vn){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=QZ(r));let n=new Hh(r,t,e);return await n.load(),n}function JZ(r){if(r==null)throw new Error(\"modelUrl in loadGraphModelSync() cannot be null. Please provide a url or an IOHandler that loads the model\");if(!r.load)throw new Error(`modelUrl IO Handler ${r} has no load function`);let t=new Hh(r);return t.load(),t}function QZ(r){return r.endsWith(\"/\")||(r=r+\"/\"),`${r}${YZ}${XZ}`}var vR=\"3.20.0\";var GR={};jt(GR,{CSVDataset:()=>id,Dataset:()=>ni,FileDataSource:()=>pd,TextLineDataset:()=>sd,URLDataSource:()=>md,array:()=>DR,csv:()=>LR,func:()=>MR,generator:()=>zR,microphone:()=>VR,version_data:()=>KT,webcam:()=>BR,zip:()=>RR});var $R=Tl(vh());var _R=Tl(vh());function IR(r,t){return rw(r,t)}function rw(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(Su(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=rw(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 SR(r,t=_T){return TR(r,t)}function TR(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(Su(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=TR(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 _T(r){return r===null?null:Su(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function nw(r,t){let e=new Map;rw(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 rw(r,t,e)}function Su(r){let t=!1;if(B().get(\"IS_BROWSER\"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=kT();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r==\"object\"&&!(r instanceof Lt)&&!(r instanceof Promise)&&!t)}function NR(r){return r==null||tJ(r)||Array.isArray(r)||typeof r==\"object\"&&r instanceof Lt||y.isTypedArray(r)}function tJ(r){return r===null||typeof r!=\"object\"&&typeof r!=\"function\"}function kR(r){return IR(r,eJ)}function eJ(r){return r instanceof Lt?{value:r.clone(),recurse:!1}:Su(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var od=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 Fc=class extends od{constructor(){super(Fc.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 FT(this,t,e)}columnMajorBatch(t,e=!0,n=_T){return this.rowMajorBatch(t,e).map(s=>SR(s,n))}concatenate(t,e){return new sw(VT([this,t]),e)}take(t){return t<0||t==null?this:new RT(this,t)}skip(t){return t<0||t==null?this:new DT(this,t)}prefetch(t){return new iw(this,t)}shuffle(t,e){return new BT(this,t,e)}serial(){return new $T(this)}},ET=class extends Qe{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:kR(t),done:!1}}},AT=class extends Qe{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}}},$T=class extends Qe{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()}},DT=class extends Qe{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()}},FT=class extends Qe{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}}},OT=class extends Qe{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;_t(t.value)}}},PT=class extends Qe{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=ho.getTensorsInContainer(t.value),n=this.transform(t.value),o=ho.getTensorsInContainer(n);for(let s of e)ho.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},LT=class extends Qe{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}}}},ow=class extends Qe{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=ho.getTensorsInContainer(t.value),n=await this.transform(t.value),o=ho.getTensorsInContainer(n);for(let s of e)ho.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},Oc=class extends Qe{constructor(){super(),this.outputQueue=new Fc,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}}},MT=class extends Oc{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=ho.getTensorsInContainer(t.value),n=this.transform(t.value),o=ho.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)ho.isTensorInList(s,o)||s.dispose();return!0}},sw=class extends Qe{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}},ml;(function(r){r[r.FAIL=0]=\"FAIL\",r[r.SHORTEST=1]=\"SHORTEST\",r[r.LONGEST=2]=\"LONGEST\"})(ml||(ml={}));var zT=class extends Qe{constructor(t,e=ml.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 Qe?{value:i.next().then(u=>(e++,u.done&&n++,u.value)),recurse:!1}:{value:null,recurse:!0}}let s=await nw(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case ml.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ml.SHORTEST:return{value:null,done:!0};case ml.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},iw=class extends Qe{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new od(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()}},BT=class extends iw{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=_R.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 ni=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),En(async()=>(await n.iterator()).columnMajorBatch(t,e,rJ),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,En(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,En(async()=>(await e.iterator()).filter(o=>G(()=>t(o))),n)}async forEachAsync(t){return(await this.iterator()).forEachAsync(t)}map(t){let e=this;return En(async()=>(await e.iterator()).map(n=>G(()=>t(n))),this.size)}mapAsync(t){let e=this;return En(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 En(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,En(async()=>{let o=qh(async()=>({value:await e.iterator(),done:!1}));return ER(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=$R.alea(e||y.now().toString());return En(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,En(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()}};ni.MAX_BUFFER_SIZE=1e4;function En(r,t=null){return new class extends ni{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function DR(r){return En(async()=>VT(r),r.length)}function RR(r){if(!Su(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 nw(r,n=>{if(n instanceof ni)return{value:n.iterator(),recurse:!1};if(Su(n))return{value:null,recurse:!0};throw new Error(\"Leaves of the structure passed to zip() must be Datasets, not primitives.\")});return AR(e,ml.SHORTEST)},t)}function rJ(r){if(r===null)return null;let t=r[0];return NR(t)?{value:nJ(r),recurse:!1}:{value:null,recurse:!0}}function nJ(r){if(r.length===0)throw new Error(\"Can't make a batch of zero elements.\");return r[0]instanceof Lt?sr(r):vr(r)}var sd=class extends ni{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 aw='\"',Kh=Symbol(\"out\"),FR=Symbol(\"field\"),lw=Symbol(\"quote\"),GT=Symbol(\"quoteafterquote\"),OR=Symbol(\"quoteinquote\"),id=class extends ni{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 sd(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(!B().get(\"IS_BROWSER\"))throw new Error(\"microphone API is only supported in browser environment.\");let e=new ad(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),vr(n,e)}};var ld=class extends Qe{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=Ve([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=Ks([i,s,u,a],[1,4])}else this.cropBox=Ks([0,0,1,1],[1,4])}summary(){return\"webcam\"}static async create(t,e={}){if(!B().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 ld(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=xx.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 G(()=>{let e=yr(tt(t,\"float32\"),0),n;n=uu.cropAndResize(e,this.cropBox,this.cropBoxInd,this.cropSize,\"bilinear\");let o=n.shape;return F(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 ud=class{};var jh=class extends Qe{split(t){return new WT(this,t)}},WT=class extends jh{constructor(t,e){super(),this.upstream=t,this.impl=new UT(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},UT=class extends Oc{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 uw=class extends Qe{decodeUTF8(){return new HT(this)}},HT=class extends jh{constructor(t){super(),this.upstream=t,this.impl=new qT(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},qT=class extends Oc{constructor(t){if(super(),this.upstream=t,B().get(\"IS_BROWSER\"))this.decoder=new TextDecoder(\"utf-8\");else{let{StringDecoder:e}=kT();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 B().get(\"IS_BROWSER\")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var cd=class extends uw{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(B().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 PR(r,t={},e){let n,o;typeof r==\"string\"?n=r:(n=r.url,o=oJ(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new cd(i,t)}else throw new Error(s.statusText)}var oJ=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 cw(r){return typeof r==\"string\"&&r.slice(0,7)===\"file://\"}var pd=class extends ud{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(cw(this.input)&&B().get(\"IS_NODE\")){let t=pw();this.input=t.readFileSync(this.input.slice(7))}return new cd(this.input,this.options)}};var md=class extends ud{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return cw(this.url)?new pd(this.url,this.fileOptions).iterator():PR(this.url,this.fileOptions)}};function LR(r,t={}){return new id(new md(r),t)}function MR(r){let t=qh(r);return En(async()=>t)}function zR(r){return En(async()=>{let t=await r();return qh(()=>t.next())})}async function BR(r,t){return ld.create(r,t)}async function VR(r){return ad.create(r)}var KT=\"3.20.0\";function nt(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 sJ=Vr.whereImpl,Tu=class extends Ho{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new ra(this,go())}nextDataId(){return Tu.nextDataId++}write(t,e,n){this.firstUse&&(this.firstUse=!1,B().get(\"IS_NODE\")&&S.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 S.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 vt(t.shape,t.dtype,n)}catch(n){throw new Error(\"Failed to decode encoded string bytes into utf-8\")}return vt(t.shape,t.dtype,e)}makeOutput(t,e,n){return go().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){nt([t],\"where\");let e=this.readSync(t.dataId);return sJ(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Tu.nextDataId=0;var Sw={};jt(Sw,{addImpl:()=>YT,bincountImpl:()=>hd,bincountReduceImpl:()=>mw,castImpl:()=>XT,ceilImpl:()=>ZT,concatImpl:()=>Pc,equalImpl:()=>JT,expImpl:()=>tN,expm1Impl:()=>rN,floorImpl:()=>nN,gatherNdImpl:()=>fw,gatherV2Impl:()=>dw,greaterEqualImpl:()=>sN,greaterImpl:()=>oN,lessEqualImpl:()=>aN,lessImpl:()=>iN,linSpaceImpl:()=>hw,logImpl:()=>lN,maxImpl:()=>gw,maximumImpl:()=>uN,minimumImpl:()=>cN,multiplyImpl:()=>Xh,negImpl:()=>pN,notEqualImpl:()=>mN,prodImpl:()=>fN,raggedTensorToTensorImpl:()=>xw,rangeImpl:()=>Mc,rsqrtImpl:()=>dN,scatterImpl:()=>fl,sigmoidImpl:()=>hF,simpleAbsImpl:()=>jT,sliceImpl:()=>zc,sparseFillEmptyRowsImpl:()=>yw,sparseReshapeImpl:()=>bw,sparseSegmentReductionImpl:()=>yd,sqrtImpl:()=>yF,squaredDifferenceImpl:()=>gN,stridedSliceImpl:()=>ww,stringNGramsImpl:()=>Bc,stringSplitImpl:()=>Vc,stringToHashBucketFastImpl:()=>Gc,subImpl:()=>yN,tileImpl:()=>Cw,topKImpl:()=>vw,transposeImpl:()=>gd,uniqueImpl:()=>Iw});function jT(r){let t=new Float32Array(r.length);for(let e=0;e{let{x:t}=r.inputs,e=r.backend;nt(t,\"abs\");let n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId).values;return n=jT(o),e.makeOutput(n,t.shape,t.dtype)},WR={kernelName:pi,backendName:\"cpu\",kernelFunc:iJ};function re(r){return(t,e,n,o,s)=>{let i=S.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=S.getBroadcastDims(t,i),g=S.getBroadcastDims(e,i);if(h.length+g.length===0)for(let x=0;xw[$]=0);let C=y.locToIndex(w,p,f),T=b.slice(-m);g.forEach($=>T[$]=0);let E=y.locToIndex(T,m,d);c[x]=r(n[C],o[E])}return[c,i]}}function Cr(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 UR={kernelName:Np,backendName:\"cpu\",kernelFunc:Cr};function fd(r,t,e=\"float32\"){if(e===\"complex64\"){let o=fd(r,t,\"float32\"),s=fd(r,t,\"float32\");return Cr({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Ur(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 HR={kernelName:uo,backendName:\"cpu\",kernelFunc:Ur};function Eo(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 qR={kernelName:qp,backendName:\"cpu\",kernelFunc:Eo};function XT(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]=re((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 Ao(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s===\"complex64\"){if(o.dtype===\"complex64\")return Ur({inputs:{x:o},backend:e});let c=fd(e,o.shape,o.dtype),p=Ao({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),m=Cr({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype===\"complex64\"){let c=Eo({inputs:{input:o},backend:e}),p=Ao({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Ur({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]=XT(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var KR={kernelName:ao,backendName:\"cpu\",kernelFunc:Ao};function ie(r,t,e,n){return e==null?({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;nt([i,a],r);let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=i.dtype===\"string\"?S.fromUint8ToStringArray(l):l,m=i.dtype===\"string\"?S.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=Ao({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=Ao({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,[T,E,$]=e(i.shape,a.shape,f,d,w,C),D=u.makeTensorInfo($,\"float32\",T),P=u.makeTensorInfo($,\"float32\",E),M=Cr({inputs:{real:D,imag:P},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo(D),u.disposeIntermediateTensorInfo(P),M}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 dd(r){return(t,e,n,o,s,i)=>{let a=S.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=S.getBroadcastDims(t,a),d=S.getBroadcastDims(e,a),h=S.mergeRealAndImagArrays(n,o),g=S.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 T=0;T$[H]=0);let D=y.locToIndex($,x,b),P=E.slice(-w);d.forEach(H=>P[H]=0);let M=y.locToIndex(P,w,C),W=r(h[D*2],h[D*2+1],g[M*2],g[M*2+1]);p[T]=W.real,m[T]=W.imag}return[p,m,a]}}var YT=re((r,t)=>r+t),aJ=dd((r,t,e,n)=>({real:r+e,imag:t+n})),Qi=ie(jn,YT,aJ),jR={kernelName:jn,backendName:\"cpu\",kernelFunc:Qi};function hd(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 mw(r,t,e,n=!1){let o=r.shape[0],s=r.shape[1],i=vt([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 bn(r){return(t,e,n)=>{let o=y.getTypedArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;if(nt(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(nt(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 ZT=bn(r=>Math.ceil(r)),lJ=$o(Jo,ZT),XR={kernelName:Jo,backendName:\"cpu\",kernelFunc:lJ};function Pc(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\"?S.fromUint8ToStringArray(i.vals):i.vals,u=0;for(let l=0;lr===t?1:0),QT=ie(xa,JT,null,\"bool\"),YR={kernelName:xa,backendName:\"cpu\",kernelFunc:QT};var tN=bn(r=>Math.exp(r)),eN=$o(as,tN,\"float32\"),ZR={kernelName:as,backendName:\"cpu\",kernelFunc:eN};var rN=bn(r=>Math.expm1(r)),uJ=$o(ya,rN),JR={kernelName:ya,backendName:\"cpu\",kernelFunc:uJ};var nN=bn(r=>Math.floor(r)),cJ=$o(ls,nN),QR={kernelName:ls,backendName:\"cpu\",kernelFunc:cJ};function fw(r,t,e,n,o,s,i,a,u){let l=vt([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),pJ=ie(Ca,oN,null,\"bool\"),tF={kernelName:Ca,backendName:\"cpu\",kernelFunc:pJ};var sN=re((r,t)=>r>=t?1:0),mJ=ie(ps,sN,null,\"bool\"),eF={kernelName:ps,backendName:\"cpu\",kernelFunc:mJ};var iN=re((r,t)=>rr<=t?1:0),dJ=ie(Na,aN,null,\"bool\"),nF={kernelName:Na,backendName:\"cpu\",kernelFunc:dJ};function hw(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,\"float32\");o[0]=r;for(let s=1;sMath.log(r)),hJ=$o(fs,lN),oF={kernelName:fs,backendName:\"cpu\",kernelFunc:hJ};function gw(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 uN=re((r,t)=>Math.max(r,t)),gJ=ie(hs,uN),sF={kernelName:hs,backendName:\"cpu\",kernelFunc:gJ};var cN=re((r,t)=>Math.min(r,t)),xJ=ie(bs,cN),iF={kernelName:bs,backendName:\"cpu\",kernelFunc:xJ};var Xh=re((r,t)=>r*t),yJ=dd((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),Lc=ie(Cs,Xh,yJ),aF={kernelName:Cs,backendName:\"cpu\",kernelFunc:Lc};function pN(r,t,e){let n=y.createScalarValue(-1,e);return Xh([],t,n,r,e)}function bJ(r){let{inputs:t,backend:e}=r,{x:n}=t;nt(n,\"neg\");let o=e.data.get(n.dataId).values,[s,i]=pN(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var lF={kernelName:gi,backendName:\"cpu\",kernelFunc:bJ};var mN=re((r,t)=>r!==t?1:0),wJ=ie(Da,mN,null,\"bool\"),uF={kernelName:Da,backendName:\"cpu\",kernelFunc:wJ};function gd(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 pF={kernelName:Ns,backendName:\"cpu\",kernelFunc:CJ};var Do=S.RowPartitionType,xd=class{constructor(t,e,n,o,s,i,a,u,l,c){this.shape=t,this.shapeShape=e,this.values=n,this.valuesShape=o,this.valuesDType=s,this.defaultValue=i,this.defaultValueShape=a,this.rowPartitionValues=u,this.rowPartitionValuesShapes=l,this.rowPartitionTypes=S.getRowPartitionTypesHelper(c),this.raggedRank=S.getRaggedRank(this.rowPartitionTypes)}getRowPartitionTypeByDimension(t){return this.rowPartitionTypes[0]===Do.FIRST_DIM_SIZE?this.rowPartitionTypes[t+1]:this.rowPartitionTypes[t]}getRowPartitionTensor(t){return this.rowPartitionTypes[0]===Do.FIRST_DIM_SIZE?this.rowPartitionValues[t+1]:this.rowPartitionValues[t]}getMaxWidth(t){let e=this.getRowPartitionTensor(t-1);switch(this.getRowPartitionTypeByDimension(t-1)){case Do.VALUE_ROWIDS:return xd.getMaxWidthValueRowID(e);case Do.ROW_SPLITS:return xd.getMaxWidthRowSplit(e);default:throw new Error(`Cannot handle partition type ${Do[this.getRowPartitionTypeByDimension(t-1)]}`)}}static getMaxWidthRowSplit(t){let e=t.length;if(e===0||e===1)return 0;let n=0;for(let o=0;on&&(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 Do.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Do.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: ${Do[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 Do.FIRST_DIM_SIZE:return t[0];case Do.VALUE_ROWIDS:throw new Error(\"Cannot handle VALUE_ROWIDS in first dimension.\");case Do.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Do[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=fF(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;G(()=>{let h=F(c,d);c=Mi(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);mF(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function mF(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 xw(r,t,e,n,o,s,i,a,u,l){return new xd(r,t,e,n,o,s,i,a,u,l).compute()}function Mc(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)),vJ=$o(Rs,dN),dF={kernelName:Rs,backendName:\"cpu\",kernelFunc:vJ};function fl(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 vt(e,t.dtype);let f=vt(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))),hN=Et(Os,r=>1/(1+Math.exp(-r))),gF={kernelName:Os,backendName:\"cpu\",kernelFunc:hN};function zc(r,t,e,n,o){let s=Be.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=Be.computeFlatOffset(t,a);return o===\"string\"?r.slice(p,p+i):r.subarray(p,p+i)}let u=o===\"string\"?S.fromUint8ToStringArray(r):r,l=vt(n,o,u),c=vt(e,o);for(let p=0;pd+t[h]);c.set(l.get(...f),...m)}return o===\"string\"?S.fromStringArrayToUint8(c.values):c.values}function Ro(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;nt(o,\"slice\");let[a,u]=Be.parseSliceParams(o,s,i);Be.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=zc(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var xF={kernelName:Ci,backendName:\"cpu\",kernelFunc:Ro};function yw(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(S.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(S.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(S.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(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let h=0,g=1,x=0,b=o[h];for(;;){let w=0;if(g=w)throw new Error(S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>x&&d.fill(i,x*l,b*l);for(let C=h;C=u[0])throw new Error(S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(C,n[C],u[0]));for(let E=0;Ea)break}return xMath.sqrt(r)),IJ=Et(Ps,r=>Math.sqrt(r)),bF={kernelName:Ps,backendName:\"cpu\",kernelFunc:IJ};var gN=re((r,t)=>{let e=r-t;return e*e}),SJ=ie(zs,gN),wF={kernelName:zs,backendName:\"cpu\",kernelFunc:SJ};function ww(r,t,e,n){let o=vt(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 Bc(r,t,e,n,o,s,i,a){return new xN(e,n,o,s,i,a).compute(r,t)}function TJ(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),NJ=dd((r,t,e,n)=>({real:r-e,imag:t-n})),Yh=ie(Bs,yN,NJ),CF={kernelName:Bs,backendName:\"cpu\",kernelFunc:Yh};function Cw(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 vF(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));vF(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),Zh(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}Zh(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 vw(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 Tu,1);var bN=Et(is,r=>r>=0?r:Math.exp(r)-1),IF={kernelName:is,backendName:\"cpu\",kernelFunc:bN};function wN(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n;nt([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 CN(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t;nt([n,o],\"prelu\");let s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,[a,u]=_J(n.shape,o.shape,s,i,\"float32\");return e.makeTensorInfo(u,\"float32\",a)}var TF={kernelName:Ts,backendName:\"cpu\",kernelFunc:CN};var vN=Et(ks,r=>Math.max(0,r)),NF={kernelName:ks,backendName:\"cpu\",kernelFunc:vN};var IN=Et(As,r=>Math.min(Math.max(0,r),6)),kF={kernelName:As,backendName:\"cpu\",kernelFunc:IN};function Wc(r,t,e,n,o){if(e===\"linear\")return Ur({inputs:{x:t},backend:r});if(e===\"relu\")return vN({inputs:{x:t},backend:r});if(e===\"elu\")return bN({inputs:{x:t},backend:r});if(e===\"relu6\")return IN({inputs:{x:t},backend:r});if(e===\"prelu\")return CN({inputs:{x:t,alpha:n},backend:r});if(e===\"leakyrelu\")return wN({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e===\"sigmoid\")return hN({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function Jt(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 _F={kernelName:bi,backendName:\"cpu\",kernelFunc:Jt};function SN(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;nt([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=Lr.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],T=a?[x,f,p]:[x,p,f],E=Jt({inputs:{x:o},backend:e,attrs:{shape:C}}),$=Jt({inputs:{x:s},backend:e,attrs:{shape:T}}),D=i?E.shape[1]:E.shape[2],P=i?E.shape[2]:E.shape[1],M=a?$.shape[1]:$.shape[2],W=Math.max(g,x),H=e.data.get(E.dataId).values,q=e.data.get($.dataId).values,X=y.computeStrides(E.shape),j=y.computeStrides($.shape),[Z,et,K]=i?[X[0],1,X[1]]:[X[0],X[1],1],[ot,st,it]=a?[1,j[1],j[0]]:[j[1],1,j[0]],pt=P*M,at=vt([W,P,M],E.dtype),gt=at.values,dt=e.blockSize;for(let bt=0;btMath.acos(r)),$F={kernelName:oa,backendName:\"cpu\",kernelFunc:AJ};var $J=Et(sa,r=>Math.acosh(r)),DF={kernelName:sa,backendName:\"cpu\",kernelFunc:$J};function DJ(r){let{inputs:t,backend:e}=r,n=t;nt(t,\"addN\");let o=n.map(a=>e.data.get(a.dataId).values),s=vt(n[0].shape,n[0].dtype),i=s.values;for(let a=0;ab&&(b=T,w=C)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,\"int32\",f)}var PF={kernelName:Xo,backendName:\"cpu\",kernelFunc:OJ};function PJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n;nt(o,\"argMin\");let i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Ue({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),i=[i[0]],S.assertAxesAreInnerMostDims(\"argMin\",i,u.shape.length);let[c,p]=S.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 LF={kernelName:Nl,backendName:\"cpu\",kernelFunc:PJ};var LJ=Et(la,r=>Math.asin(r)),MF={kernelName:la,backendName:\"cpu\",kernelFunc:LJ};var MJ=Et(ua,r=>Math.asinh(r)),zF={kernelName:ua,backendName:\"cpu\",kernelFunc:MJ};var zJ=Et(ca,r=>Math.atan(r)),BF={kernelName:ca,backendName:\"cpu\",kernelFunc:zJ};var BJ=re((r,t)=>Math.atan2(r,t)),VJ=ie(ma,BJ),VF={kernelName:ma,backendName:\"cpu\",kernelFunc:VJ};var GJ=Et(pa,r=>Math.atanh(r)),GF={kernelName:pa,backendName:\"cpu\",kernelFunc:GJ};function bd(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=vt(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;Cet?et=dt:s===\"avg\"&&(K+=dt,ot++)}if(isNaN(et))break}let st=H+q*w+$;g[st]=s===\"avg\"?K/ot:et}}}return h}function Tw(r,t,e,n,o=!1,s=!1){let i=vt(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=vt(t,e,r);for(let g=0;gM&&(M=Z,o?W=s?((g*n.inHeight+H)*n.inWidth+X)*n.inChannels+x:(H*n.inWidth+X)*n.inChannels+x:W=q*m+j)}}i.set(W,g,b,E,x)}}return i}function Nw(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=vt(o.outShape,e),C=w.values,T=o.outShape[1]*o.outShape[2]*o.outShape[3]*o.outShape[4],E=o.outShape[2]*o.outShape[3]*o.outShape[4],$=o.outShape[3]*o.outShape[4],D=o.outShape[4];for(let P=0;PAt?At=Re:s===\"avg\"&&(Rt+=Re,qt++),isNaN(At))break}if(isNaN(At))break}if(isNaN(At))break}let Kt=Tt+H;C[Kt]=s===\"avg\"?Rt/qt:At}}}}return w}function WF(r,t){let e=vt(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=q&&(q=it,X=Z*c*p+K*c+st)}}}e.set(X,h,x,T,P,g)}}}return e}function WJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;nt(o,\"avgPool\");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Ur({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=bd(m,o.shape,o.dtype,f,c,\"avg\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var UF={kernelName:Yo,backendName:\"cpu\",kernelFunc:WJ};function UJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;nt(o,\"avgPool3d\");let c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=Nw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"avg\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var HF={kernelName:kl,backendName:\"cpu\",kernelFunc:UJ};function HJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;nt([o,s],\"avgPool3DGrad\");let c=S.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,T=c.effectiveFilterHeight,E=c.effectiveFilterWidth,$=C-1-c.padInfo.front,D=E-1-c.padInfo.left,P=T-1-c.padInfo.top,M=vt(s.shape,\"float32\"),W=1/(d*h*g),H=e.bufferSync(o);for(let q=0;q=c.outDepth||Math.floor(at)!==at))for(let gt=0;gt=c.outHeight||Math.floor(dt)!==dt))for(let bt=0;bt=c.outWidth||Math.floor(Tt)!==Tt)continue;it+=H.get(q,at,dt,Tt,X)}}}M.set(it*W,q,j,Z,et,X)}return e.makeTensorInfo(M.shape,M.dtype,M.values)}var qF={kernelName:Ip,backendName:\"cpu\",kernelFunc:HJ};function qJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;nt([o,s],\"avgPoolGrad\");let{filterSize:a,strides:u,pad:l}=n,c=S.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,T=vt(i.shape,\"float32\"),E=1/(f*d),$=e.data.get(o.dataId).values,D=vt(o.shape,\"float32\",$);for(let P=0;P=c.outHeight||Math.floor(et)!==et))for(let K=0;K=c.outWidth||Math.floor(ot)!==ot)continue;j+=D.get(P,et,ot,M)}}T.set(j*E,P,W,H,M)}return e.makeTensorInfo(T.shape,T.dtype,T.values)}var KF={kernelName:vp,backendName:\"cpu\",kernelFunc:qJ};function KJ(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.\"),nt([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,T=0,E=0,$=0;for(let D=0;D=g&&(C=0),T>=w&&(T=0),E>=x&&(E=0),$>=b&&($=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var jF={kernelName:cs,backendName:\"cpu\",kernelFunc:KJ};function jJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;nt([o],\"batchToSpaceND\");let a=s.reduce((x,b)=>x*b),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=Jt({inputs:{x:o},backend:e,attrs:{shape:u}}),d=Ue({inputs:{x:f},backend:e,attrs:{perm:l}}),h=Jt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Ro({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var XF={kernelName:mi,backendName:\"cpu\",kernelFunc:jJ};function XJ(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=hd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var YF={kernelName:Sp,backendName:\"cpu\",kernelFunc:XJ};function YJ(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=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],\"int32\",Int32Array.from(a))}var ZF={kernelName:Tp,backendName:\"cpu\",kernelFunc:YJ};var ZJ=Et(lo,(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),s);if(y.sizeFromShape(i)===0)return e.makeTensorInfo(i,t[0].dtype,[]);let a=t.filter(h=>y.sizeFromShape(h.shape)>0);if(a.length===1)return Ur({inputs:{x:a[0]},backend:e});let u=a.map(h=>h.shape);if(S.assertParamsConsistent(u,s),a[0].dtype===\"complex64\"){let h=a.map(C=>Eo({inputs:{input:C},backend:e})),g=a.map(C=>ta({inputs:{input:C},backend:e})),x=Nu({inputs:h,backend:e,attrs:{axis:s}}),b=Nu({inputs:g,backend:e,attrs:{axis:s}}),w=Cr({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=a.map(h=>{let g=y.sizeFromShape(h.shape.slice(s));return Jt({inputs:{x:h},backend:e,attrs:{shape:[-1,g]}})}),c=l.map(h=>({vals:e.data.get(h.dataId).values,shape:h.shape}));i=S.computeOutShape(l.map(h=>h.shape),1);let p=l[0].shape[0]===1,m=Pc(c,i,t[0].dtype,p),f=S.computeOutShape(a.map(h=>h.shape),s),d=e.makeTensorInfo(f,t[0].dtype,m);return l.forEach(h=>e.disposeIntermediateTensorInfo(h)),d}var eO={kernelName:fi,backendName:\"cpu\",kernelFunc:Nu};function TN(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;nt([o,s],\"conv2d\");let p=S.convertConv2DDataFormat(u),m=S.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 fe(m.outShape,o.dtype),T=y.computeStrides(o.shape),E=y.computeStrides(s.shape),$=T[0],D=w?T[1]:T[2],P=w?T[2]:1,M=w?1:T[1],W=C.strides[0],H=w?C.strides[1]:C.strides[2],q=w?C.strides[2]:1,X=w?1:C.strides[1],j=e.data.get(o.dataId).values,Z=e.data.get(s.dataId).values,et=C.values;for(let K=0;K=m.inHeight)continue;let bt=gt*E[0],Tt=ot+dt*D;for(let At=0;At=m.inWidth)continue;let Ft=bt+Kt*E[1],Ae=Tt+me*P,Ie=Ft;for(let le=0;le=l.inDepth)continue;let K=Z*P[0],ot=W+et*D[1];for(let st=0;st=l.inHeight)continue;let dt=K+at*P[1],bt=ot+gt*D[2];for(let Tt=0;Tt=l.inWidth)continue;let me=dt+qt*P[2],Ft=bt+Kt*l.inChannels,Ae=me;for(let Ie=0;IeMath.cos(r)),lO={kernelName:es,backendName:\"cpu\",kernelFunc:o9};var s9=Et(rs,r=>Math.cosh(r)),uO={kernelName:rs,backendName:\"cpu\",kernelFunc:s9};function i9(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=vt([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,T=y.computeStrides(o.shape),E=y.computeStrides(x.shape);for(let $=0;$=c)continue;let X=h>1?(W-P)*(p-1)/(h-1):0,j=g>1?(H-M)*(m-1)/(g-1):0;for(let Z=0;Z1?P*(p-1)+Z*X:.5*(P+W)*(p-1);if(et<0||et>p-1){for(let K=0;K1?M*(m-1)+it*j:.5*(M+H)*(m-1);if(pt<0||pt>m-1){for(let bt=0;bt1?M*(m-1)+K*j:.5*(M+H)*(m-1);if(ot<0||ot>m-1){for(let pt=0;ptx+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=S.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,T=f.outChannels/f.inChannels,E=new fe(f.outShape,o.dtype),$=e.data.get(o.dataId).values,D=e.data.get(s.dataId).values,P=E.values;for(let M=0;M=f.inHeight)continue;let K=Z*p[0],ot=W+et*c[1];for(let st=0;st=f.inWidth)continue;let dt=K+at*p[1],bt=ot+gt*f.inChannels,Tt=it,At=dt;for(let Rt=0;Rt{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:T,filterHeight:E,filterWidth:$,dilationHeight:D,dilationWidth:P,outShape:M}=S.computeDilation2DInfo(n.shape,o.shape,s,i,\"NHWC\",a),W=y.sizeFromShape(M),H=M.length,q=y.getArrayFromDType(n.dtype,W);for(let j=0;j=0&>=0&&btit&&(it=Rt)}}}let pt=y.locToIndex([j,Z,K,st],H,y.computeStrides(M));q[pt]=it}}}return{dataId:u.write(y.toTypedArray(q,n.dtype),M,n.dtype),shape:M,dtype:n.dtype}}};var wO={kernelName:sh,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:T,filterWidth:E,dilationHeight:$,dilationWidth:D,outShape:P}=S.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===P.length,()=>`Error in ${sh}, dy must have the same rank as output ${P.length}, but got ${s.rank}`);let M=y.toNestedArray(P,l.data.get(s.dataId).values),W=y.makeZerosNestedTypedArray(o.shape,o.dtype);for(let q=0;q=0&&at=0&&dtot&&(ot=bt,st=pt,it=gt)}}}W[st][it][K]+=M[q][X][Z][K]}}}return{dataId:l.write(y.toTypedArray(W,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var CO={kernelName:oh,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:T,filterWidth:E,dilationHeight:$,dilationWidth:D,outShape:P}=S.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===P.length,()=>`Error in ${oh}, dy must have the same rank as output ${P.length}, but got ${s.rank}`);let M=y.toNestedArray(P,l.data.get(s.dataId).values),W=y.makeZerosNestedTypedArray(n.shape,n.dtype);for(let q=0;q=0&&at=0&&dtot&&(ot=bt,st=at,it=dt)}}}W[q][st][it][K]+=M[q][X][Z][K]}}}return{dataId:l.write(y.toTypedArray(W,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function dl(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;nt(o,\"sum\");let a;o.dtype===\"bool\"?a=Ao({inputs:{x:o},backend:e,attrs:{dtype:\"int32\"}}):a=Ur({inputs:{x:o},backend:e});let u=a.shape.length,l=y.parseAxisParam(s,a.shape),c=S.getAxesPermutation(l,u),p=l,m=a;c!=null&&(m=Ue({inputs:{x:a},backend:e,attrs:{perm:c}}),p=S.getInnerMostAxes(p.length,u)),S.assertAxesAreInnerMostDims(\"sum\",p,m.shape.length);let[f,d]=S.computeOutAndReduceShapes(m.shape,p),h=S.upcastType(m.dtype,\"int32\"),g=fd(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=dl({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 IO={kernelName:Fp,backendName:\"cpu\",kernelFunc:d9};function h9(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t;nt([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 SO={kernelName:Op,backendName:\"cpu\",kernelFunc:h9};var g9=S.ERF_P,x9=S.ERF_A1,y9=S.ERF_A2,b9=S.ERF_A3,w9=S.ERF_A4,C9=S.ERF_A5,v9=Et(ga,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+g9*e);return t*(1-((((C9*n+w9)*n+b9)*n+y9)*n+x9)*n*Math.exp(-e*e))}),TO={kernelName:ga,backendName:\"cpu\",kernelFunc:v9};function wd(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),Jt({inputs:{x:o},backend:e,attrs:{shape:a}})}var NO={kernelName:di,backendName:\"cpu\",kernelFunc:wd};var I9=re((r,t)=>r/t),Jh=ie(ss,I9),Qh={kernelName:ss,backendName:\"cpu\",kernelFunc:Jh};function kw(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)),A9=ie(us,E9,null,\"int32\"),AO={kernelName:us,backendName:\"cpu\",kernelFunc:A9};function $9(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=TN({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=Jt({inputs:{x:i},backend:e,attrs:{shape:[i.shape[0],1,1]}});h=Qi({inputs:{a:h,b:x},backend:e}),e.disposeIntermediateTensorInfo(x)}else h=Qi({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=Jt({inputs:{x:a},backend:e,attrs:{shape:[a.shape[0],1,1]}});h=Wc(e,h,f,x,d),e.disposeIntermediateTensorInfo(x)}else h=Wc(e,h,f,a,d);e.disposeIntermediateTensorInfo(g)}return h}var $O={kernelName:ki,backendName:\"cpu\",kernelFunc:$9};function D9(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=NN({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;h=Qi({inputs:{a:h,b:i},backend:e}),e.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=Wc(e,h,f,a,d),e.disposeIntermediateTensorInfo(g)}return h}var DO={kernelName:_i,backendName:\"cpu\",kernelFunc:D9};function R9(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]=S.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=fw(m,f,n.dtype,l,a,c,p,n.shape,s);return e.makeTensorInfo(u,n.dtype,d.values)}var RO={kernelName:wa,backendName:\"cpu\",kernelFunc:R9};function F9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,indices:s}=t,{axis:i,batchDims:a}=n;nt([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 ${T} is not in [0, ${c-1}]`)}let p=a;a==null&&(p=0);let m=y.sizeFromShape(s.shape),f=S.segment_util.collectGatherOpShapeInfo(o,s,u,p),d=Jt({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=Jt({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=dw(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var FO={kernelName:hi,backendName:\"cpu\",kernelFunc:F9};function O9(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=Jt({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=kw(a,!0,e),l=Jt({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var OO={kernelName:Lp,backendName:\"cpu\",kernelFunc:O9};var P9=Et(va,r=>Number.isFinite(r)?1:0,\"bool\"),PO={kernelName:va,backendName:\"cpu\",kernelFunc:P9};var L9=Et(Ia,r=>Math.abs(r)===1/0?1:0,\"bool\"),LO={kernelName:Ia,backendName:\"cpu\",kernelFunc:L9};var M9=Et(Sa,r=>Number.isNaN(r)?1:0,\"bool\"),MO={kernelName:Sa,backendName:\"cpu\",kernelFunc:M9};function z9(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=hw(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var zO={kernelName:zp,backendName:\"cpu\",kernelFunc:z9};var B9=Et(ka,r=>Math.log1p(r)),BO={kernelName:ka,backendName:\"cpu\",kernelFunc:B9};var V9=re((r,t)=>r&&t),G9=ie(_a,V9,null,\"bool\"),VO={kernelName:_a,backendName:\"cpu\",kernelFunc:G9};var W9=Et(Ea,r=>r?0:1,\"bool\"),GO={kernelName:Ea,backendName:\"cpu\",kernelFunc:W9};var U9=re((r,t)=>r||t),H9=ie(Aa,U9,null,\"bool\"),WO={kernelName:Aa,backendName:\"cpu\",kernelFunc:H9};function q9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;nt(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=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Ur({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=bd(m,o.shape,o.dtype,f,c,\"max\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var KO={kernelName:gs,backendName:\"cpu\",kernelFunc:j9};function X9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;nt(o,\"maxPool3d\");let c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=Nw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"max\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var jO={kernelName:Rl,backendName:\"cpu\",kernelFunc:X9};function Y9(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;nt([o,s],\"maxPool3DGrad\");let c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.bufferSync(s),m=WF(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,T=c.effectiveFilterWidth,E=w-1-c.padInfo.front,$=T-1-c.padInfo.left,D=C-1-c.padInfo.top,P=vt(s.shape,\"float32\"),M=e.bufferSync(o);for(let W=0;W=c.outDepth||Math.floor(it)!==it))for(let pt=0;pt=c.outHeight||Math.floor(at)!==at))for(let gt=0;gt=c.outWidth||Math.floor(dt)!==dt)continue;let bt=w*C*T-1-m.get(W,it,at,dt,H),Tt=st*C*T+pt*T+gt,At=bt===Tt?1:0;if(At===0)continue;ot+=M.get(W,it,at,dt,H)*At}}}P.set(ot,W,q,X,j,H)}return e.makeTensorInfo(P.shape,P.dtype,P.values)}var XO={kernelName:Gp,backendName:\"cpu\",kernelFunc:Y9};function Z9(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;nt([s,i],\"maxPoolGrad\");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=S.computePool2DInfo(a.shape,u,l,1,c,p),f=e.data.get(a.dataId).values,d=vt(m.outShape,a.dtype,Tw(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,T=C-1-m.padInfo.left,E=w-1-m.padInfo.top,$=vt(a.shape,\"float32\"),D=e.data.get(o.dataId).values,P=vt(o.shape,\"float32\",D);for(let M=0;M=m.outHeight||Math.floor(K)!==K))for(let ot=0;ot=m.outWidth||Math.floor(st)!==st)continue;let it=w*C-1-d.get(M,K,st,W),pt=et*C+ot,at=it===pt?1:0;if(at===0)continue;Z+=P.get(M,K,st,W)*at}}$.set(Z,M,H,q,W)}return e.makeTensorInfo($.shape,$.dtype,$.values)}var YO={kernelName:Vp,backendName:\"cpu\",kernelFunc:Z9};function ZO(r,t,e,n,o){let s=y.computeStrides(t),i=bd(r,t,e,s,o,\"max\"),a=Tw(r,t,e,o,!0,n);return[i.values,a.values]}var JO={kernelName:Wp,backendName:\"cpu\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;nt(n,\"MaxPoolWithArgmax\");let l=u.data.get(n.dataId).values,c=S.computePool2DInfo(n.shape,o,s,[1,1],i),[p,m]=ZO(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 J9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=y.parseAxisParam(s,o.shape),l=S.computeOutAndReduceShapes(o.shape,a)[1],c=y.sizeFromShape(l),p=[],m=e.makeTensorInfo([],\"float32\",new Float32Array([c]));p.push(m);let f=Ao({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}});p.push(f);let d=Jh({inputs:{a:f,b:m},backend:e});p.push(d);let h=dl({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var QO={kernelName:xs,backendName:\"cpu\",kernelFunc:J9};function Q9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;nt(o,\"min\");let a=y.parseAxisParam(s,o.shape),u=a,l=S.getAxesPermutation(u,o.shape.length),c=o;l!=null&&(c=Ue({inputs:{x:o},backend:e,attrs:{perm:l}}),u=S.getInnerMostAxes(u.length,o.shape.length)),S.assertAxesAreInnerMostDims(\"min\",u,c.shape.length);let[p,m]=S.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[E]&&(C[E]=(l[E]-1)*2-C[E]+c);C=C.map((E,$)=>E-u[$]);let T=y.locToIndex(C,m,f);x[w]=p[T]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var eP={kernelName:ws,backendName:\"cpu\",kernelFunc:tQ};var eQ=re((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),rQ=ie($a,eQ),rP={kernelName:$a,backendName:\"cpu\",kernelFunc:rQ};var oP=Tl(vh());function EN(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=_N({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=S.expandShapeToKeepDim(l.shape,u),p=Jt({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Yh({inputs:{a:o,b:p},backend:e}),f=eN({inputs:{x:m},backend:e}),d=dl({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=Jt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Jh({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 nP={kernelName:Ms,backendName:\"cpu\",kernelFunc:EN};function nQ(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;nt(o,\"multinomial\");let u=a?o:EN({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=wd({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Nu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var fP={kernelName:yi,backendName:\"cpu\",kernelFunc:AN};function pQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;nt(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;bE+u[$]),T=y.locToIndex(C,d,h);g[T]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var _w={kernelName:Is,backendName:\"cpu\",kernelFunc:pQ};var mQ=re((r,t)=>Math.pow(r,t)),fQ=ie(Ss,mQ),dP={kernelName:Ss,backendName:\"cpu\",kernelFunc:fQ};function dQ(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]=xw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var hP={kernelName:Hp,backendName:\"cpu\",kernelFunc:dQ};function hQ(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=Mc(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var gP={kernelName:Fl,backendName:\"cpu\",kernelFunc:hQ};var gQ=Et(Pa,r=>1/r),xP={kernelName:Pa,backendName:\"cpu\",kernelFunc:gQ};function xQ(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n;nt(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],T=x[1]/b[1];for(let E=0;E1?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 T=0;T1?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],T=0;for(let E=0;E1?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],T=1/w,E=1/C,$=Math.ceil(T)*2+2,D=Math.ceil(E)*2+2;for(let P=0;P=f)continue;let at=M+pt*u[1],gt=pt*w,dt=Math.min(c-1,i?Math.round(gt):Math.floor(gt));if(W===dt)for(let bt=0;bt=d)continue;let At=at+Tt*u[2],Rt=Tt*C,qt=Math.min(p-1,i?Math.round(Rt):Math.floor(Rt));j===qt&&(st+=g[At+ot])}}h[Z+ot]=st}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var CP={kernelName:Kp,backendName:\"cpu\",kernelFunc:wQ};function CQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n;nt(o,\"reverse\");let i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return Ur({inputs:{x:o},backend:e});let u=new fe(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 vP={kernelName:$s,backendName:\"cpu\",kernelFunc:CQ};var IP={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]=S.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&&X=0&&j{let t=Math.floor(r);return r-t<.5?Math.floor(r):r-t>.5?Math.ceil(r):t%2===0?t:t+1}),SP={kernelName:Ds,backendName:\"cpu\",kernelFunc:vQ};function IQ(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}=S.calculateShapes(s,o,i),m=!0,f=e.bufferSync(o),d=e.bufferSync(s),h=fl(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var TP={kernelName:La,backendName:\"cpu\",kernelFunc:IQ};function SQ(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?EQ*r:_Q*(Math.exp(r)-1)),EP={kernelName:Ma,backendName:\"cpu\",kernelFunc:AQ};var $Q=Et(Ba,r=>r<0?-1:r>0?1:0),AP={kernelName:Ba,backendName:\"cpu\",kernelFunc:$Q};var DQ=Et(Fs,r=>Math.sin(r)),$P={kernelName:Fs,backendName:\"cpu\",kernelFunc:DQ};var RQ=Et(za,r=>Math.sinh(r)),DP={kernelName:za,backendName:\"cpu\",kernelFunc:RQ};var FQ=11920928955078125e-23,RP=Math.log(FQ)+2,OQ=Et(Va,r=>{let t=r>-RP,e=rNumber(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var PP={kernelName:Ol,backendName:\"cpu\",kernelFunc:LQ};function MQ(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]=bw(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var LP={kernelName:Ga,backendName:\"cpu\",kernelFunc:MQ};function zQ(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]=yd(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var MP={kernelName:Pl,backendName:\"cpu\",kernelFunc:zQ};function BQ(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]=yd(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var zP={kernelName:Ll,backendName:\"cpu\",kernelFunc:BQ};function VQ(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}=S.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=fl(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=fl(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=fl(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=fl(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 BP={kernelName:Yp,backendName:\"cpu\",kernelFunc:VQ};function GQ(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=S.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=Ro({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var VP={kernelName:Ii,backendName:\"cpu\",kernelFunc:GQ};var GP={kernelName:Ml,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t})=>{let{x:e}=r,n=t;nt(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}),WP={kernelName:co,backendName:\"cpu\",kernelFunc:WQ};function UQ(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;nt(o,\"stridedSlice\");let{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),T;if(h)T=Jt({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 E=Be.computeOutShape(b,w,C),$=Ro({inputs:{x:o},backend:e,attrs:{begin:b,size:E}});T=Jt({inputs:{x:$},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo($)}else{let E=e.bufferSync(o),$=ww(f,E,C,b);T=e.makeTensorInfo(d,$.dtype,$.values)}return T}var UP={kernelName:Wa,backendName:\"cpu\",kernelFunc:UQ};function HQ(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]=Bc(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var HP={kernelName:zl,backendName:\"cpu\",kernelFunc:HQ};function qQ(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]=Vc(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 qP={kernelName:Bl,backendName:\"cpu\",kernelFunc:qQ};function KQ(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=Gc(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var KP={kernelName:Vl,backendName:\"cpu\",kernelFunc:KQ};var jQ=Et(Vs,r=>Math.tan(r)),jP={kernelName:Vs,backendName:\"cpu\",kernelFunc:jQ};var XQ=Et(Gs,r=>Math.tanh(r)),XP={kernelName:Gs,backendName:\"cpu\",kernelFunc:XQ};function YQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;nt(o,\"tile\");let i=Cw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var YP={kernelName:Xn,backendName:\"cpu\",kernelFunc:YQ};function ZQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{k:s,sorted:i}=n;nt(o,\"topk\");let a=e.data.get(o.dataId).values,[u,l]=vw(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 ZP={kernelName:Ua,backendName:\"cpu\",kernelFunc:ZQ};function JQ(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],T=y.computeStrides(g),E=T[0],$=T[1],D=T[2],P=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(g));P.fill(u);let M=n.data.get(o.dataId).values,W=n.data.get(s.dataId).values;for(let q=0;qt-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 ttt(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 ett(r,t){return r}function rtt(r,t){return y.clamp(0,r,t-1)}function rg(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 rL={kernelName:Gl,backendName:\"cpu\",kernelFunc:att};var ltt=[AF,WR,$F,DF,jR,RF,FF,OF,PF,LF,MF,zF,BF,VF,GF,UF,HF,qF,KF,EF,jF,XF,YF,ZF,KR,XR,JF,UR,QF,eO,rO,nO,oO,sO,iO,aO,lO,uO,cO,pO,mO,fO,dO,hO,gO,xO,yO,bO,wO,CO,IO,IF,SO,YR,TO,ZR,NO,JR,kO,_O,EO,QR,AO,$O,DO,RO,FO,tF,eF,HR,OO,tO,PO,LO,MO,SF,rF,nF,zO,oF,BO,VO,GO,WO,UO,HO,qO,sF,KO,jO,XO,YO,JO,QO,tP,iF,eP,rP,sP,aF,lF,iP,aP,lP,uF,uP,mP,fP,_w,dP,TF,pF,hP,gP,qR,Qh,xP,NF,kF,_F,yP,bP,wP,CP,vP,IP,SP,dF,TP,kP,_P,EP,gF,AP,$P,DP,xF,nP,FP,OP,PP,LP,MP,zP,BP,VP,bF,GP,wF,WP,UP,HP,qP,KP,CF,vO,jP,XP,YP,ZP,QP,cF,tL,eL,rL,cP];for(let r of ltt)Wu(r);var Id={};jt(Id,{assertNotComplex:()=>oi,bindCanvasToFramebuffer:()=>xtt,bindColorTextureToFramebuffer:()=>ig,bindTextureToProgramUniformSampler:()=>qN,bindTextureUnit:()=>iL,bindVertexBufferToProgramAttribute:()=>Fw,callAndCheck:()=>Ct,canBeRepresented:()=>FN,createFragmentShader:()=>PN,createFramebuffer:()=>WN,createProgram:()=>LN,createStaticIndexBuffer:()=>BN,createStaticVertexBuffer:()=>zN,createTexture:()=>VN,createVertexShader:()=>ON,getBatchDim:()=>gl,getExtensionOrThrow:()=>Cd,getFramebufferErrorMessage:()=>aL,getMaxTexturesInShader:()=>XN,getNumChannels:()=>htt,getProgramUniformLocation:()=>HN,getProgramUniformLocationOrThrow:()=>UN,getRowsCols:()=>xl,getShapeAs3D:()=>ag,getTextureShapeFromLogicalShape:()=>KN,getWebGLDisjointQueryTimerVersion:()=>YN,getWebGLErrorMessage:()=>sL,getWebGLMaxTextureSize:()=>jN,hasExtension:()=>Wn,isCapableOfRenderingToFloatTexture:()=>ZN,isDownloadFloatTextureEnabled:()=>JN,isReshapeFree:()=>_u,isWebGLFenceEnabled:()=>QN,isWebGLVersionEnabled:()=>Pw,linkProgram:()=>MN,logShaderSourceAndInfoLog:()=>Rw,resetMaxTextureSize:()=>ytt,resetMaxTexturesInShader:()=>btt,unbindColorTextureFromFramebuffer:()=>Ow,unbindTextureUnit:()=>gtt,validateFramebuffer:()=>vd,validateProgram:()=>sg,validateTextureSize:()=>GN});var Uc={},Ew={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function $N(r,t){Uc[r]=t}function Gn(r,t){if(!(r in Uc)||t!=null){let n=ctt(r,t);if(n!==null)Uc[r]=n;else return console.log(\"Could not get context for WebGL version\",r),null}let e=Uc[r];return e==null||e.isContextLost()?(delete Uc[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),Uc[r])}function utt(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 ctt(r,t){if(r!==1&&r!==2)throw new Error(\"Cannot get WebGL rendering context, WebGL is disabled.\");let e=t==null?utt(r):t;return e.addEventListener(\"webglcontextlost\",n=>{n.preventDefault(),delete Uc[r]},!1),B().getBool(\"SOFTWARE_WEBGL_ENABLED\")&&(Ew.failIfMajorPerformanceCaveat=!1),r===1?e.getContext(\"webgl\",Ew)||e.getContext(\"experimental-webgl\",Ew):e.getContext(\"webgl2\",Ew)}var ku;(function(r){r[r.DENSE=0]=\"DENSE\",r[r.SHARED_BATCH=1]=\"SHARED_BATCH\"})(ku||(ku={}));var Hr;(function(r){r[r.RENDER=0]=\"RENDER\",r[r.UPLOAD=1]=\"UPLOAD\",r[r.PIXELS=2]=\"PIXELS\",r[r.DOWNLOAD=3]=\"DOWNLOAD\"})(Hr||(Hr={}));var Fr;(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\"})(Fr||(Fr={}));function Hc(r,t){return[t,r]}function nL(r,t){return r*t}function ng(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function ea(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function oL(r,t){let[e,n]=ea(r,t);return e*n*4}function og(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return B().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 Ct(r,t){let e=t();return B().getBool(\"DEBUG\")&&ptt(r),e}function ptt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error(\"WebGL Error: \"+sL(r,t))}var mtt=596e-10,ftt=65504;function FN(r){return!!(B().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")||r===0||mttr.getExtension(t),'Extension \"'+t+'\" not supported on this browser.')}function ON(r,t){let e=hl(r,()=>r.createShader(r.VERTEX_SHADER),\"Unable to create vertex WebGLShader.\");if(Ct(r,()=>r.shaderSource(e,t)),Ct(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 PN(r,t){let e=hl(r,()=>r.createShader(r.FRAGMENT_SHADER),\"Unable to create fragment WebGLShader.\");if(Ct(r,()=>r.shaderSource(e,t)),Ct(r,()=>r.compileShader(e)),B().get(\"ENGINE_COMPILE_ONLY\"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Rw(t,r.getShaderInfoLog(e)),new Error(\"Failed to compile fragment shader.\");return e}var dtt=/ERROR: [0-9]+:([0-9]+):/g;function Rw(r,t){let e=dtt.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 MN(r,t){if(Ct(r,()=>r.linkProgram(t)),!B().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 sg(r,t){if(Ct(r,()=>r.validateProgram(t)),r.getProgramParameter(t,r.VALIDATE_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error(\"Shader program validation failed.\")}function zN(r,t){let e=hl(r,()=>r.createBuffer(),\"Unable to create WebGLBuffer\");return Ct(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),Ct(r,()=>r.bufferData(r.ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function BN(r,t){let e=hl(r,()=>r.createBuffer(),\"Unable to create WebGLBuffer\");return Ct(r,()=>r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e)),Ct(r,()=>r.bufferData(r.ELEMENT_ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function htt(){return B().getNumber(\"WEBGL_VERSION\")===2?1:4}function VN(r){return hl(r,()=>r.createTexture(),\"Unable to create WebGLTexture.\")}function GN(r,t){let e=B().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 WN(r){return hl(r,()=>r.createFramebuffer(),\"Unable to create WebGLFramebuffer.\")}function Fw(r,t,e,n,o,s,i){let a=r.getAttribLocation(t,e);return a===-1?!1:(Ct(r,()=>r.bindBuffer(r.ARRAY_BUFFER,n)),Ct(r,()=>r.vertexAttribPointer(a,o,r.FLOAT,!1,s,i)),Ct(r,()=>r.enableVertexAttribArray(a)),!0)}function iL(r,t,e){lL(r,e),Ct(r,()=>r.activeTexture(r.TEXTURE0+e)),Ct(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function gtt(r,t){lL(r,t),Ct(r,()=>r.activeTexture(r.TEXTURE0+t)),Ct(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function UN(r,t,e){return hl(r,()=>r.getUniformLocation(t,e),'uniform \"'+e+'\" not present in program.')}function HN(r,t,e){return r.getUniformLocation(t,e)}function qN(r,t,e,n){Ct(r,()=>iL(r,t,n)),Ct(r,()=>r.uniform1i(e,n))}function xtt(r){Ct(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,null)),Ct(r,()=>r.viewport(0,0,r.canvas.width,r.canvas.height)),Ct(r,()=>r.scissor(0,0,r.canvas.width,r.canvas.height))}function ig(r,t,e){Ct(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,e)),Ct(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0))}function Ow(r,t){Ct(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),Ct(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function vd(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error(\"Error binding framebuffer: \"+aL(r,t))}function aL(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 hl(r,t,e){let n=Ct(r,()=>t());if(n==null)throw new Error(e);return n}function lL(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 gl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function xl(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 ag(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[gl(r),...xl(r)]),t}function KN(r,t=!1){let e=B().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\");t&&(e=e*2,r=r.map((o,s)=>s>=r.length-2?y.nearestLargerEven(r[s]):r[s]),r.length===1&&(r=[2,r[0]])),r.length!==2&&(r=y.squeezeShape(r).newShape);let n=y.sizeFromShape(r);if(r.length<=1&&n<=e)return[1,n];if(r.length===2&&r[0]<=e&&r[1]<=e)return r;if(r.length===3&&r[0]*r[1]<=e&&r[2]<=e)return[r[0]*r[1],r[2]];if(r.length===3&&r[0]<=e&&r[1]*r[2]<=e)return[r[0],r[1]*r[2]];if(r.length===4&&r[0]*r[1]*r[2]<=e&&r[3]<=e)return[r[0]*r[1]*r[2],r[3]];if(r.length===4&&r[0]<=e&&r[1]*r[2]*r[3]<=e)return[r[0],r[1]*r[2]*r[3]];if(t){let o=gl(r),s=2,i=2;return r.length&&([s,i]=xl(r)),n=o*(s/2)*(i/2),y.sizeToSquarishShape(n).map(a=>a*2)}return y.sizeToSquarishShape(n)}function Aw(r){return r%2===0}function _u(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||Aw(e)&&Aw(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&Aw(r[0])&&Aw(t[0])}var $w,Dw;function jN(r){if($w==null){let t=Gn(r);$w=t.getParameter(t.MAX_TEXTURE_SIZE)}return $w}function ytt(){$w=null}function btt(){Dw=null}function XN(r){if(Dw==null){let t=Gn(r);Dw=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Dw)}function YN(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 Pw(r){try{if(Gn(r)!=null)return!0}catch(t){return console.log(\"Error when getting WebGL context: \",t),!1}return!1}function ZN(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 RN(t)}function JN(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 RN(t);let n=\"EXT_color_buffer_half_float\";if(Wn(t,n)){let o=t.getExtension(n);return wtt(t,o)}return!1}return RN(t)}function RN(r){let t=og(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 wtt(r,t){let e=og(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 QN(r){return r!==2?!1:Gn(r).fenceSync!=null}function oi(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 Dt=B();Dt.registerFlag(\"HAS_WEBGL\",()=>Dt.getNumber(\"WEBGL_VERSION\")>0);Dt.registerFlag(\"WEBGL_VERSION\",()=>Pw(2)?2:Pw(1)?1:0);Dt.registerFlag(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\",()=>!1);Dt.registerFlag(\"WEBGL_BUFFER_SUPPORTED\",()=>Dt.get(\"WEBGL_VERSION\")===2);Dt.registerFlag(\"WEBGL_CPU_FORWARD\",()=>!0);Dt.registerFlag(\"WEBGL_FORCE_F16_TEXTURES\",()=>!1);Dt.registerFlag(\"WEBGL_PACK\",()=>Dt.getBool(\"HAS_WEBGL\"));Dt.registerFlag(\"WEBGL_PACK_NORMALIZATION\",()=>Dt.getBool(\"WEBGL_PACK\"));Dt.registerFlag(\"WEBGL_PACK_CLIP\",()=>Dt.getBool(\"WEBGL_PACK\"));Dt.registerFlag(\"WEBGL_PACK_DEPTHWISECONV\",()=>Dt.getBool(\"WEBGL_PACK\"));Dt.registerFlag(\"WEBGL_PACK_BINARY_OPERATIONS\",()=>Dt.getBool(\"WEBGL_PACK\"));Dt.registerFlag(\"WEBGL_PACK_UNARY_OPERATIONS\",()=>Dt.getBool(\"WEBGL_PACK\"));Dt.registerFlag(\"WEBGL_PACK_ARRAY_OPERATIONS\",()=>Dt.getBool(\"WEBGL_PACK\"));Dt.registerFlag(\"WEBGL_PACK_IMAGE_OPERATIONS\",()=>Dt.getBool(\"WEBGL_PACK\"));Dt.registerFlag(\"WEBGL_PACK_REDUCE\",()=>Dt.getBool(\"WEBGL_PACK\"));Dt.registerFlag(\"WEBGL_LAZILY_UNPACK\",()=>Dt.getBool(\"WEBGL_PACK\"));Dt.registerFlag(\"WEBGL_CONV_IM2COL\",()=>Dt.getBool(\"WEBGL_PACK\"));Dt.registerFlag(\"WEBGL_MAX_TEXTURE_SIZE\",()=>jN(Dt.getNumber(\"WEBGL_VERSION\")));Dt.registerFlag(\"WEBGL_MAX_TEXTURES_IN_SHADER\",()=>XN(Dt.getNumber(\"WEBGL_VERSION\")));Dt.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\",()=>{let r=Dt.getNumber(\"WEBGL_VERSION\");return r===0?0:YN(r)});Dt.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\",()=>Dt.getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0&&!ql.isMobile());Dt.registerFlag(\"WEBGL_RENDER_FLOAT32_CAPABLE\",()=>ZN(Dt.getNumber(\"WEBGL_VERSION\")));Dt.registerFlag(\"WEBGL_RENDER_FLOAT32_ENABLED\",()=>Dt.getBool(\"WEBGL_FORCE_F16_TEXTURES\")?!1:Dt.getBool(\"WEBGL_RENDER_FLOAT32_CAPABLE\"));Dt.registerFlag(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\",()=>JN(Dt.getNumber(\"WEBGL_VERSION\")));Dt.registerFlag(\"WEBGL_FENCE_API_ENABLED\",()=>QN(Dt.getNumber(\"WEBGL_VERSION\")));Dt.registerFlag(\"WEBGL_SIZE_UPLOAD_UNIFORM\",()=>Dt.getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?4:0);Dt.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}.`)});Dt.registerFlag(\"WEBGL_FLUSH_THRESHOLD\",()=>ql.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}.`)});Dt.registerFlag(\"CPU_HANDOFF_SIZE_THRESHOLD\",()=>128);Dt.registerFlag(\"WEBGL_USE_SHAPES_UNIFORMS\",()=>!1);Dt.registerFlag(\"TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD\",()=>1e5);Dt.registerFlag(\"TOPK_K_CPU_HANDOFF_THRESHOLD\",()=>128);Dt.registerFlag(\"WEBGL_EXP_CONV\",()=>!1);Dt.registerFlag(\"SOFTWARE_WEBGL_ENABLED\",()=>Dt.getBool(\"IS_TEST\"));function He(){let r,t,e,n,o,s,i,a,u,l;return B().getNumber(\"WEBGL_VERSION\")===2?(r=\"#version 300 es\",t=\"in\",e=\"out\",n=\"in\",o=\"texture\",s=\"outputColor\",i=\"out vec4 outputColor;\",a=`\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 si(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 qc(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 Ctt(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 uL(r,t,e=\"index\"){let n=r.map((s,i)=>i),o=Ctt(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 Sd(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 Td(){return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z;\n }\n`}var Lw=`\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:cL}=S;function pL(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}=Mw(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=>vtt(f,t,e.packedInputs,e.enableShapeUniforms)).join(`\n`),i=t.texShape,a=He(),u=Ttt(a),l,c,p=_tt(a);return t.isPacked?(l=Itt(t.logicalShape,i,e.enableShapeUniforms),c=ktt(a)):(l=Stt(t.logicalShape,i,e.enableShapeUniforms),c=Ntt(a)),e.packedInputs&&(p+=Dtt),[p,u,c,o,l,s,e.userCode].join(`\n`)}function kd(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return Utt(r,t);case 1:return qtt(r,t);case 2:return jtt(r,t);case 3:return Ytt(r,t);case 4:return Jtt(r,t);case 5:return Qtt(r);case 6:return tet(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function mL(r,t){switch(r.shapeInfo.logicalShape.length){case 0:return Wtt(r);case 1:return Htt(r,t);case 2:return Ktt(r,t);case 3:return Xtt(r,t);default:return Ztt(r,t)}}function vtt(r,t,e=!1,n){let o=\"\";e?o+=mL(r,n):o+=kd(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=eet(r,t):o+=ret(r,t)),o}function Itt(r,t,e){switch(r.length){case 0:return fL();case 1:return Rtt(r,t,e);case 2:return Vtt(r,t,e);case 3:return Ott(r,t,e);default:return Ltt(r,t,e)}}function Stt(r,t,e){switch(r.length){case 0:return fL();case 1:return Ftt(r,t,e);case 2:return Gtt(r,t,e);case 3:return Ptt(r,t,e);case 4:return Mtt(r,t,e);case 5:return ztt(r,t);case 6:return Btt(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function Ttt(r){return`\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return ${r.texture2D}(textureSampler, uv).r;\n }\n `}function Ntt(r){return`\n void setOutput(float val) {\n ${r.output} = vec4(val, 0, 0, 0);\n }\n `}function ktt(r){return`\n void setOutput(vec4 val) {\n ${r.output} = val;\n }\n `}function _tt(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 ${Ett}\n ${Att}\n ${$tt}\n `}var Ett=`\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`,Att=`\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`,$tt=`\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`,Dtt=`\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 fL(){return`\n int getOutputCoords() {\n return 0;\n }\n `}function Rtt(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 Ftt(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 Ott(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 Ptt(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 ${qc([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n`;let n=si([\"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 Ltt(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 ret(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=Wt(u),c=cL(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 Wt(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 Mw(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 hL(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=pL(o,i,t),u=PN(r.gl,a),l=r.createProgram(u);return B().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},tk(r,t,l))}function tk(r,t,e){let n={},o={},s={},i=[],a,u,l,c=null,p=null;p=r.getUniformLocation(e,\"NAN\",!1),B().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 dL(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 gL(r,t,e,n,o){t.program.enableShapeUniforms||(dL(t.inShapeInfos,e),dL([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),B().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}=Mw(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 xL(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}=Mw(r.packedInputs,i.shape,u),m=\"\",f=\"\",d=\"\";if(c.length===1&&r.packedInputs){let T=[Math.ceil(u[0]/2),Math.ceil(u[1]/2)];m=`${T[0]>1}_${T[1]>1}`}else if(c.length===2&&!r.packedInputs)f=`${c[0]>1}_${c[1]>1}`;else if(c.length>2&&!r.packedInputs){let T=y.computeStrides(c);d=`${T[0]===u[1]}_${T[T.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=S.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+`${B().getNumber(\"WEBGL_VERSION\")}`,s}function ve(r){return B().getBool(\"WEBGL_USE_SHAPES_UNIFORMS\")&&r<=4}var zw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=ku.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=He();this.outputShape=t,this.enableShapeUniforms=ve(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?qc([\"r\",\"c\",\"d\"],t):si([\"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 Bw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=ku.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=He();this.outputShape=t,this.enableShapeUniforms=ve(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?qc([\"r\",\"c\",\"d\"],t):si([\"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 Vw=class{constructor(t){this.variableNames=[\"A\"],this.outTexUsage=Hr.DOWNLOAD;let e=He();this.outputShape=t,this.userCode=`\n ${Lw}\n\n void main() {\n float x = getAAtOutCoords();\n ${e.output} = encode_float(x);\n }\n `}};var Gw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Hr.DOWNLOAD;let e=He();this.outputShape=t,this.userCode=`\n ${Lw}\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 Ww=class{constructor(t,e=!1){this.variableNames=[\"A\"],this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let n=He();this.outputShape=t,this.enableShapeUniforms=ve(this.outputShape.length);let o=\"result\";e&&(o=\"floor(result * 255. + 0.5)\"),this.userCode=`\n ${this.enableShapeUniforms?Td():Sd(t)}\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n int flatIndex = getFlatIndex(coords);\n int offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n\n int r = flatIndex / texShape[1];\n int c = imod(flatIndex, texShape[1]);\n vec2 uv = (vec2(c, r) + halfCR) / vec2(texShape[1], texShape[0]);\n vec4 values = ${n.texture2D}(A, uv);\n\n float result;\n\n if(offset == 0) {\n result = values[0];\n } else if(offset == 1) {\n result = values[1];\n } else if(offset == 2) {\n result = values[2];\n } else {\n result = values[3];\n }\n\n ${n.output} = vec4(${o}, 0., 0., 0.);\n }\n `}};var Uw=class{constructor(t,e=!1){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let n=He();this.outputShape=t,this.enableShapeUniforms=ve(this.outputShape.length);let o=\"\",s=\"result\";e&&(s=\"floor(result * 255. + 0.5)\");for(let i=0;i<=1;i++)for(let a=0;a<=1;a++){let u=i*2+a;o+=`\n localCoords = coords;\n if(localCoords[2] + ${a} < ${this.enableShapeUniforms?\"outShape[2]\":`${t[2]}`}) {\n localCoords[2] += ${a};\n if (localCoords[1] + ${i} < ${this.enableShapeUniforms?\"outShape[1]\":`${t[1]}`}) {\n localCoords[1] += ${i};\n\n flatIndex = getFlatIndex(localCoords);\n offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n\n int r = flatIndex / texShape[1];\n int c = imod(flatIndex, texShape[1]);\n vec2 uv = (vec2(c, r) + halfCR) / vec2(texShape[1], texShape[0]);\n values = ${n.texture2D}(A, uv);\n\n if (offset == 0) {\n result[${u}] = values[0];\n } else if (offset == 1) {\n result[${u}] = values[1];\n } else if (offset == 2) {\n result[${u}] = values[2];\n } else {\n result[${u}] = values[3];\n }\n }\n }\n `}this.userCode=`\n ${this.enableShapeUniforms?Td():Sd(t)}\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n vec4 result = vec4(0.);\n int flatIndex, r, c, offset;\n ivec3 localCoords;\n vec2 uv;\n vec4 values;\n\n ${o}\n\n ${n.output} = ${s};\n }\n `}};var xk={};jt(xk,{bindVertexProgramAttributeStreams:()=>uk,createBufferFromOutputTexture:()=>mk,createFloat16MatrixTexture:()=>sk,createFloat16PackedMatrixTexture:()=>lk,createFloat32MatrixTexture:()=>ok,createIndexBuffer:()=>nk,createPackedMatrixTexture:()=>ak,createUnsignedBytesMatrixTexture:()=>ik,createVertexBuffer:()=>rk,createVertexShader:()=>ek,downloadByteEncodedFloatMatrixFromOutputTexture:()=>dk,downloadFloat32MatrixFromBuffer:()=>fk,downloadMatrixFromPackedOutputTexture:()=>gk,downloadPackedMatrixFromBuffer:()=>hk,getInternalFormatForFloat16MatrixTexture:()=>qw,getInternalFormatForFloat16PackedMatrixTexture:()=>Xw,getInternalFormatForFloat32MatrixTexture:()=>Hw,getInternalFormatForPackedMatrixTexture:()=>jw,getInternalFormatForUnsignedBytesMatrixTexture:()=>Kw,uploadDenseMatrixToTexture:()=>ck,uploadPixelDataToTexture:()=>pk});function ek(r){let t=He(),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 ON(r,e)}function rk(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 zN(r,t)}function nk(r){let t=new Uint16Array([0,1,2,2,1,3]);return BN(r,t)}function lg(r,t,e,n,o,s){GN(t,e);let i=VN(r),a=r.TEXTURE_2D;return Ct(r,()=>r.bindTexture(a,i)),Ct(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE)),Ct(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE)),Ct(r,()=>r.texParameteri(a,r.TEXTURE_MIN_FILTER,r.NEAREST)),Ct(r,()=>r.texParameteri(a,r.TEXTURE_MAG_FILTER,r.NEAREST)),B().getNumber(\"WEBGL_VERSION\")===1?Ct(r,()=>r.texImage2D(a,0,n,t,e,0,o,s,null)):Ct(r,()=>r.texStorage2D(a,1,n,t,e)),Ct(r,()=>r.bindTexture(r.TEXTURE_2D,null)),{texture:i,texShape:[e,t]}}function Hw(r){return r.internalFormatFloat}function ok(r,t,e,n){let[o,s]=Hc(t,e);return lg(r,o,s,Hw(n),n.textureFormatFloat,r.FLOAT)}function qw(r){return r.internalFormatHalfFloat}function sk(r,t,e,n){let[o,s]=Hc(t,e);return lg(r,o,s,qw(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Kw(r){return r.downloadTextureFormat}function ik(r,t,e,n){let[o,s]=Hc(t,e);return lg(r,o,s,Kw(n),r.RGBA,r.UNSIGNED_BYTE)}function jw(r){return r.internalFormatPackedFloat}function ak(r,t,e,n){let[o,s]=ea(t,e);return lg(r,o,s,jw(n),r.RGBA,r.FLOAT)}function Xw(r){return r.internalFormatPackedHalfFloat}function lk(r,t,e,n){let[o,s]=ea(t,e);return lg(r,o,s,Xw(n),r.RGBA,n.textureTypeHalfFloat)}function uk(r,t,e){return Ct(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),Fw(r,t,\"clipSpacePos\",e,3,20,0)&&Fw(r,t,\"uv\",e,2,20,12)}function ck(r,t,e,n,o,s){Ct(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),B().getNumber(\"WEBGL_VERSION\")===2?Ct(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e,n,r.RGBA,a,i)):Ct(r,()=>r.texImage2D(r.TEXTURE_2D,0,u,e,n,0,r.RGBA,a,i)),Ct(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function pk(r,t,e){Ct(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?B().getNumber(\"WEBGL_VERSION\")===2?Ct(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e.width,e.height,r.RGBA,r.UNSIGNED_BYTE,e.data)):Ct(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e.width,e.height,0,r.RGBA,r.UNSIGNED_BYTE,e.data)):B().getNumber(\"WEBGL_VERSION\")===2?Ct(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,e)):Ct(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e)),Ct(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function mk(r,t,e,n){let o=r.createBuffer();Ct(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,o));let a=4*4*t*e;return Ct(r,()=>r.bufferData(r.PIXEL_PACK_BUFFER,a,r.STREAM_READ)),Ct(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,0)),Ct(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,null)),o}function fk(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 dk(r,t,e,n){let[o,s]=Hc(t,e),i=4,a=new Uint8Array(nL(t*e,i));return Ct(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function hk(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array(oL(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 gk(r,t,e){let n=new Float32Array(t*e*4);return Ct(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,n)),n}var jc=class{constructor(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let e=B().getNumber(\"WEBGL_VERSION\");t!=null?(this.gl=t,$N(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\"),B().getNumber(\"WEBGL_VERSION\")===1){let s=\"OES_texture_float\",i=\"OES_texture_half_float\";if(this.textureFloatExtension=Cd(this.gl,s),Wn(this.gl,i))this.textureHalfFloatExtension=Cd(this.gl,i);else if(B().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=Cd(this.gl,o);else if(B().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=rk(this.gl),this.indexBuffer=nk(this.gl),this.framebuffer=WN(this.gl),this.textureConfig=og(this.gl,this.textureHalfFloatExtension)}get debug(){return B().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;Ct(t,()=>t.finish()),Ct(t,()=>t.bindFramebuffer(t.FRAMEBUFFER,null)),Ct(t,()=>t.deleteFramebuffer(this.framebuffer)),Ct(t,()=>t.bindBuffer(t.ARRAY_BUFFER,null)),Ct(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)),Ct(t,()=>t.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(t,e){return this.throwIfDisposed(),ok(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),sk(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),ik(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),pk(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),ck(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),lk(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),ak(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(Ow(this.gl,this.framebuffer),this.outputTexture=null),Ct(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>dk(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return hk(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return fk(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=mk(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(B().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 B().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,B().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>gk(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=ek(e));let n=LN(e);return Ct(e,()=>e.attachShader(n,this.vertexShader)),Ct(e,()=>e.attachShader(n,t)),MN(e,n),this.debug&&sg(e,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=uk(e,this.program,this.vertexBuffer)),n}deleteProgram(t){this.throwIfDisposed(),t===this.program&&(this.program=null),t!=null&&Ct(this.gl,()=>this.gl.deleteProgram(t))}setProgram(t){this.throwIfDisposed(),this.program=t,this.program!=null&&this.debug&&sg(this.gl,this.program),Ct(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?UN(this.gl,t,e):HN(this.gl,t,e)}getAttributeLocation(t,e){return this.throwIfDisposed(),Ct(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(),qN(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=ea(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&&sg(this.gl,this.program),vd(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let t=this.gl;this.debug&&this.debugValidate(),Ct(t,()=>t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),Ct(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Cd(this.gl,B().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(B().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(B().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,B().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))),this.getQueryTime(t,B().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=set(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){this.itemsToPoll.push({isDoneFn:t,resolveFn:e}),!(this.itemsToPoll.length>1)&&y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(t){this.throwIfDisposed(),ig(this.gl,t,this.framebuffer),this.debug&&vd(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(ig(this.gl,this.outputTexture,this.framebuffer),this.debug&&vd(this.gl)):Ow(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;ig(o,t,this.framebuffer),this.debug&&vd(o),this.outputTexture=t,Ct(o,()=>o.viewport(0,0,e,n)),Ct(o,()=>o.scissor(0,0,e,n))}setOutputMatrixWriteRegionDriver(t,e,n,o){this.throwIfDisposed(),Ct(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 set(r){let t=0;for(;t`${r}.${e}`)}function tr(r,t){return t===1?[r]:yk(r,t)}function sM(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 $d=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"inputShape\",type:\"ivec3\"}],this.outputShape=t,this.enableShapeUniforms=ve(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 ${iet(e,this.enableShapeUniforms)}\n ${this.enableShapeUniforms?Td():Sd(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 iet(r,t){return`\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n ${t?uL([\"r\",\"c\",\"d\"],\"inputShape\"):si([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n `}var tC=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=aM(e,n),s=lM(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=iM(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===Fr.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):o===Fr.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):o===Fr.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):o===Fr.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):o===Fr.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=aM(n,o),i=lM(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=iM(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=B().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 aet(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 iM(r,t,e,n,o){let s=uet(t,n),i;if(o){let[u,l]=ea(r[0],r[1]);i=u*l}else{let[u,l]=Hc(r[0],r[1]);i=u*l}let a=aet(e,s);return i*a}function uet(r,t){switch(r){case Fr.PACKED_2X2_FLOAT32:return jw(t);case Fr.PACKED_2X2_FLOAT16:return Xw(t);case Fr.UNPACKED_FLOAT32:return Hw(t);case Fr.UNPACKED_FLOAT16:return qw(t);case Fr.PACKED_4X1_UNSIGNED_BYTE:return Kw(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function cet(r){return B().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?r?Fr.PACKED_2X2_FLOAT32:Fr.UNPACKED_FLOAT32:r?Fr.PACKED_2X2_FLOAT16:Fr.UNPACKED_FLOAT16}function aM(r,t){if(r===Hr.UPLOAD)return Fr.PACKED_2X2_FLOAT32;if(r===Hr.RENDER||r==null)return cet(t);if(r===Hr.DOWNLOAD||r===Hr.PIXELS)return Fr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function lM(r,t,e){return`${r[0]}_${r[1]}_${t}_${e}`}var Zr=class{constructor(t,e){this.variableNames=[\"A\"],this.outputShape=t,this.enableShapeUniforms=ve(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;\",uM=\"return x;\",bk=\"return abs(x);\";var cM=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",pM=fr+`\n return (x < 0.0) ? 0.0 : x;\n`,mM=fr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,Yc=\"return x;\",fM=\"return 1.0 / (1.0 + exp(-1.0 * x));\";var hM=\"return x;\",gM=`\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`,xM=`\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`,yM=`\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`,bM=\"return 1.0 / (1.0 + exp(-1.0 * x));\",ro=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.enableShapeUniforms=ve(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 eC=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=t,this.enableShapeUniforms=ve(this.outputShape.length);let e=t.length,n=tr(\"rc\",e),o=Wt(e),s=sM(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 met=Vr.whereImpl,fet=1e-7,det=1e-4,rC={};function het(r){return r in rC||(rC[r]={}),rC[r]}var get=B().getNumber(\"CPU_HANDOFF_SIZE_THRESHOLD\"),xet=600;function yet(){return B().global.screen==null?1024:B().global.screen.height*B().global.screen.width*window.devicePixelRatio*xet/1024/1024}var Eu=class extends Ho{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,!B().getBool(\"HAS_WEBGL\"))throw new Error(\"WebGL is not supported on this device\");let e;if(t!=null){if(t instanceof jc)e=t;else{let n=Gn(B().getNumber(\"WEBGL_VERSION\"),t);e=new jc(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Gn(B().getNumber(\"WEBGL_VERSION\"));e=new jc(n),this.binaryCache=het(B().getNumber(\"WEBGL_VERSION\")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new tC(this.gpgpu),this.numMBBeforeWarning=yet(),this.texData=new ra(this,go())}nextDataId(){return Eu.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}write(t,e,n){if((B().getBool(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\")||B().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:Hr.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(B().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:Hr.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 ro(a,Yc):m=new Zr(a,Yc);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=S.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 ro(o,Yc):d=new Zr(o,Yc);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(B().getBool(\"DEBUG\")&&!B().getBool(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\")&&B().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\"&&B().get(\"WEBGL_BUFFER_SUPPORTED\")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...ng(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=S.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;Ct(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)&&go().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 ro(s,Yc):f=new Zr(s,Yc);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=go().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 vt(t.shape,t.dtype,n)}catch(n){throw new Error(\"Failed to decode encoded string bytes into utf-8\")}return vt(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(B().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 B().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return B().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(B().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=get){return B().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 go().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new eC(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new Qw(t.shape),n=!0;return this.runWebGLProgram(e,[t],t.dtype,null,n)}packedReshape(t,e){let n=[gl(t.shape),...xl(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[gl(e),...xl(e)],i=new $d(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=ag(s),u;o?u=new Bw(a):u=new zw(a);let l=!0,c=[e!=null?e:ng(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:ng(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)<=B().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&&!_u(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=xL(t,c,p),f=this.getAndSaveBinary(m,()=>hL(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),B().get(\"ENGINE_COMPILE_ONLY\")||gL(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=B().get(\"WEBGL_FLUSH_THRESHOLD\");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!B().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||(B().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=G(()=>{if(!B().get(\"WEBGL_RENDER_FLOAT32_ENABLED\")){let t=B().getBool(\"DEBUG\");B().set(\"DEBUG\",!1);let e=this.abs(mt(1e-8)).dataSync()[0];if(B().set(\"DEBUG\",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?fet:det}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=KN(n,u),e.texShape=p),s!=null){let m=ag(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=ea(p[0],p[1])),u?f=new Uw(m,g):f=new Ww(m,g);let x=g?[h,d]:p,b=this.makeTensorInfo(x,o),w=this.texData.get(b.dataId);g?w.usage=Hr.PIXELS:w.usage=Hr.UPLOAD,w.texShape=x,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),d,h,s);let C=[[h,d]],T=!0,E=this.runWebGLProgram(f,[b],o,C,T),$=this.texData.get(E.dataId);e.texShape=$.texShape,e.isPacked=$.isPacked,e.usage=$.usage,B().get(\"ENGINE_COMPILE_ONLY\")?this.disposeData(E.dataId):(e.texture=$.texture,e.values=null,this.texData.delete(E.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=bet(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 Th(),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?(Rw(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}=tk(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}}};Eu.nextDataId=0;function bet(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 Eu,2);var ike={forceHalfFloat:CM};var nC=`\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n`;var no=class{constructor(t,e,n){this.variableNames=[\"A\",\"B\"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.enableShapeUniforms=ve(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 Au=`\n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n`;var Fo=class{constructor(t,e,n,o=!1){this.variableNames=[\"A\",\"B\"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=S.assertAndGetBroadcastShape(e,n);let s=this.outputShape.length;this.enableShapeUniforms=ve(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 ${Wt(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=tr(\"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 er(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 vM={kernelName:uo,backendName:\"webgl\",kernelFunc:er};function An(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=er({inputs:{x:n},backend:e}),u=er({inputs:{x:o},backend:e});return i.complexTensorInfos={real:a,imag:u},s}var IM={kernelName:Np,backendName:\"webgl\",kernelFunc:An};var wk=\"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 wet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],\"float32\",y.createScalarValue(s,\"float32\")),a=B().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Fo(Ck,o.shape,i.shape):new no(wk,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],\"float32\");return e.disposeIntermediateTensorInfo(i),u}var SM={kernelName:ms,backendName:\"webgl\",kernelFunc:wet};var vk=\"return (a < 0.) ? b * a : a;\",Ik=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function Cet(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=B().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Fo(Ik,n.shape,o.shape):new no(vk,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],\"float32\")}var TM={kernelName:Ts,backendName:\"webgl\",kernelFunc:Cet};var Oo=\"if (isnan(x)) return x;\",NM=`\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n`,kM=`\n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n`;function It({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=B().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")&&t!=null,c;return l?c=new ro(i.shape,t):c=new Zr(i.shape,r),a.runWebGLProgram(c,[i],u)}}function ce({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,T]=w,E={dataId:C.dataId,dtype:C.dtype,shape:u.shape},$={dataId:T.dataId,dtype:T.dtype,shape:l.shape},D=new no(r,u.shape,l.shape);return c.runWebGLProgram(D,[E,$],ir(C.dtype,T.dtype))}),b=An({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||ir(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\"?S.fromUint8ToStringArray(d):d,x=u.dtype===\"string\"?S.fromUint8ToStringArray(h):h,[b,w]=o(u.shape,l.shape,g,x,p),C=c.makeTensorInfo(w,p),T=c.texData.get(C.dataId);return T.values=b,C}let m=B().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")&&t!=null,f;return m?f=new Fo(t,u.shape,l.shape,e):f=new no(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function yl(r,t=!1){if(r===\"linear\")return t?hM:uM;if(r===\"relu\")return t?xM:pM;if(r===\"elu\")return t?gM:cM;if(r===\"relu6\")return t?yM:mM;if(r===\"prelu\")return t?Ik:vk;if(r===\"leakyrelu\")return t?Ck:wk;if(r===\"sigmoid\")return t?bM:fM;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var Dd=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=ve(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&&!_u(o.shape,u)&&!(c.texture!==null&&_u(c.shape,u))?AM(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var $M={kernelName:bi,backendName:\"webgl\",kernelFunc:lt};var pg=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 oC=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 Iet(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=S.computeOptimalWindowSize(e);t.push({inSize:e,windowSize:n,outSize:Math.ceil(e/n)})}return t}function Un(r,t,e,n){let o=Iet(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=Wt(this.rank),s=yk(\"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 T=e?[x,p,f]:[x,f,p],E=n?[b,d,m]:[b,m,d],$=lt({inputs:{x:r},backend:o,attrs:{shape:T}}),D=lt({inputs:{x:t},backend:o,attrs:{shape:E}}),P=[$,D],M=Math.max(x,b),W=e?$.shape[1]:$.shape[2],H=s!=null,q=i!=null,X=u===\"leakyrelu\",j=u!=null?yl(u,!0):null,Z=H||q||X||j!=null,et;if((f===1||d===1)&&W>Tk&&Z===!1){let ot=$,st=D;e&&(ot=Le({inputs:{x:$},backend:o,attrs:{perm:[0,2,1]}}),P.push(ot)),n&&(st=Le({inputs:{x:D},backend:o,attrs:{perm:[0,2,1]}}),P.push(st));let it=d!==1,pt=d===1,at=ot;it&&(at=lt({inputs:{x:ot},backend:o,attrs:{shape:[M,W,1]}}),P.push(at));let gt=d===1?2:1,dt=st;pt&&(dt=lt({inputs:{x:st},backend:o,attrs:{shape:[M,1,W]}}),P.push(dt));let bt=cg({inputs:{a:at,b:dt},backend:o});et=Zc({inputs:{x:bt},backend:o,attrs:{axis:gt,keepDims:!0}}),P.push(bt)}else{let ot=ir(r.dtype,t.dtype),st=new Dd(T,E,[M,f,d],e,n,H,j,q,X),it=[$,D];if(s!=null&&it.push(s),q&&it.push(i),X){let pt=o.makeTensorInfo([],\"float32\",y.createScalarValue(a,\"float32\"));it.push(pt),P.push(pt)}et=o.runWebGLProgram(st,it,ot)}let K=lt({inputs:{x:et},backend:o,attrs:{shape:C}});P.push(et);for(let ot of P)o.disposeIntermediateTensorInfo(ot);return K}function Net(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 Jc({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var OM={kernelName:Ni,backendName:\"webgl\",kernelFunc:Net};var PM=\"return abs(x);\";function ket(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=Zw(s.values);return e.makeTensorInfo(n.shape,n.dtype,i)}let o;return B().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new ro(n.shape,PM):o=new Zr(n.shape,PM),e.runWebGLProgram(o,[n],n.dtype)}var LM={kernelName:pi,backendName:\"webgl\",kernelFunc:ket};var _et=fr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n`,Eet=It({opSnippet:_et}),MM={kernelName:oa,backendName:\"webgl\",kernelFunc:Eet};var Aet=fr+`\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));`,$et=It({opSnippet:Aet}),zM={kernelName:sa,backendName:\"webgl\",kernelFunc:$et};var BM=\"return a + b;\",Det=ce({opSnippet:BM,packedOpSnippet:BM,supportsComplex:!0,cpuKernelImpl:yL}),VM={kernelName:jn,backendName:\"webgl\",kernelFunc:Det};var aC=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 lC=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 uC(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return er({inputs:{x:n[0]},backend:e});if(n.length>B().get(\"WEBGL_MAX_TEXTURES_IN_SHADER\")){let u=Math.floor(n.length/2),l=uC({inputs:n.slice(0,u),backend:e}),c=uC({inputs:n.slice(u),backend:e});return uC({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>ir(u,l)),s=n.map(u=>u.shape),a=B().getBool(\"WEBGL_PACK\")?new lC(n[0].shape,s):new aC(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var GM={kernelName:jo,backendName:\"webgl\",kernelFunc:uC};function Ret(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=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Le({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims(\"all\",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=lt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Un(h,h.dtype,\"all\",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=lt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=lt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var WM={kernelName:ia,backendName:\"webgl\",kernelFunc:Ret};function Fet(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=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Le({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims(\"any\",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=lt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Un(h,h.dtype,\"any\",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=lt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=lt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var UM={kernelName:aa,backendName:\"webgl\",kernelFunc:Fet};var cC=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 pC=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=Wt(u),c=tr(\"coords\",u),p,m;if(i===1){m=u+1;let D=Wt(m);p=`\n ${D} sourceLocR = ${D}(${c.join()}, 0);\n ++${c[u-1]};\n ${D} sourceLocG = ${D}(${c.join()}, 0);\n ++${c[u-2]};\n ${D} sourceLocA = ${D}(${c.join()}, 0);\n --${c[u-1]};\n ${D} sourceLocB = ${D}(${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(D=>\"int \"+D),g=tr(\"sourceLocR\",m-1).concat(\"inIdx.r\"),x=tr(\"sourceLocG\",m-1).concat(\"inIdx.g\"),b=tr(\"sourceLocB\",m-1).concat(\"inIdx.b\"),w=tr(\"sourceLocA\",m-1).concat(\"inIdx.a\"),C=n===\"max\"?\"greaterThan\":\"lessThan\",T=o?\"\":`\n inIdx = round(vec4(getBestIndicesAChannel(${g.join()}),\n getBestIndicesAChannel(${x.join()}),\n getBestIndicesAChannel(${b.join()}),\n getBestIndicesAChannel(${w.join()})));`,E=`vec4(\n getAChannel(${g.join()}),\n hasNextCol ? getAChannel(${x.join()}) : 0.,\n hasNextRow ? getAChannel(${b.join()}) : 0.,\n hasNextRow && hasNextCol ? getAChannel(${w.join()}) : 0.)`,$=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 ${$}\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 = ${E};\n\n for (int i = 0; i < ${e}; i++) {\n inIdx = srcIdx;\n ${T}\n vec4 candidate = ${E};\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 HM(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=S.computeOptimalWindowSize(s),a={windowSize:i,inSize:s,batchSize:o,outSize:Math.ceil(s/i)},u=new cC(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=HM(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function qM(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=S.computeOptimalWindowSize(s),a=new pC(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=qM(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function mC(r,t,e,n){let o=[e];if(S.assertAxesAreInnerMostDims(\"arg\"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!B().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]=S.computeOutAndReduceShapes(u.shape,o),p=y.sizeFromShape(c),m=lt({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=HM(r,m,n);s.push(f);let d=lt({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return qM(r,t,n)}function Oet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Le({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims(\"argMax\",[i[0]],u.shape.length);let c=mC(e,u,i[0],\"max\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var KM={kernelName:Xo,backendName:\"webgl\",kernelFunc:Oet};function Pet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Le({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims(\"argMin\",[i[0]],u.shape.length);let c=mC(e,u,i[0],\"min\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var jM={kernelName:Nl,backendName:\"webgl\",kernelFunc:Pet};var Let=fr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n`,Met=It({opSnippet:Let}),XM={kernelName:la,backendName:\"webgl\",kernelFunc:Met};var zet=fr+\"return log(x + sqrt(x * x + 1.0));\",Bet=It({opSnippet:zet}),YM={kernelName:ua,backendName:\"webgl\",kernelFunc:Bet};var Vet=fr+`\n return atan(x);\n`,Get=It({opSnippet:Vet}),ZM={kernelName:ca,backendName:\"webgl\",kernelFunc:Get};var Wet=NM+`\n return atan(a, b);\n`,Uet=`\n vec4 result = atan(a, b);\n vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0));\n `+kM+`\n return result;\n`,Het=ce({opSnippet:Wet,packedOpSnippet:Uet}),JM={kernelName:ma,backendName:\"webgl\",kernelFunc:Het};var qet=fr+`\n if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelName:pa,backendName:\"webgl\",kernelFunc:Ket};var ii=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 D=\">=\";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 ${D} 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 T=Math.floor(i/4)*4,E=i%4,$=`\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 < ${T}; 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 ${$}\n }\n\n int xC = xCCorner + ${T};\n if (${E===1}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${$}\n } else if (${E===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 ${$}\n } else if (${E===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 ${$}\n }\n }\n setOutput(${C});\n }\n `}},Du=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 M=\">=\";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 ${M} 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 T=\"max\",E=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"avg\"&&(E=\"avgValue / count\");let $=Math.floor(i/4)*4,D=i%4,P=`\n if (${w}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = ${T}(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 < ${$}; 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 ${P}\n }\n\n int xC = xCCorner + ${$};\n if (${D===1}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${P}\n } else if (${D===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 ${P}\n } else if (${D===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 ${P}\n }\n }\n setOutput(${E});\n }\n }\n `}};function jet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;oi(o,\"avgPool\");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return er({inputs:{x:o},backend:e});let p=new ii(c,\"avg\",!1);return e.runWebGLProgram(p,[o],\"float32\")}var tz={kernelName:Yo,backendName:\"webgl\",kernelFunc:jet};function Xet(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=S.computePool3DInfo(o.shape,s,i,c,a,u,l),m=new Du(p,\"avg\",!1);return e.runWebGLProgram(m,[o],\"float32\")}var ez={kernelName:kl,backendName:\"webgl\",kernelFunc:Xet};var fC=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 `}},dC=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 Yet(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=S.computePool3DInfo(i.shape,a,u,p,l,c),f=new dC(m);return e.runWebGLProgram(f,[o],i.dtype)}var rz={kernelName:Ip,backendName:\"webgl\",kernelFunc:Yet};function Zet(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;oi([o,s],\"avgPoolGrad\");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=new fC(c);return e.runWebGLProgram(p,[o],i.dtype)}var nz={kernelName:vp,backendName:\"webgl\",kernelFunc:Zet};function Jet(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;return Jc({a:o,b:s,transposeA:i,transposeB:a,backend:e})}var oz={kernelName:Zo,backendName:\"webgl\",kernelFunc:Jet};var hC=class{constructor(t,e,n,o,s,i){this.outputShape=[],this.variableNames=[\"x\",\"mean\",\"variance\"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a=\"0.0\";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push(\"offset\"),a=\"getOffsetAtOutCoords()\");let u=\"1.0\";s!=null&&(S.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 gC=class{constructor(t,e,n,o,s,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=[\"x\",\"mean\",\"variance\"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a=\"vec4(0.0)\";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push(\"offset\"),a=\"getOffsetAtOutCoords()\");let u=\"vec4(1.0)\";s!=null&&(S.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 Qet=({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=B().getBool(\"WEBGL_PACK_NORMALIZATION\")?new gC(n.shape,o.shape,s.shape,c,p,u):new hC(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},sz={kernelName:cs,backendName:\"webgl\",kernelFunc:Qet};var xC=class{constructor(t){this.variableNames=[\"source\"],this.outputShape=t,this.rank=t.length;let e=Wt(this.rank);this.customUniforms=[{name:\"start\",arrayIndex:this.rank,type:\"int\"}];let n=trt(this.rank),o,s=t.map((i,a)=>`sourceLoc.${Nk[a]} = start[${a}] + coords.${Nk[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 `}},Nk=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"];function trt(r){if(r===1)return\"sourceLoc\";if(r<=6)return Nk.slice(0,r).map(t=>\"sourceLoc.\"+t).join(\",\");throw Error(`Slicing for rank ${r} is not yet supported`)}var yC=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=Wt(this.rank),n=tr(\"coords\",this.rank),o=tr(\"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 ert(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=Be.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 ai(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=Be.parseSliceParams(o,s,i);if(Be.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=KL(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=Be.isSliceContinous(o.shape,a,u);if(l||!c){let p=B().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new yC(u):new xC(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),ert(o,a,u,e)}var iz={kernelName:Ci,backendName:\"webgl\",kernelFunc:ai};var rrt=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=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=[],d=lt({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Le({inputs:{x:d},backend:e,attrs:{perm:l}}),g=lt({inputs:{x:h},backend:e,attrs:{shape:c}}),x=ai({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},az={kernelName:mi,backendName:\"webgl\",kernelFunc:rrt};function nrt(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=Yw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var lz={kernelName:Sp,backendName:\"webgl\",kernelFunc:nrt};function ort(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.readSync(n.dataId),i=e.readSync(o.dataId),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],\"int32\",Int32Array.from(a))}var uz={kernelName:Tp,backendName:\"webgl\",kernelFunc:ort};var srt=\"return float(a != b);\",kk=ce({opSnippet:srt,cpuKernelImpl:BL,dtype:\"bool\"}),cz={kernelName:Da,backendName:\"webgl\",kernelFunc:kk};function bl(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return er({inputs:{x:o.complexTensorInfos.real},backend:e})}var pz={kernelName:qp,backendName:\"webgl\",kernelFunc:bl};var irt=\"return float(int(x));\";function mz(r,t){let e=new Zr(r.shape,irt),n=t.runWebGLProgram(e,[r],\"int32\");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function _k(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s===\"complex64\"){if(o.dtype===\"complex64\")return er({inputs:{x:o},backend:e});let i=_e(o.shape),a=_k({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),u=An({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype===\"complex64\"){let i=bl({inputs:{input:o},backend:e}),a=_k({inputs:{x:i},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(i),a}if(!y.hasEncodingLoss(o.dtype,s)){let i=er({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]=wL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s===\"int32\")return mz(o,e);if(s===\"bool\"){let i=e.makeTensorInfo([],\"bool\",y.getTypedArrayFromDType(\"bool\",1)),u=kk({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 fz={kernelName:ao,backendName:\"webgl\",kernelFunc:_k};var dz=\"return ceil(x);\",art=It({opSnippet:dz,packedOpSnippet:dz,cpuKernelImpl:CL}),hz={kernelName:Jo,backendName:\"webgl\",kernelFunc:art};var bC=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 wC=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 lrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;B().getBool(\"WEBGL_PACK_CLIP\")?a=new wC(o.shape):a=new bC(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var gz={kernelName:lo,backendName:\"webgl\",kernelFunc:lrt};var CC=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 xz(r,t){return{dataId:t.dataId,dtype:t.dtype,shape:r.shape}}function urt(r){let{inputs:t,backend:e}=r,{x:n}=t,o=e.texData.get(n.dataId),s=new CC(n.shape),i=[xz(n,o.complexTensorInfos.real),xz(n,o.complexTensorInfos.imag)];return e.runWebGLProgram(s,i,i[0].dtype)}var yz={kernelName:_l,backendName:\"webgl\",kernelFunc:urt};var vC=class{constructor(t){this.outputShape=[],this.outputShape=S.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}(${IC(a,l,g)}),\n vec2(${IC(c,l,g)}));\n }`}let f=u.length,d=u[u.length-1];m+=`\n return getChannel(\n getT${f}(${IC(a,l,d)}),\n vec2(${IC(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 IC(r,t,e){let n=r.indexOf(t);return r.map((s,i)=>i===n?`${s} - ${e}`:s).join()}function Qc(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return er({inputs:{x:o.complexTensorInfos.imag},backend:e})}var bz={kernelName:Mp,backendName:\"webgl\",kernelFunc:Qc};function Rd(r,t,e){let n=r[0].dtype;if(n===\"complex64\"){let p=r.map(g=>bl({inputs:{input:g},backend:e})),m=r.map(g=>Qc({inputs:{input:g},backend:e})),f=Rd(p,t,e),d=Rd(m,t,e),h=An({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 lt({inputs:{x:b},backend:e,attrs:{shape:[-1,w]}})}),m=p.map(b=>({vals:e.readSync(b.dataId),shape:b.shape})),f=S.computeOutShape(p.map(b=>b.shape),1),d=p[0].shape[0]===1,h=vL(m,f,n,d),g=S.computeOutShape(r.map(b=>b.shape),t),x=e.makeTensorInfo(g,n,h);return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}let s=B().getNumber(\"WEBGL_MAX_TEXTURES_IN_SHADER\");if(r.length>s){let p=[];for(let f=0;f1){let p=new SC(r.map(m=>m.shape),t);return e.runWebGLProgram(p,r,n)}let{tensors2D:i,outShape:a}=crt(r,t,e),u=new vC(i.map(p=>p.shape)),l=e.runWebGLProgram(u,i,n);i.forEach(p=>e.disposeIntermediateTensorInfo(p));let c=lt({inputs:{x:l},attrs:{shape:a},backend:e});return e.disposeIntermediateTensorInfo(l),c}function crt(r,t,e){let n=S.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>lt({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function Ek(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n,s=y.parseAxisParam(o,t[0].shape)[0],i=S.computeOutShape(t.map(l=>l.shape),s);if(y.sizeFromShape(i)===0)return e.makeTensorInfo(i,t[0].dtype,[]);let a=t.filter(l=>y.sizeFromShape(l.shape)>0);if(a.length===1)return er({inputs:{x:a[0]},backend:e});let u=a.map(l=>l.shape);return S.assertParamsConsistent(u,s),Rd(a,s,e)}var wz={kernelName:fi,backendName:\"webgl\",kernelFunc:Ek};var Fd=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=\"\",T=\"\";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 `,T=\"result = activation(result);\");let E=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 ${E}\n ${T}\n setOutput(result);\n }\n `}},TC=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 Od=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=ve(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 kC(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 _C({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=kC(s.shape,f);C!=null&&(s=lt({inputs:{x:s},backend:n,attrs:{shape:C}}),x.push(s))}if(o!=null){let C=kC(o.shape,f);C!=null&&(o=lt({inputs:{x:o},backend:n,attrs:{shape:C}}),x.push(o))}if(!((p===1||m===1)&&c>Tk)&&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),T={dataId:r.dataId,shape:[1,C,e.inChannels],dtype:r.dtype},E=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(_u(l.shape,T.shape),()=>`packed reshape ${l.shape} to ${T.shape} isn't free`);let $=lt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push($);let D=Jc({a:T,b:$,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),P=n.texData.get(D.dataId);y.assert(P.isPacked,()=>\"batchMatMul result is expected to be packed\"),l.shape=E,P.shape=e.outShape,g=er({inputs:{x:D},backend:n}),g.shape=e.outShape,x.push(D)}else{let C=e.outHeight*e.outWidth,T=lt({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,C,e.inChannels]:[e.batchSize,e.inChannels,C]}}),E=lt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),$=Jc({a:f?T:E,b:f?E:T,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=lt({inputs:{x:$},backend:n,attrs:{shape:e.outShape}}),x.push(T),x.push(E),x.push($)}for(let C of x)n.disposeIntermediateTensorInfo(C);return g}function EC({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 K=kC(s.shape,d);K!=null&&(s=lt({inputs:{x:s},backend:n,attrs:{shape:K}}),C.push(s))}if(o!=null){let K=kC(o.shape,d);K!=null&&(o=lt({inputs:{x:o},backend:n,attrs:{shape:K}}),C.push(o))}let T=lt({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});C.push(T);let E=new NC(x,e),$=[r.shape,[e.padInfo.top,e.padInfo.left],[e.strideHeight,e.strideWidth],[e.dilationHeight,e.dilationWidth],[e.inChannels],[e.filterWidth*e.inChannels],[e.outWidth]],D=n.runWebGLProgram(E,[r],\"float32\",$),P=lt({inputs:{x:D},backend:n,attrs:{shape:x}});C.push(D),C.push(P);let M=o!=null,W=s!=null,H=a===\"leakyrelu\",q=a?yl(a,!0):null,X=new Dd(d?P.shape:T.shape,d?T.shape:P.shape,d?[e.batchSize,g,e.outChannels]:[e.batchSize,e.outChannels,g],b,w,M,q,W,H),j=d?[P,T]:[T,P];if(o&&j.push(o),W&&j.push(s),H){let K=n.makeTensorInfo([],\"float32\",y.createScalarValue(i,\"float32\"));j.push(K),C.push(K)}let Z=n.runWebGLProgram(X,j,\"float32\"),et=lt({inputs:{x:Z},backend:n,attrs:{shape:e.outShape}});C.push(Z);for(let K of C)n.disposeIntermediateTensorInfo(K);return et}function prt(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=S.convertConv2DDataFormat(u),m=S.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=_C({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p===\"channelsLast\"&&B().getBool(\"WEBGL_EXP_CONV\")){let h=new Od(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(B().getBool(\"WEBGL_CONV_IM2COL\"))f=EC({x:o,filter:s,convInfo:m,backend:e});else{let h=new Fd(m);f=e.runWebGLProgram(h,[o,s],\"float32\")}let d=lt({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var Cz={kernelName:Qo,backendName:\"webgl\",kernelFunc:prt};var AC=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 `}},$C=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 `}},DC=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 `}},RC=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 mrt(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=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,c,i,1,a,l,!1,p),f=new AC(m);return e.runWebGLProgram(f,[o,s],\"float32\")}var vz={kernelName:kp,backendName:\"webgl\",kernelFunc:mrt};function frt(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=S.convertConv2DDataFormat(l),m=S.computeConv2DInfo(i,s.shape,a,1,u,c,!1,p),f=new $C(m);return e.runWebGLProgram(f,[o,s],\"float32\")}var Iz={kernelName:ts,backendName:\"webgl\",kernelFunc:frt};function drt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeConv3DInfo(o.shape,s.shape,i,u,a),c=new TC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var Sz={kernelName:El,backendName:\"webgl\",kernelFunc:drt};function hrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,filterShape:u}=n,l=S.computeConv3DInfo(o.shape,u,i,1,a),c=new DC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var Tz={kernelName:_p,backendName:\"webgl\",kernelFunc:hrt};function grt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{pad:i,strides:a,inputShape:u}=n,l=S.computeConv3DInfo(u,s.shape,a,1,i),c=new RC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var Nz={kernelName:Ep,backendName:\"webgl\",kernelFunc:grt};var xrt=Oo+`\n return cos(x);\n`,yrt=It({opSnippet:xrt}),kz={kernelName:es,backendName:\"webgl\",kernelFunc:yrt};var brt=`\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n`,wrt=It({opSnippet:brt}),_z={kernelName:rs,backendName:\"webgl\",kernelFunc:wrt};var FC=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,T]=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 = ${T};\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 Crt=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 FC(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],\"float32\")},Ez={kernelName:da,backendName:\"webgl\",kernelFunc:Crt};var tp;(function(r){r.Prod=\"*\",r.Sum=\"+\"})(tp||(tp={}));var mg=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===tp.Prod?\"1.0\":\"0.0\",a=n?i:`getX(${Az(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 ${Wt(s)} coords = getOutputCoords();\n int end = ${$z(s,\"coords\",this.op)};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${l}) {\n int idx = ${c};\n ${$z(s,\"coords\",this.op)} = idx;\n val ${this.op}= getX(${Az(s,\"coords\",this.op)});\n }\n setOutput(val);\n }\n `}};function Az(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 $z(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 OC(r,t,e,n,o,s){let i=t.shape.length,a=S.getAxesPermutation([n],i),u=t;a!=null&&(u=Le({inputs:{x:t},backend:e,attrs:{perm:a}}));let l=S.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=er({inputs:{x:u},backend:e});for(let m=0;m<=Math.ceil(Math.log2(c))-1;m++){let f=new mg(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 mg(r,u.shape,o,s),f=p;p=e.runWebGLProgram(m,[p],p.dtype),e.disposeIntermediateTensorInfo(f)}if(a!=null){let m=S.getUndoAxesPermutation(a),f=Le({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function vrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return OC(tp.Prod,o,e,s,i,a)}var Dz={kernelName:fa,backendName:\"webgl\",kernelFunc:vrt};function Irt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return OC(tp.Sum,o,e,s,i,a)}var Rz={kernelName:ns,backendName:\"webgl\",kernelFunc:Irt};function Srt(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=Yw(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=bL(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 Fz={kernelName:Ap,backendName:\"webgl\",kernelFunc:Srt};var PC=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 Trt(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 PC(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var Oz={kernelName:ha,backendName:\"webgl\",kernelFunc:Trt};var Pd=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=ve(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 Ld=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=ve(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=S.computeConv2DInfo(o.shape,s.shape,i,c,a,l,!0),m;B().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new Ld(p):m=new Pd(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 Pz={kernelName:os,backendName:\"webgl\",kernelFunc:Nrt};var LC=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 `}},MC=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 krt(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=S.computeConv2DInfo(o.shape,c,i,a,u,l,!0),m=new LC(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var Lz={kernelName:$p,backendName:\"webgl\",kernelFunc:krt};function _rt(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=S.computeConv2DInfo(c,s.shape,i,a,u,l,!0),m=new MC(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var Mz={kernelName:Dp,backendName:\"webgl\",kernelFunc:_rt};var zC=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 Ert(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=lt({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new zC(s),u=e.runWebGLProgram(a,[i],i.dtype),l=lt({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var zz={kernelName:Rp,backendName:\"webgl\",kernelFunc:Ert};var BC=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 Art(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeDilation2DInfo(o.shape,s.shape,i,a,\"NHWC\",u),c,p=new BC(l);c=e.runWebGLProgram(p,[o,s],\"float32\");let m=lt({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var Bz={kernelName:Al,backendName:\"webgl\",kernelFunc:Art};function $rt(r){let{inputs:t,backend:e,attrs:n}=r,{equation:o}=n,s=t,{allDims:i,summedDims:a,idDims:u}=S.decodeEinsumEquation(o,s.length);S.checkEinsumDimSizes(i.length,u,s);let{path:l,steps:c}=S.getEinsumComputePath(a,u),p=c.length,m=null,f=i.length,d=[];for(let h=0;h=0&&(m=Zc({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 Vz={kernelName:Fp,backendName:\"webgl\",kernelFunc:$rt};var Drt=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",Rrt=`\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`,Frt=It({opSnippet:Drt,packedOpSnippet:Rrt}),Gz={kernelName:is,backendName:\"webgl\",kernelFunc:Frt};var Ort=\"return (b >= 1.0) ? a : a * (b + 1.0);\",Prt=`\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n`,Lrt=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=B().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Fo(Prt,n.shape,o.shape):new no(Ort,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},Wz={kernelName:Op,backendName:\"webgl\",kernelFunc:Lrt};var Mrt=`\n return vec4(equal(a, b));\n`,zrt=\"return float(a == b);\",Brt=ce({opSnippet:zrt,packedOpSnippet:Mrt,dtype:\"bool\",cpuKernelImpl:IL}),Uz={kernelName:xa,backendName:\"webgl\",kernelFunc:Brt};var Vrt=`\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 = ${S.ERF_P};\n float a1 = ${S.ERF_A1};\n float a2 = ${S.ERF_A2};\n float a3 = ${S.ERF_A3};\n float a4 = ${S.ERF_A4};\n float a5 = ${S.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`,Grt=It({opSnippet:Vrt}),Hz={kernelName:ga,backendName:\"webgl\",kernelFunc:Grt};var Wrt=Oo+`\n return exp(x);\n`,Urt=`\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`,Ak=It({opSnippet:Wrt,packedOpSnippet:Urt,cpuKernelImpl:SL,dtype:\"float32\"}),qz={kernelName:as,backendName:\"webgl\",kernelFunc:Ak};function VC(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),lt({inputs:{x:s},backend:n,attrs:{shape:a}})}var Kz={kernelName:di,backendName:\"webgl\",kernelFunc:VC};var jz=\"return exp(x) - 1.0;\",Hrt=It({opSnippet:jz,packedOpSnippet:jz,cpuKernelImpl:TL}),Xz={kernelName:ya,backendName:\"webgl\",kernelFunc:Hrt};var fg=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 GC(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=lt({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new fg(\"real\",u,t),c=new fg(\"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=An({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=lt({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function qrt(r){let{inputs:t,backend:e}=r,{input:n}=t;return GC(n,!1,e)}var Yz={kernelName:Pp,backendName:\"webgl\",kernelFunc:qrt};var WC=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 wl(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 WC(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var Zz={kernelName:$l,backendName:\"webgl\",kernelFunc:wl};var UC=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 Jz={kernelName:ba,backendName:\"webgl\",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new UC(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var Qz=\"return floor(x);\",Krt=It({opSnippet:Qz,packedOpSnippet:Qz,cpuKernelImpl:NL}),t3={kernelName:ls,backendName:\"webgl\",kernelFunc:Krt};var jrt=`\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`,Xrt=`\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`,Yrt=ce({opSnippet:jrt,packedOpSnippet:Xrt,dtype:\"int32\"}),e3={kernelName:us,backendName:\"webgl\",kernelFunc:Yrt};var HC=class{constructor(t){this.variableNames=[\"A\"];let e=He(),[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 qC=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0;let e=He(),[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 r3={kernelName:ih,backendName:\"webgl\",kernelFunc:Zrt},Md,$k=B().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");function Zrt(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=B().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");(Md==null||h!==$k)&&($k=h,Md=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:$k})),Md.canvas.width=u,Md.canvas.height=l,Md.drawImage(o,0,0,u,l),o=Md.canvas}let m=e.makeTensorInfo(c,\"int32\");e.texData.get(m.dataId).usage=Hr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=B().getBool(\"WEBGL_PACK\")?new qC(p):new HC(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=S.convertConv2DDataFormat(c),g=S.computeConv2DInfo(o.shape,s.shape,u,p,l,m,!1,h),x,b=[],w=i!=null,C=a!=null,T=f===\"leakyrelu\",E=()=>{let D=[o,s],P=(M,W)=>{if(W===\"NCHW\"&&M.shape.length===1&&M.shape[0]!==1){let H=lt({inputs:{x:M},backend:e,attrs:{shape:[M.shape[0],1,1]}});return b.push(H),H}return M};if(w&&D.push(P(i,c)),C&&D.push(P(a,c)),T){let M=e.makeTensorInfo([],\"float32\",y.createScalarValue(d,\"float32\"));D.push(M),b.push(M)}return D};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=_C({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h===\"channelsLast\"&&B().getBool(\"WEBGL_EXP_CONV\")){let D=f?yl(f,!0):null,P=new Od(g,w,D,C,T),M=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],W=E();x=e.runWebGLProgram(P,W,\"float32\",M)}else if(B().getBool(\"WEBGL_CONV_IM2COL\"))x=EC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let D=f?yl(f,!1):null,P=new Fd(g,w,D,C,T),M=E();x=e.runWebGLProgram(P,M,\"float32\")}let $=lt({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach(D=>e.disposeIntermediateTensorInfo(D)),$}var n3={kernelName:ki,backendName:\"webgl\",kernelFunc:Jrt};function Qrt(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(S.eitherStridesOrDilationsAreOne(u,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${u} and dilations '${h}'`);let g=S.computeConv2DInfo(o.shape,s.shape,u,h,l,p,!0),x=B().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?yl(m,x):null,w=[o,s],C=i!=null,T=a!=null,E=m===\"leakyrelu\";if(C&&w.push(i),T&&w.push(a),E){let M=e.makeTensorInfo([],\"float32\",y.createScalarValue(f,\"float32\"));w.push(M),d.push(M)}let $;x?$=new Ld(g,C,b,T,E):$=new Pd(g,C,b,T,E);let D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],P=e.runWebGLProgram($,w,\"float32\",D);return d.forEach(M=>e.disposeIntermediateTensorInfo(M)),P}var o3={kernelName:_i,backendName:\"webgl\",kernelFunc:Qrt};var KC=class{constructor(t,e,n,o){this.sliceDim=t,this.strides=e,this.paramsShape=o,this.variableNames=[\"x\",\"indices\"],this.outputShape=n;let s=Wt(e.length),i=Wt(n.length),a=this.sliceDim>1?\"strides[j]\":\"strides\",u=Wt(o.length),l=o.length>1?\"paramsShape[j]\":\"paramsShape\";this.userCode=`\n ${s} strides = ${s}(${this.strides});\n ${u} paramsShape = ${u}(${this.paramsShape});\n void main() {\n ${i} coords = getOutputCoords();\n int flattenIndex = 0;\n bool out_of_bounds = false;\n for (int j = 0; j < ${this.sliceDim}; j++) {\n int index = round(getIndices(coords[0], j));\n out_of_bounds = out_of_bounds || index < 0;\n out_of_bounds = out_of_bounds || index >= ${l};\n flattenIndex += index * ${a};\n }\n setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1]));\n }\n `}};function tnt(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]=S.prepareAndValidate(n,o),m=lt({inputs:{x:o},backend:e,attrs:{shape:[l,i]}}),f=lt({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=kL(x,b,n.dtype,l,i,c,p,n.shape,a);return e.makeTensorInfo(u,n.dtype,w.values)}let d=new KC(i,p,[l,c],n.shape),h=e.runWebGLProgram(d,[f,m],f.dtype),g=lt({inputs:{x:h},backend:e,attrs:{shape:u}});return e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(h),g}var s3={kernelName:wa,backendName:\"webgl\",kernelFunc:tnt};var jC=class{constructor(t,e){this.variableNames=[\"A\",\"indices\"],this.outputShape=e,this.rank=e.length;let n=Wt(this.rank),o=ent(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 ent(r,t){let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\"],n=[];for(let o=0;o=0,()=>`GatherV2: the index value ${T} is not in [0, ${w-1}]`)}}let l=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),c=y.sizeFromShape(s.shape),p=[],m=lt({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=lt({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=_L(w,b,d);return p.forEach(T=>e.disposeIntermediateTensorInfo(T)),e.makeTensorInfo(l.outputShape,C.dtype,C.values)}let h=new jC(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=lt({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var i3={kernelName:hi,backendName:\"webgl\",kernelFunc:Dk};var rnt=\"return float(a > b);\",nnt=`\n return vec4(greaterThan(a, b));\n`,ont=ce({opSnippet:rnt,packedOpSnippet:nnt,cpuKernelImpl:EL,dtype:\"bool\"}),a3={kernelName:Ca,backendName:\"webgl\",kernelFunc:ont};var snt=\"return float(a >= b);\",int=`\n return vec4(greaterThanEqual(a, b));\n`,ant=ce({opSnippet:snt,packedOpSnippet:int,dtype:\"bool\",cpuKernelImpl:AL}),l3={kernelName:ps,backendName:\"webgl\",kernelFunc:ant};function lnt(r){let{inputs:t,backend:e}=r,{input:n}=t;return GC(n,!0,e)}var u3={kernelName:Lp,backendName:\"webgl\",kernelFunc:lnt};var unt=\"return float(!isnan(x) && !isinf(x));\",cnt=It({opSnippet:unt,dtype:\"bool\"}),c3={kernelName:va,backendName:\"webgl\",kernelFunc:cnt};var pnt=\"return float(isinf(x));\",mnt=It({opSnippet:pnt,dtype:\"bool\"}),p3={kernelName:Ia,backendName:\"webgl\",kernelFunc:mnt};var fnt=\"return float(isnan(x));\",dnt=It({opSnippet:fnt,dtype:\"bool\"}),m3={kernelName:Sa,backendName:\"webgl\",kernelFunc:dnt};var hnt=\"return float(a < b);\",gnt=`\n return vec4(lessThan(a, b));\n`,xnt=ce({opSnippet:hnt,packedOpSnippet:gnt,cpuKernelImpl:$L,dtype:\"bool\"}),f3={kernelName:Ta,backendName:\"webgl\",kernelFunc:xnt};var ynt=\"return float(a <= b);\",bnt=`\n return vec4(lessThanEqual(a, b));\n`,wnt=ce({opSnippet:ynt,packedOpSnippet:bnt,cpuKernelImpl:DL,dtype:\"bool\"}),d3={kernelName:Na,backendName:\"webgl\",kernelFunc:wnt};function Cnt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=RL(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var h3={kernelName:zp,backendName:\"webgl\",kernelFunc:Cnt};var vnt=Oo+`\n return x < 0.0 ? 0./0. : log(x);\n`,Int=`\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`,Snt=It({opSnippet:vnt,packedOpSnippet:Int,cpuKernelImpl:FL}),g3={kernelName:fs,backendName:\"webgl\",kernelFunc:Snt};var Tnt=Oo+`\n return log(1.0 + x);\n`,Nnt=It({opSnippet:Tnt}),x3={kernelName:ka,backendName:\"webgl\",kernelFunc:Nnt};var knt=\"return float(a >= 1.0 && b >= 1.0);\",_nt=`\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n`,Ent=ce({opSnippet:knt,packedOpSnippet:_nt,dtype:\"bool\"}),y3={kernelName:_a,backendName:\"webgl\",kernelFunc:Ent};var Ant=\"return float(!(x >= 1.0));\",$nt=It({opSnippet:Ant}),b3={kernelName:Ea,backendName:\"webgl\",kernelFunc:$nt};var Dnt=\"return float(a >= 1.0 || b >= 1.0);\",Rnt=`\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n`,Fnt=ce({opSnippet:Dnt,packedOpSnippet:Rnt,dtype:\"bool\"}),w3={kernelName:Aa,backendName:\"webgl\",kernelFunc:Fnt};var XC=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 YC=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 Ont=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=B().getBool(\"WEBGL_PACK_NORMALIZATION\")?new YC(o.shape,s,i,a,u):new XC(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},C3={kernelName:Dl,backendName:\"webgl\",kernelFunc:Ont};var ZC=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 Pnt=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 ZC(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},v3={kernelName:Bp,backendName:\"webgl\",kernelFunc:Pnt};function I3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=lt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Un(a,r.dtype,\"max\",n),l=lt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function Rk(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=S.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 $=0;$`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return er({inputs:{x:o},backend:e});let p=new ii(c,\"max\",!1);return e.runWebGLProgram(p,[o],o.dtype)}var N3={kernelName:gs,backendName:\"webgl\",kernelFunc:Bnt};function Vnt(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=S.computePool3DInfo(o.shape,s,i,c,a,l,u),m=new Du(p,\"max\",!1);return e.runWebGLProgram(m,[o],o.dtype)}var k3={kernelName:Rl,backendName:\"webgl\",kernelFunc:Vnt};var JC=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 `}},QC=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 Gnt(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=S.computePool3DInfo(i.shape,a,u,p,l,c),f=new Du(m,\"max\",!0),d=e.runWebGLProgram(f,[i],i.dtype),h=new QC(m),g=e.runWebGLProgram(h,[o,d],i.dtype);return e.disposeIntermediateTensorInfo(d),g}var _3={kernelName:Gp,backendName:\"webgl\",kernelFunc:Gnt};function Wnt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;oi([s,i],\"maxPoolGrad\");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=S.computePool2DInfo(a.shape,u,l,1,c,p),f=!0,d=new ii(m,\"max\",f),h=e.runWebGLProgram(d,[a],a.dtype),g=new JC(m),x=e.runWebGLProgram(g,[o,h],a.dtype);return e.disposeIntermediateTensorInfo(h),x}var E3={kernelName:Vp,backendName:\"webgl\",kernelFunc:Wnt};function A3(r,t,e,n){let o=new ii(e,\"max\",!1),s=n.runWebGLProgram(o,[r],\"float32\");o=new ii(e,\"max\",!0,!0,t);let i=n.runWebGLProgram(o,[r],\"float32\");return[s,i]}var $3={kernelName:Wp,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(S.eitherStridesOrDilationsAreOne(s,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${l}'`);let c=S.computePool2DInfo(n.shape,o,s,l,i),[p,m]=A3(n,a,c,u);return[p,m]}};function D3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=lt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Un(a,\"float32\",\"mean\",n),l=lt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var R3={kernelName:xs,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=S.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,T=new Array(a);for(let D=0;Dc[0]+t[p]+c[1]);let o=t.length,s=Wt(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 ev=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=Wt(o),i=e.map(d=>d[0]).join(\",\"),a=e.map((d,h)=>d[0]+t[h]).join(\",\"),u=tr(\"rc\",o),l=tr(\"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 jnt=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=B().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new ev(n.shape,o,s):new tv(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},P3={kernelName:ws,backendName:\"webgl\",kernelFunc:jnt};var Xnt=`if (b == 0.0) return NAN;\n return mod(a, b);`,Ynt=`\n vec4 result = mod(a, b);\n vec4 isNaN = vec4(equal(b, vec4(0.0)));\n `+Au+`\n return result;\n`,Znt=ce({opSnippet:Xnt,packedOpSnippet:Ynt}),L3={kernelName:$a,backendName:\"webgl\",kernelFunc:Znt};var rv=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;`,Qnt=`\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`,Fk=ce({opSnippet:Jnt,packedOpSnippet:Qnt,checkOutOfBounds:!0}),M3={kernelName:ss,backendName:\"webgl\",kernelFunc:Fk};var z3=\"return a - b;\",Ok=ce({opSnippet:z3,packedOpSnippet:z3,supportsComplex:!0,cpuKernelImpl:eM}),B3={kernelName:Bs,backendName:\"webgl\",kernelFunc:Ok};function Pk(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=Rk({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=S.expandShapeToKeepDim(a.shape,i),l=lt({inputs:{x:a},backend:e,attrs:{shape:u}}),c=Ok({inputs:{a:o,b:l},backend:e}),p=Ak({inputs:{x:c},backend:e}),m=Zc({inputs:{x:p},backend:e,attrs:{axis:i,keepDims:!1}}),f=lt({inputs:{x:m},backend:e,attrs:{shape:u}}),d=Fk({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 V3={kernelName:Ms,backendName:\"webgl\",kernelFunc:Pk};function tot(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:Pk({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new rv(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],\"int32\",m);return a||e.disposeIntermediateTensorInfo(u),f}var G3={kernelName:Up,backendName:\"webgl\",kernelFunc:tot};var eot=fr+`\n return -x;\n`,rot=`\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 not(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=zL(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return B().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new ro(n.shape,rot):o=new Zr(n.shape,eot),e.runWebGLProgram(o,[n],n.dtype)}var W3={kernelName:gi,backendName:\"webgl\",kernelFunc:not};var oot=Vr.nonMaxSuppressionV3Impl;function sot(r){S.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}=oot(l,c,i,a,u);return e.makeTensorInfo([p.length],\"int32\",new Int32Array(p))}var U3={kernelName:Ra,backendName:\"webgl\",kernelFunc:sot};var iot=Vr.nonMaxSuppressionV4Impl;function aot(r){S.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}=iot(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],\"int32\",new Int32Array(m)),e.makeTensorInfo([],\"int32\",new Int32Array([f]))]}var H3={kernelName:Fa,backendName:\"webgl\",kernelFunc:aot};var lot=Vr.nonMaxSuppressionV5Impl;function uot(r){S.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}=lot(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],\"int32\",new Int32Array(g)),e.makeTensorInfo([x.length],\"float32\",new Float32Array(x))]}var q3={kernelName:Oa,backendName:\"webgl\",kernelFunc:uot};var nv=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 cot=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 nv(l,i,a,u),p=lt({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=lt({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},K3={kernelName:vs,backendName:\"webgl\",kernelFunc:cot};function dg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype===\"complex64\"){let o=bl({inputs:{input:n},backend:e}),s=dg({inputs:{x:o},backend:e}),i=Qc({inputs:{input:n},backend:e}),a=dg({inputs:{x:i},backend:e}),u=An({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return wl({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype===\"string\"?\"\":0},backend:e})}var j3={kernelName:Ti,backendName:\"webgl\",kernelFunc:dg};function X3(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=bl({inputs:{input:n},backend:e}),s=X3({inputs:{x:o},backend:e}),i=Qc({inputs:{input:n},backend:e}),a=dg({inputs:{x:i},backend:e}),u=An({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return wl({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var Y3={kernelName:xi,backendName:\"webgl\",kernelFunc:X3};function pot(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return VC({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=VC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Ek({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var Z3={kernelName:yi,backendName:\"webgl\",kernelFunc:pot};var ov=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=Wt(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 sv=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=Wt(o),i=e.map(h=>h[0]).join(\",\"),a=e.map((h,g)=>h[0]+t[g]).join(\",\"),u=tr(\"rc\",o),l=tr(\"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 wl({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=B().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new sv(o.shape,s,i):new ov(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},J3={kernelName:Is,backendName:\"webgl\",kernelFunc:Lk};var mot=`\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`,fot=`\n // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n vec4 result = multiplier * pow(abs(a), b);\n\n // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n bvec4 isExpZero = equal(b, vec4(0.0));\n result.r = isExpZero.r ? 1.0 : result.r;\n result.g = isExpZero.g ? 1.0 : result.g;\n result.b = isExpZero.b ? 1.0 : result.b;\n result.a = isExpZero.a ? 1.0 : result.a;\n\n vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b));\n `+Au+`\n return result;\n`,dot=ce({opSnippet:mot,packedOpSnippet:fot}),Q3={kernelName:Ss,backendName:\"webgl\",kernelFunc:dot};function hot(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=S.getAxesPermutation(c,a),m=o;p!=null&&(m=Le({inputs:{x:o},backend:e,attrs:{perm:p}}),c=S.getInnerMostAxes(c.length,a),u.push(m)),S.assertAxesAreInnerMostDims(\"prod\",c,a);let f;if(e.shouldExecuteOnCPU([m])){let d=e.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=VL(m.shape,m.dtype,d,c);f=e.makeTensorInfo(g,x,h)}else{let[d,h]=S.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=lt({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=Xu(o.dtype),w=Un(x,b,\"prod\",e);f=lt({inputs:{x:w},backend:e,attrs:{shape:d}}),u.push(x),u.push(w)}if(i){u.push(f);let d=S.expandShapeToKeepDim(f.shape,l);f=lt({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var tB={kernelName:Ns,backendName:\"webgl\",kernelFunc:hot};function got(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]=GL(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var eB={kernelName:Hp,backendName:\"webgl\",kernelFunc:got};var Mk=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=WL(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},rB={kernelName:Fl,backendName:\"webgl\",kernelFunc:Mk};var xot=\"return 1.0 / x;\",yot=It({opSnippet:xot}),nB={kernelName:Pa,backendName:\"webgl\",kernelFunc:yot};var bot=fr+`\n return (x < 0.0) ? 0.0 : x;\n`,wot=`\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`,Cot=It({opSnippet:bot,packedOpSnippet:wot}),oB={kernelName:ks,backendName:\"webgl\",kernelFunc:Cot};var vot=fr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,Iot=`\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`,Sot=It({opSnippet:vot,packedOpSnippet:Iot}),sB={kernelName:As,backendName:\"webgl\",kernelFunc:Sot};var iv=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 av=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 Tot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=B().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new av(o.shape,u,l,s,i):new iv(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],\"float32\")}var iB={kernelName:Es,backendName:\"webgl\",kernelFunc:Tot};var lv=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 Not(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new lv(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var aB={kernelName:jp,backendName:\"webgl\",kernelFunc:Not};var uv=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 cv=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 kot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=B().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new cv(o.shape,u,l,s,i):new uv(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var lB={kernelName:_s,backendName:\"webgl\",kernelFunc:kot};var pv=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 _ot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new pv(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var uB={kernelName:Kp,backendName:\"webgl\",kernelFunc:_ot};var mv=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=Wt(n);this.userCode=`\n void main() {\n ${i} coords = getOutputCoords();\n setOutput(getX(${s}));\n }\n `}};var fv=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=tr(\"rc\",n),s=`${o[n-1]} + 1 < ${this.outputShape[n-1]}`,i=`${o[n-2]} + 1 < ${this.outputShape[n-2]}`,a=Wt(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 Eot(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 er({inputs:{x:o},backend:e});let u=B().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new fv(o.shape,a):new mv(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var cB={kernelName:$s,backendName:\"webgl\",kernelFunc:Eot};var dv=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 pB={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 dv(n.shape,s),[l,c]=S.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 Aot=`\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=It({opSnippet:Aot}),mB={kernelName:Ds,backendName:\"webgl\",kernelFunc:$ot};var Dot=\"return inversesqrt(x);\",Rot=It({opSnippet:Dot,cpuKernelImpl:UL}),fB={kernelName:Rs,backendName:\"webgl\",kernelFunc:Rot};var zd=class{constructor(t,e,n,o,s,i,a=!0){this.variableNames=[\"updates\",\"indices\",\"defaultValue\"],this.outputShape=i;let u=Wt(s.length),l=Wt(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 Fot(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}=S.calculateShapes(s,o,i),m=[p/l,l];if(p===0)return e.makeTensorInfo(i,o.dtype);let f=lt({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=lt({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],\"float32\",new Float32Array([0])),g=new zd(u,a,f.shape.length,d.shape.length,c,m),x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=lt({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var dB={kernelName:La,backendName:\"webgl\",kernelFunc:Fot};var hv=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=B().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 Oot(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n,a=new hv(o.shape[0],o.shape[1],s.shape[1],i),u=[[o.shape[1]]];return e.runWebGLProgram(a,[o,s],\"int32\",u)}var hB={kernelName:Xp,backendName:\"webgl\",kernelFunc:Oot};var gv=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 Pot(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=new gv(n.shape.length,o.shape,o.shape.length);return e.runWebGLProgram(i,[n,o,s],ir(o.dtype,s.dtype))}var gB={kernelName:wi,backendName:\"webgl\",kernelFunc:Pot};var Lot=`\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = ${S.SELU_SCALEALPHA};\n float scale = ${S.SELU_SCALE};\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n`,Mot=It({opSnippet:Lot}),xB={kernelName:Ma,backendName:\"webgl\",kernelFunc:Mot};var zot=Oo+`\n return 1.0 / (1.0 + exp(-1.0 * x));\n`,Bot=`\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`,Vot=It({opSnippet:zot,packedOpSnippet:Bot,cpuKernelImpl:qL}),yB={kernelName:Os,backendName:\"webgl\",kernelFunc:Vot};var Got=`\n if (isnan(x)) { return 0.0; }\n return sign(x);\n`,Wot=It({opSnippet:Got}),bB={kernelName:Ba,backendName:\"webgl\",kernelFunc:Wot};var Uot=Oo+`\n return sin(x);\n`,Hot=It({opSnippet:Uot}),wB={kernelName:Fs,backendName:\"webgl\",kernelFunc:Hot};var qot=`\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n`,Kot=It({opSnippet:qot}),CB={kernelName:za,backendName:\"webgl\",kernelFunc:Kot};var jot=`\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`,Xot=It({opSnippet:jot}),vB={kernelName:Va,backendName:\"webgl\",kernelFunc:Xot};var Yot=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},IB={kernelName:vi,backendName:\"webgl\",kernelFunc:Yot};function Zot(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]=jL(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 SB={kernelName:Ol,backendName:\"webgl\",kernelFunc:Zot};function Jot(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]=XL(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var TB={kernelName:Ga,backendName:\"webgl\",kernelFunc:Jot};function Qot(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]=Jw(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var NB={kernelName:Pl,backendName:\"webgl\",kernelFunc:Qot};function tst(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]=Jw(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var kB={kernelName:Ll,backendName:\"webgl\",kernelFunc:tst};function est(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}=S.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=HL(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,C.dtype,C.values)}let d=new zd(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=lt({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var _B={kernelName:Yp,backendName:\"webgl\",kernelFunc:est};function rst(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=S.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=ai({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var EB={kernelName:Ii,backendName:\"webgl\",kernelFunc:rst};var AB=\"return sqrt(x);\",nst=It({opSnippet:AB,packedOpSnippet:AB,cpuKernelImpl:YL}),$B={kernelName:Ps,backendName:\"webgl\",kernelFunc:nst};var ost=\"return x * x;\",sst=It({opSnippet:ost}),DB={kernelName:Ml,backendName:\"webgl\",kernelFunc:sst};var RB=\"return (a - b) * (a - b);\",ist=ce({opSnippet:RB,packedOpSnippet:RB}),FB={kernelName:zs,backendName:\"webgl\",kernelFunc:ist};function ast({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 Zr(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var OB={kernelName:co,backendName:\"webgl\",kernelFunc:ast};var xv=class{constructor(t,e,n){this.variableNames=[\"x\"],this.outputShape=n;let o=n.length,s=Wt(n.length),i=Wt(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 lst(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}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),T;if(h)T=lt({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 $=Be.computeOutShape(b,w,C),D=ai({inputs:{x:o},backend:e,attrs:{begin:b,size:$}});T=lt({inputs:{x:D},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(D)}else if(e.shouldExecuteOnCPU([o])){let D=e.readSync(o.dataId),P=vt(o.shape,o.dtype,D),M=ZL(f,P,C,b);T=e.makeTensorInfo(d,o.dtype,M.values)}else{let D=new xv(b,C,f);T=e.runWebGLProgram(D,[o],o.dtype)}let E=lt({inputs:{x:T},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(T),E}var PB={kernelName:Wa,backendName:\"webgl\",kernelFunc:lst};function ust(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]=JL(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var LB={kernelName:zl,backendName:\"webgl\",kernelFunc:ust};function cst(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]=QL(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 MB={kernelName:Bl,backendName:\"webgl\",kernelFunc:cst};function pst(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=tM(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var zB={kernelName:Vl,backendName:\"webgl\",kernelFunc:pst};var mst=\"return tan(x);\",fst=It({opSnippet:mst}),BB={kernelName:Vs,backendName:\"webgl\",kernelFunc:fst};var dst=`\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n`,hst=It({opSnippet:dst}),VB={kernelName:Gs,backendName:\"webgl\",kernelFunc:hst};var yv=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=vt(o.shape,o.dtype,l),p=rM(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new yv(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var GB={kernelName:Xn,backendName:\"webgl\",kernelFunc:zk};var bv=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 `}},wv=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 ep(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function WB(r){let t=1;for(;tu){let M=e.readSync(o.dataId),[W,H]=nM(M,l,o.dtype,s,i);return[e.makeTensorInfo(W.shape,W.dtype,W.values),e.makeTensorInfo(H.shape,H.dtype,H.values)]}if(s===0)return l[l.length-1]=0,[e.makeTensorInfo(l,o.dtype,[]),e.makeTensorInfo(l,\"int32\",[])];if(c===1)return[o,wl({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=lt({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&ep(e,f);let x=WB(s),b=WB(c),w=null,C=()=>w===null?[g,g]:[g,w],T=(M,W,H)=>{let q=C(),X=new bv(H),Z=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[M],[W]],et=w;w=e.runWebGLProgram(X,q,\"int32\",Z),ep(e,et)};for(let M=1;M=1;H/=2)T(W,H,[h,b])}for(let M=b;M>x;M/=2){let W=C(),H=new wv([h,M/2]),X=[[c],[w===null?1:0],[x]],j=w;w=e.runWebGLProgram(H,W,\"int32\",X),ep(e,j);let Z=x/2,et=Z*2;for(let K=Z;K>=1;K/=2)T(et,K,w.shape)}let E=w;w=ai({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),ep(e,E);let $=Dk({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});ep(e,g);let D=l.slice(0,-1);D.push(s),E=w,w=lt({inputs:{x:w},attrs:{shape:D},backend:e}),ep(e,E);let P=$;return $=lt({inputs:{x:$},attrs:{shape:D},backend:e}),ep(e,P),[$,w]}var UB={kernelName:Ua,backendName:\"webgl\",kernelFunc:xst};var Cv=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 yst(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 Cv(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],\"float32\")}var HB={kernelName:Ha,backendName:\"webgl\",kernelFunc:yst};function bst(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;oi(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}=oM(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],\"int32\",l)]}var qB={kernelName:Zp,backendName:\"webgl\",kernelFunc:bst};function wst(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 KB={kernelName:Si,backendName:\"webgl\",kernelFunc:wst};var vv=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 Cst(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=S.getAxesPermutation([l],a),p=o;c!=null&&(p=Le({inputs:{x:o},backend:e,attrs:{perm:c}}),u.push(p),l=S.getInnerMostAxes(1,a)[0]);let m=S.segment_util.computeOutShape(p.shape,l,i),f=y.sizeFromShape([p.shape[l]]),d=lt({inputs:{x:p},backend:e,attrs:{shape:[-1,f]}});u.push(d);let h=Xu(o.dtype),g=(C,T,E,$,D)=>{let P=C.shape[0],M=C.shape[1],W=S.segment_util.segOpComputeOptimalWindowSize(M,D),H={windowSize:W,inSize:M,batchSize:P,numSegments:D},q=new vv(H,T),X=e.compileAndRun(q,[C,E],$);if(u.push(X),X.shape[1]===D)return X;let j=Mk({backend:e,attrs:{start:0,stop:D,step:1,dtype:\"float32\"}}),Z=zk({inputs:{x:j},backend:e,attrs:{reps:[M/W]}});return u.push(j),u.push(Z),g(X,T,Z,$,D)},x=g(d,\"unsortedSegmentSum\",s,h,i),b=lt({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let C=S.getUndoAxesPermutation(c);w=Le({inputs:{x:w},backend:e,attrs:{perm:C}})}return u.forEach(C=>e.disposeIntermediateTensorInfo(C)),w}var jB={kernelName:Gl,backendName:\"webgl\",kernelFunc:Cst};var vst=[OM,LM,MM,zM,VM,GM,WM,UM,KM,jM,XM,YM,ZM,JM,QM,tz,ez,rz,nz,oz,sz,az,lz,uz,fz,hz,gz,IM,yz,wz,Cz,vz,Iz,Sz,Tz,Nz,kz,_z,Ez,Dz,Rz,Fz,Oz,Pz,Lz,Mz,zz,Bz,Vz,Gz,Wz,Uz,Hz,qz,Kz,Xz,Yz,Zz,Jz,t3,e3,r3,n3,o3,s3,i3,a3,l3,vM,u3,bz,c3,p3,m3,SM,f3,d3,h3,g3,x3,y3,b3,w3,C3,v3,S3,T3,N3,k3,_3,E3,$3,R3,F3,O3,P3,L3,G3,EM,W3,U3,H3,q3,cz,K3,Y3,Z3,J3,Q3,TM,tB,eB,rB,pz,M3,nB,oB,sB,$M,iB,aB,lB,uB,cB,pB,mB,fB,dB,hB,gB,xB,yB,bB,wB,CB,iz,V3,vB,IB,SB,TB,NB,kB,_B,EB,$B,DB,FB,OB,PB,LB,MB,zB,B3,RM,BB,VB,GB,UB,HB,FM,qB,KB,jB,j3];for(let r of vst)Wu(r);var Zt;(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\"})(Zt||(Zt={}));var Ru;(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\"})(Ru||(Ru={}));var XB;function Ist(r){XB=r.wasm.cwrap(Ni,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Sst(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 D=e.dataIdMap.get(i.dataId);if(D.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${D.shape.length}.`);d=D.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=Ru[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=Lr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),C=e.makeOutput([...w,x,b],o.dtype),T=e.dataIdMap.get(C.dataId).id,E=new Uint8Array(new Int32Array(o.shape).buffer),$=new Uint8Array(new Int32Array(s.shape).buffer);return XB(m,E,o.shape.length,f,$,s.shape.length,u,l,g,d,h,p||0,T),C}var YB={kernelName:Ni,backendName:\"wasm\",setupFunc:Ist,kernelFunc:Sst};function ae(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,Zt[a.dtype],c),l}return{kernelName:r,backendName:\"wasm\",setupFunc:n,kernelFunc:o}}var ZB=ae(pi);function pe(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=S.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,Zt[l.dtype],b))(),h}return{kernelName:r,backendName:\"wasm\",setupFunc:o,kernelFunc:s}}var Tst=!0,JB=pe(jn,Tst);var QB;function Nst(r){QB=r.wasm.cwrap(jo,null,[\"array\",\"number\",\"number\",\"number\"])}function kst(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 QB(s,o.length,Zt[n.dtype],i),n}var tV={kernelName:jo,backendName:\"wasm\",setupFunc:Nst,kernelFunc:kst};function rp(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype),o=e.typedArrayFromHeap(t);return e.typedArrayFromHeap(n).set(o),n}var eV={kernelName:uo,backendName:\"wasm\",kernelFunc:rp};var rV;function _st(r){rV=r.wasm.cwrap(Yn,null,[\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function oo(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=Ast(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 nV={kernelName:Yn,backendName:\"wasm\",kernelFunc:oo,setupFunc:_st};function wn(r,t,e){let n=r.shape,o=r.shape.length,s=y.parseAxisParam(t,n),i=s,a=S.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 mV={kernelName:bi,backendName:\"wasm\",kernelFunc:lr};var fV;function zst(r){fV=r.wasm.cwrap(Zo,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\"])}function Bst(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=Lr.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],T=a?[x,f,p]:[x,p,f],E=lr({inputs:{x:o},backend:e,attrs:{shape:C}}),$=lr({inputs:{x:s},backend:e,attrs:{shape:T}}),D=e.dataIdMap.get(E.dataId).id,P=e.dataIdMap.get($.dataId).id,M=i?E.shape[2]:E.shape[1],W=a?$.shape[1]:$.shape[2],H=Math.max(g,x),q=e.makeOutput([H,M,W],E.dtype),X=e.dataIdMap.get(q.dataId).id,j=new Uint8Array(new Int32Array(E.shape).buffer),Z=new Uint8Array(new Int32Array($.shape).buffer);return fV(D,j,E.shape.length,P,Z,$.shape.length,i,a,X),e.disposeData(E.dataId),e.disposeData($.dataId),q.shape=w,q}var dV={kernelName:Zo,backendName:\"wasm\",setupFunc:zst,kernelFunc:Bst};function Po(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=Be.parseSliceParams(t,e,n),a=Be.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=Be.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=zc(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)Vst(u,c[0],m,s,i);else if(f===3)Gst(u,c[0],c[1],m,s,i);else if(f===4)Wst(u,c[0],c[1],c[2],m,s,i);else{let d=zc(u,s,i,t.shape,t.dtype);m.set(d)}return l}function Vst(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=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=lr({inputs:{x:o},backend:e,attrs:{shape:u}}),d=oo({inputs:{x:f},backend:e,attrs:{perm:l}}),h=lr({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Po({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 gV={kernelName:mi,backendName:\"wasm\",kernelFunc:Ust};function li(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 xV={kernelName:ao,backendName:\"wasm\",kernelFunc:li};var yV=ae(Jo);var bV;function Hst(r){bV=r.wasm.cwrap(lo,null,[\"number\",\"number\",\"number\",\"number\"])}function qst(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 bV(a,s,i,l),u}var wV={kernelName:lo,backendName:\"wasm\",setupFunc:Hst,kernelFunc:qst};function Bk(r){let{inputs:t,backend:e}=r,n=y.parseAxisParam(r.attrs.axis,t[0].shape)[0],o=S.computeOutShape(t.map(f=>f.shape),n),s=t.filter(f=>y.sizeFromShape(f.shape)>0);if(s.length===1)return rp({inputs:{x:s[0]},backend:e});let i=e.makeOutput(o,t[0].dtype);if(y.sizeFromShape(o)===0)return i;let a=s.map(f=>f.shape);if(S.assertParamsConsistent(a,n),s[0].dtype===\"string\"){let f=s.map(w=>{let C=y.sizeFromShape(w.shape.slice(n));return lr({inputs:{x:w},backend:e,attrs:{shape:[-1,C]}})}),d=f.map(w=>({vals:e.readSync(w.dataId),shape:w.shape}));o=S.computeOutShape(f.map(w=>w.shape),1);let h=f[0].shape[0]===1,g=Pc(d,o,t[0].dtype,h),x=S.computeOutShape(s.map(w=>w.shape),n);i.shape=x;let b=e.dataIdMap.get(i.dataId);return b.stringBytes=S.fromStringArrayToUint8(g),f.forEach(w=>e.disposeData(w.dataId)),i}let u=y.sizeFromShape(s[0].shape.slice(0,n)),l=0,c=s.map(f=>{let d=y.sizeFromShape(f.shape.slice(n));return l+=d,d}),p=s.map(f=>e.typedArrayFromHeap(f)),m=e.typedArrayFromHeap(i);for(let f=0;f`cumprod does not support ${o.dtype} tensors in the WASM backend`);let l=S.getAxesPermutation([s],u),c=o;l!==null&&(c=oo({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.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;AV(d,i?1:0,a?1:0,f,h,Zt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=oo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var $V={kernelName:fa,backendName:\"wasm\",setupFunc:Qst,kernelFunc:tit};var DV;function eit(r){DV=r.wasm.cwrap(ns,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function rit(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=S.getAxesPermutation([s],u),c=o;l!==null&&(c=oo({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.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;DV(d,i?1:0,a?1:0,f,h,Zt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=oo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var RV={kernelName:ns,backendName:\"wasm\",setupFunc:eit,kernelFunc:rit};var FV;function nit(r){FV=r.wasm.cwrap(ha,null,[\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function oit(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),T=t.dataIdMap.get(h.dataId).id;return FV(x,s,i===\"NHWC\"?1:0,b,o.shape.length-1,w,C,d.length,T),h}var OV={kernelName:ha,backendName:\"wasm\",setupFunc:nit,kernelFunc:oit};var PV;function sit(r){PV=r.wasm.cwrap(os,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function iit(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=S.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,T=f.dilationWidth,E=f.strideHeight,$=f.strideWidth,D=f.inChannels,P=f.outChannels,M=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 W=n.makeOutput(f.outShape,\"float32\"),H=n.dataIdMap.get(W.dataId).id;return PV(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,M,C,T,E,$,D,P,H),W}var LV={kernelName:os,backendName:\"wasm\",setupFunc:sit,kernelFunc:iit};var MV=ae(is);var ait=!1,zV=pe(xa,ait,\"bool\");var BV=ae(as,\"float32\");function Iv(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),lr({inputs:{x:o},backend:n,attrs:{shape:a}})}var VV={kernelName:di,backendName:\"wasm\",kernelFunc:Iv};function Gk(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 GV={kernelName:$l,backendName:\"wasm\",kernelFunc:Gk};var WV;function lit(r){WV=r.wasm.cwrap(ba,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function uit(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 WV(s,a,u,l,c,i),o}var UV={kernelName:ba,backendName:\"wasm\",kernelFunc:uit,setupFunc:lit};var HV=ae(ls);var cit=!1,qV=pe(us,cit);var KV;function pit(r){KV=r.wasm.cwrap(cs,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function mit(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 KV(c,p,m,f,d,o,g),h}var jV={kernelName:cs,backendName:\"wasm\",setupFunc:pit,kernelFunc:mit};var XV;function fit(r){XV=r.wasm.cwrap(ki,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=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m),g=Ru[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 at=n.dataIdMap.get(i.dataId);if(at.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${at.shape.length}.`);if(at.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${at.shape}) does not match the number of output channels (${w})`);C=at.id}let T=h.filterHeight,E=h.filterWidth,$=h.padInfo.top,D=h.padInfo.right,P=h.padInfo.bottom,M=h.padInfo.left,W=h.dilationHeight,H=h.dilationWidth,q=h.strideHeight,X=h.strideWidth,j=h.inChannels,Z=h.padInfo.type===\"SAME\"?1:0,et=h.batchSize,K=h.inHeight,ot=h.inWidth;if(p!==\"NHWC\")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let st=n.makeOutput(h.outShape,\"float32\"),it=n.dataIdMap.get(st.dataId).id,pt=a==null?0:n.dataIdMap.get(a.dataId).id;return XV(x,et,K,ot,b,T,E,C,$,D,P,M,Z,W,H,q,X,j,w,g,pt,d||0,it),st}var YV={kernelName:ki,backendName:\"wasm\",setupFunc:fit,kernelFunc:dit};var ZV;function hit(r){ZV=r.wasm.cwrap(_i,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 git(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=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m,!0),g=Ru[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 at=n.dataIdMap.get(i.dataId);if(at.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${at.shape.length}.`);if(at.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${at.shape}) does not match the number of output channels (${w})`);C=at.id}let T=h.filterHeight,E=h.filterWidth,$=h.padInfo.top,D=h.padInfo.right,P=h.padInfo.bottom,M=h.padInfo.left,W=h.dilationHeight,H=h.dilationWidth,q=h.strideHeight,X=h.strideWidth,j=h.inChannels,Z=h.padInfo.type===\"SAME\"?1:0,et=h.batchSize,K=h.inHeight,ot=h.inWidth;if(p!==\"NHWC\")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let st=n.makeOutput(h.outShape,\"float32\"),it=n.dataIdMap.get(st.dataId).id,pt=a==null?0:n.dataIdMap.get(a.dataId).id;return ZV(x,et,K,ot,b,T,E,C,$,D,P,M,Z,W,H,q,X,j,w,g,pt,d||0,it),st}var JV={kernelName:_i,backendName:\"wasm\",setupFunc:hit,kernelFunc:git};var QV;function xit(r){QV=r.wasm.cwrap(wa,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function yit(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=yx.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 QV(f,Zt[n.dtype],h,i,p,a,g,x),l}var tG={kernelName:wa,backendName:\"wasm\",setupFunc:xit,kernelFunc:yit};var eG;function bit(r){eG=r.wasm.cwrap(\"Gather\",null,[\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function wit(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 P=0;P=0,()=>`GatherV2: the index value ${M} is not in [0, ${c-1}]`)}let p=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),m=lr({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=lr({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,T=t.dataIdMap.get(d.dataId).id,E=t.dataIdMap.get(g.dataId).id,$=new Uint8Array(new Int32Array(y.computeStrides(m.shape)).buffer),D=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return eG(w,Zt[o.dtype],$,x,T,p.batchSize,D,E),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var rG={kernelName:hi,backendName:\"wasm\",setupFunc:bit,kernelFunc:wit};var Cit=!1,nG=pe(Ca,Cit,\"bool\");var vit=!1,oG=pe(ps,vit,\"bool\");var sG;function Iit(r){sG=r.wasm.cwrap(ms,null,[\"number\",\"number\",\"number\",\"number\"])}function Sit(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;sG(o,Zt[t.dtype],e,i)}return s}var iG={kernelName:ms,backendName:\"wasm\",setupFunc:Iit,kernelFunc:Sit};var Tit=!1,aG=pe(Ta,Tit,\"bool\");var Nit=!1,lG=pe(Na,Nit,\"bool\");var uG=ae(fs);var kit=!1,cG=pe(_a,kit,\"bool\");var pG=ae(Ea);var _it=!1,mG=pe(Aa,_it,\"bool\");var Eit=!1,fG=pe(k1,Eit,\"bool\");var dG;function Ait(r){dG=r.wasm.cwrap(ds,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}=wn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;l=c,u=w}let d=l.shape.length;S.assertAxesAreInnerMostDims(\"max\",p,d);let[h,g]=S.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;dG(u,Zt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var hG={kernelName:ds,backendName:\"wasm\",setupFunc:Ait,kernelFunc:$it};var Dit=!1,gG=pe(hs,Dit);var xG;function Rit(r){xG=r.wasm.cwrap(gs,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Fit(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=S.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,T=c.inChannels,E=c.outChannels;if(c.dataFormat!==\"channelsLast\")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let $=n.makeOutput(c.outShape,\"float32\"),D=n.dataIdMap.get($.dataId).id;return xG(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,C,T,E,D),$}var yG={kernelName:gs,backendName:\"wasm\",setupFunc:Rit,kernelFunc:Fit};var bG;function Oit(r){bG=r.wasm.cwrap(xs,null,[\"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}=wn(i,o,t),d=p;if(f){let C=t.dataIdMap.get(c.dataId).id;C!==a&&(l=c,u=C,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims(\"mean\",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=l;l.dtype!==\"float32\"&&(b=li({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;bG(u,x,C)}if(f&&t.disposeData(c.dataId),s){let C=S.expandShapeToKeepDim(w.shape,m);w.shape=C}return l.dtype!==\"float32\"&&t.disposeData(b.dataId),w}var wG={kernelName:xs,backendName:\"wasm\",setupFunc:Oit,kernelFunc:Pit};var CG;function Lit(r){CG=r.wasm.cwrap(ys,null,[\"number\",\"number\",\"number\",\"number\"])}function Mit(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}=wn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w)}let d=l.shape.length;S.assertAxesAreInnerMostDims(\"min\",p,d);let[h,g]=S.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;CG(u,Zt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var vG={kernelName:ys,backendName:\"wasm\",setupFunc:Lit,kernelFunc:Mit};var zit=!1,IG=pe(bs,zit);var Wk;(function(r){r[r.reflect=0]=\"reflect\",r[r.symmetric=1]=\"symmetric\"})(Wk||(Wk={}));var SG;function Bit(r){SG=r.wasm.cwrap(ws,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function Vit(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 SG(i,l,t.shape.length,Zt[t.dtype],m,f,Wk[o],u),a}var TG={kernelName:ws,backendName:\"wasm\",kernelFunc:Vit,setupFunc:Bit};var Git=!0,NG=pe(Cs,Git);var kG=ae(gi);function Bd(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 _G;function Wit(r){_G=r.wasm.cwrap(Ra,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"])}function Uit(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=_G(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Bd(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],\"int32\",m)}var EG={kernelName:Ra,backendName:\"wasm\",setupFunc:Wit,kernelFunc:Uit};var AG;function Hit(r){AG=r.wasm.cwrap(Fa,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"bool\"])}function qit(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=AG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Bd(t,m);t.wasm._free(h);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([],\"int32\",g);return[x,b]}var $G={kernelName:Fa,backendName:\"wasm\",setupFunc:Hit,kernelFunc:qit};var DG;function Kit(r){DG=r.wasm.cwrap(Oa,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function jit(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=DG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Bd(t,m);t.wasm._free(g);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([d],\"float32\",h);return[x,b]}var RG={kernelName:Oa,backendName:\"wasm\",setupFunc:Kit,kernelFunc:jit};var Xit=!1,FG=pe(Da,Xit,\"bool\");var OG;function Yit(r){OG=r.wasm.cwrap(vs,null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function Zit(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 OG(m,i,a,u,c),l}var PG={kernelName:vs,backendName:\"wasm\",setupFunc:Yit,kernelFunc:Zit};function Jit(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var LG={kernelName:xi,backendName:\"wasm\",kernelFunc:Jit};function Qit(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return Iv({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=Iv({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Bk({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var MG={kernelName:yi,backendName:\"wasm\",kernelFunc:Qit};var zG;function tat(r){zG=r.wasm.cwrap(Is,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function eat(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 Gk({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 zG(i,c,t.shape.length,Zt[t.dtype],f,d,o,l),a}var Sv={kernelName:Is,backendName:\"wasm\",kernelFunc:eat,setupFunc:tat};var rat=!1,BG=pe(Ss,rat);var VG;function nat(r){VG=r.wasm.cwrap(Ts,null,[\"number\",\"number\",\"number\"])}function oat(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=li({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 VG(a,i,p),u.dtype!==\"float32\"&&e.disposeData(l.dataId),c}var GG={kernelName:Ts,backendName:\"wasm\",setupFunc:nat,kernelFunc:oat};var WG;function sat(r){WG=r.wasm.cwrap(Ns,null,[\"number\",\"number\",\"number\",\"number\"])}function iat(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}=wn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims(\"prod\",d,l.shape.length);let[h,g]=S.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;WG(u,x,Zt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var UG={kernelName:Ns,backendName:\"wasm\",setupFunc:sat,kernelFunc:iat};var aat=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=Mc(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},HG={kernelName:Fl,backendName:\"wasm\",kernelFunc:aat};var lat=!0,qG=pe(ss,lat);var KG=ae(ks);var jG=ae(As);var XG;function uat(r){XG=r.wasm.cwrap(Es,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.dataIdMap.get(o.dataId),g;h.dtype!==\"float32\"&&(g=li({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 XG(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var YG={kernelName:Es,backendName:\"wasm\",setupFunc:uat,kernelFunc:cat};var ZG;function pat(r){ZG=r.wasm.cwrap(_s,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function mat(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=li({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 ZG(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var JG={kernelName:_s,backendName:\"wasm\",setupFunc:pat,kernelFunc:mat};var QG;function fat(r){QG=r.wasm.cwrap($s,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function dat(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 rp({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);QG(u,c,i.length,p,o.shape.length,l);let m=lr({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var tW={kernelName:$s,backendName:\"wasm\",kernelFunc:dat,setupFunc:fat};var eW;function hat(r){eW=r.wasm.cwrap(qa,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function gat(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]=S.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 eW(l,p,m,f,d,s,h,g,C,w.length,c),u}var rW={kernelName:qa,backendName:\"wasm\",kernelFunc:gat,setupFunc:hat};var nW=ae(Ds);var oW=ae(Rs);var sW;function xat(r){sW=r.wasm.cwrap(La,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function yat(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}=yh.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 sW(d,g,Zt[s.dtype],u,l,c,x,m,b),a}var iW={kernelName:La,backendName:\"wasm\",setupFunc:xat,kernelFunc:yat};var aW;function bat(r){aW=r.wasm.cwrap(\"SelectV2\",null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function wat(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 aW(i,a,u,f,c),l}var lW={kernelName:wi,backendName:\"wasm\",kernelFunc:wat,setupFunc:bat};var uW;function Cat(r){uW=r.wasm.cwrap(Os,null,[\"number\",\"number\"])}function vat(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||uW(n,s),o}var cW={kernelName:\"Sigmoid\",backendName:\"wasm\",setupFunc:Cat,kernelFunc:vat};var pW=ae(Fs);var mW;function Iat(r){mW=r.wasm.cwrap(Ms,null,[\"number\",\"number\",\"number\",\"number\"])}function Sat(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||mW(o,i,a,u),s}var fW={kernelName:Ms,backendName:\"wasm\",setupFunc:Iat,kernelFunc:Sat};function Tat(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 E=1+s.length;E0?u+1:0;if(c<0)throw new Error(S.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;bW(m,Zt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),C;switch(w[0]){case 0:{C=S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{C=S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:C=S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:C=S.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 Aat(r){return Nv(r,!0)}var wW={kernelName:Pl,backendName:\"wasm\",setupFunc:Tv,kernelFunc:Aat};function $at(r){return Nv(r,!1)}var CW={kernelName:Ll,backendName:\"wasm\",setupFunc:Tv,kernelFunc:$at};function Dat(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=S.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=Po({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var vW={kernelName:Ii,backendName:\"wasm\",kernelFunc:Dat};var IW=ae(Ps);var SW=ae(Ml);var Rat=!0,TW=pe(zs,Rat);var NW;function Fat(r){NW=r.wasm.cwrap(co,null,[\"number\",\"number\",\"number\",\"number\"])}function Oat(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 NW(i,o,Zt[s.dtype],u),a}var kW={kernelName:co,backendName:\"wasm\",setupFunc:Fat,kernelFunc:Oat};var _W;function Pat(r){_W=r.wasm.cwrap(Wa,null,[\"number\",\"array\",\"number\",\"array\",\"array\",\"array\",\"array\",\"array\",\"number\",\"number\"])}function Lat(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}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),T;if(h)T=lr({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 E=Be.computeOutShape(b,w,C),$=Po({inputs:{x:o},backend:t,attrs:{begin:b,size:E}});T=lr({inputs:{x:$},backend:t,attrs:{shape:d}}),t.disposeData($.dataId)}else{let E=t.makeOutput(f,\"float32\"),$=t.dataIdMap.get(o.dataId).id,D=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),P=new Uint8Array(new Int32Array(b).buffer),M=new Uint8Array(new Int32Array(w).buffer),W=new Uint8Array(new Int32Array(C).buffer),H=new Uint8Array(new Int32Array(f).buffer),q=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),X=t.dataIdMap.get(E.dataId).id;_W($,D,o.shape.length,P,M,W,H,q,f.length,X),T=lr({inputs:{x:E},backend:t,attrs:{shape:d}}),t.disposeData(E.dataId)}return T}var EW={kernelName:Wa,backendName:\"wasm\",setupFunc:Pat,kernelFunc:Lat};function Mat(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]=Bc(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 AW={kernelName:zl,backendName:\"wasm\",kernelFunc:Mat};function zat(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]=Vc(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 $W={kernelName:Bl,backendName:\"wasm\",kernelFunc:zat};function Bat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=Gc(i,s),u=t.makeOutput(o.shape,\"int32\");return t.typedArrayFromHeap(u).set(a),u}var DW={kernelName:Vl,backendName:\"wasm\",kernelFunc:Bat};var Vat=!0,RW=pe(Bs,Vat);var FW;function Gat(r){FW=r.wasm.cwrap(Ls,null,[\"number\",\"number\",\"number\",\"number\"])}function Wat(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}=wn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims(\"sum\",d,l.shape.length);let[h,g]=S.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;FW(u,x,Zt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var OW={kernelName:Ls,backendName:\"wasm\",setupFunc:Gat,kernelFunc:Wat};var PW=ae(Vs);var LW=ae(Gs);var MW;function Uat(r){MW=r.wasm.cwrap(Xn,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function Hat(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 BW(i,a,n.shape.length,Zt[n.dtype],o,s,c,m),[l,p]},VW={kernelName:Ua,backendName:\"wasm\",setupFunc:qat,kernelFunc:Kat};var GW;function jat(r){GW=r.wasm.cwrap(Ha,null,[\"number\",\"number\",\"bool\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Xat(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,E=t.dataIdMap.get(o.dataId).id,D=t.dataIdMap.get(s.dataId).id,P=i===\"nearest\"?1:2,M;switch(a){case\"constant\":M=1;break;case\"reflect\":M=2;break;case\"wrap\":M=3;break;case\"nearest\":M=4;break;default:M=1;break}return GW(E,D,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,P,M,u,C),w}var WW={kernelName:Ha,backendName:\"wasm\",setupFunc:jat,kernelFunc:Xat};function Yat(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 UW={kernelName:Si,backendName:\"wasm\",kernelFunc:Yat};function Zat(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var HW={kernelName:Ti,backendName:\"wasm\",kernelFunc:Zat};var Jat=[YB,ZB,JB,tV,sV,aV,uV,pV,dV,gV,xV,yV,wV,CV,IV,TV,NV,kV,EV,$V,RV,OV,LV,MV,zV,BV,VV,GV,UV,HV,qV,jV,YV,JV,tG,rG,nG,oG,eV,iG,aG,lG,uG,cG,pG,mG,fG,hG,gG,yG,wG,vG,IG,TG,NG,kG,EG,$G,RG,FG,PG,LG,MG,Sv,BG,GG,UG,HG,qG,KG,jG,mV,YG,JG,tW,rW,nW,oW,iW,lW,cW,pW,hV,fW,dW,gW,yW,wW,CW,vW,IW,SW,TW,kW,EW,AW,$W,DW,RW,OW,PW,LW,zW,VW,WW,nV,UW,HW];for(let r of Jat)Wu(r);var Uk=B();Uk.registerFlag(\"WASM_HAS_SIMD_SUPPORT\",async()=>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])));Uk.registerFlag(\"WASM_HAS_MULTITHREAD_SUPPORT\",async()=>{if(Uk.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 Yk=Tl(XW()),eU=Tl(ZW()),Zk=Tl(JW());var QW=Yk.default||Yk,Qat=Zk.default||Zk,bg=class extends Ho{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(nU),Xk=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new ra(this,go())}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 elt(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 tlt(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 tU(r,t,e){if(Ev!=null)return Ev;let n=\"tfjs-backend-wasm.wasm\";return r&&t?n=\"tfjs-backend-wasm-threaded-simd.wasm\":r&&(n=\"tfjs-backend-wasm-simd.wasm\"),xg!=null&&xg[n]!=null?xg[n]:e+n}async function rU(){let[r,t]=await Promise.all([B().getAsync(\"WASM_HAS_SIMD_SUPPORT\"),B().getAsync(\"WASM_HAS_MULTITHREAD_SUPPORT\")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(\".worker.js\")){let l=eU.wasmWorkerContents.replace(/\\n/g,\"\\\\n\"),c=new Blob([l],{type:\"application/javascript\"});return URL.createObjectURL(c)}return a.endsWith(\".wasm\")?tU(r,t,gg!=null?gg:u):u+a},Jk&&(o.instantiateWasm=tlt(tU(r,t,gg!=null?gg:\"\")));let s=!1;o.onAbort=()=>{if(s||yg)return;yg=!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&&Ev==null?(o.mainScriptUrlOrBlob=new Blob([\"var WasmBackendModuleThreadedSimd = \"+QW.toString()],{type:\"text/javascript\"}),i=QW(o)):i=Qat(o),i.then(a=>{s=!0,yg=!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 elt(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 rlt=[\"tfjs-backend-wasm.wasm\",\"tfjs-backend-wasm-simd.wasm\",\"tfjs-backend-wasm-threaded-simd.wasm\"],Ev=null,gg=null,xg={},yg=!1,Jk=!1;function nlt(r,t=!1){if(tS(\"setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release.\"),yg)throw new Error(\"The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`\");Ev=r,Jk=t}function olt(r,t=!1){if(yg)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\")gg=r;else{xg=r;let e=rlt.filter(n=>xg[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.`)}Jk=t}var nU=-1,Xk=-1;function slt(r){nU=r}function ilt(){if(Xk===-1)throw new Error(\"WASM backend not initialized.\");return Xk}var alt=\"3.20.0\";var llt=2;lm(\"wasm\",async()=>{let{wasm:r}=await rU();return new bg(r)},llt);var ult=\"3.20.0\",clt=\"3.20.0\",plt=\"3.20.0\",mlt=\"3.20.0\",flt=\"3.20.0\",dlt=\"3.20.0\",hlt=\"3.20.0\",glt=\"3.20.0\",xlt={tfjs:ult,\"tfjs-core\":clt,\"tfjs-data\":plt,\"tfjs-layers\":mlt,\"tfjs-converter\":flt,\"tfjs-backend-cpu\":dlt,\"tfjs-backend-webgl\":hlt,\"tfjs-backend-wasm\":glt};export{pi as Abs,oa as Acos,sa as Acosh,cu as AdadeltaOptimizer,pu as AdagradOptimizer,mu as AdamOptimizer,fu as AdamaxOptimizer,jn as Add,jo as AddN,ia as All,aa as Any,Xo as ArgMax,Nl as ArgMin,la as Asin,ua as Asinh,ca as Atan,ma as Atan2,pa as Atanh,Yo as AvgPool,kl as AvgPool3D,Ip as AvgPool3DGrad,vp as AvgPoolGrad,bg as BackendWasm,Zo as BatchMatMul,mi as BatchToSpaceND,Sp as Bincount,Tp as BroadcastArgs,N1 as BroadcastTo,Lb as Callback,Yy as CallbackList,ao as Cast,Jo as Ceil,lo as ClipByValue,Np as Complex,_l as ComplexAbs,fi as Concat,Qo as Conv2D,kp as Conv2DBackpropFilter,ts as Conv2DBackpropInput,El as Conv3D,_p as Conv3DBackpropFilterV2,Ep as Conv3DBackpropInputV2,es as Cos,rs as Cosh,da as CropAndResize,fa as Cumprod,ns as Cumsum,Jy as CustomCallback,ra as DataStorage,Ap as DenseBincount,ha as DepthToSpace,os as DepthwiseConv2dNative,$p as DepthwiseConv2dNativeBackpropFilter,Dp as DepthwiseConv2dNativeBackpropInput,Rp as Diag,Al as Dilation2D,sh as Dilation2DBackpropFilter,oh as Dilation2DBackpropInput,y0 as ENV,Mb as EarlyStopping,Fp as Einsum,is as Elu,Op as EluGrad,rh as Environment,xa as Equal,ga as Erf,as as Exp,di as ExpandDims,ya as Expm1,Pp as FFT,$l as Fill,ba as FlipLeftRight,ls as Floor,us as FloorDiv,ih as FromPixels,cs as FusedBatchNorm,ki as FusedConv2D,_i as FusedDepthwiseConv2D,jc as GPGPUContext,wa as GatherNd,hi as GatherV2,Hh as GraphModel,Ca as Greater,ps as GreaterEqual,Zy as History,Lp as IFFT,uo as Identity,Mp as Imag,we as InputSpec,va as IsFinite,Ia as IsInf,Sa as IsNan,Ho as KernelBackend,Dl as LRN,Bp as LRNGrad,Ah as LayerVariable,Bn as LayersModel,ms as LeakyRelu,Ta as Less,Na as LessEqual,zp as LinSpace,fs as Log,ka as Log1p,_1 as LogSoftmax,_a as LogicalAnd,Ea as LogicalNot,Aa as LogicalOr,k1 as LogicalXor,Ilt as LowerBound,Eu as MathBackendWebGL,ds as Max,gs as MaxPool,Rl as MaxPool3D,Gp as MaxPool3DGrad,Vp as MaxPoolGrad,Wp as MaxPoolWithArgmax,hs as Maximum,xs as Mean,ys as Min,bs as Minimum,ws as MirrorPad,$a as Mod,du as MomentumOptimizer,Up as Multinomial,Cs as Multiply,gi as Neg,Ra as NonMaxSuppressionV3,Fa as NonMaxSuppressionV4,Oa as NonMaxSuppressionV5,Da as NotEqual,z0 as OP_SCOPE_SUFFIX,vs as OneHot,xi as OnesLike,Br as Optimizer,js as OptimizerConstructors,yi as Pack,Is as PadV2,Slt as Pool,Ss as Pow,Ts as Prelu,Ns as Prod,hu as RMSPropOptimizer,_n as RNN,Hp as RaggedTensorToTensor,Fl as Range,E0 as Rank,qp as Real,ss as RealDiv,Pa as Reciprocal,Ye as Reduction,ks as Relu,As as Relu6,bi as Reshape,Es as ResizeBilinear,jp as ResizeBilinearGrad,_s as ResizeNearestNeighbor,Kp as ResizeNearestNeighborGrad,$s as Reverse,qa as RotateWithOffset,Ds as Round,Rs as Rsqrt,qi as SGDOptimizer,La as ScatterNd,Xp as SearchSorted,wi as Select,Ma as Selu,Ji as Sequential,Os as Sigmoid,Ba as Sign,Fs as Sin,za as Sinh,Ci as Slice,Ms as Softmax,Va as Softplus,vi as SpaceToBatchND,Ol as SparseFillEmptyRows,Ga as SparseReshape,Pl as SparseSegmentMean,Ll as SparseSegmentSum,Yp as SparseToDense,Ii as SplitV,Ps as Sqrt,Ml as Square,zs as SquaredDifference,co as Step,Wa as StridedSlice,zl as StringNGrams,Bl as StringSplit,Vl as StringToHashBucketFast,Bs as Sub,Ls as Sum,Xr as SymbolicTensor,Vs as Tan,Gs as Tanh,Lt as Tensor,fe as TensorBuffer,Xn as Tile,Ua as TopK,Ha as Transform,Yn as Transpose,Zp as Unique,Si as Unpack,Gl as UnsortedSegmentSum,Tlt as UpperBound,Ka as Variable,Ti as ZerosLike,Ni as _FusedMatMul,$e as abs,Cx as acos,vx as acosh,J as add,J_ as addN,cm as all,Ju as any,Oi as argMax,Ix as argMin,Sx as asin,Tx as asinh,Nx as atan,kx as atan2,_x as atanh,Xl as avgPool,Ax as avgPool3d,$_ as backend,S as backend_util,eE as basicLSTMCell,Li as batchNorm,$x as batchNorm2d,Dx as batchNorm3d,Rx as batchNorm4d,Yl as batchToSpaceND,Fx as bincount,w6 as booleanMaskAsync,nE as broadcastArgs,Mi as broadcastTo,Lr as broadcast_util,xx as browser,vt as buffer,tZ as callbacks,tt as cast,Ox as ceil,Ir as clipByValue,an as clone,Cn as complex,se as concat,Px as concat1d,Lx as concat2d,Mx as concat3d,zx as concat4d,aD as constraints,mm as conv1d,Sn as conv2d,dm as conv2dTranspose,Bx as conv3d,Gx as conv3dTranspose,Dlt as copyRegisteredKernels,Zl as cos,hm as cosh,Sh as cosineWindow,ec as cumprod,gm as cumsum,un as customGrad,GR as data,oE as denseBincount,tS as deprecationWarn,Wx as depthToSpace,zi as depthwiseConv2d,oZ as deregisterOp,ql as device_util,sE as diag,Ux as dilation2d,vpt as disableDeprecationWarnings,_t as dispose,Ipt as disposeVariables,ct as div,Hx as divNoNan,qx as dot,bS as dropout,iE as einsum,Bi as elu,Cpt as enableDebugMode,wpt as enableProdMode,wS as enclosingPowerOfTwo,go as engine,B as env,Ar as equal,Kx as erf,jx as euclideanNorm,or as exp,yr as expandDims,Xx as expm1,nc as eye,iu as fft,Vi as fill,Ept as findBackend,Apt as findBackendFactory,Gi as floor,um as floorDiv,CM as forceHalfFloat,lu as fused,Wi as gather,E6 as gatherND,yx as gather_util,kpt as getBackend,C0 as getGradient,lh as getKernel,tx as getKernelsForBackend,ilt as getThreadsCount,xk as gpgpu_util,MK as grad,zK as grads,Xe as greater,Pn as greaterEqual,Qa as ifft,jl as imag,uu as image,D6 as inTopKAsync,lD as initializers,KS as input,vn as io,Am as irfft,Yx as isFinite,Zx as isInf,Jx as isNaN,Oe as keep,Vr as kernel_impls,BD as layers,Jl as leakyRelu,xm as less,Ln as lessEqual,vS as linalg,uE as linspace,ZZ as loadGraphModel,JZ as loadGraphModelSync,pY as loadLayersModel,Qx as localResponseNormalization,Sr as log,Ql as log1p,ry as logSigmoid,ym as logSoftmax,bm as logSumExp,Dr as logicalAnd,tu as logicalNot,wm as logicalOr,ny as logicalXor,D5 as losses,cE as lowerBound,Gt as matMul,R_ as math,Mr as max,eu as maxPool,sy as maxPool3d,pE as maxPoolWithArgmax,Tn as maximum,ke as mean,xh as memory,mE as meshgrid,VD as metrics,rc as min,Ui as minimum,iy as mirrorPad,ay as mod,uY as model,GD as models,oc as moments,v6 as movingAverage,O as mul,fE as multiRNNCell,dE as multinomial,Yt as neg,Th as nextFrame,Ja as norm,qs as notEqual,Ri as oneHot,cr as ones,br as onesLike,N as op,hE as outerProduct,cn as pad,gE as pad1d,xE as pad2d,yE as pad3d,bE as pad4d,ly as pool,ln as pow,nu as prelu,mx as print,uy as prod,Spt as profile,wE as raggedTensorToTensor,CE as rand,ME as randomGamma,ac as randomNormal,zE as randomStandardNormal,Hi as randomUniform,ou as range,Npt as ready,Za as real,dy as reciprocal,lm as registerBackend,mY as registerCallbackConstructor,A1 as registerGradient,Wu as registerKernel,nZ as registerOp,WD as regularizers,Rr as relu,Cm as relu6,_pt as removeBackend,F as reshape,pr as reverse,BE as reverse1d,VE as reverse2d,GE as reverse3d,WE as reverse4d,au as rfft,vm as round,Im as rsqrt,mt as scalar,S6 as scatterND,yh as scatter_util,Ch as searchSorted,Sm as selu,Tm as separableConv2d,cY as sequential,rt as serialization,bH as setBackend,$pt as setPlatform,slt as setThreadsCount,nlt as setWasmPath,olt as setWasmPaths,$N as setWebGLContext,UE as setdiff1dAsync,Kr as sigmoid,hy as sign,$5 as signal,Nm as sin,km as sinh,Ot as slice,_m as slice1d,Ih as slice2d,Em as slice3d,lc as slice4d,Be as slice_util,su as softmax,Hs as softplus,ru as spaceToBatchND,R5 as sparse,k6 as sparseToDense,A5 as spectral,mr as split,Ne as sqrt,Ht as square,$m as squaredDifference,Mn as squeeze,sr as stack,yo as step,gy as stridedSlice,F5 as string,ut as sub,ft as sum,Xu as sumOutType,xy as tan,Pi as tanh,vr as tensor,Ve as tensor1d,Ks as tensor2d,gx as tensor3d,HE as tensor4d,qE as tensor5d,KE as tensor6d,ho as tensor_util,Y_ as test_util,G as tidy,$r as tile,Tpt as time,yy as topk,fc as train,Mt as transpose,Dm as truncatedNormal,by as unique,$lt as unregisterGradient,Alt as unregisterKernel,Rm as unsortedSegmentSum,Tr as unstack,ir as upcastType,jE as upperBound,y as util,BK as valueAndGrad,VK as valueAndGrads,wy as variable,ty as variableGrads,xlt as version,vR as version_converter,Z_ as version_core,nf as version_layers,alt as version_wasm,wM as version_webgl,ike as webgl,Id as webgl_util,De as where,vy as whereAsync,_e as zeros,St 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 > = TSource & {\n landmarks: TFaceLandmarks,\n unshiftedLandmarks: TFaceLandmarks,\n alignedRect: FaceDetection,\n angle: { roll: number | undefined, pitch: number | undefined, yaw: number | undefined },\n }\n\nexport function isWithFaceLandmarks(obj: any): obj is WithFaceLandmarks, FaceLandmarks> {\n return 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\nfunction calculateFaceAngle(mesh) {\n // returns the angle in the plane (in radians) between the positive x-axis and the ray from (0,0) to the point (x,y)\n const radians = (a1, a2, b1, b2) => (Math.atan2(b2 - a2, b1 - a1) % Math.PI);\n // convert radians to degrees\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => (theta * 180) / Math.PI;\n\n const angle = { roll: undefined, pitch: undefined, yaw: undefined };\n\n if (!mesh || !mesh._positions || mesh._positions.length !== 68) return angle;\n const pt = mesh._positions;\n\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n\n // roll is face lean from left to right\n // comparing x,y of outside corners of leftEye and rightEye\n angle.roll = -radians(pt[36]._x, pt[36]._y, pt[45]._x, pt[45]._y);\n\n // pitch is face turn from left right\n // comparing x distance of top of nose to left and right edge of face\n // precision is lacking since coordinates are not precise enough\n angle.pitch = radians(0, Math.abs(pt[0]._x - pt[30]._x) / pt[30]._x, Math.PI, Math.abs(pt[16]._x - pt[30]._x) / pt[30]._x);\n\n // yaw is face move from up to down\n // comparing size of the box around the face with top and bottom of detected landmarks\n // silly hack, but this gives us face compression on y-axis\n // e.g., tilting head up hides the forehead that doesn't have any landmarks so ratio drops\n const bottom = pt.reduce((prev, cur) => (prev < cur._y ? prev : cur._y), +Infinity);\n const top = pt.reduce((prev, cur) => (prev > cur._y ? prev : cur._y), -Infinity);\n angle.yaw = Math.PI * (mesh._imgDims._height / (top - bottom) / 1.40 - 1);\n\n return angle;\n}\n\nexport function extendWithFaceLandmarks, TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 >(sourceObj: TSource, unshiftedLandmarks: TFaceLandmarks): 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(sourceObj.detection.score, rect.rescale(imageDims.reverse()), imageDims);\n const angle = calculateFaceAngle(unshiftedLandmarks);\n\n const extension = {\n landmarks,\n unshiftedLandmarks,\n alignedRect,\n angle,\n };\n\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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,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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", - "names": ["tfjs_esm_exports", "__export", "pi", "oa", "sa", "cu", "pu", "mu", "fu", "jn", "jo", "ia", "aa", "Xo", "Nl", "la", "ua", "ca", "ma", "pa", "Yo", "kl", "Ip", "vp", "bg", "Zo", "mi", "Sp", "Tp", "N1", "Lb", "Yy", "ao", "Jo", "lo", "Np", "_l", "fi", "Qo", "kp", "ts", "El", "_p", "Ep", "es", "rs", "da", "fa", "ns", "Jy", "ra", "Ap", "ha", "os", "$p", "Dp", "Rp", "Al", "sh", "oh", "y0", "Mb", "Fp", "is", "Op", "rh", "xa", "ga", "as", "di", "ya", "Pp", "$l", "ba", "ls", "us", "ih", "cs", "ki", "_i", "jc", "wa", "hi", "Hh", "Ca", "ps", "Zy", "Lp", "uo", "Mp", "we", "va", "Ia", "Sa", "Ho", "Dl", "Bp", "Ah", "Bn", "ms", "Ta", "Na", "zp", "fs", "ka", "_1", "_a", "Ea", "Aa", "k1", "Ilt", "Eu", "ds", "gs", "Rl", "Gp", "Vp", "Wp", "hs", "xs", "ys", "bs", "ws", "$a", "du", "Up", "Cs", "gi", "Ra", "Fa", "Oa", "Da", "z0", "vs", "xi", "Br", "js", "yi", "Is", "Slt", "Ss", "Ts", "Ns", "hu", "_n", "Hp", "Fl", "E0", "qp", "ss", "Pa", "Ye", "ks", "As", "bi", "Es", "jp", "_s", "Kp", "$s", "qa", "Ds", "Rs", "qi", "La", "Xp", "wi", "Ma", "Ji", "Os", "Ba", "Fs", "za", "Ci", "Ms", "Va", "vi", "Ol", "Ga", "Pl", "Ll", "Yp", "Ii", "Ps", "Ml", "zs", "co", "Wa", "zl", "Bl", "Vl", "Bs", "Ls", "Xr", "Vs", "Gs", "Lt", "fe", "Xn", "Ua", "Ha", "Yn", "Zp", "Si", "Gl", "Tlt", "Ka", "Ti", "Ni", "$e", "Cx", "vx", "J", "J_", "cm", "Ju", "Oi", "Ix", "Sx", "Tx", "Nx", "kx", "_x", "Xl", "Ax", "$_", "S", "eE", "Li", "$x", "Dx", "Rx", "Yl", "Fx", "w6", "nE", "Mi", "Lr", "xx", "vt", "tZ", "tt", "Ox", "Ir", "an", "Cn", "se", "Px", "Lx", "Mx", "zx", "aD", "mm", "Sn", "dm", "Bx", "Gx", "Dlt", "Zl", "hm", "Sh", "ec", "gm", "un", "GR", "oE", "tS", "Wx", "zi", "oZ", "ql", "sE", "Ux", "vpt", "_t", "Ipt", "ct", "Hx", "qx", "bS", "iE", "Bi", "Cpt", "wpt", "wS", "go", "B", "Ar", "Kx", "jx", "or", "yr", "Xx", "nc", "iu", "Vi", "Ept", "Apt", "Gi", "um", "CM", "lu", "Wi", "E6", "yx", "kpt", "C0", "lh", "tx", "ilt", "xk", "MK", "zK", "Xe", "Pn", "Qa", "jl", "uu", "D6", "lD", "KS", "vn", "Am", "Yx", "Zx", "Jx", "Oe", "Vr", "BD", "Jl", "xm", "Ln", "vS", "uE", "ZZ", "JZ", "pY", "Qx", "Sr", "Ql", "ry", "ym", "bm", "Dr", "tu", "wm", "ny", "D5", "cE", "Gt", "R_", "Mr", "eu", "sy", "pE", "Tn", "ke", "xh", "mE", "VD", "rc", "Ui", "iy", "ay", "uY", "GD", "oc", "v6", "O", "fE", "dE", "Yt", "Th", "Ja", "qs", "Ri", "cr", "br", "N", "hE", "cn", "gE", "xE", "yE", "bE", "ly", "ln", "nu", "mx", "uy", "Spt", "wE", "CE", "ME", "ac", "zE", "Hi", "ou", "Npt", "Za", "dy", "lm", "mY", "A1", "Wu", "nZ", "WD", "Rr", "Cm", "_pt", "F", "pr", "BE", "VE", "GE", "WE", "au", "vm", "Im", "mt", "S6", "yh", "Ch", "Sm", "Tm", "cY", "rt", "bH", "$pt", "slt", "nlt", "olt", "$N", "UE", "Kr", "hy", "$5", "Nm", "km", "Ot", "_m", "Ih", "Em", "lc", "Be", "su", "Hs", "ru", "R5", "k6", "A5", "mr", "Ne", "Ht", "$m", "Mn", "sr", "yo", "gy", "F5", "ut", "ft", "Xu", "xy", "Pi", "vr", "Ve", "Ks", "gx", "HE", "qE", "KE", "ho", "Y_", "G", "$r", "Tpt", "yy", "fc", "Mt", "Dm", "by", "$lt", "Alt", "Rm", "Tr", "ir", "jE", "y", "BK", "VK", "wy", "ty", "xlt", "vR", "Z_", "nf", "alt", "wM", "ike", "Id", "De", "vy", "_e", "St", "ZU", "p0", "JU", "QU", "t4", "e4", "gr", "r", "jt", "e", "r4", "n", "o", "Tl", "V1", "Flt", "B1", "Ke", "po", "t", "On", "$1", "D1", "Hu", "je", "mo", "Uu", "fo", "P1", "z1", "F1", "Fn", "M1", "tm", "ex", "S0", "s", "i", "a", "u", "l", "Ws", "R1", "S4", "O1", "Qp", "L1", "I0", "yt", "c", "p", "m", "f", "d", "C_", "v_", "IE", "vE", "fS", "TE", "SE", "dS", "kE", "NE", "hS", "EE", "_E", "gS", "$E", "AE", "xS", "h", "g", "RE", "DE", "yS", "FE", "PE", "OE", "cy", "w", "C", "T", "E", "$", "b", "D", "P", "M", "W", "H", "q", "X", "j", "vh", "lTt", "LE", "Tj", "Nj", "kj", "_j", "Ej", "Aj", "sc", "kT", "pw", "hg", "qW", "KW", "jW", "XW", "kv", "qk", "Hk", "Ft", "dr", "zo", "op", "sp", "Vd", "wg", "Cg", "vg", "Ig", "k", "R", "x", "Zd", "K", "V", "Y", "ht", "wt", "Pu", "Z", "et", "ot", "st", "it", "kt", "Vt", "nr", "Wo", "Uo", "Zg", "Jd", "pt", "at", "gt", "Hn", "dt", "cp", "bt", "Tt", "At", "Rt", "qt", "Kt", "me", "ap", "Ae", "Ie", "le", "qe", "Re", "Jr", "Dn", "xp", "b1", "gp", "$n", "Cl", "qr", "u0", "YU", "Kg", "Me", "Lo", "Or", "Qr", "tn", "so", "Mo", "io", "Fu", "np", "Qk", "Sg", "ip", "vl", "Av", "Tg", "Ou", "$v", "Ng", "en", "t1", "Ag", "Gd", "Dv", "Ut", "Rv", "Wd", "e1", "Il", "kg", "Bo", "Ud", "r1", "Fv", "Hd", "_g", "rn", "Eg", "lp", "Ov", "Gg", "Gv", "n1", "o1", "Pv", "up", "oU", "s1", "Lv", "l0", "Mv", "$g", "Dg", "KU", "zv", "y1", "qg", "f1", "Fg", "Bv", "x1", "Rg", "zu", "Lu", "Vv", "i1", "a1", "Mu", "Wv", "Uv", "m1", "Hv", "qv", "Kv", "d1", "jv", "Xv", "h1", "Yv", "Zv", "Jv", "Qv", "Og", "tI", "eI", "g1", "qd", "rI", "CI", "nI", "oI", "ne", "a0", "sI", "i0", "iI", "aI", "lI", "uI", "cI", "Kd", "Pg", "Lg", "pI", "mI", "fI", "dI", "hI", "gI", "rr", "Vg", "p1", "xI", "yI", "bI", "pp", "Mg", "zg", "Bg", "wI", "l1", "u1", "vI", "II", "SI", "TI", "NI", "kI", "_I", "EI", "AI", "$I", "DI", "RI", "FI", "OI", "PI", "LI", "MI", "zI", "BI", "VI", "GI", "WI", "UI", "HI", "qI", "KI", "jI", "XI", "YI", "ZI", "JI", "QI", "t0", "e0", "Wg", "Ug", "jd", "r0", "n0", "mp", "Xd", "Yd", "c1", "fp", "dp", "o0", "U", "Q", "xt", "$t", "he", "xe", "oe", "ee", "hr", "Vo", "Go", "hp", "Bu", "s0", "nn", "Sl", "Hg", "sU", "iU", "aU", "lU", "uU", "cU", "pU", "mU", "fU", "dU", "hU", "gU", "xU", "yU", "bU", "wU", "CU", "vU", "IU", "SU", "TU", "NU", "kU", "_U", "EU", "AU", "$U", "DU", "RU", "FU", "OU", "PU", "LU", "MU", "zU", "BU", "VU", "GU", "WU", "UU", "HU", "qU", "jg", "c0", "jU", "Xg", "Yg", "XU", "ZW", "B5e", "YW", "JW", "_v", "jk", "Kk", "qn", "w1", "Jg", "n4", "yp", "o4", "s4", "i4", "a4", "A", "Fe", "Rn", "Kn", "qo", "xr", "Qt", "l4", "na", "u4", "c4", "p4", "Gu", "m4", "f4", "ur", "m0", "f0", "d0", "h0", "g0", "d4", "Qg", "x0", "Ko", "C1", "v1", "bp", "ui", "wp", "ci", "I1", "Vu", "Qd", "Cp", "h4", "th", "g4", "x4", "eh", "S1", "b4", "C4", "w4", "T1", "b0", "w0", "v4", "nh", "Ei", "I4", "Jp", "ah", "v0", "A4", "rm", "Ul", "D4", "E4", "uh", "ju", "em", "N0", "Ku", "W1", "qu", "on", "T0", "U1", "ze", "G1", "kr", "Wl", "T4", "rx", "N4", "k4", "_4", "$4", "nx", "k0", "R4", "H1", "q1", "K1", "ch", "_0", "j1", "F4", "ox", "mh", "ph", "X1", "Us", "nm", "O4", "Y1", "Z1", "J1", "L", "F0", "fh", "L4", "Xt", "A0", "$0", "D0", "R0", "P4", "Q1", "M4", "O0", "sx", "Hl", "_", "z4", "B4", "P0", "M0", "W4", "G4", "V4", "L0", "Zn", "Pr", "e_", "t_", "v", "ja", "U4", "sn", "dh", "ix", "n_", "H4", "ax", "X4", "B0", "r_", "o_", "s_", "om", "V0", "lx", "sm", "Ai", "q4", "K4", "j4", "Se", "i_", "a_", "l_", "u_", "G0", "W0", "Yu", "Kl", "c_", "U0", "$i", "p_", "Y4", "Z4", "ux", "Xa", "im", "m_", "J4", "Q4", "tH", "eH", "f_", "d_", "rH", "nH", "Di", "h_", "oH", "cx", "am", "_r", "px", "g_", "x_", "y_", "b_", "w_", "H0", "sH", "q0", "K0", "iH", "aH", "lH", "S_", "k_", "__", "Q0", "dx", "fx", "T_", "Z0", "E_", "A_", "uH", "cH", "pH", "I_", "Ya", "j0", "mH", "fH", "X0", "Y0", "dH", "hH", "hh", "gH", "N_", "gh", "hx", "J0", "D_", "xH", "yH", "wH", "CH", "vH", "IH", "SH", "zt", "F_", "ye", "$H", "EH", "AH", "Zu", "O_", "TH", "NH", "kH", "_H", "P_", "L_", "bx", "eS", "RH", "MH", "OH", "PH", "LH", "FH", "nS", "zH", "H_", "G_", "q_", "W_", "U_", "z_", "rS", "DH", "B_", "V_", "BH", "M_", "bh", "Fi", "In", "K_", "KH", "X_", "qH", "GH", "UH", "j_", "WH", "HH", "jH", "wx", "VH", "oS", "sS", "XH", "YH", "ZH", "JH", "QH", "tq", "eq", "rq", "nq", "oq", "sq", "iq", "aq", "lq", "uq", "cq", "pq", "mq", "tE", "tc", "aS", "Ex", "fq", "iS", "Q_", "pm", "gq", "xq", "dq", "lS", "Qu", "hq", "Jn", "Er", "Te", "yq", "bq", "wq", "Cq", "vq", "Iq", "Sq", "Tq", "Nq", "rE", "kq", "_q", "Eq", "Aq", "$q", "Dq", "Rq", "Fq", "Oq", "Pq", "Lq", "Mq", "zq", "Bq", "Vq", "Gq", "fm", "Wq", "Uq", "Hq", "Vx", "qq", "Kq", "jq", "Xq", "Yq", "Zq", "Jq", "Qq", "tK", "eK", "rK", "nK", "oK", "sK", "iK", "aK", "lK", "uK", "uS", "aE", "cS", "xo", "cK", "pS", "wh", "pK", "mK", "fK", "dK", "hK", "gK", "xK", "yK", "lE", "bK", "wK", "CK", "vK", "IK", "SK", "TK", "NK", "kK", "_K", "EK", "AK", "$K", "DK", "RK", "FK", "OK", "PK", "LK", "ey", "GK", "WK", "UK", "HK", "qK", "KK", "jK", "XK", "YK", "oy", "ZK", "JK", "QK", "tj", "ej", "rj", "nj", "oj", "sj", "ij", "aj", "lj", "uj", "cj", "pj", "mj", "fj", "dj", "hj", "gj", "xj", "yj", "wj", "bj", "Cj", "vj", "Ij", "Sj", "fy", "ic", "py", "my", "$j", "Dj", "Rj", "Fj", "Oj", "Pj", "Lj", "Mj", "zj", "Bj", "Vj", "Gj", "Wj", "Uj", "Hj", "qj", "Kj", "jj", "Xj", "Yj", "Zj", "Jj", "Qj", "t6", "e6", "r6", "n6", "o6", "s6", "i6", "a6", "l6", "u6", "c6", "p6", "m6", "f6", "d6", "h6", "g6", "x6", "Cy", "y6", "b6", "C6", "I6", "XE", "N6", "_6", "YE", "A6", "$6", "ZE", "JE", "QE", "R6", "Fm", "uc", "cc", "pc", "mc", "F6", "O6", "Iy", "P6", "Sy", "L6", "M6", "z6", "tA", "B6", "Ty", "V6", "Ny", "G6", "eA", "W6", "rA", "U6", "nA", "H6", "oA", "q6", "sA", "bo", "K6", "iA", "aA", "j6", "Y6", "X6", "ky", "CS", "_y", "Ey", "lA", "Z6", "J6", "Q6", "uA", "t5", "cA", "e5", "pA", "r5", "mA", "n5", "fA", "o5", "Ay", "s5", "$y", "i5", "a5", "dA", "l5", "hA", "u5", "gA", "c5", "xA", "p5", "yA", "bA", "m5", "zr", "f5", "wA", "d5", "CA", "h5", "vA", "g5", "IA", "x5", "SA", "y5", "TA", "b5", "w5", "NA", "C5", "v5", "kA", "I5", "_A", "S5", "EA", "T5", "AA", "N5", "$A", "k5", "DA", "_5", "RA", "E5", "FA", "O5", "Y5", "Z5", "J5", "Q5", "tX", "X5", "Dy", "Ki", "SS", "IS", "P5", "iX", "mX", "M5", "nX", "oX", "G5", "L5", "cX", "lX", "aX", "RX", "DX", "sX", "fX", "pX", "W5", "H5", "B5", "U5", "q5", "z5", "K5", "j5", "xX", "yX", "bX", "vX", "SX", "IX", "wX", "CX", "_X", "TX", "NX", "kX", "dX", "eX", "gX", "NS", "rX", "V5", "TS", "uX", "OA", "PA", "hX", "$X", "AX", "EX", "Ry", "LA", "MA", "zA", "BA", "VA", "GA", "WA", "UA", "HA", "qA", "KA", "FX", "jA", "XA", "OX", "YA", "ZA", "JA", "QA", "t2", "e2", "r2", "n2", "o2", "s2", "i2", "a2", "PX", "l2", "u2", "c2", "p2", "m2", "f2", "d2", "h2", "g2", "x2", "y2", "b2", "w2", "C2", "v2", "T2", "I2", "S2", "N2", "k2", "_2", "E2", "A2", "$2", "D2", "R2", "F2", "LX", "O2", "P2", "Fy", "kS", "L2", "MX", "M2", "z2", "zX", "B2", "V2", "G2", "W2", "U2", "H2", "q2", "K2", "j2", "X2", "Y2", "Z2", "_S", "J2", "Q2", "BX", "VX", "t$", "e$", "r$", "n$", "o$", "s$", "i$", "a$", "l$", "u$", "c$", "p$", "m$", "f$", "d$", "h$", "g$", "x$", "y$", "b$", "ES", "AS", "w$", "C$", "v$", "I$", "S$", "T$", "N$", "k$", "_$", "E$", "A$", "$$", "GX", "D$", "WX", "Nn", "Gr", "z", "Nt", "Om", "Nh", "Co", "to", "DS", "Nr", "be", "vo", "tl", "wo", "Pm", "$S", "ji", "UX", "kh", "Io", "R$", "Xi", "Oy", "Je", "F$", "O$", "Py", "HX", "My", "Ly", "gu", "P$", "L$", "M$", "z$", "B$", "Lm", "Pe", "G$", "pn", "RS", "_h", "V$", "Ys", "qX", "zy", "W$", "By", "KX", "U$", "So", "dc", "Zs", "jr", "FS", "ar", "mn", "hc", "rl", "H$", "Gy", "q$", "K$", "el", "OS", "Eh", "Mm", "LS", "zm", "To", "PS", "Wy", "gc", "fn", "j$", "X$", "Uy", "Y$", "xu", "Z$", "J$", "jX", "XX", "hn", "Bm", "yu", "Vm", "Gm", "Wm", "Um", "Hm", "YX", "Wr", "xc", "yc", "bc", "wc", "Cc", "vc", "qm", "Q$", "tD", "Ee", "ge", "Hy", "Km", "Pt", "te", "jm", "rD", "JX", "$h", "Xm", "QX", "nl", "t8", "Bt", "e8", "r8", "MS", "Js", "qy", "n8", "No", "Ky", "jy", "oD", "Ic", "o8", "i8", "nD", "s8", "a8", "l8", "p8", "c8", "u8", "zS", "Sc", "Ym", "Zm", "Jm", "Qm", "sD", "Ge", "iD", "We", "d8", "C8", "w8", "v8", "I8", "y8", "S8", "T8", "f8", "N8", "g8", "h8", "x8", "b8", "m8", "al", "VY", "YY", "R7", "ZY", "QS", "tT", "eT", "i7", "l7", "c7", "a7", "u7", "p7", "n7", "T7", "JY", "DY", "RY", "FY", "OY", "PY", "C7", "v7", "MY", "GY", "BY", "r7", "WY", "NY", "XY", "HY", "D7", "$7", "m7", "f7", "k7", "_7", "PD", "LD", "h7", "g7", "TY", "o7", "_Y", "x7", "y7", "F7", "E7", "A7", "MD", "zD", "d7", "QY", "t7", "e7", "jY", "EY", "kY", "qY", "KY", "I7", "LY", "b7", "w7", "AY", "UY", "S7", "$Y", "N7", "zY", "s7", "Yi", "Xy", "uD", "k8", "ol", "BS", "Qy", "gn", "tb", "xn", "Dh", "Zi", "tf", "bu", "_8", "E8", "A8", "$8", "D8", "Tc", "ef", "R8", "rf", "F8", "O8", "Fh", "Rh", "eb", "Oh", "Ph", "pD", "P8", "L8", "VS", "mD", "nb", "ob", "M8", "z8", "B8", "V8", "G8", "W8", "Lh", "U8", "GS", "rb", "fD", "Mh", "hD", "US", "WS", "gD", "K8", "sb", "j8", "X8", "q8", "xD", "Nc", "ib", "zn", "Y8", "ab", "lb", "yD", "Z8", "CD", "bD", "J8", "vD", "wD", "Q8", "tY", "ID", "ub", "of", "cb", "pb", "eY", "SD", "ko", "HS", "rY", "qS", "TD", "ND", "nY", "oY", "kD", "sY", "iY", "mb", "_D", "ED", "aY", "lY", "Yr", "fb", "db", "hb", "gb", "xb", "yb", "bb", "wb", "Cb", "vb", "sf", "Ib", "Sb", "Tb", "Qs", "jS", "ti", "XS", "Nb", "wu", "DD", "RD", "AD", "de", "$D", "Ce", "af", "lf", "uf", "cf", "pf", "mf", "Cu", "kn", "ei", "zh", "YS", "dY", "FD", "hY", "kc", "vu", "sl", "il", "ff", "df", "kb", "hf", "Iu", "gf", "xf", "gY", "yf", "ZS", "JS", "Ac", "_c", "ul", "bf", "Ec", "wf", "ll", "Cf", "xY", "_b", "$c", "vf", "Dc", "If", "Sf", "Tf", "Nf", "kf", "_f", "Ef", "Af", "$f", "cl", "Df", "Rf", "Ff", "Of", "Pf", "Lf", "Bh", "yY", "Mf", "zf", "Bf", "Vf", "Vh", "bY", "wY", "CY", "Gf", "Wf", "vY", "Uf", "Fb", "OD", "Eb", "Hf", "qf", "Ab", "Kf", "jf", "$b", "Xf", "Yf", "Db", "Zf", "Jf", "Rb", "Qf", "td", "Ob", "ed", "IY", "SY", "rd", "H7", "j7", "O7", "P7", "M7", "z7", "G7", "q7", "W7", "U7", "K7", "X7", "B7", "V7", "L7", "Z7", "Y7", "J7", "Pb", "UD", "Q7", "eZ", "eo", "HD", "rT", "zb", "I", "wr", "yn", "Bb", "qD", "_o", "Gh", "ri", "nT", "sZ", "oT", "iZ", "sT", "aZ", "iT", "lZ", "aT", "uZ", "lT", "cZ", "uT", "pZ", "cT", "mZ", "pT", "fZ", "mT", "dZ", "fT", "hZ", "dT", "gZ", "hT", "xZ", "gT", "yZ", "xT", "bZ", "yT", "wZ", "bT", "CZ", "wT", "vZ", "CT", "IZ", "Wh", "Vb", "jb", "Wb", "Kb", "Gb", "Yb", "qb", "Xb", "Ub", "Hb", "KD", "vT", "SZ", "jD", "XD", "Zb", "ue", "YD", "ZD", "Vn", "JD", "nd", "Jb", "Qb", "pl", "QD", "tR", "eR", "rR", "nR", "oR", "sR", "iR", "IT", "aR", "lR", "uR", "tw", "cR", "pR", "mR", "fR", "dR", "hR", "gR", "xR", "yR", "bR", "wR", "ST", "Uh", "TT", "NT", "KZ", "jZ", "CR", "UZ", "HZ", "qZ", "Rc", "ew", "XZ", "YZ", "QZ", "id", "ni", "pd", "sd", "md", "DR", "LR", "MR", "zR", "VR", "KT", "BR", "RR", "$R", "_R", "IR", "rw", "Su", "SR", "_T", "TR", "nw", "NR", "tJ", "kR", "eJ", "od", "Fc", "VT", "ET", "qh", "AT", "ER", "sw", "AR", "ml", "zT", "Qe", "LT", "OT", "PT", "ow", "MT", "FT", "RT", "DT", "iw", "BT", "$T", "Oc", "En", "rJ", "nJ", "aw", "Kh", "FR", "lw", "GT", "OR", "ad", "ld", "ud", "jh", "WT", "UT", "uw", "HT", "qT", "cd", "PR", "oJ", "cw", "nt", "sJ", "Tu", "Sw", "YT", "hd", "mw", "XT", "ZT", "Pc", "JT", "tN", "rN", "nN", "fw", "dw", "sN", "oN", "aN", "iN", "hw", "lN", "gw", "uN", "cN", "Xh", "pN", "mN", "fN", "xw", "Mc", "dN", "fl", "hF", "jT", "zc", "yw", "bw", "yd", "yF", "gN", "ww", "Bc", "Vc", "Gc", "yN", "Cw", "vw", "gd", "Iw", "iJ", "WR", "re", "Cr", "UR", "fd", "Ur", "HR", "Eo", "qR", "Ao", "KR", "ie", "dd", "aJ", "Qi", "jR", "bn", "Et", "$o", "lJ", "XR", "QT", "YR", "eN", "ZR", "uJ", "JR", "cJ", "QR", "pJ", "tF", "mJ", "eF", "fJ", "rF", "dJ", "nF", "hJ", "oF", "gJ", "sF", "xJ", "iF", "yJ", "Lc", "aF", "bJ", "lF", "wJ", "uF", "Ue", "cF", "CJ", "pF", "Do", "xd", "fF", "mF", "vJ", "dF", "hN", "gF", "Ro", "xF", "IJ", "bF", "SJ", "wF", "xN", "TJ", "NJ", "Yh", "CF", "Zh", "vF", "bN", "IF", "wN", "SF", "_J", "CN", "TF", "vN", "NF", "IN", "kF", "Wc", "Jt", "_F", "SN", "EF", "EJ", "AF", "AJ", "$F", "$J", "DF", "DJ", "RF", "RJ", "FF", "FJ", "OF", "OJ", "PF", "PJ", "LF", "LJ", "MF", "MJ", "zF", "zJ", "BF", "BJ", "VJ", "VF", "GJ", "GF", "bd", "Tw", "Nw", "WF", "WJ", "UF", "UJ", "HF", "HJ", "qF", "qJ", "KF", "KJ", "jF", "jJ", "XF", "XJ", "YF", "YJ", "ZF", "ZJ", "JF", "JJ", "QF", "ta", "tO", "Nu", "eO", "TN", "rO", "QJ", "nO", "t9", "oO", "e9", "sO", "r9", "iO", "n9", "aO", "o9", "lO", "s9", "uO", "i9", "cO", "a9", "pO", "l9", "mO", "u9", "fO", "c9", "dO", "NN", "hO", "p9", "gO", "m9", "xO", "f9", "yO", "bO", "wO", "CO", "dl", "vO", "d9", "IO", "h9", "SO", "g9", "x9", "y9", "b9", "w9", "C9", "v9", "TO", "wd", "NO", "I9", "Jh", "Qh", "kw", "S9", "T9", "kN", "N9", "k9", "kO", "tg", "_9", "_O", "EO", "E9", "A9", "AO", "$9", "$O", "D9", "DO", "R9", "RO", "F9", "FO", "O9", "OO", "P9", "PO", "L9", "LO", "M9", "MO", "z9", "zO", "B9", "BO", "V9", "G9", "VO", "W9", "GO", "U9", "H9", "WO", "q9", "UO", "K9", "HO", "_N", "qO", "j9", "KO", "X9", "jO", "Y9", "XO", "Z9", "YO", "ZO", "JO", "J9", "QO", "Q9", "tP", "tQ", "eP", "eQ", "rQ", "rP", "oP", "EN", "nP", "nQ", "sP", "oQ", "sQ", "iP", "iQ", "aQ", "aP", "lQ", "uQ", "lP", "cQ", "uP", "eg", "cP", "pP", "mP", "AN", "fP", "pQ", "_w", "mQ", "fQ", "dP", "dQ", "hP", "hQ", "gP", "gQ", "xP", "xQ", "yP", "yQ", "bP", "bQ", "wP", "wQ", "CP", "CQ", "vP", "IP", "vQ", "SP", "IQ", "TP", "SQ", "TQ", "NP", "NQ", "kP", "kQ", "_P", "_Q", "EQ", "AQ", "EP", "$Q", "AP", "DQ", "$P", "RQ", "DP", "FQ", "RP", "OQ", "FP", "PQ", "OP", "LQ", "PP", "MQ", "LP", "zQ", "MP", "BQ", "zP", "VQ", "BP", "GQ", "VP", "GP", "WQ", "WP", "UQ", "UP", "HQ", "HP", "qQ", "qP", "KQ", "KP", "jQ", "jP", "XQ", "XP", "YQ", "YP", "ZQ", "ZP", "JQ", "JP", "ntt", "ott", "QP", "QQ", "ttt", "rtt", "ett", "rg", "stt", "tL", "itt", "eL", "att", "rL", "ltt", "oi", "xtt", "ig", "qN", "iL", "Fw", "Ct", "FN", "PN", "WN", "LN", "BN", "zN", "VN", "ON", "gl", "Cd", "aL", "XN", "htt", "HN", "UN", "xl", "ag", "KN", "YN", "sL", "jN", "Wn", "ZN", "JN", "_u", "QN", "Pw", "MN", "Rw", "ytt", "btt", "Ow", "gtt", "vd", "sg", "GN", "Uc", "Ew", "Gn", "ctt", "utt", "ku", "Hr", "Fr", "Hc", "nL", "ng", "ea", "oL", "og", "ptt", "mtt", "ftt", "hl", "dtt", "lL", "Aw", "$w", "Dw", "RN", "wtt", "Dt", "He", "si", "qc", "Ctt", "uL", "Sd", "Td", "Lw", "cL", "pL", "Mw", "vtt", "Ttt", "_tt", "Itt", "ktt", "Stt", "Ntt", "Dtt", "kd", "Utt", "qtt", "jtt", "Ytt", "Jtt", "Qtt", "tet", "mL", "Wtt", "Htt", "Ktt", "Xtt", "Ztt", "eet", "ret", "fL", "Rtt", "Vtt", "Ott", "Ltt", "Ftt", "Gtt", "Ptt", "Mtt", "ztt", "Btt", "Ett", "Att", "$tt", "Kc", "_d", "Ed", "Ad", "Wt", "hL", "tk", "dL", "gL", "xL", "ve", "zw", "Bw", "Vw", "Gw", "Ww", "Uw", "uk", "mk", "sk", "lk", "ok", "nk", "ak", "ik", "rk", "ek", "dk", "fk", "gk", "hk", "qw", "Xw", "Hw", "jw", "Kw", "ck", "pk", "lg", "set", "yL", "Yw", "bL", "wL", "CL", "vL", "IL", "SL", "TL", "NL", "kL", "_L", "EL", "AL", "$L", "DL", "RL", "FL", "OL", "PL", "LL", "ML", "zL", "BL", "VL", "GL", "WL", "UL", "HL", "qL", "Zw", "KL", "jL", "XL", "Jw", "YL", "ZL", "JL", "QL", "tM", "eM", "rM", "nM", "Xc", "oM", "yk", "tr", "sM", "Qw", "$d", "iet", "tC", "aM", "lM", "iM", "aet", "uet", "cet", "Zr", "fr", "uM", "bk", "cM", "pM", "mM", "Yc", "fM", "hM", "gM", "xM", "yM", "bM", "ro", "eC", "met", "fet", "det", "rC", "het", "get", "xet", "yet", "bet", "nC", "no", "Au", "Fo", "er", "vM", "An", "IM", "wk", "Ck", "wet", "SM", "vk", "Ik", "Cet", "TM", "Oo", "NM", "kM", "It", "ce", "yl", "Dd", "Sk", "ug", "_M", "cg", "EM", "AM", "lt", "$M", "pg", "oC", "Iet", "Un", "sC", "Tet", "iC", "$u", "DM", "Zc", "RM", "Le", "FM", "Tk", "Jc", "Net", "OM", "PM", "ket", "LM", "_et", "Eet", "MM", "Aet", "$et", "zM", "BM", "Det", "VM", "aC", "lC", "uC", "GM", "Ret", "WM", "Fet", "UM", "cC", "pC", "HM", "qM", "mC", "Oet", "KM", "Pet", "jM", "Let", "Met", "XM", "zet", "Bet", "YM", "Vet", "Get", "ZM", "Wet", "Uet", "Het", "JM", "qet", "Ket", "QM", "ii", "Du", "jet", "tz", "Xet", "ez", "fC", "dC", "Yet", "rz", "Zet", "nz", "Jet", "oz", "hC", "gC", "Qet", "sz", "xC", "trt", "Nk", "yC", "ert", "ai", "iz", "rrt", "az", "nrt", "lz", "ort", "uz", "srt", "kk", "cz", "bl", "pz", "irt", "mz", "_k", "fz", "dz", "art", "hz", "bC", "wC", "lrt", "gz", "CC", "xz", "urt", "yz", "vC", "SC", "IC", "Qc", "bz", "Rd", "crt", "Ek", "wz", "Fd", "TC", "Od", "NC", "kC", "_C", "EC", "prt", "Cz", "AC", "$C", "DC", "RC", "mrt", "vz", "frt", "Iz", "drt", "Sz", "hrt", "Tz", "grt", "Nz", "xrt", "yrt", "kz", "brt", "wrt", "_z", "FC", "Crt", "Ez", "tp", "mg", "Az", "$z", "OC", "vrt", "Dz", "Irt", "Rz", "Srt", "Fz", "PC", "Trt", "Oz", "Pd", "Ld", "Nrt", "Pz", "LC", "MC", "krt", "Lz", "_rt", "Mz", "zC", "Ert", "zz", "BC", "Art", "Bz", "$rt", "Vz", "Drt", "Rrt", "Frt", "Gz", "Ort", "Prt", "Lrt", "Wz", "Mrt", "zrt", "Brt", "Uz", "Vrt", "Grt", "Hz", "Wrt", "Urt", "Ak", "qz", "VC", "Kz", "jz", "Hrt", "Xz", "fg", "GC", "qrt", "Yz", "WC", "wl", "Zz", "UC", "Jz", "Qz", "Krt", "t3", "jrt", "Xrt", "Yrt", "e3", "HC", "qC", "r3", "Zrt", "Md", "$k", "Jrt", "n3", "Qrt", "o3", "KC", "tnt", "s3", "jC", "ent", "Dk", "i3", "rnt", "nnt", "ont", "a3", "snt", "int", "ant", "l3", "lnt", "u3", "unt", "cnt", "c3", "pnt", "mnt", "p3", "fnt", "dnt", "m3", "hnt", "gnt", "xnt", "f3", "ynt", "bnt", "wnt", "d3", "Cnt", "h3", "vnt", "Int", "Snt", "g3", "Tnt", "Nnt", "x3", "knt", "_nt", "Ent", "y3", "Ant", "$nt", "b3", "Dnt", "Rnt", "Fnt", "w3", "XC", "YC", "Ont", "C3", "ZC", "Pnt", "v3", "I3", "Rk", "S3", "Lnt", "Mnt", "znt", "T3", "Bnt", "N3", "Vnt", "k3", "JC", "QC", "Gnt", "_3", "Wnt", "E3", "A3", "$3", "D3", "R3", "Unt", "F3", "Hnt", "qnt", "Knt", "O3", "tv", "ev", "jnt", "P3", "Xnt", "Ynt", "Znt", "L3", "rv", "Jnt", "Qnt", "Fk", "M3", "z3", "Ok", "B3", "Pk", "V3", "tot", "G3", "eot", "rot", "not", "W3", "oot", "sot", "U3", "iot", "aot", "H3", "lot", "uot", "q3", "nv", "cot", "K3", "dg", "j3", "X3", "Y3", "pot", "Z3", "ov", "sv", "Lk", "J3", "mot", "fot", "dot", "Q3", "hot", "tB", "got", "eB", "Mk", "rB", "xot", "yot", "nB", "bot", "wot", "Cot", "oB", "vot", "Iot", "Sot", "sB", "iv", "av", "Tot", "iB", "lv", "Not", "aB", "uv", "cv", "kot", "lB", "pv", "_ot", "uB", "mv", "fv", "Eot", "cB", "dv", "pB", "Aot", "$ot", "mB", "Dot", "Rot", "fB", "zd", "Fot", "dB", "hv", "Oot", "hB", "gv", "Pot", "gB", "Lot", "Mot", "xB", "zot", "Bot", "Vot", "yB", "Got", "Wot", "bB", "Uot", "Hot", "wB", "qot", "Kot", "CB", "jot", "Xot", "vB", "Yot", "IB", "Zot", "SB", "Jot", "TB", "Qot", "NB", "tst", "kB", "est", "_B", "rst", "EB", "AB", "nst", "$B", "ost", "sst", "DB", "RB", "ist", "FB", "ast", "OB", "xv", "lst", "PB", "ust", "LB", "cst", "MB", "pst", "zB", "mst", "fst", "BB", "dst", "hst", "VB", "yv", "gst", "zk", "GB", "bv", "wv", "ep", "WB", "xst", "UB", "Cv", "yst", "HB", "bst", "qB", "wst", "KB", "vv", "Cst", "jB", "vst", "Zt", "Ru", "XB", "Ist", "Sst", "YB", "ae", "ZB", "pe", "Tst", "JB", "QB", "Nst", "kst", "tV", "rp", "eV", "rV", "_st", "oo", "Ast", "Est", "nV", "wn", "oV", "$st", "Dst", "sV", "iV", "Rst", "Fst", "aV", "lV", "Ost", "Pst", "uV", "cV", "Lst", "Mst", "pV", "lr", "mV", "fV", "zst", "Bst", "dV", "Po", "Vst", "Gst", "Wst", "hV", "Ust", "gV", "li", "xV", "yV", "bV", "Hst", "qst", "wV", "Bk", "CV", "vV", "Kst", "jst", "IV", "SV", "Xst", "Yst", "TV", "NV", "kV", "Vk", "_V", "Zst", "Jst", "EV", "AV", "Qst", "tit", "$V", "DV", "eit", "rit", "RV", "FV", "nit", "oit", "OV", "PV", "sit", "iit", "LV", "MV", "ait", "zV", "BV", "Iv", "VV", "Gk", "GV", "WV", "lit", "uit", "UV", "HV", "cit", "qV", "KV", "pit", "mit", "jV", "XV", "fit", "dit", "YV", "ZV", "hit", "git", "JV", "QV", "xit", "yit", "tG", "eG", "bit", "wit", "rG", "Cit", "nG", "vit", "oG", "sG", "Iit", "Sit", "iG", "Tit", "aG", "Nit", "lG", "uG", "kit", "cG", "pG", "_it", "mG", "Eit", "fG", "dG", "Ait", "$it", "hG", "Dit", "gG", "xG", "Rit", "Fit", "yG", "bG", "Oit", "Pit", "wG", "CG", "Lit", "Mit", "vG", "zit", "IG", "Wk", "SG", "Bit", "Vit", "TG", "Git", "NG", "kG", "Bd", "_G", "Wit", "Uit", "EG", "AG", "Hit", "qit", "$G", "DG", "Kit", "jit", "RG", "Xit", "FG", "OG", "Yit", "Zit", "PG", "Jit", "LG", "Qit", "MG", "zG", "tat", "eat", "Sv", "rat", "BG", "VG", "nat", "oat", "GG", "WG", "sat", "iat", "UG", "aat", "HG", "lat", "qG", "KG", "jG", "XG", "uat", "cat", "YG", "ZG", "pat", "mat", "JG", "QG", "fat", "dat", "tW", "eW", "hat", "gat", "rW", "nW", "oW", "sW", "xat", "yat", "iW", "aW", "bat", "wat", "lW", "uW", "Cat", "vat", "cW", "pW", "mW", "Iat", "Sat", "fW", "Tat", "dW", "hW", "Nat", "kat", "gW", "xW", "_at", "Eat", "yW", "bW", "Tv", "Nv", "Aat", "wW", "$at", "CW", "Dat", "vW", "IW", "SW", "Rat", "TW", "NW", "Fat", "Oat", "kW", "_W", "Pat", "Lat", "EW", "Mat", "AW", "zat", "$W", "Bat", "DW", "Vat", "RW", "FW", "Gat", "Wat", "OW", "PW", "LW", "MW", "Uat", "Hat", "zW", "BW", "qat", "Kat", "VW", "GW", "jat", "Xat", "WW", "Yat", "UW", "Zat", "HW", "Jat", "Uk", "Yk", "eU", "Zk", "QW", "Qat", "nU", "Xk", "elt", "tlt", "tU", "Ev", "xg", "rU", "gg", "Jk", "yg", "rlt", "llt", "ult", "clt", "plt", "mlt", "flt", "dlt", "hlt", "glt", "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", "Lt", "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", "G", "r", "g", "b", "avg_r", "Vi", "avg_g", "avg_b", "avg_rgb", "se", "ut", "padToSquare", "imgTensor", "isCenterImage", "G", "height", "width", "dimDiff", "paddingAmount", "paddingAxis", "createPaddingTensor", "paddingAmountLocal", "paddingTensorShape", "Vi", "paddingTensorAppend", "remainingPaddingAmount", "tensorsToStack", "t", "tt", "se", "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", "G", "xx", "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", "G", "inputTensors", "Lt", "imgTensor", "yr", "padToSquare", "uu", "xx", "imageToSquare", "sr", "t", "tt", "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", "G", "imgHeight", "imgWidth", "numChannels", "det", "FaceDetection", "box", "x", "y", "width", "height", "Em", "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", "vn", "matchDimensions", "input", "reference", "useMediaDimensions", "width", "height", "getMediaDimensions", "NeuralNetwork", "name", "paramPath", "obj", "objProp", "tensor", "param", "Ka", "path", "variable", "vr", "throwOnRedispose", "flat", "arr", "weightsOrUrl", "uri", "weightMap", "loadWeightMap", "filePath", "readFile", "env", "manifestUri", "modelBaseUri", "getModelUris", "fetchWeightsFromDisk", "filePaths", "fp", "buf", "loadWeights", "vn", "manifest", "paramMappings", "params", "weights", "result", "res", "Lt", "depthwiseSeparableConv", "x", "params", "stride", "G", "out", "Tm", "J", "denseBlock3", "x", "denseBlockParams", "isFirstLayer", "G", "out1", "Rr", "J", "Sn", "depthwiseSeparableConv", "out2", "in3", "out3", "denseBlock4", "isScaleDown", "in4", "out4", "convLayer", "x", "params", "padding", "withRelu", "G", "out", "J", "Sn", "Rr", "disposeUnusedWeightTensors", "weightMap", "paramMappings", "path", "pm", "extractConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "filterSize", "mappedPrefix", "filters", "HE", "bias", "Ve", "extractFCParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "fc_weights", "Ks", "fc_bias", "Ve", "SeparableConvParams", "depthwise_filter", "pointwise_filter", "bias", "extractSeparableConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "depthwise_filter", "HE", "pointwise_filter", "bias", "Ve", "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", "G", "batchTensor", "tt", "normalized", "normalize", "out", "denseBlock4", "Xl", "toNetInput", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "fullyConnectedLayer", "x", "params", "G", "J", "Gt", "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", "G", "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", "G", "su", "toNetInput", "netInput", "out", "probabilitesByBatch", "Tr", "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", "radians", "a1", "a2", "b1", "b2", "degrees", "theta", "angle", "pt", "bottom", "prev", "cur", "top", "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", "J", "Sn", "reductionBlock", "isActivateInput", "out", "Rr", "depthwiseSeparableConv", "eu", "mainBlock", "TinyXception", "NeuralNetwork", "numMainBlocks", "input", "G", "batchTensor", "tt", "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", "G", "bottleneckFeatures", "NetInput", "pooled", "Xl", "age", "fullyConnectedLayer", "gender", "su", "toNetInput", "netInput", "out", "ages", "Tr", "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", "G", "createInterleavedTensor", "fillX", "fillY", "sr", "Vi", "getPadding", "batchIdx", "cond", "getPaddingX", "w", "getPaddingY", "_", "input", "out", "toNetInput", "netInput", "landmarkTensors", "Tr", "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", "G", "batchTensor", "tt", "normalized", "normalize", "out", "denseBlock3", "Xl", "toNetInput", "weightMap", "extractParamsFromWeightMapTiny", "weights", "extractParamsTiny", "FaceLandmark68TinyNet", "FaceLandmark68NetBase", "faceFeatureExtractor", "TinyFaceFeatureExtractor", "FaceLandmarkNet", "FaceLandmark68Net", "scale", "x", "params", "J", "O", "convLayer", "x", "params", "strides", "withRelu", "padding", "filters", "bias", "out", "Sn", "J", "scale", "Rr", "conv", "convNoRelu", "convDown", "extractorsFactory", "extractWeights", "paramMappings", "extractFilterValues", "numFilterValues", "numFilters", "filterSize", "weights", "depth", "isFloat", "G", "Mt", "HE", "extractConvParams", "mappedPrefix", "filters", "bias", "Ve", "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", "Ks", "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", "J", "Rr", "residualDown", "convDown", "pooled", "Xl", "zeros", "_e", "isPad", "padShapeX", "zerosW", "se", "padShapeY", "zerosH", "FaceRecognitionNet", "NeuralNetwork", "input", "params", "G", "batchTensor", "tt", "normalized", "normalize", "out", "convDown", "eu", "residual", "residualDown", "globalAvg", "Gt", "toNetInput", "_a", "dim", "netInput", "faceDescriptorTensors", "Tr", "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", "HE", "batch_norm_scale", "Ve", "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", "gx", "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", "G", "out", "Sn", "J", "Ir", "epsilon", "depthwiseConvLayer", "x", "params", "strides", "G", "out", "zi", "Li", "Ir", "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", "Tr", "Mt", "sizes", "ut", "centers", "J", "ct", "decodeBoxesLayer", "x0", "x1", "div0_out", "O", "or", "add0_out", "div1_out", "add1_out", "sr", "outputLayer", "boxPredictions", "classPredictions", "params", "G", "batchSize", "boxes", "F", "$r", "scoresAndClasses", "Kr", "Ot", "scores", "boxesByBatch", "scoresByBatch", "boxPredictionLayer", "x", "params", "G", "batchSize", "boxPredictionEncoding", "F", "convLayer", "classPrediction", "predictionLayer", "x", "conv11", "params", "G", "conv0", "pointwiseConvLayer", "conv1", "conv2", "conv3", "conv4", "conv5", "conv6", "conv7", "boxPrediction0", "boxPredictionLayer", "boxPrediction1", "boxPrediction2", "boxPrediction3", "boxPrediction4", "boxPrediction5", "boxPredictions", "se", "classPredictions", "SsdMobilenetv1Options", "minConfidence", "maxResults", "SsdMobilenetv1", "NeuralNetwork", "input", "params", "G", "batchTensor", "tt", "x", "ut", "ct", "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", "G", "min", "O", "mt", "J", "Rr", "ut", "convWithBatchNorm", "x", "params", "G", "out", "cn", "Sn", "ut", "O", "J", "leaky", "depthwiseSeparableConv", "x", "params", "G", "out", "cn", "Tm", "J", "leaky", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractBatchNormParams", "size", "mappedPrefix", "sub", "Ve", "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", "eu", "convLayer", "leaky", "depthwiseSeparableConv", "input", "inputSize", "G", "batchTensor", "tt", "normalize", "toNetInput", "forwardParams", "scoreThreshold", "TinyYolov2Options", "netInput", "out0", "Tr", "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", "su", "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", "Lt", "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", "Lt", "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 wU=Object.create;var jv=Object.defineProperty;var CU=Object.getOwnPropertyDescriptor;var IU=Object.getOwnPropertyNames;var vU=Object.getPrototypeOf,SU=Object.prototype.hasOwnProperty;var $g=(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 dr=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Gt=(r,t)=>{for(var e in t)jv(r,e,{get:t[e],enumerable:!0})},NU=(r,t,e,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of IU(t))!SU.call(r,o)&&o!==e&&jv(r,o,{get:()=>t[o],enumerable:!(n=CU(t,o))||n.enumerable});return r};var Sl=(r,t,e)=>(e=r!=null?wU(vU(r)):{},NU(t||!r||!r.__esModule?jv(e,\"default\",{value:r,enumerable:!0}):e,r));var C1=dr((flt,w1)=>{w1.exports=We;var co=null;try{co=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 We(r,t,e){this.low=r|0,this.high=t|0,this.unsigned=!!e}We.prototype.__isLong__;Object.defineProperty(We.prototype,\"__isLong__\",{value:!0});function Dn(r){return(r&&r.__isLong__)===!0}We.isLong=Dn;var p1={},m1={};function Mu(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=m1[r],n)?n:(e=Ue(r,(r|0)<0?-1:0,!0),o&&(m1[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=p1[r],n)?n:(e=Ue(r,r<0?-1:0,!1),o&&(p1[r]=e),e))}We.fromInt=Mu;function po(r,t){if(isNaN(r))return t?Lu:mo;if(t){if(r<0)return Lu;if(r>=g1)return b1}else{if(r<=-d1)return $n;if(r+1>=d1)return y1}return r<0?po(-r,t).neg():Ue(r%Bp|0,r/Bp|0,t)}We.fromNumber=po;function Ue(r,t,e){return new We(r,t,e)}We.fromBits=Ue;var Og=Math.pow;function aS(r,t,e){if(r.length===0)throw Error(\"empty string\");if(r===\"NaN\"||r===\"Infinity\"||r===\"+Infinity\"||r===\"-Infinity\")return mo;if(typeof t==\"number\"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error(\"interior hyphen\");if(n===0)return aS(r.substring(1),t,e).neg();for(var o=po(Og(e,8)),s=mo,i=0;i>>0:this.low};gt.toNumber=function(){return this.unsigned?(this.high>>>0)*Bp+(this.low>>>0):this.high*Bp+(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($n)?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 Dn(t)||(t=Ps(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(Dn(t)||(t=Ps(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($n)?$n:this.not().add(zp)};gt.neg=gt.negate;gt.add=function(t){Dn(t)||(t=Ps(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,Ue(m<<16|f,c<<16|p,this.unsigned)};gt.subtract=function(t){return Dn(t)||(t=Ps(t)),this.add(t.neg())};gt.sub=gt.subtract;gt.multiply=function(t){if(this.isZero())return mo;if(Dn(t)||(t=Ps(t)),co){var e=co.mul(this.low,this.high,t.low,t.high);return Ue(e,co.get_high(),this.unsigned)}if(t.isZero())return mo;if(this.eq($n))return t.isOdd()?$n:mo;if(t.eq($n))return this.isOdd()?$n:mo;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(h1)&&t.lt(h1))return po(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,Ue(f<<16|d,p<<16|m,this.unsigned)};gt.mul=gt.multiply;gt.divide=function(t){if(Dn(t)||(t=Ps(t)),t.isZero())throw Error(\"division by zero\");if(co){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?co.div_u:co.div_s)(this.low,this.high,t.low,t.high);return Ue(e,co.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Lu:mo;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Lu;if(t.gt(this.shru(1)))return x1;s=Lu}else{if(this.eq($n)){if(t.eq(zp)||t.eq(iS))return $n;if(t.eq($n))return zp;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(mo)?t.isNegative()?zp:iS:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq($n))return this.unsigned?Lu:mo;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=mo}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:Og(2,a-48),l=po(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=po(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=zp),s=s.add(l),o=o.sub(c)}return s};gt.div=gt.divide;gt.modulo=function(t){if(Dn(t)||(t=Ps(t)),co){var e=(this.unsigned?co.rem_u:co.rem_s)(this.low,this.high,t.low,t.high);return Ue(e,co.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))};gt.mod=gt.modulo;gt.rem=gt.modulo;gt.not=function(){return Ue(~this.low,~this.high,this.unsigned)};gt.and=function(t){return Dn(t)||(t=Ps(t)),Ue(this.low&t.low,this.high&t.high,this.unsigned)};gt.or=function(t){return Dn(t)||(t=Ps(t)),Ue(this.low|t.low,this.high|t.high,this.unsigned)};gt.xor=function(t){return Dn(t)||(t=Ps(t)),Ue(this.low^t.low,this.high^t.high,this.unsigned)};gt.shiftLeft=function(t){return Dn(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ue(this.low<>>32-t,this.unsigned):Ue(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):Ue(this.high>>t-32,this.high>=0?0:-1,this.unsigned)};gt.shr=gt.shiftRight;gt.shiftRightUnsigned=function(t){if(Dn(t)&&(t=t.toInt()),t&=63,t===0)return this;var e=this.high;if(t<32){var n=this.low;return Ue(n>>>t|e<<32-t,e>>>t,this.unsigned)}else return t===32?Ue(e,0,this.unsigned):Ue(e>>>t-32,0,this.unsigned)};gt.shru=gt.shiftRightUnsigned;gt.shr_u=gt.shiftRightUnsigned;gt.toSigned=function(){return this.unsigned?Ue(this.low,this.high,!1):this};gt.toUnsigned=function(){return this.unsigned?this:Ue(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]};We.fromBytes=function(t,e,n){return n?We.fromBytesLE(t,e):We.fromBytesBE(t,e)};We.fromBytesLE=function(t,e){return new We(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)};We.fromBytesBE=function(t,e){return new We(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}});var eE=dr(()=>{});var rE=dr(()=>{});var o_=dr((n_,ZS)=>{(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})(n_,typeof ZS==\"object\"&&ZS,typeof define==\"function\"&&define)});var i_=dr((s_,JS)=>{(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})(s_,typeof JS==\"object\"&&JS,typeof define==\"function\"&&define)});var l_=dr((a_,QS)=>{(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})(a_,typeof QS==\"object\"&&QS,typeof define==\"function\"&&define)});var c_=dr((u_,t0)=>{(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})(u_,typeof t0==\"object\"&&t0,typeof define==\"function\"&&define)});var m_=dr((p_,e0)=>{(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})(p_,typeof e0==\"object\"&&e0,typeof define==\"function\"&&define)});var d_=dr((f_,r0)=>{(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})(f_,typeof r0==\"object\"&&r0,typeof define==\"function\"&&define)});var h_=dr(()=>{});var x_=dr((g_,Hx)=>{(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 XK=o_(),YK=i_(),ZK=l_(),JK=c_(),QK=m_(),tj=d_(),Ju=x_();Ju.alea=XK;Ju.xor128=YK;Ju.xorwow=ZK;Ju.xorshift7=JK;Ju.xor4096=QK;Ju.tychei=tj;y_.exports=Ju});var pN=dr(()=>{});var qb=dr(()=>{});var eg=dr(()=>{});var _W=dr(()=>{});var AW=dr(()=>{});var $W=dr(()=>{});var DW=dr((lI,AT)=>{var _T=(()=>{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!=Kt&&qe(it.buffer),Te}function n(){return it.buffer!=Kt&&qe(it.buffer),fe}function o(){return it.buffer!=Kt&&qe(it.buffer),Ae}function s(){return it.buffer!=Kt&&qe(it.buffer),En}function i(){return it.buffer!=Kt&&qe(it.buffer),nr}function a(){return it.buffer!=Kt&&qe(it.buffer),Wn}function u(){return it.buffer!=Kt&&qe(it.buffer),Or}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 Du)return;Y(\"exiting due to exception: \"+L)}if(w){b?N=eg().dirname(N)+\"/\":N=__dirname+\"/\";var G,W;typeof $g==\"function\"&&(G=qb(),W=eg()),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($t,ie){$t?xt($t):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 Du))throw U}),process.on(\"unhandledRejection\",function(U){throw U}),g=(U,ut)=>{if(Lo())throw process.exitCode=U,ut;V(ut),process.exit(U)},l.inspect=function(){return\"[Emscripten Module object]\"};let L;try{L=_W()}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=AW().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 Tt(L,U){L||Yc(U)}var _t=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function Bt(L,U,ut){for(var xt=U+ut,$t=U;L[$t]&&!($t>=xt);)++$t;if($t-U>16&&L.buffer&&_t)return _t.decode(L.buffer instanceof SharedArrayBuffer?L.slice(U,$t):L.subarray(U,$t));for(var ie=\"\";U<$t;){var Vt=L[U++];if(!(Vt&128)){ie+=String.fromCharCode(Vt);continue}var jt=L[U++]&63;if((Vt&224)==192){ie+=String.fromCharCode((Vt&31)<<6|jt);continue}var fr=L[U++]&63;if((Vt&240)==224?Vt=(Vt&15)<<12|jt<<6|fr:Vt=(Vt&7)<<18|jt<<12|fr<<6|L[U++]&63,Vt<65536)ie+=String.fromCharCode(Vt);else{var Kn=Vt-65536;ie+=String.fromCharCode(55296|Kn>>10,56320|Kn&1023)}}return ie}function Yt(L,U){return L?Bt(n(),L,U):\"\"}function ce(L,U,ut,xt){if(!(xt>0))return 0;for(var $t=ut,ie=ut+xt-1,Vt=0;Vt=55296&&jt<=57343){var fr=L.charCodeAt(++Vt);jt=65536+((jt&1023)<<10)|fr&1023}if(jt<=127){if(ut>=ie)break;U[ut++]=jt}else if(jt<=2047){if(ut+1>=ie)break;U[ut++]=192|jt>>6,U[ut++]=128|jt&63}else if(jt<=65535){if(ut+2>=ie)break;U[ut++]=224|jt>>12,U[ut++]=128|jt>>6&63,U[ut++]=128|jt&63}else{if(ut+3>=ie)break;U[ut++]=240|jt>>18,U[ut++]=128|jt>>12&63,U[ut++]=128|jt>>6&63,U[ut++]=128|jt&63}}return U[ut]=0,ut-$t}function he(L,U,ut){return ce(L,n(),U,ut)}var Kt,Te,fe,Ae,Ge,En,nr,Wn,Or;C&&(Kt=l.buffer);function qe(L){Kt=L,l.HEAP8=Te=new Int8Array(L),l.HEAP16=Ae=new Int16Array(L),l.HEAP32=En=new Int32Array(L),l.HEAPU8=fe=new Uint8Array(L),l.HEAPU16=Ge=new Uint16Array(L),l.HEAPU32=nr=new Uint32Array(L),l.HEAPF32=Wn=new Float32Array(L),l.HEAPF64=Or=new Float64Array(L)}var Pr=l.INITIAL_MEMORY||16777216;if(C)it=l.wasmMemory,Kt=l.buffer;else if(l.wasmMemory)it=l.wasmMemory;else if(it=new WebAssembly.Memory({initial:Pr/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&&(Kt=it.buffer),Pr=Kt.byteLength,qe(Kt);var Lr,Un=[],Hn=[],jr=[],Xi=!1;function Lo(){return nt}function wl(){if(l.preRun)for(typeof l.preRun==\"function\"&&(l.preRun=[l.preRun]);l.preRun.length;)_d(l.preRun.shift());Fd(Un)}function Nr(){Xi=!0,!C&&Fd(Hn)}function Yi(){if(!C){if(l.postRun)for(typeof l.postRun==\"function\"&&(l.postRun=[l.postRun]);l.postRun.length;)LT(l.postRun.shift());Fd(jr)}}function _d(L){Un.unshift(L)}function Ad(L){Hn.unshift(L)}function LT(L){jr.unshift(L)}var Cl=0,Xc=null,Zi=null;function MT(L){Cl++,l.monitorRunDependencies&&l.monitorRunDependencies(Cl)}function zT(L){if(Cl--,l.monitorRunDependencies&&l.monitorRunDependencies(Cl),Cl==0&&(Xc!==null&&(clearInterval(Xc),Xc=null),Zi)){var U=Zi;Zi=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 pI=\"data:application/octet-stream;base64,\";function ig(L){return L.startsWith(pI)}function $d(L){return L.startsWith(\"file://\")}var en;en=\"tfjs-backend-wasm-threaded-simd.wasm\",ig(en)||(en=_(en));function ag(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 mI(){if(!at&&(x||b)){if(typeof fetch==\"function\"&&!$d(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 ag(en)});if($)return new Promise(function(L,U){$(en,function(ut){L(new Uint8Array(ut))},U)})}return Promise.resolve().then(function(){return ag(en)})}function fI(){var L={env:bg,wasi_snapshot_preview1:bg};function U(Vt,jt){var fr=Vt.exports;if(l.asm=fr,vI(l.asm._emscripten_tls_init),Lr=l.asm.__indirect_function_table,Ad(l.asm.__wasm_call_ctors),dt=jt,!C){var Kn=qt.unusedWorkers.length;qt.unusedWorkers.forEach(function(Qi){qt.loadWasmModuleToWorker(Qi,function(){--Kn||zT(\"wasm-instantiate\")})})}}C||MT(\"wasm-instantiate\");function ut(Vt){U(Vt.instance,Vt.module)}function xt(Vt){return mI().then(function(jt){return WebAssembly.instantiate(jt,L)}).then(function(jt){return jt}).then(Vt,function(jt){Y(\"failed to asynchronously prepare wasm: \"+jt),Yc(jt)})}function $t(){return!at&&typeof WebAssembly.instantiateStreaming==\"function\"&&!ig(en)&&!$d(en)&&!w&&typeof fetch==\"function\"?fetch(en,{credentials:\"same-origin\"}).then(function(Vt){var jt=WebAssembly.instantiateStreaming(Vt,L);return jt.then(ut,function(fr){return Y(\"wasm streaming compile failed: \"+fr),Y(\"falling back to ArrayBuffer instantiation\"),xt(ut)})}):xt(ut)}if(l.instantiateWasm)try{var ie=l.instantiateWasm(L,U);return ie}catch(Vt){Y(\"Module.instantiateWasm callback failed with error: \"+Vt),p(Vt)}return $t().catch(p),{}}var dI,BT,hI={};function Du(L){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+L+\")\",this.status=L}function gI(L){var U=qt.pthreads[L];delete qt.pthreads[L],U.terminate(),Hv(L),qt.runningWorkers.splice(qt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function xI(L){var U=qt.pthreads[L];U.postMessage({cmd:\"cancel\"})}function Dd(L){var U=qt.pthreads[L];Tt(U),qt.returnWorkerToPool(U)}function lg(L){var U=qt.getNewWorker();if(!U)return 6;qt.runningWorkers.push(U),qt.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 ug={varargs:void 0,get:function(){ug.varargs+=4;var L=s()[ug.varargs-4>>2];return L},getStr:function(L){var U=Yt(L);return U}};function Rd(L){if(C)return Il(1,1,L);bt=L,Lo()||(qt.terminateAllThreads(),l.onExit&&l.onExit(L),ht=!0),g(L,new Du(L))}function VT(L,U){if(bt=L,!U&&C)throw pg(L),\"unwind\";Rd(L)}var cg=VT;function yI(L){if(L instanceof Du||L==\"unwind\")return bt;g(1,L)}var qt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?qt.initWorker():qt.initMainThread()},initMainThread:function(){for(var L=8;L--;)qt.allocateUnusedWorker()},initWorker:function(){nt=!1},setExitStatus:function(L){bt=L},terminateAllThreads:function(){for(var L of Object.values(qt.pthreads))qt.returnWorkerToPool(L);for(var L of qt.unusedWorkers)L.terminate();qt.unusedWorkers=[]},returnWorkerToPool:function(L){var U=L.pthread_ptr;delete qt.pthreads[U],qt.unusedWorkers.push(L),qt.runningWorkers.splice(qt.runningWorkers.indexOf(L),1),L.pthread_ptr=0,Hv(U)},receiveObjectTransfer:function(L){},threadInitTLS:function(){qt.tlsInitFunctions.forEach(L=>L())},loadWasmModuleToWorker:function(L,U){L.onmessage=ut=>{var xt=ut.data,$t=xt.cmd;if(L.pthread_ptr&&(qt.currentProxiedOperationCallerThread=L.pthread_ptr),xt.targetThread&&xt.targetThread!=Ng()){var ie=qt.pthreads[xt.targetThread];ie?ie.postMessage(xt,xt.transferList):Y('Internal error! Worker sent a message \"'+$t+'\" to target pthread '+xt.targetThread+\", but that thread no longer exists!\"),qt.currentProxiedOperationCallerThread=void 0;return}$t===\"processProxyingQueue\"?Od(xt.queue):$t===\"spawnThread\"?lg(xt):$t===\"cleanupThread\"?Dd(xt.thread):$t===\"killThread\"?gI(xt.thread):$t===\"cancelThread\"?xI(xt.thread):$t===\"loaded\"?(L.loaded=!0,U&&U(L),L.runPthread&&(L.runPthread(),delete L.runPthread)):$t===\"print\"?j(\"Thread \"+xt.threadId+\": \"+xt.text):$t===\"printErr\"?Y(\"Thread \"+xt.threadId+\": \"+xt.text):$t===\"alert\"?alert(\"Thread \"+xt.threadId+\": \"+xt.text):xt.target===\"setimmediate\"?L.postMessage(xt):$t===\"onAbort\"?l.onAbort&&l.onAbort(xt.arg):$t&&Y(\"worker sent an unknown command \"+$t),qt.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\");qt.unusedWorkers.push(new Worker(L))},getNewWorker:function(){return qt.unusedWorkers.length==0&&(qt.allocateUnusedWorker(),qt.loadWasmModuleToWorker(qt.unusedWorkers[0])),qt.unusedWorkers.pop()}};l.PThread=qt;function Fd(L){for(;L.length>0;)L.shift()(l)}function bI(L){var U=qv(),ut=L();return kg(U),ut}function GT(L){return L}function WT(L){var U=/\\b_Z[\\w\\d_]+/g;return L.replace(U,function(ut){var xt=ut;return ut===xt?ut:xt+\" [\"+ut+\"]\"})}function wI(){var L=Ng(),U=s()[L+44>>2],ut=s()[L+48>>2],xt=U-ut;YT(U,xt),kg(U)}l.establishStackSpace=wI;function pg(L){if(C)return Il(2,0,L);try{cg(L)}catch(U){yI(U)}}var Zc=[];function CI(L){var U=Zc[L];return U||(L>=Zc.length&&(Zc.length=L+1),Zc[L]=U=Lr.get(L)),U}function II(L,U){var ut=CI(L)(U);Lo()?qt.setExitStatus(ut):XT(ut)}l.invokeEntryPoint=II;function UT(){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 vI(L){qt.tlsInitFunctions.push(L)}function SI(L,U){e().set(L,U)}function NI(L){qT(L,!b,1,!x),qt.threadInitTLS()}function kI(L){C?postMessage({cmd:\"cleanupThread\",thread:L}):Dd(L)}function mg(L,U,ut,xt){return C?Il(3,1,L,U,ut,xt):fg(L,U,ut,xt)}function fg(L,U,ut,xt){if(typeof SharedArrayBuffer==\"undefined\")return Y(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\"),6;var $t=[],ie=0;if(C&&($t.length===0||ie))return mg(L,U,ut,xt);if(ie)return ie;var Vt={startRoutine:ut,pthread_ptr:L,arg:xt,transferList:$t};return C?(Vt.cmd=\"spawnThread\",postMessage(Vt,$t),0):lg(Vt)}function TI(){return 2097152}var EI=!0;function _I(){return EI}function Od(L){Atomics.store(s(),L>>2,1),Ng()&&jT(L),Atomics.compareExchange(s(),L>>2,1,0)}l.executeNotifiedProxyingQueue=Od;function AI(L,U,ut,xt){if(L==U)setTimeout(()=>Od(xt));else if(C)postMessage({targetThread:L,cmd:\"processProxyingQueue\",queue:xt});else{var $t=qt.pthreads[L];if(!$t)return;$t.postMessage({cmd:\"processProxyingQueue\",queue:xt})}return 1}function $I(L,U,ut){return-1}function DI(){Yc(\"\")}function Ru(L){Ru.shown||(Ru.shown={}),Ru.shown[L]||(Ru.shown[L]=1,w&&(L=\"warning: \"+L),Y(L))}function RI(){w||b||Ru(\"Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread\")}function FI(){return Date.now()}function dg(){return 2147483648}function OI(){return dg()}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 PI(L,U,ut){n().copyWithin(L,U,U+ut)}function LI(){return w?$W().cpus().length:navigator.hardwareConcurrency}function Il(L,U){var ut=arguments.length-2,xt=arguments;return bI(()=>{for(var $t=ut,ie=Tg($t*8),Vt=ie>>3,jt=0;jt>3,$t=0;$t>>16),qe(it.buffer),1}catch(U){}}function BI(L){var U=n().length;if(L=L>>>0,L<=U)return!1;var ut=dg();if(L>ut)return!1;let xt=(fr,Kn)=>fr+(Kn-fr%Kn)%Kn;for(var $t=1;$t<=4;$t*=2){var ie=U*(1+.2/$t);ie=Math.min(ie,L+100663296);var Vt=Math.min(ut,xt(Math.max(L,ie),65536)),jt=zI(Vt);if(jt)return!0}return!1}function VI(){throw\"unwind\"}function hg(L){return C?Il(4,1,L):52}function gg(L,U,ut,xt,$t){return C?Il(5,1,L,U,ut,xt,$t):70}var GI=[null,[],[]];function WI(L,U){var ut=GI[L];U===0||U===10?((L===1?j:Y)(Bt(ut,0)),ut.length=0):ut.push(U)}function xg(L,U,ut,xt){if(C)return Il(6,1,L,U,ut,xt);for(var $t=0,ie=0;ie>2],jt=i()[U+4>>2];U+=8;for(var fr=0;fr>2]=$t,0}function yg(L){var U=l[\"_\"+L];return U}function UI(L,U,ut,xt,$t){var ie={string:_n=>{var rp=0;if(_n!=null&&_n!==0){var QT=(_n.length<<2)+1;rp=Tg(QT),he(_n,rp,QT)}return rp},array:_n=>{var rp=Tg(_n.length);return SI(_n,rp),rp}};function Vt(_n){return U===\"string\"?Yt(_n):U===\"boolean\"?Boolean(_n):_n}var jt=yg(L),fr=[],Kn=0;if(xt)for(var Qi=0;QiVt===\"number\"||Vt===\"boolean\"),ie=U!==\"string\";return ie&&$t&&!xt?yg(L):function(){return UI(L,U,ut,arguments,xt)}}qt.init();var qI=[null,Rd,pg,mg,hg,gg,xg],bg={__emscripten_init_main_thread_js:NI,__emscripten_thread_cleanup:kI,__pthread_create_js:fg,_emscripten_default_pthread_stack_size:TI,_emscripten_get_now_is_monotonic:_I,_emscripten_notify_task_queue:AI,_emscripten_set_offscreencanvas_size:$I,abort:DI,emscripten_check_blocking_allowed:RI,emscripten_date_now:FI,emscripten_get_heap_max:OI,emscripten_get_now:Jc,emscripten_memcpy_big:PI,emscripten_num_logical_cores:LI,emscripten_receive_on_main_thread_js:MI,emscripten_resize_heap:BI,emscripten_unwind_to_js_event_loop:VI,exit:cg,fd_close:hg,fd_seek:gg,fd_write:xg,memory:it||l.wasmMemory},HT=fI(),KI=l.___wasm_call_ctors=function(){return(KI=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},jI=l._init=function(){return(jI=l._init=l.asm.init).apply(null,arguments)},XI=l._init_with_threads_count=function(){return(XI=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},YI=l._get_threads_count=function(){return(YI=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},ZI=l._register_tensor=function(){return(ZI=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},JI=l._dispose_data=function(){return(JI=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},QI=l._dispose=function(){return(QI=l._dispose=l.asm.dispose).apply(null,arguments)},tv=l._Abs=function(){return(tv=l._Abs=l.asm.Abs).apply(null,arguments)},ev=l._Add=function(){return(ev=l._Add=l.asm.Add).apply(null,arguments)},rv=l._AddN=function(){return(rv=l._AddN=l.asm.AddN).apply(null,arguments)},nv=l._All=function(){return(nv=l._All=l.asm.All).apply(null,arguments)},ov=l._Any=function(){return(ov=l._Any=l.asm.Any).apply(null,arguments)},sv=l._ArgMax=function(){return(sv=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},iv=l._AvgPool=function(){return(iv=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},av=l._BatchMatMul=function(){return(av=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},lv=l._Ceil=function(){return(lv=l._Ceil=l.asm.Ceil).apply(null,arguments)},uv=l._ClipByValue=function(){return(uv=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},cv=l._Conv2D=function(){return(cv=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},pv=l._Conv2DBackpropInput=function(){return(pv=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},mv=l._Cos=function(){return(mv=l._Cos=l.asm.Cos).apply(null,arguments)},fv=l._Cosh=function(){return(fv=l._Cosh=l.asm.Cosh).apply(null,arguments)},dv=l._CropAndResize=function(){return(dv=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},hv=l._Cumprod=function(){return(hv=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},gv=l._Cumsum=function(){return(gv=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},xv=l._DepthToSpace=function(){return(xv=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},yv=l._DepthwiseConv2dNative=function(){return(yv=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},bv=l._Elu=function(){return(bv=l._Elu=l.asm.Elu).apply(null,arguments)},wv=l._Equal=function(){return(wv=l._Equal=l.asm.Equal).apply(null,arguments)},Cv=l._Exp=function(){return(Cv=l._Exp=l.asm.Exp).apply(null,arguments)},Iv=l._FlipLeftRight=function(){return(Iv=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},vv=l._Floor=function(){return(vv=l._Floor=l.asm.Floor).apply(null,arguments)},Sv=l._FloorDiv=function(){return(Sv=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},Nv=l._FusedBatchNorm=function(){return(Nv=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},kv=l._FusedConv2D=function(){return(kv=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},Tv=l._FusedDepthwiseConv2D=function(){return(Tv=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},Ev=l._Gather=function(){return(Ev=l._Gather=l.asm.Gather).apply(null,arguments)},_v=l._GatherNd=function(){return(_v=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},Av=l._Greater=function(){return(Av=l._Greater=l.asm.Greater).apply(null,arguments)},$v=l._GreaterEqual=function(){return($v=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},Dv=l._LeakyRelu=function(){return(Dv=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},Rv=l._Less=function(){return(Rv=l._Less=l.asm.Less).apply(null,arguments)},Fv=l._LessEqual=function(){return(Fv=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},Ov=l._Log=function(){return(Ov=l._Log=l.asm.Log).apply(null,arguments)},Pv=l._LogicalAnd=function(){return(Pv=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},Lv=l._LogicalNot=function(){return(Lv=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},Mv=l._LogicalOr=function(){return(Mv=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},zv=l._LogicalXor=function(){return(zv=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},Bv=l._Max=function(){return(Bv=l._Max=l.asm.Max).apply(null,arguments)},wg=l._MaxPool=function(){return(wg=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},Cg=l._Maximum=function(){return(Cg=l._Maximum=l.asm.Maximum).apply(null,arguments)},Ld=l._Mean=function(){return(Ld=l._Mean=l.asm.Mean).apply(null,arguments)},Vv=l._Min=function(){return(Vv=l._Min=l.asm.Min).apply(null,arguments)},Gv=l._Minimum=function(){return(Gv=l._Minimum=l.asm.Minimum).apply(null,arguments)},Qc=l._MirrorPad=function(){return(Qc=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},Ig=l._Multiply=function(){return(Ig=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)},Wv=l._NonMaxSuppressionV4=function(){return(Wv=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)},Et=l._OneHot=function(){return(Et=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)},mr=l._Relu=function(){return(mr=l._Relu=l.asm.Relu).apply(null,arguments)},qn=l._Relu6=function(){return(qn=l._Relu6=l.asm.Relu6).apply(null,arguments)},Ji=l._ResizeBilinear=function(){return(Ji=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},vg=l._ResizeNearestNeighbor=function(){return(vg=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Md=l._Reverse=function(){return(Md=l._Reverse=l.asm.Reverse).apply(null,arguments)},Uv=l._RotateWithOffset=function(){return(Uv=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},rn=l._Round=function(){return(rn=l._Round=l.asm.Round).apply(null,arguments)},vl=l._Rsqrt=function(){return(vl=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},Sg=l._ScatterNd=function(){return(Sg=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},VW=l._SelectV2=function(){return(VW=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},GW=l._Sigmoid=function(){return(GW=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},WW=l._Sin=function(){return(WW=l._Sin=l.asm.Sin).apply(null,arguments)},UW=l._Softmax=function(){return(UW=l._Softmax=l.asm.Softmax).apply(null,arguments)},HW=l._SparseFillEmptyRows=function(){return(HW=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},qW=l._SparseReshape=function(){return(qW=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},KW=l._SparseSegmentReduction=function(){return(KW=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},jW=l._Sqrt=function(){return(jW=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},XW=l._Square=function(){return(XW=l._Square=l.asm.Square).apply(null,arguments)},YW=l._SquaredDifference=function(){return(YW=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},ZW=l._Step=function(){return(ZW=l._Step=l.asm.Step).apply(null,arguments)},JW=l._StridedSlice=function(){return(JW=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},QW=l._Sub=function(){return(QW=l._Sub=l.asm.Sub).apply(null,arguments)},tU=l._Sum=function(){return(tU=l._Sum=l.asm.Sum).apply(null,arguments)},eU=l._Tan=function(){return(eU=l._Tan=l.asm.Tan).apply(null,arguments)},rU=l._Tanh=function(){return(rU=l._Tanh=l.asm.Tanh).apply(null,arguments)},nU=l._Tile=function(){return(nU=l._Tile=l.asm.Tile).apply(null,arguments)},oU=l._TopK=function(){return(oU=l._TopK=l.asm.TopK).apply(null,arguments)},sU=l._Transform=function(){return(sU=l._Transform=l.asm.Transform).apply(null,arguments)},iU=l._Transpose=function(){return(iU=l._Transpose=l.asm.Transpose).apply(null,arguments)},aU=l.__FusedMatMul=function(){return(aU=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},lU=l._malloc=function(){return(lU=l._malloc=l.asm.malloc).apply(null,arguments)},uU=l._free=function(){return(uU=l._free=l.asm.free).apply(null,arguments)},cU=l.__emscripten_tls_init=function(){return(cU=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},Ng=l._pthread_self=function(){return(Ng=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},pU=l.___errno_location=function(){return(pU=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},qT=l.__emscripten_thread_init=function(){return(qT=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},mU=l.__emscripten_thread_crashed=function(){return(mU=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},fU=l._emscripten_main_thread_process_queued_calls=function(){return(fU=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},dU=l._emscripten_main_browser_thread_id=function(){return(dU=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},KT=l._emscripten_run_in_main_runtime_thread_js=function(){return(KT=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},hU=l._emscripten_dispatch_to_thread_=function(){return(hU=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},jT=l.__emscripten_proxy_execute_task_queue=function(){return(jT=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},Hv=l.__emscripten_thread_free_data=function(){return(Hv=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},XT=l.__emscripten_thread_exit=function(){return(XT=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},YT=l._emscripten_stack_set_limits=function(){return(YT=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},qv=l.stackSave=function(){return(qv=l.stackSave=l.asm.stackSave).apply(null,arguments)},kg=l.stackRestore=function(){return(kg=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Tg=l.stackAlloc=function(){return(Tg=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},gU=l.dynCall_iijjiiii=function(){return(gU=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},xU=l.dynCall_jiji=function(){return(xU=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=Lo,l.wasmMemory=it,l.cwrap=HI,l.ExitStatus=Du,l.PThread=qt;var Eg;Zi=function L(){Eg||ZT(),Eg||(Zi=L)};function ZT(L){if(L=L||d,Cl>0)return;if(C){c(l),Nr(),postMessage({cmd:\"loaded\"});return}if(wl(),Cl>0)return;function U(){Eg||(Eg=!0,l.calledRun=!0,!ht&&(Nr(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),Yi()))}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()();ZT();var _g;m&&(_g={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 Ag;if(typeof WasmBackendModule!=\"undefined\")Ag=WasmBackendModule;else if(typeof t!=\"undefined\")Ag=t;else throw new Error(\"Could not find wasm module in post.js\");if(_g){var yU=Ag._dispose;Ag._dispose=function(){yU(),_g.uncaughtException.forEach(function(L){process.removeListener(\"uncaughtException\",L)}),_g.unhandledRejection.forEach(function(L){process.removeListener(\"unhandledRejection\",L)})}}return t.ready}})();typeof lI==\"object\"&&typeof AT==\"object\"?AT.exports=_T:typeof define==\"function\"&&define.amd?define([],function(){return _T}):typeof lI==\"object\"&&(lI.WasmBackendModuleThreadedSimd=_T)});var FW=dr((HXe,RW)=>{RW.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 OW=dr((uI,DT)=>{var $T=(()=>{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=eg().dirname(f)+\"/\":f=__dirname+\"/\";var C,N;typeof $g==\"function\"&&(C=qb(),N=eg()),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,Et)=>{K=N.normalize(K),C.readFile(K,function(re,Ke){re?Et(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,Et)=>{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}Et()},re.onerror=Et,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\"&&jr(\"no native wasm support detected\");var V,G=!1,W;function q(K,lt){K||jr(lt)}var H=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function j(K,lt,Et){for(var re=lt+Et,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|qn&1023)}}return je}function Y(K,lt){return K?j(at,K,lt):\"\"}function Z(K,lt,Et,re){if(!(re>0))return 0;for(var Ke=Et,je=Et+re-1,ee=0;ee=55296&&te<=57343){var mr=K.charCodeAt(++ee);te=65536+((te&1023)<<10)|mr&1023}if(te<=127){if(Et>=je)break;lt[Et++]=te}else if(te<=2047){if(Et+1>=je)break;lt[Et++]=192|te>>6,lt[Et++]=128|te&63}else if(te<=65535){if(Et+2>=je)break;lt[Et++]=224|te>>12,lt[Et++]=128|te>>6&63,lt[Et++]=128|te&63}else{if(Et+3>=je)break;lt[Et++]=240|te>>18,lt[Et++]=128|te>>12&63,lt[Et++]=128|te>>6&63,lt[Et++]=128|te&63}}return lt[Et]=0,Et-Ke}function et(K,lt,Et){return Z(K,at,lt,Et)}var rt,ot,at,nt,it,dt,ht,bt,Tt;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=it=new Uint16Array(K),e.HEAPU32=ht=new Uint32Array(K),e.HEAPF32=bt=new Float32Array(K),e.HEAPF64=Tt=new Float64Array(K)}var Bt=e.INITIAL_MEMORY||16777216,Yt,ce=[],he=[],Kt=[],Te=!1;function fe(){return P}function Ae(){if(e.preRun)for(typeof e.preRun==\"function\"&&(e.preRun=[e.preRun]);e.preRun.length;)nr(e.preRun.shift());Zi(ce)}function Ge(){Te=!0,Zi(he)}function En(){if(e.postRun)for(typeof e.postRun==\"function\"&&(e.postRun=[e.postRun]);e.postRun.length;)Or(e.postRun.shift());Zi(Kt)}function nr(K){ce.unshift(K)}function Wn(K){he.unshift(K)}function Or(K){Kt.unshift(K)}var qe=0,Pr=null,Lr=null;function Un(K){qe++,e.monitorRunDependencies&&e.monitorRunDependencies(qe)}function Hn(K){if(qe--,e.monitorRunDependencies&&e.monitorRunDependencies(qe),qe==0&&(Pr!==null&&(clearInterval(Pr),Pr=null),Lr)){var lt=Lr;Lr=null,lt()}}function jr(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 Xi=\"data:application/octet-stream;base64,\";function Lo(K){return K.startsWith(Xi)}function wl(K){return K.startsWith(\"file://\")}var Nr;Nr=\"tfjs-backend-wasm.wasm\",Lo(Nr)||(Nr=d(Nr));function Yi(K){try{if(K==Nr&&F)return new Uint8Array(F);if(x)return x(K);throw\"both async and sync fetching of the wasm failed\"}catch(lt){jr(lt)}}function _d(){if(!F&&(c||p)){if(typeof fetch==\"function\"&&!wl(Nr))return fetch(Nr,{credentials:\"same-origin\"}).then(function(K){if(!K.ok)throw\"failed to load wasm binary file at '\"+Nr+\"'\";return K.arrayBuffer()}).catch(function(){return Yi(Nr)});if(g)return new Promise(function(K,lt){g(Nr,function(Et){K(new Uint8Array(Et))},lt)})}return Promise.resolve().then(function(){return Yi(Nr)})}function Ad(){var K={env:Rd,wasi_snapshot_preview1:Rd};function lt(ee,te){var mr=ee.exports;e.asm=mr,V=e.asm.memory,_t(V.buffer),Yt=e.asm.__indirect_function_table,Wn(e.asm.__wasm_call_ctors),Hn(\"wasm-instantiate\")}Un(\"wasm-instantiate\");function Et(ee){lt(ee.instance)}function re(ee){return _d().then(function(te){return WebAssembly.instantiate(te,K)}).then(function(te){return te}).then(ee,function(te){A(\"failed to asynchronously prepare wasm: \"+te),jr(te)})}function Ke(){return!F&&typeof WebAssembly.instantiateStreaming==\"function\"&&!Lo(Nr)&&!wl(Nr)&&!m&&typeof fetch==\"function\"?fetch(Nr,{credentials:\"same-origin\"}).then(function(ee){var te=WebAssembly.instantiateStreaming(ee,K);return te.then(Et,function(mr){return A(\"wasm streaming compile failed: \"+mr),A(\"falling back to ArrayBuffer instantiation\"),re(Et)})}):re(Et)}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 LT,Cl;function Xc(K){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+K+\")\",this.status=K}function Zi(K){for(;K.length>0;)K.shift()(e)}function MT(K){return K}function zT(K){var lt=/\\b_Z[\\w\\d_]+/g;return K.replace(lt,function(Et){var re=Et;return Et===re?Et:re+\" [\"+Et+\"]\"})}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 pI(K,lt){ot.set(K,lt)}function ig(){jr(\"\")}function $d(){return 2147483648}function en(){return $d()}function ag(K,lt,Et){at.copyWithin(K,lt,lt+Et)}function mI(K){try{return V.grow(K-rt.byteLength+65535>>>16),_t(V.buffer),1}catch(lt){}}function fI(K){var lt=at.length;K=K>>>0;var Et=$d();if(K>Et)return!1;let re=(mr,qn)=>mr+(qn-mr%qn)%qn;for(var Ke=1;Ke<=4;Ke*=2){var je=lt*(1+.2/Ke);je=Math.min(je,K+100663296);var ee=Math.min(Et,re(Math.max(K,je),65536)),te=mI(ee);if(te)return!0}return!1}var dI={varargs:void 0,get:function(){dI.varargs+=4;var K=dt[dI.varargs-4>>2];return K},getStr:function(K){var lt=Y(K);return lt}};function BT(K){return 52}function hI(K,lt,Et,re,Ke){return 70}var Du=[null,[],[]];function gI(K,lt){var Et=Du[K];lt===0||lt===10?((K===1?_:A)(j(Et,0)),Et.length=0):Et.push(lt)}function xI(K,lt,Et,re){for(var Ke=0,je=0;je>2],te=ht[lt+4>>2];lt+=8;for(var mr=0;mr>2]=Ke,0}function Dd(K){var lt=e[\"_\"+K];return lt}function lg(K,lt,Et,re,Ke){var je={string:rn=>{var vl=0;if(rn!=null&&rn!==0){var Sg=(rn.length<<2)+1;vl=Ld(Sg),et(rn,vl,Sg)}return vl},array:rn=>{var vl=Ld(rn.length);return pI(rn,vl),vl}};function ee(rn){return lt===\"string\"?Y(rn):lt===\"boolean\"?Boolean(rn):rn}var te=Dd(K),mr=[],qn=0;if(re)for(var Ji=0;Jiee===\"number\"||ee===\"boolean\"),je=lt!==\"string\";return je&&Ke&&!re?Dd(K):function(){return lg(K,lt,Et,arguments,re)}}var Rd={abort:ig,emscripten_get_heap_max:en,emscripten_memcpy_big:ag,emscripten_resize_heap:fI,fd_close:BT,fd_seek:hI,fd_write:xI},VT=Ad(),cg=e.___wasm_call_ctors=function(){return(cg=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},yI=e._init=function(){return(yI=e._init=e.asm.init).apply(null,arguments)},qt=e._init_with_threads_count=function(){return(qt=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},Fd=e._get_threads_count=function(){return(Fd=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},bI=e._register_tensor=function(){return(bI=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},GT=e._dispose_data=function(){return(GT=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},WT=e._dispose=function(){return(WT=e._dispose=e.asm.dispose).apply(null,arguments)},wI=e._Abs=function(){return(wI=e._Abs=e.asm.Abs).apply(null,arguments)},pg=e._Add=function(){return(pg=e._Add=e.asm.Add).apply(null,arguments)},Zc=e._AddN=function(){return(Zc=e._AddN=e.asm.AddN).apply(null,arguments)},CI=e._All=function(){return(CI=e._All=e.asm.All).apply(null,arguments)},II=e._Any=function(){return(II=e._Any=e.asm.Any).apply(null,arguments)},UT=e._ArgMax=function(){return(UT=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},vI=e._AvgPool=function(){return(vI=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},SI=e._BatchMatMul=function(){return(SI=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},NI=e._Ceil=function(){return(NI=e._Ceil=e.asm.Ceil).apply(null,arguments)},kI=e._ClipByValue=function(){return(kI=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},mg=e._Conv2D=function(){return(mg=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},fg=e._Conv2DBackpropInput=function(){return(fg=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},TI=e._Cos=function(){return(TI=e._Cos=e.asm.Cos).apply(null,arguments)},EI=e._Cosh=function(){return(EI=e._Cosh=e.asm.Cosh).apply(null,arguments)},_I=e._CropAndResize=function(){return(_I=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},Od=e._Cumprod=function(){return(Od=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},AI=e._Cumsum=function(){return(AI=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},$I=e._DepthToSpace=function(){return($I=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},DI=e._DepthwiseConv2dNative=function(){return(DI=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Ru=e._Elu=function(){return(Ru=e._Elu=e.asm.Elu).apply(null,arguments)},RI=e._Equal=function(){return(RI=e._Equal=e.asm.Equal).apply(null,arguments)},FI=e._Exp=function(){return(FI=e._Exp=e.asm.Exp).apply(null,arguments)},dg=e._FlipLeftRight=function(){return(dg=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},OI=e._Floor=function(){return(OI=e._Floor=e.asm.Floor).apply(null,arguments)},Jc=e._FloorDiv=function(){return(Jc=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},PI=e._FusedBatchNorm=function(){return(PI=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},LI=e._FusedConv2D=function(){return(LI=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},Il=e._FusedDepthwiseConv2D=function(){return(Il=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},Pd=e._Gather=function(){return(Pd=e._Gather=e.asm.Gather).apply(null,arguments)},MI=e._GatherNd=function(){return(MI=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},zI=e._Greater=function(){return(zI=e._Greater=e.asm.Greater).apply(null,arguments)},BI=e._GreaterEqual=function(){return(BI=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},VI=e._LeakyRelu=function(){return(VI=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},hg=e._Less=function(){return(hg=e._Less=e.asm.Less).apply(null,arguments)},gg=e._LessEqual=function(){return(gg=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},GI=e._Log=function(){return(GI=e._Log=e.asm.Log).apply(null,arguments)},WI=e._LogicalAnd=function(){return(WI=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},xg=e._LogicalNot=function(){return(xg=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},yg=e._LogicalOr=function(){return(yg=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},UI=e._LogicalXor=function(){return(UI=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},HI=e._Max=function(){return(HI=e._Max=e.asm.Max).apply(null,arguments)},qI=e._MaxPool=function(){return(qI=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},bg=e._Maximum=function(){return(bg=e._Maximum=e.asm.Maximum).apply(null,arguments)},HT=e._Mean=function(){return(HT=e._Mean=e.asm.Mean).apply(null,arguments)},KI=e._Min=function(){return(KI=e._Min=e.asm.Min).apply(null,arguments)},jI=e._Minimum=function(){return(jI=e._Minimum=e.asm.Minimum).apply(null,arguments)},XI=e._MirrorPad=function(){return(XI=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},YI=e._Multiply=function(){return(YI=e._Multiply=e.asm.Multiply).apply(null,arguments)},ZI=e._Neg=function(){return(ZI=e._Neg=e.asm.Neg).apply(null,arguments)},JI=e._NonMaxSuppressionV3=function(){return(JI=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},QI=e._NonMaxSuppressionV4=function(){return(QI=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},tv=e._NonMaxSuppressionV5=function(){return(tv=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},ev=e._NotEqual=function(){return(ev=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},rv=e._OneHot=function(){return(rv=e._OneHot=e.asm.OneHot).apply(null,arguments)},nv=e._PadV2=function(){return(nv=e._PadV2=e.asm.PadV2).apply(null,arguments)},ov=e._Pow=function(){return(ov=e._Pow=e.asm.Pow).apply(null,arguments)},sv=e._Prelu=function(){return(sv=e._Prelu=e.asm.Prelu).apply(null,arguments)},iv=e._Prod=function(){return(iv=e._Prod=e.asm.Prod).apply(null,arguments)},av=e._RealDiv=function(){return(av=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},lv=e._Relu=function(){return(lv=e._Relu=e.asm.Relu).apply(null,arguments)},uv=e._Relu6=function(){return(uv=e._Relu6=e.asm.Relu6).apply(null,arguments)},cv=e._ResizeBilinear=function(){return(cv=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},pv=e._ResizeNearestNeighbor=function(){return(pv=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},mv=e._Reverse=function(){return(mv=e._Reverse=e.asm.Reverse).apply(null,arguments)},fv=e._RotateWithOffset=function(){return(fv=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},dv=e._Round=function(){return(dv=e._Round=e.asm.Round).apply(null,arguments)},hv=e._Rsqrt=function(){return(hv=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},gv=e._ScatterNd=function(){return(gv=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},xv=e._SelectV2=function(){return(xv=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},yv=e._Sigmoid=function(){return(yv=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},bv=e._Sin=function(){return(bv=e._Sin=e.asm.Sin).apply(null,arguments)},wv=e._Softmax=function(){return(wv=e._Softmax=e.asm.Softmax).apply(null,arguments)},Cv=e._SparseFillEmptyRows=function(){return(Cv=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},Iv=e._SparseReshape=function(){return(Iv=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},vv=e._SparseSegmentReduction=function(){return(vv=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},Sv=e._Sqrt=function(){return(Sv=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},Nv=e._Square=function(){return(Nv=e._Square=e.asm.Square).apply(null,arguments)},kv=e._SquaredDifference=function(){return(kv=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},Tv=e._Step=function(){return(Tv=e._Step=e.asm.Step).apply(null,arguments)},Ev=e._StridedSlice=function(){return(Ev=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},_v=e._Sub=function(){return(_v=e._Sub=e.asm.Sub).apply(null,arguments)},Av=e._Sum=function(){return(Av=e._Sum=e.asm.Sum).apply(null,arguments)},$v=e._Tan=function(){return($v=e._Tan=e.asm.Tan).apply(null,arguments)},Dv=e._Tanh=function(){return(Dv=e._Tanh=e.asm.Tanh).apply(null,arguments)},Rv=e._Tile=function(){return(Rv=e._Tile=e.asm.Tile).apply(null,arguments)},Fv=e._TopK=function(){return(Fv=e._TopK=e.asm.TopK).apply(null,arguments)},Ov=e._Transform=function(){return(Ov=e._Transform=e.asm.Transform).apply(null,arguments)},Pv=e._Transpose=function(){return(Pv=e._Transpose=e.asm.Transpose).apply(null,arguments)},Lv=e.__FusedMatMul=function(){return(Lv=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},Mv=e._malloc=function(){return(Mv=e._malloc=e.asm.malloc).apply(null,arguments)},zv=e._free=function(){return(zv=e._free=e.asm.free).apply(null,arguments)},Bv=e.___errno_location=function(){return(Bv=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},wg=e.stackSave=function(){return(wg=e.stackSave=e.asm.stackSave).apply(null,arguments)},Cg=e.stackRestore=function(){return(Cg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},Ld=e.stackAlloc=function(){return(Ld=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},Vv=e.dynCall_iijjiiii=function(){return(Vv=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},Gv=e.dynCall_jiji=function(){return(Gv=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=ug;var Qc;Lr=function K(){Qc||Ig(),Qc||(Lr=K)};function Ig(K){if(K=K||a,qe>0||(Ae(),qe>0))return;function lt(){Qc||(Qc=!0,e.calledRun=!0,!G&&(Ge(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),En()))}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()();Ig();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 Wv=ep._dispose;ep._dispose=function(){Wv(),tp.uncaughtException.forEach(function(K){process.removeListener(\"uncaughtException\",K)}),tp.unhandledRejection.forEach(function(K){process.removeListener(\"unhandledRejection\",K)})}}return t.ready}})();typeof uI==\"object\"&&typeof DT==\"object\"?DT.exports=$T:typeof define==\"function\"&&define.amd?define([],function(){return $T}):typeof uI==\"object\"&&(uI.WasmBackendModule=$T)});var ta=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}},Mo=class{refCount(t){return jn(\"refCount\")}incRef(t){return jn(\"incRef\")}timerAvailable(){return!0}time(t){return jn(\"time\")}read(t){return jn(\"read\")}readSync(t){return jn(\"readSync\")}readToGPU(t,e){return jn(\"readToGPU\")}numDataIds(){return jn(\"numDataIds\")}disposeData(t,e){return jn(\"disposeData\")}write(t,e,n){return jn(\"write\")}move(t,e,n,o,s){return jn(\"move\")}memory(){return jn(\"memory\")}floatPrecision(){return jn(\"floatPrecision\")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return jn(\"dispose\")}};function jn(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 t1(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Dg(r,t,e)}function kU(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--,Dg(r,e,n),Dg(t,e,n)}function np(r,t,e){return Math.max(r,Math.min(t,e))}function TU(r){return r%2===0?r:r+1}function Dg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function EU(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function Xn(r){E(r!=null,()=>\"The input to the tensor constructor must be a non-null value.\")}function zo(r,t=[],e=!1){if(t==null&&(t=[]),Array.isArray(r)||hr(r)&&!e)for(let n=0;n0,e,n=setTimeout){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(a,u)};a()})}function PU(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 ar(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=>ea(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function Xv(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:ar(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 Yv(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 Zv(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 Jv(r,t){for(let e=0;et+=e.length),t}function Bo(r){return typeof r==\"string\"||r instanceof String}function e1(r){return typeof r==\"boolean\"}function r1(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\":r1(r)?\"float32\":Bo(r)?\"string\":e1(r)?\"bool\":\"float32\"}function ri(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 n1(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 n1(0,r,t,e)}function zd(r,t){let e=ip(r,t);for(let n=0;nn*o,1);if(t==null||t===\"float32\")return Fu(r,new Float32Array(e));if(t===\"int32\")return Fu(r,new Int32Array(e));if(t===\"bool\")return Fu(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Bd(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]=UU(o,s)})}};function GU(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(WU(t,n[0],n[1]),n.join(\"=\"))),t}function WU(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||\"\")}function UU(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 M(){return eS}var eS=null;function s1(r){eS=r}var rS;function nS(){if(rS==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\");rS=r}return rS}function HU(){let r=nS();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function Wd(r,t){let e=HU();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var oi=\"Abs\",ra=\"Acos\",na=\"Acosh\",Yn=\"Add\",Vo=\"AddN\",oa=\"All\",sa=\"Any\",Go=\"ArgMax\",Nl=\"ArgMin\",ia=\"Asin\",aa=\"Asinh\",la=\"Atan\",ua=\"Atanh\",ca=\"Atan2\",Wo=\"AvgPool\",ap=\"AvgPoolGrad\",kl=\"AvgPool3D\",lp=\"AvgPool3DGrad\",Uo=\"BatchMatMul\",si=\"BatchToSpaceND\",up=\"Bincount\",i1=\"BroadcastTo\",cp=\"BroadcastArgs\",io=\"Cast\",Ho=\"Ceil\",ao=\"ClipByValue\",pp=\"Complex\",Tl=\"ComplexAbs\",ii=\"Concat\",qo=\"Conv2D\",mp=\"Conv2DBackpropFilter\",Ko=\"Conv2DBackpropInput\",El=\"Conv3D\",fp=\"Conv3DBackpropFilterV2\",dp=\"Conv3DBackpropInputV2\",jo=\"Cos\",Xo=\"Cosh\",pa=\"Cumprod\",Yo=\"Cumsum\",ma=\"CropAndResize\",hp=\"DenseBincount\",fa=\"DepthToSpace\",Zo=\"DepthwiseConv2dNative\",gp=\"DepthwiseConv2dNativeBackpropFilter\",xp=\"DepthwiseConv2dNativeBackpropInput\",yp=\"Diag\",_l=\"Dilation2D\",Ud=\"Dilation2DBackpropInput\",Hd=\"Dilation2DBackpropFilter\",Jo=\"RealDiv\",bp=\"Einsum\",Qo=\"Elu\",wp=\"EluGrad\",da=\"Erf\",ha=\"Equal\",ts=\"Exp\",ai=\"ExpandDims\",ga=\"Expm1\",Cp=\"FFT\",Al=\"Fill\",xa=\"FlipLeftRight\",es=\"Floor\",rs=\"FloorDiv\",ns=\"FusedBatchNorm\",li=\"GatherV2\",ya=\"GatherNd\",ba=\"Greater\",os=\"GreaterEqual\",lo=\"Identity\",Ip=\"IFFT\",vp=\"Imag\",wa=\"IsFinite\",Ca=\"IsInf\",Ia=\"IsNan\",ss=\"LeakyRelu\",va=\"Less\",Sa=\"LessEqual\",Sp=\"LinSpace\",is=\"Log\",Na=\"Log1p\",ka=\"LogicalAnd\",Ta=\"LogicalNot\",Ea=\"LogicalOr\",a1=\"LogicalXor\",l1=\"LogSoftmax\",rlt=\"LowerBound\",$l=\"LRN\",Np=\"LRNGrad\",as=\"Max\",ls=\"Maximum\",us=\"MaxPool\",kp=\"MaxPoolGrad\",Dl=\"MaxPool3D\",Tp=\"MaxPool3DGrad\",Ep=\"MaxPoolWithArgmax\",cs=\"Mean\",ps=\"Min\",ms=\"Minimum\",fs=\"MirrorPad\",_a=\"Mod\",_p=\"Multinomial\",ds=\"Multiply\",ui=\"Neg\",Aa=\"NotEqual\",$a=\"NonMaxSuppressionV3\",Da=\"NonMaxSuppressionV4\",Ra=\"NonMaxSuppressionV5\",ci=\"OnesLike\",hs=\"OneHot\",pi=\"Pack\",gs=\"PadV2\",nlt=\"Pool\",xs=\"Pow\",ys=\"Prelu\",bs=\"Prod\",Ap=\"RaggedGather\",$p=\"RaggedTensorToTensor\",Rl=\"Range\",Dp=\"Real\",Fa=\"Reciprocal\",ws=\"Relu\",mi=\"Reshape\",Cs=\"ResizeNearestNeighbor\",Rp=\"ResizeNearestNeighborGrad\",Is=\"ResizeBilinear\",Fp=\"ResizeBilinearGrad\",vs=\"Relu6\",Ss=\"Reverse\",Ns=\"Round\",ks=\"Rsqrt\",Oa=\"ScatterNd\",Op=\"SearchSorted\",fi=\"Select\",Pa=\"Selu\",di=\"Slice\",Ts=\"Sin\",La=\"Sinh\",Ma=\"Sign\",Es=\"Sigmoid\",za=\"Softplus\",_s=\"Sqrt\",As=\"Sum\",hi=\"SpaceToBatchND\",gi=\"SplitV\",$s=\"Softmax\",Fl=\"SparseFillEmptyRows\",Ba=\"SparseReshape\",Ol=\"SparseSegmentMean\",Pl=\"SparseSegmentSum\",Pp=\"SparseToDense\",Ds=\"SquaredDifference\",Ll=\"Square\",Va=\"StridedSlice\",Ml=\"StringNGrams\",zl=\"StringSplit\",Bl=\"StringToHashBucketFast\",Rs=\"Sub\",Fs=\"Tan\",Os=\"Tanh\",Zn=\"Tile\",Ga=\"TopK\",Wa=\"Transform\",Jn=\"Transpose\",Lp=\"Unique\",xi=\"Unpack\",Vl=\"UnsortedSegmentSum\",olt=\"UpperBound\",yi=\"ZerosLike\",uo=\"Step\",qd=\"FromPixels\",Ua=\"RotateWithOffset\",bi=\"_FusedMatMul\",wi=\"FusedConv2D\",Ci=\"FusedDepthwiseConv2D\";function Ii(...r){M().getBool(\"IS_TEST\")||M().getBool(\"PROD\")||console.warn(...r)}function qU(...r){M().getBool(\"IS_TEST\")||M().getBool(\"PROD\")||console.log(...r)}var Mp=Wd(\"kernelRegistry\",()=>new Map),Kd=Wd(\"gradRegistry\",()=>new Map);function jd(r,t){let e=sS(r,t);return Mp.get(e)}function oS(r){return Kd.get(r)}function Fg(r){let t=Mp.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 Pu(r){let{kernelName:t,backendName:e}=r,n=sS(t,e);Mp.has(n)&&Ii(`The kernel '${t}' for backend '${e}' is already registered`),Mp.set(n,r)}function c1(r){let{kernelName:t}=r;Kd.has(t)&&M().getBool(\"DEBUG\")&&Ii(`Overriding the gradient for '${t}'`),Kd.set(t,r)}function ult(r,t){let e=sS(r,t);if(!Mp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);Mp.delete(e)}function clt(r){if(!Kd.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);Kd.delete(r)}function plt(r,t){Fg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});Pu(o)})}function sS(r,t){return`${t}_${r}`}var y={};Gt(y,{arraysEqual:()=>An,assert:()=>E,assertNonNegativeIntegerDimensions:()=>Bd,assertNonNull:()=>Xn,assertShapesMatch:()=>$e,bytesFromStringArray:()=>tS,bytesPerElement:()=>Rg,checkConversionForErrors:()=>Jv,clamp:()=>np,computeStrides:()=>ni,createScalarValue:()=>QU,createShuffledIndices:()=>FU,decodeString:()=>Gp,distSquared:()=>AU,encodeString:()=>Wl,fetch:()=>e4,fingerPrint64:()=>JU,flatten:()=>zo,getArrayFromDType:()=>Zv,getTypedArrayFromDType:()=>Yv,hasEncodingLoss:()=>LU,hexToLong:()=>Xd,indexToLoc:()=>BU,inferDtype:()=>op,inferFromImplicitShape:()=>PU,isBoolean:()=>e1,isFunction:()=>ri,isInt:()=>ea,isNumber:()=>r1,isPromise:()=>Vd,isScalarShape:()=>$U,isString:()=>Bo,isTypedArray:()=>hr,isValidDtype:()=>Qv,locToIndex:()=>zU,makeOnesTypedArray:()=>zd,makeZerosNestedTypedArray:()=>MU,makeZerosTypedArray:()=>ip,nearestDivisor:()=>sp,nearestLargerEven:()=>TU,now:()=>Vu,parseAxisParam:()=>ar,randUniform:()=>_U,repeatedTry:()=>OU,rightPad:()=>Ou,shuffle:()=>t1,shuffleCombo:()=>kU,sizeFromShape:()=>Zt,sizeToSquarishShape:()=>RU,squeezeShape:()=>Xv,sum:()=>EU,swap:()=>Dg,tanh:()=>DU,toNestedArray:()=>Fu,toTypedArray:()=>Vp});var uS=Sl(C1());var Bu=uS.default||uS;function Xd(r){return Bu.fromString(r,!0,16)}var v1=Xd(\"c3a5c85c97cb3127\"),zu=Xd(\"b492b66fbe98f273\"),nn=Xd(\"9ae16a3b2f90404f\");function lS(r){return r.xor(r.shru(47))}function S1(r,t,e){let n=r.slice(t,t+e);return Bu.fromBytes(Array.from(n),!0,!0)}function Oe(r,t){return S1(r,t,8)}function I1(r,t){return S1(r,t,4)}function kr(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function Gl(r,t,e=Xd(\"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 jU(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 Pg(r,t,e,n){return jU(Oe(r,t),Oe(r,t+8),Oe(r,t+16),Oe(r,t+24),e,n)}function XU(r,t=r.length){if(t>=8){let e=nn.add(t*2),n=Oe(r,0).add(nn),o=Oe(r,t-8),s=kr(o,37).mul(e).add(n),i=kr(n,25).add(o).mul(e);return Gl(s,i,e)}if(t>=4){let e=nn.add(t*2),n=I1(r,0);return Gl(n.shl(3).add(t),I1(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 lS(nn.mul(s).xor(v1.mul(i))).mul(nn)}return nn}function YU(r,t=r.length){let e=nn.add(t*2),n=Oe(r,0).mul(zu),o=Oe(r,8),s=Oe(r,t-8).mul(e),i=Oe(r,t-16).mul(nn);return Gl(kr(n.add(o),43).add(kr(s,30)).add(i),n.add(kr(o.add(nn),18)).add(s),e)}function ZU(r,t=r.length){let e=nn.add(t*2),n=Oe(r,0).mul(nn),o=Oe(r,8),s=Oe(r,t-8).mul(e),i=Oe(r,t-16).mul(nn),a=kr(n.add(o),43).add(kr(s,30)).add(i),u=Gl(a,n.add(kr(o.add(nn),18)).add(s),e),l=Oe(r,16).mul(e),c=Oe(r,24),p=a.add(Oe(r,t-32)).mul(e),m=u.add(Oe(r,t-24)).mul(e);return Gl(kr(l.add(c),43).add(kr(p,30)).add(m),l.add(kr(c.add(n),18)).add(p),e)}function JU(r,t=r.length){let e=Bu.fromNumber(81,!0);if(t<=32)return t<=16?XU(r,t):YU(r,t);if(t<=64)return ZU(r,t);let n=e,o=e.mul(zu).add(113),s=lS(o.mul(nn).add(113)).mul(nn),i=[Bu.UZERO,Bu.UZERO],a=[Bu.UZERO,Bu.UZERO];n=n.mul(nn).add(Oe(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(Oe(r,u+8)),37).mul(zu),o=kr(o.add(i[1]).add(Oe(r,u+48)),42).mul(zu),n=n.xor(a[1]),o=o.add(i[0]).add(Oe(r,u+40)),s=kr(s.add(a[0]),33).mul(zu),i=Pg(r,u,i[1].mul(zu),n.add(a[0])),a=Pg(r,u+32,s.add(a[1]),o.add(Oe(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=zu.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(Oe(r,u+8)),37).mul(p),o=kr(o.add(i[1]).add(Oe(r,u+48)),42).mul(p),n=n.xor(a[1].mul(9)),o=o.add(i[0].mul(9).add(Oe(r,u+40))),s=kr(s.add(a[0]),33).mul(p),i=Pg(r,u,i[1].mul(p),n.add(a[0])),a=Pg(r,u+32,s.add(a[1]),o.add(Oe(r,u+16))),[s,n]=[n,s],Gl(Gl(i[0],a[0],p).add(lS(o).mul(v1)).add(s),Gl(i[1],a[1],p).add(n),p)}function QU(r,t){return t===\"string\"?Wl(r):Vp([r],t)}function t4(r,t){return r instanceof Float32Array&&t===\"float32\"||r instanceof Int32Array&&t===\"int32\"||r instanceof Uint8Array&&t===\"bool\"}function Vp(r,t){if(t===\"string\")throw new Error(\"Cannot convert a string[] to a TypedArray\");if(Array.isArray(r)&&(r=zo(r)),M().getBool(\"DEBUG\")&&Jv(r,t),t4(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=Vu();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:Vu()-a})}if(M().getBool(\"CHECK_COMPUTATION_FOR_ERRORS\"))for(let l=0;l{r4(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 r4(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 N1(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(!An(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 T1=20,Yd=3,pS=7;function E1(r,t,e,n){let o=ni(t),s=n4(r,t,e,o),i=t.length,a=Mg(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 n4(r,t,e,n){let o=Zt(t),s=n[n.length-1],i=new Array(s).fill(0),a=t.length,u=e===\"complex64\"?Jd(r):r;if(a>1)for(let l=0;lT1){let g=Yd*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-Yd)*i,a*i));return e===\"complex64\"&&(x=Jd(x),b=Jd(b)),[\"[\"+x.map((w,C)=>Zd(w,o[C],e)).join(\", \")+\", ..., \"+b.map((w,C)=>Zd(w,o[a-Yd+C],e)).join(\", \")+\"]\"]}let h=e===\"complex64\"?Jd(r):Array.from(r);return[\"[\"+h.map((g,x)=>Zd(g,o[x],e)).join(\", \")+\"]\"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>T1){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||Zv(e,this.size),this.strides=ni(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;oGp(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(),Ls().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=Ls().readSync(this.dataId);if(this.dtype===\"string\")try{return t.map(e=>Gp(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 Ls().read(this.dataId);return this.dtype===\"string\"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(Ls().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error(\"Tensor is disposed.\")}print(t=!1){return Wp.print(this,t)}clone(){return this.throwIfDisposed(),Wp.clone(this)}toString(t=!1){let e=this.dataSync();return E1(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),Wp.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),Ls().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 Wd(\"Tensor\",()=>Ft)}O();var Ha=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(!An(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);Ls().disposeTensor(this),this.dataId=t.dataId,Ls().incRef(this,null)}dispose(){Ls().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Ha,Symbol.hasInstance,{value:r=>r instanceof Ft&&r.assign!=null&&r.assign instanceof Function});var fo={};Gt(fo,{assertTypesMatch:()=>xS,getTensorsInContainer:()=>Qd,isTensorInList:()=>i4,makeTypesMatch:()=>Wt});var mS;(function(r){r.R0=\"R0\",r.R1=\"R1\",r.R2=\"R2\",r.R3=\"R3\",r.R4=\"R4\",r.R5=\"R5\",r.R6=\"R6\"})(mS||(mS={}));var fS;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"int32\",r.complex64=\"complex64\"})(fS||(fS={}));var dS;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"bool\",r.complex64=\"complex64\"})(dS||(dS={}));var hS;(function(r){r.float32=\"float32\",r.int32=\"float32\",r.bool=\"float32\",r.complex64=\"complex64\"})(hS||(hS={}));var gS;(function(r){r.float32=\"complex64\",r.int32=\"complex64\",r.bool=\"complex64\",r.complex64=\"complex64\"})(gS||(gS={}));var s4={float32:hS,int32:fS,bool:dS,complex64:gS};function or(r,t){if(r===\"string\"||t===\"string\"){if(r===\"string\"&&t===\"string\")return\"string\";throw new Error(`Can not upcast ${r} with ${t}`)}return s4[r][t]}function Gu(r){return or(r,\"int32\")}function Wt(r,t){if(r.dtype===t.dtype)return[r,t];let e=or(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function xS(r,t){E(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function i4(r,t){return t.some(e=>e.id===r.id)}function Qd(r){let t=[];return R1(r,t,new Set),t}function R1(r,t,e){if(r==null)return;if(r instanceof Ft){t.push(r);return}if(!a4(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),R1(s,t,e))}}function a4(r){return Array.isArray(r)||typeof r==\"object\"}function yS(r){return r.kernelName!=null}var zg=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()}},Ul=class{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new zg}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){Fg(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 Mo)&&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 Ul.nextTensorId++}nextVariableId(){return Ul.nextVariableId++}clone(t){let e=T.runKernel(lo,{x:t}),n={x:t},o=i=>({x:()=>{let a=\"float32\",u={x:i},l={dtype:a};return T.runKernel(io,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=yS(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:\"\";if(yS(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=yS(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=oS(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\"&&Bo(t[0])&&(s=t.map(u=>Wl(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=tS(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 Ha(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*Rg(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 Ha||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*Rg(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=oS(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=Qd(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=N1(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?l4(s.shape):n,k1(a,i,l=>this.tidy(l),u4);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(ri(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(ri(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=Vu(),n=await this.backend.time(t);return n.wallMs=Vu()-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 zg;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}};Ul.nextTensorId=0;Ul.nextVariableId=0;function l4(r){let t=zd(Zt(r),\"float32\");return T.makeTensor(t,r,\"float32\")}function bS(){let r=nS();if(r._tfengine==null){let t=new Gd(r);r._tfengine=new Ul(t)}return s1(r._tfengine.ENV),A1(()=>r._tfengine),r._tfengine}var T=bS();function u4(r,t){let e={a:r,b:t};return T.runKernel(Yn,e)}var Hl={};Gt(Hl,{isBrowser:()=>CS,isMobile:()=>m4,mockIsMobile:()=>p4});function c4(){return typeof navigator!=\"undefined\"&&navigator!=null}var wS;function p4(r){wS=r}function m4(r){if(wS!==void 0)return wS;if(r||c4()){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 CS(){return typeof window!=\"undefined\"&&window.document!=null||typeof WorkerGlobalScope!=\"undefined\"}var Rn=M();Rn.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.\")});Rn.registerFlag(\"IS_BROWSER\",()=>CS());Rn.registerFlag(\"IS_NODE\",()=>typeof process!=\"undefined\"&&typeof process.versions!=\"undefined\"&&typeof process.versions.node!=\"undefined\");Rn.registerFlag(\"IS_CHROME\",()=>typeof navigator!=\"undefined\"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Rn.registerFlag(\"PROD\",()=>!1);Rn.registerFlag(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\",()=>Rn.getBool(\"DEBUG\"));Rn.registerFlag(\"DEPRECATION_WARNINGS_ENABLED\",()=>!0);Rn.registerFlag(\"IS_TEST\",()=>!1);Rn.registerFlag(\"CHECK_COMPUTATION_FOR_ERRORS\",()=>!0);Rn.registerFlag(\"WRAP_TO_IMAGEBITMAP\",()=>!1);Rn.registerFlag(\"ENGINE_COMPILE_ONLY\",()=>!1);Rn.registerFlag(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\",()=>!1);Rn.registerFlag(\"USE_SETTIMEOUTCUSTOM\",()=>!1);function Mr(r,t){let e=r;if(hr(r))return t===\"string\"?[]:[r.length];if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||hr(e)&&t!==\"string\";)n.push(e.length),e=e[0];return Array.isArray(r)&&M().getBool(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\")&&O1(r,n,[]),n}function O1(r,t,e){if(e=e||[],!Array.isArray(r)&&!hr(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),F1(n,o,t,e),r==null||!hr(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=Mr(r,o);!hr(r)&&!Array.isArray(r)&&(r=[r]);let a=o!==\"string\"?Vp(r,o):zo(r,[],!0);return T.makeTensor(a,s,o)}function qa(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 IS=\"__op\";function k(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+IS;let o=(...s)=>{T.startScope(e);try{let i=n(...s);return Vd(i)&&console.error(\"Cannot return a Promise inside of tidy.\"),T.endScope(i),i}catch(i){throw T.endScope(null),i}};return Object.defineProperty(o,\"name\",{value:e,configurable:!0}),o}function f4(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 T.runKernel(pp,o)}var bn=k({complex_:f4});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(!hr(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){Bd(t);let o=Zt(t),s=Zt(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!hr(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!==\"string\"?Vp(r,n):zo(r,[],!0),T.makeTensor(r,t,n)}function wr(r,t,e){let n=Mr(r,e);return on(r,t,n,e)}var th={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var Bg=4;async function L1(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)+Bg*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 vS=typeof Buffer!=\"undefined\"&&(typeof Blob==\"undefined\"||typeof atob==\"undefined\"||typeof btoa==\"undefined\");function P1(r){return vS?Buffer.byteLength(r):new Blob([r]).size}function M1(r){if(vS)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 SS(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 Gg(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.trainingConfig!=null&&(e.trainingConfig=r.trainingConfig),e}function NS(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),n}async function Hp(r,t){let e,n;return r.weightsManifest!=null&&([e,n]=await t(r.weightsManifest)),NS(r,e,n)}function vi(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:P1(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:P1(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function Wg(r){let t=[];for(let e of r)t.push(...e.weights);return t}function h4(){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 g4(){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 x4(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function y4(){let r=h4(),t=g4(),e=x4();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}},B1=r=>Ce.registerSaveRouter(r),V1=r=>Ce.registerLoadRouter(r),G1=r=>Ce.getSaveHandlers(r),W1=(r,t)=>Ce.getLoadHandlers(r,t);var kS=\"tensorflowjs\",TS=1,Wu=\"models_store\",ql=\"model_info_store\";function U1(){if(!M().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 ES(r){let t=r.result;t.createObjectStore(Wu,{keyPath:\"modelPath\"}),t.createObjectStore(ql,{keyPath:\"modelPath\"})}var Si=class{constructor(t){if(this.indexedDB=U1(),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(kS,TS);s.onupgradeneeded=()=>ES(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(Wu,\"readonly\"),l=a.objectStore(Wu).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=vi(e),u=i.transaction(ql,\"readwrite\"),l=u.objectStore(ql),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a}),p;c.onsuccess=()=>{p=i.transaction(Wu,\"readwrite\");let f=p.objectStore(Wu).put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a});f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(ql);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)})}};Si.URL_SCHEME=\"indexeddb://\";var H1=r=>M().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Si.URL_SCHEME)?b4(r.slice(Si.URL_SCHEME.length)):null;Ce.registerSaveRouter(H1);Ce.registerLoadRouter(H1);function b4(r){return new Si(r)}function w4(r){return r.startsWith(Si.URL_SCHEME)?r.slice(Si.URL_SCHEME.length):r}var Ug=class{constructor(){this.indexedDB=U1()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open(kS,TS);n.onupgradeneeded=()=>ES(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(ql,\"readonly\"),a=s.objectStore(ql).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=w4(t),new Promise((e,n)=>{let o=this.indexedDB.open(kS,TS);o.onupgradeneeded=()=>ES(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(ql,\"readwrite\"),a=i.objectStore(ql),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(Wu,\"readwrite\");let f=l.objectStore(Wu).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 Ka=\"/\",qp=\"tensorflowjs_models\",q1=\"info\",C4=\"model_topology\",I4=\"weight_specs\",v4=\"weight_data\",S4=\"model_metadata\";function K1(r){return{info:[qp,r,q1].join(Ka),topology:[qp,r,C4].join(Ka),weightSpecs:[qp,r,I4].join(Ka),weightData:[qp,r,v4].join(Ka),modelMetadata:[qp,r,S4].join(Ka)}}function j1(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function N4(r){let t=r.split(Ka);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(Ka)}function k4(r){return r.startsWith(Ni.URL_SCHEME)?r.slice(Ni.URL_SCHEME.length):r}var Ni=class{constructor(t){if(!M().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=K1(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=vi(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,M1(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,trainingConfig:t.trainingConfig!=null?t.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:o}}catch(s){throw j1(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.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=z1(i),e}};Ni.URL_SCHEME=\"localstorage://\";var X1=r=>M().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Ni.URL_SCHEME)?T4(r.slice(Ni.URL_SCHEME.length)):null;Ce.registerSaveRouter(X1);Ce.registerLoadRouter(X1);function T4(r){return new Ni(r)}var Hg=class{constructor(){E(M().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=qp+Ka,n=Ka+q1;for(let o=0;o\"scheme must not be undefined or null.\"),t.endsWith(Kp)&&(t=t.slice(0,t.indexOf(Kp))),E(t.length>0,()=>\"scheme must not be an empty string.\");let n=Tr.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=Tr.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(Tr.getInstance().managers)}};function qg(r){if(r.indexOf(Kp)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Tr.getSchemes().join(\",\")}`);return{scheme:r.split(Kp)[0],path:r.split(Kp)[1]}}async function Y1(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=qg(r).scheme,u=qg(r).path,l=a===qg(r).scheme,c=await o.load();e&&l&&await Tr.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await Tr.getManager(a).removeModel(u),p.modelArtifactsInfo}async function Z1(){let r=Tr.getSchemes(),t={};for(let e of r){let n=await Tr.getManager(e).listModels();for(let o in n){let s=e+Kp+o;t[s]=n[o]}}return t}async function J1(r){let t=qg(r);return Tr.getManager(t.scheme).removeModel(t.path)}async function Q1(r,t){return Y1(r,t,!1)}async function tE(r,t){return Y1(r,t,!0)}var _S=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(!window||!M().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(M().get(\"IS_BROWSER\")){M().setPlatform(\"browser\",new _S);try{Tr.registerManager(Ni.URL_SCHEME,new Hg)}catch(r){}try{Tr.registerManager(Si.URL_SCHEME,new Ug)}catch(r){}}var E4={importFetch:()=>eE()},AS;var $S=class{constructor(){this.util=rE(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return M().global.fetch!=null?M().global.fetch(t,e):(AS==null&&(AS=E4.importFetch()),AS(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)}};M().get(\"IS_NODE\")&&!M().get(\"IS_BROWSER\")&&M().setPlatform(\"node\",new $S);function wt(r,t=\"float32\",e){return t=t||\"float32\",Bd(r),new pe(r,t,e)}function _4(r,t){let e=I(r,\"x\",\"cast\");if(!Qv(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 T.runKernel(io,n,o)}var J=k({cast_:_4});function A4(r){let e={x:I(r,\"x\",\"clone\",\"string_or_numeric\")};return T.runKernel(lo,e)}var sn=k({clone_:A4});function Kg(r,t=!1){console.log(r.toString(t))}bS();var $4={buffer:wt,cast:J,clone:sn,print:Kg};$1($4);var Er={};Gt(Er,{browserFiles:()=>oE,browserHTTPRequest:()=>aE,concatenateArrayBuffers:()=>Up,copyModel:()=>Q1,decodeWeights:()=>Vg,encodeWeights:()=>L1,fromMemory:()=>lE,fromMemorySync:()=>LS,getLoadHandlers:()=>W1,getModelArtifactsForJSON:()=>Hp,getModelArtifactsForJSONSync:()=>NS,getModelArtifactsInfoForJSON:()=>vi,getSaveHandlers:()=>G1,getWeightSpecs:()=>Wg,http:()=>Xg,isHTTPScheme:()=>jg,listModels:()=>Z1,loadWeights:()=>sE,moveModel:()=>tE,registerLoadRouter:()=>V1,registerSaveRouter:()=>B1,removeModel:()=>J1,weightsLoaderFactory:()=>OS,withSaveHandler:()=>uE,withSaveHandlerSync:()=>cE});var D4=\"model\",R4=\".json\",F4=\".weights.bin\";function nE(r){return new Promise(t=>setTimeout(t)).then(r)}var ja=class{constructor(t){if(!M().getBool(\"IS_BROWSER\"))throw new Error(\"browserDownloads() cannot proceed because the current environment is not a browser.\");t.startsWith(ja.URL_SCHEME)&&(t=t.slice(ja.URL_SCHEME.length)),(t==null||t.length===0)&&(t=D4),this.modelJsonFileName=t+R4,this.weightDataFileName=t+F4}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=Gg(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 nE(()=>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 nE(()=>a.dispatchEvent(new MouseEvent(\"click\")))}return{modelArtifactsInfo:vi(t)}}}};ja.URL_SCHEME=\"downloads://\";var DS=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=Hp(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,Up(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=>SS(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=SS(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}},O4=r=>M().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(ja.URL_SCHEME)?P4(r.slice(ja.URL_SCHEME.length)):null;Ce.registerSaveRouter(O4);function P4(r=\"model\"){return new ja(r)}function oE(r){return new DS(r)}function RS(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 FS(r,t){t==null&&(t={});let e=t.fetchFunc==null?M().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 RS(n,t.onProgress,o,s)).map(p=>p.arrayBuffer()),u=.5,l=1;return t.onProgress==null?await Promise.all(a):await RS(a,t.onProgress,u,l)}async function sE(r,t=\"\",e,n){return OS(i=>FS(i,{requestInit:n}))(r,t,e)}function OS(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=th[x]*Zt(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),_=Vg(N,[C.manifestEntry]);for(let A in _)p[A]=_[A]}),m+=d}),p}}var L4=\"application/octet-stream\",M4=\"application/json\",eh=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=M().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=Gg(t,n);e.body.append(\"model.json\",new Blob([JSON.stringify(o)],{type:M4}),\"model.json\"),t.weightData!=null&&e.body.append(\"model.weights.bin\",new Blob([t.weightData],{type:L4}),\"model.weights.bin\");let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:vi(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 Hp(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=Wg(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 FS(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,Up(l)]}};eh.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 jg(r){return r.match(eh.URL_SCHEME_REGEX)!=null}var iE=(r,t)=>{if(typeof fetch==\"undefined\"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>jg(n)):e=jg(r),e)return Xg(r,t)}return null};Ce.registerSaveRouter(iE);Ce.registerLoadRouter(iE);function Xg(r,t){return new eh(r,t)}function aE(r,t){return Xg(r,t)}var rh=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},Yg=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},PS=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function lE(r,t,e,n){let o=arguments;return new PS(LS(...o))}function LS(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new rh(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 rh({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 rh({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function uE(r){return new Yg(r)}function cE(r){return new Yg(r)}var fE={};Gt(fE,{confusionMatrix:()=>mE});function B4(r,t,e=!1,n=!1){let o=I(r,\"a\",\"matMul\"),s=I(t,\"b\",\"matMul\");[o,s]=Wt(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return T.runKernel(Uo,i,a)}var Lt=k({matMul_:B4});function V4(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 T.runKernel(hs,i,a)}var ki=k({oneHot_:V4});function Qct(){M().set(\"PROD\",!0)}function tpt(){M().set(\"DEBUG\",!0)}function ept(){M().set(\"DEPRECATION_WARNINGS_ENABLED\",!1),console.warn(\"TensorFlow.js deprecation warnings have been disabled.\")}function MS(r){M().getBool(\"DEPRECATION_WARNINGS_ENABLED\")&&console.warn(r+\" You can disable deprecation warnings with tf.disableDeprecationWarnings().\")}D1(MS);function rpt(){T.disposeVariables()}function ho(){return T}function nh(){return T.memory()}function npt(r){return T.profile(r)}function B(r,t){return T.tidy(r,t)}function St(r){Qd(r).forEach(e=>e.dispose())}function De(r){return T.keep(r)}function opt(r){return T.time(r)}function G4(r){return T.setBackend(r)}function spt(){return T.ready()}function ipt(){return T.backendName}function apt(r){T.removeBackend(r)}function lpt(r){return T.findBackend(r)}function upt(r){return T.findBackendFactory(r)}function jp(r,t,e=1){return T.registerBackend(r,t,e)}function pE(){return T.backend}function cpt(r,t){M().setPlatform(r,t)}function W4(r){let e={input:I(r,\"input\",\"imag\")};return T.runKernel(vp,e)}var Kl=k({imag_:W4});function U4(r){let e={x:I(r,\"x\",\"neg\")};return T.runKernel(ui,e)}var Ut=k({neg_:U4});function H4(r){let e={input:I(r,\"input\",\"real\")};return T.runKernel(Dp,e)}var Xa=k({real_:H4});function q4(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=Xa(n),a=Kl(n);return i=T.runKernel(Jn,{x:i},s),a=T.runKernel(Jn,{x:a},s),e&&(a=Ut(a)),bn(i,a)}):T.runKernel(Jn,o,s)}var Ot=k({transpose_:q4});function K4(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=ki(J(n,\"int32\"),e),i=ki(J(o,\"int32\"),e),a=Ot(s),u=Lt(a,i);return J(u,\"int32\")}var mE=k({confusionMatrix_:K4});var zr={};Gt(zr,{assertAndGetBroadcastShape:()=>Pt,getBroadcastDims:()=>dE,getReductionAxes:()=>ge});function dE(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;otH,fromPixelsAsync:()=>J4,toPixels:()=>Q4});function Zg(r,t,e){if(Xn(r),t!=null&&t.length!==3)throw new Error(\"tensor3d() requires shape to have three numbers\");let n=Mr(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 Uu;function hE(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(qd,T.backendName)!=null){let d={pixels:r},h={numChannels:t};return T.runKernel(qd,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(Uu==null)if(typeof document==\"undefined\")if(typeof OffscreenCanvas!=\"undefined\"&&typeof OffscreenCanvasRenderingContext2D!=\"undefined\")Uu=new OffscreenCanvas(1,1).getContext(\"2d\");else throw new Error(\"Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.\");else Uu=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:!0});Uu.canvas.width=l,Uu.canvas.height=c,Uu.drawImage(r,0,0,l,c),p=Uu.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 tH=k({fromPixels_:hE});var Qg={};Gt(Qg,{prepareAndValidate:()=>gE});function gE(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(Zt(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 oh={};Gt(oh,{calculateShapes:()=>xE,validateInput:()=>tx,validateUpdateShape:()=>zS});function zS(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;prH,computeFlatOffset:()=>aH,computeOutShape:()=>oH,getNormalizedAxes:()=>sH,isSliceContinous:()=>iH,maskToAxes:()=>nH,parseSliceParams:()=>VS,sliceInfo:()=>lH,startForAxis:()=>NE,startIndicesWithElidedDims:()=>IE,stopForAxis:()=>kE,stopIndicesWithElidedDims:()=>vE,stridesForAxis:()=>SE,stridesWithElidedDims:()=>bE});var BS=-2,eH=-1;function rH(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 nH(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function oH(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=IE(i,f,d,n,r),p=vE(a,f,d,o,r),m=bE(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=wE(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=wE(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 kE(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 iH(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 aH(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 lH(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]=yE(m.begin[w],0,m.strides[w],N,_,A),m.end[w]=yE(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===BS&&x.push(1)}return{finalShapeSparse:x.filter((w,C)=>m.finalShapeGatherIndices[C]!==BS),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function uH(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={};Gt(Q,{Serializable:()=>sh,SerializationMap:()=>Ti,registerClass:()=>wn});var sh=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},Ti=class{constructor(){this.classNameMap={}}static getMap(){return Ti.instance==null&&(Ti.instance=new Ti),Ti.instance}static register(t){Ti.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function wn(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.\"),Ti.register(r)}var AE={};Gt(AE,{TEST_EPSILON_FLOAT16:()=>TE,createVideoElement:()=>gH,encodeStrings:()=>_E,expectArrayBuffersEqual:()=>hH,expectArraysClose:()=>pH,expectArraysEqual:()=>fH,expectNumbersClose:()=>EE,expectPromiseToFail:()=>mH,expectValuesInRange:()=>dH,play:()=>xH,testEpsilon:()=>ex});var cH=.001,TE=.1;function pH(r,t,e){return e==null&&(e=ex()),GS(r,t,(n,o)=>WS(n,o,e))}function ex(){return T.backend.floatPrecision()===32?cH:TE}function GS(r,t,e){let n=!0;if((hr(r)||hr(t))&&(n=!1),hr(r)&&hr(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=Mr(r),a=Mr(t);if(!An(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=hr(r)?r:zo(r),s=hr(t)?t:zo(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 fH(r,t){let e=typeof t==\"string\"||typeof t==\"number\"||typeof t==\"boolean\"?[t]:t;return Bo(r)||Bo(r[0])||Bo(t)||Bo(t[0])?GS(r,e,(n,o)=>n==o):GS(r,t,(n,o)=>WS(n,o,0))}function EE(r,t,e){if(e==null&&(e=ex()),!WS(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!=\"undefined\"&&expect().nothing()}function WS(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function dH(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function hH(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 xH(r){await r.play(),\"requestVideoFrameCallback\"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var $E=\"3.21.0\";function yH(r,t){let e=I(r,\"a\",\"add\"),n=I(t,\"b\",\"add\");[e,n]=Wt(e,n);let o={a:e,b:n};return T.runKernel(Yn,o)}var X=k({add_:yH});function bH(r,t){let e=I(r,\"a\",\"floorDiv\"),n=I(t,\"b\",\"floorDiv\");[e,n]=Wt(e,n);let o={a:e,b:n};return T.runKernel(rs,o)}var Xp=k({floorDiv_:bH});function wH(r,t){let e=I(r,\"a\",\"div\"),n=I(t,\"b\",\"div\");if([e,n]=Wt(e,n),e.dtype===\"int32\"&&n.dtype===\"int32\")return Xp(e,n);let o={a:e,b:n},s={};return T.runKernel(Jo,o,s)}var pt=k({div_:wH});function CH(r,t){let e=I(r,\"a\",\"mul\"),n=I(t,\"b\",\"mul\");[e,n]=Wt(e,n);let o={a:e,b:n};return T.runKernel(ds,o)}var R=k({mul_:CH});function IH(r){let t=I(r,\"x\",\"abs\");if(t.dtype===\"complex64\"){let e={x:t};return T.runKernel(Tl,e)}else{let e={x:t};return T.runKernel(oi,e)}}var Ee=k({abs_:IH});function vH(r){let e={x:I(r,\"x\",\"acos\")};return T.runKernel(ra,e)}var rx=k({acos_:vH});function SH(r){let e={x:I(r,\"x\",\"acosh\")};return T.runKernel(na,e)}var nx=k({acosh_:SH});function NH(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(!An(o.shape,e.shape))throw new Error(\"All tensors passed to tf.addN() must have the same shape\")});let n=t;return T.runKernel(Vo,n)}var DE=k({addN_:NH});function kH(r,t=null,e=!1){let o={x:I(r,\"x\",\"all\",\"bool\")},s={axis:t,keepDims:e};return T.runKernel(oa,o,s)}var Yp=k({all_:kH});function TH(r,t=null,e=!1){let o={x:I(r,\"x\",\"any\",\"bool\")},s={axis:t,keepDims:e};return T.runKernel(sa,o,s)}var Hu=k({any_:TH});function EH(r,t=0){let n={x:I(r,\"x\",\"argMax\")},o={axis:t};return T.runKernel(Go,n,o)}var Ei=k({argMax_:EH});function _H(r,t=0){let n={x:I(r,\"x\",\"argMin\")},o={axis:t};return T.runKernel(Nl,n,o)}var ox=k({argMin_:_H});function AH(r){let e={x:I(r,\"x\",\"asin\")};return T.runKernel(ia,e)}var sx=k({asin_:AH});function $H(r){let e={x:I(r,\"x\",\"asinh\")};return T.runKernel(aa,e)}var ix=k({asinh_:$H});function DH(r){let e={x:I(r,\"x\",\"atan\")};return T.runKernel(la,e)}var ax=k({atan_:DH});function RH(r,t){let e=I(r,\"a\",\"atan2\"),n=I(t,\"b\",\"atan2\");[e,n]=Wt(e,n);let o={a:e,b:n};return T.runKernel(ca,o)}var lx=k({atan2_:RH});function FH(r){let e={x:I(r,\"x\",\"atanh\")};return T.runKernel(ua,e)}var ux=k({atanh_:FH});function OH(r,t,e,n,o=\"NHWC\",s){let i=r[3],a=[...t,i],u=FE(o);return Ku(r,a,e,s,n,null,null,u)}function HS(r,t,e,n,o,s,i=\"channelsLast\"){let[a,u]=cx(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 Ku(r,l,e,n,o,s,!1,i)}function PH(r,t,e,n,o,s,i=\"NDHWC\"){let[a,u,l]=US(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 RE(r,c,e,n,o,!1,p,s)}function Ku(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]=cx(e),[x,b]=cx(n),w=Zp(m,x),C=Zp(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 RE(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]=US(e),[C,N,_]=US(n),A=Zp(f,C),$=Zp(d,N),F=Zp(h,_),{padInfo:P,outDepth:V,outHeight:G,outWidth:W}=BH(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 LH(r,t,e,n,o){n==null&&(n=qS(r,t,e));let s=r[0],i=r[1],a=qu((s-t+2*n)/e+1,o),u=qu((i-t+2*n)/e+1,o);return[a,u]}function MH(r,t,e,n,o,s){o==null&&(o=qS(r,t,n));let i=r[0],a=r[1],u=r[2],l=qu((i-t+2*o)/n+1,s),c=qu((a-t+2*o)/n+1,s),p=qu((u-t+2*o)/n+1,s);return[l,c,p,e]}function qS(r,t,e,n=1){let o=Zp(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function cx(r){return typeof r==\"number\"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function US(r){return typeof r==\"number\"?[r,r,r]:r}function Zp(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=LH([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=qu((t-s+m+f)/n+1,a),p=qu((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function BH(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=MH([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 qu(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 Qn(r){let[t,e,n]=cx(r);return t===1&&e===1&&n===1}function _r(r,t){return Qn(r)||Qn(t)}function FE(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(ea(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(ea(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 VH(r,t){let n={x:I(r,\"x\",\"reshape\",\"string_or_numeric\")},o={shape:t};return T.runKernel(mi,n,o)}var D=k({reshape_:VH});function GH(r,t,e,n,o){let s=I(r,\"x\",\"avgPool\",\"float32\"),i=1;E(_r(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=D(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=T.runKernel(Wo,l,c);return p=J(p,s.dtype),u?D(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var jl=k({avgPool_:GH});function WH(r,t,e,n,o,s=\"NDHWC\"){let i=I(r,\"x\",\"avgPool3d\",\"float32\"),a=i,u=!1;i.rank===4&&(u=!0,a=D(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=T.runKernel(kl,l,c);return p=J(p,a.dtype),u?D(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var px=k({avgPool3d_:WH});function UH(r,t=0){E(r.length>=1,()=>\"Pass at least one tensor to concat\");let e=qa(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 T.runKernel(ii,n,o)}var ne=k({concat_:UH});function HH(r){let e={x:I(r,\"x\",\"sigmoid\",\"float32\")};return T.runKernel(Es,e)}var Xr=k({sigmoid_:HH});function qH(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 T.runKernel(di,o,s)}var Dt=k({slice_:qH});function KH(r){let e={x:I(r,\"x\",\"tanh\",\"float32\")};return T.runKernel(Os,e)}var _i=k({tanh_:KH});function jH(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=Dt(d,[0,0],x),w=Dt(d,[0,g],x),C=Dt(d,[0,g*2],x),N=Dt(d,[0,g*3],x),_=X(R(Xr(b),_i(w)),R(c,Xr(X(i,C)))),A=R(_i(_),Xr(N));return[_,A]}var OE=k({basicLSTMCell_:jH});function XH(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 T.runKernel(si,s,i)}var Xl=k({batchToSpaceND_:XH});function PE(r){let t;return r.rank===0||r.rank===1?t=D(r,[1,1,1,r.size]):r.rank===2?t=D(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?t=D(r,[1,r.shape[0],r.shape[1],r.shape[2]]):t=r,t}function YH(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:PE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=T.runKernel(ns,m,f);return D(d,i.shape)}var Ai=k({batchNorm_:YH});function ZH(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}.`),Ai(i,a,u,c,l,s)}var mx=k({batchNorm2d_:ZH});function JH(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}.`),Ai(i,a,u,c,l,s)}var fx=k({batchNorm3d_:JH});function QH(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}.`),Ai(i,a,u,c,l,s)}var dx=k({batchNorm4d_:QH});function tq(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 T.runKernel(up,s,i)}var hx=k({bincount_:tq});function eq(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 T.runKernel(cp,o)}var LE=k({broadcastArgs_:eq});function rq(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 T.runKernel(Zn,a,u)}var $i=k({broadcastTo_:rq});function nq(r){let e={x:I(r,\"x\",\"ceil\",\"float32\")};return T.runKernel(Ho,e)}var gx=k({ceil_:nq});function go(r,t,e){let n={shape:r,value:t,dtype:e};return T.runKernel(Al,{},n)}function oq(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 go(n.shape,t,n.dtype);let o={x:n},s={clipValueMin:t,clipValueMax:e};return T.runKernel(ao,o,s)}var Cr=k({clipByValue_:oq});function sq(r){return ne(r,0)}var xx=k({concat1d_:sq});function iq(r,t){return ne(r,t)}var yx=k({concat2d_:iq});function aq(r,t){return ne(r,t)}var bx=k({concat3d_:aq});function lq(r,t){return ne(r,t)}var wx=k({concat4d_:lq});function uq(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=D(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(_r(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=T.runKernel(qo,m,f);return c?D(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Cn=k({conv2d_:uq});function cq(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=D(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(_r(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=D(u,[1,u.shape[0],u.shape[1],u.shape[2]]),m=D(l,[l.shape[0],1,l.shape[1],l.shape[2]]),g=Cn(m,p,[1,e],n,\"NHWC\",[1,s],i);return c?D(g,[g.shape[2],g.shape[3]]):D(g,[g.shape[0],g.shape[2],g.shape[3]])}var Jp=k({conv1d_:cq});function pq(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=D(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=T.runKernel(Ko,m,f);return l?D(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Qp=k({conv2DBackpropInput_:pq});function mq(r,t,e,n,o,s){let i=I(r,\"x\",\"conv2dTranspose\"),a=I(t,\"filter\",\"conv2dTranspose\");return Qp(e,i,a,n,o,\"NHWC\",s)}var tm=k({conv2dTranspose_:mq});function fq(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=D(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(_r(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=T.runKernel(El,c,p);return l?D(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Cx=k({conv3d_:fq});function dq(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=D(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=T.runKernel(dp,c,p);return a?D(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Ix=k({conv3DBackpropInput_:dq});function hq(r,t,e,n,o){let s=I(r,\"x\",\"conv3dTranspose\"),i=I(t,\"filter\",\"conv3dTranspose\");return Ix(e,s,i,n,o)}var vx=k({conv3dTranspose_:hq});function gq(r){let e={x:I(r,\"x\",\"cos\",\"float32\")};return T.runKernel(jo,e)}var Yl=k({cos_:gq});function xq(r){let e={x:I(r,\"x\",\"cosh\",\"float32\")};return T.runKernel(Xo,e)}var em=k({cosh_:xq});function yq(r,t=0,e=!1,n=!1){let s={x:I(r,\"x\",\"cumprod\")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(pa,s,i)}var ju=k({cumprod_:yq});function bq(r,t=0,e=!1,n=!1){let s={x:I(r,\"x\",\"cumsum\")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(Yo,s,i)}var rm=k({cumsum_:bq});function wq(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 T.runKernel(hp,i,a)}var ME=k({denseBincount_:wq});function Cq(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 T.runKernel(fa,a,u)}var Sx=k({depthToSpace_:Cq});function Iq(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=D(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=T.runKernel(Zo,m,f);return c?D(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Di=k({depthwiseConv2d_:Iq});function vq(r){let e={x:I(r,\"x\",\"diag\")};return T.runKernel(yp,e)}var zE=k({diag_:vq});function Sq(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=D(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=T.runKernel(_l,c,p);return l?D(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Nx=k({dilation2d_:Sq});function Nq(r,t){let e=I(r,\"a\",\"equal\",\"string_or_numeric\"),n=I(t,\"b\",\"equal\",\"string_or_numeric\");[e,n]=Wt(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(ha,o)}var Ar=k({equal_:Nq});function kq(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=$i(s,i),u=$i(n,i),l=$i(o,i),c={condition:a,t:u,e:l};return T.runKernel(fi,c)}var _e=k({where_:kq});function Tq(r){let e={x:I(r,\"x\",\"zerosLike\")};return T.runKernel(yi,e)}var It=k({zerosLike_:Tq});function Eq(r,t){let e=I(r,\"a\",\"div\"),n=I(t,\"b\",\"div\");[e,n]=Wt(e,n);let o=pt(e,n),s=It(o),i=Ar(n,s);return _e(i,s,o)}var kx=k({divNoNan_:Eq});function _q(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=D(e,[1,-1]),a=D(n,[-1,1]),u=Lt(i,a);return D(u,[])}else if(e.rank===1&&n.rank===2){let i=D(e,[1,-1]),a=D(n,[n.shape[0],n.shape[1]]),u=Lt(i,a);return D(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=D(n,[-1,1]),a=Lt(e,i);return D(a,[a.size])}else{let i=D(n,[n.shape[0],n.shape[1]]);return Lt(e,i)}}var Tx=k({dot_:_q});function Aq(r,...t){let e=t.map((o,s)=>I(o,`tensors${s}`,\"einsum\")),n={equation:r};return T.runKernel(bp,e,n)}var BE=k({einsum_:Aq});function $q(r){let e={x:I(r,\"x\",\"elu\",\"float32\")};return T.runKernel(Qo,e)}var Ri=k({elu_:$q});function Dq(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 T.runKernel(da,e)}var Ex=k({erf_:Dq});function KS(r,t){for(let e=0;er[s]);return[e,o]}function xo(r,t){let e=t.map(n=>1);return VE(r,e,t)}function Rq(r,t,e){E(KS(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function XS(r,t){if(KS(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function ih(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function Fq(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 T.runKernel(ai,n,o)}var gr=k({expandDims_:Uq});function Hq(r){let e={x:I(r,\"x\",\"expm1\")};return T.runKernel(ga,e)}var Ax=k({expm1_:Hq});function qq(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 T.runKernel(Zn,n,o)}var $r=k({tile_:qq});function Kq(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(ea(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,a=!1;s.rank===3&&(a=!0,i=D(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=T.runKernel($l,u,l);return a?D(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Fx=k({localResponseNormalization_:oK});function sK(r){let e={x:I(r,\"x\",\"log\",\"float32\")};return T.runKernel(is,e)}var Ir=k({log_:sK});function iK(r){let e={x:I(r,\"x\",\"log1p\")};return T.runKernel(Na,e)}var Jl=k({log1p_:iK});function aK(r){return E(ri(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 T.tidy(()=>{let{value:s,grads:i}=T.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)\"),Px(i),i[0]})}}function lK(r){return E(ri(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=qa(t,\"args\",\"tf.grads\",\"string_or_numeric\"),o=e!=null?I(e,\"dy\",\"tf.grads\"):null;return T.tidy(()=>{let{value:s,grads:i}=T.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,...])\"),Px(i),i})}}function uK(r){return E(ri(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}=T.gradients(()=>r(t),[t],e);return Px(n),{grad:n[0],value:o}}}function cK(r){return E(ri(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=T.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,...])\"),Px(n.grads),n}}function Ox(r,t){E(ri(r),()=>\"The f passed in variableGrads(f) must be a function\"),E(t==null||Array.isArray(t)&&t.every(l=>l instanceof Ha),()=>\"The varList passed in variableGrads(f, varList) must be an array of variables\");let e=t!=null;if(!e){t=[];for(let l in T.registeredVariables)t.push(T.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}=T.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 ln(r){return T.customGrad(r)}function Px(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 pK(r){let e={x:I(r,\"x\",\"softplus\")};return T.runKernel(za,e)}var Ms=k({softplus_:pK});function mK(r){let t=I(r,\"x\",\"logSigmoid\");return ln(n=>({value:Ut(Ms(Ut(n))),gradFunc:i=>R(i,Xr(Ut(n)))}))(t)}var Lx=k({logSigmoid_:mK});function fK(r,t){let e=I(r,\"a\",\"sub\"),n=I(t,\"b\",\"sub\");[e,n]=Wt(e,n);let o={a:e,b:n};return T.runKernel(Rs,o)}var ct=k({sub_:fK});function dK(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 ln((o,s)=>{let a=Br(o,t,!0),u=ct(o,a),l=ct(J(u,\"float32\"),Ir(ft(er(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=er(f);return ct(p,R(ft(p,t,d),h))}}})(e)}var om=k({logSoftmax_:dK});function hK(r,t=null,e=!1){let n=I(r,\"x\",\"logSumExp\"),o=ar(t,n.shape),s=Br(n,o,!0),i=ct(n,s),a=er(i),u=ft(a,o),l=Ir(u),c=X(D(s,l.shape),l);if(e){let p=xo(c.shape,o);return D(c,p)}return c}var sm=k({logSumExp_:hK});function gK(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 T.runKernel(ka,o)}var Dr=k({logicalAnd_:gK});function xK(r){let e={x:I(r,\"x\",\"logicalNot\",\"bool\")};return T.runKernel(Ta,e)}var Ql=k({logicalNot_:xK});function yK(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 T.runKernel(Ea,o)}var im=k({logicalOr_:yK});function bK(r,t){let e=I(r,\"a\",\"logicalXor\",\"bool\"),n=I(t,\"b\",\"logicalXor\",\"bool\");return Pt(e.shape,n.shape),Dr(im(r,t),Ql(Dr(r,t)))}var Mx=k({logicalXor_:bK});var zx=2147483648;function wK(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=D(n,[-1,s]),u=D(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(Zt(u.shape)>=zx)throw new Error(`values tensor size must less than ${zx}`);if(a.shape[1]>=zx)throw new Error(`trailing dim_size must less than ${zx} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return T.runKernel(Op,l,c)}var ah=k({searchSorted_:wK});function UE(r,t){return ah(r,t,\"left\")}function CK(r,t,e,n,o){let s=I(r,\"x\",\"maxPool\"),i=1,a=s,u=!1;s.rank===3&&(u=!0,a=D(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(_r(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=T.runKernel(us,l,c);return u?D(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var tu=k({maxPool_:CK});function IK(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=D(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=T.runKernel(Dl,l,c);return u?D(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Bx=k({maxPool3d_:IK});function vK(r,t,e,n,o=!1){let i={x:I(r,\"x\",\"maxPoolWithArgmax\")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=T.runKernel(Ep,i,a);return{result:u[0],indexes:u[1]}}var HE=k({maxPoolWithArgmax_:vK});function SK(r,t){let e=I(r,\"a\",\"maximum\"),n=I(t,\"b\",\"maximum\");[e,n]=Wt(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 T.runKernel(ls,o)}var In=k({maximum_:SK});function NK(r,t=null,e=!1){let o={x:I(r,\"x\",\"mean\")},s={axis:t,keepDims:e};return T.runKernel(cs,o,s)}var Se=k({mean_:NK});function Ne(r,t=\"float32\"){if(t===\"complex64\"){let n=Ne(r,\"float32\"),o=Ne(r,\"float32\");return bn(n,o)}let e=ip(Zt(r),t);return T.makeTensor(e,r,t)}function lr(r,t=\"float32\"){if(t===\"complex64\"){let n=lr(r,\"float32\"),o=Ne(r,\"float32\");return bn(n,o)}let e=zd(Zt(r),t);return T.makeTensor(e,r,t)}function qE(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=Zt(n.shape),i=Zt(o.shape);return e===\"xy\"?(n=D(n,[1,-1]),o=D(o,[-1,1]),[Lt(lr([i,1],n.dtype),n),Lt(o,lr([1,s],o.dtype))]):(n=D(n,[-1,1]),o=D(o,[1,-1]),[Lt(n,lr([1,i],n.dtype)),Lt(lr([s,1],o.dtype),o)])}function kK(r,t){let e=I(r,\"a\",\"minimum\"),n=I(t,\"b\",\"minimum\");[e,n]=Wt(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 T.runKernel(ms,o)}var Pi=k({minimum_:kK});function TK(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 T.runKernel(fs,i,s)}var Vx=k({mirrorPad_:TK});function EK(r,t){let e=I(r,\"a\",\"mod\"),n=I(t,\"b\",\"mod\");[e,n]=Wt(e,n);let o={a:e,b:n};return T.runKernel(_a,o)}var Gx=k({mod_:EK});function _K(r,t=null,e=!1){r=I(r,\"x\",\"moments\");let n=ar(t,r.shape),o=Se(r,n,e),s=o.shape;e||(s=xo(o.shape,n));let i=Mt(ct(J(r,\"float32\"),D(o,s))),a=Se(i,n,e);return{mean:o,variance:a}}var Zu=k({moments_:_K});function AK(r,t,e,n){let o=I(t,\"data\",\"multiRNNCell\"),s=qa(e,\"c\",\"multiRNNCell\"),i=qa(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?D(o,[1,-1]):o},l={numSamples:t,seed:e,normalized:n},c=T.runKernel(_p,u,l);return i===1?D(c,[c.size]):c}var jE=k({multinomial_:$K});function DK(r,t){let e=I(r,\"a\",\"notEqual\",\"string_or_numeric\"),n=I(t,\"b\",\"notEqual\",\"string_or_numeric\");[e,n]=Wt(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(Aa,o)}var zs=k({notEqual_:DK});function RK(r){let e={x:I(r,\"x\",\"onesLike\")};return T.runKernel(ci,e)}var xr=k({onesLike_:RK});function FK(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=D(e,[-1,1]),s=D(n,[1,-1]);return Lt(o,s)}var XE=k({outerProduct_:FK});function OK(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 T.runKernel(gs,s,o)}var un=k({pad_:OK});function PK(r,t,e=0){return E(t.length===2,()=>\"Invalid number of paddings. Must be length of 2.\"),un(r,[t],e)}var YE=k({pad1d_:PK});function LK(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.\"),un(r,t,e)}var ZE=k({pad2d_:LK});function MK(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.\"),un(r,t,e)}var JE=k({pad3d_:MK});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.\"),un(r,t,e)}var QE=k({pad4d_:zK});function BK(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 T.runKernel(hi,o,s)}var eu=k({spaceToBatchND_:BK});function VK(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=D(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(_r(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=HS(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n===\"same\"?m=WK([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=GK([c.inHeight,c.inWidth],p,m),g=f?n:\"valid\",x=f?u:eu(u,p,d),w=(e===\"avg\"?()=>jl(x,t,s,g,i):()=>tu(x,t,s,g,i))(),C=f?w:Xl(w,p,h);return l?D(C,[C.shape[1],C.shape[2],C.shape[3]]):C}function GK(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 WK(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 Wx=k({pool_:VK});function UK(r,t){let e=I(r,\"x\",\"prelu\"),n=I(t,\"alpha\",\"prelu\"),o={x:e,alpha:n};return T.runKernel(ys,o)}var ru=k({prelu_:UK});function HK(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 T.runKernel(bs,o,s)}var Ux=k({prod_:HK});function qK(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=T.runKernel(Ap,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var t_=k({raggedGather_:qK});function KK(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 T.runKernel($p,l,c)}var e_=k({raggedTensorToTensor_:KK});function jK(r,t,e){let n=Zt(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}},qx=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=jx.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=jx.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function ej(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 qx(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}.`),ur(t,0)}var C_=k({reverse1d_:uj});function cj(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}.`),ur(e,t)}var I_=k({reverse2d_:cj});function pj(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}.`),ur(e,t)}var v_=k({reverse3d_:pj});function mj(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}.`),ur(e,t)}var S_=k({reverse4d_:mj});function fj(r){let e={x:I(r,\"x\",\"round\")};return T.runKernel(Ns,e)}var lm=k({round_:fj});function dj(r){let e={x:I(r,\"x\",\"rsqrt\",\"float32\")};return T.runKernel(ks,e)}var um=k({rsqrt_:dj});function hj(r){let e={x:I(r,\"x\",\"selu\")};return T.runKernel(Pa,e)}var cm=k({selu_:hj});function gj(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=D(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=Di(c,u,n,o,i,s),g=Cn(d,l,1,\"valid\",i);return p?D(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var pm=k({separableConv2d_:gj});async function xj(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`),Dt(n,[t],[e])}var dm=k({slice1d_:Cj});function Ij(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`),Dt(n,t,e)}var uh=k({slice2d_:Ij});function vj(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`),Dt(n,t,e)}var hm=k({slice3d_:vj});function Sj(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`),Dt(n,t,e)}var ec=k({slice4d_:Sj});function Nj(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 T.runKernel($s,n,o)}var ou=k({softmax_:Nj});function kj(r){E(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Cp,t)}var su=k({fft_:kj});function Tj(r){E(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Ip,t)}var Za=k({ifft_:Tj});function Ej(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=D(r,[e,t]);n=Za(o)}else{let o=[e,2*(t-1)],s=D(Xa(r),[e,t]),i=D(Kl(r),[e,t]),a=ur(Dt(s,[0,1],[e,t-2]),1),u=R(ur(Dt(i,[0,1],[e,t-2]),1),mt(-1)),l=ne([s,a],1),c=ne([i,u],1),p=D(bn(l,c),[o[0],o[1]]);n=Za(p)}if(n=Xa(n),r.rank===3&&r.shape[0]!==0){let o=n,s=r.shape[0];n=D(n,[s,n.shape[0]/s,n.shape[1]]),o.dispose()}return n}var gm=k({irfft_:Ej});function _j(r,t,e=0){let o={x:I(r,\"x\",\"split\")},s={numOrSizeSplits:t,axis:e};return T.runKernel(gi,o,s)}var cr=k({split_:_j});function Aj(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=Dt(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=D(bn(o,s),[n,e]),a=su(i),u=Math.floor(e/2)+1,l=Xa(a),c=Kl(a),p=cr(l,[u,e-u],l.shape.length-1),m=cr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,D(bn(p[0],m[0]),f)}var iu=k({rfft_:Aj});function $j(r,t){let e=I(r,\"a\",\"squaredDifference\"),n=I(t,\"b\",\"squaredDifference\");[e,n]=Wt(e,n),Pt(e.shape,n.shape);let o={a:e,b:n},s={};return T.runKernel(Ds,o,s)}var xm=k({squaredDifference_:$j});function Dj(r,t){let e=I(r,\"x\",\"squeeze\",\"string_or_numeric\");return D(e,Xv(e.shape,t).newShape)}var Pn=k({squeeze_:Dj});function Rj(r,t=0){let e=qa(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 T.runKernel(pi,n,o)}var rr=k({stack_:Rj});function Fj(r,t=0){let n={x:I(r,\"x\",\"step\")},o={alpha:t};return T.runKernel(uo,n,o)}var yo=k({step_:Fj});function Oj(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 T.runKernel(Va,c,p)}var Zx=k({stridedSlice_:Oj});function Pj(r){let e={x:I(r,\"x\",\"tan\",\"float32\")};return T.runKernel(Fs,e)}var Jx=k({tan_:Pj});function Le(r,t){Xn(r);let e=Mr(r,t);if(e.length!==1)throw new Error(\"tensor1d() requires values to be a flat/TypedArray\");return on(r,null,e,t)}function Bs(r,t,e){if(Xn(r),t!=null&&t.length!==2)throw new Error(\"tensor2d() requires shape to have two numbers\");let n=Mr(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 k_(r,t,e){if(Xn(r),t!=null&&t.length!==4)throw new Error(\"tensor4d() requires shape to have four numbers\");let n=Mr(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 T_(r,t,e){if(Xn(r),t!=null&&t.length!==5)throw new Error(\"tensor5d() requires shape to have five numbers\");let n=Mr(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 E_(r,t,e){if(Xn(r),t!=null&&t.length!==6)throw new Error(\"tensor6d() requires shape to have six numbers\");let n=Mr(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 Lj(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]=T.runKernel(Ga,s,i);return{values:a,indices:u}}var Qx=k({topk_:Lj});function Mj(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]=T.runKernel(Lp,n,o);return{values:s,indices:i}}var ty=k({unique_:zj});function Bj(r,t,e){let n=I(r,\"x\",\"unsortedSegmentSum\"),o=I(t,\"segmentIds\",\"unsortedSegmentSum\",\"int32\");E(ea(e),()=>\"numSegments must be of dtype int\");let s={x:n,segmentIds:o},i={numSegments:e};return T.runKernel(Vl,s,i)}var bm=k({unsortedSegmentSum_:Bj});function Vj(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 T.runKernel(xi,n,o)}var vr=k({unstack_:Vj});function __(r,t){return ah(r,t,\"right\")}function ey(r,t=!0,e,n){return T.makeVariable(r,t,e,n)}function ry(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=R(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 qj=k({movingAverage_:Hj});function Kj(r,t,e){let n=I(r,\"indices\",\"scatterND\",\"int32\"),o=I(t,\"updates\",\"scatterND\");tx(o,n,e);let s={indices:n,updates:o},i={shape:e};return T.runKernel(Oa,s,i)}var jj=k({scatterND_:Kj});function A_(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 Yj(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);A_(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return T.runKernel(Pp,a,u)}var Zj=k({sparseToDense_:Yj});function Jj(r,t){let e=I(t,\"indices\",\"gatherND\",\"int32\"),o={params:I(r,\"x\",\"gatherND\",\"string_or_numeric\"),indices:e};return T.runKernel(ya,o)}var Qj=k({gatherND_:Jj});function $_(r,t){if(t==null)return r.shape.slice();if(An(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=$_(o,e),i=1-t,a=pt(Fi(X(Li(s,0,1,\"float32\",n),i)),i);return R(o,a)}var n0=k({dropout_:t6});function o0(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function ch(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=Yv(\"bool\",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hD_,depthwiseConv2d:()=>R_,matMul:()=>F_});function n6(r,t,e,n,o,s=\"NHWC\",i){let a=r;r.rank===3&&(a=D(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=D(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 T.runKernel(mp,p,m)}var wm=k({conv2DBackpropFilter_:n6});function rc(r,t,e){if(e==null||e===\"linear\")return r;if(e===\"relu\")return R(r,yo(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)),D(e,r.shape)}function oc(r,t,e,n){if(t===\"linear\")return r;if(t===\"relu\")return Rr(r);if(t===\"elu\")return Ri(r);if(t===\"relu6\")return am(r);if(t===\"prelu\")return ru(r,e);if(t===\"leakyrelu\")return Zl(r,n);if(t===\"sigmoid\")return Xr(r);throw new Error(`Unknown fused activation ${t}.`)}var sc=(r,t)=>!(r>0)||t===\"linear\";function o6({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(T.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 _=Cn(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=D(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(_r(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=Ku(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=I(a,\"bias\",\"fused conv2d\"),[x]=Wt(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(Qn(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=Qp(F.shape,G,$,e,n),q=wm(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?ln((A,$,F)=>{let P=T.runKernel(wi,C,N);return F([$,A,P]),d&&(P=D(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:w}})(f,m):ln((A,$,F,P)=>{let V=T.runKernel(wi,C,N);return P([$,A,V,F]),d&&(V=D(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var D_=k({fusedConv2d_:o6});function s6(r,t,e,n,o,s=[1,1],i){let a=r;r.rank===3&&(a=D(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=D(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 T.runKernel(gp,l,c)}var oy=k({depthwiseConv2dNativeBackpropFilter_:s6});function i6(r,t,e,n,o,s=[1,1],i){let a=t,u=!1;t.rank===3&&(u=!0,a=D(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=T.runKernel(xp,l,c);return u?D(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var sy=k({depthwiseConv2dNativeBackpropInput_:i6});function a6({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(T.state.gradientDepth,u)===!1){let N=Di(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=D(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(_r(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=Ku(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=I(a,\"bias\",\"fused conv2d\"),[g]=Wt(g,p),Pt(h.outShape,g.shape));let x;l!=null&&(x=I(l,\"prelu weights\",\"fused depthwiseConv2d\"));let b=(N,_)=>{E(Qn(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=sy($.shape,V,A,e,n,s,i),W=oy($,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?ln((_,A,$)=>{let F=T.runKernel(Ci,w,C);return $([A,_,F]),d&&(F=D(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):ln((_,A,$,F)=>{let P=T.runKernel(Ci,w,C);return F([A,_,P,$]),d&&(P=D(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m,g)}var R_=k({fusedDepthwiseConv2d_:a6});function l6({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s=\"linear\",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(sc(T.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]=Wt(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=Zt(d),x=Zt(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?D(u,[g,c,m]):D(u,[g,m,c]),N=n?D(l,[x,f,p]):D(l,[x,p,f]),_;o!=null&&(_=I(o,\"bias\",\"fused matMul\"),[_]=Wt(_,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(D(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?ln((G,W,q)=>{let H=T.runKernel(bi,F,P);return q([G,W,H]),{value:D(H,w),gradFunc:$}})(C,N):ln((G,W,q,H)=>{let j=T.runKernel(bi,F,P);return H([G,W,j,q]),{value:D(j,w),gradFunc:$}})(C,N,_)}var F_=k({fusedMatMul_:l6});function u6(r){return ch(r,.54,.46)}var O_=k({hammingWindow_:u6});function c6(r){return ch(r,.5,.5)}var iy=k({hannWindow_:c6});function p6(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Dt(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 T.runKernel(ma,c,p)}var L_=k({cropAndResize_:f6});function d6(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 T.runKernel(xa,e,{})}var M_=k({flipLeftRight_:d6});function h6(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,$r(t,o)}var z_=k({grayscaleToRGB_:h6});function g6(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 T.runKernel(Ua,s,i)}var B_=k({rotateWithOffset_:g6});function bo(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 x6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=I(r,\"boxes\",\"nonMaxSuppression\",\"float32\"),i=I(t,\"scores\",\"nonMaxSuppression\",\"float32\"),a=bo(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return T.runKernel($a,{boxes:s,scores:i},u)}var V_=k({nonMaxSuppression_:x6});function G_(r,t,e){let n=y6(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function y6(r,t,e){return w6(r,t,e||b6)}function b6(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 ly(r,t,e,n,o){return s0(r,t,e,n,o,0)}function uy(r,t,e,n,o,s){return s0(r,t,e,n,o,0,!1,s,!0)}function cy(r,t,e,n,o,s){return s0(r,t,e,n,o,s,!0)}function s0(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(W_);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 _=C6(r,b,p[N]);if(_>=n){C=!0;break}if(g.score=g.score*I6(n,c,_),g.score<=o)break}g.suppressBeginIndex=p.length,C||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&G_(l,g,W_))}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 C6(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 I6(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function W_(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function v6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=I(r,\"boxes\",\"nonMaxSuppressionAsync\"),i=I(t,\"scores\",\"nonMaxSuppressionAsync\"),a=bo(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}=ly(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Le(p,\"int32\")}var U_=v6;function S6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=I(r,\"boxes\",\"nonMaxSuppression\"),a=I(t,\"scores\",\"nonMaxSuppression\"),u=bo(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=T.runKernel(Ra,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var H_=k({nonMaxSuppressionWithScore_:S6});async function N6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=I(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=I(t,\"scores\",\"nonMaxSuppressionAsync\"),u=bo(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}=cy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Le(m,\"int32\"),selectedScores:Le(f)}}var q_=N6;function k6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=I(r,\"boxes\",\"nonMaxSuppression\"),a=I(t,\"scores\",\"nonMaxSuppression\"),u=bo(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=T.runKernel(Da,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var K_=k({nonMaxSuppressionPadded_:k6});async function T6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=I(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=I(t,\"scores\",\"nonMaxSuppressionAsync\"),u=bo(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}=uy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Le(d,\"int32\"),validOutputs:mt(h,\"int32\")}}var j_=T6;function E6(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=D(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=T.runKernel(Is,a,u);return i?D(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var py=k({resizeBilinear_:E6});function _6(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=D(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=T.runKernel(Cs,a,u);return i?D(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var my=k({resizeNearestNeighbor_:_6});function A6(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=R(Le([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]=cr(o,[1,1,1],-1);let g=R(c,s),x=R(p,i),b=R(m,a);f=X(X(g,x),b)}else f=r;if(t===\"otsu\"){let g=hx(J(lm(f),\"int32\"),wr([]),256);l=$6(g,u)}let d=e?On(f,l):He(f,l);return J(R(d,255),\"int32\")}function $6(r,t){let e=Le([-1]),n=Le([0]),o=Le([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 T.runKernel(Wa,u,l)}var Y_=k({transform_:D6});function R6(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=D(nu(0,s,1,\"int32\"),[-1,1]),u=nu(0,i,1,\"int32\"),l=ct(a,u),c=Dr(On(l,mt(+t,\"int32\")),Fn(l,mt(-e,\"int32\"))),p=Ne([s,i],n.dtype);return D(rr(vr(D(n,[-1,s,i])).map(m=>_e(c,m,p))),o)}var Z_=k({bandPart_:R6});function F6(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=cr(r,r.shape[0],0).map(o=>Pn(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 Q_(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=vr(D(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=Q_(u,t);o.push(l),s.push(c)});let i=D(rr(o,0),r.shape),a=D(rr(s,0),r.shape);return[i,a]}}function Q_(r,t=!1){return T.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=Bs([[1]],[1,1]),a=sn(i),u=e>=n?n:e;for(let l=0;l{let f=Dt(s,[l,l],[e-l,1]),d=Ya(f),h=Dt(s,[l,l],[1,1]),g=_e(He(h,0),Bs([[-1]]),Bs([[1]])),x=ct(h,R(g,d)),b=pt(f,x);b.shape[0]===1?a=sn(i):a=ne([i,Dt(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ut(pt(Lt(g,x),d)),C=Dt(s,[l,0],[e-l,n]),N=R(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([Dt(s,[0,0],[l,n]),F],0)}let A=Ot(N),$=Dt(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([Dt(o,[0,0],[e,l]),F],1)}return[a,s,o]}),St([c,p,m])}return!t&&e>n&&(o=Dt(o,[0,0],[e,n]),s=Dt(s,[0,0],[n,n])),[o,s]})}var tA=k({qr_:O6});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 P6(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:R(n,o);if(e===Xe.NONE)return s;if(e===Xe.SUM)return ft(s);if(e===Xe.MEAN){if(o==null)return Se(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=R(o,lr(n.shape)),a=J(ft(zs(i,mt(0))),\"float32\");return pt(ft(s),a)}}throw Error(`Unknown reduction: ${e}`)}var Vr=k({computeWeightedLoss_:P6});function L6(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 Vr(a,i,n)}var eA=k({absoluteDifference_:L6});function M6(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(R(s,i),e,!0));return Vr(l,a,o)}var rA=k({cosineDistance_:M6});function z6(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(R(mt(2),o),a);let u=Rr(ct(a,R(o,s)));return Vr(u,i,n)}var nA=k({hingeLoss_:z6});function B6(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=Pi(l,u),p=ct(l,c),m=X(R(mt(.5),Mt(c)),R(u,p));return Vr(m,a,o)}var oA=k({huberLoss_:B6});function V6(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=Ut(R(s,Ir(X(i,l)))),p=R(ct(u,s),Ir(X(ct(u,i),l))),m=ct(c,p);return Vr(m,a,o)}var sA=k({logLoss_:V6});function G6(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=xm(o,s);return Vr(a,i,n)}var iA=k({meanSquaredError_:G6});function W6(r,t){let e=I(r,\"labels\",\"sigmoidCrossEntropyWithLogits\"),n=I(t,\"logits\",\"sigmoidCrossEntropyWithLogits\");$e(e.shape,n.shape,\"Error in sigmoidCrossEntropyWithLogits: \");let o=Rr(n),s=R(n,e),i=Jl(er(Ut(Ee(n))));return X(ct(o,s),i)}function U6(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(R(s,ct(c,l)),R(p,l))}let u=W6(s,i);return Vr(u,a,o)}var aA=k({sigmoidCrossEntropy_:U6});function H6(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 ln((o,s,i)=>{let u=sm(s,[e],!0),l=ct(J(s,\"float32\"),u);i([o,l]);let c=Ut(R(l,o));return{value:ft(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=xo(f.shape,[e]);return[R(D(f,x),ct(J(h,\"float32\"),er(g))),R(D(f,x),ct(er(g),J(h,\"float32\")))]}}})(r,t)}function q6(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(R(s,ct(c,l)),pt(l,p))}let u=H6(s,i);return Vr(u,a,o)}var lA=k({softmaxCrossEntropy_:q6});function K6(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=T.runKernel(Fl,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var uA=k({sparseFillEmptyRows_:K6});function j6(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=T.runKernel(Ba,i);return{outputIndices:a[0],outputShape:a[1]}}var cA=k({sparseReshape_:j6});function X6(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 T.runKernel(Ol,i)}var pA=k({sparseSegmentMean_:X6});function Y6(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 T.runKernel(Pl,i)}var mA=k({sparseSegmentSum_:Y6});function Z6(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=T.runKernel(Ml,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var fA=k({stringNGrams_:Z6});function J6(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=T.runKernel(zl,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var dA=k({stringSplit_:J6});function Q6(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 T.runKernel(Bl,o,n)}var hA=k({stringToHashBucketFast_:Q6});var tX={fft:su,ifft:Za,rfft:iu,irfft:gm},eX={hammingWindow:O_,hannWindow:iy,frame:ay,stft:P_},lu={flipLeftRight:M_,grayscaleToRGB:z_,resizeNearestNeighbor:my,resizeBilinear:py,rotateWithOffset:B_,cropAndResize:L_,nonMaxSuppression:V_,nonMaxSuppressionAsync:U_,nonMaxSuppressionWithScore:H_,nonMaxSuppressionWithScoreAsync:q_,nonMaxSuppressionPadded:K_,nonMaxSuppressionPaddedAsync:j_,threshold:X_,transform:Y_},i0={bandPart:Z_,gramSchmidt:J_,qr:tA},rX={absoluteDifference:eA,computeWeightedLoss:Vr,cosineDistance:rA,hingeLoss:nA,huberLoss:oA,logLoss:sA,meanSquaredError:iA,sigmoidCrossEntropy:aA,softmaxCrossEntropy:lA},nX={sparseFillEmptyRows:uA,sparseReshape:cA,sparseSegmentMean:pA,sparseSegmentSum:mA},oX={stringNGrams:fA,stringSplit:dA,stringToHashBucketFast:hA};var Gr=class extends sh{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 St(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 Ox(t,e)}dispose(){this.iterations_!=null&&St(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(Gr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var uu=class extends Gr{constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.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(R(u,this.rho),R(Mt(a),1-this.rho)),p=R(pt(ve(X(l,this.epsilon)),ve(X(u,this.epsilon))),a),m=X(R(l,this.rho),R(Mt(p),1-this.rho));u.assign(c),l.assign(m);let f=X(R(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(St(this.accumulatedGrads.map(t=>t.variable)),St(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)}};uu.className=\"Adadelta\";wn(uu);var cu=class extends Gr{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=T.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>go(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(R(pt(i,ve(X(u,T.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&St(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)}};cu.className=\"Adagrad\";wn(cu);var pu=class extends Gr{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=T.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=T.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(R(c,this.beta1),R(l,1-this.beta1)),f=X(R(p,this.beta2),R(Mt(l),1-this.beta2)),d=pt(m,n),h=pt(f,o);c.assign(m),p.assign(f);let g=X(R(pt(d,X(ve(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign(R(this.accBeta1,this.beta1)),this.accBeta2.assign(R(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&St(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&St(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)}};pu.className=\"Adam\";wn(pu);var mu=class extends Gr{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=T.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(R(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=T.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(R(c,this.beta1),R(l,1-this.beta1)),f=R(p,this.beta2),d=Ee(l),h=In(f,d);c.assign(m),p.assign(h);let g=X(R(pt(o,n),pt(m,X(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(X(this.iteration,1)),this.accBeta1.assign(R(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&St(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&St(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)}};mu.className=\"Adamax\";wn(mu);var Mi=class extends Gr{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=T.registeredVariables[n];B(()=>{let a=X(R(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)}};Mi.className=\"SGD\";wn(Mi);var fu=class extends Mi{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=T.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(R(this.m,i),a);this.useNesterov?u=X(R(this.c,X(a,R(l,this.m))),s):u=X(R(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&St(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)}};fu.className=\"Momentum\";wn(fu);var du=class extends Gr{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=T.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=T.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(R(u,this.decay),R(Mt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=X(R(p,this.decay),R(a,1-this.decay)),f=pt(R(a,this.learningRate),ve(ct(c,X(Mt(m),this.epsilon)))),d=X(R(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(R(u,this.decay),R(Mt(a),1-this.decay)),m=X(R(l,this.momentum),pt(R(a,this.learningRate),ve(X(p,this.epsilon))));u.assign(p),l.assign(m);let f=ct(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&St(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&St(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&St(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)}};du.className=\"RMSProp\";wn(du);var Vs=class{static sgd(t){return new Mi(t)}static momentum(t,e,n=!1){return new fu(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new du(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new pu(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new uu(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new mu(t,e,n,o,s)}static adagrad(t,e=.1){return new cu(t,e)}};var ic={sgd:Vs.sgd,momentum:Vs.momentum,adadelta:Vs.adadelta,adagrad:Vs.adagrad,rmsprop:Vs.rmsprop,adamax:Vs.adamax,adam:Vs.adam};var sX=(()=>typeof requestAnimationFrame!=\"undefined\"?requestAnimationFrame:typeof setImmediate!=\"undefined\"?setImmediate:r=>r())();function ph(){return new Promise(r=>sX(()=>r()))}var S={};Gt(S,{ERF_A1:()=>wX,ERF_A2:()=>CX,ERF_A3:()=>IX,ERF_A4:()=>vX,ERF_A5:()=>SX,ERF_P:()=>bX,PARALLELIZE_THRESHOLD:()=>fy,RowPartitionType:()=>zi,SELU_SCALE:()=>l0,SELU_SCALEALPHA:()=>a0,applyActivation:()=>oc,assertAndGetBroadcastShape:()=>Pt,assertAxesAreInnerMostDims:()=>Rq,assertParamsConsistent:()=>iX,assignToTypedArray:()=>AX,axesAreInnerMostDims:()=>KS,calculateShapes:()=>xE,checkEinsumDimSizes:()=>PX,checkPadOnDimRoundingMode:()=>Ie,combineLocations:()=>VE,combineRaggedTensorToTensorShapes:()=>lX,complexWithEvenIndex:()=>TX,complexWithOddIndex:()=>EX,computeConv2DInfo:()=>Ku,computeConv3DInfo:()=>RE,computeDefaultPad:()=>qS,computeDilation2DInfo:()=>OH,computeOptimalWindowSize:()=>mX,computeOutAndReduceShapes:()=>jS,computeOutShape:()=>aX,computePool2DInfo:()=>HS,computePool3DInfo:()=>PH,convertConv2DDataFormat:()=>FE,decodeEinsumEquation:()=>FX,eitherStridesOrDilationsAreOne:()=>_r,expandShapeToKeepDim:()=>xo,exponent:()=>DX,exponents:()=>$X,fromStringArrayToUint8:()=>n5,fromUint8ToStringArray:()=>r5,getAxesPermutation:()=>XS,getBroadcastDims:()=>dE,getComplexWithIndex:()=>_X,getEinsumComputePath:()=>LX,getEinsumPermutation:()=>OX,getFusedBiasGradient:()=>nc,getFusedDyActivation:()=>rc,getImageCenter:()=>fX,getInnerMostAxes:()=>Fq,getPermuted:()=>hX,getRaggedRank:()=>cX,getReductionAxes:()=>ge,getReshaped:()=>dX,getReshapedPermuted:()=>gX,getRowPartitionTypesHelper:()=>uX,getSliceBeginCoords:()=>xX,getSliceSize:()=>yX,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>VX,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>GX,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>WX,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>qX,getSparseReshapeInputOutputMismatchErrorMessage:()=>jX,getSparseReshapeInputOutputMultipleErrorMessage:()=>KX,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>UX,getSparseReshapeNegativeOutputDimErrorMessage:()=>HX,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>JX,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>XX,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>YX,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>ZX,getUndoAxesPermutation:()=>ih,isIdentityPermutation:()=>MX,log:()=>qU,mergeRealAndImagArrays:()=>NX,prepareAndValidate:()=>gE,prepareSplitSize:()=>BX,segment_util:()=>c0,shouldFuse:()=>sc,slice_util:()=>Pe,splitRealAndImagArrays:()=>kX,tupleValuesAreOne:()=>Qn,upcastType:()=>or,validateDefaultValueShape:()=>pX,validateInput:()=>tx,validateUpdateShape:()=>zS,warn:()=>Ii});function iX(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 aX(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 uX(r){let t={FIRST_DIM_SIZE:zi.FIRST_DIM_SIZE,VALUE_ROWIDS:zi.VALUE_ROWIDS,ROW_LENGTHS:zi.ROW_LENGTHS,ROW_SPLITS:zi.ROW_SPLITS,ROW_LIMITS:zi.ROW_LIMITS,ROW_STARTS:zi.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function cX(r){return r.length===0?0:r[0]===zi.FIRST_DIM_SIZE?r.length-1:r.length}function pX(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 fy=30;function mX(r){return r<=fy?r:sp(r,Math.floor(Math.sqrt(r)))}function fX(r,t,e){let n=e*(typeof r==\"number\"?r:r[0]),o=t*(typeof r==\"number\"?r:r[1]);return[n,o]}function dX(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 gX(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s\",RX=/->/g,gA=\",\",xA=\"...\";function FX(r,t){r=r.replace(/\\s/g,\"\");let e=(r.length-r.replace(RX,\"\").length)/u0.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 (\"${u0}\").`);let[n,o]=r.split(u0);E(n.indexOf(xA)===-1,()=>`The ellipsis notation (\"${xA}\") is not supported yet.`);let s=n.split(gA),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 PX(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 LX(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 zX(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 VX(r){return`Received SparseTensor with denseShape[0] = 0 but\n indices.shape[0] = ${r}`}function GX(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function WX(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function UX(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function HX(r,t){return`size ${r} must be non-negative, not ${t}`}function qX(){return\"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero\"}function KX(r,t){let e=Zt(r),n=Zt(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 jX(r,t){let e=Zt(r),n=Zt(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function XX(){return\"segment ids must be >= 0\"}function YX(){return\"segment ids are not increasing\"}function ZX(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function JX(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var c0={};Gt(c0,{collectGatherOpShapeInfo:()=>e5,computeOutShape:()=>t5,segOpComputeOptimalWindowSize:()=>QX});function QX(r,t){let e=!1,n;for(r<=fy?(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 t5(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(eGp(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function n5(r){return r.map(t=>Wl(t))}var Wr={};Gt(Wr,{nonMaxSuppressionV3Impl:()=>ly,nonMaxSuppressionV4Impl:()=>uy,nonMaxSuppressionV5Impl:()=>cy,whereImpl:()=>ry});var dy={kernelName:oi,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,yo(J(e,\"float32\"),-1))}}};var yA={kernelName:ra,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Mt(J(e,\"float32\")),o=ve(ct(mt(1),n));return Ut(pt(r,o))}}}};var bA={kernelName:na,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=ve(ct(Mt(J(e,\"float32\")),1));return pt(r,n)}}}};var wA={kernelName:Yn,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)),D(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),D(a,n.shape)}}}};var CA={kernelName:Vo,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var IA={kernelName:Go,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var vA={kernelName:Nl,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var SA={kernelName:ia,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,ve(ct(mt(1),Mt(J(e,\"float32\")))))}}};var NA={kernelName:aa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=ve(X(mt(1),Mt(J(e,\"float32\"))));return pt(r,n)}}}};var kA={kernelName:ca,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=R(r,pt(n,a)),l=ge(e.shape,o);return l.length>0&&(u=ft(u,l)),D(u,e.shape)},b:()=>{let a=X(Mt(e),Mt(n)),u=Ut(R(r,pt(e,a))),l=ge(n.shape,o);return l.length>0&&(u=ft(u,l)),D(u,n.shape)}}}};var TA={kernelName:la,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(Mt(J(e,\"float32\")),1))}}};var EA={kernelName:ua,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,ct(mt(1),Mt(J(e,\"float32\"))))}}};function o5(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=D(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),l=D(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=T.runKernel(lp,p,m);return c?D(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var _A=k({avgPool3dGrad_:o5});var AA={kernelName:kl,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>_A(r,n,o,s,i,a)}}};function s5(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=D(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=D(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=T.runKernel(ap,c,p);return l?D(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var $A=k({avgPoolGrad_:s5});var DA={kernelName:Wo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>$A(r,n,o,s,i)}}};var RA={kernelName:Uo,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 FA={kernelName:si,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>eu(r,n,o)}}};var OA={kernelName:i1,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 PA={kernelName:io,gradFunc:r=>({x:()=>r.clone()})};var LA={kernelName:Ho,gradFunc:r=>({x:()=>It(r)})};var MA={kernelName:ao,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>_e(Dr(Fn(n,o),On(n,s)),r,It(r))}}};var zA={kernelName:Tl,inputsToSave:[\"x\"],gradFunc:dy.gradFunc};var BA={kernelName:ii,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=ar(o,t[0].shape)[0],i=n.map(u=>u[s]);return cr(r,i,s).map(u=>()=>u)}};var VA={kernelName:qo,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return E(Qn(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>Qp(n.shape,r,o,i,a,u),filter:()=>wm(n,r,o.shape,i,a,u)}}};var GA={kernelName:Ko,inputsToSave:[\"dy\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>Cn(r,o,s,i,a,1,u),filter:()=>wm(r,n,o.shape,s,i,a,u)}}};function i5(r,t,e,n,o){let s=r;r.rank===4&&(s=D(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let i=t;i.rank===4&&(i=D(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 T.runKernel(fp,a,u)}var WA=k({conv3DBackpropFilter_:i5});var UA={kernelName:El,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;E(Qn(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:()=>Ix(i.shape,r,a,o,s),filter:()=>WA(i,r,a.shape,o,s)}}};var HA={kernelName:jo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(Ut(mm(J(e,\"float32\"))),r)}}};var qA={kernelName:Xo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(fm(J(e,\"float32\")),r)}}};var KA={kernelName:Yo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=XS([o],n.rank),u=rm(r,o,s,!i);return a!=null&&(u=Ot(u,a)),u}}}};var jA={kernelName:Zo,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;E(Qn(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(_r(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:()=>sy(u.shape,r,l,o,s,a,i),filter:()=>oy(u,r,l.shape,o,s,a,i)}}};var XA={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:()=>T.runKernel(Ud,s,e),filter:()=>T.runKernel(Hd,i,e)}}};var YA={kernelName:Qo,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>T.runKernel(wp,n)}}};var ZA={kernelName:da,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=R(er(Ut(Mt(e))),2/Math.sqrt(Math.PI));return{x:()=>R(r,n)}}};var JA={kernelName:ts,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e)}}};var QA={kernelName:ai,inputsToSave:[\"input\"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>D(r,e.shape)}}};var t2={kernelName:ga,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,er(e))}}};var e2={kernelName:es,gradFunc:r=>({x:()=>It(r)})};var r2={kernelName:rs,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?D(ft(a,u),e.shape):a},b:()=>{let a=R(r,J(e,\"float32\")),u=ge(n.shape,o);u.length>0&&(a=D(ft(a,u),n.shape));let l=Mt(n);return Ut(pt(a,J(l,\"float32\")))}}}};var n2={kernelName:ns,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?D(R(R(r,$r(D(f,[1,1,1,s.shape[0]]),c)),u),o.shape):D(R(R(r,f),u),o.shape),mean:()=>{let C=R(R(f,mt(-1)),m);return s.rank===1&&(C=ft(C,l)),D(C,s.shape)},variance:()=>{let C=R(R(d,p),m);return s.rank===1&&(C=ft(C,l)),D(C,s.shape)},scale:()=>{let C=R(p,f),N=R(r,C);return s.rank===1&&(N=ft(N,l)),D(N,s.shape)},offset:()=>{let C=r;return s.rank===1&&(C=ft(C,l)),D(C,s.shape)}}}};var i2={kernelName:li,inputsToSave:[\"x\",\"indices\"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s}=e,i=ar(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=o2(0,p),h=o2(p+1,p+1+f),g=s2([c,[l],m]),x=D(r,g),b=D(o,[l]),w=s2([[p],d,h]),C=Ot(x,w),N=bm(C,b,n.shape[i]),_=ih(w);return N=Ot(N,_),N},indices:()=>o}}};function o2(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>It(e),b:()=>It(n)}}};var l2={kernelName:lo,gradFunc:r=>({x:()=>J(r,\"float32\")})};var u2={kernelName:wa,gradFunc:r=>({x:()=>It(r)})};var c2={kernelName:Ca,gradFunc:r=>({x:()=>It(r)})};var p2={kernelName:Ia,gradFunc:r=>({x:()=>It(r)})};var m2={kernelName:ss,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=He(n,0);return{x:()=>_e(s,r,R(r,o))}}};var f2={kernelName:Na,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(e,1))}}};var d2={kernelName:is,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,J(e,\"float32\"))}}};var h2={kernelName:l1,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=er(n);return ct(r,R(ft(r,o,!0),i))}}}};function a5(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 T.runKernel(Np,a,u)}var g2=k({localResponseNormalizationBackprop_:a5});var x2={kernelName:$l,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>g2(n,o,r,s,i,a,u)}}};function hy(r,t,e,n){return t.rankR(r,J(Ar(e,t),r.dtype))}}var p0={kernelName:as,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=ar(o,s.shape),u=hy(r,i,s,a);return{x:()=>u.x()}}};var y2={kernelName:ls,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>R(r,J(Fn(e,n),\"float32\")),b:()=>R(r,J(nm(e,n),\"float32\"))}}};function l5(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=D(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=D(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),m=D(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=T.runKernel(Tp,d,h);return f?D(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var b2=k({maxPool3dGrad_:l5});var w2={kernelName:Dl,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>b2(r,n,o,s,i,a,u)}}};function u5(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 T.runKernel(kp,c,p)}var C2=k({maxPoolGrad_:u5});var I2={kernelName:us,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>C2(r,n,o,s,i,a)}}};var v2={kernelName:cs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=ar(o,n.shape),a=jS(n.shape,s)[1],u=Zt(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=D(r,c);return pt(R(p,lr(n.shape,\"float32\")),u)}}}};var S2={kernelName:ps,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=ar(o,s.shape),u=hy(r,i,s,a);return{x:()=>u.x()}}};var N2={kernelName:ms,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>R(r,J(On(e,n),\"float32\")),b:()=>R(r,J(He(e,n),\"float32\"))}}};var k2={kernelName:fs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Dt(r,s,n.shape)}}};var T2={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?D(ft(r,a),e.shape):r},b:()=>{let a=R(r,Ut(Fi(pt(e,n)))),u=ge(n.shape,o);return u.length>0?D(ft(a,u),n.shape):a}}}};var E2={kernelName:ds,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=R(r,J(n,\"float32\")),u=ge(e.shape,o);return u.length>0?D(ft(a,u),e.shape):a},b:()=>{let a=R(r,J(e,\"float32\")),u=ge(n.shape,o);return u.length>0?D(ft(a,u),n.shape):a}}}};var _2={kernelName:ui,gradFunc:r=>({x:()=>Ut(r)})};var A2={kernelName:hs,inputsToSave:[\"indices\"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>Ne(e.shape,\"float32\")}}};var $2={kernelName:ci,gradFunc:r=>({x:()=>It(r)})};var D2={kernelName:pi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return vr(r,n).map(s=>()=>s)}};var m0={kernelName:gs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Dt(r,s,n.shape)}}};var R2={kernelName:xs,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=R(r,R(c,an(s,ct(c,mt(1))))),m=ge(s.shape,a);return m.length>0&&(p=ft(p,m)),D(p,s.shape)},b:()=>{let c=He(s,0),p=_e(c,Ir(s),It(s)),m=R(r,R(o,p)),f=ge(i.shape,a);return f.length>0&&(m=ft(m,f)),D(m,i.shape)}}}};var F2={kernelName:ys,inputsToSave:[\"x\",\"alpha\"],gradFunc:(r,t)=>{let[e,n]=t,o=He(e,0);return{x:()=>_e(o,r,R(r,n)),alpha:()=>{let s=_e(o,It(r),R(r,e)),i=ge(n.shape,r.shape);return i.length>0&&(s=ft(s,i)),D(s,n.shape)}}}};function c5(r,t,e){let n=r.shape.slice();n[e]=1;let o=D(t,n),s=ju(r,e,!0,!1),i=ju(r,e,!0,!0),a=R(s,i);return R(o,a)}function p5(r,t,e){let n=r.shape.length,o=n-e.length,s=S.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=c5(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=S.getUndoAxesPermutation(s);p=Ot(p,m)}return p}var O2={kernelName:bs,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:()=>p5(n,r,s)}}};var P2={kernelName:Jo,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?D(ft(a,u),e.shape):a},b:()=>{let a=R(r,J(e,\"float32\")),u=ge(n.shape,o);u.length>0&&(a=D(ft(a,u),n.shape));let l=Mt(n);return Ut(pt(a,J(l,\"float32\")))}}}};var L2={kernelName:Fa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Ut(Mt(e)))}}};var M2={kernelName:vs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=R(On(e,6),yo(e));return{x:()=>R(r,J(n,\"float32\"))}}};var z2={kernelName:ws,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,J(yo(e),\"float32\"))}}};var B2={kernelName:mi,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,e.shape)}}};var V2={kernelName:Is,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(Fp,o,e)}}};var G2={kernelName:Cs,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(Rp,o,e)}}};var W2={kernelName:Ss,gradFunc:(r,t,e)=>{let{dims:n}=e,o=ar(n,r.shape);return{x:()=>ur(r,o)}}};var U2={kernelName:Ns,gradFunc:r=>({x:()=>It(r)})};var H2={kernelName:ks,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ut(pt(r,R(an(e,1.5),2)))}}};var q2={kernelName:fi,inputsToSave:[\"condition\"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>J(It(e),\"float32\"),t:()=>R(r,J(e,r.dtype)),e:()=>R(r,J(Ql(e),r.dtype))}}};var K2={kernelName:Pa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=He(e,mt(0)),o=mt(a0),s=mt(l0),i=R(r,s),a=R(R(r,o),er(J(e,\"float32\")));return _e(n,i,a)}}}};var j2={kernelName:Es,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,R(e,ct(mt(1),e)))}}};var X2={kernelName:Ma,gradFunc:r=>({x:()=>It(r)})};var Y2={kernelName:Ts,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(Yl(J(e,\"float32\")),r)}}};var Z2={kernelName:La,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(em(J(e,\"float32\")),r)}}};var J2={kernelName:di,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=VS(n,o,s),l=[];for(let c=0;cun(r,l)}}};var Q2={kernelName:$s,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=R(r,n);return{logits:()=>ct(i,R(ft(i,[o],s),n))}}};var t$={kernelName:za,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,Xr(e))}}};var f0={kernelName:hi,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>Xl(r,n,o)}}};var d0={kernelName:gi,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>ne(r,n)}}};var e$={kernelName:_s,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,R(ve(J(e,\"float32\")),2))}}};var r$={kernelName:Ll,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,R(J(e,\"float32\"),2))}}};var n$={kernelName:Ds,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=mt(2);return{a:()=>R(r,R(o,ct(e,n))),b:()=>R(r,R(o,ct(n,e)))}}};var o$={kernelName:uo,gradFunc:r=>({x:()=>It(r)})};var s$={kernelName:Rs,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)),D(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),D(Ut(a),n.shape)}}}};var i$={kernelName:As,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;ar(s,n.shape).forEach(l=>{o[l]=1});let a=D(r,o),u=R(a,lr(n.shape,\"float32\"));return{x:()=>u}}};var a$={kernelName:Fs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Mt(Yl(e)))}}};var l$={kernelName:Os,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(ct(mt(1),Mt(e)),r)}}};var u$={kernelName:Zn,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=ih(o);return{x:()=>Ot(r,s)}}};var p$={kernelName:xi,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>rr(r,o)}}};var m$={kernelName:Vl,inputsToSave:[\"segmentIds\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>m5(r,e)}}};function m5(r,t){let e=In(t,It(t)),n=Oi(r,e),o=Fn(t,mt(0,\"int32\")),s=n.rank-o.rank;for(let a=0;a({x:()=>It(r)})};var f5=[dy,yA,bA,wA,CA,IA,vA,SA,NA,kA,TA,EA,AA,DA,RA,FA,OA,PA,LA,MA,zA,BA,GA,VA,UA,HA,qA,KA,jA,XA,P2,YA,ZA,JA,QA,t2,r2,e2,n2,i2,a2,l2,u2,c2,p2,m2,f2,d2,h2,x2,p0,p0,y2,w2,I2,v2,S2,N2,k2,T2,E2,_2,A2,$2,D2,m0,m0,R2,F2,O2,L2,M2,z2,B2,V2,G2,W2,U2,H2,q2,K2,j2,X2,Y2,Z2,J2,Q2,t$,f0,f0,d0,d0,e$,n$,r$,o$,s$,i$,a$,l$,u$,c$,p$,m$,f$];for(let r of f5)c1(r);O().prototype.abs=function(){return this.throwIfDisposed(),Ee(this)};O().prototype.acos=function(){return this.throwIfDisposed(),rx(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),nx(this)};O().prototype.add=function(r){return this.throwIfDisposed(),X(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),Yp(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),Hu(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),Ei(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),ox(this,r)};O().prototype.asScalar=function(){return this.throwIfDisposed(),E(this.size===1,()=>\"The array must have only 1 element.\"),D(this,[])};O().prototype.asType=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.as1D=function(){return this.throwIfDisposed(),D(this,[this.size])};O().prototype.as2D=function(r,t){return this.throwIfDisposed(),D(this,[r,t])};O().prototype.as3D=function(r,t,e){return this.throwIfDisposed(),D(this,[r,t,e])};O().prototype.as4D=function(r,t,e,n){return this.throwIfDisposed(),D(this,[r,t,e,n])};O().prototype.as5D=function(r,t,e,n,o){return this.throwIfDisposed(),D(this,[r,t,e,n,o])};O().prototype.asin=function(){return this.throwIfDisposed(),sx(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),ix(this)};O().prototype.atan=function(){return this.throwIfDisposed(),ax(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),lx(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),ux(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),jl(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),Xl(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),Ai(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),$i(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),gx(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(),Jp(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),tm(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Cn(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),Yl(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),em(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),ju(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),rm(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),Sx(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Di(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Nx(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),kx(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),pt(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),Tx(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),Ri(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),Ar(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),Ex(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),_x(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),er(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),gr(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),Ax(this)};O().prototype.fft=function(){return this.throwIfDisposed(),su(this)};O().prototype.flatten=function(){return this.throwIfDisposed(),D(this,[this.size])};O().prototype.floor=function(){return this.throwIfDisposed(),Fi(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),Xp(this,r)};O().prototype.gather=function(r,t){return this.throwIfDisposed(),Oi(this,r,t)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),Fn(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),He(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),Za(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),gm(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),$x(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Dx(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),Rx(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Zl(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),On(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),nm(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),Fx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),Lx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),om(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),sm(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),Ir(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),Jl(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Dr(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),Ql(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),im(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Mx(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(),tu(this,r,t,e,n)};O().prototype.max=function(r,t){return this.throwIfDisposed(),Br(this,r,t)};O().prototype.maximum=function(r){return this.throwIfDisposed(),In(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),Se(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),Xu(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),Pi(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),Vx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),Gx(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),R(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ut(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),Ya(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),zs(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),ki(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),xr(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),un(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),Wx(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(),ru(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),Ux(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),Xx(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Rr(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),am(this)};O().prototype.reshapeAs=function(r){return this.throwIfDisposed(),D(this,r.shape)};O().prototype.reshape=function(r){return this.throwIfDisposed(),D(this,r)};O().prototype.resizeBilinear=function(r,t,e){return this.throwIfDisposed(),py(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),my(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),ur(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),iu(this)};O().prototype.round=function(){return this.throwIfDisposed(),lm(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),um(this)};O().prototype.selu=function(){return this.throwIfDisposed(),cm(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),pm(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),Xr(this)};O().prototype.sign=function(){return this.throwIfDisposed(),Yx(this)};O().prototype.sin=function(){return this.throwIfDisposed(),mm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),fm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Dt(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),ou(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),Ms(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),eu(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),cr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),ve(this)};O().prototype.square=function(){return this.throwIfDisposed(),Mt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),xm(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),Pn(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Ft?[this,r]:[this,...r];return rr(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),yo(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),Zx(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(),Jx(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),_i(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),$r(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(),Qx(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Ot(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),ty(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),bm(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)}},Ur=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Ur.prototype)}},z=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,z.prototype)}},vt=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,vt.prototype)}},Cm=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Cm.prototype)}};var mh=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 wo={};function Im(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function h0(r){if(!(r==null||typeof r!=\"object\"))if(Array.isArray(r))r.forEach(t=>h0(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:h0(n))}}}function Bi(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 wo)i=wo[s];else if(i=t[s],i==null)throw new z(`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 z(`${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 wo?[a,u]=wo.className:i in t&&([a,u]=t[i]),a==null)throw new z(`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(wo))l[f]=wo[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},wo);for(let f of Object.keys(e))wo[f]=e[f];h0(s.config);let m=u(a,s.config,e,o);return wo=Object.assign({},p),m}else{let l=Object.assign({},wo);for(let p of Object.keys(e))wo[p]=e[p];let c=new a(s.config);return wo=Object.assign({},l),c}}}function d5(r,t){return rt?1:0}function fh(r,t){return-1*d5(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 d$(r){if(r==null)throw new z(`Invalid value in obj: ${JSON.stringify(r)}`);for(let t in r)if(r.hasOwnProperty(t))return!1;return!0}function Vi(r,t,e){if(e!=null&&r.indexOf(e)<0)throw new z(`${e} is not a valid ${t}. Valid values are ${r} or null/undefined.`)}function gy(r,t,e=0,n=1/0){return eo(e>=0),eo(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 ${h$(r)}.`)}function h$(r){return r===null?\"null\":Array.isArray(r)?\"[\"+r.map(t=>h$(t)).join(\",\")+\"]\":typeof r==\"string\"?`\"${r}\"`:`${r}`}function g$(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 x5=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\\._\\/]*$/);function S$(r){return!!r.match(x5)}function N$(r){return r===parseInt(r.toString(),10)}function So(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 Yr(r,t){if(t{if(r.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let e=el(r,1);return vy(e,[1,t,1])})}function T$(r){let t=[So(r.shape)];return D(r,t)}function E$(r){if(r.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],So(r.shape,1)];return D(r,t)}function Qa(r,t,e){return B(()=>{switch(r.rank){case 1:return dm(r,t,e);case 2:return uh(r,[t,0],[e,r.shape[1]]);case 3:return hm(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 Dt(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Dt(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 z(`sliceAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}})}function b0(r,t,e){return B(()=>{switch(r.rank){case 1:return dm(r,t,e);case 2:return uh(r,[0,t],[r.shape[0],e]);case 3:return hm(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 z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function hh(r,t,e,n){return B(()=>{switch(r.rank){case 1:return dm(r,t,e);case 2:switch(n){case 1:return Qa(r,t,e);case 2:return b0(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return Qa(r,t,e);case 2:return hm(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return b0(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return Qa(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 b0(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Sm(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 C0(r,t){switch(r.rank){case 1:return xx([r,t]);case 2:return yx([r,t],0);case 3:return bx([r,t],0);case 4:return wx([r,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function vy(r,t){if(Array.isArray(t)||(t=[t]),r.rank!==t.length)throw new z(`The length of input n (${t.length}) does not match the number of dimensions in input x (${r.rank})`);return $r(r,t)}function Nm(r,t=0,e=1,n,o){return tc(r,t,e,n,o)}function No(r,t,e,n){if(r.rank<2||t.rank<2)throw new vt(`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 vt(`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 au.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?w0(r.rank,n,pn()):null,activation:e});{let o=r.shape.slice(),s=o.pop();r=D(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=D(Ot(t,c),[u,-1]);let p=[...o,...l],m=!1,f=!1;return D(au.matMul({a:r,b:t,transposeA:m,transposeB:f,bias:n?w0(r.rank,n,pn()):null,activation:e}),p)}}function Sy(r,t,e){return B(()=>(Array.isArray(t)?t=Le(t,\"int32\"):t=J(t,\"int32\"),Oi(r,t,e)))}function lc(r){return R(r,r)}function w0(r,t,e){let n=t.shape;if(t.rank!==1&&t.rank!==r)throw new z(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${r}`);if(r===5){if(e===\"channelsFirst\")return n.length===1?D(t,[1,n[0],1,1,1]):D(t,[1,n[3],n[0],n[1],n[2]]);if(e===\"channelsLast\")return n.length===1?D(t,[1,1,1,1,n[0]]):D(t,[1].concat(n))}else if(r===4){if(e===\"channelsFirst\")return n.length===1?D(t,[1,n[0],1,1]):D(t,[1,n[2],n[0],n[1]]);if(e===\"channelsLast\")return n.length===1?D(t,[1,1,1,n[0]]):D(t,[1].concat(n))}else if(r===3){if(e===\"channelsFirst\")return n.length===1?D(t,[1,n[0],1]):D(t,[1,n[1],n[0]]);if(e===\"channelsLast\")return n.length===1?D(t,[1,1,n[0]]):D(t,[1].concat(n))}else if(r<3)return t;throw new z(`Unsupported input rank by biasAdd: ${t.rank}`)}function mn(r,t,e){return B(()=>(e==null&&(e=pn()),Re(e),X(r,w0(r.rank,t,e))))}function _$(r,t=1){if(t!==1)throw new vt(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Ri(r)}function A$(r){return B(()=>pt(r,X(Ee(r),1)))}function Ny(r,t,e,n){return B(()=>n0(r,t,e,n))}function $$(r){return B(()=>{let t=X(.5,R(.2,r));return Cr(t,0,1)})}function gu(r,t,e=!1){return e?r():t()}var D$=[\"fanIn\",\"fanOut\",\"fanAvg\"],R$=[\"normal\",\"uniform\",\"truncatedNormal\"];function y5(r){Vi(D$,\"FanMode\",r)}function b5(r){Vi(R$,\"Distribution\",r)}var fn=class extends Q.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},km=class extends fn{apply(t,e){return Ne(t,e)}};km.className=\"Zeros\";Q.registerClass(km);var xu=class extends fn{apply(t,e){return lr(t,e)}};xu.className=\"Ones\";Q.registerClass(xu);var Tm=class extends fn{constructor(t){if(super(),typeof t!=\"object\")throw new z(`Expected argument of type ConstantConfig but got ${t}`);if(t.value===void 0)throw new z(`config must have value set but got ${t}`);this.value=t.value}apply(t,e){return B(()=>R(mt(this.value),lr(t,e)))}getConfig(){return{value:this.value}}};Tm.className=\"Constant\";Q.registerClass(Tm);var Em=class extends fn{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 Li(t,this.minval,this.maxval,e)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Em.className=\"RandomUniform\";Q.registerClass(Em);var _m=class extends fn{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 vt(`randomNormal does not support dType ${e}.`);return Nm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};_m.className=\"RandomNormal\";Q.registerClass(_m);var Am=class extends fn{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 vt(`truncatedNormal does not support dType ${e}.`);return ym(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Am.className=\"TruncatedNormal\";Q.registerClass(Am);var $m=class extends fn{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 z(\"Identity matrix initializer can only be used for 2D square matrices.\");return R(this.gain,Yu(t[0]))})}getConfig(){return{gain:this.gain}}};$m.className=\"Identity\";Q.registerClass($m);function w5(r,t=\"channelsLast\"){let e,n;if(Re(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t===\"channelsFirst\"){let o=So(r,2);e=r[1]*o,n=r[0]*o}else if(t===\"channelsLast\"){let o=So(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=So(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var Hr=class extends fn{constructor(t){if(super(),t.scale<0)throw new z(`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,y5(this.mode),this.distribution=t.distribution==null?\"normal\":t.distribution,b5(this.distribution),this.seed=t.seed}apply(t,e){let n=w5(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 vt(`${this.getClassName()} does not support dType ${e}.`);return ym(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return Li(t,-a,a,e)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Hr.className=\"VarianceScaling\";Q.registerClass(Hr);var uc=class extends Hr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return Hr.className}};uc.className=\"GlorotUniform\";Q.registerClass(uc);var cc=class extends Hr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return Hr.className}};cc.className=\"GlorotNormal\";Q.registerClass(cc);var pc=class extends Hr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return Hr.className}};pc.className=\"HeNormal\";Q.registerClass(pc);var mc=class extends Hr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return Hr.className}};mc.className=\"HeUniform\";Q.registerClass(mc);var fc=class extends Hr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return Hr.className}};fc.className=\"LeCunNormal\";Q.registerClass(fc);var dc=class extends Hr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return Hr.className}};dc.className=\"LeCunNormal\";Q.registerClass(dc);var Dm=class extends fn{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 vt(\"Random seed is not implemented for Orthogonal Initializer yet.\")}apply(t,e){return B(()=>{if(t.length<2)throw new vt(\"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=Nm(n,0,1,\"float32\"),s=i0.gramSchmidt(o);return t[0]>t[1]&&(s=Ot(s)),R(this.gain,s)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Dm.className=\"Orthogonal\";Q.registerClass(Dm);var F$={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 O$(r,t={}){return Bi(r,Q.SerializationMap.getMap().classNameMap,t,\"initializer\")}function ke(r){return Im(r)}function de(r){if(typeof r==\"string\"){let t=r in F$?F$[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={},O$(e)}}else return r instanceof fn?r:O$(r)}function ky(r){return Array.isArray(r)&&Array.isArray(r[0])}function Rm(r){return r.length===0?[]:Array.isArray(r[0])?r:[r]}function At(r){let t;if(Array.isArray(r)){if(r.length!==1)throw new z(`Expected Tensor length to be 1; got ${r.length}`);t=r[0]}else t=r;return t}function Jt(r){if(Array.isArray(r)&&Array.isArray(r[0])){if(r.length===1)return r=r,r[0];throw new z(`Expected exactly 1 Shape; got ${r.length}`)}else return r}function Fm(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 L$=\"Variable\",gh=class{constructor(t,e=\"float32\",n=L$,o=!0,s=null){this.dtype=e==null?\"float32\":e,this.shape=t.shape,this.id=by(),n=n==null?L$:n,this.originalName=wy(n),this.name=Cy(this.originalName),this.trainable_=o,this.constraint=s,this.val=ey(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),I5(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 I5(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error(\"Shape mismatch: \"+JSON.stringify(r.shape)+\" vs. \"+JSON.stringify(t.shape))}function xh(r){return r.map(t=>t.read())}function Om(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=by(),i!=null&&(this.originalName=wy(i),this.name=Cy(this.originalName)),this.rank=e.length}},v5=0,rl=class{constructor(t,e){this.callArgs=e,this.id=v5++,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}}},S5=0,Rt=class extends Q.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=S5++,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=Io(n)+\"_\"+hu(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 Ur(`The layer has never been called and thus has no defined ${e}.`);if(this.inboundNodes.length<=t)throw new z(`Asked to get ${e} at node ${t}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[t]}getInputAt(t){return Sr(this.getNodeAtIndex(t,\"input\").inputTensors)}getOutputAt(t){return Sr(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 Sr(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 Sr(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 z(`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 z(`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 z(`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(Sr(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=Sr(u),this.activityRegularizer!=null)throw new vt(\"Layer invocation in the presence of activity regularizer(s) is not supported yet.\");return i}else{let i=N5(t),a=this.computeOutputShape(i),u,l=k5(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 vt(\"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 Ur(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Fm(this.weights)}build(t){this.built=!0}getWeights(t=!1){return xh(t?this.trainableWeights:this.weights)}setWeights(t){B(()=>{let e=this.weights;if(e.length!==t.length)throw new z(`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=xh(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=Rm(s),i=Rm(i);let l=[],c=[],p=[];for(let m of u)l.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new rl({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 N5(r){r=xe(r);let t=[];for(let e of r)t.push(e.shape);return Sr(t)}function k5(r){return\"float32\"}function I0(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=Ey.get(c),m;if(p==null){let d=E5(i,t);p=d.sorted,m=d.recipientCounts,Ey.put(c,p),_y.put(c,m)}m={},o||Object.assign(m,_y.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=M$(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=M$(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:_5(n)}}function _5(r){let t={};for(let e in r)t[e]=r[e].size;return t}function M$(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 A5(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,z$);var G$={};Gt(G$,{maxNorm:()=>D5,minMaxNorm:()=>O5,nonNeg:()=>F5,unitNorm:()=>R5});function v0(r,t){return B(()=>ve(ft(R(r,r),t,!0)))}var gc=class extends Q.Serializable{getConfig(){return{}}},Pm=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=v0(t,this.axis),n=Cr(e,0,this.maxValue);return R(t,pt(n,X(sr(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Pm.className=\"MaxNorm\";Q.registerClass(Pm);var Lm=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(sr(),v0(t,this.axis))))}getConfig(){return{axis:this.axis}}};Lm.className=\"UnitNorm\";Q.registerClass(Lm);var Mm=class extends gc{apply(t){return Rr(t)}};Mm.className=\"NonNeg\";Q.registerClass(Mm);var zm=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=v0(t,this.axis),n=X(R(this.rate,Cr(e,this.minValue,this.maxValue)),R(1-this.rate,e));return R(t,pt(n,X(sr(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};zm.className=\"MinMaxNorm\";Q.registerClass(zm);var B$={maxNorm:\"MaxNorm\",minMaxNorm:\"MinMaxNorm\",nonNeg:\"NonNeg\",unitNorm:\"UnitNorm\"};function Me(r){return Im(r)}function V$(r,t={}){return Bi(r,Q.SerializationMap.getMap().classNameMap,t,\"constraint\")}function ze(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in B$?B$[r]:r,config:{}};return V$(e)}else return r instanceof gc?r:V$(r)}function D5(r){return new Pm(r)}function R5(r){return new Lm(r)}function F5(){return new Mm}function O5(r){return new zm(r)}var W$={};Gt(W$,{constant:()=>M5,glorotNormal:()=>H5,glorotUniform:()=>U5,heNormal:()=>q5,heUniform:()=>K5,identity:()=>G5,leCunNormal:()=>j5,leCunUniform:()=>X5,ones:()=>L5,orthogonal:()=>Y5,randomNormal:()=>B5,randomUniform:()=>z5,truncatedNormal:()=>V5,varianceScaling:()=>W5,zeros:()=>P5});function P5(){return new km}function L5(){return new xu}function M5(r){return new Tm(r)}function z5(r){return new Em(r)}function B5(r){return new _m(r)}function V5(r){return new Am(r)}function G5(r){return new $m(r)}function W5(r){return new Hr(r)}function U5(r){return new uc(r)}function H5(r){return new cc(r)}function q5(r){return new pc(r)}function K5(r){return new mc(r)}function j5(r){return new fc(r)}function X5(r){return new dc(r)}function Y5(r){return new Dm(r)}var CD={};Gt(CD,{Layer:()=>Rt,RNN:()=>Nn,RNNCell:()=>il,activation:()=>pY,add:()=>wY,alphaDropout:()=>nZ,average:()=>CY,averagePooling1d:()=>L0,averagePooling2d:()=>M0,averagePooling3d:()=>z0,avgPool1d:()=>AY,avgPool2d:()=>DY,avgPool3d:()=>FY,avgPooling1d:()=>$Y,avgPooling2d:()=>RY,avgPooling3d:()=>OY,batchNormalization:()=>TY,bidirectional:()=>XY,concatenate:()=>IY,conv1d:()=>rY,conv2d:()=>nY,conv2dTranspose:()=>oY,conv3d:()=>sY,conv3dTranspose:()=>iY,convLstm2d:()=>HY,convLstm2dCell:()=>qY,cropping2D:()=>lY,dense:()=>mY,depthwiseConv2d:()=>cY,dot:()=>kY,dropout:()=>fY,elu:()=>Y8,embedding:()=>bY,flatten:()=>hY,gaussianDropout:()=>rZ,gaussianNoise:()=>eZ,globalAveragePooling1d:()=>PY,globalAveragePooling2d:()=>LY,globalMaxPool1d:()=>ZY,globalMaxPool2d:()=>JY,globalMaxPooling1d:()=>xD,globalMaxPooling2d:()=>yD,gru:()=>zY,gruCell:()=>BY,input:()=>$0,inputLayer:()=>X8,layerNormalization:()=>EY,leakyReLU:()=>J8,lstm:()=>VY,lstmCell:()=>GY,masking:()=>oZ,maxPool1d:()=>QY,maxPool2d:()=>tZ,maxPooling1d:()=>bD,maxPooling2d:()=>wD,maxPooling3d:()=>MY,maximum:()=>vY,minimum:()=>SY,multiply:()=>NY,permute:()=>yY,prelu:()=>Q8,reLU:()=>Z8,repeatVector:()=>gY,rescaling:()=>sZ,reshape:()=>xY,rnn:()=>KY,separableConv2d:()=>aY,simpleRNN:()=>WY,simpleRNNCell:()=>UY,softmax:()=>tY,spatialDropout1d:()=>dY,stackedRNNCells:()=>jY,thresholdedReLU:()=>eY,timeDistributed:()=>YY,upSampling2d:()=>uY,zeroPadding2d:()=>_Y});async function Gi(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],R(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=R(pt(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),De(e[n])}))}},Dy=class extends nl{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 Ry(n,t))}var dn=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}`),dn.checkForDuplicate(e),dn.constructors[t]==null&&(dn.constructors[t]=[]),dn.constructors[t].push(e)}static checkForDuplicate(t){for(let e in dn.constructors)dn.constructors[+e].forEach(o=>{if(o===t)throw new z(\"Duplicate callback constructor.\")})}static clear(){dn.constructors={}}static createCallbacks(t){let e=[];for(let n in dn.constructors){let o=+n;t>=o&&e.push(...dn.constructors[o])}return e.map(n=>new n)}};dn.constructors={};function Oy(r,t,e,n,o,s,i,a,u){let l=new Dy,c=[new S0,...dn.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new $y(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 hn(r,t={},e=!1){return Bi(r,Q.SerializationMap.getMap().classNameMap,t,\"layer\",e)}function yh(r,t){return B(()=>{r.dtype!==\"float32\"&&(r=J(r,\"float32\"));let e=ft(lc(r),t,!0),n=go(e.shape,sr()),o=ve(In(e,n));return pt(r,o)})}function Wi(r,t){return B(()=>Se(lc(ct(t,r)),-1))}function Bm(r,t){return B(()=>Se(Ee(ct(t,r)),-1))}function yu(r,t){return B(()=>{let e=ct(r,t),n=Cr(Ee(r),sr(),Number.MAX_VALUE),o=Ee(pt(e,n));return R(100,Se(o,-1))})}function J5(r,t){return B(()=>{let e=Cr(t,sr(),Number.MAX_VALUE),n=Ir(X(1,e)),o=Cr(r,sr(),Number.MAX_VALUE),s=Ir(X(1,o));return Se(lc(ct(n,s)),-1)})}function Q5(r,t){return B(()=>{let e=In(0,ct(1,R(r,t)));return Se(lc(e),-1)})}function t8(r,t){return B(()=>{let e=In(0,ct(1,R(r,t)));return Se(e,-1)})}function e8(r,t){return B(()=>{let e=ft(R(r,t),-1),n=Br(R(ct(1,r),t),-1);return In(0,X(1,ct(n,e)))})}function r8(r,t){return B(()=>{let e=Math.log(2),n=ct(t,r),o=ct(X(n,Ms(R(-2,n))),e);return Se(o,-1)})}function xc(r,t,e=!1){return B(()=>{if(e)t=ou(t);else{let n=ft(t,t.shape.length-1,!0);t=pt(t,n)}return t=Cr(t,sr(),1-sr()),Ut(ft(R(J(r,\"float32\"),Ir(t)),t.shape.length-1))})}function Vm(r,t,e=!1){return B(()=>{let n=J(Fi(T$(r)),\"int32\");t=Cr(t,sr(),1-sr());let o=t.shape,s=D(ki(n,o[o.length-1]),o);return xc(s,t,e)})}function n8(r,t){if(!y.arraysEqual(r.shape,t.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);return B(()=>{let e=Rr(t),n=Ut(Ee(t));return X(ct(e,R(t,r)),Jl(er(n)))})}function Gm(r,t){return B(()=>{let e;return e=Cr(t,sr(),1-sr()),e=Ir(pt(e,ct(1,e))),Se(n8(r,e),-1)})}function o8(r,t){return B(()=>{let e=Cr(r,sr(),1),n=Cr(t,sr(),1);return ft(R(r,Ir(pt(e,n))),-1)})}function s8(r,t){return B(()=>{let e=Ir(X(sr(),t));return Se(ct(t,R(r,e)),-1)})}function wh(r,t){return B(()=>{let e=yh(r,-1),n=yh(t,-1),o=R(e,n);return Ut(ft(o,-1))})}var bh={meanSquaredError:Wi,meanAbsoluteError:Bm,meanAbsolutePercentageError:yu,meanSquaredLogarithmicError:J5,squaredHinge:Q5,hinge:t8,categoricalHinge:e8,logcosh:r8,categoricalCrossentropy:xc,sparseCategoricalCrossentropy:Vm,binaryCrossentropy:Gm,kullbackLeiblerDivergence:o8,poisson:s8,cosineProximity:wh};function Py(r){if(typeof r==\"string\"){if(r in bh)return bh[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 z(t)}else return r}function Ch(r,t){return B(()=>{let e=R(.5,xr(t)),n=tl(He(t,e),r.dtype);return Se(Ar(r,n),-1)})}function Ih(r,t){return B(()=>tl(Ar(Ei(r,-1),Ei(t,-1)),\"float32\"))}function q$(r,t){return B(()=>J(ft(Dr(Ar(r,1),Ar(t,1))),\"float32\"))}function i8(r,t){return B(()=>J(ft(Dr(Ar(r,1),Ar(t,0))),\"float32\"))}function a8(r,t){return B(()=>J(ft(Dr(Ar(r,0),Ar(t,1))),\"float32\"))}function N0(r,t){return B(()=>{let e=q$(r,t),n=a8(r,t),o=X(e,n);return J(_e(He(o,0),pt(e,o),0),\"float32\")})}function K$(r,t){return B(()=>{let e=q$(r,t),n=i8(r,t),o=X(e,n);return J(_e(He(o,0),pt(e,o),0),\"float32\")})}function My(r,t){return Gm(r,t)}function zy(r,t){return r.rank===t.rank&&(r=Pn(r,[r.rank-1])),t=Ei(t,-1),t.dtype!==r.dtype&&(t=J(t,r.dtype)),J(Ar(r,t),\"float32\")}var l8=Wi,u8=Wi,c8=Bm,p8=Bm,m8=yu,f8=yu,vh=xc,d8=wh,k0=Vm,Ly={binaryAccuracy:Ch,categoricalAccuracy:Ih,precision:N0,categoricalCrossentropy:vh,sparseCategoricalCrossentropy:k0,mse:l8,MSE:u8,mae:c8,MAE:p8,mape:m8,MAPE:f8,cosine:d8};function j$(r){if(typeof r==\"string\"&&r in Ly)return Ly[r];if(typeof r!=\"string\"&&r!=null)return r;throw new z(`Unknown metric ${r}`)}function Sh(r){if(eo(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r==\"string\")return r;{let t;for(let e of Object.keys(bh))if(bh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(Ly))if(Ly[e]===r){t=e;break}return t!==void 0?t:r.name}}function Y$(r){let t={Adagrad:()=>ic.adagrad(.01),Adadelta:()=>ic.adadelta(1,.95,sr()),Adam:()=>ic.adam(.001,.9,.999,sr()),Adamax:()=>ic.adamax(.002,.9,.999,sr(),0),RMSProp:()=>ic.rmsprop(.001,.9,0,sr()),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 z(`Unknown Optimizer ${r}`)}function E0(r,t,e=!1){if(r==null||typeof r!=\"object\"||Object.getPrototypeOf(r)!==Object.prototype||!T0(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 T0(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\"||!T0(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!T0(t))return!1;return!0}else return!1;else{let t=typeof r;return t===\"string\"||t===\"number\"||t===\"boolean\"}}function Z$(r,t,e,n=console.log){let o=x8(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)),By(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 By(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 y8(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()];By(a,t,e)}function b8(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;eo(C===0,\"input layer has >1 nodes\"),eo(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 Ur(`The tensor ${b.name} at layer \"${N.name}\" is part of a cycle.`);if(w.indexOf($)!==-1)return;this.containerNodes.add(Ln.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(fh);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 Ln&&this.internalContainerRefs.push(C),this.layers.push(C)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(fh);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 Ur(`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 Ur(`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 rl({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 z(\"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 z(`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 z(`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 z(`${i.length} of ${o} weights are not set: ${i}`)}Om(s)}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${Wm}`,e.backend=\"TensorFlow.js\",e}toJSON(t,e=!0){let n=Vy(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=Co(null,t.length):n=xe(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Rm(t);if(e.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let a=0;aparseInt(a,10)).sort(fh);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(fh);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 vt(\"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(Sr(b),w)}function l(g){let x=g.name,b=hn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(C=>{if(!(C instanceof Array))throw new z(`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(;!d$(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];eo(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];eo(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 z(\"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 w8(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 Gy(r,t){return w8(r,t,\"classWeight\")}async function Wy(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 Ei(r,1);if(r.shape[1]===1)return D(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());St(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])}),Le(i,\"float32\")}else return null}function Q$(r,t){return R(r,t)}var C8=32;function rD(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=tD(\"input\",r.inputNames,e),i=tD(\"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 tD(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 z(`The feature data generated by the dataset lacks the required ${r} key '${o}'.`);n.push(e[o])}return n}}function I8(r){if(r.length===3)throw new vt(\"Validation with sample weights is not implemented yet.\");return{xs:r[0],ys:r[1]}}async function nD(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(eD(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=I8(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=Fy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=Oy(c,p,e.epochs,null,null,v8(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;eD(e.validationData)?C=xe(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):C=xe(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?C8:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new vt(\"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=S8(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=rD(r,l.value),m=c.concat(p),f=B(()=>o(m));if(St(m),u===0)for(let h=0;hX(s[h],R(d,g))),u>0&&St(x)}St(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 Um(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>Qa(n,t,e-t)):Qa(r,t,e-t)}function Hy(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>Hy(e,t)):Sy(r,t.dtype===\"int32\"?t:J(t,\"int32\")))}function qy(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}async function N8(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 z(\"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=Yr(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=Oy(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=Qa(_,P,V-P);F.batch=$,F.size=V-P;let W=Hy(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 vt(\"validationData including sample weights is not supported yet.\"):new z(`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=Um(o,F,P),i=o,o=Um(o,0,F),p=Um(s,F,P),a=s,s=Um(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=Fy(n.callbacks,n.yieldEvery);return await N8(r,w,b,C,f,n.epochs,n.verbose,A,N,x,n.shuffle,_,n.initialEpoch,null,null)}finally{r.isTraining=!1,To(o,t),To(s,e),To(i,t),To(a,e),To(c,u),To(p,l),m!=null&&St(m)}}function _0(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 k8(r){return r instanceof Ft}function A0(r){return Array.isArray(r)}function iD(r){return!k8(r)&&!A0(r)}function aD(r,t,e,n=!0,o=\"\"){if(t==null||t.length===0){if(r!=null){let i=!1;if(A0(r)&&r.length>0)i=!0;else if(iD(r)){for(let a in r)if(r.hasOwnProperty(a)){i=!0;break}}else i=!0;if(i)throw new z(`Error when checking model ${o} expected no data, but got ${r}`)}return[]}if(r==null)return t.map(i=>null);let s;if(iD(r)){r=r,s=[];for(let i of t){if(r[i]==null)throw new z(`No data provided for \"${i}\". Need data for each key in: ${t}`);s.push(r[i])}}else if(A0(r)){if(r=r,r.length!==t.length)throw new z(`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 z(`The model ${o} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=_0(s),e!=null)for(let i=0;i=0&&l!==c)throw new z(`${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 T8(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 z(`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 z(`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 z(`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 E8(r,t,e){let n=[Wi,Gm,xc];for(let o=0;o1)throw new z(`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 A8=\"layers-model\",Mn=class extends Ln{constructor(t){super(t),this.isTraining=!1}summary(t,e,n=console.log){if(!this.built)throw new z(\"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).\");Z$(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer==\"string\")this.optimizer_=Y$(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof Gr))throw new z(\"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 z(`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(Py(t.loss[i]))}else if(Array.isArray(t.loss)){if(t.loss.length!==this.outputs.length)throw new z(`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=>Py(a))}else{let i=Py(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=_8(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])};Ws(\"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]===Gm?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Ch:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=My):this.lossFunctions[i]===Vm?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=zy:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=k0):[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Ih:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=vh);let x;[\"accuracy\",\"acc\"].indexOf(d)!==-1?x=\"acc\":[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(x=\"ce\"),f=m,p=c+x}else f=j$(d),p=c+Sh(d);let h;Ws(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;Uy(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 Sr(l)}finally{To(i[0],t),To(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),oD(this,t,e)}checkNumSamples(t,e,n,o=\"steps\"){let s;if(n!=null){if(s=null,e!=null)throw new z(`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 z(`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 z(\"`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 z(`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 z(`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 vt(\"Verbose predictLoop() is not implemented yet.\");let s=qy(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=Um(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return Sr(i.map(a=>ne(a,0)))})}predict(t,e={}){let n=_0(t);lD(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return Uy(o),this.predictLoop(n,o)}finally{To(n,t)}}predictOnBatch(t){lD(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 Ur(\"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 z(`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=Gy(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,\"steps\"),a=[];if(o>0)throw new vt(\"Verbose mode is not implemented yet.\");if(s!=null)throw new vt(\"steps mode in testLoop() is not implemented yet\");{let u=qy(i,n),l=Le(Yr(0,i));for(let c=0;c1&&(s+=`_${g0(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;lIo(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]=Io(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[Io(Sh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>Io(Sh(t)));{let t={};for(let e in this.metrics)t[e]=Io(Sh(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=hn(e),o;if(typeof t.loss==\"string\")o=Ja(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>Ja(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=Ja(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>Ja(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=Ja(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t==\"string\"){let l=Er.getSaveHandlers(t);if(l.length===0)throw new z(`Cannot find any save handlers for URL '${t}'`);if(l.length>1)throw new z(`Found more than one (${l.length}) save handlers for URL '${t}'`);t=l[0]}if(t.save==null)throw new z(\"LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.\");let n=await Er.encodeWeights(this.getNamedWeights(e)),o=!1,s=null,a={modelTopology:this.toJSON(s,o),format:A8,generatedBy:`TensorFlow.js tfjs-layers v${Wm}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l=\"optimizer\",{data:c,specs:p}=await Er.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=Er.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(E0(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){E0(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};Mn.className=\"Model\";Q.registerClass(Mn);var Ky=class extends Mn{};Ky.className=\"Functional\";Q.registerClass(Ky);async function uD(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=hn(n,t);if(r.weightsManifest!=null){let s=await Er.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),St(s)}return o}async function cD(r,t){if(t==null&&(t={}),typeof r==\"string\"){let e=Er.getLoadHandlers(r,t);if(e.length===0)e.push(Er.browserHTTPRequest(r,t));else if(e.length>1)throw new z(`Found more than one (${e.length}) load handlers for URL '${r}'`);r=e[0]}return $8(r,void 0,t)}async function $8(r,t,e){if(e==null&&(e={}),r.load==null)throw new z(\"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=hn(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 z(\"LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.\");let{modelWeights:l,optimizerWeights:c}=D8(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),St(l),St(c.map(p=>p.tensor))}return a}function D8(r,t){let e=Er.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 Ui=class extends Mn{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:hu(\"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 z(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let e=t instanceof Ui||t instanceof Mn,n;if(e){if(n=t,n.outputs.length!==1)throw new z(\"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 z(\"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 z(\"The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.\");let o=Ty({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 z(`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 z(\"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=I0(this.outputs[0])}this.inboundNodes=[],new rl({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Co(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(Jt(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 Mn({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 Ur(\"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 Ur(\"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 Ur(\"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 Ur(\"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 z(\"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 Ui))throw new vt(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=hn(u,void 0,o);o&&c.setFastWeightInitDuringBuild(!0),a.add(c)}return a}set stopTraining(t){if(this.model==null)throw new z(\"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 z(\"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}}};Ui.className=\"Sequential\";Q.registerClass(Ui);function R8(r){return new Mn(r)}function F8(r){return new Ui(r)}function O8(r,t){return t==null&&(t={}),cD(r,t)}function $0(r){return Ty(r)}function P8(r,t){dn.registerCallbackConstructor(r,t)}var Qr=class extends Q.Serializable{getConfig(){return{}}},jy=class extends Qr{apply(t,e=1){return _$(t,e)}};jy.className=\"elu\";Q.registerClass(jy);var Xy=class extends Qr{apply(t){return cm(t)}};Xy.className=\"selu\";Q.registerClass(Xy);var Yy=class extends Qr{apply(t){return Rr(t)}};Yy.className=\"relu\";Q.registerClass(Yy);var Zy=class extends Qr{apply(t){return B(()=>Pi(6,Rr(t)))}};Zy.className=\"relu6\";Q.registerClass(Zy);var Jy=class extends Qr{apply(t){return t}};Jy.className=\"linear\";Q.registerClass(Jy);var Qy=class extends Qr{apply(t){return Xr(t)}};Qy.className=\"sigmoid\";Q.registerClass(Qy);var tb=class extends Qr{apply(t){return $$(t)}};tb.className=\"hardSigmoid\";Q.registerClass(tb);var eb=class extends Qr{apply(t){return Ms(t)}};eb.className=\"softplus\";Q.registerClass(eb);var rb=class extends Qr{apply(t){return A$(t)}};rb.className=\"softsign\";Q.registerClass(rb);var nb=class extends Qr{apply(t){return _i(t)}};nb.className=\"tanh\";Q.registerClass(nb);var Hm=class extends Qr{apply(t,e=-1){return ou(t,e)}};Hm.className=\"softmax\";Q.registerClass(Hm);var ob=class extends Qr{apply(t,e=-1){return om(t,e)}};ob.className=\"logSoftmax\";Q.registerClass(ob);var sb=class extends Qr{apply(t,e=1){return B(()=>R(Xr(R(t,e)),t))}};sb.className=\"swish\";Q.registerClass(sb);var ib=class extends Qr{apply(t){return B(()=>R(t,_i(Ms(t))))}};ib.className=\"mish\";Q.registerClass(ib);function qs(r){return r.getClassName()}function D0(r,t={}){return Bi(r,Q.SerializationMap.getMap().classNameMap,t,\"activation\")}function Ks(r){if(r==null){let t={};return t.className=\"linear\",t.config={},D0(t)}if(typeof r==\"string\"){let t={};return t.className=r,t.config={},D0(t)}else return r instanceof Qr?r:D0(r)}function R0(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 ab=class extends Q.Serializable{},bu=class extends ab{constructor(t){super(),R0(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(R(this.l1,Ee(t))))),this.hasL2&&(e=X(e,ft(R(this.l2,lc(t))))),D(e,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(t,e){return new t({l1:e.l1,l2:e.l2})}};bu.className=\"L1L2\";Q.registerClass(bu);function fD(r){return R0(r),new bu({l1:r!=null?r.l1:null,l2:0})}function dD(r){return R0(r),new bu({l2:r!=null?r.l2:null,l1:0})}var pD={l1l2:\"L1L2\"};function me(r){return Im(r)}function mD(r,t={}){return Bi(r,Q.SerializationMap.getMap().classNameMap,t,\"regularizer\")}function be(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in pD?pD[r]:r,config:{}};return mD(e)}else return r instanceof ab?r:mD(r)}var qm=class extends Rt{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=At(t);let n=Rr(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}};qm.className=\"ReLU\";Q.registerClass(qm);var Km=class extends Rt{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=At(t);return Zl(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};Km.className=\"LeakyReLU\";Q.registerClass(Km);var jm=class extends Rt{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=ze(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 z(`Expected sharedAxes to be a number or an array of numbers, but got ${t.sharedAxes}`)}build(t){t=Jt(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(Re(t),t===\"channelsFirst\"?Ot(r,[0,2,3,1]):r))}function F0(r,t){return B(()=>(Re(t),t===\"channelsFirst\"?Ot(r,[0,2,3,4,1]):r))}function M8(r,t,e,n=1,o=\"valid\",s,i=1){return B(()=>{if(s==null&&(s=pn()),Re(s),r.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${r.shape.length} instead.`);if(t.shape.length!==3)throw new z(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(e!=null&&e.shape.length!==1)throw new z(`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 vt(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");let a=Jp(r,t,n,o===\"same\"?\"same\":\"valid\",\"NWC\",i);return e!=null&&(a=mn(a,e)),a})}function hD(r,t,e,n=[1,1],o=\"valid\",s,i,a=null){return B(()=>{if(s==null&&(s=pn()),Re(s),r.rank!==3&&r.rank!==4)throw new z(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${r.rank}.`);if(t.rank!==3&&t.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let u=Nh(r,s);if(o===\"causal\")throw new vt(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");return u=au.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=pn()),Re(s),r.rank!==4&&r.rank!==5)throw new z(`conv3dWithBias expects input to be of rank 4 or 5, but received ${r.rank}.`);if(t.rank!==4&&t.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let a=F0(r,s);if(o===\"causal\")throw new vt(\"The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.\");return a=Cx(a,t,n,o===\"same\"?\"same\":\"valid\",\"NDHWC\",i),e!=null&&(a=mn(a,e)),s===\"channelsFirst\"&&(a=Ot(a,[0,4,1,2,3])),a})}var bc=class extends Rt{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 vt(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=wu(e.kernelSize,t,\"kernelSize\"),this.strides=wu(e.strides==null?1:e.strides,t,\"strides\"),this.padding=e.padding==null?\"valid\":e.padding,cn(this.padding),this.dataFormat=e.dataFormat==null?\"channelsLast\":e.dataFormat,Re(this.dataFormat),this.activation=Ks(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=de(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=ze(e.biasConstraint),this.biasRegularizer=be(e.biasRegularizer),this.activityRegularizer=be(e.activityRegularizer),this.dilationRate=wu(e.dilationRate==null?1:e.dilationRate,t,\"dilationRate\"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new z(`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 z(`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 z(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(t){if(eo(\"kernelSize\"in t,\"required key 'kernelSize' not in config\"),typeof t.kernelSize!=\"number\"&&!gy(t.kernelSize,\"number\",1,3))throw new z(`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:qs(this.activation),useBias:this.useBias,biasInitializer:ke(this.biasInitializer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),biasConstraint:Me(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},Cu=class extends bc{constructor(t,e){super(t,e),this.kernel=null,Cu.verifyArgs(e),this.filters=e.filters,Ze(this.filters,\"filters\"),this.kernelInitializer=de(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=ze(e.kernelConstraint),this.kernelRegularizer=be(e.kernelRegularizer)}build(t){t=Jt(t);let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new z(`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=At(t);let n,o=this.bias==null?null:this.bias.read(),s=xy(this.activation.getClassName());if(s!=null&&this.rank===2)n=hD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=M8(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=hD(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 vt(\"convolutions greater than 3D are not implemented yet.\");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=Jt(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)}`)}},ol=class extends Cu{constructor(t){super(2,t),ol.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!gy(t.kernelSize,\"number\",1,2))throw new z(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(t.kernelSize)}.`)}};ol.className=\"Conv2D\";Q.registerClass(ol);var sl=class extends Cu{constructor(t){super(3,t),sl.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 z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};sl.className=\"Conv3D\";Q.registerClass(sl);var Jm=class extends ol{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:4})],this.padding!==\"same\"&&this.padding!==\"valid\")throw new z(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Jt(t),t.length!==4)throw new z(\"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 z(\"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=At(t);if(n.shape.length!==4)throw new z(`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=js(u,m,c,this.padding),h=js(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Ot(n,[0,2,3,1]));let x=tm(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(x=Ot(x,[0,3,1,2])),this.bias!=null&&(x=mn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=Jt(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]=js(e[o],u,i,this.padding),e[s]=js(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};Jm.className=\"Conv2DTranspose\";Q.registerClass(Jm);var Qm=class extends sl{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:5})],this.padding!==\"same\"&&this.padding!==\"valid\")throw new z(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Jt(t),t.length!==5)throw new z(\"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 z(\"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=At(t);if(n.shape.length!==5)throw new z(`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=js(l,h,m,this.padding),w=js(c,g,f,this.padding),C=js(p,x,d,this.padding),N=[s,b,w,C,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Ot(n,[0,2,3,4,1]));let _=vx(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(_=Ot(_,[0,4,1,2,3])),this.bias!==null&&(_=mn(_,this.bias.read(),this.dataFormat)),this.activation!==null&&(_=this.activation.apply(_)),_})}computeOutputShape(t){t=Jt(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]=js(e[o],c,a,this.padding),e[s]=js(e[s],p,u,this.padding),e[i]=js(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};Qm.className=\"Conv3DTranspose\";Q.registerClass(Qm);var lb=class extends Cu{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 z(\"The `filters` configuration field is required by SeparableConv, but is unspecified.\");if(e.kernelInitializer!=null||e.kernelRegularizer!=null||e.kernelConstraint!=null)throw new z(\"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 z(`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=ze(e.depthwiseConstraint),this.pointwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=be(e.pointwiseRegularizer),this.pointwiseConstraint=ze(e.pointwiseConstraint)}build(t){if(t=Jt(t),t.length{t=At(t);let n;if(this.rank===1)throw new vt(\"1D separable convolution is not implemented yet.\");return this.rank===2&&(this.dataFormat===\"channelsFirst\"&&(t=Ot(t,[0,2,3,1])),n=pm(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,\"NHWC\")),this.useBias&&(n=mn(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=ke(this.depthwiseInitializer),t.pointwiseInitializer=ke(this.pointwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.pointwiseRegularizer=me(this.pointwiseRegularizer),t.depthwiseConstraint=Me(this.depthwiseConstraint),t.pointwiseConstraint=Me(this.pointwiseConstraint),t}};lb.className=\"SeparableConv\";var tf=class extends lb{constructor(t){super(2,t)}};tf.className=\"SeparableConv2D\";Q.registerClass(tf);var Iu=class extends Cu{constructor(t){super(1,t),Iu.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\"&&!gy(t.kernelSize,\"number\",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};Iu.className=\"Conv1D\";Q.registerClass(Iu);var ef=class extends Rt{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=At(t),this.dataFormat===\"channelsLast\"){let n=hh(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return hh(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=hh(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return hh(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}};ef.className=\"Cropping2D\";Q.registerClass(ef);var rf=class extends Rt{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,Re(this.dataFormat),this.interpolation=t.interpolation==null?\"nearest\":t.interpolation,v$(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=At(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\"?lu.resizeNearestNeighbor(n,[s,i]):lu.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\"?lu.resizeNearestNeighbor(n,[s,i]):lu.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}};rf.className=\"UpSampling2D\";Q.registerClass(rf);function B8(r,t,e=[1,1],n=\"valid\",o,s){return B(()=>{o==null&&(o=pn()),Re(o);let i=Nh(r,o);if(r.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(t.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Di(i,t,e,n===\"same\"?\"same\":\"valid\",\"NHWC\",s),o===\"channelsFirst\"&&(i=Ot(i,[0,3,1,2])),i})}var nf=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=ze(t.depthwiseConstraint),this.depthwiseRegularizer=be(t.depthwiseRegularizer)}build(t){if(t=Jt(t),t.length<4)throw new z(`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 z(`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=At(t);let n=B8(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=mn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=Jt(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=Sn(e,this.kernelSize[0],this.padding,this.strides[0]),i=Sn(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=ke(this.depthwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.depthwiseConstraint=Me(this.depthwiseRegularizer),t}};nf.className=\"DepthwiseConv2D\";Q.registerClass(nf);function O0(r,t,e,n){if(Array.isArray(r)){if(t!=null||e!=null)throw new z(\"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 P0(r,t,e,n=!1,o,s,i=!1,a=!1){return B(()=>{let u=t.shape.length;if(u<3)throw new z(`Input should be at least 3D, but is ${u}D.`);let l=[1,0].concat(Yr(2,u));if(t=Ot(t,l),s!=null)throw new vt(\"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=gr(o,-1)),o=Ot(o,l)),n&&(t=ur(t,0),o!=null&&(o=ur(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(xr(N),N),A=X(R(w[0],N),R(m[0],_)),$=m.map((F,P)=>X(R(w[1][P],N),R(F,_)));return{output:A,newStates:$}});p=C.output,m=C.newStates}a&&c.push(p)}let g;return a&&(g=rr(c,1)),[p,g,m]})}var Nn=class extends Rt{constructor(t){super(t);let e;if(t.cell==null)throw new z(\"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 z(\"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 Yr(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){ky(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 z(`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 z(\"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)St(this.states_),this.keptStates!=null&&(St(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 z(`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()):St(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=O0(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=At(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 z(`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=P0((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=el(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?vy(e,[1,n]):e):this.cell.stateSize>1?[vy(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()===Nn.className&&(e.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,t,e)}static fromConfig(t,e,n={}){let o=e.cell,s=hn(o,n);return new t(Object.assign(e,{cell:s}))}};Nn.className=\"RNN\";Q.registerClass(Nn);var il=class extends Rt{},wc=class extends il{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=Ks(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=ze(t.kernelConstraint),this.recurrentConstraint=ze(t.recurrentConstraint),this.biasConstraint=ze(t.biasConstraint),this.dropout=ac([1,Us([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,Us([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Jt(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 z(`SimpleRNNCell expects 2 input Tensors, got ${t.length}.`);let n=t[1];t=t[0];let o=e.training==null?!1:e.training;0xr(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0xr(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=No(R(t,i),this.kernel.read()):s=No(t,this.kernel.read()),this.bias!=null&&(s=mn(s,this.bias.read())),a!=null&&(n=R(n,a));let u=X(s,No(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:qs(this.activation),useBias:this.useBias,kernelInitializer:ke(this.kernelInitializer),recurrentInitializer:ke(this.recurrentInitializer),biasInitializer:ke(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),recurrentRegularizer:me(this.recurrentRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:Me(this.kernelConstraint),recurrentConstraint:Me(this.recurrentConstraint),biasConstraint:Me(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},t,e)}};wc.className=\"SimpleRNNCell\";Q.registerClass(wc);var of=class extends Nn{constructor(t){t.cell=new wc(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(St(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(St(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)}};of.className=\"SimpleRNN\";Q.registerClass(of);var Cc=class extends il{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 z(\"GRUCell does not support reset_after parameter set to true.\");this.units=t.units,Ze(this.units,\"units\"),this.activation=Ks(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Ks(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=ze(t.kernelConstraint),this.recurrentConstraint=ze(t.recurrentConstraint),this.biasConstraint=ze(t.biasConstraint),this.dropout=ac([1,Us([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,Us([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=Jt(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 z(`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],0xr(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0xr(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&&(St(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(St(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)}};sf.className=\"GRU\";Q.registerClass(sf);var al=class extends il{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=Ks(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Ks(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=ze(t.kernelConstraint),this.recurrentConstraint=ze(t.recurrentConstraint),this.biasConstraint=ze(t.biasConstraint),this.dropout=ac([1,Us([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,Us([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=Jt(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 fn{apply(u,l){let c=s.apply([i]),p=new xu().apply([i]),m=s.apply([i*2]);return C0(C0(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 z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let o=t[1],s=t[2];t=t[0],0xr(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0xr(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&&(St(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(St(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=\"LSTM\";Q.registerClass(af);var Ic=class extends il{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{Ws(`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({},t,o)}static fromConfig(t,e,n={}){let o=[];for(let s of e.cells)o.push(hn(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 xh(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):Ny(t(),e),a=()=>gu(i,t,n);return!o||o<=1?De(a().clone()):Array(o).fill(void 0).map(a).map(l=>De(l.clone()))}var V8=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&&(St(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(St(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),e&&e.constants)throw new z(\"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 z(\"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)St(this.states_),this.keptStates!=null&&(St(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 z(`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()):St(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=Sn(l,o[0],s,i[0],a[0]),m=Sn(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};ub.className=\"ConvRNN2D\";var vc=class extends al{constructor(t){let{filters:e,kernelSize:n,strides:o,padding:s,dataFormat:i,dilationRate:a}=t;super(Object.assign({},t,{units:e})),this.filters=e,Ze(this.filters,\"filters\"),this.kernelSize=wu(n,2,\"kernelSize\"),this.kernelSize.forEach(u=>Ze(u,\"kernelSize\")),this.strides=wu(o||1,2,\"strides\"),this.strides.forEach(u=>Ze(u,\"strides\")),this.padding=s||\"valid\",cn(this.padding),this.dataFormat=i||\"channelsLast\",Re(this.dataFormat),this.dilationRate=wu(a||1,2,\"dilationRate\"),this.dilationRate.forEach(u=>Ze(u,\"dilationRate\"))}build(t){var e;t=Jt(t);let n=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[n]==null)throw new z(`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 fn{apply(m,f){let d=l.apply([c]),h=lr([c]),g=l.apply([c*2]);return Sm([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 z(`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;0xr(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(rt,ot,at)=>!ot||!ot[at]?rt:R(ot[at],rt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0xr(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]=cr(this.kernel.read(),a,w),[$,F,P,V]=this.useBias?cr(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]=cr(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(R(Y,i),R(j,this.activation.apply(X(m,x)))),et=R(this.recurrentActivation.apply(X(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=V8(t,[\"units\"]),o={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},n,o)}inputConv(t,e,n,o){let s=Cn(t,e,this.strides,o||\"valid\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\",this.dilationRate);return n?mn(s,n,this.dataFormat):s}recurrentConv(t,e){return Cn(t,e,1,\"same\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\")}};vc.className=\"ConvLSTM2DCell\";Q.registerClass(vc);var lf=class extends ub{constructor(t){let e=new vc(t);super(Object.assign({},t,{cell:e}))}static fromConfig(t,e){return new t(e)}};lf.className=\"ConvLSTM2D\";Q.registerClass(lf);var Sc=class extends Rt{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=At(t);if(0Ny(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()}};Sc.className=\"Dropout\";Q.registerClass(Sc);var uf=class extends Sc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};uf.className=\"SpatialDropout1D\";Q.registerClass(uf);var cf=class extends Rt{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=Ks(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=ze(t.kernelConstraint),this.biasConstraint=ze(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=Jt(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=Jt(t);let e=t.slice();return e[e.length-1]=this.units,e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=At(t),o=xy(this.activation.getClassName()),s;return o!=null?s=No(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=No(n,this.kernel.read()),this.bias!=null&&(s=mn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:qs(this.activation),useBias:this.useBias,kernelInitializer:ke(this.kernelInitializer),biasInitializer:ke(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:Me(this.kernelConstraint),biasConstraint:Me(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};cf.className=\"Dense\";Q.registerClass(cf);var pf=class extends Rt{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=Jt(t);for(let e of t.slice(1))if(e==null)throw new z(`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],So(t,1)]}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=At(t);if(this.dataFormat===\"channelsFirst\"&&n.rank>1){let o=[0];for(let s=2;s{this.invokeCallHook(t,e);let n=At(t);return this.activation.apply(n)})}getConfig(){let t={activation:qs(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};mf.className=\"Activation\";Q.registerClass(mf);var ff=class extends Rt{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=At(t),k$(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};ff.className=\"RepeatVector\";Q.registerClass(ff);var df=class extends Rt{constructor(t){super(t),this.targetShape=t.targetShape;for(let e=0;e{this.invokeCallHook(t,e);let n=At(t),o=n.shape,s=o.slice(0,1).concat(this.fixUnknownDimension(o.slice(1),this.targetShape));return D(n,s)})}getConfig(){let t={targetShape:this.targetShape},e=super.getConfig();return Object.assign(t,e),t}};df.className=\"Reshape\";Q.registerClass(df);var hf=class extends Rt{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=Yr(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=Jt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Ot(At(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};hf.className=\"Permute\";Q.registerClass(hf);var gf=class extends Rt{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=At(t),o=-1;return Hu(zs(n,this.maskValue),o)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=At(t),o=-1,s=!0,i=Hu(zs(n,this.maskValue),o,s);return R(n,J(i,n.dtype))})}};gf.className=\"Masking\";Q.registerClass(gf);var xf=class extends Rt{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=ze(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=At(t),zs(t,It(t))):null)}computeOutputShape(t){if(t=Jt(t),this.inputLength==null)return[...t,this.outputDim];let e=xe(this.inputLength);if(e.length!==t.length-1)throw new z(`\"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=At(t);n.dtype!==\"int32\"&&(n=tl(n,\"int32\"));let o=Sy(this.embeddings.read(),D(n,[n.size]));return D(o,Jt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:ke(this.embeddingsInitializer),embeddingsRegularizer:me(this.embeddingsRegularizer),activityRegularizer:me(this.activityRegularizer),embeddingsConstraint:Me(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};xf.className=\"Embedding\";Q.registerClass(xf);var ul=class extends Rt{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new vt}computeElementwiseOpOutputShape(t,e){if(t==null||e==null)return null;if(t.length1)throw new z(`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=Us(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=Yr(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=D(Ot(D(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(Yr(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 z(\"`mask` should be an Array\");if(!Array.isArray(t))throw new z(\"`inputs` should be an Array\");if(e.length!==t.length)throw new z(`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:gr(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 z(\"A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: \"+JSON.stringify(t))}mergeFunction(t){return B(()=>Sm(t,this.axis))}computeOutputShape(t){if(!(Array.isArray(t)&&Array.isArray(t[0])))throw new z(\"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 z(\"`mask` should be an array for Concatenate\");if(!Array.isArray(t))throw new z(\"`inputs` should be an array for Concatenate\");if(e.length!==t.length)throw new z(`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 vt(\"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 vt(\"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 vt(\"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 z(`Dimension incompatibility: ${e[o[0]]} !== ${n[o[1]]}`)}mergeFunction(t){if(t.length!==2)throw new z(`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)=>kh(s,t[i].shape.length)):o=[kh(this.axes,e.shape.length),kh(this.axes,n.shape.length)],this.normalize&&(e=yh(e,o[0]),n=yh(n,o[1])),G8(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[kh(this.axes,t.length),kh(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 vt(\"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}};Sf.className=\"Dot\";Q.registerClass(Sf);var Nf=class extends Rt{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=At(t);return gu(()=>X(Nm(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};Nf.className=\"GaussianNoise\";Q.registerClass(Nf);var kf=class extends Rt{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=At(t);return this.rate>0&&this.rate<1?gu(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return R(n,Nm(n.shape,1,s))},()=>n,e.training||!1):n})}};kf.className=\"GaussianDropout\";Q.registerClass(kf);var Tf=class extends Rt{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate,this.noiseShape=t.noiseShape}_getNoiseShape(t){return this.noiseShape||At(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 gu(()=>{let s=At(t),i=1.6732632423543772,a=1.0507009873554805,u=-i*a,l=Fn(Li(n),this.rate);l=tl(l,\"float32\");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=X(R(s,l),R(X(l,-1),u));return X(R(m,c),p)},()=>At(t),e.training||!1)}return t})}};Tf.className=\"AlphaDropout\";Q.registerClass(Tf);function Th(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=mx(r,t,e,n,o,s);else if(r.rank===3)i=fx(r,t,e,n,o,s);else if(r.rank===4)i=dx(r,t,e,n,o,s);else throw new vt(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function W8(r,t,e,n,o=.001){return B(()=>{let s=Zu(r,n),i=s.mean,a=s.variance;return[Th(r,i,a,e,t,o),i,a]})}function U8(r,t,e,n,o=.001){return B(()=>{let s=Zu(r,n),i=s.mean,a=s.variance,u=[];for(let d of Yr(0,r.rank))n.indexOf(d)!==-1?u.push(1):u.push(r.shape[d]);let l=D(i,u),c=D(a,u),p=t==null?null:D(t,u),m=e==null?null:D(e,u);return[Th(r,l,c,m,p,o),i,a]})}function H8(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),Yr(0,r.rank-1))?W8(r,t,e,n,o):U8(r,t,e,n,o)}var Ef=class extends Rt{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=ze(t.betaConstraint),this.gammaConstraint=ze(t.gammaConstraint),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer)}build(t){t=Jt(t);let e=this.axis>=0?this.axis:this.axis+t.length,n=t[e];if(n==null)throw new z(`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=At(t),s=o.shape,i=s.length,a=Yr(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=Co(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,Yr(0,i).slice(0,i-1)),m=()=>{if(p){let b=D(this.movingMean.read(),l),w=D(this.movingVariance.read(),l),C=this.center?D(this.beta.read(),l):null,N=this.scale?D(this.gamma.read(),l):null;return Th(o,b,w,C,N,this.epsilon)}else return Th(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]=H8(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,C)=>{B(()=>{let N=1-C,_=b.read(),A=R(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:ke(this.betaInitializer),gammaInitializer:ke(this.gammaInitializer),movingMeanInitializer:ke(this.movingMeanInitializer),movingVarianceInitializer:ke(this.movingVarianceInitializer),betaRegularizer:me(this.betaRegularizer),gammaRegularizer:me(this.gammaRegularizer),betaConstraint:Me(this.betaConstraint),gammaConstraint:Me(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};Ef.className=\"BatchNormalization\";Q.registerClass(Ef);var _f=class extends Rt{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=Jt(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=At(t),o=n.shape,s=o.length;return B(()=>{let{mean:a,variance:u}=Zu(n,this.axis,!0),l=Co(1,s);for(let h of this.axis)l[h]=o[h];let c=h=>h!=null&&h.shape.length!==s?D(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 z(`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 z(\"spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.\");if(e==null&&(e=pn()),e!==\"channelsLast\"&&e!==\"channelsFirst\")throw new z(`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]],un(r,n)})}var Af=class extends Rt{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?pn():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 z(`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 z(`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 z(`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=Jt(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(()=>q8(At(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};Af.className=\"ZeroPadding2D\";Q.registerClass(Af);function hb(r,t,e,n,o,s){return B(()=>{Re(o),x0(s),cn(n),e==null&&(e=[1,1]),n==null&&(n=\"valid\"),o==null&&(o=pn()),s==null&&(s=\"max\"),r=Nh(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=tu(r,t,e,a):i=jl(r,t,e,a),o===\"channelsFirst\"&&(i=Ot(i,[0,3,1,2])),i})}function gD(r,t,e,n,o,s){return B(()=>{Re(o),x0(s),cn(n),e==null&&(e=[1,1,1]),n==null&&(n=\"valid\"),o==null&&(o=pn()),s==null&&(s=\"max\"),r=F0(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=Bx(r,t,e,a):i=px(r,t,e,a),o===\"channelsFirst\"&&(i=Ot(i,[0,4,1,2,3])),i})}var cb=class extends Rt{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 z(`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 z(`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,cn(this.padding),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){t=Jt(t);let e=Sn(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=el(At(t),2);let n=this.poolingFunction(At(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,\"channelsLast\");return Pn(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},$f=class extends cb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Re(s),cn(o),hb(t,e,n,o,s,\"max\")}};$f.className=\"MaxPooling1D\";Q.registerClass($f);var Df=class extends cb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Re(s),cn(o),hb(t,e,n,o,s,\"avg\")}};Df.className=\"AveragePooling1D\";Q.registerClass(Df);var pb=class extends Rt{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 z(`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,Re(this.dataFormat),cn(this.padding),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=Jt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2];return e=Sn(e,this.poolSize[0],this.padding,this.strides[0]),n=Sn(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(At(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}},Rf=class extends pb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Re(s),cn(o),hb(t,e,n,o,s,\"max\")}};Rf.className=\"MaxPooling2D\";Q.registerClass(Rf);var Ff=class extends pb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Re(s),cn(o),hb(t,e,n,o,s,\"avg\")}};Ff.className=\"AveragePooling2D\";Q.registerClass(Ff);var mb=class extends Rt{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 z(`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,Re(this.dataFormat),cn(this.padding),this.inputSpec=[new ye({ndim:5})]}computeOutputShape(t){t=Jt(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=Sn(e,this.poolSize[0],this.padding,this.strides[0]),n=Sn(n,this.poolSize[1],this.padding,this.strides[1]),o=Sn(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(At(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}},Of=class extends mb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Re(s),cn(o),gD(t,e,n,o,s,\"max\")}};Of.className=\"MaxPooling3D\";Q.registerClass(Of);var Pf=class extends mb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Re(s),cn(o),gD(t,e,n,o,s,\"avg\")}};Pf.className=\"AveragePooling3D\";Q.registerClass(Pf);var fb=class extends Rt{constructor(t){super(t),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new vt}},Lf=class extends fb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=At(t);return Se(n,1)})}};Lf.className=\"GlobalAveragePooling1D\";Q.registerClass(Lf);var Mf=class extends fb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=At(t);return Br(n,1)})}};Mf.className=\"GlobalMaxPooling1D\";Q.registerClass(Mf);var db=class extends Rt{constructor(t){super(t),this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Re(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 vt}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},zf=class extends db{call(t,e){return B(()=>{let n=At(t);return this.dataFormat===\"channelsLast\"?Se(n,[1,2]):Se(n,[2,3])})}};zf.className=\"GlobalAveragePooling2D\";Q.registerClass(zf);var Bf=class extends db{call(t,e){return B(()=>{let n=At(t);return this.dataFormat===\"channelsLast\"?Br(n,[1,2]):Br(n,[2,3])})}};Bf.className=\"GlobalMaxPooling2D\";Q.registerClass(Bf);var gb=class extends Rt{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=hn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},Vf=class extends gb{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=Jt(t),t.length<3)throw new z(`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=Jt(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=At(t),P0((i,a)=>[At(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};Vf.className=\"TimeDistributed\";Q.registerClass(Vf);function K8(r){Vi(C$,\"BidirectionalMergeMode\",r)}var j8=\"concat\",Gf=class extends gb{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=hn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=hn(o),this.forwardLayer.name=\"forward_\"+this.forwardLayer.name,this.backwardLayer.name=\"backward_\"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?j8:t.mergeMode,K8(this.mergeMode),t.weights)throw new vt(\"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()):Sr(o)}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=O0(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 z(\"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 vt(\"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 z(\"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=ur(s,1));let a;return this.mergeMode===\"concat\"?a=Sm([o,s]):this.mergeMode===\"sum\"?a=X(o,s):this.mergeMode===\"ave\"?a=R(.5,X(o,s)):this.mergeMode===\"mul\"?a=R(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){Ws(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),Ws(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=hn(e.layer);if(delete e.layer,e.numConstants!=null)throw new vt(\"Deserialization of a Bidirectional layer with numConstants present is not supported yet.\");let o=e;return o.layer=n,new t(o)}};Gf.className=\"Bidirectional\";Q.registerClass(Gf);var Wf=class extends Rt{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=At(t),t.dtype!==\"float32\"&&(t=tl(t,\"float32\")),X(R(t,this.scale),this.offset)))}};Wf.className=\"Rescaling\";Q.registerClass(Wf);function X8(r){return new Hs(r)}function Y8(r){return new Xm(r)}function Z8(r){return new qm(r)}function J8(r){return new Km(r)}function Q8(r){return new jm(r)}function tY(r){return new Zm(r)}function eY(r){return new Ym(r)}function rY(r){return new Iu(r)}function nY(r){return new ol(r)}function oY(r){return new Jm(r)}function sY(r){return new sl(r)}function iY(r){return new Qm(r)}function aY(r){return new tf(r)}function lY(r){return new ef(r)}function uY(r){return new rf(r)}function cY(r){return new nf(r)}function pY(r){return new mf(r)}function mY(r){return new cf(r)}function fY(r){return new Sc(r)}function dY(r){return new uf(r)}function hY(r){return new pf(r)}function gY(r){return new ff(r)}function xY(r){return new df(r)}function yY(r){return new hf(r)}function bY(r){return new xf(r)}function wY(r){return new yf(r)}function CY(r){return new wf(r)}function IY(r){return new vf(r)}function vY(r){return new Cf(r)}function SY(r){return new If(r)}function NY(r){return new bf(r)}function kY(r){return new Sf(r)}function TY(r){return new Ef(r)}function EY(r){return new _f(r)}function _Y(r){return new Af(r)}function L0(r){return new Df(r)}function AY(r){return L0(r)}function $Y(r){return L0(r)}function M0(r){return new Ff(r)}function DY(r){return M0(r)}function RY(r){return M0(r)}function z0(r){return new Pf(r)}function FY(r){return z0(r)}function OY(r){return z0(r)}function PY(r){return new Lf(r)}function LY(r){return new zf(r)}function xD(r){return new Mf(r)}function yD(r){return new Bf(r)}function bD(r){return new $f(r)}function wD(r){return new Rf(r)}function MY(r){return new Of(r)}function zY(r){return new sf(r)}function BY(r){return new Cc(r)}function VY(r){return new af(r)}function GY(r){return new al(r)}function WY(r){return new of(r)}function UY(r){return new wc(r)}function HY(r){return new lf(r)}function qY(r){return new vc(r)}function KY(r){return new Nn(r)}function jY(r){return new Ic(r)}function XY(r){return new Gf(r)}function YY(r){return new Vf(r)}var ZY=xD,JY=yD,QY=bD,tZ=wD;function eZ(r){return new Nf(r)}function rZ(r){return new kf(r)}function nZ(r){return new Tf(r)}function oZ(r){return new gf(r)}function sZ(r){return new Wf(r)}var ID={};Gt(ID,{MAPE:()=>gZ,MSE:()=>bZ,binaryAccuracy:()=>iZ,binaryCrossentropy:()=>aZ,categoricalAccuracy:()=>uZ,categoricalCrossentropy:()=>cZ,cosineProximity:()=>fZ,mape:()=>xZ,meanAbsoluteError:()=>dZ,meanAbsolutePercentageError:()=>hZ,meanSquaredError:()=>yZ,mse:()=>wZ,precision:()=>pZ,recall:()=>mZ,sparseCategoricalAccuracy:()=>lZ});function iZ(r,t){return Ch(r,t)}function aZ(r,t){return My(r,t)}function lZ(r,t){return zy(r,t)}function uZ(r,t){return Ih(r,t)}function cZ(r,t){return vh(r,t)}function pZ(r,t){return N0(r,t)}function mZ(r,t){return K$(r,t)}function fZ(r,t){return wh(r,t)}function dZ(r,t){return Bm(r,t)}function hZ(r,t){return yu(r,t)}function gZ(r,t){return yu(r,t)}function xZ(r,t){return yu(r,t)}function yZ(r,t){return Wi(r,t)}function bZ(r,t){return Wi(r,t)}function wZ(r,t){return Wi(r,t)}var vD={};Gt(vD,{modelFromJSON:()=>uD});var SD={};Gt(SD,{l1:()=>IZ,l1l2:()=>CZ,l2:()=>vZ});function CZ(r){return new bu(r)}function IZ(r){return fD(r)}function vZ(r){return dD(r)}var yb=class extends nl{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof Mn))throw new Error(\"model must be a LayersModel, not some other Container\");this.model=t}};function xb(r,t){return rt}var bb=class extends yb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new vt(\"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=xb:this.mode===\"max\"?this.monitorFunc=ND:this.monitor.indexOf(\"acc\")!==-1?this.monitorFunc=ND:this.monitorFunc=xb,this.monitorFunc===xb&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===xb?1/0:-1/0}async onEpochEnd(t,e){await Gi(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 SZ(r){return new bb(r)}var NZ={earlyStopping:SZ};var kZ=M();kZ.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 ro;(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\"})(ro||(ro={}));var kD;(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={}))})(kD||(kD={}));var B0={};function EZ(r,t){let e={tfOpName:r,category:\"custom\",inputs:[],attrs:[],customExecutor:t};B0[r]=e}function wb(r){return B0[r]}function _Z(r){delete B0[r]}function v(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 yr(t.inputNames[s.inputIndexStart],e,n,o);if(s.type===\"tensors\")return t.inputNames.slice(a,u).map(m=>yr(m,e,n,o));let l=yr(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 yr(r,t,e,n){let[o,s]=gn(r);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Cb(o,a)]);return i!==void 0?t[Cb(o,i)][s]:void 0}function TD(r,t,e){return t[Cb(r,e.currentContextId)]}function Eo(r,t){let[e,n,o]=gn(r);return[Cb(e,t&&t.currentContextId),n,o]}function Cb(r,t){return t?`${r}-${t}`:r}function gn(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 Eh(r,t,e){let n=v(\"pad\",r,t,e);if(n===\"explicit\"){n=v(\"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 Xs(r){return r.kept?r:sn(r)}var V0={};Gt(V0,{json:()=>AZ});var AZ=[{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 G0={};Gt(G0,{json:()=>$Z});var $Z=[{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 W0={};Gt(W0,{json:()=>DZ});var DZ=[{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 U0={};Gt(U0,{json:()=>RZ});var RZ=[{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 H0={};Gt(H0,{json:()=>FZ});var FZ=[{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 q0={};Gt(q0,{json:()=>OZ});var OZ=[{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 K0={};Gt(K0,{json:()=>PZ});var PZ=[{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 j0={};Gt(j0,{json:()=>LZ});var LZ=[{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 X0={};Gt(X0,{json:()=>MZ});var MZ=[{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 Y0={};Gt(Y0,{json:()=>zZ});var zZ=[{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 Z0={};Gt(Z0,{json:()=>BZ});var BZ=[{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 J0={};Gt(J0,{json:()=>VZ});var VZ=[{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 Q0={};Gt(Q0,{json:()=>GZ});var GZ=[{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 tN={};Gt(tN,{json:()=>WZ});var WZ=[{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 eN={};Gt(eN,{json:()=>UZ});var UZ=[{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 rN={};Gt(rN,{json:()=>HZ});var HZ=[{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 nN={};Gt(nN,{json:()=>qZ});var qZ=[{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 oN={};Gt(oN,{json:()=>KZ});var KZ=[{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 sN={};Gt(sN,{json:()=>jZ});var jZ=[{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 _h=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let t=[V0,G0,W0,U0,H0,q0,K0,j0,X0,Y0,Z0,J0,Q0,tN,eN,rN,nN,oN,sN],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}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]=Eo(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]=Eo(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]=Eo(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=wb(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=Ib(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ib(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"string[]\":a=_b(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=_b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number\":a=Sb(t.attr,s.tfName,s.defaultValue||0),a===void 0&&!!s.tfDeprecatedName&&(a=Sb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number[]\":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=vb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=vb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool[]\":a=$b(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=$b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape\":a=Tb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Tb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape[]\":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=Nb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Nb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype[]\":a=kb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"func\":a=ED(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=ED(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]=Eo(p.name),f={name:m,op:\"Placeholder\",inputs:[],inputNames:[],category:\"graph\",inputParams:{},attrParams:{dtype:{value:iN(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]=Eo(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]=Eo(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 XZ(r){let t=M().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 _D(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):XZ(r);return t?e:e.toLowerCase()}function Ib(r,t,e,n=!1){let o=r[t];return o!=null?_D(o.s,n):e}function vb(r,t,e){let n=r[t];return n?n.b:e}function Sb(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 iN(r){switch(typeof r==\"string\"&&(r=ro[r]),r){case ro.DT_FLOAT:case ro.DT_HALF:return\"float32\";case ro.DT_INT32:case ro.DT_INT64:case ro.DT_INT8:case ro.DT_UINT8:return\"int32\";case ro.DT_BOOL:return\"bool\";case ro.DT_DOUBLE:return\"float32\";case ro.DT_STRING:return\"string\";default:return null}}function ED(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function Nb(r,t,e){let n=r[t];return n&&n.type?iN(n.type):e}function kb(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>iN(o)):e}function AD(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size==\"number\"?t.size:parseInt(t.size,10)):[]}function Tb(r,t,e){let n=r[t];return n&&n.shape?AD(n.shape):e}function Eb(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 _b(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>_D(s,n)):e}function Ab(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>AD(o)):e}function $b(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Db=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 yr(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return yr(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Sb(this.node.rawAttrs,t,e);if(n.s!=null)return Ib(this.node.rawAttrs,t,e);if(n.b!=null)return vb(this.node.rawAttrs,t,e);if(n.shape!=null)return Tb(this.node.rawAttrs,t,e);if(n.type!=null)return Nb(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Eb(this.node.rawAttrs,t,e);if(n.list.s!=null)return _b(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Ab(this.node.rawAttrs,t,e);if(n.list.b!=null)return $b(this.node.rawAttrs,t,e);if(n.list.type!=null)return kb(this.node.rawAttrs,t,e)}return e}};var ae={};Gt(ae,{OP_SCOPE_SUFFIX:()=>IS,abs:()=>Ee,acos:()=>rx,acosh:()=>nx,add:()=>X,addN:()=>DE,all:()=>Yp,any:()=>Hu,argMax:()=>Ei,argMin:()=>ox,asin:()=>sx,asinh:()=>ix,atan:()=>ax,atan2:()=>lx,atanh:()=>ux,avgPool:()=>jl,avgPool3d:()=>px,basicLSTMCell:()=>OE,batchNorm:()=>Ai,batchNorm2d:()=>mx,batchNorm3d:()=>fx,batchNorm4d:()=>dx,batchToSpaceND:()=>Xl,bincount:()=>hx,booleanMaskAsync:()=>Uj,broadcastArgs:()=>LE,broadcastTo:()=>$i,buffer:()=>wt,cast:()=>J,ceil:()=>gx,clipByValue:()=>Cr,clone:()=>sn,complex:()=>bn,concat:()=>ne,concat1d:()=>xx,concat2d:()=>yx,concat3d:()=>bx,concat4d:()=>wx,conv1d:()=>Jp,conv2d:()=>Cn,conv2dTranspose:()=>tm,conv3d:()=>Cx,conv3dTranspose:()=>vx,cos:()=>Yl,cosh:()=>em,cosineWindow:()=>ch,cumprod:()=>ju,cumsum:()=>rm,denseBincount:()=>ME,depthToSpace:()=>Sx,depthwiseConv2d:()=>Di,diag:()=>zE,dilation2d:()=>Nx,div:()=>pt,divNoNan:()=>kx,dot:()=>Tx,dropout:()=>n0,einsum:()=>BE,elu:()=>Ri,enclosingPowerOfTwo:()=>o0,equal:()=>Ar,erf:()=>Ex,euclideanNorm:()=>_x,exp:()=>er,expandDims:()=>gr,expm1:()=>Ax,eye:()=>Yu,fft:()=>su,fill:()=>go,floor:()=>Fi,floorDiv:()=>Xp,fused:()=>au,gather:()=>Oi,gatherND:()=>Qj,greater:()=>He,greaterEqual:()=>Fn,ifft:()=>Za,imag:()=>Kl,image:()=>lu,inTopKAsync:()=>r6,irfft:()=>gm,isFinite:()=>$x,isInf:()=>Dx,isNaN:()=>Rx,leakyRelu:()=>Zl,less:()=>nm,lessEqual:()=>On,linalg:()=>i0,linspace:()=>WE,localResponseNormalization:()=>Fx,log:()=>Ir,log1p:()=>Jl,logSigmoid:()=>Lx,logSoftmax:()=>om,logSumExp:()=>sm,logicalAnd:()=>Dr,logicalNot:()=>Ql,logicalOr:()=>im,logicalXor:()=>Mx,losses:()=>rX,lowerBound:()=>UE,matMul:()=>Lt,max:()=>Br,maxPool:()=>tu,maxPool3d:()=>Bx,maxPoolWithArgmax:()=>HE,maximum:()=>In,mean:()=>Se,meshgrid:()=>qE,min:()=>Xu,minimum:()=>Pi,mirrorPad:()=>Vx,mod:()=>Gx,moments:()=>Zu,movingAverage:()=>qj,mul:()=>R,multiRNNCell:()=>KE,multinomial:()=>jE,neg:()=>Ut,norm:()=>Ya,notEqual:()=>zs,oneHot:()=>ki,ones:()=>lr,onesLike:()=>xr,op:()=>k,outerProduct:()=>XE,pad:()=>un,pad1d:()=>YE,pad2d:()=>ZE,pad3d:()=>JE,pad4d:()=>QE,pool:()=>Wx,pow:()=>an,prelu:()=>ru,print:()=>Kg,prod:()=>Ux,raggedGather:()=>t_,raggedTensorToTensor:()=>e_,rand:()=>r_,randomGamma:()=>b_,randomNormal:()=>tc,randomStandardNormal:()=>w_,randomUniform:()=>Li,range:()=>nu,real:()=>Xa,reciprocal:()=>Xx,relu:()=>Rr,relu6:()=>am,reshape:()=>D,reverse:()=>ur,reverse1d:()=>C_,reverse2d:()=>I_,reverse3d:()=>v_,reverse4d:()=>S_,rfft:()=>iu,round:()=>lm,rsqrt:()=>um,scalar:()=>mt,scatterND:()=>jj,searchSorted:()=>ah,selu:()=>cm,separableConv2d:()=>pm,setdiff1dAsync:()=>N_,sigmoid:()=>Xr,sign:()=>Yx,signal:()=>eX,sin:()=>mm,sinh:()=>fm,slice:()=>Dt,slice1d:()=>dm,slice2d:()=>uh,slice3d:()=>hm,slice4d:()=>ec,softmax:()=>ou,softplus:()=>Ms,spaceToBatchND:()=>eu,sparse:()=>nX,sparseToDense:()=>Zj,spectral:()=>tX,split:()=>cr,sqrt:()=>ve,square:()=>Mt,squaredDifference:()=>xm,squeeze:()=>Pn,stack:()=>rr,step:()=>yo,stridedSlice:()=>Zx,string:()=>oX,sub:()=>ct,sum:()=>ft,tan:()=>Jx,tanh:()=>_i,tensor:()=>wr,tensor1d:()=>Le,tensor2d:()=>Bs,tensor3d:()=>Zg,tensor4d:()=>k_,tensor5d:()=>T_,tensor6d:()=>E_,tile:()=>$r,topk:()=>Qx,transpose:()=>Ot,truncatedNormal:()=>ym,unique:()=>ty,unsortedSegmentSum:()=>bm,unstack:()=>vr,upperBound:()=>__,variable:()=>ey,where:()=>_e,whereAsync:()=>ny,zeros:()=>Ne,zerosLike:()=>It});var $D=(r,t,e,n=ae)=>{switch(r.op){case\"BiasAdd\":case\"AddV2\":case\"Add\":return[n.add(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"AddN\":return[n.addN(v(\"tensors\",r,t,e))];case\"FloorMod\":case\"Mod\":return[n.mod(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Mul\":return[n.mul(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"RealDiv\":case\"Div\":return[n.div(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"DivNoNan\":return[n.divNoNan(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"FloorDiv\":return[n.floorDiv(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Sub\":return[n.sub(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Minimum\":return[n.minimum(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Maximum\":return[n.maximum(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Pow\":return[n.pow(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"SquaredDifference\":return[n.squaredDifference(v(\"a\",r,t,e),v(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var DD=(r,t,e,n=ae)=>{switch(r.op){case\"Abs\":case\"ComplexAbs\":return[n.abs(v(\"x\",r,t,e))];case\"Acos\":return[n.acos(v(\"x\",r,t,e))];case\"Acosh\":return[n.acosh(v(\"x\",r,t,e))];case\"Asin\":return[n.asin(v(\"x\",r,t,e))];case\"Asinh\":return[n.asinh(v(\"x\",r,t,e))];case\"Atan\":return[n.atan(v(\"x\",r,t,e))];case\"Atan2\":return[n.atan2(v(\"x\",r,t,e),v(\"y\",r,t,e))];case\"Atanh\":return[n.atanh(v(\"x\",r,t,e))];case\"Ceil\":return[n.ceil(v(\"x\",r,t,e))];case\"Complex\":return[n.complex(v(\"real\",r,t,e),v(\"imag\",r,t,e))];case\"Cos\":return[n.cos(v(\"x\",r,t,e))];case\"Cosh\":return[n.cosh(v(\"x\",r,t,e))];case\"Elu\":return[n.elu(v(\"x\",r,t,e))];case\"Erf\":return[n.erf(v(\"x\",r,t,e))];case\"Exp\":return[n.exp(v(\"x\",r,t,e))];case\"Expm1\":return[n.expm1(v(\"x\",r,t,e))];case\"Floor\":return[n.floor(v(\"x\",r,t,e))];case\"Log\":return[n.log(v(\"x\",r,t,e))];case\"Log1p\":return[n.log1p(v(\"x\",r,t,e))];case\"Imag\":return[n.imag(v(\"x\",r,t,e))];case\"Neg\":return[n.neg(v(\"x\",r,t,e))];case\"Reciprocal\":return[n.reciprocal(v(\"x\",r,t,e))];case\"Real\":return[n.real(v(\"x\",r,t,e))];case\"Relu\":return[n.relu(v(\"x\",r,t,e))];case\"Round\":return[n.round(v(\"x\",r,t,e))];case\"Selu\":return[n.selu(v(\"x\",r,t,e))];case\"Sigmoid\":return[n.sigmoid(v(\"x\",r,t,e))];case\"Sin\":return[n.sin(v(\"x\",r,t,e))];case\"Sign\":return[n.sign(v(\"x\",r,t,e))];case\"Sinh\":return[n.sinh(v(\"x\",r,t,e))];case\"Softplus\":return[n.softplus(v(\"x\",r,t,e))];case\"Sqrt\":return[n.sqrt(v(\"x\",r,t,e))];case\"Square\":return[n.square(v(\"x\",r,t,e))];case\"Tanh\":return[n.tanh(v(\"x\",r,t,e))];case\"Tan\":return[n.tan(v(\"x\",r,t,e))];case\"ClipByValue\":return[n.clipByValue(v(\"x\",r,t,e),v(\"clipValueMin\",r,t,e),v(\"clipValueMax\",r,t,e))];case\"Relu6\":return[n.relu6(v(\"x\",r,t,e))];case\"Rsqrt\":return[n.rsqrt(yr(r.inputNames[0],t,e))];case\"Prod\":return[n.prod(v(\"x\",r,t,e),v(\"axes\",r,t,e))];case\"LeakyRelu\":return[n.leakyRelu(v(\"x\",r,t,e),v(\"alpha\",r,t,e))];case\"Prelu\":return[n.prelu(v(\"x\",r,t,e),v(\"alpha\",r,t,e))];case\"IsNan\":return[n.isNaN(yr(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function zn(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 RD(r){return!(typeof r==\"number\"||r.some(t=>t<0))}function Uf(r,t,e){let n=Rb(r,e),o=!RD(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=Rb(s.shape,n)}),!RD(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function Rb(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 Fb=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),zn(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=D(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}`);zn(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 cl([...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.`);zn(t,this.elementShape,\"TensorList shape mismatch: \");let o=Uf(this.elementShape,this.tensors,t);return B(()=>{let s=this.tensors.map(i=>D(i,o));return rr(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=Uf(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,zn(o.shape,t,\"TensorList shape mismatch: \"),D(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(zn(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 cl([],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.`);zn(this.tensors[t].shape,e,\"TensorList shape mismatch: \");let o=Uf(this.elementShape,this.tensors,e);return D(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.`);zn(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}`);zn(this.elementShape,n,\"TensorList shape mismatch: \"),t=t.slice(0,this.size());let o=Uf(this.elementShape,this.tensors,n);return t.length===0?wr([],[0].concat(o)):B(()=>{let s=t.map(i=>D(this.tensors[i],o));return rr(s,0)})}concat(t,e){if(!!t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);zn(this.elementShape,e,\"TensorList shape mismatch: \");let n=Uf(this.elementShape,this.tensors,e);return this.size()===0?wr([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>D(s,n));return ne(o,0)})}};function FD(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);zn(o,t,\"TensorList shape mismatch: \");let s=vr(r);return new cl(s,t,n)}function OD(r,t,e,n){return new cl([],r,t,n)}function PD(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 cl([],e,r.dtype,n),i=vr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function LD(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=Rb(s,e),a=n===0?0:r.size/n,u=B(()=>{let c=[];r=D(r,[1,n,a]);for(let p=0;p{switch(r.op){case\"If\":case\"StatelessIf\":{let n=v(\"thenBranch\",r,t,e),o=v(\"elseBranch\",r,t,e),s=v(\"cond\",r,t,e),i=v(\"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=v(\"body\",r,t,e),o=v(\"cond\",r,t,e),s=v(\"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=v(\"pred\",r,t,e);return[Xs(n)]}case\"Switch\":{let n=v(\"pred\",r,t,e),o=v(\"data\",r,t,e);return o.kept||(o=Xs(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case\"Merge\":{let n=r.inputNames.find(o=>yr(o,t,e)!==void 0);if(n){let o=yr(n,t,e);return[Xs(o)]}return}case\"Enter\":{let n=v(\"frameName\",r,t,e),o=v(\"tensor\",r,t,e);return e.enterFrame(n),[Xs(o)]}case\"Exit\":{let n=v(\"tensor\",r,t,e);return e.exitFrame(),[Xs(n)]}case\"NextIteration\":{let n=v(\"tensor\",r,t,e);return e.nextIteration(),[Xs(n)]}case\"TensorArrayV3\":{let n=v(\"size\",r,t,e),o=v(\"dtype\",r,t,e),s=v(\"elementShape\",r,t,e),i=v(\"dynamicSize\",r,t,e),a=v(\"clearAfterRead\",r,t,e),u=v(\"identicalElementShapes\",r,t,e),l=v(\"name\",r,t,e),c=new Fb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,mt(1)]}case\"TensorArrayWriteV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"index\",r,t,e),s=v(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case\"TensorArrayReadV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"index\",r,t,e);return[e.getTensorArray(n.id).read(o)]}case\"TensorArrayGatherV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"indices\",r,t,e),s=v(\"dtype\",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case\"TensorArrayScatterV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"indices\",r,t,e),s=v(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case\"TensorArrayConcatV3\":{let n=v(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id),s=v(\"dtype\",r,t,e);return[o.concat(s)]}case\"TensorArraySplitV3\":{let n=v(\"tensorArrayId\",r,t,e),o=v(\"tensor\",r,t,e),s=v(\"lengths\",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case\"TensorArraySizeV3\":{let n=v(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return[mt(o.size(),\"int32\")]}case\"TensorArrayCloseV3\":{let n=v(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case\"TensorListSetItem\":{let n=v(\"tensorListId\",r,t,e),o=v(\"index\",r,t,e),s=v(\"tensor\",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case\"TensorListGetItem\":{let n=v(\"tensorListId\",r,t,e),o=v(\"index\",r,t,e),s=v(\"elementShape\",r,t,e),i=v(\"elementDType\",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case\"TensorListScatterV2\":case\"TensorListScatter\":{let n=v(\"indices\",r,t,e),o=v(\"tensor\",r,t,e),s=v(\"elementShape\",r,t,e),i=v(\"numElements\",r,t,e),a=PD(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case\"TensorListReserve\":case\"EmptyTensorList\":{let n=v(\"elementShape\",r,t,e),o=v(\"elementDType\",r,t,e),s;r.op===\"TensorListReserve\"?s=\"numElements\":s=\"maxNumElements\";let i=v(s,r,t,e),a=r.op===\"TensorListReserve\"?-1:i,u=OD(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case\"TensorListGather\":{let n=v(\"tensorListId\",r,t,e),o=v(\"indices\",r,t,e),s=v(\"elementShape\",r,t,e),i=v(\"elementDType\",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case\"TensorListStack\":{let n=v(\"tensorListId\",r,t,e),o=v(\"elementShape\",r,t,e),s=v(\"elementDType\",r,t,e),i=v(\"numElements\",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case\"TensorListFromTensor\":{let n=v(\"tensor\",r,t,e),o=v(\"elementShape\",r,t,e),s=v(\"elementDType\",r,t,e),i=FD(n,o,s);return e.addTensorList(i),[i.idTensor]}case\"TensorListConcat\":case\"TensorListConcatV2\":{let n=v(\"tensorListId\",r,t,e),o=e.getTensorList(n.id),s=v(\"dtype\",r,t,e),i=v(\"elementShape\",r,t,e);return[o.concat(s,i)]}case\"TensorListPushBack\":{let n=v(\"tensorListId\",r,t,e),o=v(\"tensor\",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case\"TensorListPopBack\":{let n=v(\"tensorListId\",r,t,e),o=v(\"elementShape\",r,t,e),s=v(\"elementDType\",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case\"TensorListSplit\":{let n=v(\"tensor\",r,t,e),o=v(\"elementShape\",r,t,e),s=v(\"lengths\",r,t,e),i=LD(n,s,o);return e.addTensorList(i),[i.idTensor]}case\"TensorListLength\":{let n=v(\"tensorListId\",r,t,e),o=e.getTensorList(n.id);return[mt(o.size(),\"int32\")]}case\"TensorListResize\":{let n=v(\"tensorListId\",r,t,e),o=v(\"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 zD(r,t,e){let[n,o]=v(\"fusedOps\",r,t,e),s=n===\"biasadd\",i=!s,a=o===\"prelu\",u=n===\"fusedbatchnorm\",l=v(\"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=v(\"strides\",r,t,e),p=Eh(r,t,e),m=v(\"dataFormat\",r,t,e).toUpperCase(),f=v(\"dilations\",r,t,e),[d,h]=v(\"args\",r,t,e);i&&(h=d,d=void 0);let g=v(\"leakyreluAlpha\",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var BD=(r,t,e,n=ae)=>{switch(r.op){case\"Conv1D\":{let o=v(\"stride\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"dataFormat\",r,t,e).toUpperCase(),a=v(\"dilation\",r,t,e);return[n.conv1d(v(\"x\",r,t,e),v(\"filter\",r,t,e),o,s,i,a)]}case\"Conv2D\":{let o=v(\"strides\",r,t,e),s=Eh(r,t,e),i=v(\"dataFormat\",r,t,e).toUpperCase(),a=v(\"dilations\",r,t,e);return[n.conv2d(v(\"x\",r,t,e),v(\"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}=zD(r,t,e);return[n.fused.conv2d({x:v(\"x\",r,t,e),filter:v(\"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}=zD(r,t,e);return[n.fused.depthwiseConv2d({x:v(\"x\",r,t,e),filter:v(\"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=v(\"outputShape\",r,t,e),s=v(\"strides\",r,t,e),i=Eh(r,t,e);return[n.conv2dTranspose(v(\"x\",r,t,e),v(\"filter\",r,t,e),o,[s[1],s[2]],i)]}case\"DepthwiseConv2dNative\":case\"DepthwiseConv2d\":{let o=v(\"strides\",r,t,e),s=Eh(r,t,e),i=v(\"dilations\",r,t,e),a=v(\"dataFormat\",r,t,e).toUpperCase();return[n.depthwiseConv2d(v(\"input\",r,t,e),v(\"filter\",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case\"Conv3D\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"dataFormat\",r,t,e).toUpperCase(),a=v(\"dilations\",r,t,e);return[n.conv3d(v(\"x\",r,t,e),v(\"filter\",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case\"AvgPool\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e);return[n.avgPool(v(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPool\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e);return[n.maxPool(v(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPoolWithArgmax\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e),a=v(\"includeBatchInIndex\",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(v(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case\"AvgPool3D\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e);return[n.avgPool3d(v(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"MaxPool3D\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"kernelSize\",r,t,e);return[n.maxPool3d(v(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"Dilation2D\":{let o=v(\"strides\",r,t,e),s=v(\"pad\",r,t,e),i=v(\"dilations\",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(v(\"x\",r,t,e),v(\"filter\",r,t,e),[a,u],s,[l,c],\"NHWC\")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var VD=(r,t,e,n=ae)=>{switch(r.op){case\"Fill\":{let o=v(\"shape\",r,t,e),s=v(\"dtype\",r,t,e),i=v(\"value\",r,t,e);return[n.fill(o,i,s)]}case\"LinSpace\":{let o=v(\"start\",r,t,e),s=v(\"stop\",r,t,e),i=v(\"num\",r,t,e);return[n.linspace(o,s,i)]}case\"Multinomial\":{let o=v(\"logits\",r,t,e),s=v(\"numSamples\",r,t,e),i=v(\"seed\",r,t,e);return[n.multinomial(o,s,i)]}case\"OneHot\":{let o=v(\"indices\",r,t,e),s=v(\"depth\",r,t,e),i=v(\"onValue\",r,t,e),a=v(\"offValue\",r,t,e),u=v(\"dtype\",r,t,e);return[n.oneHot(o,s,i,a,u)]}case\"Ones\":return[n.ones(v(\"shape\",r,t,e),v(\"dtype\",r,t,e))];case\"OnesLike\":return[n.onesLike(v(\"x\",r,t,e))];case\"RandomStandardNormal\":return[n.randomStandardNormal(v(\"shape\",r,t,e),v(\"dtype\",r,t,e),v(\"seed\",r,t,e))];case\"RandomUniform\":return[n.randomUniform(v(\"shape\",r,t,e),v(\"minval\",r,t,e),v(\"maxval\",r,t,e),v(\"dtype\",r,t,e))];case\"Range\":{let o=v(\"start\",r,t,e),s=v(\"stop\",r,t,e),i=v(\"step\",r,t,e);return[n.range(o,s,i,v(\"dtype\",r,t,e))]}case\"TruncatedNormal\":{let o=v(\"shape\",r,t,e),s=v(\"mean\",r,t,e),i=v(\"stdDev\",r,t,e),a=v(\"seed\",r,t,e);return[n.truncatedNormal(o,s,i,v(\"dtype\",r,t,e),a)]}case\"Zeros\":return[n.zeros(v(\"shape\",r,t,e),v(\"dtype\",r,t,e))];case\"ZerosLike\":return[n.zerosLike(v(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function aN(r,t,e){let n=v(\"boxes\",r,t,e),o=v(\"scores\",r,t,e),s=v(\"maxOutputSize\",r,t,e),i=v(\"iouThreshold\",r,t,e),a=v(\"scoreThreshold\",r,t,e),u=v(\"softNmsSigma\",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var GD=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}=aN(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}=aN(r,t,e),c=v(\"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}=aN(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case\"Where\":{let s=o.cast(v(\"condition\",r,t,e),\"bool\"),i=[await o.whereAsync(s)];return s.dispose(),i}case\"ListDiff\":return o.setdiff1dAsync(v(\"x\",r,t,e),v(\"y\",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var WD=(r,t,e,n=ae)=>{switch(r.op){case\"LowerBound\":{let o=v(\"sortedSequence\",r,t,e),s=v(\"values\",r,t,e);return[n.lowerBound(o,s)]}case\"TopKV2\":{let o=v(\"x\",r,t,e),s=v(\"k\",r,t,e),i=v(\"sorted\",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case\"UpperBound\":{let o=v(\"sortedSequence\",r,t,e),s=v(\"values\",r,t,e);return[n.upperBound(o,s)]}case\"Unique\":{let o=v(\"x\",r,t,e),s=n.unique(o);return[s.values,s.indices]}case\"UniqueV2\":{let o=v(\"x\",r,t,e),s=v(\"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 UD=(r,t,e,n=ae)=>{switch(r.op){case\"Const\":return t[r.name];case\"PlaceholderWithDefault\":let o=v(\"default\",r,t,e);return[yr(r.name,t,e)||o];case\"Placeholder\":return[yr(r.name,t,e)];case\"Identity\":case\"StopGradient\":case\"FakeQuantWithMinMaxVars\":{let c=v(\"x\",r,t,e);return[Xs(c)]}case\"IdentityN\":return v(\"x\",r,t,e).map(c=>Xs(c));case\"Snapshot\":let s=v(\"x\",r,t,e);return[Xs(s)];case\"Shape\":return[n.tensor1d(v(\"x\",r,t,e).shape,\"int32\")];case\"ShapeN\":return v(\"x\",r,t,e).map(c=>n.tensor1d(c.shape));case\"Size\":return[n.scalar(v(\"x\",r,t,e).size,\"int32\")];case\"Rank\":return[n.scalar(v(\"x\",r,t,e).rank,\"int32\")];case\"NoOp\":return[n.scalar(1)];case\"Print\":let i=v(\"x\",r,t,e),a=v(\"data\",r,t,e),u=v(\"message\",r,t,e),l=v(\"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=v(\"keyDType\",r,t,e),s=v(\"valueDType\",r,t,e),i=new Ob(o,s);return n.addHashTable(r.name,i),[i.handle]}case\"LookupTableImport\":case\"LookupTableImportV2\":{let o=v(\"tableHandle\",r,t,e,n),s=v(\"keys\",r,t,e),i=v(\"values\",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case\"LookupTableFind\":case\"LookupTableFindV2\":{let o=v(\"tableHandle\",r,t,e,n),s=v(\"keys\",r,t,e),i=v(\"defaultValue\",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case\"LookupTableSize\":case\"LookupTableSizeV2\":{let o=v(\"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=v(\"images\",r,t,e),s=v(\"size\",r,t,e),i=v(\"alignCorners\",r,t,e),a=v(\"halfPixelCenters\",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case\"ResizeNearestNeighbor\":{let o=v(\"images\",r,t,e),s=v(\"size\",r,t,e),i=v(\"alignCorners\",r,t,e),a=v(\"halfPixelCenters\",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case\"CropAndResize\":{let o=v(\"image\",r,t,e),s=v(\"boxes\",r,t,e),i=v(\"boxInd\",r,t,e),a=v(\"cropSize\",r,t,e),u=v(\"method\",r,t,e),l=v(\"extrapolationValue\",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case\"ImageProjectiveTransformV3\":{let o=v(\"images\",r,t,e),s=v(\"transforms\",r,t,e),i=v(\"outputShape\",r,t,e),a=v(\"fillValue\",r,t,e),u=v(\"interpolation\",r,t,e),l=v(\"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 KD=(r,t,e,n=ae)=>{switch(r.op){case\"Equal\":return[n.equal(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"NotEqual\":return[n.notEqual(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Greater\":return[n.greater(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"GreaterEqual\":return[n.greaterEqual(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Less\":return[n.less(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"LessEqual\":return[n.lessEqual(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"LogicalAnd\":return[n.logicalAnd(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"LogicalNot\":return[n.logicalNot(v(\"a\",r,t,e))];case\"LogicalOr\":return[n.logicalOr(v(\"a\",r,t,e),v(\"b\",r,t,e))];case\"Select\":case\"SelectV2\":return[n.where(v(\"condition\",r,t,e),v(\"a\",r,t,e),v(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var jD=(r,t,e,n=ae)=>{switch(r.op){case\"BatchMatMul\":case\"BatchMatMulV2\":case\"MatMul\":return[n.matMul(v(\"a\",r,t,e),v(\"b\",r,t,e),v(\"transposeA\",r,t,e),v(\"transposeB\",r,t,e))];case\"Einsum\":return[n.einsum(v(\"equation\",r,t,e),...v(\"tensors\",r,t,e))];case\"Transpose\":return[n.transpose(v(\"x\",r,t,e),v(\"perm\",r,t,e))];case\"_FusedMatMul\":let[o,s]=v(\"fusedOps\",r,t,e),i=o===\"biasadd\",a=s===\"prelu\",u=v(\"numArgs\",r,t,e),l=v(\"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]=v(\"args\",r,t,e);return[n.fused.matMul({a:v(\"a\",r,t,e),b:v(\"b\",r,t,e),transposeA:v(\"transposeA\",r,t,e),transposeB:v(\"transposeB\",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var XD=(r,t,e,n=ae)=>{switch(r.op){case\"EuclideanNorm\":return[n.euclideanNorm(v(\"x\",r,t,e),v(\"axis\",r,t,e),v(\"keepDims\",r,t,e))];case\"FusedBatchNorm\":case\"FusedBatchNormV2\":return[n.batchNorm(v(\"x\",r,t,e),v(\"mean\",r,t,e),v(\"variance\",r,t,e),v(\"offset\",r,t,e),v(\"scale\",r,t,e),v(\"epsilon\",r,t,e))];case\"FusedBatchNormV3\":return[n.batchNorm(v(\"x\",r,t,e),v(\"mean\",r,t,e),v(\"variance\",r,t,e),v(\"offset\",r,t,e),v(\"scale\",r,t,e),v(\"epsilon\",r,t,e))];case\"LRN\":return[n.localResponseNormalization(v(\"x\",r,t,e),v(\"radius\",r,t,e),v(\"bias\",r,t,e),v(\"alpha\",r,t,e),v(\"beta\",r,t,e))];case\"Softmax\":return[n.softmax(v(\"x\",r,t,e))];case\"LogSoftmax\":return[n.logSoftmax(v(\"x\",r,t,e))];case\"SparseToDense\":return[n.sparseToDense(v(\"sparseIndices\",r,t,e),v(\"outputShape\",r,t,e),v(\"sparseValues\",r,t,e),v(\"defaultValue\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var YD=(r,t,e,n=ae)=>{switch(r.op){case\"Max\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.max(v(\"x\",r,t,e),a,u)]}case\"Mean\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.mean(v(\"x\",r,t,e),a,u)]}case\"Min\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.min(v(\"x\",r,t,e),a,u)]}case\"Sum\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.sum(v(\"x\",r,t,e),a,u)]}case\"All\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.all(v(\"x\",r,t,e),a,u)]}case\"Any\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.any(v(\"x\",r,t,e),a,u)]}case\"ArgMax\":{let a=v(\"axis\",r,t,e);return[n.argMax(v(\"x\",r,t,e),a)]}case\"ArgMin\":{let a=v(\"axis\",r,t,e);return[n.argMin(v(\"x\",r,t,e),a)]}case\"Prod\":{let a=v(\"axis\",r,t,e),u=v(\"keepDims\",r,t,e);return[n.prod(v(\"x\",r,t,e),a,u)]}case\"Cumprod\":{let a=v(\"axis\",r,t,e),u=v(\"exclusive\",r,t,e),l=v(\"reverse\",r,t,e);return[n.cumprod(v(\"x\",r,t,e),a,u,l)]}case\"Cumsum\":{let a=v(\"axis\",r,t,e),u=v(\"exclusive\",r,t,e),l=v(\"reverse\",r,t,e);return[n.cumsum(v(\"x\",r,t,e),a,u,l)]}case\"Bincount\":let o=v(\"x\",r,t,e),s=v(\"weights\",r,t,e),i=v(\"size\",r,t,e);return[n.bincount(o,s,i)];case\"DenseBincount\":{let a=v(\"x\",r,t,e),u=v(\"weights\",r,t,e),l=v(\"size\",r,t,e),c=v(\"binaryOutput\",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var ZD=(r,t,e,n=ae)=>{switch(r.op){case\"ConcatV2\":case\"Concat\":{let o=v(\"n\",r,t,e),s=v(\"axis\",r,t,e),i=v(\"tensors\",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case\"Gather\":{let o=v(\"x\",r,t,e),s=v(\"indices\",r,t,e);return[n.gather(o,n.cast(s,\"int32\"),0)]}case\"GatherV2\":{let o=v(\"axis\",r,t,e),s=v(\"batchDims\",r,t,e),i=v(\"x\",r,t,e),a=v(\"indices\",r,t,e);return[n.gather(i,n.cast(a,\"int32\"),o,s)]}case\"Reverse\":{let o=v(\"dims\",r,t,e),s=[];for(let a=0;a{let o=v(\"axis\",r,t,e),s=v(\"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=v(\"axis\",r,t,e),s=v(\"tensor\",r,t,e);return n.unstack(s,o)}case\"Tile\":{let o=v(\"reps\",r,t,e);return[n.tile(v(\"x\",r,t,e),o)]}case\"Split\":case\"SplitV\":{let o=v(\"axis\",r,t,e),s=v(\"numOrSizeSplits\",r,t,e),i=v(\"x\",r,t,e);return n.split(i,s,o)}case\"ScatterNd\":{let o=v(\"indices\",r,t,e),s=v(\"values\",r,t,e),i=v(\"shape\",r,t,e);return[n.scatterND(o,s,i)]}case\"GatherNd\":{let o=v(\"x\",r,t,e),s=v(\"indices\",r,t,e);return[n.gatherND(o,s)]}case\"SparseToDense\":{let o=v(\"sparseIndices\",r,t,e),s=v(\"outputShape\",r,t,e),i=v(\"sparseValues\",r,t,e),a=v(\"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 JD=(r,t,e,n=ae)=>{switch(r.op){case\"SparseFillEmptyRows\":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(v(\"indices\",r,t,e),v(\"values\",r,t,e),v(\"denseShape\",r,t,e),v(\"defaultValue\",r,t,e));return[o,s,i,a]}case\"SparseReshape\":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(v(\"inputIndices\",r,t,e),v(\"inputShape\",r,t,e),v(\"newShape\",r,t,e));return[o,s]}case\"SparseSegmentMean\":return[n.sparse.sparseSegmentMean(v(\"data\",r,t,e),v(\"indices\",r,t,e),v(\"segmentIds\",r,t,e))];case\"SparseSegmentSum\":return[n.sparse.sparseSegmentSum(v(\"data\",r,t,e),v(\"indices\",r,t,e),v(\"segmentIds\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var QD=(r,t,e,n=ae)=>{switch(r.op){case\"FFT\":return[n.fft(v(\"x\",r,t,e))];case\"IFFT\":return[n.ifft(v(\"x\",r,t,e))];case\"RFFT\":return[n.rfft(v(\"x\",r,t,e))];case\"IRFFT\":return[n.irfft(v(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var tR=(r,t,e,n=ae)=>{switch(r.op){case\"StringNGrams\":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(v(\"data\",r,t,e),v(\"dataSplits\",r,t,e),v(\"separator\",r,t,e),v(\"nGramWidths\",r,t,e),v(\"leftPad\",r,t,e),v(\"rightPad\",r,t,e),v(\"padWidth\",r,t,e),v(\"preserveShortSequences\",r,t,e));return[o,s]}case\"StringSplit\":{let{indices:o,values:s,shape:i}=n.string.stringSplit(v(\"input\",r,t,e),v(\"delimiter\",r,t,e),v(\"skipEmpty\",r,t,e));return[o,s,i]}case\"StringToHashBucketFast\":return[n.string.stringToHashBucketFast(v(\"input\",r,t,e),v(\"numBuckets\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var eR=(r,t,e,n=ae)=>{switch(r.op){case\"Cast\":return[n.cast(v(\"x\",r,t,e),v(\"dtype\",r,t,e))];case\"ExpandDims\":{let o=v(\"axis\",r,t,e);return[n.expandDims(v(\"x\",r,t,e),o)]}case\"Squeeze\":{let o=v(\"axis\",r,t,e);return[n.squeeze(v(\"x\",r,t,e),o)]}case\"Reshape\":return[n.reshape(v(\"x\",r,t,e),v(\"shape\",r,t,e))];case\"MirrorPad\":return[n.mirrorPad(v(\"x\",r,t,e),v(\"padding\",r,t,e),v(\"mode\",r,t,e))];case\"PadV2\":case\"Pad\":return[n.pad(v(\"x\",r,t,e),v(\"padding\",r,t,e),v(\"constantValue\",r,t,e))];case\"SpaceToBatchND\":{let o=v(\"blockShape\",r,t,e),s=v(\"paddings\",r,t,e);return[n.spaceToBatchND(v(\"x\",r,t,e),o,s)]}case\"BatchToSpaceND\":{let o=v(\"blockShape\",r,t,e),s=v(\"crops\",r,t,e);return[n.batchToSpaceND(v(\"x\",r,t,e),o,s)]}case\"DepthToSpace\":{let o=v(\"blockSize\",r,t,e),s=v(\"dataFormat\",r,t,e).toUpperCase();return[n.depthToSpace(v(\"x\",r,t,e),o,s)]}case\"BroadcastTo\":return[n.broadcastTo(v(\"x\",r,t,e),v(\"shape\",r,t,e))];case\"BroadcastArgs\":return[n.broadcastArgs(v(\"s0\",r,t,e),v(\"s1\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function lN(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case\"arithmetic\":return o(()=>$D(i,a,u));case\"basic_math\":return o(()=>DD(i,a,u));case\"control\":return MD(i,a,u);case\"convolution\":return o(()=>BD(i,a,u));case\"creation\":return o(()=>VD(i,a,u));case\"dynamic\":return GD(i,a,u);case\"evaluation\":return o(()=>WD(i,a,u));case\"image\":return o(()=>qD(i,a,u));case\"graph\":return o(()=>UD(i,a,u));case\"logical\":return o(()=>KD(i,a,u));case\"matrices\":return o(()=>jD(i,a,u));case\"normalization\":return o(()=>XD(i,a,u));case\"reduction\":return o(()=>YD(i,a,u));case\"slice_join\":return o(()=>ZD(i,a,u));case\"sparse\":return o(()=>JD(i,a,u));case\"spectral\":return o(()=>QD(i,a,u));case\"string\":return o(()=>tR(i,a,u));case\"transformation\":return o(()=>eR(i,a,u));case\"hash_table\":return HD(i,a,u,n);case\"custom\":let l=wb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Db(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 Ah=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 uN(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=Object.keys(r).map(m=>gn(m)[0]),c=[];n!=null&&(c=n.map(m=>gn(m.name)[0]));let p=[...t];for(;p.length>0;){let m=p.pop();if((cN(m)||y7(m)||b7(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 rR(r,t,e){let{usedNodes:n,inputs:o}=e,s=[],i=Object.keys(o).map(c=>gn(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 h7=[\"Switch\",\"Merge\",\"Enter\",\"Exit\",\"NextIteration\",\"StatelessIf\",\"StatelessWhile\",\"if\",\"While\"],g7=[\"NonMaxSuppressionV2\",\"NonMaxSuppressionV3\",\"NonMaxSuppressionV5\",\"Where\"],x7=[\"HashTable\",\"HashTableV2\",\"LookupTableImport\",\"LookupTableImportV2\",\"LookupTableFind\",\"LookupTableFindV2\",\"LookupTableSize\",\"LookupTableSizeV2\"];function cN(r){return h7.indexOf(r.op)>=0}function y7(r){return g7.indexOf(r.op)>=0}function b7(r){return x7.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=uN(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 rR(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[gn(p)[0]]),s=e.map(p=>gn(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 Ah(this.weightMap,l,c,this.functionExecutorMap),m=Object.assign({},this.weightMap);Object.keys(t).forEach(h=>{let[g,x]=gn(h),b=[];b[x]=t[h],m[g]=b});let f=this.getFrozenTensorIds(m),d={};for(let h=0;hyr(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=TD(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]=Eo(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=M().getBool(\"KEEP_INTERMEDIATE_TENSORS\")}catch(c){console.warn(c.message)}this.resetIntermediateTensors();let i=new Ah(this.weightMap,o,s,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(t,i,e,n);let a=e.map(c=>yr(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[gn(w)[0]]),a=n.map(w=>gn(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}=uN(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]=gn(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=>!cN(w)&&!yr(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\"&&v(\"isConstant\",p.node,o,n)&&([m]=Eo(p.node.name,n)),o[p.node.name]==null){let f=lN(p.node,o,n,this._resourceManager);m||([m]=Eo(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]=Eo(a.name,n);s[u]||!i.has(a.name)||(a.op===\"Merge\"?a.inputNames.some(l=>!!yr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!yr(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]=gn(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]=gn(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]=gn(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var Pb=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 w7=\"?tfjs-format=file\",C7=\"model.json\",$h=class{constructor(t,e={},n=Er){this.modelUrl=t,this.loadOptions=e,this.version=\"n/a\",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new Pb}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(_h.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=_h.Instance.transformGraph(t.modelInitializer);this.initializer=new Nc(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}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))return t;if(t=Array.isArray(t)?t:[t],t.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${t.length} input tensors.`);return this.inputNodes.reduce((e,n,o)=>(e[n]=t[o],e),{})}normalizeOutputs(t){return t=t||this.outputNodes,Array.isArray(t)?t:[t]}execute(t,e){t=this.normalizeInputs(t),e=this.normalizeOutputs(e);let n=this.executor.execute(t,e);return n.length>1?n:n[0]}async executeAsync(t,e){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.resourceManager.dispose()}};async function I7(r,t={},e=Er){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=S7(r));let n=new $h(r,t,e);return await n.load(),n}function v7(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=Er.getWeightSpecs(n.weightsManifest),i=Er.getModelArtifactsForJSONSync(n,s,o);t=Er.fromMemorySync(i)}else if(\"load\"in r)t=r;else if(\"modelTopology\"in r&&\"weightSpecs\"in r&&\"weightData\"in r)t=Er.fromMemorySync(r);else throw new Error(\"Unknown model format\");let e=new $h(t);return e.load(),e}function S7(r){return r.endsWith(\"/\")||(r=r+\"/\"),`${r}${C7}${w7}`}var nR=\"3.21.0\";var vR={};Gt(vR,{CSVDataset:()=>Kf,Dataset:()=>Ys,FileDataSource:()=>Jf,TextLineDataset:()=>qf,URLDataSource:()=>Qf,array:()=>fR,csv:()=>yR,func:()=>bR,generator:()=>wR,microphone:()=>IR,version_data:()=>$N,webcam:()=>CR,zip:()=>dR});var mR=Sl(lh());var uR=Sl(lh());function oR(r,t){return Lb(r,t)}function Lb(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=Lb(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 sR(r,t=mN){return iR(r,t)}function iR(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=iR(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 mN(r){return r===null?null:vu(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function Mb(r,t){let e=new Map;Lb(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 Lb(r,t,e)}function vu(r){let t=!1;if(M().get(\"IS_BROWSER\"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=pN();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r==\"object\"&&!(r instanceof Ft)&&!(r instanceof Promise)&&!t)}function aR(r){return r==null||N7(r)||Array.isArray(r)||typeof r==\"object\"&&r instanceof Ft||y.isTypedArray(r)}function N7(r){return r===null||typeof r!=\"object\"&&typeof r!=\"function\"}function lR(r){return oR(r,k7)}function k7(r){return r instanceof Ft?{value:r.clone(),recurse:!1}:vu(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var Hf=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 kc=class extends Hf{constructor(){super(kc.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 yN(this,t,e)}columnMajorBatch(t,e=!0,n=mN){return this.rowMajorBatch(t,e).map(s=>sR(s,n))}concatenate(t,e){return new Bb(NN([this,t]),e)}take(t){return t<0||t==null?this:new xN(this,t)}skip(t){return t<0||t==null?this:new gN(this,t)}prefetch(t){return new Vb(this,t)}shuffle(t,e){return new SN(this,t,e)}serial(){return new hN(this)}},fN=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:lR(t),done:!1}}},dN=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}}},hN=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()}},gN=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()}},yN=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}}},bN=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;St(t.value)}}},wN=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=fo.getTensorsInContainer(t.value),n=this.transform(t.value),o=fo.getTensorsInContainer(n);for(let s of e)fo.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},CN=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}}}},zb=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=fo.getTensorsInContainer(t.value),n=await this.transform(t.value),o=fo.getTensorsInContainer(n);for(let s of e)fo.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},Tc=class extends Je{constructor(){super(),this.outputQueue=new kc,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}}},IN=class extends Tc{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=fo.getTensorsInContainer(t.value),n=this.transform(t.value),o=fo.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)fo.isTensorInList(s,o)||s.dispose();return!0}},Bb=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}},pl;(function(r){r[r.FAIL=0]=\"FAIL\",r[r.SHORTEST=1]=\"SHORTEST\",r[r.LONGEST=2]=\"LONGEST\"})(pl||(pl={}));var vN=class extends Je{constructor(t,e=pl.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 Mb(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case pl.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case pl.SHORTEST:return{value:null,done:!0};case pl.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},Vb=class extends Je{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new Hf(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()}},SN=class extends Vb{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=uR.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 Ys=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,T7),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=Dh(async()=>({value:await e.iterator(),done:!1}));return cR(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=mR.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()}};Ys.MAX_BUFFER_SIZE=1e4;function kn(r,t=null){return new class extends Ys{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function fR(r){return kn(async()=>NN(r),r.length)}function dR(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 Mb(r,n=>{if(n instanceof Ys)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 pR(e,pl.SHORTEST)},t)}function T7(r){if(r===null)return null;let t=r[0];return aR(t)?{value:E7(r),recurse:!1}:{value:null,recurse:!0}}function E7(r){if(r.length===0)throw new Error(\"Can't make a batch of zero elements.\");return r[0]instanceof Ft?rr(r):wr(r)}var qf=class extends Ys{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 Gb='\"',Rh=Symbol(\"out\"),hR=Symbol(\"field\"),Wb=Symbol(\"quote\"),kN=Symbol(\"quoteafterquote\"),gR=Symbol(\"quoteinquote\"),Kf=class extends Ys{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 qf(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(!M().get(\"IS_BROWSER\"))throw new Error(\"microphone API is only supported in browser environment.\");let e=new jf(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),wr(n,e)}};var Xf=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=Le([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=Bs([i,s,u,a],[1,4])}else this.cropBox=Bs([0,0,1,1],[1,4])}summary(){return\"webcam\"}static async create(t,e={}){if(!M().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 Xf(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=Jg.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=gr(J(t,\"float32\"),0),n;n=lu.cropAndResize(e,this.cropBox,this.cropBoxInd,this.cropSize,\"bilinear\");let o=n.shape;return D(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 Yf=class{};var Fh=class extends Je{split(t){return new TN(this,t)}},TN=class extends Fh{constructor(t,e){super(),this.upstream=t,this.impl=new EN(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},EN=class extends Tc{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 Ub=class extends Je{decodeUTF8(){return new _N(this)}},_N=class extends Fh{constructor(t){super(),this.upstream=t,this.impl=new AN(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},AN=class extends Tc{constructor(t){if(super(),this.upstream=t,M().get(\"IS_BROWSER\"))this.decoder=new TextDecoder(\"utf-8\");else{let{StringDecoder:e}=pN();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 M().get(\"IS_BROWSER\")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var Zf=class extends Ub{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(M().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 xR(r,t={},e){let n,o;typeof r==\"string\"?n=r:(n=r.url,o=_7(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new Zf(i,t)}else throw new Error(s.statusText)}var _7=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 Hb(r){return typeof r==\"string\"&&r.slice(0,7)===\"file://\"}var Jf=class extends Yf{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(Hb(this.input)&&M().get(\"IS_NODE\")){let t=qb();this.input=t.readFileSync(this.input.slice(7))}return new Zf(this.input,this.options)}};var Qf=class extends Yf{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return Hb(this.url)?new Jf(this.url,this.fileOptions).iterator():xR(this.url,this.fileOptions)}};function yR(r,t={}){return new Kf(new Qf(r),t)}function bR(r){let t=Dh(r);return kn(async()=>t)}function wR(r){return kn(async()=>{let t=await r();return Dh(()=>t.next())})}async function CR(r,t){return Xf.create(r,t)}async function IR(r){return jf.create(r)}var $N=\"3.21.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 A7=Wr.whereImpl,Su=class extends Mo{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new ta(this,ho())}nextDataId(){return Su.nextDataId++}write(t,e,n){this.firstUse&&(this.firstUse=!1,M().get(\"IS_NODE\")&&S.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 S.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 ho().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 A7(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Su.nextDataId=0;var iw={};Gt(iw,{addImpl:()=>FN,bincountImpl:()=>rd,bincountReduceImpl:()=>Kb,castImpl:()=>RN,ceilImpl:()=>ON,concatImpl:()=>Ec,equalImpl:()=>PN,expImpl:()=>MN,expm1Impl:()=>BN,floorImpl:()=>VN,gatherNdImpl:()=>jb,gatherV2Impl:()=>Xb,greaterEqualImpl:()=>WN,greaterImpl:()=>GN,lessEqualImpl:()=>HN,lessImpl:()=>UN,linSpaceImpl:()=>Yb,logImpl:()=>qN,maxImpl:()=>Zb,maximumImpl:()=>KN,minimumImpl:()=>jN,multiplyImpl:()=>Oh,negImpl:()=>XN,notEqualImpl:()=>YN,prodImpl:()=>ZN,raggedGatherImpl:()=>Jb,raggedTensorToTensorImpl:()=>Qb,rangeImpl:()=>Ac,rsqrtImpl:()=>JN,scatterImpl:()=>ml,sigmoidImpl:()=>ZR,simpleAbsImpl:()=>DN,sliceImpl:()=>$c,sparseFillEmptyRowsImpl:()=>tw,sparseReshapeImpl:()=>ew,sparseSegmentReductionImpl:()=>sd,sqrtImpl:()=>tF,squaredDifferenceImpl:()=>tk,stridedSliceImpl:()=>rw,stringNGramsImpl:()=>Dc,stringSplitImpl:()=>Rc,stringToHashBucketFastImpl:()=>Fc,subImpl:()=>rk,tileImpl:()=>nw,topKImpl:()=>ow,transposeImpl:()=>nd,uniqueImpl:()=>sw});function DN(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=DN(o),e.makeOutput(n,t.shape,t.dtype)},SR={kernelName:oi,backendName:\"cpu\",kernelFunc:$7};function Qt(r){return(t,e,n,o,s)=>{let i=S.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=S.getBroadcastDims(t,i),g=S.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 br(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 NR={kernelName:pp,backendName:\"cpu\",kernelFunc:br};function td(r,t,e=\"float32\"){if(e===\"complex64\"){let o=td(r,t,\"float32\"),s=td(r,t,\"float32\");return br({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function qr(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 kR={kernelName:lo,backendName:\"cpu\",kernelFunc:qr};function _o(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 TR={kernelName:Dp,backendName:\"cpu\",kernelFunc:_o};function RN(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 Ao(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s===\"complex64\"){if(o.dtype===\"complex64\")return qr({inputs:{x:o},backend:e});let c=td(e,o.shape,o.dtype),p=Ao({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),m=br({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype===\"complex64\"){let c=_o({inputs:{input:o},backend:e}),p=Ao({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=qr({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]=RN(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var ER={kernelName:io,backendName:\"cpu\",kernelFunc:Ao};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\"?S.fromUint8ToStringArray(l):l,m=i.dtype===\"string\"?S.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=Ao({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=Ao({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=br({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 ed(r){return(t,e,n,o,s,i)=>{let a=S.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=S.getBroadcastDims(t,a),d=S.getBroadcastDims(e,a),h=S.mergeRealAndImagArrays(n,o),g=S.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 FN=Qt((r,t)=>r+t),D7=ed((r,t,e,n)=>({real:r+e,imag:t+n})),Hi=oe(Yn,FN,D7),_R={kernelName:Yn,backendName:\"cpu\",kernelFunc:Hi};function rd(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 Kb(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 xn(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 ON=xn(r=>Math.ceil(r)),R7=$o(Ho,ON),AR={kernelName:Ho,backendName:\"cpu\",kernelFunc:R7};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\"?S.fromUint8ToStringArray(i.vals):i.vals,u=0;for(let l=0;lr===t?1:0),LN=oe(ha,PN,null,\"bool\"),$R={kernelName:ha,backendName:\"cpu\",kernelFunc:LN};var MN=xn(r=>Math.exp(r)),zN=$o(ts,MN,\"float32\"),DR={kernelName:ts,backendName:\"cpu\",kernelFunc:zN};var BN=xn(r=>Math.expm1(r)),F7=$o(ga,BN),RR={kernelName:ga,backendName:\"cpu\",kernelFunc:F7};var VN=xn(r=>Math.floor(r)),O7=$o(es,VN),FR={kernelName:es,backendName:\"cpu\",kernelFunc:O7};function jb(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),P7=oe(ba,GN,null,\"bool\"),OR={kernelName:ba,backendName:\"cpu\",kernelFunc:P7};var WN=Qt((r,t)=>r>=t?1:0),L7=oe(os,WN,null,\"bool\"),PR={kernelName:os,backendName:\"cpu\",kernelFunc:L7};var UN=Qt((r,t)=>rr<=t?1:0),z7=oe(Sa,HN,null,\"bool\"),MR={kernelName:Sa,backendName:\"cpu\",kernelFunc:z7};function Yb(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,\"float32\");o[0]=r;for(let s=1;sMath.log(r)),B7=$o(is,qN),zR={kernelName:is,backendName:\"cpu\",kernelFunc:B7};function Zb(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 KN=Qt((r,t)=>Math.max(r,t)),V7=oe(ls,KN),BR={kernelName:ls,backendName:\"cpu\",kernelFunc:V7};var jN=Qt((r,t)=>Math.min(r,t)),G7=oe(ms,jN),VR={kernelName:ms,backendName:\"cpu\",kernelFunc:G7};var Oh=Qt((r,t)=>r*t),W7=ed((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),_c=oe(ds,Oh,W7),GR={kernelName:ds,backendName:\"cpu\",kernelFunc:_c};function XN(r,t,e){let n=y.createScalarValue(-1,e);return Oh([],t,n,r,e)}function U7(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,\"neg\");let o=e.data.get(n.dataId).values,[s,i]=XN(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var WR={kernelName:ui,backendName:\"cpu\",kernelFunc:U7};var YN=Qt((r,t)=>r!==t?1:0),H7=oe(Aa,YN,null,\"bool\"),UR={kernelName:Aa,backendName:\"cpu\",kernelFunc:H7};function nd(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:bs,backendName:\"cpu\",kernelFunc:q7};function K7(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 j7(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 X7(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);j7(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 KR(r,t){let e=r.slice(0,t);for(;e.lengthn&&(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 Do.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Do.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: ${Do[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 Do.FIRST_DIM_SIZE:return t[0];case Do.VALUE_ROWIDS:throw new Error(\"Cannot handle VALUE_ROWIDS in first dimension.\");case Do.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Do[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=XR(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=D(c,d);c=$i(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);jR(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function jR(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 Qb(r,t,e,n,o,s,i,a,u,l){return new od(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)),Q7=$o(ks,JN),YR={kernelName:ks,backendName:\"cpu\",kernelFunc:Q7};function ml(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))),QN=kt(Es,r=>1/(1+Math.exp(-r))),JR={kernelName:Es,backendName:\"cpu\",kernelFunc:QN};function $c(r,t,e,n,o){let s=Pe.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=Pe.computeFlatOffset(t,a);return o===\"string\"?r.slice(p,p+i):r.subarray(p,p+i)}let u=o===\"string\"?S.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\"?S.fromStringArrayToUint8(c.values):c.values}function Ro(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,\"slice\");let[a,u]=Pe.parseSliceParams(o,s,i);Pe.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 QR={kernelName:di,backendName:\"cpu\",kernelFunc:Ro};function tw(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(S.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(S.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(S.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(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let h=0,g=1,x=0,b=o[h];for(;;){let w=0;if(g=w)throw new Error(S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>x&&d.fill(i,x*l,b*l);for(let C=h;C=u[0])throw new Error(S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(C,n[C],u[0]));for(let _=0;_a)break}return xMath.sqrt(r)),tJ=kt(_s,r=>Math.sqrt(r)),eF={kernelName:_s,backendName:\"cpu\",kernelFunc:tJ};var tk=Qt((r,t)=>{let e=r-t;return e*e}),eJ=oe(Ds,tk),rF={kernelName:Ds,backendName:\"cpu\",kernelFunc:eJ};function rw(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 ek(e,n,o,s,i,a).compute(r,t)}function rJ(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),nJ=ed((r,t,e,n)=>({real:r-e,imag:t-n})),Ph=oe(Rs,rk,nJ),nF={kernelName:Rs,backendName:\"cpu\",kernelFunc:Ph};function nw(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 oF(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));oF(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),Lh(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}Lh(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 ow(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 Su,1);var nk=kt(Qo,r=>r>=0?r:Math.exp(r)-1),sF={kernelName:Qo,backendName:\"cpu\",kernelFunc:nk};function ok(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 sk(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]=sJ(n.shape,o.shape,s,i,\"float32\");return e.makeTensorInfo(u,\"float32\",a)}var aF={kernelName:ys,backendName:\"cpu\",kernelFunc:sk};var ik=kt(ws,r=>Math.max(0,r)),lF={kernelName:ws,backendName:\"cpu\",kernelFunc:ik};var ak=kt(vs,r=>Math.min(Math.max(0,r),6)),uF={kernelName:vs,backendName:\"cpu\",kernelFunc:ak};function Oc(r,t,e,n,o){if(e===\"linear\")return qr({inputs:{x:t},backend:r});if(e===\"relu\")return ik({inputs:{x:t},backend:r});if(e===\"elu\")return nk({inputs:{x:t},backend:r});if(e===\"relu6\")return ak({inputs:{x:t},backend:r});if(e===\"prelu\")return sk({inputs:{x:t,alpha:n},backend:r});if(e===\"leakyrelu\")return ok({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e===\"sigmoid\")return QN({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function Xt(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 cF={kernelName:mi,backendName:\"cpu\",kernelFunc:Xt};function lk(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=zr.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],_=Xt({inputs:{x:o},backend:e,attrs:{shape:C}}),A=Xt({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)),fF={kernelName:ra,backendName:\"cpu\",kernelFunc:aJ};var lJ=kt(na,r=>Math.acosh(r)),dF={kernelName:na,backendName:\"cpu\",kernelFunc:lJ};function uJ(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 yF={kernelName:Go,backendName:\"cpu\",kernelFunc:mJ};function fJ(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=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Be({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),i=[i[0]],S.assertAxesAreInnerMostDims(\"argMin\",i,u.shape.length);let[c,p]=S.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 bF={kernelName:Nl,backendName:\"cpu\",kernelFunc:fJ};var dJ=kt(ia,r=>Math.asin(r)),wF={kernelName:ia,backendName:\"cpu\",kernelFunc:dJ};var hJ=kt(aa,r=>Math.asinh(r)),CF={kernelName:aa,backendName:\"cpu\",kernelFunc:hJ};var gJ=kt(la,r=>Math.atan(r)),IF={kernelName:la,backendName:\"cpu\",kernelFunc:gJ};var xJ=Qt((r,t)=>Math.atan2(r,t)),yJ=oe(ca,xJ),vF={kernelName:ca,backendName:\"cpu\",kernelFunc:yJ};var bJ=kt(ua,r=>Math.atanh(r)),SF={kernelName:ua,backendName:\"cpu\",kernelFunc:bJ};function id(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 aw(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 lw(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;FTt?Tt=Ge:s===\"avg\"&&(_t+=Ge,Bt++),isNaN(Tt))break}if(isNaN(Tt))break}if(isNaN(Tt))break}let Yt=bt+G;C[Yt]=s===\"avg\"?_t/Bt:Tt}}}}return w}function NF(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 wJ(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(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=qr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=id(m,o.shape,o.dtype,f,c,\"avg\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var kF={kernelName:Wo,backendName:\"cpu\",kernelFunc:wJ};function CJ(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=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=lw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"avg\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var TF={kernelName:kl,backendName:\"cpu\",kernelFunc:CJ};function IJ(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=S.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 EF={kernelName:lp,backendName:\"cpu\",kernelFunc:IJ};function vJ(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=S.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 _F={kernelName:ap,backendName:\"cpu\",kernelFunc:vJ};function SJ(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 AF={kernelName:ns,backendName:\"cpu\",kernelFunc:SJ};function NJ(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=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=Xt({inputs:{x:o},backend:e,attrs:{shape:u}}),d=Be({inputs:{x:f},backend:e,attrs:{perm:l}}),h=Xt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Ro({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var $F={kernelName:si,backendName:\"cpu\",kernelFunc:NJ};function kJ(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=rd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var DF={kernelName:up,backendName:\"cpu\",kernelFunc:kJ};function TJ(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=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],\"int32\",Int32Array.from(a))}var RF={kernelName:cp,backendName:\"cpu\",kernelFunc:TJ};var EJ=kt(ao,(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);S.assertParamsConsistent(i,s);let a=S.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 qr({inputs:{x:u[0]},backend:e});if(u[0].dtype===\"complex64\"){let h=u.map(C=>_o({inputs:{input:C},backend:e})),g=u.map(C=>qi({inputs:{input:C},backend:e})),x=Nu({inputs:h,backend:e,attrs:{axis:s}}),b=Nu({inputs:g,backend:e,attrs:{axis:s}}),w=br({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 Xt({inputs:{x:h},backend:e,attrs:{shape:[-1,g]}})}),c=l.map(h=>({vals:e.data.get(h.dataId).values,shape:h.shape}));a=S.computeOutShape(l.map(h=>h.shape),1);let p=l[0].shape[0]===1,m=Ec(c,a,t[0].dtype,p),f=S.computeOutShape(u.map(h=>h.shape),s),d=e.makeTensorInfo(f,t[0].dtype,m);return l.forEach(h=>e.disposeIntermediateTensorInfo(h)),d}var LF={kernelName:ii,backendName:\"cpu\",kernelFunc:Nu};function uk(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=S.convertConv2DDataFormat(u),m=S.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 Tt=0;Tt=m.inWidth)continue;let he=ht+Yt*_[1],Kt=bt+ce*F,Te=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+Bt*F[2],he=ht+Yt*l.inChannels,Kt=ce;for(let Te=0;TeMath.cos(r)),UF={kernelName:jo,backendName:\"cpu\",kernelFunc:OJ};var PJ=kt(Xo,r=>Math.cosh(r)),HF={kernelName:Xo,backendName:\"cpu\",kernelFunc:PJ};function LJ(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=S.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,Tt=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}=S.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=_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 rO={kernelName:Hd,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}=S.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${Hd}, 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 nO={kernelName:Ud,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}=S.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${Ud}, 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 fl(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=Ao({inputs:{x:o},backend:e,attrs:{dtype:\"int32\"}}):a=qr({inputs:{x:o},backend:e});let u=a.shape.length,l=y.parseAxisParam(s,a.shape),c=S.getAxesPermutation(l,u),p=l,m=a;c!=null&&(m=Be({inputs:{x:a},backend:e,attrs:{perm:c}}),p=S.getInnerMostAxes(p.length,u)),S.assertAxesAreInnerMostDims(\"sum\",p,m.shape.length);let[f,d]=S.computeOutAndReduceShapes(m.shape,p),h=S.upcastType(m.dtype,\"int32\"),g=td(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=fl({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 sO={kernelName:bp,backendName:\"cpu\",kernelFunc:HJ};function qJ(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 iO={kernelName:wp,backendName:\"cpu\",kernelFunc:qJ};var KJ=S.ERF_P,jJ=S.ERF_A1,XJ=S.ERF_A2,YJ=S.ERF_A3,ZJ=S.ERF_A4,JJ=S.ERF_A5,QJ=kt(da,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+KJ*e);return t*(1-((((JJ*n+ZJ)*n+YJ)*n+XJ)*n+jJ)*n*Math.exp(-e*e))}),aO={kernelName:da,backendName:\"cpu\",kernelFunc:QJ};function ad(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),Xt({inputs:{x:o},backend:e,attrs:{shape:a}})}var lO={kernelName:ai,backendName:\"cpu\",kernelFunc:ad};var tQ=Qt((r,t)=>r/t),Mh=oe(Jo,tQ),zh={kernelName:Jo,backendName:\"cpu\",kernelFunc:Mh};function uw(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)),aQ=oe(rs,iQ,null,\"int32\"),mO={kernelName:rs,backendName:\"cpu\",kernelFunc:aQ};function lQ(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=uk({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=Xt({inputs:{x:i},backend:e,attrs:{shape:[i.shape[0],1,1]}});h=Hi({inputs:{a:h,b:x},backend:e}),e.disposeIntermediateTensorInfo(x)}else h=Hi({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=Xt({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 fO={kernelName:wi,backendName:\"cpu\",kernelFunc:lQ};function uQ(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=ck({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;h=Hi({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 dO={kernelName:Ci,backendName:\"cpu\",kernelFunc:uQ};function cQ(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]=S.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=jb(m,f,n.dtype,l,a,c,p,n.shape,s);return e.makeTensorInfo(u,n.dtype,d.values)}var hO={kernelName:ya,backendName:\"cpu\",kernelFunc:cQ};function pQ(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=S.segment_util.collectGatherOpShapeInfo(o,s,u,p),d=Xt({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=Xt({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=Xb(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var gO={kernelName:li,backendName:\"cpu\",kernelFunc:pQ};function mQ(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=Xt({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=uw(a,!0,e),l=Xt({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var xO={kernelName:Ip,backendName:\"cpu\",kernelFunc:mQ};var fQ=kt(wa,r=>Number.isFinite(r)?1:0,\"bool\"),yO={kernelName:wa,backendName:\"cpu\",kernelFunc:fQ};var dQ=kt(Ca,r=>Math.abs(r)===1/0?1:0,\"bool\"),bO={kernelName:Ca,backendName:\"cpu\",kernelFunc:dQ};var hQ=kt(Ia,r=>Number.isNaN(r)?1:0,\"bool\"),wO={kernelName:Ia,backendName:\"cpu\",kernelFunc:hQ};function gQ(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=Yb(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var CO={kernelName:Sp,backendName:\"cpu\",kernelFunc:gQ};var xQ=kt(Na,r=>Math.log1p(r)),IO={kernelName:Na,backendName:\"cpu\",kernelFunc:xQ};var yQ=Qt((r,t)=>r&&t),bQ=oe(ka,yQ,null,\"bool\"),vO={kernelName:ka,backendName:\"cpu\",kernelFunc:bQ};var wQ=kt(Ta,r=>r?0:1,\"bool\"),SO={kernelName:Ta,backendName:\"cpu\",kernelFunc:wQ};var CQ=Qt((r,t)=>r||t),IQ=oe(Ea,CQ,null,\"bool\"),NO={kernelName:Ea,backendName:\"cpu\",kernelFunc:IQ};function vQ(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=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=qr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=id(m,o.shape,o.dtype,f,c,\"max\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var _O={kernelName:us,backendName:\"cpu\",kernelFunc:NQ};function kQ(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=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=lw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"max\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var AO={kernelName:Dl,backendName:\"cpu\",kernelFunc:kQ};function TQ(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=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.bufferSync(s),m=NF(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,Tt=ht===bt?1:0;if(Tt===0)continue;et+=P.get(V,ot,nt,dt,G)*Tt}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var $O={kernelName:Tp,backendName:\"cpu\",kernelFunc:TQ};function EQ(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=S.computePool2DInfo(a.shape,u,l,1,c,p),f=e.data.get(a.dataId).values,d=wt(m.outShape,a.dtype,aw(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 DO={kernelName:kp,backendName:\"cpu\",kernelFunc:EQ};function RO(r,t,e,n,o){let s=y.computeStrides(t),i=id(r,t,e,s,o,\"max\"),a=aw(r,t,e,o,!0,n);return[i.values,a.values]}var FO={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=S.computePool2DInfo(n.shape,o,s,[1,1],i),[p,m]=RO(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 _Q(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=y.parseAxisParam(s,o.shape),l=S.computeOutAndReduceShapes(o.shape,a)[1],c=y.sizeFromShape(l),p=[],m=e.makeTensorInfo([],\"float32\",new Float32Array([c]));p.push(m);let f=Ao({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}});p.push(f);let d=Mh({inputs:{a:f,b:m},backend:e});p.push(d);let h=fl({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var OO={kernelName:cs,backendName:\"cpu\",kernelFunc:_Q};function AQ(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=S.getAxesPermutation(u,o.shape.length),c=o;l!=null&&(c=Be({inputs:{x:o},backend:e,attrs:{perm:l}}),u=S.getInnerMostAxes(u.length,o.shape.length)),S.assertAxesAreInnerMostDims(\"min\",u,c.shape.length);let[p,m]=S.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 LO={kernelName:fs,backendName:\"cpu\",kernelFunc:$Q};var DQ=Qt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),RQ=oe(_a,DQ),MO={kernelName:_a,backendName:\"cpu\",kernelFunc:RQ};var BO=Sl(lh());function fk(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=mk({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=S.expandShapeToKeepDim(l.shape,u),p=Xt({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Ph({inputs:{a:o,b:p},backend:e}),f=zN({inputs:{x:m},backend:e}),d=fl({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=Xt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Mh({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 zO={kernelName:$s,backendName:\"cpu\",kernelFunc:fk};function FQ(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:fk({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=ad({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Nu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var XO={kernelName:pi,backendName:\"cpu\",kernelFunc:dk};function GQ(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 cw={kernelName:gs,backendName:\"cpu\",kernelFunc:GQ};var WQ=Qt((r,t)=>Math.pow(r,t)),UQ=oe(xs,WQ),YO={kernelName:xs,backendName:\"cpu\",kernelFunc:UQ};function HQ(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]=Jb(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 ZO={kernelName:Ap,backendName:\"cpu\",kernelFunc:HQ};function qQ(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]=Qb(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var JO={kernelName:$p,backendName:\"cpu\",kernelFunc:qQ};function KQ(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 QO={kernelName:Rl,backendName:\"cpu\",kernelFunc:KQ};var jQ=kt(Fa,r=>1/r),tP={kernelName:Fa,backendName:\"cpu\",kernelFunc:jQ};function XQ(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 Tt=nt+bt*u[2],_t=bt*C,Bt=Math.min(p-1,i?Math.round(_t):Math.floor(_t));H===Bt&&(rt+=g[Tt+et])}}h[j+et]=rt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var oP={kernelName:Rp,backendName:\"cpu\",kernelFunc:JQ};function QQ(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 qr({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 sP={kernelName:Ss,backendName:\"cpu\",kernelFunc:QQ};var iP={kernelName:Ua,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]=S.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}),aP={kernelName:Ns,backendName:\"cpu\",kernelFunc:t9};function e9(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}=S.calculateShapes(s,o,i),m=!0,f=e.bufferSync(o),d=e.bufferSync(s),h=ml(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var lP={kernelName:Oa,backendName:\"cpu\",kernelFunc:e9};function r9(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?a9*r:i9*(Math.exp(r)-1)),mP={kernelName:Pa,backendName:\"cpu\",kernelFunc:l9};var u9=kt(Ma,r=>r<0?-1:r>0?1:0),fP={kernelName:Ma,backendName:\"cpu\",kernelFunc:u9};var c9=kt(Ts,r=>Math.sin(r)),dP={kernelName:Ts,backendName:\"cpu\",kernelFunc:c9};var p9=kt(La,r=>Math.sinh(r)),hP={kernelName:La,backendName:\"cpu\",kernelFunc:p9};var m9=11920928955078125e-23,gP=Math.log(m9)+2,f9=kt(za,r=>{let t=r>-gP,e=rNumber(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var bP={kernelName:Fl,backendName:\"cpu\",kernelFunc:h9};function g9(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]=ew(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var wP={kernelName:Ba,backendName:\"cpu\",kernelFunc:g9};function x9(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]=sd(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var CP={kernelName:Ol,backendName:\"cpu\",kernelFunc:x9};function y9(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]=sd(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var IP={kernelName:Pl,backendName:\"cpu\",kernelFunc:y9};function b9(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}=S.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=ml(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=ml(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=ml(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=ml(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 vP={kernelName:Pp,backendName:\"cpu\",kernelFunc:b9};function w9(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=S.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=Ro({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var SP={kernelName:gi,backendName:\"cpu\",kernelFunc:w9};var NP={kernelName:Ll,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}),kP={kernelName:uo,backendName:\"cpu\",kernelFunc:C9};function I9(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}=Pe.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=Xt({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 _=Pe.computeOutShape(b,w,C),A=Ro({inputs:{x:o},backend:e,attrs:{begin:b,size:_}});N=Xt({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let _=e.bufferSync(o),A=rw(f,_,C,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var TP={kernelName:Va,backendName:\"cpu\",kernelFunc:I9};function v9(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 EP={kernelName:Ml,backendName:\"cpu\",kernelFunc:v9};function S9(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 _P={kernelName:zl,backendName:\"cpu\",kernelFunc:S9};function N9(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 AP={kernelName:Bl,backendName:\"cpu\",kernelFunc:N9};var k9=kt(Fs,r=>Math.tan(r)),$P={kernelName:Fs,backendName:\"cpu\",kernelFunc:k9};var T9=kt(Os,r=>Math.tanh(r)),DP={kernelName:Os,backendName:\"cpu\",kernelFunc:T9};function E9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,\"tile\");let i=nw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var RP={kernelName:Zn,backendName:\"cpu\",kernelFunc:E9};function _9(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]=ow(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 FP={kernelName:Ga,backendName:\"cpu\",kernelFunc:_9};function A9(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 D9(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 R9(r,t){return r}function F9(r,t){return y.clamp(0,r,t-1)}function Gh(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 zP={kernelName:Vl,backendName:\"cpu\",kernelFunc:z9};var B9=[mF,SR,fF,dF,_R,hF,gF,xF,yF,bF,wF,CF,IF,vF,SF,kF,TF,EF,_F,pF,AF,$F,DF,RF,ER,AR,FF,NR,OF,LF,MF,zF,BF,VF,GF,WF,UF,HF,qF,KF,jF,XF,YF,ZF,JF,QF,tO,eO,rO,nO,sO,sF,iO,$R,aO,DR,lO,RR,uO,cO,pO,FR,mO,fO,dO,hO,gO,OR,PR,kR,xO,PF,yO,bO,wO,iF,LR,MR,CO,zR,IO,vO,SO,NO,kO,TO,EO,BR,_O,AO,$O,DO,FO,OO,PO,VR,LO,MO,VO,GR,WR,GO,WO,UO,UR,HO,jO,XO,cw,YO,aF,qR,ZO,JO,QO,TR,zh,tP,lF,uF,cF,eP,rP,nP,oP,sP,iP,aP,YR,lP,cP,pP,mP,JR,fP,dP,hP,QR,zO,xP,yP,bP,wP,CP,IP,vP,SP,eF,NP,rF,kP,TP,EP,_P,AP,nF,oO,$P,DP,RP,FP,PP,HR,LP,MP,zP,qO];for(let r of B9)Pu(r);var cd={};Gt(cd,{assertNotComplex:()=>Zs,bindCanvasToFramebuffer:()=>X9,bindColorTextureToFramebuffer:()=>qh,bindTextureToProgramUniformSampler:()=>Ak,bindTextureUnit:()=>WP,bindVertexBufferToProgramAttribute:()=>gw,callAndCheck:()=>yt,canBeRepresented:()=>yk,createFragmentShader:()=>wk,createFramebuffer:()=>Tk,createProgram:()=>Ck,createStaticIndexBuffer:()=>Sk,createStaticVertexBuffer:()=>vk,createTexture:()=>Nk,createVertexShader:()=>bk,getBatchDim:()=>hl,getExtensionOrThrow:()=>ld,getFramebufferErrorMessage:()=>UP,getMaxTexturesInShader:()=>Rk,getNumChannels:()=>K9,getProgramUniformLocation:()=>_k,getProgramUniformLocationOrThrow:()=>Ek,getRowsCols:()=>gl,getShapeAs3D:()=>Kh,getTextureShapeFromLogicalShape:()=>$k,getWebGLDisjointQueryTimerVersion:()=>Fk,getWebGLErrorMessage:()=>GP,getWebGLMaxTextureSize:()=>Dk,hasExtension:()=>Vn,isCapableOfRenderingToFloatTexture:()=>Ok,isDownloadFloatTextureEnabled:()=>Pk,isReshapeFree:()=>Tu,isWebGLFenceEnabled:()=>Lk,isWebGLVersionEnabled:()=>yw,linkProgram:()=>Ik,logShaderSourceAndInfoLog:()=>hw,resetMaxTextureSize:()=>Y9,resetMaxTexturesInShader:()=>Z9,unbindColorTextureFromFramebuffer:()=>xw,unbindTextureUnit:()=>j9,validateFramebuffer:()=>ud,validateProgram:()=>Hh,validateTextureSize:()=>kk});var Pc={},pw={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function hk(r,t){Pc[r]=t}function Bn(r,t){if(!(r in Pc)||t!=null){let n=G9(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],Bn(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 V9(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 G9(r,t){if(r!==1&&r!==2)throw new Error(\"Cannot get WebGL rendering context, WebGL is disabled.\");let e=t==null?V9(r):t;return e.addEventListener(\"webglcontextlost\",n=>{n.preventDefault(),delete Pc[r]},!1),M().getBool(\"SOFTWARE_WEBGL_ENABLED\")&&(pw.failIfMajorPerformanceCaveat=!1),r===1?e.getContext(\"webgl\",pw)||e.getContext(\"experimental-webgl\",pw):e.getContext(\"webgl2\",pw)}var ku;(function(r){r[r.DENSE=0]=\"DENSE\",r[r.SHARED_BATCH=1]=\"SHARED_BATCH\"})(ku||(ku={}));var Kr;(function(r){r[r.RENDER=0]=\"RENDER\",r[r.UPLOAD=1]=\"UPLOAD\",r[r.PIXELS=2]=\"PIXELS\",r[r.DOWNLOAD=3]=\"DOWNLOAD\"})(Kr||(Kr={}));var Fr;(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\"})(Fr||(Fr={}));function Lc(r,t){return[t,r]}function BP(r,t){return r*t}function Wh(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function Ki(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function VP(r,t){let[e,n]=Ki(r,t);return e*n*4}function Uh(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return M().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 M().getBool(\"DEBUG\")&&W9(r),e}function W9(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error(\"WebGL Error: \"+GP(r,t))}var U9=596e-10,H9=65504;function yk(r){return!!(M().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")||r===0||U9r.getExtension(t),'Extension \"'+t+'\" not supported on this browser.')}function bk(r,t){let e=dl(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 wk(r,t){let e=dl(r,()=>r.createShader(r.FRAGMENT_SHADER),\"Unable to create fragment WebGLShader.\");if(yt(r,()=>r.shaderSource(e,t)),yt(r,()=>r.compileShader(e)),M().get(\"ENGINE_COMPILE_ONLY\"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw hw(t,r.getShaderInfoLog(e)),new Error(\"Failed to compile fragment shader.\");return e}var q9=/ERROR: [0-9]+:([0-9]+):/g;function hw(r,t){let e=q9.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 Ik(r,t){if(yt(r,()=>r.linkProgram(t)),!M().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 Hh(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 vk(r,t){let e=dl(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 Sk(r,t){let e=dl(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 K9(){return M().getNumber(\"WEBGL_VERSION\")===2?1:4}function Nk(r){return dl(r,()=>r.createTexture(),\"Unable to create WebGLTexture.\")}function kk(r,t){let e=M().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 Tk(r){return dl(r,()=>r.createFramebuffer(),\"Unable to create WebGLFramebuffer.\")}function gw(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 WP(r,t,e){HP(r,e),yt(r,()=>r.activeTexture(r.TEXTURE0+e)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function j9(r,t){HP(r,t),yt(r,()=>r.activeTexture(r.TEXTURE0+t)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function Ek(r,t,e){return dl(r,()=>r.getUniformLocation(t,e),'uniform \"'+e+'\" not present in program.')}function _k(r,t,e){return r.getUniformLocation(t,e)}function Ak(r,t,e,n){yt(r,()=>WP(r,t,n)),yt(r,()=>r.uniform1i(e,n))}function X9(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 qh(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 xw(r,t){yt(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),yt(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function ud(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error(\"Error binding framebuffer: \"+UP(r,t))}function UP(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 dl(r,t,e){let n=yt(r,()=>t());if(n==null)throw new Error(e);return n}function HP(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 hl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function gl(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 Kh(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[hl(r),...gl(r)]),t}function $k(r,t=!1){let e=M().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\"),n=M().getNumber(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\");n===1/0&&M().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=hl(r),u=2,l=2;r.length&&([u,l]=gl(r)),o=a*(u/2)*(l/2),s=y.sizeToSquarishShape(o).map(c=>c*2)}else s=y.sizeToSquarishShape(o);return s}function mw(r){return r%2===0}function Tu(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||mw(e)&&mw(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&mw(r[0])&&mw(t[0])}var fw,dw;function Dk(r){if(fw==null){let t=Bn(r);fw=t.getParameter(t.MAX_TEXTURE_SIZE)}return fw}function Y9(){fw=null}function Z9(){dw=null}function Rk(r){if(dw==null){let t=Bn(r);dw=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,dw)}function Fk(r){if(r===0)return 0;let t,e=Bn(r);return Vn(e,\"EXT_disjoint_timer_query_webgl2\")&&r===2?t=2:Vn(e,\"EXT_disjoint_timer_query\")?t=1:t=0,t}function Vn(r,t){return r.getExtension(t)!=null}function yw(r){try{if(Bn(r)!=null)return!0}catch(t){return console.log(\"Error when getting WebGL context: \",t),!1}return!1}function Ok(r){if(r===0)return!1;let t=Bn(r);if(r===1){if(!Vn(t,\"OES_texture_float\"))return!1}else if(!Vn(t,\"EXT_color_buffer_float\"))return!1;return xk(t)}function Pk(r){if(r===0)return!1;let t=Bn(r);if(r===1){if(!Vn(t,\"OES_texture_float\")||!Vn(t,\"WEBGL_color_buffer_float\"))return!1}else{if(Vn(t,\"EXT_color_buffer_float\"))return xk(t);let n=\"EXT_color_buffer_half_float\";if(Vn(t,n)){let o=t.getExtension(n);return J9(t,o)}return!1}return xk(t)}function xk(r){let t=Uh(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 J9(r,t){let e=Uh(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 Lk(r){return r!==2?!1:Bn(r).fenceSync!=null}function Zs(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 Nt=M();Nt.registerFlag(\"HAS_WEBGL\",()=>Nt.getNumber(\"WEBGL_VERSION\")>0);Nt.registerFlag(\"WEBGL_VERSION\",()=>yw(2)?2:yw(1)?1:0);Nt.registerFlag(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\",()=>!1);Nt.registerFlag(\"WEBGL_BUFFER_SUPPORTED\",()=>Nt.get(\"WEBGL_VERSION\")===2);Nt.registerFlag(\"WEBGL_CPU_FORWARD\",()=>!0);Nt.registerFlag(\"WEBGL_FORCE_F16_TEXTURES\",()=>!1);Nt.registerFlag(\"WEBGL_PACK\",()=>Nt.getBool(\"HAS_WEBGL\"));Nt.registerFlag(\"WEBGL_PACK_NORMALIZATION\",()=>Nt.getBool(\"WEBGL_PACK\"));Nt.registerFlag(\"WEBGL_PACK_CLIP\",()=>Nt.getBool(\"WEBGL_PACK\"));Nt.registerFlag(\"WEBGL_PACK_DEPTHWISECONV\",()=>Nt.getBool(\"WEBGL_PACK\"));Nt.registerFlag(\"WEBGL_PACK_BINARY_OPERATIONS\",()=>Nt.getBool(\"WEBGL_PACK\"));Nt.registerFlag(\"WEBGL_PACK_UNARY_OPERATIONS\",()=>Nt.getBool(\"WEBGL_PACK\"));Nt.registerFlag(\"WEBGL_PACK_ARRAY_OPERATIONS\",()=>Nt.getBool(\"WEBGL_PACK\"));Nt.registerFlag(\"WEBGL_PACK_IMAGE_OPERATIONS\",()=>Nt.getBool(\"WEBGL_PACK\"));Nt.registerFlag(\"WEBGL_PACK_REDUCE\",()=>Nt.getBool(\"WEBGL_PACK\"));Nt.registerFlag(\"WEBGL_LAZILY_UNPACK\",()=>Nt.getBool(\"WEBGL_PACK\"));Nt.registerFlag(\"WEBGL_CONV_IM2COL\",()=>Nt.getBool(\"WEBGL_PACK\"));Nt.registerFlag(\"WEBGL_MAX_TEXTURE_SIZE\",()=>Dk(Nt.getNumber(\"WEBGL_VERSION\")));Nt.registerFlag(\"WEBGL_MAX_TEXTURES_IN_SHADER\",()=>Rk(Nt.getNumber(\"WEBGL_VERSION\")));Nt.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\",()=>{let r=Nt.getNumber(\"WEBGL_VERSION\");return r===0?0:Fk(r)});Nt.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\",()=>Nt.getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0&&!Hl.isMobile());Nt.registerFlag(\"WEBGL_RENDER_FLOAT32_CAPABLE\",()=>Ok(Nt.getNumber(\"WEBGL_VERSION\")));Nt.registerFlag(\"WEBGL_RENDER_FLOAT32_ENABLED\",()=>Nt.getBool(\"WEBGL_FORCE_F16_TEXTURES\")?!1:Nt.getBool(\"WEBGL_RENDER_FLOAT32_CAPABLE\"));Nt.registerFlag(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\",()=>Pk(Nt.getNumber(\"WEBGL_VERSION\")));Nt.registerFlag(\"WEBGL_FENCE_API_ENABLED\",()=>Lk(Nt.getNumber(\"WEBGL_VERSION\")));Nt.registerFlag(\"WEBGL_SIZE_UPLOAD_UNIFORM\",()=>Nt.getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?4:0);Nt.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}.`)});Nt.registerFlag(\"WEBGL_FLUSH_THRESHOLD\",()=>Hl.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}.`)});Nt.registerFlag(\"CPU_HANDOFF_SIZE_THRESHOLD\",()=>128);Nt.registerFlag(\"WEBGL_USE_SHAPES_UNIFORMS\",()=>!1);Nt.registerFlag(\"TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD\",()=>1e5);Nt.registerFlag(\"TOPK_K_CPU_HANDOFF_THRESHOLD\",()=>128);Nt.registerFlag(\"WEBGL_EXP_CONV\",()=>!1);Nt.registerFlag(\"SOFTWARE_WEBGL_ENABLED\",()=>Nt.getBool(\"IS_TEST\"));Nt.registerFlag(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\",()=>1/0);Nt.registerFlag(\"WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE\",()=>!1);Nt.registerFlag(\"WEBGL2_ISNAN_CUSTOM\",()=>!1);function Ve(){let r,t,e,n,o,s,i,a,u,l;return M().getNumber(\"WEBGL_VERSION\")===2?(r=\"#version 300 es\",t=\"in\",e=\"out\",n=\"in\",o=\"texture\",s=\"outputColor\",i=\"out vec4 outputColor;\",a=M().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 Js(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 Q9(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 qP(r,t,e=\"index\"){let n=r.map((s,i)=>i),o=Q9(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 pd(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 md(){return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z;\n }\n`}var bw=`\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:KP}=S;function jP(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}=ww(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=>ttt(f,t,e.packedInputs,e.enableShapeUniforms)).join(`\n`),i=t.texShape,a=Ve(),u=ntt(a),l,c,p=itt(a);return t.isPacked?(l=ett(t.logicalShape,i,e.enableShapeUniforms),c=stt(a)):(l=rtt(t.logicalShape,i,e.enableShapeUniforms),c=ott(a)),e.packedInputs&&(p+=ctt),[p,u,c,o,l,s,e.userCode].join(`\n`)}function dd(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return Itt(r,t);case 1:return Stt(r,t);case 2:return ktt(r,t);case 3:return Ett(r,t);case 4:return Att(r,t);case 5:return $tt(r);case 6:return Dtt(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function XP(r,t){switch(r.shapeInfo.logicalShape.length){case 0:return Ctt(r);case 1:return vtt(r,t);case 2:return Ntt(r,t);case 3:return Ttt(r,t);default:return _tt(r,t)}}function ttt(r,t,e=!1,n){let o=\"\";e?o+=XP(r,n):o+=dd(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=Rtt(r,t):o+=Ftt(r,t)),o}function ett(r,t,e){switch(r.length){case 0:return YP();case 1:return ptt(r,t,e);case 2:return btt(r,t,e);case 3:return ftt(r,t,e);default:return htt(r,t,e)}}function rtt(r,t,e){switch(r.length){case 0:return YP();case 1:return mtt(r,t,e);case 2:return wtt(r,t,e);case 3:return dtt(r,t,e);case 4:return gtt(r,t,e);case 5:return xtt(r,t);case 6:return ytt(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function ntt(r){return`\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return ${r.texture2D}(textureSampler, uv).r;\n }\n `}function ott(r){return`\n void setOutput(float val) {\n ${r.output} = vec4(val, 0, 0, 0);\n }\n `}function stt(r){return`\n void setOutput(vec4 val) {\n ${r.output} = val;\n }\n `}function itt(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 ${att}\n ${ltt}\n ${utt}\n `}var att=`\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`,ltt=`\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`,utt=`\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`,ctt=`\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 YP(){return`\n int getOutputCoords() {\n return 0;\n }\n `}function ptt(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 mtt(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 ftt(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 dtt(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=Js([\"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 htt(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 Ftt(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=KP(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 ww(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 JP(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=jP(o,i,t),u=wk(r.gl,a),l=r.createProgram(u);return M().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},Mk(r,t,l))}function Mk(r,t,e){let n={},o={},s={},i=[],a,u,l,c=null,p=null;p=r.getUniformLocation(e,\"NAN\",!1),M().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 ZP(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 QP(r,t,e,n,o){t.program.enableShapeUniforms||(ZP(t.inShapeInfos,e),ZP([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),M().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}=ww(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 tL(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}=ww(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=S.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+`${M().getNumber(\"WEBGL_VERSION\")}`,s}function we(r){return M().getBool(\"WEBGL_USE_SHAPES_UNIFORMS\")&&r<=4}var Cw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=ku.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=Ve();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?Mc([\"r\",\"c\",\"d\"],t):Js([\"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 Iw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=ku.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=Ve();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?Mc([\"r\",\"c\",\"d\"],t):Js([\"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 vw=class{constructor(t){this.variableNames=[\"A\"],this.outTexUsage=Kr.DOWNLOAD;let e=Ve();this.outputShape=t,this.userCode=`\n ${bw}\n\n void main() {\n float x = getAAtOutCoords();\n ${e.output} = encode_float(x);\n }\n `}};var Sw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Kr.DOWNLOAD;let e=Ve();this.outputShape=t,this.userCode=`\n ${bw}\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 Nw=class{constructor(t,e=!1){this.variableNames=[\"A\"],this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let n=Ve();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let o=\"result\";e&&(o=\"floor(result * 255. + 0.5)\"),this.userCode=`\n ${this.enableShapeUniforms?md():pd(t)}\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n int flatIndex = getFlatIndex(coords);\n int offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n\n int r = flatIndex / texShape[1];\n int c = imod(flatIndex, texShape[1]);\n vec2 uv = (vec2(c, r) + halfCR) / vec2(texShape[1], texShape[0]);\n vec4 values = ${n.texture2D}(A, uv);\n\n float result;\n\n if(offset == 0) {\n result = values[0];\n } else if(offset == 1) {\n result = values[1];\n } else if(offset == 2) {\n result = values[2];\n } else {\n result = values[3];\n }\n\n ${n.output} = vec4(${o}, 0., 0., 0.);\n }\n `}};var kw=class{constructor(t,e=!1){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let n=Ve();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let o=\"\",s=\"result\";e&&(s=\"floor(result * 255. + 0.5)\");for(let i=0;i<=1;i++)for(let a=0;a<=1;a++){let u=i*2+a;o+=`\n localCoords = coords;\n if(localCoords[2] + ${a} < ${this.enableShapeUniforms?\"outShape[2]\":`${t[2]}`}) {\n localCoords[2] += ${a};\n if (localCoords[1] + ${i} < ${this.enableShapeUniforms?\"outShape[1]\":`${t[1]}`}) {\n localCoords[1] += ${i};\n\n flatIndex = getFlatIndex(localCoords);\n offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n\n int r = flatIndex / texShape[1];\n int c = imod(flatIndex, texShape[1]);\n vec2 uv = (vec2(c, r) + halfCR) / vec2(texShape[1], texShape[0]);\n values = ${n.texture2D}(A, uv);\n\n if (offset == 0) {\n result[${u}] = values[0];\n } else if (offset == 1) {\n result[${u}] = values[1];\n } else if (offset == 2) {\n result[${u}] = values[2];\n } else {\n result[${u}] = values[3];\n }\n }\n }\n `}this.userCode=`\n ${this.enableShapeUniforms?md():pd(t)}\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n vec4 result = vec4(0.);\n int flatIndex, r, c, offset;\n ivec3 localCoords;\n vec2 uv;\n vec4 values;\n\n ${o}\n\n ${n.output} = ${s};\n }\n `}};var eT={};Gt(eT,{bindVertexProgramAttributeStreams:()=>Kk,createBufferFromOutputTexture:()=>Yk,createFloat16MatrixTexture:()=>Wk,createFloat16PackedMatrixTexture:()=>qk,createFloat32MatrixTexture:()=>Gk,createIndexBuffer:()=>Vk,createPackedMatrixTexture:()=>Hk,createUnsignedBytesMatrixTexture:()=>Uk,createVertexBuffer:()=>Bk,createVertexShader:()=>zk,downloadByteEncodedFloatMatrixFromOutputTexture:()=>Jk,downloadFloat32MatrixFromBuffer:()=>Zk,downloadMatrixFromPackedOutputTexture:()=>tT,downloadPackedMatrixFromBuffer:()=>Qk,getInternalFormatForFloat16MatrixTexture:()=>Ew,getInternalFormatForFloat16PackedMatrixTexture:()=>$w,getInternalFormatForFloat32MatrixTexture:()=>Tw,getInternalFormatForPackedMatrixTexture:()=>Aw,getInternalFormatForUnsignedBytesMatrixTexture:()=>_w,uploadDenseMatrixToTexture:()=>jk,uploadPixelDataToTexture:()=>Xk});function zk(r){let t=Ve(),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 bk(r,e)}function Bk(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 vk(r,t)}function Vk(r){let t=new Uint16Array([0,1,2,2,1,3]);return Sk(r,t)}function jh(r,t,e,n,o,s){kk(t,e);let i=Nk(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)),M().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 Tw(r){return r.internalFormatFloat}function Gk(r,t,e,n){let[o,s]=Lc(t,e);return jh(r,o,s,Tw(n),n.textureFormatFloat,r.FLOAT)}function Ew(r){return r.internalFormatHalfFloat}function Wk(r,t,e,n){let[o,s]=Lc(t,e);return jh(r,o,s,Ew(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function _w(r){return r.downloadTextureFormat}function Uk(r,t,e,n){let[o,s]=Lc(t,e);return jh(r,o,s,_w(n),r.RGBA,r.UNSIGNED_BYTE)}function Aw(r){return r.internalFormatPackedFloat}function Hk(r,t,e,n){let[o,s]=Ki(t,e);return jh(r,o,s,Aw(n),r.RGBA,r.FLOAT)}function $w(r){return r.internalFormatPackedHalfFloat}function qk(r,t,e,n){let[o,s]=Ki(t,e);return jh(r,o,s,$w(n),r.RGBA,n.textureTypeHalfFloat)}function Kk(r,t,e){return yt(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),gw(r,t,\"clipSpacePos\",e,3,20,0)&&gw(r,t,\"uv\",e,2,20,12)}function jk(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),M().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 Xk(r,t,e){yt(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?M().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)):M().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 Yk(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 Zk(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 Jk(r,t,e,n){let[o,s]=Lc(t,e),i=4,a=new Uint8Array(BP(t*e,i));return yt(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function Qk(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array(VP(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 tT(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=M().getNumber(\"WEBGL_VERSION\");t!=null?(this.gl=t,hk(e,t)):this.gl=Bn(e);let n=\"WEBGL_color_buffer_float\",o=\"EXT_color_buffer_half_float\";if(this.parallelCompilationExtension=this.gl.getExtension(\"KHR_parallel_shader_compile\"),M().getNumber(\"WEBGL_VERSION\")===1){let s=\"OES_texture_float\",i=\"OES_texture_half_float\";if(this.textureFloatExtension=ld(this.gl,s),Vn(this.gl,i))this.textureHalfFloatExtension=ld(this.gl,i);else if(M().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),Vn(this.gl,o))this.colorBufferHalfFloatExtension=ld(this.gl,o);else if(M().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\",Vn(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(Vn(this.gl,o))this.colorBufferHalfFloatExtension=this.gl.getExtension(o);else throw new Error(\"GL context does not support color renderable floats\");this.vertexBuffer=Bk(this.gl),this.indexBuffer=Vk(this.gl),this.framebuffer=Tk(this.gl),this.textureConfig=Uh(this.gl,this.textureHalfFloatExtension)}get debug(){return M().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(),Gk(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),Wk(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),Uk(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),Xk(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),jk(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),qk(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),Hk(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(xw(this.gl,this.framebuffer),this.outputTexture=null),yt(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>Jk(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return Qk(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return Zk(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=Yk(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(M().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 M().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,M().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>tT(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=zk(e));let n=Ck(e);return yt(e,()=>e.attachShader(n,this.vertexShader)),yt(e,()=>e.attachShader(n,t)),Ik(e,n),this.debug&&Hh(e,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=Kk(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&&Hh(this.gl,this.program),yt(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?Ek(this.gl,t,e):_k(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(),Ak(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=Ki(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&&Hh(this.gl,this.program),ud(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=ld(this.gl,M().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(M().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(M().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,M().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))),this.getQueryTime(t,M().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=Ltt(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 M().platform&&(n=M().platform.setTimeoutCustom.bind(M().platform)),y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(t){this.throwIfDisposed(),qh(this.gl,t,this.framebuffer),this.debug&&ud(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(qh(this.gl,this.outputTexture,this.framebuffer),this.debug&&ud(this.gl)):xw(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;qh(o,t,this.framebuffer),this.debug&&ud(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 Ltt(r){let t=0;for(;t`${r}.${e}`)}function Qe(r,t){return t===1?[r]:rT(r,t)}function WL(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 yd=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 ${Mtt(e,this.enableShapeUniforms)}\n ${this.enableShapeUniforms?md():pd(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 Mtt(r,t){return`\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n ${t?qP([\"r\",\"c\",\"d\"],\"inputShape\"):Js([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n `}var Pw=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=HL(e,n),s=qL(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=UL(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===Fr.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):o===Fr.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):o===Fr.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):o===Fr.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):o===Fr.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=HL(n,o),i=qL(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=UL(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=M().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 ztt(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 UL(r,t,e,n,o){let s=Btt(t,n),i;if(o){let[u,l]=Ki(r[0],r[1]);i=u*l}else{let[u,l]=Lc(r[0],r[1]);i=u*l}let a=ztt(e,s);return i*a}function Btt(r,t){switch(r){case Fr.PACKED_2X2_FLOAT32:return Aw(t);case Fr.PACKED_2X2_FLOAT16:return $w(t);case Fr.UNPACKED_FLOAT32:return Tw(t);case Fr.UNPACKED_FLOAT16:return Ew(t);case Fr.PACKED_4X1_UNSIGNED_BYTE:return _w(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function Vtt(r){return M().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?r?Fr.PACKED_2X2_FLOAT32:Fr.UNPACKED_FLOAT32:r?Fr.PACKED_2X2_FLOAT16:Fr.UNPACKED_FLOAT16}function HL(r,t){if(r===Kr.UPLOAD)return Fr.PACKED_2X2_FLOAT32;if(r===Kr.RENDER||r==null)return Vtt(t);if(r===Kr.DOWNLOAD||r===Kr.PIXELS)return Fr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function qL(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 `}},pr=\"if (isnan(x)) return x;\",KL=\"return x;\",nT=\"return abs(x);\";var jL=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",XL=pr+`\n return (x < 0.0) ? 0.0 : x;\n`,YL=pr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,Gc=\"return x;\",ZL=\"return 1.0 / (1.0 + exp(-1.0 * x));\";var QL=\"return x;\",tM=`\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`,eM=`\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`,rM=`\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`,nM=\"return 1.0 / (1.0 + exp(-1.0 * x));\",no=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 Lw=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=WL(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 Wtt=Wr.whereImpl,Utt=1e-7,Htt=1e-4,Mw={};function qtt(r){return r in Mw||(Mw[r]={}),Mw[r]}var Ktt=M().getNumber(\"CPU_HANDOFF_SIZE_THRESHOLD\"),jtt=600;function Xtt(){return M().global.screen==null?1024:M().global.screen.height*M().global.screen.width*window.devicePixelRatio*jtt/1024/1024}var Eu=class extends Mo{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,!M().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=Bn(M().getNumber(\"WEBGL_VERSION\"),t);e=new Bc(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Bn(M().getNumber(\"WEBGL_VERSION\"));e=new Bc(n),this.binaryCache=qtt(M().getNumber(\"WEBGL_VERSION\")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new Pw(this.gpgpu),this.numMBBeforeWarning=Xtt(),this.texData=new ta(this,ho())}nextDataId(){return Eu.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}write(t,e,n){if((M().getBool(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\")||M().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:Kr.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(M().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:Kr.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 no(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=S.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 no(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(M().getBool(\"DEBUG\")&&!M().getBool(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\")&&M().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\"&&M().get(\"WEBGL_BUFFER_SUPPORTED\")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...Wh(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=S.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)&&ho().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 no(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=ho().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(M().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 M().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return M().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(M().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=Ktt){return M().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 ho().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new Lw(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new Ow(t.shape),n=!0;return this.runWebGLProgram(e,[t],t.dtype,null,n)}packedReshape(t,e){let n=[hl(t.shape),...gl(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[hl(e),...gl(e)],i=new yd(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=Kh(s),u;o?u=new Iw(a):u=new Cw(a);let l=!0,c=[e!=null?e:Wh(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:Wh(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)<=M().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&&!Tu(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=tL(t,c,p),f=this.getAndSaveBinary(m,()=>JP(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),M().get(\"ENGINE_COMPILE_ONLY\")||QP(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=M().get(\"WEBGL_FLUSH_THRESHOLD\");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!M().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||(M().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(!M().get(\"WEBGL_RENDER_FLOAT32_ENABLED\")){let t=M().getBool(\"DEBUG\");M().set(\"DEBUG\",!1);let e=this.abs(mt(1e-8)).dataSync()[0];if(M().set(\"DEBUG\",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?Utt:Htt}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=$k(n,u),e.texShape=p),s!=null){let m=Kh(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=Ki(p[0],p[1])),u?f=new kw(m,g):f=new Nw(m,g);let x=g?[h,d]:p,b=this.makeTensorInfo(x,o),w=this.texData.get(b.dataId);g?w.usage=Kr.PIXELS:w.usage=Kr.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,M().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=Ytt(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 ph(),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?(hw(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}=Mk(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}}};Eu.nextDataId=0;function Ytt(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 Eu,2);var oTe={forceHalfFloat:sM};var bd=`\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n`;var oo=class{constructor(t,e,n){this.variableNames=[\"A\",\"B\"],this.outputShape=S.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 ji=`\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 Fo=class{constructor(t,e,n,o=!1){this.variableNames=[\"A\",\"B\"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=S.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 iM={kernelName:lo,backendName:\"webgl\",kernelFunc:tr};function Tn(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 aM={kernelName:pp,backendName:\"webgl\",kernelFunc:Tn};var oT=\"return (a < 0.) ? b * a : a;\",sT=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function Ztt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],\"float32\",y.createScalarValue(s,\"float32\")),a=M().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Fo(sT,o.shape,i.shape):new oo(oT,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],\"float32\");return e.disposeIntermediateTensorInfo(i),u}var lM={kernelName:ss,backendName:\"webgl\",kernelFunc:Ztt};var iT=\"return (a < 0.) ? b * a : a;\",aT=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function Jtt(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=M().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Fo(aT,n.shape,o.shape):new oo(iT,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],\"float32\")}var uM={kernelName:ys,backendName:\"webgl\",kernelFunc:Jtt};var Oo=\"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=M().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")&&t!=null,c;return l?c=new no(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 oo(r,u.shape,l.shape);return c.runWebGLProgram($,[_,A],or(C.dtype,N.dtype))}),b=Tn({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||or(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\"?S.fromUint8ToStringArray(d):d,x=u.dtype===\"string\"?S.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=M().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")&&t!=null,f;return m?f=new Fo(t,u.shape,l.shape,e):f=new oo(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function xl(r,t=!1){if(r===\"linear\")return t?QL:KL;if(r===\"relu\")return t?eM:XL;if(r===\"elu\")return t?tM:jL;if(r===\"relu6\")return t?rM:YL;if(r===\"prelu\")return t?aT:iT;if(r===\"leakyrelu\")return t?sT:oT;if(r===\"sigmoid\")return t?nM:ZL;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var wd=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&&!Tu(o.shape,u)&&!(c.texture!==null&&Tu(c.shape,u))?mM(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var fM={kernelName:mi,backendName:\"webgl\",kernelFunc:st};var Zh=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 zw=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 tet(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=S.computeOptimalWindowSize(e);t.push({inSize:e,windowSize:n,outSize:Math.ceil(e/n)})}return t}function Gn(r,t,e,n){let o=tet(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=rT(\"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?xl(u,!0):null,j=G||W||q||H!=null,Y;if((f===1||d===1)&&V>uT&&j===!1){let et=A,rt=$;e&&(et=Fe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(rt=Fe({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=Yh({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=or(r.dtype,t.dtype),rt=new wd(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 ret(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 xM={kernelName:bi,backendName:\"webgl\",kernelFunc:ret};var yM=\"return abs(x);\";function net(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=Rw(s.values);return e.makeTensorInfo(n.shape,n.dtype,i)}let o;return M().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new no(n.shape,yM):o=new tn(n.shape,yM),e.runWebGLProgram(o,[n],n.dtype)}var bM={kernelName:oi,backendName:\"webgl\",kernelFunc:net};var oet=pr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n`,set=Ct({opSnippet:oet}),wM={kernelName:ra,backendName:\"webgl\",kernelFunc:set};var iet=pr+`\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));`,aet=Ct({opSnippet:iet}),CM={kernelName:na,backendName:\"webgl\",kernelFunc:aet};var IM=\"return a + b;\",uet=le({opSnippet:IM,packedOpSnippet:IM,supportsComplex:!0,cpuKernelImpl:eL}),vM={kernelName:Yn,backendName:\"webgl\",kernelFunc:uet};var Gw=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 Ww=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 Uw(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return tr({inputs:{x:n[0]},backend:e});if(n.length>M().get(\"WEBGL_MAX_TEXTURES_IN_SHADER\")){let u=Math.floor(n.length/2),l=Uw({inputs:n.slice(0,u),backend:e}),c=Uw({inputs:n.slice(u),backend:e});return Uw({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>or(u,l)),s=n.map(u=>u.shape),a=M().getBool(\"WEBGL_PACK\")?new Ww(n[0].shape,s):new Gw(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var SM={kernelName:Vo,backendName:\"webgl\",kernelFunc:Uw};function cet(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=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Fe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims(\"all\",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=st({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Gn(h,h.dtype,\"all\",e),x;if(i){let b=S.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 NM={kernelName:oa,backendName:\"webgl\",kernelFunc:cet};function pet(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=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Fe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims(\"any\",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=st({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Gn(h,h.dtype,\"any\",e),x;if(i){let b=S.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 kM={kernelName:sa,backendName:\"webgl\",kernelFunc:pet};var Hw=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 qw=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 TM(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=S.computeOptimalWindowSize(s),a={windowSize:i,inSize:s,batchSize:o,outSize:Math.ceil(s/i)},u=new Hw(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=TM(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function EM(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=S.computeOptimalWindowSize(s),a=new qw(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=EM(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function Kw(r,t,e,n){let o=[e];if(S.assertAxesAreInnerMostDims(\"arg\"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!M().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]=S.computeOutAndReduceShapes(u.shape,o),p=y.sizeFromShape(c),m=st({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=TM(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 EM(r,t,n)}function met(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Fe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims(\"argMax\",[i[0]],u.shape.length);let c=Kw(e,u,i[0],\"max\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var _M={kernelName:Go,backendName:\"webgl\",kernelFunc:met};function fet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Fe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims(\"argMin\",[i[0]],u.shape.length);let c=Kw(e,u,i[0],\"min\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var AM={kernelName:Nl,backendName:\"webgl\",kernelFunc:fet};var det=pr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n`,het=Ct({opSnippet:det}),$M={kernelName:ia,backendName:\"webgl\",kernelFunc:het};var get=pr+\"return log(x + sqrt(x * x + 1.0));\",xet=Ct({opSnippet:get}),DM={kernelName:aa,backendName:\"webgl\",kernelFunc:xet};var yet=pr+`\n return atan(x);\n`,bet=Ct({opSnippet:yet}),RM={kernelName:la,backendName:\"webgl\",kernelFunc:bet};var wet=bd+`\n return atan(a, b);\n`,Cet=`\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 `+ji+`\n return result;\n`,Iet=le({opSnippet:wet,packedOpSnippet:Cet}),FM={kernelName:ca,backendName:\"webgl\",kernelFunc:Iet};var vet=pr+`\n if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Net=Ct({opSnippet:vet}),OM={kernelName:ua,backendName:\"webgl\",kernelFunc:Net};var Qs=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 `}},Au=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 ket(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;Zs(o,\"avgPool\");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.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 Qs(c,\"avg\",!1);return e.runWebGLProgram(p,[o],\"float32\")}var PM={kernelName:Wo,backendName:\"webgl\",kernelFunc:ket};function Tet(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=S.computePool3DInfo(o.shape,s,i,c,a,u,l),m=new Au(p,\"avg\",!1);return e.runWebGLProgram(m,[o],\"float32\")}var LM={kernelName:kl,backendName:\"webgl\",kernelFunc:Tet};var jw=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 `}},Xw=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 Eet(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=S.computePool3DInfo(i.shape,a,u,p,l,c),f=new Xw(m);return e.runWebGLProgram(f,[o],i.dtype)}var MM={kernelName:lp,backendName:\"webgl\",kernelFunc:Eet};function _et(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;Zs([o,s],\"avgPoolGrad\");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=new jw(c);return e.runWebGLProgram(p,[o],i.dtype)}var zM={kernelName:ap,backendName:\"webgl\",kernelFunc:_et};function Aet(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 BM={kernelName:Uo,backendName:\"webgl\",kernelFunc:Aet};var Yw=class{constructor(t,e,n,o,s,i){this.outputShape=[],this.variableNames=[\"x\",\"mean\",\"variance\"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a=\"0.0\";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push(\"offset\"),a=\"getOffsetAtOutCoords()\");let u=\"1.0\";s!=null&&(S.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 Zw=class{constructor(t,e,n,o,s,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=[\"x\",\"mean\",\"variance\"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a=\"vec4(0.0)\";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push(\"offset\"),a=\"getOffsetAtOutCoords()\");let u=\"vec4(1.0)\";s!=null&&(S.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 $et=({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=M().getBool(\"WEBGL_PACK_NORMALIZATION\")?new Zw(n.shape,o.shape,s.shape,c,p,u):new Yw(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},VM={kernelName:ns,backendName:\"webgl\",kernelFunc:$et};var Jw=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=Det(this.rank),o,s=t.map((i,a)=>`sourceLoc.${cT[a]} = start[${a}] + coords.${cT[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 `}},cT=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"];function Det(r){if(r===1)return\"sourceLoc\";if(r<=6)return cT.slice(0,r).map(t=>\"sourceLoc.\"+t).join(\",\");throw Error(`Slicing for rank ${r} is not yet supported`)}var Qw=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 Ret(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=Pe.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 ti(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=Pe.parseSliceParams(o,s,i);if(Pe.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=$L(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=Pe.isSliceContinous(o.shape,a,u);if(l||!c){let p=M().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new Qw(u):new Jw(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),Ret(o,a,u,e)}var GM={kernelName:di,backendName:\"webgl\",kernelFunc:ti};var Fet=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=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=[],d=st({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Fe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=st({inputs:{x:h},backend:e,attrs:{shape:c}}),x=ti({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},WM={kernelName:si,backendName:\"webgl\",kernelFunc:Fet};function Oet(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=Dw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var UM={kernelName:up,backendName:\"webgl\",kernelFunc:Oet};function Pet(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.readSync(n.dataId),i=e.readSync(o.dataId),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],\"int32\",Int32Array.from(a))}var HM={kernelName:cp,backendName:\"webgl\",kernelFunc:Pet};var Let=\"return float(a != b);\",pT=le({opSnippet:Let,cpuKernelImpl:vL,dtype:\"bool\"}),qM={kernelName:Aa,backendName:\"webgl\",kernelFunc:pT};function yl(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 KM={kernelName:Dp,backendName:\"webgl\",kernelFunc:yl};var Met=\"return float(int(x));\";function jM(r,t){let e=new tn(r.shape,Met),n=t.runWebGLProgram(e,[r],\"int32\");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function mT(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=mT({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),u=Tn({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype===\"complex64\"){let i=yl({inputs:{input:o},backend:e}),a=mT({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]=nL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s===\"int32\")return jM(o,e);if(s===\"bool\"){let i=e.makeTensorInfo([],\"bool\",y.getTypedArrayFromDType(\"bool\",1)),u=pT({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 XM={kernelName:io,backendName:\"webgl\",kernelFunc:mT};var YM=\"return ceil(x);\",zet=Ct({opSnippet:YM,packedOpSnippet:YM,cpuKernelImpl:oL}),ZM={kernelName:Ho,backendName:\"webgl\",kernelFunc:zet};var tC=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 eC=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 Bet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;M().getBool(\"WEBGL_PACK_CLIP\")?a=new eC(o.shape):a=new tC(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var JM={kernelName:ao,backendName:\"webgl\",kernelFunc:Bet};var rC=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 QM(r,t){return{dataId:t.dataId,dtype:t.dtype,shape:r.shape}}function Vet(r){let{inputs:t,backend:e}=r,{x:n}=t,o=e.texData.get(n.dataId),s=new rC(n.shape),i=[QM(n,o.complexTensorInfos.real),QM(n,o.complexTensorInfos.imag)];return e.runWebGLProgram(s,i,i[0].dtype)}var tz={kernelName:Tl,backendName:\"webgl\",kernelFunc:Vet};var nC=class{constructor(t){this.outputShape=[],this.outputShape=S.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}(${oC(a,l,g)}),\n vec2(${oC(c,l,g)}));\n }`}let f=u.length,d=u[u.length-1];m+=`\n return getChannel(\n getT${f}(${oC(a,l,d)}),\n vec2(${oC(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 oC(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 ez={kernelName:vp,backendName:\"webgl\",kernelFunc:Hc};function Cd(r,t,e){let n=r[0].dtype;if(n===\"complex64\"){let p=r.map(g=>yl({inputs:{input:g},backend:e})),m=r.map(g=>Hc({inputs:{input:g},backend:e})),f=Cd(p,t,e),d=Cd(m,t,e),h=Tn({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=S.computeOutShape(p.map(b=>b.shape),1),d=p[0].shape[0]===1,h=sL(m,f,n,d),g=S.computeOutShape(r.map(b=>b.shape),t),x=e.makeTensorInfo(g,n,h);return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}let s=M().getNumber(\"WEBGL_MAX_TEXTURES_IN_SHADER\");if(r.length>s){let p=[];for(let f=0;f1){let p=new sC(r.map(m=>m.shape),t);return e.runWebGLProgram(p,r,n)}let{tensors2D:i,outShape:a}=Get(r,t,e),u=new nC(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 Get(r,t,e){let n=S.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 fT(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);S.assertParamsConsistent(i,s);let a=S.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}):Cd(u,s,e)}var rz={kernelName:ii,backendName:\"webgl\",kernelFunc:fT};var Id=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 `}},iC=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 vd=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 lC(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 uC({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=lC(s.shape,f);C!=null&&(s=st({inputs:{x:s},backend:n,attrs:{shape:C}}),x.push(s))}if(o!=null){let C=lC(o.shape,f);C!=null&&(o=st({inputs:{x:o},backend:n,attrs:{shape:C}}),x.push(o))}if(!((p===1||m===1)&&c>uT)&&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(Tu(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 cC({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=lC(s.shape,d);Z!=null&&(s=st({inputs:{x:s},backend:n,attrs:{shape:Z}}),C.push(s))}if(o!=null){let Z=lC(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 aC(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?xl(a,!0):null,q=new wd(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 Wet(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=S.convertConv2DDataFormat(u),m=S.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=uC({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p===\"channelsLast\"&&M().getBool(\"WEBGL_EXP_CONV\")){let h=new vd(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(M().getBool(\"WEBGL_CONV_IM2COL\"))f=cC({x:o,filter:s,convInfo:m,backend:e});else{let h=new Id(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 nz={kernelName:qo,backendName:\"webgl\",kernelFunc:Wet};var pC=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 `}},mC=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 `}},fC=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 `}},dC=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 Uet(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=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,c,i,1,a,l,!1,p),f=new pC(m);return e.runWebGLProgram(f,[o,s],\"float32\")}var oz={kernelName:mp,backendName:\"webgl\",kernelFunc:Uet};function Het(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=S.convertConv2DDataFormat(l),m=S.computeConv2DInfo(i,s.shape,a,1,u,c,!1,p),f=new mC(m);return e.runWebGLProgram(f,[o,s],\"float32\")}var sz={kernelName:Ko,backendName:\"webgl\",kernelFunc:Het};function qet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeConv3DInfo(o.shape,s.shape,i,u,a),c=new iC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var iz={kernelName:El,backendName:\"webgl\",kernelFunc:qet};function Ket(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,filterShape:u}=n,l=S.computeConv3DInfo(o.shape,u,i,1,a),c=new fC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var az={kernelName:fp,backendName:\"webgl\",kernelFunc:Ket};function jet(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{pad:i,strides:a,inputShape:u}=n,l=S.computeConv3DInfo(u,s.shape,a,1,i),c=new dC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var lz={kernelName:dp,backendName:\"webgl\",kernelFunc:jet};var Xet=Oo+`\n return cos(x);\n`,Yet=Ct({opSnippet:Xet}),uz={kernelName:jo,backendName:\"webgl\",kernelFunc:Yet};var Zet=`\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n`,Jet=Ct({opSnippet:Zet}),cz={kernelName:Xo,backendName:\"webgl\",kernelFunc:Jet};var hC=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 Qet=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 hC(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],\"float32\")},pz={kernelName:ma,backendName:\"webgl\",kernelFunc:Qet};var qc;(function(r){r.Prod=\"*\",r.Sum=\"+\"})(qc||(qc={}));var Jh=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(${mz(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 = ${fz(s,\"coords\",this.op)};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${l}) {\n int idx = ${c};\n ${fz(s,\"coords\",this.op)} = idx;\n val ${this.op}= getX(${mz(s,\"coords\",this.op)});\n }\n setOutput(val);\n }\n `}};function mz(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 fz(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 gC(r,t,e,n,o,s){let i=t.shape.length,a=S.getAxesPermutation([n],i),u=t;a!=null&&(u=Fe({inputs:{x:t},backend:e,attrs:{perm:a}}));let l=S.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 Jh(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 Jh(r,u.shape,o,s),f=p;p=e.runWebGLProgram(m,[p],p.dtype),e.disposeIntermediateTensorInfo(f)}if(a!=null){let m=S.getUndoAxesPermutation(a),f=Fe({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function trt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return gC(qc.Prod,o,e,s,i,a)}var dz={kernelName:pa,backendName:\"webgl\",kernelFunc:trt};function ert(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return gC(qc.Sum,o,e,s,i,a)}var hz={kernelName:Yo,backendName:\"webgl\",kernelFunc:ert};function rrt(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=Dw(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=rL(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 gz={kernelName:hp,backendName:\"webgl\",kernelFunc:rrt};var xC=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 nrt(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 xC(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var xz={kernelName:fa,backendName:\"webgl\",kernelFunc:nrt};var Sd=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 Nd=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=S.computeConv2DInfo(o.shape,s.shape,i,c,a,l,!0),m;M().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new Nd(p):m=new Sd(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 yz={kernelName:Zo,backendName:\"webgl\",kernelFunc:ort};var yC=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 `}},bC=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=S.computeConv2DInfo(o.shape,c,i,a,u,l,!0),m=new yC(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var bz={kernelName:gp,backendName:\"webgl\",kernelFunc:srt};function irt(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=S.computeConv2DInfo(c,s.shape,i,a,u,l,!0),m=new bC(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var wz={kernelName:xp,backendName:\"webgl\",kernelFunc:irt};var wC=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 art(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 wC(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 Cz={kernelName:yp,backendName:\"webgl\",kernelFunc:art};var CC=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 lrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeDilation2DInfo(o.shape,s.shape,i,a,\"NHWC\",u),c,p=new CC(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 Iz={kernelName:_l,backendName:\"webgl\",kernelFunc:lrt};function urt(r){let{inputs:t,backend:e,attrs:n}=r,{equation:o}=n,s=t,{allDims:i,summedDims:a,idDims:u}=S.decodeEinsumEquation(o,s.length);S.checkEinsumDimSizes(i.length,u,s);let{path:l,steps:c}=S.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 vz={kernelName:bp,backendName:\"webgl\",kernelFunc:urt};var crt=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",prt=`\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`,mrt=Ct({opSnippet:crt,packedOpSnippet:prt}),Sz={kernelName:Qo,backendName:\"webgl\",kernelFunc:mrt};var frt=\"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`,hrt=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=M().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Fo(drt,n.shape,o.shape):new oo(frt,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},Nz={kernelName:wp,backendName:\"webgl\",kernelFunc:hrt};var grt=`\n return vec4(equal(a, b));\n`,xrt=\"return float(a == b);\",yrt=le({opSnippet:xrt,packedOpSnippet:grt,dtype:\"bool\",cpuKernelImpl:iL}),kz={kernelName:ha,backendName:\"webgl\",kernelFunc:yrt};var brt=`\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 = ${S.ERF_P};\n float a1 = ${S.ERF_A1};\n float a2 = ${S.ERF_A2};\n float a3 = ${S.ERF_A3};\n float a4 = ${S.ERF_A4};\n float a5 = ${S.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`,wrt=Ct({opSnippet:brt}),Tz={kernelName:da,backendName:\"webgl\",kernelFunc:wrt};var Crt=Oo+`\n return exp(x);\n`,Irt=`\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`,dT=Ct({opSnippet:Crt,packedOpSnippet:Irt,cpuKernelImpl:aL,dtype:\"float32\"}),Ez={kernelName:ts,backendName:\"webgl\",kernelFunc:dT};function IC(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 _z={kernelName:ai,backendName:\"webgl\",kernelFunc:IC};var Az=\"return exp(x) - 1.0;\",vrt=Ct({opSnippet:Az,packedOpSnippet:Az,cpuKernelImpl:lL}),$z={kernelName:ga,backendName:\"webgl\",kernelFunc:vrt};var Qh=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 vC(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 Qh(\"real\",u,t),c=new Qh(\"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=Tn({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 Srt(r){let{inputs:t,backend:e}=r,{input:n}=t;return vC(n,!1,e)}var Dz={kernelName:Cp,backendName:\"webgl\",kernelFunc:Srt};var SC=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 bl(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 SC(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var Rz={kernelName:Al,backendName:\"webgl\",kernelFunc:bl};var NC=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 Fz={kernelName:xa,backendName:\"webgl\",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new NC(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var Oz=\"return floor(x);\",Nrt=Ct({opSnippet:Oz,packedOpSnippet:Oz,cpuKernelImpl:uL}),Pz={kernelName:es,backendName:\"webgl\",kernelFunc:Nrt};var krt=`\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`,Trt=`\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`,Ert=le({opSnippet:krt,packedOpSnippet:Trt,dtype:\"int32\"}),Lz={kernelName:rs,backendName:\"webgl\",kernelFunc:Ert};var kC=class{constructor(t){this.variableNames=[\"A\"];let e=Ve(),[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 TC=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0;let e=Ve(),[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 Mz={kernelName:qd,backendName:\"webgl\",kernelFunc:_rt},kd,hT=M().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");function _rt(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=M().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");(kd==null||h!==hT)&&(hT=h,kd=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:hT})),kd.canvas.width=u,kd.canvas.height=l,kd.drawImage(o,0,0,u,l),o=kd.canvas}let m=e.makeTensorInfo(c,\"int32\");e.texData.get(m.dataId).usage=Kr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=M().getBool(\"WEBGL_PACK\")?new TC(p):new kC(p),d=e.runWebGLProgram(f,[m],\"int32\");return e.disposeData(m.dataId),d}function Art(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=S.convertConv2DDataFormat(c),g=S.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=uC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h===\"channelsLast\"&&M().getBool(\"WEBGL_EXP_CONV\")){let $=f?xl(f,!0):null,F=new vd(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(M().getBool(\"WEBGL_CONV_IM2COL\"))x=cC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let $=f?xl(f,!1):null,F=new Id(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 zz={kernelName:wi,backendName:\"webgl\",kernelFunc:Art};function $rt(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(S.eitherStridesOrDilationsAreOne(u,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${u} and dilations '${h}'`);let g=S.computeConv2DInfo(o.shape,s.shape,u,h,l,p,!0),x=M().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?xl(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 Nd(g,C,b,N,_):A=new Sd(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 Bz={kernelName:Ci,backendName:\"webgl\",kernelFunc:$rt};var EC=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 Drt(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]=S.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=cL(x,b,n.dtype,l,i,c,p,n.shape,a);return e.makeTensorInfo(u,n.dtype,w.values)}let d=new EC(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 Vz={kernelName:ya,backendName:\"webgl\",kernelFunc:Drt};var _C=class{constructor(t,e){this.variableNames=[\"A\",\"indices\"],this.outputShape=e,this.rank=e.length;let n=zt(this.rank),o=Rrt(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 Rrt(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=S.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=pL(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,C.dtype,C.values)}let h=new _C(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 Gz={kernelName:li,backendName:\"webgl\",kernelFunc:gT};var Frt=\"return float(a > b);\",Ort=`\n return vec4(greaterThan(a, b));\n`,Prt=le({opSnippet:Frt,packedOpSnippet:Ort,cpuKernelImpl:mL,dtype:\"bool\"}),Wz={kernelName:ba,backendName:\"webgl\",kernelFunc:Prt};var Lrt=\"return float(a >= b);\",Mrt=`\n return vec4(greaterThanEqual(a, b));\n`,zrt=le({opSnippet:Lrt,packedOpSnippet:Mrt,dtype:\"bool\",cpuKernelImpl:fL}),Uz={kernelName:os,backendName:\"webgl\",kernelFunc:zrt};function Brt(r){let{inputs:t,backend:e}=r,{input:n}=t;return vC(n,!0,e)}var Hz={kernelName:Ip,backendName:\"webgl\",kernelFunc:Brt};var Vrt=\"return float(!isnan(x) && !isinf(x));\",Grt=Ct({opSnippet:Vrt,dtype:\"bool\"}),qz={kernelName:wa,backendName:\"webgl\",kernelFunc:Grt};var Wrt=\"return float(isinf(x));\",Urt=Ct({opSnippet:Wrt,dtype:\"bool\"}),Kz={kernelName:Ca,backendName:\"webgl\",kernelFunc:Urt};var Hrt=\"return float(isnan(x));\",qrt=Ct({opSnippet:Hrt,dtype:\"bool\"}),jz={kernelName:Ia,backendName:\"webgl\",kernelFunc:qrt};var Krt=\"return float(a < b);\",jrt=`\n return vec4(lessThan(a, b));\n`,Xrt=le({opSnippet:Krt,packedOpSnippet:jrt,cpuKernelImpl:dL,dtype:\"bool\"}),Xz={kernelName:va,backendName:\"webgl\",kernelFunc:Xrt};var Yrt=\"return float(a <= b);\",Zrt=`\n return vec4(lessThanEqual(a, b));\n`,Jrt=le({opSnippet:Yrt,packedOpSnippet:Zrt,cpuKernelImpl:hL,dtype:\"bool\"}),Yz={kernelName:Sa,backendName:\"webgl\",kernelFunc:Jrt};function Qrt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=gL(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var Zz={kernelName:Sp,backendName:\"webgl\",kernelFunc:Qrt};var tnt=Oo+`\n return x < 0.0 ? 0./0. : log(x);\n`,ent=`\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`,rnt=Ct({opSnippet:tnt,packedOpSnippet:ent,cpuKernelImpl:xL}),Jz={kernelName:is,backendName:\"webgl\",kernelFunc:rnt};var nnt=Oo+`\n return log(1.0 + x);\n`,ont=Ct({opSnippet:nnt}),Qz={kernelName:Na,backendName:\"webgl\",kernelFunc:ont};var snt=\"return float(a >= 1.0 && b >= 1.0);\",int=`\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n`,ant=le({opSnippet:snt,packedOpSnippet:int,dtype:\"bool\"}),t3={kernelName:ka,backendName:\"webgl\",kernelFunc:ant};var lnt=\"return float(!(x >= 1.0));\",unt=Ct({opSnippet:lnt}),e3={kernelName:Ta,backendName:\"webgl\",kernelFunc:unt};var cnt=\"return float(a >= 1.0 || b >= 1.0);\",pnt=`\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n`,mnt=le({opSnippet:cnt,packedOpSnippet:pnt,dtype:\"bool\"}),r3={kernelName:Ea,backendName:\"webgl\",kernelFunc:mnt};var AC=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 $C=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 fnt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=M().getBool(\"WEBGL_PACK_NORMALIZATION\")?new $C(o.shape,s,i,a,u):new AC(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},n3={kernelName:$l,backendName:\"webgl\",kernelFunc:fnt};var DC=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 DC(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},o3={kernelName:Np,backendName:\"webgl\",kernelFunc:dnt};function s3(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=Gn(a,r.dtype,\"max\",n),l=st({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function xT(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=S.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=S.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 Qs(c,\"max\",!1);return e.runWebGLProgram(p,[o],o.dtype)}var l3={kernelName:us,backendName:\"webgl\",kernelFunc:ynt};function bnt(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=S.computePool3DInfo(o.shape,s,i,c,a,l,u),m=new Au(p,\"max\",!1);return e.runWebGLProgram(m,[o],o.dtype)}var u3={kernelName:Dl,backendName:\"webgl\",kernelFunc:bnt};var RC=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 `}},FC=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 wnt(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=S.computePool3DInfo(i.shape,a,u,p,l,c),f=new Au(m,\"max\",!0),d=e.runWebGLProgram(f,[i],i.dtype),h=new FC(m),g=e.runWebGLProgram(h,[o,d],i.dtype);return e.disposeIntermediateTensorInfo(d),g}var c3={kernelName:Tp,backendName:\"webgl\",kernelFunc:wnt};function Cnt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;Zs([s,i],\"maxPoolGrad\");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=S.computePool2DInfo(a.shape,u,l,1,c,p),f=!0,d=new Qs(m,\"max\",f),h=e.runWebGLProgram(d,[a],a.dtype),g=new RC(m),x=e.runWebGLProgram(g,[o,h],a.dtype);return e.disposeIntermediateTensorInfo(h),x}var p3={kernelName:kp,backendName:\"webgl\",kernelFunc:Cnt};function m3(r,t,e,n){let o=new Qs(e,\"max\",!1),s=n.runWebGLProgram(o,[r],\"float32\");o=new Qs(e,\"max\",!0,!0,t);let i=n.runWebGLProgram(o,[r],\"float32\");return[s,i]}var f3={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(S.eitherStridesOrDilationsAreOne(s,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${l}'`);let c=S.computePool2DInfo(n.shape,o,s,l,i),[p,m]=m3(n,a,c,u);return[p,m]}};function d3(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=Gn(a,\"float32\",\"mean\",n),l=st({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var h3={kernelName:cs,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=S.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 PC=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 knt=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=M().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new PC(n.shape,o,s):new OC(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},y3={kernelName:fs,backendName:\"webgl\",kernelFunc:knt};var Tnt=`if (b == 0.0) return NAN;\n return mod(a, b);`,Ent=`\n vec4 result = mod(a, b);\n bvec4 isNaN = equal(b, vec4(0.0));\n `+ji+`\n return result;\n`,_nt=le({opSnippet:Tnt,packedOpSnippet:Ent}),b3={kernelName:_a,backendName:\"webgl\",kernelFunc:_nt};var LC=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 Ant=`\nif (a == b) {\n return 1.0;\n};\nreturn a / b;`,$nt=`\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`,yT=le({opSnippet:Ant,packedOpSnippet:$nt,checkOutOfBounds:!0}),w3={kernelName:Jo,backendName:\"webgl\",kernelFunc:yT};var C3=\"return a - b;\",bT=le({opSnippet:C3,packedOpSnippet:C3,supportsComplex:!0,cpuKernelImpl:zL}),I3={kernelName:Rs,backendName:\"webgl\",kernelFunc:bT};function wT(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=xT({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=S.expandShapeToKeepDim(a.shape,i),l=st({inputs:{x:a},backend:e,attrs:{shape:u}}),c=bT({inputs:{a:o,b:l},backend:e}),p=dT({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=yT({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 v3={kernelName:$s,backendName:\"webgl\",kernelFunc:wT};function Dnt(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:wT({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new LC(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],\"int32\",m);return a||e.disposeIntermediateTensorInfo(u),f}var S3={kernelName:_p,backendName:\"webgl\",kernelFunc:Dnt};var Rnt=pr+`\n return -x;\n`,Fnt=`\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 Ont(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=IL(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return M().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new no(n.shape,Fnt):o=new tn(n.shape,Rnt),e.runWebGLProgram(o,[n],n.dtype)}var N3={kernelName:ui,backendName:\"webgl\",kernelFunc:Ont};var Pnt=Wr.nonMaxSuppressionV3Impl;function Lnt(r){S.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}=Pnt(l,c,i,a,u);return e.makeTensorInfo([p.length],\"int32\",new Int32Array(p))}var k3={kernelName:$a,backendName:\"webgl\",kernelFunc:Lnt};var Mnt=Wr.nonMaxSuppressionV4Impl;function znt(r){S.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}=Mnt(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],\"int32\",new Int32Array(m)),e.makeTensorInfo([],\"int32\",new Int32Array([f]))]}var T3={kernelName:Da,backendName:\"webgl\",kernelFunc:znt};var Bnt=Wr.nonMaxSuppressionV5Impl;function Vnt(r){S.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}=Bnt(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],\"int32\",new Int32Array(g)),e.makeTensorInfo([x.length],\"float32\",new Float32Array(x))]}var E3={kernelName:Ra,backendName:\"webgl\",kernelFunc:Vnt};var MC=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 Gnt=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 MC(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},_3={kernelName:hs,backendName:\"webgl\",kernelFunc:Gnt};function tg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype===\"complex64\"){let o=yl({inputs:{input:n},backend:e}),s=tg({inputs:{x:o},backend:e}),i=Hc({inputs:{input:n},backend:e}),a=tg({inputs:{x:i},backend:e}),u=Tn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return bl({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype===\"string\"?\"\":0},backend:e})}var A3={kernelName:yi,backendName:\"webgl\",kernelFunc:tg};function $3(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=yl({inputs:{input:n},backend:e}),s=$3({inputs:{x:o},backend:e}),i=Hc({inputs:{input:n},backend:e}),a=tg({inputs:{x:i},backend:e}),u=Tn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return bl({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var D3={kernelName:ci,backendName:\"webgl\",kernelFunc:$3};function Wnt(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return IC({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=IC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=fT({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var R3={kernelName:pi,backendName:\"webgl\",kernelFunc:Wnt};var zC=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 BC=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 bl({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=M().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new BC(o.shape,s,i):new zC(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},F3={kernelName:gs,backendName:\"webgl\",kernelFunc:CT};var Unt=`\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`,Hnt=`\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 `+ji+`\n return result;\n`,qnt=le({opSnippet:Unt,packedOpSnippet:Hnt}),O3={kernelName:xs,backendName:\"webgl\",kernelFunc:qnt};function Knt(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=S.getAxesPermutation(c,a),m=o;p!=null&&(m=Fe({inputs:{x:o},backend:e,attrs:{perm:p}}),c=S.getInnerMostAxes(c.length,a),u.push(m)),S.assertAxesAreInnerMostDims(\"prod\",c,a);let f;if(e.shouldExecuteOnCPU([m])){let d=e.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=SL(m.shape,m.dtype,d,c);f=e.makeTensorInfo(g,x,h)}else{let[d,h]=S.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=st({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=Gu(o.dtype),w=Gn(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=S.expandShapeToKeepDim(f.shape,l);f=st({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var P3={kernelName:bs,backendName:\"webgl\",kernelFunc:Knt};function jnt(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]=NL(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 L3={kernelName:Ap,backendName:\"webgl\",kernelFunc:jnt};function Xnt(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]=kL(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var M3={kernelName:$p,backendName:\"webgl\",kernelFunc:Xnt};var IT=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=TL(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},z3={kernelName:Rl,backendName:\"webgl\",kernelFunc:IT};var Ynt=\"return 1.0 / x;\",Znt=Ct({opSnippet:Ynt}),B3={kernelName:Fa,backendName:\"webgl\",kernelFunc:Znt};var Jnt=pr+`\n return (x < 0.0) ? 0.0 : x;\n`,Qnt=`\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`,tot=Ct({opSnippet:Jnt,packedOpSnippet:Qnt}),V3={kernelName:ws,backendName:\"webgl\",kernelFunc:tot};var eot=pr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,rot=`\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`,not=Ct({opSnippet:eot,packedOpSnippet:rot}),G3={kernelName:vs,backendName:\"webgl\",kernelFunc:not};var VC=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 GC=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 oot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=M().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new GC(o.shape,u,l,s,i):new VC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],\"float32\")}var W3={kernelName:Is,backendName:\"webgl\",kernelFunc:oot};var WC=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 sot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new WC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var U3={kernelName:Fp,backendName:\"webgl\",kernelFunc:sot};var UC=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 HC=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 iot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=M().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new HC(o.shape,u,l,s,i):new UC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var H3={kernelName:Cs,backendName:\"webgl\",kernelFunc:iot};var qC=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 aot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new qC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var q3={kernelName:Rp,backendName:\"webgl\",kernelFunc:aot};var KC=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 jC=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 lot(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=M().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new jC(o.shape,a):new KC(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var K3={kernelName:Ss,backendName:\"webgl\",kernelFunc:lot};var XC=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 j3={kernelName:Ua,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=new XC(n.shape,s),[l,c]=S.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 uot=`\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`,cot=Ct({opSnippet:uot}),X3={kernelName:Ns,backendName:\"webgl\",kernelFunc:cot};var pot=\"return inversesqrt(x);\",mot=Ct({opSnippet:pot,cpuKernelImpl:EL}),Y3={kernelName:ks,backendName:\"webgl\",kernelFunc:mot};var Td=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 fot(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}=S.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 Td(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 Z3={kernelName:Oa,backendName:\"webgl\",kernelFunc:fot};var YC=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=M().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 dot(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n,a=new YC(o.shape[0],o.shape[1],s.shape[1],i),u=[[o.shape[1]]];return e.runWebGLProgram(a,[o,s],\"int32\",u)}var J3={kernelName:Op,backendName:\"webgl\",kernelFunc:dot};var ZC=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 hot(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=new ZC(n.shape.length,o.shape,o.shape.length);return e.runWebGLProgram(i,[n,o,s],or(o.dtype,s.dtype))}var Q3={kernelName:fi,backendName:\"webgl\",kernelFunc:hot};var got=`\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = ${S.SELU_SCALEALPHA};\n float scale = ${S.SELU_SCALE};\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n`,xot=Ct({opSnippet:got}),tB={kernelName:Pa,backendName:\"webgl\",kernelFunc:xot};var yot=Oo+`\n return 1.0 / (1.0 + exp(-1.0 * x));\n`,bot=`\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`,wot=Ct({opSnippet:yot,packedOpSnippet:bot,cpuKernelImpl:AL}),eB={kernelName:Es,backendName:\"webgl\",kernelFunc:wot};var Cot=`\n if (isnan(x)) { return 0.0; }\n return sign(x);\n`,Iot=Ct({opSnippet:Cot}),rB={kernelName:Ma,backendName:\"webgl\",kernelFunc:Iot};var vot=Oo+`\n return sin(x);\n`,Sot=Ct({opSnippet:vot}),nB={kernelName:Ts,backendName:\"webgl\",kernelFunc:Sot};var Not=`\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n`,kot=Ct({opSnippet:Not}),oB={kernelName:La,backendName:\"webgl\",kernelFunc:kot};var Tot=`\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`,Eot=Ct({opSnippet:Tot}),sB={kernelName:za,backendName:\"webgl\",kernelFunc:Eot};var _ot=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},iB={kernelName:hi,backendName:\"webgl\",kernelFunc:_ot};function Aot(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]=DL(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 aB={kernelName:Fl,backendName:\"webgl\",kernelFunc:Aot};function $ot(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]=RL(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var lB={kernelName:Ba,backendName:\"webgl\",kernelFunc:$ot};function Dot(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]=Fw(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var uB={kernelName:Ol,backendName:\"webgl\",kernelFunc:Dot};function Rot(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]=Fw(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var cB={kernelName:Pl,backendName:\"webgl\",kernelFunc:Rot};function Fot(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}=S.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=_L(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,C.dtype,C.values)}let d=new Td(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 pB={kernelName:Pp,backendName:\"webgl\",kernelFunc:Fot};function Oot(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=S.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=ti({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var mB={kernelName:gi,backendName:\"webgl\",kernelFunc:Oot};var fB=\"return sqrt(x);\",Pot=Ct({opSnippet:fB,packedOpSnippet:fB,cpuKernelImpl:FL}),dB={kernelName:_s,backendName:\"webgl\",kernelFunc:Pot};var Lot=\"return x * x;\",Mot=Ct({opSnippet:Lot}),hB={kernelName:Ll,backendName:\"webgl\",kernelFunc:Mot};var gB=\"return (a - b) * (a - b);\",zot=le({opSnippet:gB,packedOpSnippet:gB}),xB={kernelName:Ds,backendName:\"webgl\",kernelFunc:zot};function Bot({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=pr+`\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 yB={kernelName:uo,backendName:\"webgl\",kernelFunc:Bot};var JC=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 Vot(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}=Pe.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=Pe.computeOutShape(b,w,C),$=ti({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=OL(f,F,C,b);N=e.makeTensorInfo(d,o.dtype,P.values)}else{let $=new JC(b,C,f);N=e.runWebGLProgram($,[o],o.dtype)}let _=st({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),_}var bB={kernelName:Va,backendName:\"webgl\",kernelFunc:Vot};function Got(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]=PL(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var wB={kernelName:Ml,backendName:\"webgl\",kernelFunc:Got};function Wot(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]=LL(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 CB={kernelName:zl,backendName:\"webgl\",kernelFunc:Wot};function Uot(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=ML(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var IB={kernelName:Bl,backendName:\"webgl\",kernelFunc:Uot};var Hot=\"return tan(x);\",qot=Ct({opSnippet:Hot}),vB={kernelName:Fs,backendName:\"webgl\",kernelFunc:qot};var Kot=`\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n`,jot=Ct({opSnippet:Kot}),SB={kernelName:Os,backendName:\"webgl\",kernelFunc:jot};var QC=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=BL(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new QC(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var NB={kernelName:Zn,backendName:\"webgl\",kernelFunc:vT};var tI=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 `}},eI=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 kB(r){let t=1;for(;tu){let P=e.readSync(o.dataId),[V,G]=VL(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,bl({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=kB(s),b=kB(c),w=null,C=()=>w===null?[g,g]:[g,w],N=(P,V,G)=>{let W=C(),q=new tI(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 eI([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=ti({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),Kc(e,_);let A=gT({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 TB={kernelName:Ga,backendName:\"webgl\",kernelFunc:Yot};var rI=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 Zot(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 rI(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],\"float32\")}var EB={kernelName:Wa,backendName:\"webgl\",kernelFunc:Zot};function Jot(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;Zs(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}=GL(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],\"int32\",l)]}var _B={kernelName:Lp,backendName:\"webgl\",kernelFunc:Jot};function Qot(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 AB={kernelName:xi,backendName:\"webgl\",kernelFunc:Qot};var nI=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 tst(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=S.getAxesPermutation([l],a),p=o;c!=null&&(p=Fe({inputs:{x:o},backend:e,attrs:{perm:c}}),u.push(p),l=S.getInnerMostAxes(1,a)[0]);let m=S.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=Gu(o.dtype),g=(C,N,_,A,$)=>{let F=C.shape[0],P=C.shape[1],V=S.segment_util.segOpComputeOptimalWindowSize(P,$),G={windowSize:V,inSize:P,batchSize:F,numSegments:$},W=new nI(G,N),q=e.compileAndRun(W,[C,_],A);if(u.push(q),q.shape[1]===$)return q;let H=IT({backend:e,attrs:{start:0,stop:$,step:1,dtype:\"float32\"}}),j=vT({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=S.getUndoAxesPermutation(c);w=Fe({inputs:{x:w},backend:e,attrs:{perm:C}})}return u.forEach(C=>e.disposeIntermediateTensorInfo(C)),w}var $B={kernelName:Vl,backendName:\"webgl\",kernelFunc:tst};var est=[xM,bM,wM,CM,vM,SM,NM,kM,_M,AM,$M,DM,RM,FM,OM,PM,LM,MM,zM,BM,VM,WM,UM,HM,XM,ZM,JM,aM,tz,rz,nz,oz,sz,iz,az,lz,uz,cz,pz,dz,hz,gz,xz,yz,bz,wz,Cz,Iz,vz,Sz,Nz,kz,Tz,Ez,_z,$z,Dz,Rz,Fz,Pz,Lz,Mz,zz,Bz,Vz,Gz,Wz,Uz,iM,Hz,ez,qz,Kz,jz,lM,Xz,Yz,Zz,Jz,Qz,t3,e3,r3,n3,o3,i3,a3,l3,u3,c3,p3,f3,h3,g3,x3,y3,b3,S3,pM,N3,k3,T3,E3,qM,_3,D3,R3,F3,O3,uM,P3,L3,M3,z3,KM,w3,B3,V3,G3,fM,W3,U3,H3,q3,K3,j3,X3,Y3,Z3,J3,Q3,tB,eB,rB,nB,oB,GM,v3,sB,iB,aB,lB,uB,cB,pB,mB,dB,hB,xB,yB,bB,wB,CB,IB,I3,hM,vB,SB,NB,TB,EB,gM,_B,AB,$B,A3];for(let r of est)Pu(r);var Ht;(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\"})(Ht||(Ht={}));var $u;(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\"})($u||($u={}));var DB;function rst(r){DB=r.wasm.cwrap(bi,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function nst(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=$u[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=zr.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 DB(m,_,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),C}var RB={kernelName:bi,backendName:\"wasm\",setupFunc:rst,kernelFunc:nst};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,Ht[a.dtype],c),l}return{kernelName:r,backendName:\"wasm\",setupFunc:n,kernelFunc:o}}var FB=se(oi);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=S.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,Ht[l.dtype],b))(),h}return{kernelName:r,backendName:\"wasm\",setupFunc:o,kernelFunc:s}}var ost=!0,OB=ue(Yn,ost);var PB;function sst(r){PB=r.wasm.cwrap(Vo,null,[\"array\",\"number\",\"number\",\"number\"])}function ist(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 PB(s,o.length,Ht[n.dtype],i),n}var LB={kernelName:Vo,backendName:\"wasm\",setupFunc:sst,kernelFunc:ist};function jc(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype),o=e.typedArrayFromHeap(t);return e.typedArrayFromHeap(n).set(o),n}var MB={kernelName:lo,backendName:\"wasm\",kernelFunc:jc};var zB;function ast(r){zB=r.wasm.cwrap(Jn,null,[\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function so(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=ust(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 BB={kernelName:Jn,backendName:\"wasm\",kernelFunc:so,setupFunc:ast};function yn(r,t,e){let n=r.shape,o=r.shape.length,s=y.parseAxisParam(t,n),i=s,a=S.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 XB={kernelName:mi,backendName:\"wasm\",kernelFunc:ir};var YB;function yst(r){YB=r.wasm.cwrap(Uo,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\"])}function bst(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=zr.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],_=ir({inputs:{x:o},backend:e,attrs:{shape:C}}),A=ir({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 YB($,H,_.shape.length,F,j,A.shape.length,i,a,q),e.disposeData(_.dataId),e.disposeData(A.dataId),W.shape=w,W}var ZB={kernelName:Uo,backendName:\"wasm\",setupFunc:yst,kernelFunc:bst};function Po(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=Pe.parseSliceParams(t,e,n),a=Pe.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=Pe.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)wst(u,c[0],m,s,i);else if(f===3)Cst(u,c[0],c[1],m,s,i);else if(f===4)Ist(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 wst(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=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=ir({inputs:{x:o},backend:e,attrs:{shape:u}}),d=so({inputs:{x:f},backend:e,attrs:{perm:l}}),h=ir({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Po({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 QB={kernelName:si,backendName:\"wasm\",kernelFunc:vst};function ei(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 tV={kernelName:io,backendName:\"wasm\",kernelFunc:ei};var eV=se(Ho);var rV;function Sst(r){rV=r.wasm.cwrap(ao,null,[\"number\",\"number\",\"number\",\"number\"])}function Nst(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 rV(a,s,i,l),u}var nV={kernelName:ao,backendName:\"wasm\",setupFunc:Sst,kernelFunc:Nst};function ST(r){let{inputs:t,backend:e}=r,n=y.parseAxisParam(r.attrs.axis,t[0].shape)[0],o=t.map(f=>f.shape);S.assertParamsConsistent(o,n);let s=S.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 ir({inputs:{x:w},backend:e,attrs:{shape:[-1,C]}})}),d=f.map(w=>({vals:e.readSync(w.dataId),shape:w.shape}));s=S.computeOutShape(f.map(w=>w.shape),1);let h=f[0].shape[0]===1,g=Ec(d,s,t[0].dtype,h),x=S.computeOutShape(i.map(w=>w.shape),n);a.shape=x;let b=e.dataIdMap.get(a.dataId);return b.stringBytes=S.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=S.getAxesPermutation([s],u),c=o;l!==null&&(c=so({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.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;fV(d,i?1:0,a?1:0,f,h,Ht[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=so({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var dV={kernelName:pa,backendName:\"wasm\",setupFunc:Dst,kernelFunc:Rst};var hV;function Fst(r){hV=r.wasm.cwrap(Yo,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Ost(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=S.getAxesPermutation([s],u),c=o;l!==null&&(c=so({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.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;hV(d,i?1:0,a?1:0,f,h,Ht[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=so({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var gV={kernelName:Yo,backendName:\"wasm\",setupFunc:Fst,kernelFunc:Ost};var xV;function Pst(r){xV=r.wasm.cwrap(fa,null,[\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function Lst(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 xV(x,s,i===\"NHWC\"?1:0,b,o.shape.length-1,w,C,d.length,N),h}var yV={kernelName:fa,backendName:\"wasm\",setupFunc:Pst,kernelFunc:Lst};var bV;function Mst(r){bV=r.wasm.cwrap(Zo,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function zst(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=S.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 bV(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 wV={kernelName:Zo,backendName:\"wasm\",setupFunc:Mst,kernelFunc:zst};var CV=se(Qo);var Bst=!1,IV=ue(ha,Bst,\"bool\");var vV=se(ts,\"float32\");function oI(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),ir({inputs:{x:o},backend:n,attrs:{shape:a}})}var SV={kernelName:ai,backendName:\"wasm\",kernelFunc:oI};function kT(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 NV={kernelName:Al,backendName:\"wasm\",kernelFunc:kT};var kV;function Vst(r){kV=r.wasm.cwrap(xa,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Gst(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 kV(s,a,u,l,c,i),o}var TV={kernelName:xa,backendName:\"wasm\",kernelFunc:Gst,setupFunc:Vst};var EV=se(es);var Wst=!1,_V=ue(rs,Wst);var AV;function Ust(r){AV=r.wasm.cwrap(ns,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Hst(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 AV(c,p,m,f,d,o,g),h}var $V={kernelName:ns,backendName:\"wasm\",setupFunc:Ust,kernelFunc:Hst};var DV;function qst(r){DV=r.wasm.cwrap(wi,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 Kst(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=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m),g=$u[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 DV(x,Y,Z,et,b,N,_,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var RV={kernelName:wi,backendName:\"wasm\",setupFunc:qst,kernelFunc:Kst};var FV;function jst(r){FV=r.wasm.cwrap(Ci,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 Xst(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=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m,!0),g=$u[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 FV(x,Y,Z,et,b,N,_,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var OV={kernelName:Ci,backendName:\"wasm\",setupFunc:jst,kernelFunc:Xst};var PV;function Yst(r){PV=r.wasm.cwrap(ya,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function Zst(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=Qg.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 PV(f,Ht[n.dtype],h,i,p,a,g,x),l}var LV={kernelName:ya,backendName:\"wasm\",setupFunc:Yst,kernelFunc:Zst};var MV;function Jst(r){MV=r.wasm.cwrap(\"Gather\",null,[\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function Qst(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=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),m=ir({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=ir({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 MV(w,Ht[o.dtype],A,x,N,p.batchSize,$,_),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var zV={kernelName:li,backendName:\"wasm\",setupFunc:Jst,kernelFunc:Qst};var tit=!1,BV=ue(ba,tit,\"bool\");var eit=!1,VV=ue(os,eit,\"bool\");var GV;function rit(r){GV=r.wasm.cwrap(ss,null,[\"number\",\"number\",\"number\",\"number\"])}function nit(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;GV(o,Ht[t.dtype],e,i)}return s}var WV={kernelName:ss,backendName:\"wasm\",setupFunc:rit,kernelFunc:nit};var oit=!1,UV=ue(va,oit,\"bool\");var sit=!1,HV=ue(Sa,sit,\"bool\");var qV=se(is);var iit=!1,KV=ue(ka,iit,\"bool\");var jV=se(Ta);var ait=!1,XV=ue(Ea,ait,\"bool\");var lit=!1,YV=ue(a1,lit,\"bool\");var ZV;function uit(r){ZV=r.wasm.cwrap(as,null,[\"number\",\"number\",\"number\",\"number\"])}function cit(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}=yn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;l=c,u=w}let d=l.shape.length;S.assertAxesAreInnerMostDims(\"max\",p,d);let[h,g]=S.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;ZV(u,Ht[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var JV={kernelName:as,backendName:\"wasm\",setupFunc:uit,kernelFunc:cit};var pit=!1,QV=ue(ls,pit);var tG;function mit(r){tG=r.wasm.cwrap(us,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function fit(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=S.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 tG(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,C,N,_,$),A}var eG={kernelName:us,backendName:\"wasm\",setupFunc:mit,kernelFunc:fit};var rG;function dit(r){rG=r.wasm.cwrap(cs,null,[\"number, number, number\"])}function hit(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}=yn(i,o,t),d=p;if(f){let C=t.dataIdMap.get(c.dataId).id;C!==a&&(l=c,u=C,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims(\"mean\",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=l;l.dtype!==\"float32\"&&(b=ei({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;rG(u,x,C)}if(f&&t.disposeData(c.dataId),s){let C=S.expandShapeToKeepDim(w.shape,m);w.shape=C}return l.dtype!==\"float32\"&&t.disposeData(b.dataId),w}var nG={kernelName:cs,backendName:\"wasm\",setupFunc:dit,kernelFunc:hit};var oG;function git(r){oG=r.wasm.cwrap(ps,null,[\"number\",\"number\",\"number\",\"number\"])}function xit(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}=yn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w)}let d=l.shape.length;S.assertAxesAreInnerMostDims(\"min\",p,d);let[h,g]=S.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;oG(u,Ht[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var sG={kernelName:ps,backendName:\"wasm\",setupFunc:git,kernelFunc:xit};var yit=!1,iG=ue(ms,yit);var TT;(function(r){r[r.reflect=0]=\"reflect\",r[r.symmetric=1]=\"symmetric\"})(TT||(TT={}));var aG;function bit(r){aG=r.wasm.cwrap(fs,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function wit(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 aG(i,l,t.shape.length,Ht[t.dtype],m,f,TT[o],u),a}var lG={kernelName:fs,backendName:\"wasm\",kernelFunc:wit,setupFunc:bit};var Cit=!0,uG=ue(ds,Cit);var cG=se(ui);function Ed(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 pG;function Iit(r){pG=r.wasm.cwrap($a,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"])}function vit(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=pG(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Ed(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],\"int32\",m)}var mG={kernelName:$a,backendName:\"wasm\",setupFunc:Iit,kernelFunc:vit};var fG;function Sit(r){fG=r.wasm.cwrap(Da,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"bool\"])}function Nit(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=fG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Ed(t,m);t.wasm._free(h);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([],\"int32\",g);return[x,b]}var dG={kernelName:Da,backendName:\"wasm\",setupFunc:Sit,kernelFunc:Nit};var hG;function kit(r){hG=r.wasm.cwrap(Ra,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Tit(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=hG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Ed(t,m);t.wasm._free(g);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([d],\"float32\",h);return[x,b]}var gG={kernelName:Ra,backendName:\"wasm\",setupFunc:kit,kernelFunc:Tit};var Eit=!1,xG=ue(Aa,Eit,\"bool\");var yG;function _it(r){yG=r.wasm.cwrap(hs,null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function Ait(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 yG(m,i,a,u,c),l}var bG={kernelName:hs,backendName:\"wasm\",setupFunc:_it,kernelFunc:Ait};function $it(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var wG={kernelName:ci,backendName:\"wasm\",kernelFunc:$it};function Dit(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return oI({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=oI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=ST({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var CG={kernelName:pi,backendName:\"wasm\",kernelFunc:Dit};var IG;function Rit(r){IG=r.wasm.cwrap(gs,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function Fit(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 kT({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 IG(i,c,t.shape.length,Ht[t.dtype],f,d,o,l),a}var sI={kernelName:gs,backendName:\"wasm\",kernelFunc:Fit,setupFunc:Rit};var Oit=!1,vG=ue(xs,Oit);var SG;function Pit(r){SG=r.wasm.cwrap(ys,null,[\"number\",\"number\",\"number\"])}function Lit(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=ei({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 SG(a,i,p),u.dtype!==\"float32\"&&e.disposeData(l.dataId),c}var NG={kernelName:ys,backendName:\"wasm\",setupFunc:Pit,kernelFunc:Lit};var kG;function Mit(r){kG=r.wasm.cwrap(bs,null,[\"number\",\"number\",\"number\",\"number\"])}function zit(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}=yn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims(\"prod\",d,l.shape.length);let[h,g]=S.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;kG(u,x,Ht[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var TG={kernelName:bs,backendName:\"wasm\",setupFunc:Mit,kernelFunc:zit};var Bit=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},EG={kernelName:Rl,backendName:\"wasm\",kernelFunc:Bit};var Vit=!0,_G=ue(Jo,Vit);var AG=se(ws);var $G=se(vs);var DG;function Git(r){DG=r.wasm.cwrap(Is,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Wit(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=ei({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 DG(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var RG={kernelName:Is,backendName:\"wasm\",setupFunc:Git,kernelFunc:Wit};var FG;function Uit(r){FG=r.wasm.cwrap(Cs,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Hit(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=ei({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 FG(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var OG={kernelName:Cs,backendName:\"wasm\",setupFunc:Uit,kernelFunc:Hit};var PG;function qit(r){PG=r.wasm.cwrap(Ss,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function Kit(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);PG(u,c,i.length,p,o.shape.length,l);let m=ir({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var LG={kernelName:Ss,backendName:\"wasm\",kernelFunc:Kit,setupFunc:qit};var MG;function jit(r){MG=r.wasm.cwrap(Ua,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function Xit(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]=S.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 MG(l,p,m,f,d,s,h,g,C,w.length,c),u}var zG={kernelName:Ua,backendName:\"wasm\",kernelFunc:Xit,setupFunc:jit};var BG=se(Ns);var VG=se(ks);var GG;function Yit(r){GG=r.wasm.cwrap(Oa,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function Zit(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}=oh.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 GG(d,g,Ht[s.dtype],u,l,c,x,m,b),a}var WG={kernelName:Oa,backendName:\"wasm\",setupFunc:Yit,kernelFunc:Zit};var UG;function Jit(r){UG=r.wasm.cwrap(\"SelectV2\",null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function Qit(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 UG(i,a,u,f,c),l}var HG={kernelName:fi,backendName:\"wasm\",kernelFunc:Qit,setupFunc:Jit};var qG;function tat(r){qG=r.wasm.cwrap(Es,null,[\"number\",\"number\"])}function eat(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||qG(n,s),o}var KG={kernelName:\"Sigmoid\",backendName:\"wasm\",setupFunc:tat,kernelFunc:eat};var jG=se(Ts);var XG;function rat(r){XG=r.wasm.cwrap($s,null,[\"number\",\"number\",\"number\",\"number\"])}function nat(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||XG(o,i,a,u),s}var YG={kernelName:$s,backendName:\"wasm\",setupFunc:rat,kernelFunc:nat};function oat(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(S.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;rW(m,Ht[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),C;switch(w[0]){case 0:{C=S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{C=S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:C=S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:C=S.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 uat(r){return aI(r,!0)}var nW={kernelName:Ol,backendName:\"wasm\",setupFunc:iI,kernelFunc:uat};function cat(r){return aI(r,!1)}var oW={kernelName:Pl,backendName:\"wasm\",setupFunc:iI,kernelFunc:cat};function pat(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=S.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=Po({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var sW={kernelName:gi,backendName:\"wasm\",kernelFunc:pat};var iW=se(_s);var aW=se(Ll);var mat=!0,lW=ue(Ds,mat);var uW;function fat(r){uW=r.wasm.cwrap(uo,null,[\"number\",\"number\",\"number\",\"number\"])}function dat(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 uW(i,o,Ht[s.dtype],u),a}var cW={kernelName:uo,backendName:\"wasm\",setupFunc:fat,kernelFunc:dat};var pW;function hat(r){pW=r.wasm.cwrap(Va,null,[\"number\",\"array\",\"number\",\"array\",\"array\",\"array\",\"array\",\"array\",\"number\",\"number\"])}function gat(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}=Pe.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=ir({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 _=Pe.computeOutShape(b,w,C),A=Po({inputs:{x:o},backend:t,attrs:{begin:b,size:_}});N=ir({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;pW(A,$,o.shape.length,F,P,V,G,W,f.length,q),N=ir({inputs:{x:_},backend:t,attrs:{shape:d}}),t.disposeData(_.dataId)}return N}var mW={kernelName:Va,backendName:\"wasm\",setupFunc:hat,kernelFunc:gat};function xat(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 fW={kernelName:Ml,backendName:\"wasm\",kernelFunc:xat};function yat(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 dW={kernelName:zl,backendName:\"wasm\",kernelFunc:yat};function bat(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 hW={kernelName:Bl,backendName:\"wasm\",kernelFunc:bat};var wat=!0,gW=ue(Rs,wat);var xW;function Cat(r){xW=r.wasm.cwrap(As,null,[\"number\",\"number\",\"number\",\"number\"])}function Iat(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}=yn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims(\"sum\",d,l.shape.length);let[h,g]=S.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;xW(u,x,Ht[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var yW={kernelName:As,backendName:\"wasm\",setupFunc:Cat,kernelFunc:Iat};var bW=se(Fs);var wW=se(Os);var CW;function vat(r){CW=r.wasm.cwrap(Zn,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function Sat(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 vW(i,a,n.shape.length,Ht[n.dtype],o,s,c,m),[l,p]},SW={kernelName:Ga,backendName:\"wasm\",setupFunc:Nat,kernelFunc:kat};var NW;function Tat(r){NW=r.wasm.cwrap(Wa,null,[\"number\",\"number\",\"bool\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Eat(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 NW(_,$,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 kW={kernelName:Wa,backendName:\"wasm\",setupFunc:Tat,kernelFunc:Eat};function _at(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 TW={kernelName:xi,backendName:\"wasm\",kernelFunc:_at};function Aat(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var EW={kernelName:yi,backendName:\"wasm\",kernelFunc:Aat};var $at=[RB,FB,OB,LB,GB,UB,qB,jB,ZB,QB,tV,eV,nV,oV,iV,lV,uV,cV,mV,dV,gV,yV,wV,CV,IV,vV,SV,NV,TV,EV,_V,$V,RV,OV,LV,zV,BV,VV,MB,WV,UV,HV,qV,KV,jV,XV,YV,JV,QV,eG,nG,sG,iG,lG,uG,cG,mG,dG,gG,xG,bG,wG,CG,sI,vG,NG,TG,EG,_G,AG,$G,XB,RG,OG,LG,zG,BG,VG,WG,HG,KG,jG,JB,YG,ZG,QG,eW,nW,oW,sW,iW,aW,lW,cW,mW,fW,dW,hW,gW,yW,bW,wW,IW,SW,kW,BB,TW,EW];for(let r of $at)Pu(r);var ET=M();ET.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}});ET.registerFlag(\"WASM_HAS_MULTITHREAD_SUPPORT\",async()=>{if(ET.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 FT=Sl(DW()),MW=Sl(FW()),OT=Sl(OW());var PW=FT.default||FT,Dat=OT.default||OT,sg=class extends Mo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(BW),RT=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new ta(this,ho())}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 Fat(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 Rat(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 LW(r,t,e){if(cI!=null)return cI;let n=\"tfjs-backend-wasm.wasm\";return r&&t?n=\"tfjs-backend-wasm-threaded-simd.wasm\":r&&(n=\"tfjs-backend-wasm-simd.wasm\"),ng!=null&&ng[n]!=null?ng[n]:e+n}async function zW(){let[r,t]=await Promise.all([M().getAsync(\"WASM_HAS_SIMD_SUPPORT\"),M().getAsync(\"WASM_HAS_MULTITHREAD_SUPPORT\")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(\".worker.js\")){let l=MW.wasmWorkerContents.replace(/\\n/g,\"\\\\n\"),c=new Blob([l],{type:\"application/javascript\"});return URL.createObjectURL(c)}return a.endsWith(\".wasm\")?LW(r,t,rg!=null?rg:u):u+a},PT&&(o.instantiateWasm=Rat(LW(r,t,rg!=null?rg:\"\")));let s=!1;o.onAbort=()=>{if(s||og)return;og=!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&&cI==null?(o.mainScriptUrlOrBlob=new Blob([\"var WasmBackendModuleThreadedSimd = \"+PW.toString()],{type:\"text/javascript\"}),i=PW(o)):i=Dat(o),i.then(a=>{s=!0,og=!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 Fat(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 Oat=[\"tfjs-backend-wasm.wasm\",\"tfjs-backend-wasm-simd.wasm\",\"tfjs-backend-wasm-threaded-simd.wasm\"],cI=null,rg=null,ng={},og=!1,PT=!1;function Pat(r,t=!1){if(MS(\"setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release.\"),og)throw new Error(\"The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`\");cI=r,PT=t}function Lat(r,t=!1){if(og)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\")rg=r;else{ng=r;let e=Oat.filter(n=>ng[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.`)}PT=t}var BW=-1,RT=-1;function Mat(r){BW=r}function zat(){if(RT===-1)throw new Error(\"WASM backend not initialized.\");return RT}var Bat=\"3.21.0\";var Vat=2;jp(\"wasm\",async()=>{let{wasm:r}=await zW();return new sg(r)},Vat);var Gat=\"3.21.0\",Wat=\"3.21.0\",Uat=\"3.21.0\",Hat=\"3.21.0\",qat=\"3.21.0\",Kat=\"3.21.0\",jat=\"3.21.0\",Xat=\"3.21.0\",Yat={tfjs:Gat,\"tfjs-core\":Wat,\"tfjs-data\":Uat,\"tfjs-layers\":Hat,\"tfjs-converter\":qat,\"tfjs-backend-cpu\":Kat,\"tfjs-backend-webgl\":jat,\"tfjs-backend-wasm\":Xat};export{oi as Abs,ra as Acos,na as Acosh,uu as AdadeltaOptimizer,cu as AdagradOptimizer,pu as AdamOptimizer,mu as AdamaxOptimizer,Yn as Add,Vo as AddN,oa as All,sa as Any,Go as ArgMax,Nl as ArgMin,ia as Asin,aa as Asinh,la as Atan,ca as Atan2,ua as Atanh,Wo as AvgPool,kl as AvgPool3D,lp as AvgPool3DGrad,ap as AvgPoolGrad,sg as BackendWasm,Uo as BatchMatMul,si as BatchToSpaceND,up as Bincount,cp as BroadcastArgs,i1 as BroadcastTo,yb as Callback,$y as CallbackList,io as Cast,Ho as Ceil,ao as ClipByValue,pp as Complex,Tl as ComplexAbs,ii as Concat,qo as Conv2D,mp as Conv2DBackpropFilter,Ko as Conv2DBackpropInput,El as Conv3D,fp as Conv3DBackpropFilterV2,dp as Conv3DBackpropInputV2,jo as Cos,Xo as Cosh,ma as CropAndResize,pa as Cumprod,Yo as Cumsum,Ry as CustomCallback,ta as DataStorage,hp as DenseBincount,fa as DepthToSpace,Zo as DepthwiseConv2dNative,gp as DepthwiseConv2dNativeBackpropFilter,xp as DepthwiseConv2dNativeBackpropInput,yp as Diag,_l as Dilation2D,Hd as Dilation2DBackpropFilter,Ud as Dilation2DBackpropInput,eS as ENV,bb as EarlyStopping,bp as Einsum,Qo as Elu,wp as EluGrad,Gd as Environment,ha as Equal,da as Erf,ts as Exp,ai as ExpandDims,ga as Expm1,Cp as FFT,Al as Fill,xa as FlipLeftRight,es as Floor,rs as FloorDiv,qd as FromPixels,ns as FusedBatchNorm,wi as FusedConv2D,Ci as FusedDepthwiseConv2D,Bc as GPGPUContext,ya as GatherNd,li as GatherV2,$h as GraphModel,ba as Greater,os as GreaterEqual,Dy as History,Ip as IFFT,lo as Identity,vp as Imag,ye as InputSpec,wa as IsFinite,Ca as IsInf,Ia as IsNan,Mo as KernelBackend,$l as LRN,Np as LRNGrad,gh as LayerVariable,Mn as LayersModel,ss as LeakyRelu,va as Less,Sa as LessEqual,Sp as LinSpace,is as Log,Na as Log1p,l1 as LogSoftmax,ka as LogicalAnd,Ta as LogicalNot,Ea as LogicalOr,a1 as LogicalXor,rlt as LowerBound,Eu as MathBackendWebGL,as as Max,us as MaxPool,Dl as MaxPool3D,Tp as MaxPool3DGrad,kp as MaxPoolGrad,Ep as MaxPoolWithArgmax,ls as Maximum,cs as Mean,ps as Min,ms as Minimum,fs as MirrorPad,_a as Mod,fu as MomentumOptimizer,_p as Multinomial,ds as Multiply,ui as Neg,$a as NonMaxSuppressionV3,Da as NonMaxSuppressionV4,Ra as NonMaxSuppressionV5,Aa as NotEqual,IS as OP_SCOPE_SUFFIX,hs as OneHot,ci as OnesLike,Gr as Optimizer,Vs as OptimizerConstructors,pi as Pack,gs as PadV2,nlt as Pool,xs as Pow,ys as Prelu,bs as Prod,du as RMSPropOptimizer,Nn as RNN,Ap as RaggedGather,$p as RaggedTensorToTensor,Rl as Range,mS as Rank,Dp as Real,Jo as RealDiv,Fa as Reciprocal,Xe as Reduction,ws as Relu,vs as Relu6,mi as Reshape,Is as ResizeBilinear,Fp as ResizeBilinearGrad,Cs as ResizeNearestNeighbor,Rp as ResizeNearestNeighborGrad,Ss as Reverse,Ua as RotateWithOffset,Ns as Round,ks as Rsqrt,Mi as SGDOptimizer,Oa as ScatterNd,Op as SearchSorted,fi as Select,Pa as Selu,Ui as Sequential,Es as Sigmoid,Ma as Sign,Ts as Sin,La as Sinh,di as Slice,$s as Softmax,za as Softplus,hi as SpaceToBatchND,Fl as SparseFillEmptyRows,Ba as SparseReshape,Ol as SparseSegmentMean,Pl as SparseSegmentSum,Pp as SparseToDense,gi as SplitV,_s as Sqrt,Ll as Square,Ds as SquaredDifference,uo as Step,Va as StridedSlice,Ml as StringNGrams,zl as StringSplit,Bl as StringToHashBucketFast,Rs as Sub,As as Sum,Jr as SymbolicTensor,Fs as Tan,Os as Tanh,Ft as Tensor,pe as TensorBuffer,Zn as Tile,Ga as TopK,Wa as Transform,Jn as Transpose,Lp as Unique,xi as Unpack,Vl as UnsortedSegmentSum,olt as UpperBound,Ha as Variable,yi as ZerosLike,bi as _FusedMatMul,Ee as abs,rx as acos,nx as acosh,X as add,DE as addN,Yp as all,Hu as any,Ei as argMax,ox as argMin,sx as asin,ix as asinh,ax as atan,lx as atan2,ux as atanh,jl as avgPool,px as avgPool3d,pE as backend,S as backend_util,OE as basicLSTMCell,Ai as batchNorm,mx as batchNorm2d,fx as batchNorm3d,dx as batchNorm4d,Xl as batchToSpaceND,hx as bincount,Uj as booleanMaskAsync,LE as broadcastArgs,$i as broadcastTo,zr as broadcast_util,Jg as browser,wt as buffer,NZ as callbacks,J as cast,gx as ceil,Cr as clipByValue,sn as clone,bn as complex,ne as concat,xx as concat1d,yx as concat2d,bx as concat3d,wx as concat4d,G$ as constraints,Jp as conv1d,Cn as conv2d,tm as conv2dTranspose,Cx as conv3d,vx as conv3dTranspose,plt as copyRegisteredKernels,Yl as cos,em as cosh,ch as cosineWindow,ju as cumprod,rm as cumsum,ln as customGrad,vR as data,ME as denseBincount,MS as deprecationWarn,Sx as depthToSpace,Di as depthwiseConv2d,_Z as deregisterOp,Hl as device_util,zE as diag,Nx as dilation2d,ept as disableDeprecationWarnings,St as dispose,rpt as disposeVariables,pt as div,kx as divNoNan,Tx as dot,n0 as dropout,BE as einsum,Ri as elu,tpt as enableDebugMode,Qct as enableProdMode,o0 as enclosingPowerOfTwo,ho as engine,M as env,Ar as equal,Ex as erf,_x as euclideanNorm,er as exp,gr as expandDims,Ax as expm1,Yu as eye,su as fft,go as fill,lpt as findBackend,upt as findBackendFactory,Fi as floor,Xp as floorDiv,sM as forceHalfFloat,au as fused,Oi as gather,Qj as gatherND,Qg as gather_util,ipt as getBackend,oS as getGradient,jd as getKernel,Fg as getKernelsForBackend,zat as getThreadsCount,eT as gpgpu_util,aK as grad,lK as grads,He as greater,Fn as greaterEqual,Za as ifft,Kl as imag,lu as image,r6 as inTopKAsync,W$ as initializers,$0 as input,Er as io,gm as irfft,$x as isFinite,Dx as isInf,Rx as isNaN,De as keep,Wr as kernel_impls,CD as layers,Zl as leakyRelu,nm as less,On as lessEqual,i0 as linalg,WE as linspace,I7 as loadGraphModel,v7 as loadGraphModelSync,O8 as loadLayersModel,Fx as localResponseNormalization,Ir as log,Jl as log1p,Lx as logSigmoid,om as logSoftmax,sm as logSumExp,Dr as logicalAnd,Ql as logicalNot,im as logicalOr,Mx as logicalXor,rX as losses,UE as lowerBound,Lt as matMul,fE as math,Br as max,tu as maxPool,Bx as maxPool3d,HE as maxPoolWithArgmax,In as maximum,Se as mean,nh as memory,qE as meshgrid,ID as metrics,Xu as min,Pi as minimum,Vx as mirrorPad,Gx as mod,R8 as model,vD as models,Zu as moments,qj as movingAverage,R as mul,KE as multiRNNCell,jE as multinomial,Ut as neg,ph as nextFrame,Ya as norm,zs as notEqual,ki as oneHot,lr as ones,xr as onesLike,k as op,XE as outerProduct,un as pad,YE as pad1d,ZE as pad2d,JE as pad3d,QE as pad4d,Wx as pool,an as pow,ru as prelu,Kg as print,Ux as prod,npt as profile,t_ as raggedGather,e_ as raggedTensorToTensor,r_ as rand,b_ as randomGamma,tc as randomNormal,w_ as randomStandardNormal,Li as randomUniform,nu as range,spt as ready,Xa as real,Xx as reciprocal,jp as registerBackend,P8 as registerCallbackConstructor,c1 as registerGradient,Pu as registerKernel,EZ as registerOp,SD as regularizers,Rr as relu,am as relu6,apt as removeBackend,D as reshape,ur as reverse,C_ as reverse1d,I_ as reverse2d,v_ as reverse3d,S_ as reverse4d,iu as rfft,lm as round,um as rsqrt,mt as scalar,jj as scatterND,oh as scatter_util,ah as searchSorted,cm as selu,pm as separableConv2d,F8 as sequential,Q as serialization,G4 as setBackend,cpt as setPlatform,Mat as setThreadsCount,Pat as setWasmPath,Lat as setWasmPaths,hk as setWebGLContext,N_ as setdiff1dAsync,Xr as sigmoid,Yx as sign,eX as signal,mm as sin,fm as sinh,Dt as slice,dm as slice1d,uh as slice2d,hm as slice3d,ec as slice4d,Pe as slice_util,ou as softmax,Ms as softplus,eu as spaceToBatchND,nX as sparse,Zj as sparseToDense,tX as spectral,cr as split,ve as sqrt,Mt as square,xm as squaredDifference,Pn as squeeze,rr as stack,yo as step,Zx as stridedSlice,oX as string,ct as sub,ft as sum,Gu as sumOutType,Jx as tan,_i as tanh,wr as tensor,Le as tensor1d,Bs as tensor2d,Zg as tensor3d,k_ as tensor4d,T_ as tensor5d,E_ as tensor6d,fo as tensor_util,AE as test_util,B as tidy,$r as tile,opt as time,Qx as topk,ic as train,Ot as transpose,ym as truncatedNormal,ty as unique,clt as unregisterGradient,ult as unregisterKernel,bm as unsortedSegmentSum,vr as unstack,or as upcastType,__ as upperBound,y as util,uK as valueAndGrad,cK as valueAndGrads,ey as variable,Ox as variableGrads,Yat as version,nR as version_converter,$E as version_core,Wm as version_layers,Bat as version_wasm,oM as version_webgl,oTe as webgl,cd as webgl_util,_e as where,ny 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 > = TSource & {\n landmarks: TFaceLandmarks,\n unshiftedLandmarks: TFaceLandmarks,\n alignedRect: FaceDetection,\n angle: { roll: number | undefined, pitch: number | undefined, yaw: number | undefined },\n }\n\nexport function isWithFaceLandmarks(obj: any): obj is WithFaceLandmarks, FaceLandmarks> {\n return 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\nfunction calculateFaceAngle(mesh) {\n // returns the angle in the plane (in radians) between the positive x-axis and the ray from (0,0) to the point (x,y)\n const radians = (a1, a2, b1, b2) => (Math.atan2(b2 - a2, b1 - a1) % Math.PI);\n // convert radians to degrees\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (theta) => (theta * 180) / Math.PI;\n\n const angle = { roll: undefined, pitch: undefined, yaw: undefined };\n\n if (!mesh || !mesh._positions || mesh._positions.length !== 68) return angle;\n const pt = mesh._positions;\n\n // values are in radians in range of -pi/2 to pi/2 which is -90 to +90 degrees\n // value of 0 means center\n\n // roll is face lean from left to right\n // comparing x,y of outside corners of leftEye and rightEye\n angle.roll = -radians(pt[36]._x, pt[36]._y, pt[45]._x, pt[45]._y);\n\n // pitch is face turn from left right\n // comparing x distance of top of nose to left and right edge of face\n // precision is lacking since coordinates are not precise enough\n angle.pitch = radians(0, Math.abs(pt[0]._x - pt[30]._x) / pt[30]._x, Math.PI, Math.abs(pt[16]._x - pt[30]._x) / pt[30]._x);\n\n // yaw is face move from up to down\n // comparing size of the box around the face with top and bottom of detected landmarks\n // silly hack, but this gives us face compression on y-axis\n // e.g., tilting head up hides the forehead that doesn't have any landmarks so ratio drops\n const bottom = pt.reduce((prev, cur) => (prev < cur._y ? prev : cur._y), +Infinity);\n const top = pt.reduce((prev, cur) => (prev > cur._y ? prev : cur._y), -Infinity);\n angle.yaw = Math.PI * (mesh._imgDims._height / (top - bottom) / 1.40 - 1);\n\n return angle;\n}\n\nexport function extendWithFaceLandmarks, TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 >(sourceObj: TSource, unshiftedLandmarks: TFaceLandmarks): 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(sourceObj.detection.score, rect.rescale(imageDims.reverse()), imageDims);\n const angle = calculateFaceAngle(unshiftedLandmarks);\n\n const extension = {\n landmarks,\n unshiftedLandmarks,\n alignedRect,\n angle,\n };\n\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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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,OAAO,OAAOb,EAAN,CAAS,CAAC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AO,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,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,aAAa,SAAS,aAAa,OAAO,CAAC,CA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", + "names": ["tfjs_esm_exports", "__export", "oi", "ra", "na", "uu", "cu", "pu", "mu", "Yn", "Vo", "oa", "sa", "Go", "Nl", "ia", "aa", "la", "ca", "ua", "Wo", "kl", "lp", "ap", "sg", "Uo", "si", "up", "cp", "i1", "yb", "$y", "io", "Ho", "ao", "pp", "Tl", "ii", "qo", "mp", "Ko", "El", "fp", "dp", "jo", "Xo", "ma", "pa", "Yo", "Ry", "ta", "hp", "fa", "Zo", "gp", "xp", "yp", "_l", "Hd", "Ud", "eS", "bb", "bp", "Qo", "wp", "Gd", "ha", "da", "ts", "ai", "ga", "Cp", "Al", "xa", "es", "rs", "qd", "ns", "wi", "Ci", "Bc", "ya", "li", "$h", "ba", "os", "Dy", "Ip", "lo", "vp", "ye", "wa", "Ca", "Ia", "Mo", "$l", "Np", "gh", "Mn", "ss", "va", "Sa", "Sp", "is", "Na", "l1", "ka", "Ta", "Ea", "a1", "rlt", "Eu", "as", "us", "Dl", "Tp", "kp", "Ep", "ls", "cs", "ps", "ms", "fs", "_a", "fu", "_p", "ds", "ui", "$a", "Da", "Ra", "Aa", "IS", "hs", "ci", "Gr", "Vs", "pi", "gs", "nlt", "xs", "ys", "bs", "du", "Nn", "Ap", "$p", "Rl", "mS", "Dp", "Jo", "Fa", "Xe", "ws", "vs", "mi", "Is", "Fp", "Cs", "Rp", "Ss", "Ua", "Ns", "ks", "Mi", "Oa", "Op", "fi", "Pa", "Ui", "Es", "Ma", "Ts", "La", "di", "$s", "za", "hi", "Fl", "Ba", "Ol", "Pl", "Pp", "gi", "_s", "Ll", "Ds", "uo", "Va", "Ml", "zl", "Bl", "Rs", "As", "Jr", "Fs", "Os", "Ft", "pe", "Zn", "Ga", "Wa", "Jn", "Lp", "xi", "Vl", "olt", "Ha", "yi", "bi", "Ee", "rx", "nx", "X", "DE", "Yp", "Hu", "Ei", "ox", "sx", "ix", "ax", "lx", "ux", "jl", "px", "pE", "S", "OE", "Ai", "mx", "fx", "dx", "Xl", "hx", "Uj", "LE", "$i", "zr", "Jg", "wt", "NZ", "J", "gx", "Cr", "sn", "bn", "ne", "xx", "yx", "bx", "wx", "G$", "Jp", "Cn", "tm", "Cx", "vx", "plt", "Yl", "em", "ch", "ju", "rm", "ln", "vR", "ME", "MS", "Sx", "Di", "_Z", "Hl", "zE", "Nx", "ept", "St", "rpt", "pt", "kx", "Tx", "n0", "BE", "Ri", "tpt", "Qct", "o0", "ho", "M", "Ar", "Ex", "_x", "er", "gr", "Ax", "Yu", "su", "go", "lpt", "upt", "Fi", "Xp", "sM", "au", "Oi", "Qj", "Qg", "ipt", "oS", "jd", "Fg", "zat", "eT", "aK", "lK", "He", "Fn", "Za", "Kl", "lu", "r6", "W$", "$0", "Er", "gm", "$x", "Dx", "Rx", "De", "Wr", "CD", "Zl", "nm", "On", "i0", "WE", "I7", "v7", "O8", "Fx", "Ir", "Jl", "Lx", "om", "sm", "Dr", "Ql", "im", "Mx", "rX", "UE", "Lt", "fE", "Br", "tu", "Bx", "HE", "In", "Se", "nh", "qE", "ID", "Xu", "Pi", "Vx", "Gx", "R8", "vD", "Zu", "qj", "R", "KE", "jE", "Ut", "ph", "Ya", "zs", "ki", "lr", "xr", "k", "XE", "un", "YE", "ZE", "JE", "QE", "Wx", "an", "ru", "Kg", "Ux", "npt", "t_", "e_", "r_", "b_", "tc", "w_", "Li", "nu", "spt", "Xa", "Xx", "jp", "P8", "c1", "Pu", "EZ", "SD", "Rr", "am", "apt", "D", "ur", "C_", "I_", "v_", "S_", "iu", "lm", "um", "mt", "jj", "oh", "ah", "cm", "pm", "F8", "Q", "G4", "cpt", "Mat", "Pat", "Lat", "hk", "N_", "Xr", "Yx", "eX", "mm", "fm", "Dt", "dm", "uh", "hm", "ec", "Pe", "ou", "Ms", "eu", "nX", "Zj", "tX", "cr", "ve", "Mt", "xm", "Pn", "rr", "yo", "Zx", "oX", "ct", "ft", "Gu", "Jx", "_i", "wr", "Le", "Bs", "Zg", "k_", "T_", "E_", "fo", "AE", "B", "$r", "opt", "Qx", "ic", "Ot", "ym", "ty", "clt", "ult", "bm", "vr", "or", "__", "y", "uK", "cK", "ey", "Ox", "Yat", "nR", "$E", "Wm", "Bat", "oM", "oTe", "cd", "_e", "ny", "Ne", "It", "wU", "jv", "CU", "IU", "vU", "SU", "$g", "r", "__require", "e", "dr", "Gt", "NU", "n", "o", "Sl", "C1", "flt", "w1", "We", "co", "t", "Dn", "p1", "m1", "Mu", "Ue", "po", "Lu", "mo", "g1", "b1", "d1", "$n", "y1", "Bp", "Og", "aS", "s", "i", "a", "u", "l", "Ps", "f1", "KU", "h1", "zp", "x1", "iS", "gt", "c", "p", "m", "f", "d", "eE", "rE", "o_", "n_", "ZS", "i_", "s_", "JS", "l_", "a_", "QS", "c_", "u_", "t0", "m_", "p_", "e0", "h", "g", "d_", "f_", "r0", "h_", "x_", "g_", "Hx", "w", "C", "N", "_", "b", "$", "P", "V", "G", "W", "q", "H", "lh", "K0t", "y_", "XK", "YK", "ZK", "JK", "QK", "tj", "Ju", "pN", "qb", "eg", "_W", "AW", "$W", "DW", "lI", "AT", "_T", "it", "Kt", "qe", "Te", "fe", "Ae", "En", "nr", "Wn", "Or", "L", "U", "x", "A", "F", "Du", "Y", "ut", "xt", "$t", "ie", "Lo", "j", "Z", "et", "rt", "ot", "at", "nt", "Yc", "dt", "ht", "bt", "Tt", "_t", "Bt", "Vt", "jt", "fr", "Kn", "Yt", "ce", "he", "Ge", "Pr", "Lr", "Un", "Hn", "jr", "Xi", "wl", "_d", "Fd", "Nr", "Yi", "LT", "Ad", "Cl", "Xc", "Zi", "MT", "zT", "pI", "ig", "$d", "en", "ag", "mI", "fI", "bg", "vI", "qt", "Qi", "dI", "BT", "hI", "gI", "Hv", "xI", "Dd", "lg", "ug", "Rd", "Il", "VT", "pg", "cg", "yI", "Ng", "Od", "bI", "qv", "kg", "GT", "WT", "wI", "YT", "Zc", "CI", "II", "XT", "UT", "SI", "NI", "qT", "kI", "mg", "fg", "TI", "EI", "_I", "jT", "AI", "$I", "DI", "Ru", "RI", "FI", "dg", "OI", "Jc", "PI", "LI", "Tg", "KT", "Pd", "MI", "qI", "zI", "BI", "VI", "hg", "gg", "GI", "WI", "xg", "yg", "UI", "_n", "rp", "QT", "JT", "Kv", "bU", "HI", "HT", "KI", "jI", "XI", "YI", "ZI", "JI", "QI", "tv", "ev", "rv", "nv", "ov", "sv", "iv", "av", "lv", "uv", "cv", "pv", "mv", "fv", "dv", "hv", "gv", "xv", "yv", "bv", "wv", "Cv", "Iv", "vv", "Sv", "Nv", "kv", "Tv", "Ev", "_v", "Av", "$v", "Dv", "Rv", "Fv", "Ov", "Pv", "Lv", "Mv", "zv", "Bv", "wg", "Cg", "Ld", "Vv", "Gv", "Qc", "Ig", "tp", "ep", "Wv", "K", "lt", "Et", "re", "Ke", "je", "ee", "te", "mr", "qn", "Ji", "vg", "Md", "Uv", "rn", "vl", "Sg", "VW", "GW", "WW", "UW", "HW", "qW", "KW", "jW", "XW", "YW", "ZW", "JW", "QW", "tU", "eU", "rU", "nU", "oU", "sU", "iU", "aU", "lU", "uU", "cU", "pU", "mU", "fU", "dU", "hU", "gU", "xU", "Eg", "ZT", "_g", "Ag", "yU", "FW", "HXe", "RW", "OW", "uI", "DT", "$T", "ta", "Mo", "jn", "t1", "Dg", "kU", "np", "TU", "EU", "_U", "AU", "E", "$e", "An", "Xn", "zo", "hr", "Zt", "$U", "ea", "DU", "RU", "FU", "Ou", "OU", "PU", "ar", "Xv", "Yv", "Zv", "Jv", "Qv", "LU", "Rg", "tS", "Bo", "e1", "r1", "op", "ri", "sp", "ni", "n1", "Fu", "zd", "ip", "MU", "Bd", "zU", "BU", "Vd", "o1", "Gd", "GU", "M", "UU", "WU", "eS", "s1", "rS", "nS", "HU", "Wd", "oi", "ra", "na", "Yn", "Vo", "oa", "sa", "Go", "Nl", "ia", "aa", "la", "ua", "ca", "Wo", "ap", "kl", "lp", "Uo", "si", "up", "i1", "cp", "io", "Ho", "ao", "pp", "Tl", "ii", "qo", "mp", "Ko", "El", "fp", "dp", "jo", "Xo", "pa", "Yo", "ma", "hp", "fa", "Zo", "gp", "xp", "yp", "_l", "Ud", "Hd", "Jo", "bp", "Qo", "wp", "da", "ha", "ts", "ai", "ga", "Cp", "Al", "xa", "es", "rs", "ns", "li", "ya", "ba", "os", "lo", "Ip", "vp", "wa", "Ca", "Ia", "ss", "va", "Sa", "Sp", "is", "Na", "ka", "Ta", "Ea", "a1", "l1", "rlt", "$l", "Np", "as", "ls", "us", "kp", "Dl", "Tp", "Ep", "cs", "ps", "ms", "fs", "_a", "_p", "ds", "ui", "Aa", "$a", "Da", "Ra", "ci", "hs", "pi", "gs", "nlt", "xs", "ys", "bs", "Ap", "$p", "Rl", "Dp", "Fa", "ws", "mi", "Cs", "Rp", "Is", "Fp", "vs", "Ss", "Ns", "ks", "Oa", "Op", "fi", "Pa", "di", "Ts", "La", "Ma", "Es", "za", "_s", "As", "hi", "gi", "$s", "Fl", "Ba", "Ol", "Pl", "Pp", "Ds", "Ll", "Va", "Ml", "zl", "Bl", "Rs", "Fs", "Os", "Zn", "Ga", "Wa", "Jn", "Lp", "xi", "Vl", "olt", "yi", "uo", "qd", "Ua", "bi", "wi", "Ci", "Ii", "qU", "Mp", "Kd", "jd", "sS", "oS", "Fg", "Pu", "c1", "ult", "clt", "plt", "y", "QU", "Gp", "Wl", "e4", "JU", "Xd", "Vu", "Vp", "uS", "Bu", "v1", "zu", "nn", "lS", "S1", "Oe", "I1", "kr", "Gl", "jU", "Pg", "XU", "YU", "ZU", "t4", "Lg", "cS", "r4", "N1", "k1", "T1", "Yd", "pS", "E1", "n4", "Mg", "Jd", "Zd", "_1", "pe", "Ls", "Wp", "o4", "A1", "$1", "D1", "Ft", "O", "Ha", "fo", "xS", "Qd", "i4", "Wt", "mS", "fS", "dS", "hS", "gS", "s4", "or", "Gu", "R1", "a4", "yS", "zg", "Ul", "T", "l4", "u4", "bS", "Hl", "CS", "m4", "p4", "c4", "wS", "Rn", "Mr", "O1", "F1", "I", "qa", "IS", "k", "f4", "bn", "on", "wr", "th", "Bg", "L1", "d4", "Vg", "y4", "vS", "P1", "M1", "z1", "Up", "SS", "Gg", "NS", "Hp", "vi", "Wg", "h4", "g4", "x4", "Ce", "B1", "V1", "G1", "W1", "kS", "TS", "Wu", "ql", "U1", "ES", "Si", "H1", "b4", "w4", "Ug", "Ka", "qp", "q1", "C4", "I4", "v4", "S4", "K1", "j1", "N4", "k4", "Ni", "X1", "T4", "Hg", "Kp", "Tr", "qg", "Y1", "Z1", "J1", "Q1", "tE", "_S", "E4", "AS", "$S", "wt", "_4", "J", "A4", "sn", "Kg", "$4", "Er", "oE", "aE", "lE", "LS", "Xg", "jg", "sE", "OS", "uE", "cE", "D4", "R4", "F4", "nE", "ja", "DS", "O4", "P4", "RS", "FS", "L4", "M4", "eh", "z4", "iE", "rh", "Yg", "PS", "fE", "mE", "B4", "Lt", "V4", "ki", "Qct", "tpt", "ept", "MS", "rpt", "ho", "nh", "npt", "B", "St", "De", "opt", "G4", "spt", "ipt", "apt", "lpt", "upt", "jp", "pE", "cpt", "W4", "Kl", "U4", "Ut", "H4", "Xa", "q4", "Ot", "K4", "zr", "Pt", "dE", "ge", "Jg", "tH", "J4", "Q4", "Zg", "Uu", "hE", "j4", "X4", "Y4", "Z4", "Qg", "gE", "oh", "xE", "tx", "zS", "Pe", "rH", "aH", "oH", "sH", "iH", "nH", "VS", "lH", "NE", "IE", "kE", "vE", "SE", "bE", "BS", "eH", "wE", "CE", "uH", "yE", "Q", "sh", "Ti", "wn", "AE", "TE", "gH", "_E", "hH", "pH", "fH", "EE", "mH", "dH", "xH", "ex", "cH", "GS", "WS", "$E", "yH", "X", "bH", "Xp", "wH", "pt", "CH", "R", "IH", "Ee", "vH", "rx", "SH", "nx", "NH", "DE", "kH", "Yp", "TH", "Hu", "EH", "Ei", "_H", "ox", "AH", "sx", "$H", "ix", "DH", "ax", "RH", "lx", "FH", "ux", "OH", "FE", "Ku", "HS", "cx", "PH", "US", "RE", "Zp", "zH", "BH", "LH", "qS", "qu", "MH", "Qn", "_r", "Ie", "VH", "D", "GH", "jl", "WH", "px", "UH", "ne", "HH", "Xr", "qH", "Dt", "KH", "_i", "jH", "OE", "XH", "Xl", "PE", "YH", "Ai", "ZH", "mx", "JH", "fx", "QH", "dx", "tq", "hx", "eq", "LE", "rq", "$i", "nq", "gx", "go", "oq", "Cr", "sq", "xx", "iq", "yx", "aq", "bx", "lq", "wx", "uq", "Cn", "cq", "Jp", "pq", "Qp", "mq", "tm", "fq", "Cx", "dq", "Ix", "hq", "vx", "gq", "Yl", "xq", "em", "yq", "ju", "bq", "rm", "wq", "ME", "Cq", "Sx", "Iq", "Di", "vq", "zE", "Sq", "Nx", "Nq", "Ar", "kq", "_e", "Tq", "It", "Eq", "kx", "_q", "Tx", "Aq", "BE", "$q", "Ri", "Dq", "Ex", "KS", "VE", "jS", "xo", "Rq", "XS", "ih", "Fq", "Oq", "Br", "Pq", "Xu", "Lq", "an", "mt", "Mq", "ve", "zq", "Mt", "Bq", "ft", "Vq", "GE", "Ya", "Gq", "_x", "Wq", "er", "Uq", "gr", "Hq", "Ax", "qq", "$r", "Kq", "Yu", "jq", "Fi", "Xq", "Oi", "Yq", "He", "Zq", "Fn", "Jq", "$x", "Qq", "Dx", "tK", "Rx", "eK", "Zl", "rK", "nm", "nK", "On", "WE", "oK", "Fx", "sK", "Ir", "iK", "Jl", "aK", "Px", "lK", "uK", "cK", "Ox", "ln", "pK", "Ms", "mK", "Lx", "fK", "ct", "dK", "om", "hK", "sm", "gK", "Dr", "xK", "Ql", "yK", "im", "bK", "Mx", "zx", "wK", "ah", "UE", "CK", "tu", "IK", "Bx", "vK", "HE", "SK", "In", "NK", "Se", "Ne", "lr", "qE", "kK", "Pi", "TK", "Vx", "EK", "Gx", "_K", "Zu", "AK", "KE", "$K", "jE", "DK", "zs", "RK", "xr", "FK", "XE", "OK", "un", "PK", "YE", "LK", "ZE", "MK", "JE", "zK", "QE", "BK", "eu", "VK", "WK", "GK", "Wx", "UK", "ru", "HK", "Ux", "qK", "t_", "KK", "e_", "jK", "r_", "jx", "Qu", "qx", "Kx", "ej", "b_", "rj", "tc", "nj", "w_", "oj", "Li", "nu", "sj", "Xx", "ij", "Rr", "aj", "am", "lj", "ur", "uj", "C_", "cj", "I_", "pj", "v_", "mj", "S_", "fj", "lm", "dj", "um", "hj", "cm", "gj", "pm", "xj", "N_", "yj", "Yx", "bj", "mm", "wj", "fm", "Cj", "dm", "Ij", "uh", "vj", "hm", "Sj", "ec", "Nj", "ou", "kj", "su", "Tj", "Za", "Ej", "gm", "_j", "cr", "Aj", "iu", "$j", "xm", "Dj", "Pn", "Rj", "rr", "Fj", "yo", "Oj", "Zx", "Pj", "Jx", "Le", "Bs", "k_", "T_", "E_", "Lj", "Qx", "Mj", "ym", "zj", "ty", "Bj", "bm", "Vj", "vr", "__", "ey", "ry", "Gj", "ny", "Wj", "Uj", "Hj", "qj", "Kj", "jj", "A_", "Yj", "Zj", "Jj", "Qj", "$_", "t6", "n0", "o0", "ch", "e6", "r6", "au", "D_", "R_", "F_", "n6", "wm", "rc", "nc", "oc", "sc", "o6", "s6", "oy", "i6", "sy", "a6", "l6", "u6", "O_", "c6", "iy", "p6", "ay", "m6", "P_", "f6", "L_", "d6", "M_", "h6", "z_", "g6", "B_", "bo", "x6", "V_", "G_", "y6", "w6", "b6", "ly", "s0", "uy", "cy", "W_", "C6", "I6", "v6", "U_", "S6", "H_", "N6", "q_", "k6", "K_", "T6", "j_", "E6", "py", "_6", "my", "A6", "$6", "X_", "D6", "Y_", "R6", "Z_", "F6", "J_", "O6", "Q_", "tA", "Xe", "P6", "Vr", "L6", "eA", "M6", "rA", "z6", "nA", "B6", "oA", "V6", "sA", "G6", "iA", "W6", "U6", "aA", "H6", "q6", "lA", "K6", "uA", "j6", "cA", "X6", "pA", "Y6", "mA", "Z6", "fA", "J6", "dA", "Q6", "hA", "tX", "eX", "lu", "i0", "rX", "nX", "oX", "Gr", "uu", "cu", "pu", "mu", "Mi", "fu", "du", "Vs", "ic", "sX", "ph", "S", "wX", "CX", "IX", "vX", "SX", "bX", "fy", "zi", "l0", "a0", "iX", "AX", "PX", "lX", "TX", "EX", "mX", "aX", "FX", "DX", "$X", "n5", "r5", "_X", "LX", "OX", "fX", "hX", "cX", "dX", "gX", "uX", "xX", "yX", "VX", "GX", "WX", "qX", "jX", "KX", "UX", "HX", "JX", "XX", "YX", "ZX", "MX", "NX", "BX", "c0", "kX", "pX", "u0", "RX", "gA", "xA", "zX", "e5", "t5", "QX", "Wr", "dy", "yA", "bA", "wA", "CA", "IA", "vA", "SA", "NA", "kA", "TA", "EA", "o5", "_A", "AA", "s5", "$A", "DA", "RA", "FA", "OA", "PA", "LA", "MA", "zA", "BA", "VA", "GA", "i5", "WA", "UA", "HA", "qA", "KA", "jA", "XA", "YA", "ZA", "JA", "QA", "t2", "e2", "r2", "n2", "i2", "o2", "s2", "a2", "l2", "u2", "c2", "p2", "m2", "f2", "d2", "h2", "a5", "g2", "x2", "hy", "p0", "y2", "l5", "b2", "w2", "u5", "C2", "I2", "v2", "S2", "N2", "k2", "T2", "E2", "_2", "A2", "$2", "D2", "m0", "R2", "F2", "c5", "p5", "O2", "P2", "L2", "M2", "z2", "B2", "V2", "G2", "W2", "U2", "H2", "q2", "K2", "j2", "X2", "Y2", "Z2", "J2", "Q2", "t$", "f0", "d0", "e$", "r$", "n$", "o$", "s$", "i$", "a$", "l$", "u$", "c$", "p$", "m$", "m5", "f$", "f5", "vn", "Ur", "z", "vt", "Cm", "mh", "Co", "eo", "g0", "Sr", "xe", "Io", "Ja", "wo", "Im", "h0", "Bi", "d5", "fh", "vo", "d$", "Vi", "gy", "Ze", "h$", "g$", "xy", "h5", "by", "yy", "hu", "x$", "y$", "b$", "w$", "C$", "vm", "Re", "v$", "cn", "x0", "dh", "I$", "Ws", "g5", "wy", "S$", "Cy", "x5", "N$", "So", "ac", "Us", "Yr", "y0", "sr", "pn", "tl", "el", "k$", "vy", "T$", "E$", "Qa", "b0", "hh", "Sm", "C0", "Nm", "No", "w0", "Sy", "lc", "mn", "_$", "A$", "Ny", "$$", "gu", "D$", "R$", "y5", "b5", "fn", "km", "xu", "Tm", "Em", "_m", "Am", "$m", "w5", "Hr", "uc", "cc", "pc", "mc", "fc", "dc", "Dm", "F$", "O$", "ke", "de", "ky", "Rm", "At", "Jt", "Fm", "L$", "gh", "I5", "xh", "Om", "ye", "Jr", "v5", "rl", "S5", "Rt", "N5", "k5", "I0", "Hs", "Ty", "T5", "ko", "Ey", "_y", "z$", "hc", "E5", "A5", "M$", "_5", "$5", "G$", "D5", "O5", "F5", "R5", "v0", "gc", "Pm", "Lm", "Mm", "zm", "B$", "Me", "V$", "ze", "W$", "M5", "H5", "U5", "q5", "K5", "G5", "j5", "X5", "L5", "Y5", "B5", "z5", "V5", "W5", "P5", "CD", "Nn", "il", "pY", "wY", "nZ", "CY", "L0", "M0", "z0", "AY", "DY", "FY", "$Y", "RY", "OY", "TY", "XY", "IY", "rY", "nY", "oY", "sY", "iY", "HY", "qY", "lY", "mY", "cY", "kY", "fY", "Y8", "bY", "hY", "rZ", "eZ", "PY", "LY", "ZY", "JY", "xD", "yD", "zY", "BY", "$0", "X8", "EY", "J8", "VY", "GY", "oZ", "QY", "tZ", "bD", "wD", "MY", "vY", "SY", "NY", "yY", "Q8", "Z8", "gY", "sZ", "xY", "KY", "aY", "WY", "UY", "tY", "dY", "jY", "eY", "YY", "uY", "_Y", "Gi", "Ay", "U$", "Z5", "nl", "$y", "S0", "Dy", "Ry", "Fy", "dn", "Oy", "hn", "yh", "Wi", "Bm", "yu", "J5", "Q5", "t8", "e8", "r8", "xc", "Vm", "n8", "Gm", "o8", "s8", "wh", "bh", "Py", "Ch", "Ih", "q$", "i8", "a8", "N0", "K$", "My", "zy", "l8", "u8", "c8", "p8", "m8", "f8", "vh", "d8", "k0", "Ly", "j$", "Sh", "Y$", "E0", "T0", "Z$", "x8", "By", "y8", "b8", "g8", "J$", "yc", "Vy", "Wm", "Ln", "w8", "Gy", "Wy", "Q$", "C8", "rD", "tD", "I8", "nD", "eD", "v8", "S8", "oD", "Uy", "Um", "Hy", "qy", "N8", "sD", "To", "_0", "k8", "A0", "iD", "aD", "T8", "E8", "lD", "_8", "A8", "Mn", "Ky", "uD", "cD", "$8", "D8", "Ui", "R8", "F8", "O8", "P8", "Qr", "jy", "Xy", "Yy", "Zy", "Jy", "Qy", "tb", "eb", "rb", "nb", "Hm", "ob", "sb", "ib", "qs", "D0", "Ks", "R0", "ab", "bu", "fD", "dD", "pD", "me", "mD", "be", "qm", "Km", "jm", "Xm", "Ym", "Zm", "wu", "Sn", "js", "Nh", "F0", "M8", "hD", "z8", "bc", "Cu", "ol", "sl", "Jm", "Qm", "lb", "tf", "Iu", "ef", "rf", "B8", "nf", "O0", "P0", "Ic", "wc", "ll", "of", "Cc", "sf", "al", "af", "V8", "ub", "vc", "lf", "Sc", "uf", "cf", "pf", "mf", "ff", "df", "hf", "gf", "xf", "ul", "yf", "bf", "wf", "Cf", "If", "vf", "kh", "G8", "Sf", "Nf", "kf", "Tf", "Th", "W8", "U8", "H8", "Ef", "_f", "q8", "Af", "hb", "gD", "cb", "$f", "Df", "pb", "Rf", "Ff", "mb", "Of", "Pf", "fb", "Lf", "Mf", "db", "zf", "Bf", "gb", "Vf", "K8", "j8", "Gf", "Wf", "ID", "gZ", "bZ", "iZ", "aZ", "uZ", "cZ", "fZ", "xZ", "dZ", "hZ", "yZ", "wZ", "pZ", "mZ", "lZ", "vD", "SD", "IZ", "CZ", "vZ", "yb", "xb", "ND", "bb", "SZ", "NZ", "kZ", "ro", "kD", "B0", "EZ", "wb", "_Z", "v", "yr", "gn", "Cb", "TD", "Eo", "Eh", "Xs", "V0", "AZ", "G0", "$Z", "W0", "DZ", "U0", "RZ", "H0", "FZ", "q0", "OZ", "K0", "PZ", "j0", "LZ", "X0", "MZ", "Y0", "zZ", "Z0", "BZ", "J0", "VZ", "Q0", "GZ", "tN", "WZ", "eN", "UZ", "rN", "HZ", "nN", "qZ", "oN", "KZ", "sN", "jZ", "_h", "Ib", "_b", "Sb", "Eb", "vb", "$b", "Tb", "Ab", "Nb", "kb", "ED", "iN", "XZ", "_D", "AD", "Db", "ae", "$D", "DD", "zn", "RD", "Uf", "Rb", "Fb", "cl", "FD", "OD", "PD", "LD", "MD", "zD", "BD", "VD", "aN", "GD", "WD", "UD", "Ob", "HD", "qD", "KD", "jD", "XD", "YD", "ZD", "JD", "QD", "tR", "eR", "lN", "Ah", "uN", "cN", "y7", "b7", "rR", "h7", "g7", "x7", "Nc", "Pb", "w7", "C7", "$h", "I7", "S7", "v7", "nR", "vR", "Kf", "Ys", "Jf", "qf", "Qf", "fR", "yR", "bR", "wR", "IR", "$N", "CR", "dR", "mR", "uR", "oR", "Lb", "vu", "sR", "mN", "iR", "Mb", "aR", "N7", "lR", "k7", "Hf", "kc", "NN", "fN", "Dh", "dN", "cR", "Bb", "pR", "pl", "vN", "Je", "CN", "bN", "wN", "zb", "IN", "yN", "xN", "gN", "Vb", "SN", "hN", "Tc", "kn", "T7", "E7", "Gb", "Rh", "hR", "Wb", "kN", "gR", "jf", "Xf", "Yf", "Fh", "TN", "EN", "Ub", "_N", "AN", "Zf", "xR", "_7", "Hb", "tt", "A7", "Su", "iw", "FN", "rd", "Kb", "RN", "ON", "Ec", "PN", "MN", "BN", "VN", "jb", "Xb", "WN", "GN", "HN", "UN", "Yb", "qN", "Zb", "KN", "jN", "Oh", "XN", "YN", "ZN", "Jb", "Qb", "Ac", "JN", "ml", "ZR", "DN", "$c", "tw", "ew", "sd", "tF", "tk", "rw", "Dc", "Rc", "Fc", "rk", "nw", "ow", "nd", "sw", "$7", "SR", "Qt", "br", "NR", "td", "qr", "kR", "_o", "TR", "Ao", "ER", "oe", "ed", "D7", "Hi", "_R", "xn", "kt", "$o", "R7", "AR", "LN", "$R", "zN", "DR", "F7", "RR", "O7", "FR", "P7", "OR", "L7", "PR", "M7", "LR", "z7", "MR", "B7", "zR", "V7", "BR", "G7", "VR", "W7", "_c", "GR", "U7", "WR", "H7", "UR", "Be", "HR", "q7", "qR", "K7", "j7", "X7", "Y7", "KR", "Z7", "J7", "Do", "od", "XR", "jR", "Q7", "YR", "QN", "JR", "Ro", "QR", "tJ", "eF", "eJ", "rF", "ek", "rJ", "nJ", "Ph", "nF", "Lh", "oF", "nk", "sF", "ok", "iF", "sJ", "sk", "aF", "ik", "lF", "ak", "uF", "Oc", "Xt", "cF", "lk", "pF", "iJ", "mF", "aJ", "fF", "lJ", "dF", "uJ", "hF", "cJ", "gF", "pJ", "xF", "mJ", "yF", "fJ", "bF", "dJ", "wF", "hJ", "CF", "gJ", "IF", "xJ", "yJ", "vF", "bJ", "SF", "id", "aw", "lw", "NF", "wJ", "kF", "CJ", "TF", "IJ", "EF", "vJ", "_F", "SJ", "AF", "NJ", "$F", "kJ", "DF", "TJ", "RF", "EJ", "FF", "_J", "OF", "qi", "PF", "Nu", "LF", "uk", "MF", "AJ", "zF", "$J", "BF", "DJ", "VF", "RJ", "GF", "FJ", "WF", "OJ", "UF", "PJ", "HF", "LJ", "qF", "MJ", "KF", "zJ", "jF", "BJ", "XF", "VJ", "YF", "ck", "ZF", "GJ", "JF", "WJ", "QF", "UJ", "tO", "eO", "rO", "nO", "fl", "oO", "HJ", "sO", "qJ", "iO", "KJ", "jJ", "XJ", "YJ", "ZJ", "JJ", "QJ", "aO", "ad", "lO", "tQ", "Mh", "zh", "uw", "eQ", "rQ", "pk", "nQ", "oQ", "uO", "Bh", "sQ", "cO", "pO", "iQ", "aQ", "mO", "lQ", "fO", "uQ", "dO", "cQ", "hO", "pQ", "gO", "mQ", "xO", "fQ", "yO", "dQ", "bO", "hQ", "wO", "gQ", "CO", "xQ", "IO", "yQ", "bQ", "vO", "wQ", "SO", "CQ", "IQ", "NO", "vQ", "kO", "SQ", "TO", "mk", "EO", "NQ", "_O", "kQ", "AO", "TQ", "$O", "EQ", "DO", "RO", "FO", "_Q", "OO", "AQ", "PO", "$Q", "LO", "DQ", "RQ", "MO", "BO", "fk", "zO", "FQ", "VO", "OQ", "PQ", "GO", "LQ", "MQ", "WO", "zQ", "BQ", "UO", "VQ", "HO", "Vh", "qO", "KO", "jO", "dk", "XO", "GQ", "cw", "WQ", "UQ", "YO", "HQ", "ZO", "qQ", "JO", "KQ", "QO", "jQ", "tP", "XQ", "eP", "YQ", "rP", "ZQ", "nP", "JQ", "oP", "QQ", "sP", "iP", "t9", "aP", "e9", "lP", "r9", "n9", "uP", "o9", "cP", "s9", "pP", "i9", "a9", "l9", "mP", "u9", "fP", "c9", "dP", "p9", "hP", "m9", "gP", "f9", "xP", "d9", "yP", "h9", "bP", "g9", "wP", "x9", "CP", "y9", "IP", "b9", "vP", "w9", "SP", "NP", "C9", "kP", "I9", "TP", "v9", "EP", "S9", "_P", "N9", "AP", "k9", "$P", "T9", "DP", "E9", "RP", "_9", "FP", "A9", "OP", "O9", "P9", "PP", "$9", "D9", "F9", "R9", "Gh", "L9", "LP", "M9", "MP", "z9", "zP", "B9", "cd", "Zs", "X9", "qh", "Ak", "WP", "gw", "yt", "yk", "wk", "Tk", "Ck", "Sk", "vk", "Nk", "bk", "hl", "ld", "UP", "Rk", "K9", "_k", "Ek", "gl", "Kh", "$k", "Fk", "GP", "Dk", "Vn", "Ok", "Pk", "Tu", "Lk", "yw", "Ik", "hw", "Y9", "Z9", "xw", "j9", "ud", "Hh", "kk", "Pc", "pw", "hk", "Bn", "G9", "V9", "ku", "Kr", "Fr", "Lc", "BP", "Wh", "Ki", "VP", "Uh", "W9", "U9", "H9", "dl", "q9", "HP", "mw", "fw", "dw", "xk", "J9", "Nt", "Ve", "Js", "Mc", "Q9", "qP", "pd", "md", "bw", "KP", "jP", "ww", "ttt", "ntt", "itt", "ett", "stt", "rtt", "ott", "ctt", "dd", "Itt", "Stt", "ktt", "Ett", "Att", "$tt", "Dtt", "XP", "Ctt", "vtt", "Ntt", "Ttt", "_tt", "Rtt", "Ftt", "YP", "ptt", "btt", "ftt", "htt", "mtt", "wtt", "dtt", "gtt", "xtt", "ytt", "att", "ltt", "utt", "zc", "hd", "gd", "xd", "zt", "JP", "Mk", "ZP", "QP", "tL", "we", "Cw", "Iw", "vw", "Sw", "Nw", "kw", "eT", "Kk", "Yk", "Wk", "qk", "Gk", "Vk", "Hk", "Uk", "Bk", "zk", "Jk", "Zk", "tT", "Qk", "Ew", "$w", "Tw", "Aw", "_w", "jk", "Xk", "jh", "Bc", "Ltt", "eL", "Dw", "rL", "nL", "oL", "sL", "iL", "aL", "lL", "uL", "cL", "pL", "mL", "fL", "dL", "hL", "gL", "xL", "yL", "bL", "wL", "CL", "IL", "vL", "SL", "NL", "kL", "TL", "EL", "_L", "AL", "Rw", "$L", "DL", "RL", "Fw", "FL", "OL", "PL", "LL", "ML", "zL", "BL", "VL", "Vc", "GL", "rT", "Qe", "WL", "Ow", "yd", "Mtt", "Pw", "HL", "qL", "UL", "ztt", "Btt", "Vtt", "tn", "pr", "KL", "nT", "jL", "XL", "YL", "Gc", "ZL", "QL", "tM", "eM", "rM", "nM", "no", "Lw", "Wtt", "Utt", "Htt", "Mw", "qtt", "Ktt", "jtt", "Xtt", "Eu", "Ytt", "oM", "sM", "oTe", "bd", "oo", "ji", "Fo", "tr", "iM", "Tn", "aM", "oT", "sT", "Ztt", "lM", "iT", "aT", "Jtt", "uM", "Oo", "Ct", "le", "xl", "wd", "lT", "Xh", "cM", "Yh", "pM", "mM", "st", "fM", "Zh", "zw", "tet", "Gn", "Bw", "eet", "Vw", "_u", "dM", "Wc", "hM", "Fe", "gM", "uT", "Uc", "ret", "xM", "yM", "net", "bM", "oet", "set", "wM", "iet", "aet", "CM", "IM", "uet", "vM", "Gw", "Ww", "Uw", "SM", "cet", "NM", "pet", "kM", "Hw", "qw", "TM", "EM", "Kw", "met", "_M", "fet", "AM", "det", "het", "$M", "get", "xet", "DM", "yet", "bet", "RM", "wet", "Cet", "Iet", "FM", "vet", "Net", "OM", "Qs", "Au", "ket", "PM", "Tet", "LM", "jw", "Xw", "Eet", "MM", "_et", "zM", "Aet", "BM", "Yw", "Zw", "$et", "VM", "Jw", "Det", "cT", "Qw", "Ret", "ti", "GM", "Fet", "WM", "Oet", "UM", "Pet", "HM", "Let", "pT", "qM", "yl", "KM", "Met", "jM", "mT", "XM", "YM", "zet", "ZM", "tC", "eC", "Bet", "JM", "rC", "QM", "Vet", "tz", "nC", "sC", "oC", "Hc", "ez", "Cd", "Get", "fT", "rz", "Id", "iC", "vd", "aC", "lC", "uC", "cC", "Wet", "nz", "pC", "mC", "fC", "dC", "Uet", "oz", "Het", "sz", "qet", "iz", "Ket", "az", "jet", "lz", "Xet", "Yet", "uz", "Zet", "Jet", "cz", "hC", "Qet", "pz", "qc", "Jh", "mz", "fz", "gC", "trt", "dz", "ert", "hz", "rrt", "gz", "xC", "nrt", "xz", "Sd", "Nd", "ort", "yz", "yC", "bC", "srt", "bz", "irt", "wz", "wC", "art", "Cz", "CC", "lrt", "Iz", "urt", "vz", "crt", "prt", "mrt", "Sz", "frt", "drt", "hrt", "Nz", "grt", "xrt", "yrt", "kz", "brt", "wrt", "Tz", "Crt", "Irt", "dT", "Ez", "IC", "_z", "Az", "vrt", "$z", "Qh", "vC", "Srt", "Dz", "SC", "bl", "Rz", "NC", "Fz", "Oz", "Nrt", "Pz", "krt", "Trt", "Ert", "Lz", "kC", "TC", "Mz", "_rt", "kd", "hT", "Art", "zz", "$rt", "Bz", "EC", "Drt", "Vz", "_C", "Rrt", "gT", "Gz", "Frt", "Ort", "Prt", "Wz", "Lrt", "Mrt", "zrt", "Uz", "Brt", "Hz", "Vrt", "Grt", "qz", "Wrt", "Urt", "Kz", "Hrt", "qrt", "jz", "Krt", "jrt", "Xrt", "Xz", "Yrt", "Zrt", "Jrt", "Yz", "Qrt", "Zz", "tnt", "ent", "rnt", "Jz", "nnt", "ont", "Qz", "snt", "int", "ant", "t3", "lnt", "unt", "e3", "cnt", "pnt", "mnt", "r3", "AC", "$C", "fnt", "n3", "DC", "dnt", "o3", "s3", "xT", "i3", "hnt", "gnt", "xnt", "a3", "ynt", "l3", "bnt", "u3", "RC", "FC", "wnt", "c3", "Cnt", "p3", "m3", "f3", "d3", "h3", "Int", "g3", "vnt", "Snt", "Nnt", "x3", "OC", "PC", "knt", "y3", "Tnt", "Ent", "_nt", "b3", "LC", "Ant", "$nt", "yT", "w3", "C3", "bT", "I3", "wT", "v3", "Dnt", "S3", "Rnt", "Fnt", "Ont", "N3", "Pnt", "Lnt", "k3", "Mnt", "znt", "T3", "Bnt", "Vnt", "E3", "MC", "Gnt", "_3", "tg", "A3", "$3", "D3", "Wnt", "R3", "zC", "BC", "CT", "F3", "Unt", "Hnt", "qnt", "O3", "Knt", "P3", "jnt", "L3", "Xnt", "M3", "IT", "z3", "Ynt", "Znt", "B3", "Jnt", "Qnt", "tot", "V3", "eot", "rot", "not", "G3", "VC", "GC", "oot", "W3", "WC", "sot", "U3", "UC", "HC", "iot", "H3", "qC", "aot", "q3", "KC", "jC", "lot", "K3", "XC", "j3", "uot", "cot", "X3", "pot", "mot", "Y3", "Td", "fot", "Z3", "YC", "dot", "J3", "ZC", "hot", "Q3", "got", "xot", "tB", "yot", "bot", "wot", "eB", "Cot", "Iot", "rB", "vot", "Sot", "nB", "Not", "kot", "oB", "Tot", "Eot", "sB", "_ot", "iB", "Aot", "aB", "$ot", "lB", "Dot", "uB", "Rot", "cB", "Fot", "pB", "Oot", "mB", "fB", "Pot", "dB", "Lot", "Mot", "hB", "gB", "zot", "xB", "Bot", "yB", "JC", "Vot", "bB", "Got", "wB", "Wot", "CB", "Uot", "IB", "Hot", "qot", "vB", "Kot", "jot", "SB", "QC", "Xot", "vT", "NB", "tI", "eI", "Kc", "kB", "Yot", "TB", "rI", "Zot", "EB", "Jot", "_B", "Qot", "AB", "nI", "tst", "$B", "est", "Ht", "$u", "DB", "rst", "nst", "RB", "se", "FB", "ue", "ost", "OB", "PB", "sst", "ist", "LB", "jc", "MB", "zB", "ast", "so", "ust", "lst", "BB", "yn", "VB", "cst", "pst", "GB", "WB", "mst", "fst", "UB", "HB", "dst", "hst", "qB", "KB", "gst", "xst", "jB", "ir", "XB", "YB", "yst", "bst", "ZB", "Po", "wst", "Cst", "Ist", "JB", "vst", "QB", "ei", "tV", "eV", "rV", "Sst", "Nst", "nV", "ST", "oV", "sV", "kst", "Tst", "iV", "aV", "Est", "_st", "lV", "uV", "cV", "NT", "pV", "Ast", "$st", "mV", "fV", "Dst", "Rst", "dV", "hV", "Fst", "Ost", "gV", "xV", "Pst", "Lst", "yV", "bV", "Mst", "zst", "wV", "CV", "Bst", "IV", "vV", "oI", "SV", "kT", "NV", "kV", "Vst", "Gst", "TV", "EV", "Wst", "_V", "AV", "Ust", "Hst", "$V", "DV", "qst", "Kst", "RV", "FV", "jst", "Xst", "OV", "PV", "Yst", "Zst", "LV", "MV", "Jst", "Qst", "zV", "tit", "BV", "eit", "VV", "GV", "rit", "nit", "WV", "oit", "UV", "sit", "HV", "qV", "iit", "KV", "jV", "ait", "XV", "lit", "YV", "ZV", "uit", "cit", "JV", "pit", "QV", "tG", "mit", "fit", "eG", "rG", "dit", "hit", "nG", "oG", "git", "xit", "sG", "yit", "iG", "TT", "aG", "bit", "wit", "lG", "Cit", "uG", "cG", "Ed", "pG", "Iit", "vit", "mG", "fG", "Sit", "Nit", "dG", "hG", "kit", "Tit", "gG", "Eit", "xG", "yG", "_it", "Ait", "bG", "$it", "wG", "Dit", "CG", "IG", "Rit", "Fit", "sI", "Oit", "vG", "SG", "Pit", "Lit", "NG", "kG", "Mit", "zit", "TG", "Bit", "EG", "Vit", "_G", "AG", "$G", "DG", "Git", "Wit", "RG", "FG", "Uit", "Hit", "OG", "PG", "qit", "Kit", "LG", "MG", "jit", "Xit", "zG", "BG", "VG", "GG", "Yit", "Zit", "WG", "UG", "Jit", "Qit", "HG", "qG", "tat", "eat", "KG", "jG", "XG", "rat", "nat", "YG", "oat", "ZG", "JG", "sat", "iat", "QG", "tW", "aat", "lat", "eW", "rW", "iI", "aI", "uat", "nW", "cat", "oW", "pat", "sW", "iW", "aW", "mat", "lW", "uW", "fat", "dat", "cW", "pW", "hat", "gat", "mW", "xat", "fW", "yat", "dW", "bat", "hW", "wat", "gW", "xW", "Cat", "Iat", "yW", "bW", "wW", "CW", "vat", "Sat", "IW", "vW", "Nat", "kat", "SW", "NW", "Tat", "Eat", "kW", "_at", "TW", "Aat", "EW", "$at", "ET", "FT", "MW", "OT", "PW", "Dat", "sg", "BW", "RT", "Fat", "Rat", "LW", "cI", "ng", "zW", "rg", "PT", "og", "Oat", "Pat", "Lat", "Mat", "zat", "Bat", "Vat", "Gat", "Wat", "Uat", "Hat", "qat", "Kat", "jat", "Xat", "Yat", "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", "go", "avg_g", "avg_b", "avg_rgb", "ne", "ct", "padToSquare", "imgTensor", "isCenterImage", "B", "height", "width", "dimDiff", "paddingAmount", "paddingAxis", "createPaddingTensor", "paddingAmountLocal", "paddingTensorShape", "go", "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", "Jg", "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", "gr", "padToSquare", "lu", "Jg", "imageToSquare", "rr", "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", "hm", "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", "Er", "matchDimensions", "input", "reference", "useMediaDimensions", "width", "height", "getMediaDimensions", "NeuralNetwork", "name", "paramPath", "obj", "objProp", "tensor", "param", "Ha", "path", "variable", "wr", "throwOnRedispose", "flat", "arr", "weightsOrUrl", "uri", "weightMap", "loadWeightMap", "filePath", "readFile", "env", "manifestUri", "modelBaseUri", "getModelUris", "fetchWeightsFromDisk", "filePaths", "fp", "buf", "loadWeights", "Er", "manifest", "paramMappings", "params", "weights", "result", "res", "Ft", "depthwiseSeparableConv", "x", "params", "stride", "B", "out", "pm", "X", "denseBlock3", "x", "denseBlockParams", "isFirstLayer", "B", "out1", "Rr", "X", "Cn", "depthwiseSeparableConv", "out2", "in3", "out3", "denseBlock4", "isScaleDown", "in4", "out4", "convLayer", "x", "params", "padding", "withRelu", "B", "out", "X", "Cn", "Rr", "disposeUnusedWeightTensors", "weightMap", "paramMappings", "path", "pm", "extractConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "filterSize", "mappedPrefix", "filters", "k_", "bias", "Le", "extractFCParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "fc_weights", "Bs", "fc_bias", "Le", "SeparableConvParams", "depthwise_filter", "pointwise_filter", "bias", "extractSeparableConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "depthwise_filter", "k_", "pointwise_filter", "bias", "Le", "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", "jl", "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", "ou", "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", "radians", "a1", "a2", "b1", "b2", "degrees", "theta", "angle", "pt", "bottom", "prev", "cur", "top", "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", "Cn", "reductionBlock", "isActivateInput", "out", "Rr", "depthwiseSeparableConv", "tu", "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", "jl", "age", "fullyConnectedLayer", "gender", "ou", "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", "rr", "go", "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", "jl", "toNetInput", "weightMap", "extractParamsFromWeightMapTiny", "weights", "extractParamsTiny", "FaceLandmark68TinyNet", "FaceLandmark68NetBase", "faceFeatureExtractor", "TinyFaceFeatureExtractor", "FaceLandmarkNet", "FaceLandmark68Net", "scale", "x", "params", "X", "R", "convLayer", "x", "params", "strides", "withRelu", "padding", "filters", "bias", "out", "Cn", "X", "scale", "Rr", "conv", "convNoRelu", "convDown", "extractorsFactory", "extractWeights", "paramMappings", "extractFilterValues", "numFilterValues", "numFilters", "filterSize", "weights", "depth", "isFloat", "B", "Ot", "k_", "extractConvParams", "mappedPrefix", "filters", "bias", "Le", "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", "Bs", "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", "Rr", "residualDown", "convDown", "pooled", "jl", "zeros", "Ne", "isPad", "padShapeX", "zerosW", "ne", "padShapeY", "zerosH", "FaceRecognitionNet", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "convDown", "tu", "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", "k_", "batch_norm_scale", "Le", "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", "Zg", "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", "Cn", "X", "Cr", "epsilon", "depthwiseConvLayer", "x", "params", "strides", "B", "out", "Di", "Ai", "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", "R", "er", "add0_out", "div1_out", "add1_out", "rr", "outputLayer", "boxPredictions", "classPredictions", "params", "B", "batchSize", "boxes", "D", "$r", "scoresAndClasses", "Xr", "Dt", "scores", "boxesByBatch", "scoresByBatch", "boxPredictionLayer", "x", "params", "B", "batchSize", "boxPredictionEncoding", "D", "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", "R", "mt", "X", "Rr", "ct", "convWithBatchNorm", "x", "params", "B", "out", "un", "Cn", "ct", "R", "X", "leaky", "depthwiseSeparableConv", "x", "params", "B", "out", "un", "pm", "X", "leaky", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractBatchNormParams", "size", "mappedPrefix", "sub", "Le", "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", "tu", "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", "ou", "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 935f828..1a433f6 100644 --- a/dist/face-api.js +++ b/dist/face-api.js @@ -4,64 +4,64 @@ author: ' */ -"use strict";var faceapi=(()=>{var Ey=Object.defineProperty;var FF=Object.getOwnPropertyDescriptor;var DF=Object.getOwnPropertyNames;var RF=Object.prototype.hasOwnProperty;var MF=(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 Nh=(e,t)=>{for(var n in t)Ey(e,n,{get:t[n],enumerable:!0})},PF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of DF(t))!RF.call(e,r)&&r!==n&&Ey(e,r,{get:()=>t[r],enumerable:!(a=FF(t,r))||a.enumerable});return e};var OF=e=>PF(Ey({},"__esModule",{value:!0}),e);var Hce={};Nh(Hce,{AgeGenderNet:()=>Rd,BoundingBox:()=>Mo,Box:()=>lt,ComposableTask:()=>ka,ComputeAllFaceDescriptorsTask:()=>jr,ComputeFaceDescriptorsTaskBase:()=>Ld,ComputeSingleFaceDescriptorTask:()=>qr,DetectAllFaceLandmarksTask:()=>Wd,DetectAllFacesTask:()=>Ep,DetectFaceLandmarksTaskBase:()=>zd,DetectFacesTaskBase:()=>Vd,DetectSingleFaceLandmarksTask:()=>Bd,DetectSingleFaceTask:()=>Ud,Dimensions:()=>bn,FACE_EXPRESSION_LABELS:()=>q1,FaceDetection:()=>xt,FaceDetectionNet:()=>ek,FaceExpressionNet:()=>Dd,FaceExpressions:()=>Ur,FaceLandmark68Net:()=>Go,FaceLandmark68TinyNet:()=>Md,FaceLandmarkNet:()=>Z1,FaceLandmarks:()=>ra,FaceLandmarks5:()=>D1,FaceLandmarks68:()=>Oo,FaceMatch:()=>fp,FaceMatcher:()=>Gd,FaceRecognitionNet:()=>Ho,Gender:()=>Lg,LabeledBox:()=>gp,LabeledFaceDescriptors:()=>wr,NetInput:()=>Ir,NeuralNetwork:()=>on,ObjectDetection:()=>Wr,Point:()=>Pe,PredictedBox:()=>R1,Rect:()=>Po,SsdMobilenetv1:()=>Rs,SsdMobilenetv1Options:()=>wa,TinyFaceDetector:()=>Yo,TinyFaceDetectorOptions:()=>Od,TinyYolov2:()=>Ko,TinyYolov2Options:()=>rr,allFaces:()=>Vce,allFacesSsdMobilenetv1:()=>OA,allFacesTinyYolov2:()=>Bce,awaitMediaLoaded:()=>B1,bufferToImage:()=>V1,computeFaceDescriptor:()=>Cce,createCanvas:()=>Bo,createCanvasFromMedia:()=>Ed,createFaceDetectionNet:()=>vce,createFaceRecognitionNet:()=>uce,createSsdMobilenetv1:()=>kA,createTinyFaceDetector:()=>Uce,createTinyYolov2:()=>Ice,detectAllFaces:()=>qg,detectFaceLandmarks:()=>MA,detectFaceLandmarksTiny:()=>Nce,detectLandmarks:()=>zce,detectSingleFace:()=>Wce,draw:()=>X1,env:()=>et,euclideanDistance:()=>ak,extendWithAge:()=>Vg,extendWithFaceDescriptor:()=>Bg,extendWithFaceDetection:()=>Lo,extendWithFaceExpressions:()=>Rg,extendWithFaceLandmarks:()=>Sp,extendWithGender:()=>Ug,extractFaceTensors:()=>xp,extractFaces:()=>yp,fetchImage:()=>Xpe,fetchJson:()=>H1,fetchNetWeights:()=>Ype,fetchOrThrow:()=>Vr,fetchVideo:()=>Zpe,getContext2dOrThrow:()=>Kn,getMediaDimensions:()=>Wo,imageTensorToCanvas:()=>U1,imageToSquare:()=>G1,inverseSigmoid:()=>Vpe,iou:()=>E1,isMediaElement:()=>Ng,isMediaLoaded:()=>_d,isWithAge:()=>pce,isWithFaceDetection:()=>kr,isWithFaceExpressions:()=>K1,isWithFaceLandmarks:()=>Uo,isWithGender:()=>cce,loadAgeGenderModel:()=>Pce,loadFaceDetectionModel:()=>Oce,loadFaceExpressionModel:()=>Mce,loadFaceLandmarkModel:()=>Fce,loadFaceLandmarkTinyModel:()=>Dce,loadFaceRecognitionModel:()=>Rce,loadSsdMobilenetv1Model:()=>PA,loadTinyFaceDetectorModel:()=>$ce,loadTinyYolov2Model:()=>Ace,loadWeightMap:()=>j1,locateFaces:()=>Lce,matchDimensions:()=>Jpe,minBbox:()=>$1,nets:()=>tt,nonMaxSuppression:()=>A1,normalize:()=>nr,padToSquare:()=>F1,predictAgeAndGender:()=>Ece,recognizeFaceExpressions:()=>_ce,resizeResults:()=>LA,resolveInput:()=>zo,shuffleArray:()=>Bpe,sigmoid:()=>Sd,ssdMobilenetv1:()=>RA,tf:()=>Le,tinyFaceDetector:()=>Tce,tinyYolov2:()=>Sce,toNetInput:()=>vt,utils:()=>_1,validateConfig:()=>tk,version:()=>Gce});var Le={};Nh(Le,{Abs:()=>Ul,Acos:()=>Gl,Acosh:()=>Hl,AdadeltaOptimizer:()=>Vf,AdagradOptimizer:()=>Uf,AdamOptimizer:()=>Gf,AdamaxOptimizer:()=>Hf,Add:()=>xs,AddN:()=>Ti,All:()=>jl,Any:()=>ql,ArgMax:()=>Si,ArgMin:()=>Sc,Asin:()=>Kl,Asinh:()=>Xl,Atan:()=>Yl,Atan2:()=>Jl,Atanh:()=>Zl,AvgPool:()=>Ni,AvgPool3D:()=>Nc,AvgPool3DGrad:()=>Dm,AvgPoolGrad:()=>Fm,BackendWasm:()=>Z$,BatchMatMul:()=>Ci,BatchToSpaceND:()=>Ql,Bincount:()=>Rm,BroadcastArgs:()=>Mm,BroadcastTo:()=>hT,Callback:()=>_2,CallbackList:()=>FN,Cast:()=>_i,Ceil:()=>Ei,ClipByValue:()=>vs,Complex:()=>Pm,ComplexAbs:()=>Cc,Concat:()=>eu,Conv2D:()=>$i,Conv2DBackpropFilter:()=>Om,Conv2DBackpropInput:()=>Ai,Conv3D:()=>_c,Conv3DBackpropFilterV2:()=>Lm,Conv3DBackpropInputV2:()=>zm,Cos:()=>Fi,Cosh:()=>Di,CropAndResize:()=>nu,Cumprod:()=>tu,Cumsum:()=>Ri,CustomCallback:()=>RN,DataStorage:()=>Em,DenseBincount:()=>Wm,DepthToSpace:()=>au,DepthwiseConv2dNative:()=>Mi,DepthwiseConv2dNativeBackpropFilter:()=>Bm,DepthwiseConv2dNativeBackpropInput:()=>Vm,Diag:()=>Um,Dilation2D:()=>Ec,Dilation2DBackpropFilter:()=>em,Dilation2DBackpropInput:()=>Qh,ENV:()=>Xx,EarlyStopping:()=>E2,Einsum:()=>Gm,Elu:()=>Oi,EluGrad:()=>Hm,Environment:()=>cT,Equal:()=>su,Erf:()=>ru,Exp:()=>Li,ExpandDims:()=>iu,Expm1:()=>ou,FFT:()=>jm,Fill:()=>$c,FlipLeftRight:()=>lu,Floor:()=>zi,FloorDiv:()=>Wi,FromPixels:()=>tm,FusedBatchNorm:()=>Bi,FusedConv2D:()=>ui,FusedDepthwiseConv2D:()=>pi,GPGPUContext:()=>Kh,GatherNd:()=>pu,GatherV2:()=>uu,GraphModel:()=>H0,Greater:()=>cu,GreaterEqual:()=>Vi,History:()=>DN,IFFT:()=>qm,Identity:()=>Ui,Imag:()=>Km,InputSpec:()=>zt,IsFinite:()=>du,IsInf:()=>hu,IsNan:()=>mu,KernelBackend:()=>Tc,LRN:()=>Ac,LRNGrad:()=>Ym,LayerVariable:()=>SN,LayersModel:()=>Fr,LeakyRelu:()=>Gi,Less:()=>fu,LessEqual:()=>gu,LinSpace:()=>Xm,Log:()=>Hi,Log1p:()=>bu,LogSoftmax:()=>fT,LogicalAnd:()=>yu,LogicalNot:()=>xu,LogicalOr:()=>vu,LogicalXor:()=>mT,LowerBound:()=>CD,MathBackendWebGL:()=>gg,Max:()=>ji,MaxPool:()=>Ki,MaxPool3D:()=>Fc,MaxPool3DGrad:()=>Jm,MaxPoolGrad:()=>Zm,MaxPoolWithArgmax:()=>Qm,Maximum:()=>qi,Mean:()=>Xi,Min:()=>Yi,Minimum:()=>Zi,MirrorPad:()=>Ji,Mod:()=>wu,MomentumOptimizer:()=>jf,Multinomial:()=>ef,Multiply:()=>Qi,Neg:()=>ku,NonMaxSuppressionV3:()=>Tu,NonMaxSuppressionV4:()=>Su,NonMaxSuppressionV5:()=>Nu,NotEqual:()=>Iu,OP_SCOPE_SUFFIX:()=>Qx,OneHot:()=>eo,OnesLike:()=>Cu,Optimizer:()=>Pr,OptimizerConstructors:()=>Qr,Pack:()=>_u,PadV2:()=>to,Pool:()=>_D,Pow:()=>no,Prelu:()=>ao,Prod:()=>ro,RMSPropOptimizer:()=>qf,RNN:()=>xr,RaggedTensorToTensor:()=>tf,Range:()=>Dc,Rank:()=>qy,Real:()=>nf,RealDiv:()=>Pi,Reciprocal:()=>Eu,Reduction:()=>In,Relu:()=>so,Relu6:()=>lo,Reshape:()=>$u,ResizeBilinear:()=>oo,ResizeBilinearGrad:()=>rf,ResizeNearestNeighbor:()=>io,ResizeNearestNeighborGrad:()=>af,Reverse:()=>uo,RotateWithOffset:()=>ju,Round:()=>po,Rsqrt:()=>co,SGDOptimizer:()=>od,ScatterNd:()=>Au,SearchSorted:()=>sf,Select:()=>Fu,Selu:()=>Du,Sequential:()=>Ml,Sigmoid:()=>mo,Sign:()=>Pu,Sin:()=>ho,Sinh:()=>Mu,Slice:()=>Ru,Softmax:()=>bo,Softplus:()=>Ou,SpaceToBatchND:()=>Lu,SparseFillEmptyRows:()=>Rc,SparseReshape:()=>Wu,SparseSegmentMean:()=>Mc,SparseSegmentSum:()=>Pc,SparseToDense:()=>of,SplitV:()=>zu,Sqrt:()=>fo,Square:()=>Oc,SquaredDifference:()=>yo,Step:()=>ks,StridedSlice:()=>Bu,StringNGrams:()=>Lc,StringSplit:()=>zc,StringToHashBucketFast:()=>Wc,Sub:()=>xo,Sum:()=>go,SymbolicTensor:()=>ja,Tan:()=>vo,Tanh:()=>wo,Tensor:()=>$e,TensorBuffer:()=>jt,Tile:()=>ws,TopK:()=>Vu,Transform:()=>Uu,Transpose:()=>Ar,Unique:()=>lf,Unpack:()=>Gu,UnsortedSegmentSum:()=>Bc,UpperBound:()=>ED,Variable:()=>us,ZerosLike:()=>Hu,_FusedMatMul:()=>li,abs:()=>Lt,acos:()=>hv,acosh:()=>mv,add:()=>Q,addN:()=>rS,all:()=>hf,any:()=>dc,argMax:()=>hi,argMin:()=>fv,asin:()=>gv,asinh:()=>bv,atan:()=>yv,atan2:()=>xv,atanh:()=>vv,avgPool:()=>ba,avgPool3d:()=>kv,backend:()=>WT,backend_util:()=>C,basicLSTMCell:()=>lS,batchNorm:()=>Ss,batchNorm2d:()=>Iv,batchNorm3d:()=>Tv,batchNorm4d:()=>Sv,batchToSpaceND:()=>Yc,bincount:()=>Nv,booleanMaskAsync:()=>US,broadcastArgs:()=>uS,broadcastTo:()=>ri,broadcast_util:()=>qu,browser:()=>ko,buffer:()=>ze,callbacks:()=>jH,cast:()=>le,ceil:()=>Cv,clipByValue:()=>tn,clone:()=>cr,complex:()=>Dr,concat:()=>Qe,concat1d:()=>_v,concat2d:()=>Ev,concat3d:()=>$v,concat4d:()=>Av,constraints:()=>_N,conv1d:()=>mf,conv2d:()=>Dt,conv2dTranspose:()=>ff,conv3d:()=>Dv,conv3dTranspose:()=>Rv,copyRegisteredKernels:()=>DD,cos:()=>Zc,cosh:()=>gf,cosineWindow:()=>Of,cumprod:()=>hc,cumsum:()=>bf,customGrad:()=>mr,data:()=>Q2,denseBincount:()=>cS,deprecationWarn:()=>iv,depthToSpace:()=>Mv,depthwiseConv2d:()=>Ns,deregisterOp:()=>XH,device_util:()=>Hc,diag:()=>dS,dilation2d:()=>Pv,disableDeprecationWarnings:()=>oM,dispose:()=>Me,disposeVariables:()=>lM,div:()=>fe,divNoNan:()=>Ov,dot:()=>Lv,dropout:()=>cw,einsum:()=>hS,elu:()=>Ku,enableDebugMode:()=>iM,enableProdMode:()=>sM,enclosingPowerOfTwo:()=>dw,engine:()=>ir,env:()=>X,equal:()=>ea,erf:()=>zv,euclideanNorm:()=>Vv,exp:()=>gn,expandDims:()=>mn,expm1:()=>Uv,eye:()=>yf,fft:()=>sd,fill:()=>$n,findBackend:()=>fM,findBackendFactory:()=>gM,floor:()=>Yu,floorDiv:()=>df,forceHalfFloat:()=>gE,fused:()=>Fl,gather:()=>Zu,gatherND:()=>qS,gather_util:()=>ov,getBackend:()=>hM,getGradient:()=>Hy,getKernel:()=>nm,getKernelsForBackend:()=>am,getThreadsCount:()=>_pe,gpgpu_util:()=>K_,grad:()=>WO,grads:()=>BO,greater:()=>jn,greaterEqual:()=>Cs,ifft:()=>Al,imag:()=>qc,image:()=>Er,inTopKAsync:()=>KS,initializers:()=>EN,input:()=>KN,io:()=>Nn,irfft:()=>Df,isFinite:()=>Gv,isInf:()=>Hv,isNaN:()=>jv,keep:()=>Qt,kernel_impls:()=>yr,layers:()=>$N,leakyRelu:()=>Jc,less:()=>xf,lessEqual:()=>_s,linalg:()=>fw,linspace:()=>yS,loadGraphModel:()=>J6,loadGraphModelSync:()=>Q6,loadLayersModel:()=>nG,localResponseNormalization:()=>qv,log:()=>ta,log1p:()=>Qc,logSigmoid:()=>Kv,logSoftmax:()=>wf,logSumExp:()=>kf,logicalAnd:()=>$a,logicalNot:()=>ed,logicalOr:()=>If,logicalXor:()=>Xv,losses:()=>iN,lowerBound:()=>vS,matMul:()=>Re,math:()=>zT,max:()=>_a,maxPool:()=>Mt,maxPool3d:()=>Yv,maxPoolWithArgmax:()=>wS,maximum:()=>br,mean:()=>_t,memory:()=>im,meshgrid:()=>kS,metrics:()=>S2,min:()=>mc,minimum:()=>Ju,mirrorPad:()=>Zv,mod:()=>Jv,model:()=>eG,models:()=>N2,moments:()=>td,movingAverage:()=>GS,mul:()=>W,multiRNNCell:()=>IS,multinomial:()=>TS,neg:()=>kt,nextFrame:()=>gw,norm:()=>Xu,notEqual:()=>gi,oneHot:()=>Cl,ones:()=>Qn,onesLike:()=>na,op:()=>z,outerProduct:()=>SS,pad:()=>ya,pad1d:()=>NS,pad2d:()=>CS,pad3d:()=>_S,pad4d:()=>ES,pool:()=>Qv,pow:()=>Rr,prelu:()=>ad,print:()=>av,prod:()=>ew,profile:()=>uM,raggedTensorToTensor:()=>$S,rand:()=>AS,randomGamma:()=>FS,randomNormal:()=>Sf,randomStandardNormal:()=>DS,randomUniform:()=>Qu,range:()=>El,ready:()=>dM,real:()=>_l,reciprocal:()=>aw,registerBackend:()=>cf,registerCallbackConstructor:()=>aG,registerGradient:()=>gT,registerKernel:()=>Vc,registerOp:()=>KH,regularizers:()=>C2,relu:()=>Xe,relu6:()=>Nf,removeBackend:()=>mM,reshape:()=>B,reverse:()=>ga,reverse1d:()=>RS,reverse2d:()=>MS,reverse3d:()=>PS,reverse4d:()=>OS,rfft:()=>id,round:()=>Cf,rsqrt:()=>_f,scalar:()=>ke,scatterND:()=>HS,scatter_util:()=>lv,searchSorted:()=>Tf,selu:()=>Ef,separableConv2d:()=>Es,sequential:()=>tG,serialization:()=>se,setBackend:()=>cM,setPlatform:()=>bM,setThreadsCount:()=>Cpe,setWasmPath:()=>Spe,setWasmPaths:()=>Npe,setWebGLContext:()=>y_,setdiff1dAsync:()=>LS,sigmoid:()=>ha,sign:()=>rw,signal:()=>sN,sin:()=>$f,sinh:()=>Af,slice:()=>He,slice1d:()=>rd,slice2d:()=>Ff,slice3d:()=>To,slice4d:()=>$l,slice_util:()=>qt,softmax:()=>Qa,softplus:()=>Io,spaceToBatchND:()=>nd,sparse:()=>oN,sparseToDense:()=>jS,spectral:()=>rN,split:()=>Vn,sqrt:()=>un,square:()=>ut,squaredDifference:()=>Rf,squeeze:()=>$s,stack:()=>Rt,step:()=>So,stridedSlice:()=>sw,string:()=>lN,sub:()=>ce,sum:()=>ye,sumOutType:()=>pf,tan:()=>iw,tanh:()=>mi,tensor:()=>Bn,tensor1d:()=>Ke,tensor2d:()=>Ea,tensor3d:()=>Kc,tensor4d:()=>Fa,tensor5d:()=>zS,tensor6d:()=>WS,tensor_util:()=>qa,test_util:()=>tS,tidy:()=>O,tile:()=>Wn,time:()=>pM,topk:()=>ow,train:()=>Xs,transpose:()=>Ae,truncatedNormal:()=>Mf,unique:()=>lw,unregisterGradient:()=>FD,unregisterKernel:()=>AD,unsortedSegmentSum:()=>Pf,unstack:()=>mt,upcastType:()=>ma,upperBound:()=>BS,util:()=>v,valueAndGrad:()=>VO,valueAndGrads:()=>UO,variable:()=>uw,variableGrads:()=>xS,version:()=>zpe,version_converter:()=>tj,version_core:()=>XM,version_layers:()=>Lw,version_wasm:()=>Epe,version_webgl:()=>vJ,webgl:()=>wJ,webgl_util:()=>b_,where:()=>fn,whereAsync:()=>pw,zeros:()=>It,zerosLike:()=>qe});var LF=Object.create,Gx=Object.defineProperty,zF=Object.getOwnPropertyDescriptor,WF=Object.getOwnPropertyNames,BF=Object.getPrototypeOf,VF=Object.prototype.hasOwnProperty,Bt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Fe=(e,t)=>{for(var n in t)Gx(e,n,{get:t[n],enumerable:!0})},UF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of WF(t))!VF.call(e,r)&&r!==n&&Gx(e,r,{get:()=>t[r],enumerable:!(a=zF(t,r))||a.enumerable});return e},bs=(e,t,n)=>(n=e!=null?LF(BF(e)):{},UF(t||!e||!e.__esModule?Gx(n,"default",{value:e,enumerable:!0}):n,e)),GF=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(T){}function a(T,P,U){this.low=T|0,this.high=P|0,this.unsigned=!!U}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0});function r(T){return(T&&T.__isLong__)===!0}a.isLong=r;var s={},i={};function o(T,P){var U,j,q;return P?(T>>>=0,(q=0<=T&&T<256)&&(j=i[T],j)?j:(U=u(T,(T|0)<0?-1:0,!0),q&&(i[T]=U),U)):(T|=0,(q=-128<=T&&T<128)&&(j=s[T],j)?j:(U=u(T,T<0?-1:0,!1),q&&(s[T]=U),U))}a.fromInt=o;function l(T,P){if(isNaN(T))return P?w:x;if(P){if(T<0)return w;if(T>=g)return A}else{if(T<=-b)return M;if(T+1>=b)return $}return T<0?l(-T,P).neg():u(T%f|0,T/f|0,P)}a.fromNumber=l;function u(T,P,U){return new a(T,P,U)}a.fromBits=u;var p=Math.pow;function d(T,P,U){if(T.length===0)throw Error("empty string");if(T==="NaN"||T==="Infinity"||T==="+Infinity"||T==="-Infinity")return x;if(typeof P=="number"?(U=P,P=!1):P=!!P,U=U||10,U<2||360)throw Error("interior hyphen");if(j===0)return d(T.substring(1),P,U).neg();for(var q=l(p(U,8)),K=x,Y=0;Y>>0:this.low},D.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},D.toString=function(T){if(T=T||10,T<2||36>>0,J=re.toString(T);if(K=te,K.isZero())return J+Y;for(;J.length<6;)J="0"+J;Y=""+J+Y}},D.getHighBits=function(){return this.high},D.getHighBitsUnsigned=function(){return this.high>>>0},D.getLowBits=function(){return this.low},D.getLowBitsUnsigned=function(){return this.low>>>0},D.getNumBitsAbs=function(){if(this.isNegative())return this.eq(M)?64:this.neg().getNumBitsAbs();for(var T=this.high!=0?this.high:this.low,P=31;P>0&&(T&1<=0},D.isOdd=function(){return(this.low&1)===1},D.isEven=function(){return(this.low&1)===0},D.equals=function(T){return r(T)||(T=c(T)),this.unsigned!==T.unsigned&&this.high>>>31===1&&T.high>>>31===1?!1:this.high===T.high&&this.low===T.low},D.eq=D.equals,D.notEquals=function(T){return!this.eq(T)},D.neq=D.notEquals,D.ne=D.notEquals,D.lessThan=function(T){return this.comp(T)<0},D.lt=D.lessThan,D.lessThanOrEqual=function(T){return this.comp(T)<=0},D.lte=D.lessThanOrEqual,D.le=D.lessThanOrEqual,D.greaterThan=function(T){return this.comp(T)>0},D.gt=D.greaterThan,D.greaterThanOrEqual=function(T){return this.comp(T)>=0},D.gte=D.greaterThanOrEqual,D.ge=D.greaterThanOrEqual,D.compare=function(T){if(r(T)||(T=c(T)),this.eq(T))return 0;var P=this.isNegative(),U=T.isNegative();return P&&!U?-1:!P&&U?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},D.comp=D.compare,D.negate=function(){return!this.unsigned&&this.eq(M)?M:this.not().add(I)},D.neg=D.negate,D.add=function(T){r(T)||(T=c(T));var P=this.high>>>16,U=this.high&65535,j=this.low>>>16,q=this.low&65535,K=T.high>>>16,Y=T.high&65535,te=T.low>>>16,re=T.low&65535,J=0,ie=0,ae=0,oe=0;return oe+=q+re,ae+=oe>>>16,oe&=65535,ae+=j+te,ie+=ae>>>16,ae&=65535,ie+=U+Y,J+=ie>>>16,ie&=65535,J+=P+K,J&=65535,u(ae<<16|oe,J<<16|ie,this.unsigned)},D.subtract=function(T){return r(T)||(T=c(T)),this.add(T.neg())},D.sub=D.subtract,D.multiply=function(T){if(this.isZero())return x;if(r(T)||(T=c(T)),n){var P=n.mul(this.low,this.high,T.low,T.high);return u(P,n.get_high(),this.unsigned)}if(T.isZero())return x;if(this.eq(M))return T.isOdd()?M:x;if(T.eq(M))return this.isOdd()?M:x;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(y)&&T.lt(y))return l(this.toNumber()*T.toNumber(),this.unsigned);var U=this.high>>>16,j=this.high&65535,q=this.low>>>16,K=this.low&65535,Y=T.high>>>16,te=T.high&65535,re=T.low>>>16,J=T.low&65535,ie=0,ae=0,oe=0,ue=0;return ue+=K*J,oe+=ue>>>16,ue&=65535,oe+=q*J,ae+=oe>>>16,oe&=65535,oe+=K*re,ae+=oe>>>16,oe&=65535,ae+=j*J,ie+=ae>>>16,ae&=65535,ae+=q*re,ie+=ae>>>16,ae&=65535,ae+=K*te,ie+=ae>>>16,ae&=65535,ie+=U*J+j*re+q*te+K*Y,ie&=65535,u(oe<<16|ue,ie<<16|ae,this.unsigned)},D.mul=D.multiply,D.divide=function(T){if(r(T)||(T=c(T)),T.isZero())throw Error("division by zero");if(n){if(!this.unsigned&&this.high===-2147483648&&T.low===-1&&T.high===-1)return this;var P=(this.unsigned?n.div_u:n.div_s)(this.low,this.high,T.low,T.high);return u(P,n.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?w:x;var U,j,q;if(this.unsigned){if(T.unsigned||(T=T.toUnsigned()),T.gt(this))return w;if(T.gt(this.shru(1)))return N;q=w}else{if(this.eq(M)){if(T.eq(I)||T.eq(_))return M;if(T.eq(M))return I;var K=this.shr(1);return U=K.div(T).shl(1),U.eq(x)?T.isNegative()?I:_:(j=this.sub(T.mul(U)),q=U.add(j.div(T)),q)}else if(T.eq(M))return this.unsigned?w:x;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();q=x}for(j=this;j.gte(T);){U=Math.max(1,Math.floor(j.toNumber()/T.toNumber()));for(var Y=Math.ceil(Math.log(U)/Math.LN2),te=Y<=48?1:p(2,Y-48),re=l(U),J=re.mul(T);J.isNegative()||J.gt(j);)U-=te,re=l(U,this.unsigned),J=re.mul(T);re.isZero()&&(re=I),q=q.add(re),j=j.sub(J)}return q},D.div=D.divide,D.modulo=function(T){if(r(T)||(T=c(T)),n){var P=(this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,T.low,T.high);return u(P,n.get_high(),this.unsigned)}return this.sub(this.div(T).mul(T))},D.mod=D.modulo,D.rem=D.modulo,D.not=function(){return u(~this.low,~this.high,this.unsigned)},D.and=function(T){return r(T)||(T=c(T)),u(this.low&T.low,this.high&T.high,this.unsigned)},D.or=function(T){return r(T)||(T=c(T)),u(this.low|T.low,this.high|T.high,this.unsigned)},D.xor=function(T){return r(T)||(T=c(T)),u(this.low^T.low,this.high^T.high,this.unsigned)},D.shiftLeft=function(T){return r(T)&&(T=T.toInt()),(T&=63)===0?this:T<32?u(this.low<>>32-T,this.unsigned):u(0,this.low<>>T|this.high<<32-T,this.high>>T,this.unsigned):u(this.high>>T-32,this.high>=0?0:-1,this.unsigned)},D.shr=D.shiftRight,D.shiftRightUnsigned=function(T){if(r(T)&&(T=T.toInt()),T&=63,T===0)return this;var P=this.high;if(T<32){var U=this.low;return u(U>>>T|P<<32-T,P>>>T,this.unsigned)}else return T===32?u(P,0,this.unsigned):u(P>>>T-32,0,this.unsigned)},D.shru=D.shiftRightUnsigned,D.shr_u=D.shiftRightUnsigned,D.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},D.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},D.toBytes=function(T){return T?this.toBytesLE():this.toBytesBE()},D.toBytesLE=function(){var T=this.high,P=this.low;return[P&255,P>>>8&255,P>>>16&255,P>>>24,T&255,T>>>8&255,T>>>16&255,T>>>24]},D.toBytesBE=function(){var T=this.high,P=this.low;return[T>>>24,T>>>16&255,T>>>8&255,T&255,P>>>24,P>>>16&255,P>>>8&255,P&255]},a.fromBytes=function(T,P,U){return U?a.fromBytesLE(T,P):a.fromBytesBE(T,P)},a.fromBytesLE=function(T,P){return new a(T[0]|T[1]<<8|T[2]<<16|T[3]<<24,T[4]|T[5]<<8|T[6]<<16|T[7]<<24,P)},a.fromBytesBE=function(T,P){return new a(T[4]<<24|T[5]<<16|T[6]<<8|T[7],T[0]<<24|T[1]<<16|T[2]<<8|T[3],P)}}),HF=Bt(()=>{}),jF=Bt(()=>{}),qF=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)}),KF=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)}),XF=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)}),YF=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)}),ZF=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,b,y=[],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&&(b=b+1640531527|0,h=y[g&127]^=m+b,f=h==0?f+1:0);for(f>=128&&(y[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=y[f+34&127],h=y[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,y[f]=m^h;d.w=b,d.X=y,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)}),JF=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)}),QF=Bt(()=>{}),eD=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,N,_){var $=[];N=N==!0?{entropy:!0}:N||{};var A=y(b(N.entropy?[I,w(a)]:I==null?x():I,3),$),M=new f($),D=function(){for(var T=M.g(i),P=u,U=0;T=d;)T/=2,P/=2,U>>>=1;return(T+U)/P};return D.int32=function(){return M.g(4)|0},D.quick=function(){return M.g(4)/4294967296},D.double=D,y(w(M.S),a),(N.pass||_||function(T,P,U,j){return j&&(j.S&&g(j,M),T.state=function(){return g(M,{})}),U?(r[l]=T,P):T})(D,A,"global"in N?N.global:this==r,N.state)}function f(I){var N,_=I.length,$=this,A=0,M=$.i=$.j=0,D=$.S=[];for(_||(I=[_++]);A{var n=qF(),a=KF(),r=XF(),s=YF(),i=ZF(),o=JF(),l=eD();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),eT=Bt(()=>{}),Hx=Bt(()=>{}),Yh=Bt(()=>{}),tD=Bt(()=>{}),nD=Bt(()=>{}),aD=Bt(()=>{}),rD=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 Ne.buffer!=xn&&Oa(Ne.buffer),jd}function i(){return Ne.buffer!=xn&&Oa(Ne.buffer),qd}function o(){return Ne.buffer!=xn&&Oa(Ne.buffer),Ap}function l(){return Ne.buffer!=xn&&Oa(Ne.buffer),Kd}function u(){return Ne.buffer!=xn&&Oa(Ne.buffer),Xd}function p(){return Ne.buffer!=xn&&Oa(Ne.buffer),Yd}function d(){return Ne.buffer!=xn&&Oa(Ne.buffer),Zd}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(S,F){h=S,m=F});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),b=[],y="./this.program",x=(S,F)=>{throw F},w=typeof window=="object",I=typeof importScripts=="function",N=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",_=c.ENVIRONMENT_IS_PTHREAD||!1,$="";function A(S){return c.locateFile?c.locateFile(S,$):$+S}var M,D,T,P;function U(S){S instanceof Bp||J("exiting due to exception: "+S)}var j,q,K;if(N){I?$=Yh().dirname($)+"/":$=__dirname+"/",K=()=>{q||(j=Hx(),q=Yh())},M=function(F,V){return K(),F=q.normalize(F),j.readFileSync(F,V?void 0:"utf8")},T=F=>{var V=M(F,!0);return V.buffer||(V=new Uint8Array(V)),V},D=(F,V,Z)=>{K(),F=q.normalize(F),j.readFile(F,function(pe,me){pe?Z(pe):V(me.buffer)})},process.argv.length>1&&(y=process.argv[1].replace(/\\/g,"/")),b=process.argv.slice(2),process.on("uncaughtException",function(F){if(!(F instanceof Bp))throw F}),process.on("unhandledRejection",function(F){throw F}),x=(F,V)=>{if(Bs())throw process.exitCode=F,V;U(V),process.exit(F)},c.inspect=function(){return"[Emscripten Module object]"};let S;try{S=tD()}catch(F){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),F}global.Worker=S.Worker}else(w||I)&&(I?$=self.location.href:typeof document!="undefined"&&document.currentScript&&($=document.currentScript.src),typeof a!="undefined"&&a&&($=a),$.indexOf("blob:")!==0?$=$.substr(0,$.replace(/[?#].*/,"").lastIndexOf("/")+1):$="",N||(M=S=>{var F=new XMLHttpRequest;return F.open("GET",S,!1),F.send(null),F.responseText},I&&(T=S=>{var F=new XMLHttpRequest;return F.open("GET",S,!1),F.responseType="arraybuffer",F.send(null),new Uint8Array(F.response)}),D=(S,F,V)=>{var Z=new XMLHttpRequest;Z.open("GET",S,!0),Z.responseType="arraybuffer",Z.onload=()=>{if(Z.status==200||Z.status==0&&Z.response){F(Z.response);return}V()},Z.onerror=V,Z.send(null)}),P=S=>document.title=S);N&&typeof performance=="undefined"&&(global.performance=nD().performance);var Y=console.log.bind(console),te=console.warn.bind(console);N&&(K(),Y=S=>j.writeSync(1,S+` -`),te=S=>j.writeSync(2,S+` -`));var re=c.print||Y,J=c.printErr||te;Object.assign(c,g),g=null,c.arguments&&(b=c.arguments),c.thisProgram&&(y=c.thisProgram),c.quit&&(x=c.quit);var ie=4;function ae(S){ae.shown||(ae.shown={}),ae.shown[S]||(ae.shown[S]=1,J(S))}function oe(S,F){if(typeof WebAssembly.Function=="function"){for(var V={i:"i32",j:"i64",f:"f32",d:"f64"},Z={parameters:[],results:F[0]=="v"?[]:[V[F[0]]]},pe=1;pe{Ee=S},Be=Atomics.load,je=Atomics.store,st=Atomics.compareExchange,nt;c.wasmBinary&&(nt=c.wasmBinary);var at=c.noExitRuntime||!0;typeof WebAssembly!="object"&&al("no native wasm support detected");var Ne,ft,dt=!1,yn;function Yt(S,F){S||al(F)}function Mn(S){var F=c["_"+S];return F}function Ut(S,F,V,Z,pe){var me={string:function(ua){var hl=0;if(ua!=null&&ua!==0){var Tk=(ua.length<<2)+1;hl=dl(Tk),zs(ua,hl,Tk)}return hl},array:function(ua){var hl=dl(ua.length);return Tr(ua,hl),hl}};function ve(ua){return F==="string"?oa(ua):F==="boolean"?Boolean(ua):ua}var Ce=Mn(S),Ct=[],Ba=0;if(Z)for(var Va=0;Va(V.buffer instanceof SharedArrayBuffer&&(V=new Uint8Array(V)),F.decode.call(F,V))}var Gt=typeof TextDecoder!="undefined"?new Pn("utf8"):void 0;function ia(S,F,V){for(var Z=F+V,pe=F;S[pe]&&!(pe>=Z);)++pe;if(pe-F>16&&S.subarray&&Gt)return Gt.decode(S.subarray(F,pe));for(var me="";F>10,56320|Ba&1023)}}return me}function oa(S,F){return S?ia(i(),S,F):""}function Kr(S,F,V,Z){if(!(Z>0))return 0;for(var pe=V,me=V+Z-1,ve=0;ve=55296&&Ce<=57343){var Ct=S.charCodeAt(++ve);Ce=65536+((Ce&1023)<<10)|Ct&1023}if(Ce<=127){if(V>=me)break;F[V++]=Ce}else if(Ce<=2047){if(V+1>=me)break;F[V++]=192|Ce>>6,F[V++]=128|Ce&63}else if(Ce<=65535){if(V+2>=me)break;F[V++]=224|Ce>>12,F[V++]=128|Ce>>6&63,F[V++]=128|Ce&63}else{if(V+3>=me)break;F[V++]=240|Ce>>18,F[V++]=128|Ce>>12&63,F[V++]=128|Ce>>6&63,F[V++]=128|Ce&63}}return F[V]=0,V-pe}function zs(S,F,V){return Kr(S,i(),F,V)}function Hd(S){for(var F=0,V=0;V=55296&&Z<=57343&&(Z=65536+((Z&1023)<<10)|S.charCodeAt(++V)&1023),Z<=127?++F:Z<=2047?F+=2:Z<=65535?F+=3:F+=4}return F}var Xr=typeof TextDecoder!="undefined"?new Pn("utf-16le"):void 0;function Tr(S,F){s().set(S,F)}function $p(S,F,V){for(var Z=0;Z>0]=S.charCodeAt(Z);V||(s()[F>>0]=0)}function tl(S,F){return S%F>0&&(S+=F-S%F),S}var xn,jd,qd,Ap,Kd,Xd,rk,Yd,Zd;_&&(xn=c.buffer);function Oa(S){xn=S,c.HEAP8=jd=new Int8Array(S),c.HEAP16=Ap=new Int16Array(S),c.HEAP32=Xd=new Int32Array(S),c.HEAPU8=qd=new Uint8Array(S),c.HEAPU16=Kd=new Uint16Array(S),c.HEAPU32=rk=new Uint32Array(S),c.HEAPF32=Yd=new Float32Array(S),c.HEAPF64=Zd=new Float64Array(S)}var Jd=c.INITIAL_MEMORY||16777216;if(_)Ne=c.wasmMemory,xn=c.buffer;else if(c.wasmMemory)Ne=c.wasmMemory;else if(Ne=new WebAssembly.Memory({initial:Jd/65536,maximum:32768,shared:!0}),!(Ne.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"),N&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");Ne&&(xn=Ne.buffer),Jd=xn.byteLength,Oa(xn);var la,nl=[],Yr=[],Kg=[],Qd=[],Ws=!1,Xg=!1,eh=0;function Bs(){return at||eh>0}function vn(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)sk(c.preRun.shift());rh(nl)}function Fp(){Ws=!0,!_&&rh(Yr)}function Yg(){_||(_e.terminateAllThreads(),Xg=!0)}function Zg(){if(!_){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)Dp(c.postRun.shift());rh(Qd)}}function sk(S){nl.unshift(S)}function ik(S){Yr.unshift(S)}function Dp(S){Qd.unshift(S)}var Zr=0,th=null,La=null;function Rp(S){Zr++,c.monitorRunDependencies&&c.monitorRunDependencies(Zr)}function ok(S){if(Zr--,c.monitorRunDependencies&&c.monitorRunDependencies(Zr),Zr==0&&(th!==null&&(clearInterval(th),th=null),La)){var F=La;La=null,F()}}c.preloadedImages={},c.preloadedAudios={};function al(S){_?postMessage({cmd:"onAbort",arg:S}):c.onAbort&&c.onAbort(S),S="Aborted("+S+")",J(S),dt=!0,yn=1,S+=". Build with -s ASSERTIONS=1 for more info.";var F=new WebAssembly.RuntimeError(S);throw m(F),F}var Jg="data:application/octet-stream;base64,";function Mp(S){return S.startsWith(Jg)}function nh(S){return S.startsWith("file://")}var wn;wn="tfjs-backend-wasm-threaded-simd.wasm",Mp(wn)||(wn=A(wn));function ah(S){try{if(S==wn&&nt)return new Uint8Array(nt);if(T)return T(S);throw"both async and sync fetching of the wasm failed"}catch(F){al(F)}}function rl(){if(!nt&&(w||I)){if(typeof fetch=="function"&&!nh(wn))return fetch(wn,{credentials:"same-origin"}).then(function(S){if(!S.ok)throw"failed to load wasm binary file at '"+wn+"'";return S.arrayBuffer()}).catch(function(){return ah(wn)});if(D)return new Promise(function(S,F){D(wn,function(V){S(new Uint8Array(V))},F)})}return Promise.resolve().then(function(){return ah(wn)})}function Qg(){var S={env:gh,wasi_snapshot_preview1:gh};function F(ve,Ce){var Ct=ve.exports;if(c.asm=Ct,ib(c.asm.emscripten_tls_init),la=c.asm.__indirect_function_table,ik(c.asm.__wasm_call_ctors),ft=Ce,!_){var Ba=_e.unusedWorkers.length;_e.unusedWorkers.forEach(function(Va){_e.loadWasmModuleToWorker(Va,function(){--Ba||ok("wasm-instantiate")})})}}_||Rp("wasm-instantiate");function V(ve){F(ve.instance,ve.module)}function Z(ve){return rl().then(function(Ce){return WebAssembly.instantiate(Ce,S)}).then(function(Ce){return Ce}).then(ve,function(Ce){J("failed to asynchronously prepare wasm: "+Ce),al(Ce)})}function pe(){return!nt&&typeof WebAssembly.instantiateStreaming=="function"&&!Mp(wn)&&!nh(wn)&&typeof fetch=="function"?fetch(wn,{credentials:"same-origin"}).then(function(ve){var Ce=WebAssembly.instantiateStreaming(ve,S);return Ce.then(V,function(Ct){return J("wasm streaming compile failed: "+Ct),J("falling back to ArrayBuffer instantiation"),Z(V)})}):Z(V)}if(c.instantiateWasm)try{var me=c.instantiateWasm(S,F);return me}catch(ve){return J("Module.instantiateWasm callback failed with error: "+ve),!1}return pe().catch(m),{}}var lk,uk,eb={};function rh(S){for(;S.length>0;){var F=S.shift();if(typeof F=="function"){F(c);continue}var V=F.func;typeof V=="number"?F.arg===void 0?il(V)():il(V)(F.arg):V(F.arg===void 0?null:F.arg)}}function sl(S){var F=Cy(),V=S();return wh(F),V}function zA(S){return S}function pk(S){var F=/\b_Z[\w\d_]+/g;return S.replace(F,function(V){var Z=V;return V===Z?V:Z+" ["+V+"]"})}function tb(S){u()[S>>2]=0;var F=_e.pthreads[S];delete _e.pthreads[S],F.worker.terminate(),Ny(S),_e.runningWorkers.splice(_e.runningWorkers.indexOf(F.worker),1),F.worker.pthread=void 0}function nb(S){var F=_e.pthreads[S];F.worker.postMessage({cmd:"cancel"})}function sh(S){var F=_e.pthreads[S];if(F){u()[S>>2]=0;var V=F.worker;_e.returnWorkerToPool(V)}}function ih(S){_F(S)}function ab(S){if(S instanceof Bp||S=="unwind")return yn;x(1,S)}var _e={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],init:function(){_?_e.initWorker():_e.initMainThread()},initMainThread:function(){for(var S=8,F=0;F>2]=0;try{S()}finally{u()[Ik>>2]=1}},receiveObjectTransfer:function(S){},threadInit:function(){for(var S in _e.tlsInitFunctions)_e.tlsInitFunctions[S]()},loadWasmModuleToWorker:function(S,F){S.onmessage=V=>{var Z=V.data,pe=Z.cmd;if(S.pthread&&(_e.currentProxiedOperationCallerThread=S.pthread.threadInfoStruct),Z.targetThread&&Z.targetThread!=vh()){var me=_e.pthreads[Z.targetThread];me?me.worker.postMessage(Z,Z.transferList):J('Internal error! Worker sent a message "'+pe+'" to target pthread '+Z.targetThread+", but that thread no longer exists!"),_e.currentProxiedOperationCallerThread=void 0;return}pe==="processQueuedMainThreadWork"?yk():pe==="spawnThread"?lh(Z):pe==="cleanupThread"?sh(Z.thread):pe==="killThread"?tb(Z.thread):pe==="cancelThread"?nb(Z.thread):pe==="loaded"?(S.loaded=!0,F&&F(S),S.runPthread&&(S.runPthread(),delete S.runPthread)):pe==="print"?re("Thread "+Z.threadId+": "+Z.text):pe==="printErr"?J("Thread "+Z.threadId+": "+Z.text):pe==="alert"?alert("Thread "+Z.threadId+": "+Z.text):Z.target==="setimmediate"?S.postMessage(Z):pe==="onAbort"?c.onAbort&&c.onAbort(Z.arg):J("worker sent an unknown command "+pe),_e.currentProxiedOperationCallerThread=void 0},S.onerror=V=>{var Z="worker sent an error!";throw J(Z+" "+V.filename+":"+V.lineno+": "+V.message),V},N&&(S.on("message",function(V){S.onmessage({data:V})}),S.on("error",function(V){S.onerror(V)}),S.on("detachedExit",function(){})),S.postMessage({cmd:"load",urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:Ne,wasmModule:ft})},allocateUnusedWorker:function(){var S=A("tfjs-backend-wasm-threaded-simd.worker.js");_e.unusedWorkers.push(new Worker(S))},getNewWorker:function(){return _e.unusedWorkers.length==0&&(_e.allocateUnusedWorker(),_e.loadWasmModuleToWorker(_e.unusedWorkers[0])),_e.unusedWorkers.pop()}};function rb(){var S=vh(),F=u()[S+44>>2],V=u()[S+48>>2],Z=F-V;kk(F,Z),wh(F)}c.establishStackSpace=rb;function oh(S){if(_)return Gs(1,0,S);try{ih(S)}catch(F){ab(F)}}var Vs=[];function il(S){var F=Vs[S];return F||(S>=Vs.length&&(Vs.length=S+1),Vs[S]=F=la.get(S)),F}function sb(S,F){return il(S)(F)}c.invokeEntryPoint=sb;function ck(){var S=new Error;if(!S.stack){try{throw new Error}catch(F){S=F}if(!S.stack)return"(no stack trace available)"}return S.stack.toString()}function ib(S,F,V){_e.tlsInitFunctions.push(S)}function dk(S,F){la.set(S,F),Vs[S]=F}var Us;N?Us=()=>{var S=process.hrtime();return S[0]*1e3+S[1]/1e6}:_?Us=()=>performance.now()-c.__performance_now_clock_drift:Us=()=>performance.now();var ob=!0;function lb(S){return u()[bk()>>2]=S,S}function ub(S,F){var V;if(S===0)V=Date.now();else if((S===1||S===4)&&ob)V=Us();else return lb(28),-1;return u()[F>>2]=V/1e3|0,u()[F+4>>2]=V%1e3*1e3*1e3|0,0}function pb(S,F){return ub(S,F)}function cb(S){xk(S,!I,1,!w),_e.threadInit()}function db(S){_?postMessage({cmd:"cleanupThread",thread:S}):sh(S)}function lh(S){var F=_e.getNewWorker();if(!F)return 6;_e.runningWorkers.push(F);var V=_e.pthreads[S.pthread_ptr]={worker:F,threadInfoStruct:S.pthread_ptr};F.pthread=V;var Z={cmd:"run",start_routine:S.startRoutine,arg:S.arg,threadInfoStruct:S.pthread_ptr};return F.runPthread=()=>{Z.time=performance.now(),F.postMessage(Z,S.transferList)},F.loaded&&(F.runPthread(),delete F.runPthread),0}function hb(S,F,V,Z){if(typeof SharedArrayBuffer=="undefined")return J("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var pe=[],me=0;if(_&&(pe.length===0||me))return vk(687865856,S,F,V,Z);if(me)return me;var ve={startRoutine:V,pthread_ptr:S,arg:Z,transferList:pe};return _?(ve.cmd="spawnThread",postMessage(ve,pe),0):lh(ve)}function mb(){return 2097152}function fb(S,F){if(S==F)postMessage({cmd:"processQueuedMainThreadWork"});else if(_)postMessage({targetThread:S,cmd:"processThreadQueue"});else{var V=_e.pthreads[S],Z=V&&V.worker;if(!Z)return;Z.postMessage({cmd:"processThreadQueue"})}return 1}function gb(){al("")}function bb(){N||I||ae("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function uh(){return 2147483648}function yb(S,F,V){i().copyWithin(S,F,F+V)}function xb(){return N?aD().cpus().length:navigator.hardwareConcurrency}function Gs(S,F){var V=arguments.length-2,Z=arguments;return sl(function(){for(var pe=V,me=dl(pe*8),ve=me>>3,Ce=0;Ce>3,pe=0;pe>>16),Oa(Ne.buffer),1}catch(F){}}function kb(S){var F=i().length;if(S=S>>>0,S<=F)return!1;var V=uh();if(S>V)return!1;for(var Z=1;Z<=4;Z*=2){var pe=F*(1+.2/Z);pe=Math.min(pe,S+100663296);var me=Math.min(V,tl(Math.max(S,pe),65536)),ve=wb(me);if(ve)return!0}return!1}var Ue={inEventHandler:0,removeAllEventListeners:function(){for(var S=Ue.eventHandlers.length-1;S>=0;--S)Ue._removeHandler(S);Ue.eventHandlers=[],Ue.deferredCalls=[]},registerRemoveEventListeners:function(){Ue.removeEventListenersRegistered||(Kg.push(Ue.removeAllEventListeners),Ue.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(S,F,V){function Z(ve,Ce){if(ve.length!=Ce.length)return!1;for(var Ct in ve)if(ve[Ct]!=Ce[Ct])return!1;return!0}for(var pe in Ue.deferredCalls){var me=Ue.deferredCalls[pe];if(me.targetFunction==S&&Z(me.argsList,V))return}Ue.deferredCalls.push({targetFunction:S,precedence:F,argsList:V}),Ue.deferredCalls.sort(function(ve,Ce){return ve.precedence>2]=V,u()[me+4>>2]=Z,u()[me+8>>2]=pe,Sy(S,637534208,F,Z,me)})},getTargetThreadForEventCallback:function(S){switch(S){case 1:return 0;case 2:return _e.currentProxiedOperationCallerThread;default:return S}},getNodeNameForTarget:function(S){return S?S==window?"#window":S==screen?"#screen":S&&S.nodeName?S.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function Ib(S){var F=Hd(S)+1,V=Ty(F);return zs(S,V,F),V}function Tb(S,F,V,Z){sl(function(){var pe=dl(12),me=0;F&&(me=Ib(F)),u()[pe>>2]=me,u()[pe+4>>2]=V,u()[pe+8>>2]=Z,Sy(S,657457152,0,me,pe)})}function Sb(S,F,V,Z){F=F?oa(F):"",Tb(S,F,V,Z)}function Nb(S){return S>2?oa(S):S}var Cb=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function _b(S){S=Nb(S);var F=Cb[S]||(typeof document!="undefined"?document.querySelector(S):void 0);return F}function Op(S){return _b(S)}function ph(S,F,V){var Z=Op(S);if(!Z)return-4;if(Z.canvasSharedPtr&&(u()[Z.canvasSharedPtr>>2]=F,u()[Z.canvasSharedPtr+4>>2]=V),Z.offscreenCanvas||!Z.controlTransferredOffscreen){Z.offscreenCanvas&&(Z=Z.offscreenCanvas);var pe=!1;if(Z.GLctxObject&&Z.GLctxObject.GLctx){var me=Z.GLctxObject.GLctx.getParameter(2978);pe=me[0]===0&&me[1]===0&&me[2]===Z.width&&me[3]===Z.height}Z.width=F,Z.height=V,pe&&Z.GLctxObject.GLctx.viewport(0,0,F,V)}else if(Z.canvasSharedPtr){var ve=u()[Z.canvasSharedPtr+8>>2];return Sb(ve,S,F,V),1}else return-4;return 0}function ch(S,F,V){return _?Gs(2,1,S,F,V):ph(S,F,V)}function Eb(S,F,V){var Z=Op(S);return Z?ph(S,F,V):ch(S,F,V)}function $b(){throw"unwind"}function Ab(S){var F=S.getExtension("ANGLE_instanced_arrays");if(F)return S.vertexAttribDivisor=function(V,Z){F.vertexAttribDivisorANGLE(V,Z)},S.drawArraysInstanced=function(V,Z,pe,me){F.drawArraysInstancedANGLE(V,Z,pe,me)},S.drawElementsInstanced=function(V,Z,pe,me,ve){F.drawElementsInstancedANGLE(V,Z,pe,me,ve)},1}function Fb(S){var F=S.getExtension("OES_vertex_array_object");if(F)return S.createVertexArray=function(){return F.createVertexArrayOES()},S.deleteVertexArray=function(V){F.deleteVertexArrayOES(V)},S.bindVertexArray=function(V){F.bindVertexArrayOES(V)},S.isVertexArray=function(V){return F.isVertexArrayOES(V)},1}function Db(S){var F=S.getExtension("WEBGL_draw_buffers");if(F)return S.drawBuffers=function(V,Z){F.drawBuffersWEBGL(V,Z)},1}function Rb(S){return!!(S.multiDrawWebgl=S.getExtension("WEBGL_multi_draw"))}var Nt={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function(S){Nt.lastError||(Nt.lastError=S)},getNewId:function(S){for(var F=Nt.counter++,V=S.length;V>2]:-1;pe+=oa(u()[V+me*4>>2],ve<0?void 0:ve)}return pe},createContext:function(S,F){S.getContextSafariWebGL2Fixed||(S.getContextSafariWebGL2Fixed=S.getContext,S.getContext=function(pe,me){var ve=S.getContextSafariWebGL2Fixed(pe,me);return pe=="webgl"==ve instanceof WebGLRenderingContext?ve:null});var V=S.getContext("webgl",F);if(!V)return 0;var Z=Nt.registerContext(V,F);return Z},registerContext:function(S,F){var V=Ty(8);u()[V+4>>2]=vh();var Z={handle:V,attributes:F,version:F.majorVersion,GLctx:S};return S.canvas&&(S.canvas.GLctxObject=Z),Nt.contexts[V]=Z,(typeof F.enableExtensionsByDefault=="undefined"||F.enableExtensionsByDefault)&&Nt.initExtensions(Z),V},makeContextCurrent:function(S){return Nt.currentContext=Nt.contexts[S],c.ctx=fh=Nt.currentContext&&Nt.currentContext.GLctx,!(S&&!fh)},getContext:function(S){return Nt.contexts[S]},deleteContext:function(S){Nt.currentContext===Nt.contexts[S]&&(Nt.currentContext=null),typeof Ue=="object"&&Ue.removeAllHandlersOnTarget(Nt.contexts[S].GLctx.canvas),Nt.contexts[S]&&Nt.contexts[S].GLctx.canvas&&(Nt.contexts[S].GLctx.canvas.GLctxObject=void 0),gk(Nt.contexts[S].handle),Nt.contexts[S]=null},initExtensions:function(S){if(S||(S=Nt.currentContext),!S.initExtensionsDone){S.initExtensionsDone=!0;var F=S.GLctx;Ab(F),Fb(F),Db(F),F.disjointTimerQueryExt=F.getExtension("EXT_disjoint_timer_query"),Rb(F);var V=F.getSupportedExtensions()||[];V.forEach(function(Z){!Z.includes("lose_context")&&!Z.includes("debug")&&F.getExtension(Z)})}}},Mb=["default","low-power","high-performance"];function Pb(S,F){var V=F>>2,Z=u()[V+6],pe={alpha:!!u()[V+0],depth:!!u()[V+1],stencil:!!u()[V+2],antialias:!!u()[V+3],premultipliedAlpha:!!u()[V+4],preserveDrawingBuffer:!!u()[V+5],powerPreference:Mb[Z],failIfMajorPerformanceCaveat:!!u()[V+7],majorVersion:u()[V+8],minorVersion:u()[V+9],enableExtensionsByDefault:u()[V+10],explicitSwapControl:u()[V+11],proxyContextToMainThread:u()[V+12],renderViaOffscreenBackBuffer:u()[V+13]},me=Op(S);if(!me||pe.explicitSwapControl)return 0;var ve=Nt.createContext(me,pe);return ve}function Ob(S,F){return Pb(S,F)}var ol={mappings:{},buffers:[null,[],[]],printChar:function(S,F){var V=ol.buffers[S];F===0||F===10?((S===1?re:J)(ia(V,0)),V.length=0):V.push(F)},varargs:void 0,get:function(){ol.varargs+=4;var S=u()[ol.varargs-4>>2];return S},getStr:function(S){var F=oa(S);return F},get64:function(S,F){return S}};function dh(S){return _?Gs(3,1,S):0}function hh(S,F,V,Z,pe){if(_)return Gs(4,1,S,F,V,Z,pe)}function mh(S,F,V,Z){if(_)return Gs(5,1,S,F,V,Z);for(var pe=0,me=0;me>2],Ce=u()[F+4>>2];F+=8;for(var Ct=0;Ct>2]=pe,0}function Lb(S){De(S)}_e.init();var fh,zb=[null,oh,ch,dh,hh,mh],hk=!1,gh={__clock_gettime:pb,__emscripten_init_main_thread_js:cb,__emscripten_thread_cleanup:db,__pthread_create_js:hb,_emscripten_default_pthread_stack_size:mb,_emscripten_notify_thread_queue:fb,abort:gb,emscripten_check_blocking_allowed:bb,emscripten_get_heap_max:uh,emscripten_get_now:Us,emscripten_memcpy_big:yb,emscripten_num_logical_cores:xb,emscripten_receive_on_main_thread_js:vb,emscripten_resize_heap:kb,emscripten_set_canvas_element_size:Eb,emscripten_unwind_to_js_event_loop:$b,emscripten_webgl_create_context:Ob,exit:ih,fd_close:dh,fd_seek:hh,fd_write:mh,memory:Ne||c.wasmMemory,setTempRet0:Lb},mk=Qg(),Wb=c.___wasm_call_ctors=function(){return(Wb=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},Bb=c._init=function(){return(Bb=c._init=c.asm.init).apply(null,arguments)},Vb=c._init_with_threads_count=function(){return(Vb=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},Ub=c._get_threads_count=function(){return(Ub=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},Gb=c._register_tensor=function(){return(Gb=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},Hb=c._dispose_data=function(){return(Hb=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},jb=c._dispose=function(){return(jb=c._dispose=c.asm.dispose).apply(null,arguments)},qb=c._Abs=function(){return(qb=c._Abs=c.asm.Abs).apply(null,arguments)},Kb=c._Add=function(){return(Kb=c._Add=c.asm.Add).apply(null,arguments)},Xb=c._AddN=function(){return(Xb=c._AddN=c.asm.AddN).apply(null,arguments)},Yb=c._All=function(){return(Yb=c._All=c.asm.All).apply(null,arguments)},Zb=c._Any=function(){return(Zb=c._Any=c.asm.Any).apply(null,arguments)},Jb=c._ArgMax=function(){return(Jb=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},Qb=c._AvgPool=function(){return(Qb=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},ey=c._BatchMatMul=function(){return(ey=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)},ay=c._Conv2D=function(){return(ay=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},ry=c._Conv2DBackpropInput=function(){return(ry=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},sy=c._Cos=function(){return(sy=c._Cos=c.asm.Cos).apply(null,arguments)},iy=c._Cosh=function(){return(iy=c._Cosh=c.asm.Cosh).apply(null,arguments)},oy=c._CropAndResize=function(){return(oy=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},ly=c._Cumprod=function(){return(ly=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},uy=c._Cumsum=function(){return(uy=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},py=c._DepthToSpace=function(){return(py=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},cy=c._DepthwiseConv2dNative=function(){return(cy=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},dy=c._Elu=function(){return(dy=c._Elu=c.asm.Elu).apply(null,arguments)},hy=c._Equal=function(){return(hy=c._Equal=c.asm.Equal).apply(null,arguments)},my=c._Exp=function(){return(my=c._Exp=c.asm.Exp).apply(null,arguments)},fy=c._FlipLeftRight=function(){return(fy=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},gy=c._Floor=function(){return(gy=c._Floor=c.asm.Floor).apply(null,arguments)},by=c._FloorDiv=function(){return(by=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},yy=c._FusedBatchNorm=function(){return(yy=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},xy=c._FusedConv2D=function(){return(xy=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},bh=c._FusedDepthwiseConv2D=function(){return(bh=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},yh=c._Gather=function(){return(yh=c._Gather=c.asm.Gather).apply(null,arguments)},Lp=c._GatherNd=function(){return(Lp=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},vy=c._Greater=function(){return(vy=c._Greater=c.asm.Greater).apply(null,arguments)},wy=c._GreaterEqual=function(){return(wy=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},ll=c._LeakyRelu=function(){return(ll=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},zp=c._Less=function(){return(zp=c._Less=c.asm.Less).apply(null,arguments)},Wp=c._LessEqual=function(){return(Wp=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},fk=c._Log=function(){return(fk=c._Log=c.asm.Log).apply(null,arguments)},ul=c._LogicalAnd=function(){return(ul=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},pl=c._LogicalNot=function(){return(pl=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},ky=c._LogicalOr=function(){return(ky=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},G=c._LogicalXor=function(){return(G=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},ee=c._Max=function(){return(ee=c._Max=c.asm.Max).apply(null,arguments)},de=c._MaxPool=function(){return(de=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},Te=c._Maximum=function(){return(Te=c._Maximum=c.asm.Maximum).apply(null,arguments)},Je=c._Mean=function(){return(Je=c._Mean=c.asm.Mean).apply(null,arguments)},rt=c._Min=function(){return(rt=c._Min=c.asm.Min).apply(null,arguments)},Ge=c._Minimum=function(){return(Ge=c._Minimum=c.asm.Minimum).apply(null,arguments)},Ve=c._MirrorPad=function(){return(Ve=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Ot=c._Multiply=function(){return(Ot=c._Multiply=c.asm.Multiply).apply(null,arguments)},za=c._Neg=function(){return(za=c._Neg=c.asm.Neg).apply(null,arguments)},Wa=c._NonMaxSuppressionV3=function(){return(Wa=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},cl=c._NonMaxSuppressionV4=function(){return(cl=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},Hs=c._NonMaxSuppressionV5=function(){return(Hs=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},Iy=c._NotEqual=function(){return(Iy=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},On=c._OneHot=function(){return(On=c._OneHot=c.asm.OneHot).apply(null,arguments)},Jr=c._PadV2=function(){return(Jr=c._PadV2=c.asm.PadV2).apply(null,arguments)},xh=c._Pow=function(){return(xh=c._Pow=c.asm.Pow).apply(null,arguments)},WA=c._Prelu=function(){return(WA=c._Prelu=c.asm.Prelu).apply(null,arguments)},BA=c._Prod=function(){return(BA=c._Prod=c.asm.Prod).apply(null,arguments)},VA=c._RealDiv=function(){return(VA=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},UA=c._Relu=function(){return(UA=c._Relu=c.asm.Relu).apply(null,arguments)},GA=c._Relu6=function(){return(GA=c._Relu6=c.asm.Relu6).apply(null,arguments)},HA=c._ResizeBilinear=function(){return(HA=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},jA=c._ResizeNearestNeighbor=function(){return(jA=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},qA=c._Reverse=function(){return(qA=c._Reverse=c.asm.Reverse).apply(null,arguments)},KA=c._RotateWithOffset=function(){return(KA=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},XA=c._Round=function(){return(XA=c._Round=c.asm.Round).apply(null,arguments)},YA=c._Rsqrt=function(){return(YA=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},ZA=c._ScatterNd=function(){return(ZA=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},JA=c._SelectV2=function(){return(JA=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},QA=c._Sigmoid=function(){return(QA=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},eF=c._Sin=function(){return(eF=c._Sin=c.asm.Sin).apply(null,arguments)},tF=c._Softmax=function(){return(tF=c._Softmax=c.asm.Softmax).apply(null,arguments)},nF=c._SparseFillEmptyRows=function(){return(nF=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},aF=c._SparseReshape=function(){return(aF=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},rF=c._SparseSegmentReduction=function(){return(rF=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},sF=c._Sqrt=function(){return(sF=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},iF=c._Square=function(){return(iF=c._Square=c.asm.Square).apply(null,arguments)},oF=c._SquaredDifference=function(){return(oF=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},lF=c._Step=function(){return(lF=c._Step=c.asm.Step).apply(null,arguments)},uF=c._StridedSlice=function(){return(uF=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},pF=c._Sub=function(){return(pF=c._Sub=c.asm.Sub).apply(null,arguments)},cF=c._Sum=function(){return(cF=c._Sum=c.asm.Sum).apply(null,arguments)},dF=c._Tan=function(){return(dF=c._Tan=c.asm.Tan).apply(null,arguments)},hF=c._Tanh=function(){return(hF=c._Tanh=c.asm.Tanh).apply(null,arguments)},mF=c._Tile=function(){return(mF=c._Tile=c.asm.Tile).apply(null,arguments)},fF=c._TopK=function(){return(fF=c._TopK=c.asm.TopK).apply(null,arguments)},gF=c._Transform=function(){return(gF=c._Transform=c.asm.Transform).apply(null,arguments)},bF=c._Transpose=function(){return(bF=c._Transpose=c.asm.Transpose).apply(null,arguments)},yF=c.__FusedMatMul=function(){return(yF=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},Ty=c._malloc=function(){return(Ty=c._malloc=c.asm.malloc).apply(null,arguments)},gk=c._free=function(){return(gk=c._free=c.asm.free).apply(null,arguments)},xF=c._emscripten_tls_init=function(){return(xF=c._emscripten_tls_init=c.asm.emscripten_tls_init).apply(null,arguments)},bk=c.___errno_location=function(){return(bk=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},vh=c._pthread_self=function(){return(vh=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},yk=c._emscripten_main_thread_process_queued_calls=function(){return(yk=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},vF=c.__emscripten_thread_crashed=function(){return(vF=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},xk=c.__emscripten_thread_init=function(){return(xk=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},wF=c._emscripten_current_thread_process_queued_calls=function(){return(wF=c._emscripten_current_thread_process_queued_calls=c.asm.emscripten_current_thread_process_queued_calls).apply(null,arguments)},kF=c._emscripten_main_browser_thread_id=function(){return(kF=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},IF=c._emscripten_sync_run_in_main_thread_2=function(){return(IF=c._emscripten_sync_run_in_main_thread_2=c.asm.emscripten_sync_run_in_main_thread_2).apply(null,arguments)},vk=c._emscripten_sync_run_in_main_thread_4=function(){return(vk=c._emscripten_sync_run_in_main_thread_4=c.asm.emscripten_sync_run_in_main_thread_4).apply(null,arguments)},wk=c._emscripten_run_in_main_runtime_thread_js=function(){return(wk=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},Sy=c._emscripten_dispatch_to_thread_=function(){return(Sy=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},Ny=c.__emscripten_thread_free_data=function(){return(Ny=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},TF=c.__emscripten_thread_exit=function(){return(TF=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},SF=c._memalign=function(){return(SF=c._memalign=c.asm.memalign).apply(null,arguments)},kk=c._emscripten_stack_set_limits=function(){return(kk=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},Cy=c.stackSave=function(){return(Cy=c.stackSave=c.asm.stackSave).apply(null,arguments)},wh=c.stackRestore=function(){return(wh=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},dl=c.stackAlloc=function(){return(dl=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},NF=c.dynCall_iijjiiii=function(){return(NF=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},CF=c.dynCall_jiji=function(){return(CF=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)},Ik=c.__emscripten_allow_main_runtime_queued_calls=21672;c.cwrap=Zt,c.keepRuntimeAlive=Bs,c.PThread=_e,c.PThread=_e,c.wasmMemory=Ne,c.ExitStatus=Bp;var kh;function Bp(S){this.name="ExitStatus",this.message="Program terminated with exit("+S+")",this.status=S}La=function S(){kh||_y(),kh||(La=S)};function _y(S){if(S=S||b,Zr>0)return;if(_){h(c),Fp(),postMessage({cmd:"loaded"});return}if(vn(),Zr>0)return;function F(){kh||(kh=!0,c.calledRun=!0,!dt&&(Fp(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),Zg()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),F()},1)):F()}c.run=_y;function _F(S,F){if(yn=S,!F&&_)throw oh(S),"unwind";Bs()||Yg(),EF(S)}function EF(S){yn=S,Bs()||(_e.terminateAllThreads(),c.onExit&&c.onExit(S),dt=!0),x(S,new Bp(S))}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();_y();var Ih;f&&(Ih={uncaughtException:process.listeners("uncaughtException").filter(function(S){return!f.uncaughtException.indexOf(S)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(S){return!f.unhandledRejection.indexOf(S)>-1})});var Th;if(typeof WasmBackendModule!="undefined")Th=WasmBackendModule;else if(typeof r!="undefined")Th=r;else throw new Error("Could not find wasm module in post.js");if(Ih){var $F=Th._dispose;Th._dispose=function(){$F(),Ih.uncaughtException.forEach(function(S){process.removeListener("uncaughtException",S)}),Ih.unhandledRejection.forEach(function(S){process.removeListener("unhandledRejection",S)})}}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)}),sD=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",function(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()}}})}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.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.threadInfoStruct,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["__emscripten_thread_exit"](result)}}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==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else if(e.data.cmd==="processProxyingQueue"){if(Module["_pthread_self"]()){Module["_emscripten_proxy_execute_queue"](e.data.queue)}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}});`}),iD=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(G,ee){i=G,o=ee});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=(G,ee)=>{throw ee},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function b(G){return s.locateFile?s.locateFile(G,g):g+G}var y,x,w,I;function N(G){G instanceof zp||D("exiting due to exception: "+G)}var _,$,A;f?(m?g=Yh().dirname(g)+"/":g=__dirname+"/",A=()=>{$||(_=Hx(),$=Yh())},y=function(G,ee){return A(),G=$.normalize(G),_.readFileSync(G,ee?void 0:"utf8")},w=G=>{var ee=y(G,!0);return ee.buffer||(ee=new Uint8Array(ee)),ee},x=(G,ee,de)=>{A(),G=$.normalize(G),_.readFile(G,function(Te,Je){Te?de(Te):ee(Je.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(G){if(!(G instanceof zp))throw G}),process.on("unhandledRejection",function(G){throw G}),c=(G,ee)=>{if(Ap())throw process.exitCode=G,ee;N(ee),process.exit(G)},s.inspect=function(){return"[Emscripten Module object]"}):(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="",y=G=>{var ee=new XMLHttpRequest;return ee.open("GET",G,!1),ee.send(null),ee.responseText},m&&(w=G=>{var ee=new XMLHttpRequest;return ee.open("GET",G,!1),ee.responseType="arraybuffer",ee.send(null),new Uint8Array(ee.response)}),x=(G,ee,de)=>{var Te=new XMLHttpRequest;Te.open("GET",G,!0),Te.responseType="arraybuffer",Te.onload=()=>{if(Te.status==200||Te.status==0&&Te.response){ee(Te.response);return}de()},Te.onerror=de,Te.send(null)},I=G=>document.title=G);var M=s.print||console.log.bind(console),D=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 T=4;function P(G){P.shown||(P.shown={}),P.shown[G]||(P.shown[G]=1,D(G))}function U(G,ee){if(typeof WebAssembly.Function=="function"){for(var de={i:"i32",j:"i64",f:"f32",d:"f64"},Te={parameters:[],results:ee[0]=="v"?[]:[de[ee[0]]]},Je=1;Je{te=G},J;s.wasmBinary&&(J=s.wasmBinary);var ie=s.noExitRuntime||!0;typeof WebAssembly!="object"&&Ws("no native wasm support detected");var ae,oe=!1,ue;function we(G,ee){G||Ws(ee)}function be(G){var ee=s["_"+G];return ee}function Ie(G,ee,de,Te,Je){var rt={string:function(On){var Jr=0;if(On!=null&&On!==0){var xh=(On.length<<2)+1;Jr=Lp(xh),at(On,Jr,xh)}return Jr},array:function(On){var Jr=Lp(On.length);return dt(On,Jr),Jr}};function Ge(On){return ee==="string"?st(On):ee==="boolean"?Boolean(On):On}var Ve=be(G),Ot=[],za=0;if(Te)for(var Wa=0;Wa=Te);)++Je;if(Je-ee>16&&G.subarray&&Be)return Be.decode(G.subarray(ee,Je));for(var rt="";ee>10,56320|za&1023)}}return rt}function st(G,ee){return G?je(Zt,G,ee):""}function nt(G,ee,de,Te){if(!(Te>0))return 0;for(var Je=de,rt=de+Te-1,Ge=0;Ge=55296&&Ve<=57343){var Ot=G.charCodeAt(++Ge);Ve=65536+((Ve&1023)<<10)|Ot&1023}if(Ve<=127){if(de>=rt)break;ee[de++]=Ve}else if(Ve<=2047){if(de+1>=rt)break;ee[de++]=192|Ve>>6,ee[de++]=128|Ve&63}else if(Ve<=65535){if(de+2>=rt)break;ee[de++]=224|Ve>>12,ee[de++]=128|Ve>>6&63,ee[de++]=128|Ve&63}else{if(de+3>=rt)break;ee[de++]=240|Ve>>18,ee[de++]=128|Ve>>12&63,ee[de++]=128|Ve>>6&63,ee[de++]=128|Ve&63}}return ee[de]=0,de-Je}function at(G,ee,de){return nt(G,Zt,ee,de)}function Ne(G){for(var ee=0,de=0;de=55296&&Te<=57343&&(Te=65536+((Te&1023)<<10)|G.charCodeAt(++de)&1023),Te<=127?++ee:Te<=2047?ee+=2:Te<=65535?ee+=3:ee+=4}return ee}var ft=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function dt(G,ee){Ut.set(G,ee)}function yn(G,ee,de){for(var Te=0;Te>0]=G.charCodeAt(Te);de||(Ut[ee>>0]=0)}function Yt(G,ee){return G%ee>0&&(G+=ee-G%ee),G}var Mn,Ut,Zt,Pa,Pn,Gt,ia,oa,Kr;function zs(G){Mn=G,s.HEAP8=Ut=new Int8Array(G),s.HEAP16=Pa=new Int16Array(G),s.HEAP32=Gt=new Int32Array(G),s.HEAPU8=Zt=new Uint8Array(G),s.HEAPU16=Pn=new Uint16Array(G),s.HEAPU32=ia=new Uint32Array(G),s.HEAPF32=oa=new Float32Array(G),s.HEAPF64=Kr=new Float64Array(G)}var Hd=s.INITIAL_MEMORY||16777216,Xr,Tr=[],$p=[],tl=[],xn=!1,jd=!1,qd=0;function Ap(){return ie||qd>0}function Kd(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Zd(s.preRun.shift());Dp(Tr)}function Xd(){xn=!0,Dp($p)}function rk(){jd=!0}function Yd(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Jd(s.postRun.shift());Dp(tl)}function Zd(G){Tr.unshift(G)}function Oa(G){$p.unshift(G)}function Jd(G){tl.unshift(G)}var la=0,nl=null,Yr=null;function Kg(G){la++,s.monitorRunDependencies&&s.monitorRunDependencies(la)}function Qd(G){if(la--,s.monitorRunDependencies&&s.monitorRunDependencies(la),la==0&&(nl!==null&&(clearInterval(nl),nl=null),Yr)){var ee=Yr;Yr=null,ee()}}s.preloadedImages={},s.preloadedAudios={};function Ws(G){s.onAbort&&s.onAbort(G),G="Aborted("+G+")",D(G),oe=!0,ue=1,G+=". Build with -s ASSERTIONS=1 for more info.";var ee=new WebAssembly.RuntimeError(G);throw o(ee),ee}var Xg="data:application/octet-stream;base64,";function eh(G){return G.startsWith(Xg)}function Bs(G){return G.startsWith("file://")}var vn;vn="tfjs-backend-wasm.wasm",eh(vn)||(vn=b(vn));function Fp(G){try{if(G==vn&&J)return new Uint8Array(J);if(w)return w(G);throw"both async and sync fetching of the wasm failed"}catch(ee){Ws(ee)}}function Yg(){if(!J&&(h||m)){if(typeof fetch=="function"&&!Bs(vn))return fetch(vn,{credentials:"same-origin"}).then(function(G){if(!G.ok)throw"failed to load wasm binary file at '"+vn+"'";return G.arrayBuffer()}).catch(function(){return Fp(vn)});if(x)return new Promise(function(G,ee){x(vn,function(de){G(new Uint8Array(de))},ee)})}return Promise.resolve().then(function(){return Fp(vn)})}function Zg(){var G={env:sl,wasi_snapshot_preview1:sl};function ee(Ge,Ve){var Ot=Ge.exports;s.asm=Ot,ae=s.asm.memory,zs(ae.buffer),Xr=s.asm.__indirect_function_table,Oa(s.asm.__wasm_call_ctors),Qd("wasm-instantiate")}Kg("wasm-instantiate");function de(Ge){ee(Ge.instance)}function Te(Ge){return Yg().then(function(Ve){return WebAssembly.instantiate(Ve,G)}).then(function(Ve){return Ve}).then(Ge,function(Ve){D("failed to asynchronously prepare wasm: "+Ve),Ws(Ve)})}function Je(){return!J&&typeof WebAssembly.instantiateStreaming=="function"&&!eh(vn)&&!Bs(vn)&&typeof fetch=="function"?fetch(vn,{credentials:"same-origin"}).then(function(Ge){var Ve=WebAssembly.instantiateStreaming(Ge,G);return Ve.then(de,function(Ot){return D("wasm streaming compile failed: "+Ot),D("falling back to ArrayBuffer instantiation"),Te(de)})}):Te(de)}if(s.instantiateWasm)try{var rt=s.instantiateWasm(G,ee);return rt}catch(Ge){return D("Module.instantiateWasm callback failed with error: "+Ge),!1}return Je().catch(o),{}}var sk,ik;function Dp(G){for(;G.length>0;){var ee=G.shift();if(typeof ee=="function"){ee(s);continue}var de=ee.func;typeof de=="number"?ee.arg===void 0?Rp(de)():Rp(de)(ee.arg):de(ee.arg===void 0?null:ee.arg)}}function Zr(G){return G}function th(G){var ee=/\b_Z[\w\d_]+/g;return G.replace(ee,function(de){var Te=de;return de===Te?de:Te+" ["+de+"]"})}var La=[];function Rp(G){var ee=La[G];return ee||(G>=La.length&&(La.length=G+1),La[G]=ee=Xr.get(G)),ee}function ok(){var G=new Error;if(!G.stack){try{throw new Error}catch(ee){G=ee}if(!G.stack)return"(no stack trace available)"}return G.stack.toString()}function al(G,ee){Xr.set(G,ee),La[G]=ee}function Jg(){Ws("")}function Mp(){return 2147483648}function nh(G,ee,de){Zt.copyWithin(G,ee,ee+de)}function wn(G){try{return ae.grow(G-Mn.byteLength+65535>>>16),zs(ae.buffer),1}catch(ee){}}function ah(G){var ee=Zt.length;G=G>>>0;var de=Mp();if(G>de)return!1;for(var Te=1;Te<=4;Te*=2){var Je=ee*(1+.2/Te);Je=Math.min(Je,G+100663296);var rt=Math.min(de,Yt(Math.max(G,Je),65536)),Ge=wn(rt);if(Ge)return!0}return!1}var rl={mappings:{},buffers:[null,[],[]],printChar:function(G,ee){var de=rl.buffers[G];ee===0||ee===10?((G===1?M:D)(je(de,0)),de.length=0):de.push(ee)},varargs:void 0,get:function(){rl.varargs+=4;var G=Gt[rl.varargs-4>>2];return G},getStr:function(G){var ee=st(G);return ee},get64:function(G,ee){return G}};function Qg(G){return 0}function lk(G,ee,de,Te,Je){}function uk(G,ee,de,Te){for(var Je=0,rt=0;rt>2],Ve=Gt[ee+4>>2];ee+=8;for(var Ot=0;Ot>2]=Je,0}function eb(G){re(G)}var rh=!1,sl={abort:Jg,emscripten_get_heap_max:Mp,emscripten_memcpy_big:nh,emscripten_resize_heap:ah,fd_close:Qg,fd_seek:lk,fd_write:uk,setTempRet0:eb},zA=Zg(),pk=s.___wasm_call_ctors=function(){return(pk=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},tb=s._init=function(){return(tb=s._init=s.asm.init).apply(null,arguments)},nb=s._init_with_threads_count=function(){return(nb=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},sh=s._get_threads_count=function(){return(sh=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},ih=s._register_tensor=function(){return(ih=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},ab=s._dispose_data=function(){return(ab=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},_e=s._dispose=function(){return(_e=s._dispose=s.asm.dispose).apply(null,arguments)},rb=s._Abs=function(){return(rb=s._Abs=s.asm.Abs).apply(null,arguments)},oh=s._Add=function(){return(oh=s._Add=s.asm.Add).apply(null,arguments)},Vs=s._AddN=function(){return(Vs=s._AddN=s.asm.AddN).apply(null,arguments)},il=s._All=function(){return(il=s._All=s.asm.All).apply(null,arguments)},sb=s._Any=function(){return(sb=s._Any=s.asm.Any).apply(null,arguments)},ck=s._ArgMax=function(){return(ck=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},ib=s._AvgPool=function(){return(ib=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},dk=s._BatchMatMul=function(){return(dk=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},Us=s._Ceil=function(){return(Us=s._Ceil=s.asm.Ceil).apply(null,arguments)},ob=s._ClipByValue=function(){return(ob=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},lb=s._Conv2D=function(){return(lb=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},ub=s._Conv2DBackpropInput=function(){return(ub=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},pb=s._Cos=function(){return(pb=s._Cos=s.asm.Cos).apply(null,arguments)},cb=s._Cosh=function(){return(cb=s._Cosh=s.asm.Cosh).apply(null,arguments)},db=s._CropAndResize=function(){return(db=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},lh=s._Cumprod=function(){return(lh=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},hb=s._Cumsum=function(){return(hb=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},mb=s._DepthToSpace=function(){return(mb=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},fb=s._DepthwiseConv2dNative=function(){return(fb=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},gb=s._Elu=function(){return(gb=s._Elu=s.asm.Elu).apply(null,arguments)},bb=s._Equal=function(){return(bb=s._Equal=s.asm.Equal).apply(null,arguments)},uh=s._Exp=function(){return(uh=s._Exp=s.asm.Exp).apply(null,arguments)},yb=s._FlipLeftRight=function(){return(yb=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},xb=s._Floor=function(){return(xb=s._Floor=s.asm.Floor).apply(null,arguments)},Gs=s._FloorDiv=function(){return(Gs=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},Pp=s._FusedBatchNorm=function(){return(Pp=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},vb=s._FusedConv2D=function(){return(vb=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},wb=s._FusedDepthwiseConv2D=function(){return(wb=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},kb=s._Gather=function(){return(kb=s._Gather=s.asm.Gather).apply(null,arguments)},Ue=s._GatherNd=function(){return(Ue=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},Ib=s._Greater=function(){return(Ib=s._Greater=s.asm.Greater).apply(null,arguments)},Tb=s._GreaterEqual=function(){return(Tb=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},Sb=s._LeakyRelu=function(){return(Sb=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},Nb=s._Less=function(){return(Nb=s._Less=s.asm.Less).apply(null,arguments)},Cb=s._LessEqual=function(){return(Cb=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},_b=s._Log=function(){return(_b=s._Log=s.asm.Log).apply(null,arguments)},Op=s._LogicalAnd=function(){return(Op=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},ph=s._LogicalNot=function(){return(ph=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},ch=s._LogicalOr=function(){return(ch=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},Eb=s._LogicalXor=function(){return(Eb=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},$b=s._Max=function(){return($b=s._Max=s.asm.Max).apply(null,arguments)},Ab=s._MaxPool=function(){return(Ab=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},Fb=s._Maximum=function(){return(Fb=s._Maximum=s.asm.Maximum).apply(null,arguments)},Db=s._Mean=function(){return(Db=s._Mean=s.asm.Mean).apply(null,arguments)},Rb=s._Min=function(){return(Rb=s._Min=s.asm.Min).apply(null,arguments)},Nt=s._Minimum=function(){return(Nt=s._Minimum=s.asm.Minimum).apply(null,arguments)},Mb=s._MirrorPad=function(){return(Mb=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},Pb=s._Multiply=function(){return(Pb=s._Multiply=s.asm.Multiply).apply(null,arguments)},Ob=s._Neg=function(){return(Ob=s._Neg=s.asm.Neg).apply(null,arguments)},ol=s._NonMaxSuppressionV3=function(){return(ol=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},dh=s._NonMaxSuppressionV4=function(){return(dh=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},hh=s._NonMaxSuppressionV5=function(){return(hh=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},mh=s._NotEqual=function(){return(mh=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},Lb=s._OneHot=function(){return(Lb=s._OneHot=s.asm.OneHot).apply(null,arguments)},fh=s._PadV2=function(){return(fh=s._PadV2=s.asm.PadV2).apply(null,arguments)},zb=s._Pow=function(){return(zb=s._Pow=s.asm.Pow).apply(null,arguments)},hk=s._Prelu=function(){return(hk=s._Prelu=s.asm.Prelu).apply(null,arguments)},gh=s._Prod=function(){return(gh=s._Prod=s.asm.Prod).apply(null,arguments)},mk=s._RealDiv=function(){return(mk=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},Wb=s._Relu=function(){return(Wb=s._Relu=s.asm.Relu).apply(null,arguments)},Bb=s._Relu6=function(){return(Bb=s._Relu6=s.asm.Relu6).apply(null,arguments)},Vb=s._ResizeBilinear=function(){return(Vb=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},Ub=s._ResizeNearestNeighbor=function(){return(Ub=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},Gb=s._Reverse=function(){return(Gb=s._Reverse=s.asm.Reverse).apply(null,arguments)},Hb=s._RotateWithOffset=function(){return(Hb=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},jb=s._Round=function(){return(jb=s._Round=s.asm.Round).apply(null,arguments)},qb=s._Rsqrt=function(){return(qb=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Kb=s._ScatterNd=function(){return(Kb=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},Xb=s._SelectV2=function(){return(Xb=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},Yb=s._Sigmoid=function(){return(Yb=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},Zb=s._Sin=function(){return(Zb=s._Sin=s.asm.Sin).apply(null,arguments)},Jb=s._Softmax=function(){return(Jb=s._Softmax=s.asm.Softmax).apply(null,arguments)},Qb=s._SparseFillEmptyRows=function(){return(Qb=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},ey=s._SparseReshape=function(){return(ey=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},ty=s._SparseSegmentReduction=function(){return(ty=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},ny=s._Sqrt=function(){return(ny=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},ay=s._Square=function(){return(ay=s._Square=s.asm.Square).apply(null,arguments)},ry=s._SquaredDifference=function(){return(ry=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},sy=s._Step=function(){return(sy=s._Step=s.asm.Step).apply(null,arguments)},iy=s._StridedSlice=function(){return(iy=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},oy=s._Sub=function(){return(oy=s._Sub=s.asm.Sub).apply(null,arguments)},ly=s._Sum=function(){return(ly=s._Sum=s.asm.Sum).apply(null,arguments)},uy=s._Tan=function(){return(uy=s._Tan=s.asm.Tan).apply(null,arguments)},py=s._Tanh=function(){return(py=s._Tanh=s.asm.Tanh).apply(null,arguments)},cy=s._Tile=function(){return(cy=s._Tile=s.asm.Tile).apply(null,arguments)},dy=s._TopK=function(){return(dy=s._TopK=s.asm.TopK).apply(null,arguments)},hy=s._Transform=function(){return(hy=s._Transform=s.asm.Transform).apply(null,arguments)},my=s._Transpose=function(){return(my=s._Transpose=s.asm.Transpose).apply(null,arguments)},fy=s.__FusedMatMul=function(){return(fy=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},gy=s._malloc=function(){return(gy=s._malloc=s.asm.malloc).apply(null,arguments)},by=s._free=function(){return(by=s._free=s.asm.free).apply(null,arguments)},yy=s.___errno_location=function(){return(yy=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},xy=s._emscripten_main_thread_process_queued_calls=function(){return(xy=s._emscripten_main_thread_process_queued_calls=s.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},bh=s.stackSave=function(){return(bh=s.stackSave=s.asm.stackSave).apply(null,arguments)},yh=s.stackRestore=function(){return(yh=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},Lp=s.stackAlloc=function(){return(Lp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},vy=s.dynCall_iijjiiii=function(){return(vy=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},wy=s.dynCall_jiji=function(){return(wy=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=Ee;var ll;function zp(G){this.name="ExitStatus",this.message="Program terminated with exit("+G+")",this.status=G}Yr=function G(){ll||Wp(),ll||(Yr=G)};function Wp(G){if(G=G||p,la>0||(Kd(),la>0))return;function ee(){ll||(ll=!0,s.calledRun=!0,!oe&&(Xd(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),Yd()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),ee()},1)):ee()}s.run=Wp;function fk(G){ue=G,Ap()||(s.onExit&&s.onExit(G),oe=!0),c(G,new zp(G))}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();Wp();var ul;l&&(ul={uncaughtException:process.listeners("uncaughtException").filter(function(G){return!l.uncaughtException.indexOf(G)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(G){return!l.unhandledRejection.indexOf(G)>-1})});var pl;if(typeof r!="undefined")pl=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")pl=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(ul){var ky=pl._dispose;pl._dispose=function(){ky(),ul.uncaughtException.forEach(function(G){process.removeListener("uncaughtException",G)}),ul.unhandledRejection.forEach(function(G){process.removeListener("unhandledRejection",G)})}}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)}),Em=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}},Tc=class{refCount(e){return pa("refCount")}incRef(e){return pa("incRef")}timerAvailable(){return!0}time(e){return pa("time")}read(e){return pa("read")}readSync(e){return pa("readSync")}readToGPU(e,t){return pa("readToGPU")}numDataIds(){return pa("numDataIds")}disposeData(e,t){return pa("disposeData")}write(e,t,n){return pa("write")}move(e,t,n,a,r){return pa("move")}memory(){return pa("memory")}floatPrecision(){return pa("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return pa("dispose")}};function pa(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 tT(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,Zh(e,t,n)}function oD(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--,Zh(e,n,a),Zh(t,n,a)}function oc(e,t,n){return Math.max(e,Math.min(t,n))}function lD(e){return e%2===0?e:e+1}function Zh(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function uD(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function Ii(e){R(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function oi(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||hn(e)&&!n)for(let a=0;a0,n){return new Promise((a,r)=>{let s=0,i=()=>{if(e()){a();return}s++;let o=t(s);if(n!=null&&s>=n){r();return}setTimeout(i,o)};i()})}function bD(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),R(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),R(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 nT(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 aT(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 rT(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 sT(e,t){for(let n=0;nt+=n.length),t}function ns(e){return typeof e=="string"||e instanceof String}function lT(e){return typeof e=="boolean"}function uT(e){return typeof e=="number"}function $m(e){return Array.isArray(e)?$m(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":uT(e)?"float32":ns(e)?"string":lT(e)?"bool":"float32"}function ls(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Jh(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function pT(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 pT(0,e,t,n)}function jx(e,t){let n=Am(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return vl(e,new Float32Array(n));if(t==="int32")return vl(e,new Int32Array(n));if(t==="bool")return vl(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function qx(e){e.forEach(t=>{R(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function vD(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 kD(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(ID(t,a[0],a[1]),a.join("="))),t}function ID(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 X(){return Xx}var Xx=null;function SD(e){Xx=e}var $y;function dT(){if($y==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");$y=e}return $y}function ND(){let e=dT();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Yx(e,t){let n=ND();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var Ul="Abs",Gl="Acos",Hl="Acosh",xs="Add",Ti="AddN",jl="All",ql="Any",Si="ArgMax",Sc="ArgMin",Kl="Asin",Xl="Asinh",Yl="Atan",Zl="Atanh",Jl="Atan2",Ni="AvgPool",Fm="AvgPoolGrad",Nc="AvgPool3D",Dm="AvgPool3DGrad",Ci="BatchMatMul",Ql="BatchToSpaceND",Rm="Bincount",hT="BroadcastTo",Mm="BroadcastArgs",_i="Cast",Ei="Ceil",vs="ClipByValue",Pm="Complex",Cc="ComplexAbs",eu="Concat",$i="Conv2D",Om="Conv2DBackpropFilter",Ai="Conv2DBackpropInput",_c="Conv3D",Lm="Conv3DBackpropFilterV2",zm="Conv3DBackpropInputV2",Fi="Cos",Di="Cosh",tu="Cumprod",Ri="Cumsum",nu="CropAndResize",Wm="DenseBincount",au="DepthToSpace",Mi="DepthwiseConv2dNative",Bm="DepthwiseConv2dNativeBackpropFilter",Vm="DepthwiseConv2dNativeBackpropInput",Um="Diag",Ec="Dilation2D",Qh="Dilation2DBackpropInput",em="Dilation2DBackpropFilter",Pi="RealDiv",Gm="Einsum",Oi="Elu",Hm="EluGrad",ru="Erf",su="Equal",Li="Exp",iu="ExpandDims",ou="Expm1",jm="FFT",$c="Fill",lu="FlipLeftRight",zi="Floor",Wi="FloorDiv",Bi="FusedBatchNorm",uu="GatherV2",pu="GatherNd",cu="Greater",Vi="GreaterEqual",Ui="Identity",qm="IFFT",Km="Imag",du="IsFinite",hu="IsInf",mu="IsNan",Gi="LeakyRelu",fu="Less",gu="LessEqual",Xm="LinSpace",Hi="Log",bu="Log1p",yu="LogicalAnd",xu="LogicalNot",vu="LogicalOr",mT="LogicalXor",fT="LogSoftmax",CD="LowerBound",Ac="LRN",Ym="LRNGrad",ji="Max",qi="Maximum",Ki="MaxPool",Zm="MaxPoolGrad",Fc="MaxPool3D",Jm="MaxPool3DGrad",Qm="MaxPoolWithArgmax",Xi="Mean",Yi="Min",Zi="Minimum",Ji="MirrorPad",wu="Mod",ef="Multinomial",Qi="Multiply",ku="Neg",Iu="NotEqual",Tu="NonMaxSuppressionV3",Su="NonMaxSuppressionV4",Nu="NonMaxSuppressionV5",Cu="OnesLike",eo="OneHot",_u="Pack",to="PadV2",_D="Pool",no="Pow",ao="Prelu",ro="Prod",tf="RaggedTensorToTensor",Dc="Range",nf="Real",Eu="Reciprocal",so="Relu",$u="Reshape",io="ResizeNearestNeighbor",af="ResizeNearestNeighborGrad",oo="ResizeBilinear",rf="ResizeBilinearGrad",lo="Relu6",uo="Reverse",po="Round",co="Rsqrt",Au="ScatterNd",sf="SearchSorted",Fu="Select",Du="Selu",Ru="Slice",ho="Sin",Mu="Sinh",Pu="Sign",mo="Sigmoid",Ou="Softplus",fo="Sqrt",go="Sum",Lu="SpaceToBatchND",zu="SplitV",bo="Softmax",Rc="SparseFillEmptyRows",Wu="SparseReshape",Mc="SparseSegmentMean",Pc="SparseSegmentSum",of="SparseToDense",yo="SquaredDifference",Oc="Square",Bu="StridedSlice",Lc="StringNGrams",zc="StringSplit",Wc="StringToHashBucketFast",xo="Sub",vo="Tan",wo="Tanh",ws="Tile",Vu="TopK",Uu="Transform",Ar="Transpose",lf="Unique",Gu="Unpack",Bc="UnsortedSegmentSum",ED="UpperBound",Hu="ZerosLike",ks="Step",tm="FromPixels",ju="RotateWithOffset",li="_FusedMatMul",ui="FusedConv2D",pi="FusedDepthwiseConv2D";function ts(...e){X().getBool("IS_TEST")||X().getBool("PROD")||console.warn(...e)}function $D(...e){X().getBool("IS_TEST")||X().getBool("PROD")||console.log(...e)}var Sl=Yx("kernelRegistry",()=>new Map),lc=Yx("gradRegistry",()=>new Map);function nm(e,t){let n=Zx(e,t);return Sl.get(n)}function Hy(e){return lc.get(e)}function am(e){let t=Sl.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 Vc(e){let{kernelName:t,backendName:n}=e,a=Zx(t,n);Sl.has(a)&&ts(`The kernel '${t}' for backend '${n}' is already registered`),Sl.set(a,e)}function gT(e){let{kernelName:t}=e;lc.has(t)&&X().getBool("DEBUG")&&ts(`Overriding the gradient for '${t}'`),lc.set(t,e)}function AD(e,t){let n=Zx(e,t);if(!Sl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Sl.delete(n)}function FD(e){if(!lc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);lc.delete(e)}function DD(e,t){am(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});Vc(a)})}function Zx(e,t){return`${t}_${e}`}var v={};Fe(v,{arraysEqual:()=>ys,assert:()=>R,assertNonNegativeIntegerDimensions:()=>qx,assertNonNull:()=>Ii,assertShapesMatch:()=>_n,bytesFromStringArray:()=>oT,bytesPerElement:()=>Gy,checkConversionForErrors:()=>sT,clamp:()=>oc,computeStrides:()=>Vl,createScalarValue:()=>zD,createShuffledIndices:()=>fD,decodeString:()=>rm,distSquared:()=>cD,encodeString:()=>Gc,fetch:()=>BD,fingerPrint64:()=>LD,flatten:()=>oi,getArrayFromDType:()=>rT,getTypedArrayFromDType:()=>aT,hasEncodingLoss:()=>yD,hexToLong:()=>Uc,indexToLoc:()=>wD,inferDtype:()=>$m,inferFromImplicitShape:()=>bD,isBoolean:()=>lT,isFunction:()=>ls,isInt:()=>Tl,isNumber:()=>uT,isPromise:()=>Kx,isScalarShape:()=>dD,isString:()=>ns,isTypedArray:()=>hn,isValidDtype:()=>iT,locToIndex:()=>vD,makeOnesTypedArray:()=>jx,makeZerosNestedTypedArray:()=>xD,makeZerosTypedArray:()=>Am,nearestDivisor:()=>Jh,nearestLargerEven:()=>lD,now:()=>uc,parseAxisParam:()=>Aa,randUniform:()=>pD,repeatedTry:()=>gD,rightPad:()=>ac,shuffle:()=>tT,shuffleCombo:()=>oD,sizeFromShape:()=>bt,sizeToSquarishShape:()=>mD,squeezeShape:()=>nT,sum:()=>uD,swap:()=>Zh,tanh:()=>hD,toNestedArray:()=>vl,toTypedArray:()=>uf});var Nk=bs(GF()),Ys=Nk.default||Nk;function Uc(e){return Ys.fromString(e,!0,16)}var bT=Uc("c3a5c85c97cb3127"),Ks=Uc("b492b66fbe98f273"),kn=Uc("9ae16a3b2f90404f");function jy(e){return e.xor(e.shru(47))}function yT(e,t,n){let a=e.slice(t,t+n);return Ys.fromBytes(Array.from(a),!0,!0)}function gt(e,t){return yT(e,t,8)}function Ck(e,t){return yT(e,t,4)}function Jt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function ss(e,t,n=Uc("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 RD(e,t,n,a,r,s){r=r.add(e),s=Jt(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(Jt(r,44)),[r.add(a),s.add(i)]}function Ch(e,t,n,a){return RD(gt(e,t),gt(e,t+8),gt(e,t+16),gt(e,t+24),n,a)}function MD(e,t=e.length){if(t>=8){let n=kn.add(t*2),a=gt(e,0).add(kn),r=gt(e,t-8),s=Jt(r,37).mul(n).add(a),i=Jt(a,25).add(r).mul(n);return ss(s,i,n)}if(t>=4){let n=kn.add(t*2),a=Ck(e,0);return ss(a.shl(3).add(t),Ck(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 jy(kn.mul(s).xor(bT.mul(i))).mul(kn)}return kn}function PD(e,t=e.length){let n=kn.add(t*2),a=gt(e,0).mul(Ks),r=gt(e,8),s=gt(e,t-8).mul(n),i=gt(e,t-16).mul(kn);return ss(Jt(a.add(r),43).add(Jt(s,30)).add(i),a.add(Jt(r.add(kn),18)).add(s),n)}function OD(e,t=e.length){let n=kn.add(t*2),a=gt(e,0).mul(kn),r=gt(e,8),s=gt(e,t-8).mul(n),i=gt(e,t-16).mul(kn),o=Jt(a.add(r),43).add(Jt(s,30)).add(i),l=ss(o,a.add(Jt(r.add(kn),18)).add(s),n),u=gt(e,16).mul(n),p=gt(e,24),d=o.add(gt(e,t-32)).mul(n),c=l.add(gt(e,t-24)).mul(n);return ss(Jt(u.add(p),43).add(Jt(d,30)).add(c),u.add(Jt(p.add(a),18)).add(d),n)}function LD(e,t=e.length){let n=Ys.fromNumber(81,!0);if(t<=32)return t<=16?MD(e,t):PD(e,t);if(t<=64)return OD(e,t);let a=n,r=n.mul(Ks).add(113),s=jy(r.mul(kn).add(113)).mul(kn),i=[Ys.UZERO,Ys.UZERO],o=[Ys.UZERO,Ys.UZERO];a=a.mul(kn).add(gt(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=Jt(a.add(r).add(i[0]).add(gt(e,l+8)),37).mul(Ks),r=Jt(r.add(i[1]).add(gt(e,l+48)),42).mul(Ks),a=a.xor(o[1]),r=r.add(i[0]).add(gt(e,l+40)),s=Jt(s.add(o[0]),33).mul(Ks),i=Ch(e,l,i[1].mul(Ks),a.add(o[0])),o=Ch(e,l+32,s.add(o[1]),r.add(gt(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=Ks.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=Jt(a.add(r).add(i[0]).add(gt(e,l+8)),37).mul(d),r=Jt(r.add(i[1]).add(gt(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(gt(e,l+40))),s=Jt(s.add(o[0]),33).mul(d),i=Ch(e,l,i[1].mul(d),a.add(o[0])),o=Ch(e,l+32,s.add(o[1]),r.add(gt(e,l+16))),[s,a]=[a,s],ss(ss(i[0],o[0],d).add(jy(r).mul(bT)).add(s),ss(i[1],o[1],d).add(a),d)}function zD(e,t){return t==="string"?Gc(e):uf([e],t)}function WD(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function uf(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=oi(e)),X().getBool("DEBUG")&&sT(e,t),WD(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=uc();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:uc()-i})}if(X().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 HD(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(!ys(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 _k=20,Up=3,Ay=7;function qD(e,t,n,a){let r=Vl(t),s=KD(e,t,n,r),i=t.length,o=Wh(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(` +"use strict";var faceapi=(()=>{var uy=Object.defineProperty;var tF=Object.getOwnPropertyDescriptor;var nF=Object.getOwnPropertyNames;var aF=Object.prototype.hasOwnProperty;var Kr=(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 ah=(e,t)=>{for(var n in t)uy(e,n,{get:t[n],enumerable:!0})},rF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of nF(t))!aF.call(e,r)&&r!==n&&uy(e,r,{get:()=>t[r],enumerable:!(a=tF(t,r))||a.enumerable});return e};var sF=e=>rF(uy({},"__esModule",{value:!0}),e);var Sce={};ah(Sce,{AgeGenderNet:()=>vd,BoundingBox:()=>No,Box:()=>st,ComposableTask:()=>wa,ComputeAllFaceDescriptorsTask:()=>Ur,ComputeFaceDescriptorsTaskBase:()=>Sd,ComputeSingleFaceDescriptorTask:()=>Gr,DetectAllFaceLandmarksTask:()=>Nd,DetectAllFacesTask:()=>bp,DetectFaceLandmarksTaskBase:()=>Td,DetectFacesTaskBase:()=>_d,DetectSingleFaceLandmarksTask:()=>Cd,DetectSingleFaceTask:()=>Ed,Dimensions:()=>bn,FACE_EXPRESSION_LABELS:()=>E1,FaceDetection:()=>bt,FaceDetectionNet:()=>P1,FaceExpressionNet:()=>xd,FaceExpressions:()=>Br,FaceLandmark68Net:()=>Mo,FaceLandmark68TinyNet:()=>wd,FaceLandmarkNet:()=>D1,FaceLandmarks:()=>aa,FaceLandmarks5:()=>f1,FaceLandmarks68:()=>_o,FaceMatch:()=>ap,FaceMatcher:()=>Ad,FaceRecognitionNet:()=>Po,Gender:()=>mg,LabeledBox:()=>rp,LabeledFaceDescriptors:()=>fr,NetInput:()=>br,NeuralNetwork:()=>rn,ObjectDetection:()=>Or,Point:()=>Fe,PredictedBox:()=>g1,Rect:()=>Co,SsdMobilenetv1:()=>As,SsdMobilenetv1Options:()=>va,TinyFaceDetector:()=>Wo,TinyFaceDetectorOptions:()=>Id,TinyYolov2:()=>zo,TinyYolov2Options:()=>Za,allFaces:()=>wce,allFacesSsdMobilenetv1:()=>v$,allFacesTinyYolov2:()=>vce,awaitMediaLoaded:()=>I1,bufferToImage:()=>S1,computeFaceDescriptor:()=>ice,createCanvas:()=>Fo,createCanvasFromMedia:()=>fd,createFaceDetectionNet:()=>Qpe,createFaceRecognitionNet:()=>Vpe,createSsdMobilenetv1:()=>s$,createTinyFaceDetector:()=>kce,createTinyYolov2:()=>nce,detectAllFaces:()=>Ig,detectFaceLandmarks:()=>y$,detectFaceLandmarksTiny:()=>sce,detectLandmarks:()=>yce,detectSingleFace:()=>xce,draw:()=>$1,env:()=>Je,euclideanDistance:()=>z1,extendWithAge:()=>yg,extendWithFaceDescriptor:()=>bg,extendWithFaceDetection:()=>Eo,extendWithFaceExpressions:()=>pg,extendWithFaceLandmarks:()=>hp,extendWithGender:()=>xg,extractFaceTensors:()=>op,extractFaces:()=>ip,fetchImage:()=>_pe,fetchJson:()=>C1,fetchNetWeights:()=>Epe,fetchOrThrow:()=>zr,fetchVideo:()=>Ape,getContext2dOrThrow:()=>Gn,getMediaDimensions:()=>$o,imageTensorToCanvas:()=>T1,imageToSquare:()=>N1,inverseSigmoid:()=>wpe,iou:()=>c1,isMediaElement:()=>ng,isMediaLoaded:()=>md,isWithAge:()=>Upe,isWithFaceDetection:()=>gr,isWithFaceExpressions:()=>A1,isWithFaceLandmarks:()=>Ro,isWithGender:()=>Gpe,loadAgeGenderModel:()=>fce,loadFaceDetectionModel:()=>gce,loadFaceExpressionModel:()=>mce,loadFaceLandmarkModel:()=>cce,loadFaceLandmarkTinyModel:()=>dce,loadFaceRecognitionModel:()=>hce,loadSsdMobilenetv1Model:()=>x$,loadTinyFaceDetectorModel:()=>uce,loadTinyYolov2Model:()=>pce,loadWeightMap:()=>_1,locateFaces:()=>bce,matchDimensions:()=>$pe,minBbox:()=>d1,nets:()=>Qe,nonMaxSuppression:()=>h1,normalize:()=>Xa,padToSquare:()=>m1,predictAgeAndGender:()=>lce,recognizeFaceExpressions:()=>oce,resizeResults:()=>w$,resolveInput:()=>Ao,shuffleArray:()=>vpe,sigmoid:()=>cd,ssdMobilenetv1:()=>b$,tf:()=>Pe,tinyFaceDetector:()=>ace,tinyYolov2:()=>rce,toNetInput:()=>yt,utils:()=>p1,validateConfig:()=>O1,version:()=>Ice});var Pe={};ah(Pe,{Abs:()=>$l,Acos:()=>Fl,Acosh:()=>Dl,AdadeltaOptimizer:()=>vf,AdagradOptimizer:()=>wf,AdamOptimizer:()=>kf,AdamaxOptimizer:()=>If,Add:()=>fs,AddN:()=>fi,All:()=>Rl,Any:()=>Ml,ArgMax:()=>gi,ArgMin:()=>uc,Asin:()=>Pl,Asinh:()=>Ol,Atan:()=>Ll,Atan2:()=>Bl,Atanh:()=>zl,AvgPool:()=>bi,AvgPool3D:()=>pc,AvgPool3DGrad:()=>pm,AvgPoolGrad:()=>um,BackendWasm:()=>RA,BatchMatMul:()=>yi,BatchToSpaceND:()=>Wl,Bincount:()=>cm,BroadcastArgs:()=>dm,BroadcastTo:()=>qI,Callback:()=>c2,CallbackList:()=>fN,Cast:()=>xi,Ceil:()=>vi,ClipByValue:()=>gs,Complex:()=>hm,ComplexAbs:()=>cc,Concat:()=>Vl,Conv2D:()=>wi,Conv2DBackpropFilter:()=>mm,Conv2DBackpropInput:()=>ki,Conv3D:()=>dc,Conv3DBackpropFilterV2:()=>fm,Conv3DBackpropInputV2:()=>gm,Cos:()=>Ii,Cosh:()=>Si,CropAndResize:()=>Gl,Cumprod:()=>Ul,Cumsum:()=>Ti,CustomCallback:()=>bN,DataStorage:()=>im,DenseBincount:()=>bm,DepthToSpace:()=>Hl,DepthwiseConv2dNative:()=>Ni,DepthwiseConv2dNativeBackpropFilter:()=>ym,DepthwiseConv2dNativeBackpropInput:()=>xm,Diag:()=>vm,Dilation2D:()=>hc,Dilation2DBackpropFilter:()=>$h,Dilation2DBackpropInput:()=>Ah,ENV:()=>Ex,EarlyStopping:()=>d2,Einsum:()=>wm,Elu:()=>_i,EluGrad:()=>km,Environment:()=>HI,Equal:()=>ql,Erf:()=>jl,Exp:()=>Ei,ExpandDims:()=>Kl,Expm1:()=>Xl,FFT:()=>Im,Fill:()=>mc,FlipLeftRight:()=>Yl,Floor:()=>Ai,FloorDiv:()=>$i,FromPixels:()=>Fh,FusedBatchNorm:()=>Fi,FusedConv2D:()=>ei,FusedDepthwiseConv2D:()=>ti,GPGPUContext:()=>Th,GatherNd:()=>Jl,GatherV2:()=>Zl,GraphModel:()=>N0,Greater:()=>Ql,GreaterEqual:()=>Di,History:()=>gN,IFFT:()=>Sm,Identity:()=>Ri,Imag:()=>Tm,InputSpec:()=>zt,IsFinite:()=>eu,IsInf:()=>tu,IsNan:()=>nu,KernelBackend:()=>lc,LRN:()=>fc,LRNGrad:()=>Cm,LayerVariable:()=>lN,LayersModel:()=>Er,LeakyRelu:()=>Mi,Less:()=>au,LessEqual:()=>ru,LinSpace:()=>Nm,Log:()=>Pi,Log1p:()=>su,LogSoftmax:()=>XI,LogicalAnd:()=>iu,LogicalNot:()=>ou,LogicalOr:()=>lu,LogicalXor:()=>KI,LowerBound:()=>XF,MathBackendWebGL:()=>qf,Max:()=>Oi,MaxPool:()=>zi,MaxPool3D:()=>gc,MaxPool3DGrad:()=>Em,MaxPoolGrad:()=>_m,MaxPoolWithArgmax:()=>Am,Maximum:()=>Li,Mean:()=>Bi,Min:()=>Wi,Minimum:()=>Vi,MirrorPad:()=>Ui,Mod:()=>uu,MomentumOptimizer:()=>Sf,Multinomial:()=>$m,Multiply:()=>Gi,Neg:()=>pu,NonMaxSuppressionV3:()=>du,NonMaxSuppressionV4:()=>hu,NonMaxSuppressionV5:()=>mu,NotEqual:()=>cu,OP_SCOPE_SUFFIX:()=>Dx,OneHot:()=>Hi,OnesLike:()=>fu,Optimizer:()=>Dr,OptimizerConstructors:()=>Xr,Pack:()=>gu,PadV2:()=>ji,Pool:()=>YF,Pow:()=>qi,Prelu:()=>Ki,Prod:()=>Xi,RMSPropOptimizer:()=>Tf,RNN:()=>hr,RaggedGather:()=>Fm,RaggedTensorToTensor:()=>Dm,Range:()=>bc,Rank:()=>Cy,Real:()=>Rm,RealDiv:()=>Ci,Reciprocal:()=>bu,Reduction:()=>vn,Relu:()=>Yi,Relu6:()=>Qi,Reshape:()=>yu,ResizeBilinear:()=>Ji,ResizeBilinearGrad:()=>Pm,ResizeNearestNeighbor:()=>Zi,ResizeNearestNeighborGrad:()=>Mm,Reverse:()=>eo,RotateWithOffset:()=>Ru,Round:()=>to,Rsqrt:()=>no,SGDOptimizer:()=>Hc,ScatterNd:()=>xu,SearchSorted:()=>Om,Select:()=>vu,Selu:()=>wu,Sequential:()=>Il,Sigmoid:()=>ro,Sign:()=>Su,Sin:()=>ao,Sinh:()=>Iu,Slice:()=>ku,Softmax:()=>oo,Softplus:()=>Tu,SpaceToBatchND:()=>Nu,SparseFillEmptyRows:()=>yc,SparseReshape:()=>_u,SparseSegmentMean:()=>xc,SparseSegmentSum:()=>vc,SparseToDense:()=>Lm,SplitV:()=>Cu,Sqrt:()=>so,Square:()=>wc,SquaredDifference:()=>lo,Step:()=>ys,StridedSlice:()=>Eu,StringNGrams:()=>kc,StringSplit:()=>Ic,StringToHashBucketFast:()=>Sc,Sub:()=>uo,Sum:()=>io,SymbolicTensor:()=>za,Tan:()=>po,Tanh:()=>co,Tensor:()=>Te,TensorBuffer:()=>Ht,Tile:()=>bs,TopK:()=>Au,Transform:()=>$u,Transpose:()=>_r,Unique:()=>zm,Unpack:()=>Fu,UnsortedSegmentSum:()=>Tc,UpperBound:()=>ZF,Variable:()=>ss,ZerosLike:()=>Du,_FusedMatMul:()=>Qs,abs:()=>Lt,acos:()=>qx,acosh:()=>Kx,add:()=>Y,addN:()=>BS,all:()=>Gm,any:()=>Yp,argMax:()=>ri,argMin:()=>Xx,asin:()=>Yx,asinh:()=>Zx,atan:()=>Jx,atan2:()=>Qx,atanh:()=>ev,avgPool:()=>ga,avgPool3d:()=>nv,backend:()=>kS,backend_util:()=>N,basicLSTMCell:()=>GS,batchNorm:()=>ws,batchNorm2d:()=>av,batchNorm3d:()=>rv,batchNorm4d:()=>sv,batchToSpaceND:()=>Rc,bincount:()=>iv,booleanMaskAsync:()=>NT,broadcastArgs:()=>HS,broadcastTo:()=>Xs,broadcast_util:()=>Mu,browser:()=>ho,buffer:()=>Oe,callbacks:()=>gH,cast:()=>oe,ceil:()=>ov,clipByValue:()=>Qt,clone:()=>sr,complex:()=>Ar,concat:()=>Ze,concat1d:()=>lv,concat2d:()=>uv,concat3d:()=>pv,concat4d:()=>cv,constraints:()=>cN,conv1d:()=>Hm,conv2d:()=>$t,conv2dTranspose:()=>jm,conv3d:()=>hv,conv3dTranspose:()=>mv,copyRegisteredKernels:()=>tD,cos:()=>Mc,cosh:()=>qm,cosineWindow:()=>ff,cumprod:()=>Zp,cumsum:()=>Km,customGrad:()=>lr,data:()=>P2,denseBincount:()=>qS,deprecationWarn:()=>Bx,depthToSpace:()=>fv,depthwiseConv2d:()=>ks,deregisterOp:()=>xH,device_util:()=>Ec,diag:()=>KS,dilation2d:()=>gv,disableDeprecationWarnings:()=>ER,dispose:()=>$e,disposeVariables:()=>AR,div:()=>he,divNoNan:()=>bv,dot:()=>yv,dropout:()=>Hv,einsum:()=>XS,elu:()=>Pu,enableDebugMode:()=>_R,enableProdMode:()=>CR,enclosingPowerOfTwo:()=>jv,engine:()=>er,env:()=>H,equal:()=>Qn,erf:()=>xv,euclideanNorm:()=>kv,exp:()=>fn,expandDims:()=>hn,expm1:()=>Iv,eye:()=>Xm,fft:()=>Uc,fill:()=>gn,findBackend:()=>OR,findBackendFactory:()=>LR,floor:()=>Lu,floorDiv:()=>Um,forceHalfFloat:()=>eE,fused:()=>vl,gather:()=>zu,gatherND:()=>AT,gather_util:()=>Wx,getBackend:()=>MR,getGradient:()=>Ty,getKernel:()=>Dh,getKernelsForBackend:()=>Rh,getThreadsCount:()=>ope,gpgpu_util:()=>F_,grad:()=>lO,grads:()=>uO,greater:()=>Vn,greaterEqual:()=>Is,ifft:()=>xl,imag:()=>$c,image:()=>Nr,inTopKAsync:()=>$T,initializers:()=>dN,input:()=>$N,io:()=>Ut,irfft:()=>cf,isFinite:()=>Sv,isInf:()=>Tv,isNaN:()=>Nv,keep:()=>Zt,kernel_impls:()=>dr,layers:()=>hN,leakyRelu:()=>Pc,less:()=>Ym,lessEqual:()=>Ss,linalg:()=>Xv,linspace:()=>eT,loadGraphModel:()=>k6,loadGraphModelSync:()=>I6,loadLayersModel:()=>TU,localResponseNormalization:()=>Cv,log:()=>ea,log1p:()=>Oc,logSigmoid:()=>_v,logSoftmax:()=>Jm,logSumExp:()=>Qm,logicalAnd:()=>Aa,logicalNot:()=>Lc,logicalOr:()=>ef,logicalXor:()=>Ev,losses:()=>UT,lowerBound:()=>nT,matMul:()=>Ae,math:()=>wS,max:()=>_a,maxPool:()=>Dt,maxPool3d:()=>Av,maxPoolWithArgmax:()=>aT,maximum:()=>cr,mean:()=>Nt,memory:()=>Oh,meshgrid:()=>rT,metrics:()=>l2,min:()=>Jp,minimum:()=>Bu,mirrorPad:()=>$v,mod:()=>Fv,model:()=>IU,models:()=>u2,moments:()=>zc,movingAverage:()=>CT,mul:()=>z,multiRNNCell:()=>sT,multinomial:()=>iT,neg:()=>vt,nextFrame:()=>Yv,norm:()=>Ou,notEqual:()=>oi,oneHot:()=>fl,ones:()=>Zn,onesLike:()=>ta,op:()=>L,outerProduct:()=>oT,pad:()=>ba,pad1d:()=>lT,pad2d:()=>uT,pad3d:()=>pT,pad4d:()=>cT,pool:()=>Dv,pow:()=>$r,prelu:()=>Wc,print:()=>Ox,prod:()=>Rv,profile:()=>$R,raggedGather:()=>dT,raggedTensorToTensor:()=>hT,rand:()=>mT,randomGamma:()=>fT,randomNormal:()=>nf,randomStandardNormal:()=>gT,randomUniform:()=>Wu,range:()=>bl,ready:()=>RR,real:()=>gl,reciprocal:()=>Ov,registerBackend:()=>Vm,registerCallbackConstructor:()=>NU,registerGradient:()=>YI,registerKernel:()=>Nc,registerOp:()=>yH,regularizers:()=>p2,relu:()=>Xe,relu6:()=>af,removeBackend:()=>PR,reshape:()=>B,reverse:()=>fa,reverse1d:()=>bT,reverse2d:()=>yT,reverse3d:()=>xT,reverse4d:()=>vT,rfft:()=>Gc,round:()=>rf,rsqrt:()=>sf,scalar:()=>ye,scatterND:()=>_T,scatter_util:()=>Vx,searchSorted:()=>tf,selu:()=>of,separableConv2d:()=>Ts,sequential:()=>SU,serialization:()=>ne,setBackend:()=>DR,setPlatform:()=>zR,setThreadsCount:()=>ipe,setWasmPath:()=>rpe,setWasmPaths:()=>spe,setWebGLContext:()=>n_,setdiff1dAsync:()=>wT,sigmoid:()=>ha,sign:()=>Lv,signal:()=>VT,sin:()=>lf,sinh:()=>uf,slice:()=>We,slice1d:()=>Vc,slice2d:()=>pf,slice3d:()=>fo,slice4d:()=>yl,slice_util:()=>jt,softmax:()=>ja,softplus:()=>mo,spaceToBatchND:()=>Bc,sparse:()=>GT,sparseToDense:()=>ET,spectral:()=>WT,split:()=>Ln,sqrt:()=>ln,square:()=>lt,squaredDifference:()=>df,squeeze:()=>Ns,stack:()=>Ft,step:()=>go,stridedSlice:()=>zv,string:()=>HT,sub:()=>pe,sum:()=>fe,sumOutType:()=>Wm,tan:()=>Bv,tanh:()=>si,tensor:()=>On,tensor1d:()=>Ke,tensor2d:()=>Ea,tensor3d:()=>Fc,tensor4d:()=>Fa,tensor5d:()=>kT,tensor6d:()=>IT,tensor_util:()=>Ba,test_util:()=>OS,tidy:()=>P,tile:()=>Pn,time:()=>FR,topk:()=>Wv,train:()=>Bs,transpose:()=>Ce,truncatedNormal:()=>hf,unique:()=>Vv,unregisterGradient:()=>eD,unregisterKernel:()=>QF,unsortedSegmentSum:()=>mf,unstack:()=>ct,upcastType:()=>ma,upperBound:()=>ST,util:()=>v,valueAndGrad:()=>pO,valueAndGrads:()=>cO,variable:()=>Uv,variableGrads:()=>tT,version:()=>ype,version_converter:()=>T6,version_core:()=>bM,version_layers:()=>yw,version_wasm:()=>lpe,version_webgl:()=>QZ,webgl:()=>eJ,webgl_util:()=>t_,where:()=>mn,whereAsync:()=>Gv,zeros:()=>It,zerosLike:()=>je});var iF=Object.create,Sx=Object.defineProperty,oF=Object.getOwnPropertyDescriptor,lF=Object.getOwnPropertyNames,uF=Object.getPrototypeOf,pF=Object.prototype.hasOwnProperty,DI=(e=>typeof Kr!="undefined"?Kr:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof Kr!="undefined"?Kr:t)[n]}):e)(function(e){if(typeof Kr!="undefined")return Kr.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')}),Wt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),_e=(e,t)=>{for(var n in t)Sx(e,n,{get:t[n],enumerable:!0})},cF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of lF(t))!pF.call(e,r)&&r!==n&&Sx(e,r,{get:()=>t[r],enumerable:!(a=oF(t,r))||a.enumerable});return e},hs=(e,t,n)=>(n=e!=null?iF(uF(e)):{},cF(t||!e||!e.__esModule?Sx(n,"default",{value:e,enumerable:!0}):n,e)),dF=Wt((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,W){this.low=S|0,this.high=M|0,this.unsigned=!!W}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 W,U,G;return M?(S>>>=0,(G=0<=S&&S<256)&&(U=i[S],U)?U:(W=u(S,(S|0)<0?-1:0,!0),G&&(i[S]=W),W)):(S|=0,(G=-128<=S&&S<128)&&(U=s[S],U)?U:(W=u(S,S<0?-1:0,!1),G&&(s[S]=W),W))}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<=-b)return R;if(S+1>=b)return E}return S<0?l(-S,M).neg():u(S%f|0,S/f|0,M)}a.fromNumber=l;function u(S,M,W){return new a(S,M,W)}a.fromBits=u;var p=Math.pow;function d(S,M,W){if(S.length===0)throw Error("empty string");if(S==="NaN"||S==="Infinity"||S==="+Infinity"||S==="-Infinity")return x;if(typeof M=="number"?(W=M,M=!1):M=!!M,W=W||10,W<2||360)throw Error("interior hyphen");if(U===0)return d(S.substring(1),M,W).neg();for(var G=l(p(W,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(),W=S.isNegative();return M&&!W?-1:!M&&W?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,W=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+=W+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(y)&&S.lt(y))return l(this.toNumber()*S.toNumber(),this.unsigned);var W=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+=W*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 W,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 W=q.div(S).shl(1),W.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(W)),G=W.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);){W=Math.max(1,Math.floor(U.toNumber()/S.toNumber()));for(var K=Math.ceil(Math.log(W)/Math.LN2),Z=K<=48?1:p(2,K-48),Q=l(W),ee=Q.mul(S);ee.isNegative()||ee.gt(U);)W-=Z,Q=l(W,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 W=this.low;return u(W>>>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,W){return W?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)}}),hF=Wt(()=>{}),mF=Wt(()=>{}),fF=Wt((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)}),gF=Wt((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)}),bF=Wt((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)}),yF=Wt((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)}),xF=Wt((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,b,y=[],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&&(b=b+1640531527|0,h=y[g&127]^=m+b,f=h==0?f+1:0);for(f>=128&&(y[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=y[f+34&127],h=y[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,y[f]=m^h;d.w=b,d.X=y,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)}),vF=Wt((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)}),wF=Wt(()=>{}),kF=Wt((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=y(b(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,W=0;S=d;)S/=2,M/=2,W>>>=1;return(S+W)/M};return F.int32=function(){return R.g(4)|0},F.quick=function(){return R.g(4)/4294967296},F.double=F,y(w(R.S),a),(T.pass||C||function(S,M,W,U){return U&&(U.S&&g(U,R),S.state=function(){return g(R,{})}),W?(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=fF(),a=gF(),r=bF(),s=yF(),i=xF(),o=vF(),l=kF();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),RI=Wt(()=>{}),Tx=Wt(()=>{}),Ch=Wt(()=>{}),IF=Wt(()=>{}),SF=Wt(()=>{}),TF=Wt(()=>{}),NF=Wt((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),sn}function u(){return ue.buffer!=ze&&ot(ue.buffer),An}function p(){return ue.buffer!=ze&&ot(ue.buffer),ia}function d(){return ue.buffer!=ze&&ot(ue.buffer),$n}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),b=[],y="./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 W(D){D instanceof Ms||Q("exiting due to exception: "+D)}if(T){I?E=Ch().dirname(E)+"/":E=__dirname+"/";var U,G;typeof DI=="function"&&(U=Tx(),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,He){ke?ce(ke):re(He.buffer)})},process.argv.length>1&&(y=process.argv[1].replace(/\\/g,"/")),b=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(ka())throw process.exitCode=j,re;W(re),process.exit(j)},c.inspect=function(){return"[Emscripten Module object]"};let D;try{D=IF()}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=SF().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&&(b=c.arguments),c.thisProgram&&(y=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 be=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Xo("no native wasm support detected");var ue,xe,Ie=!1,Se;function Le(D,j){D||Xo(j)}var Ve=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function tt(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 He="";j>10,56320|la&1023)}}return He}function it(D,j){return D?tt(i(),D,j):""}function et(D,j,re,ce){if(!(ce>0))return 0;for(var ke=re,He=re+ce-1,Ne=0;Ne=55296&&De<=57343){var Ot=D.charCodeAt(++Ne);De=65536+((De&1023)<<10)|Ot&1023}if(De<=127){if(re>=He)break;j[re++]=De}else if(De<=2047){if(re+1>=He)break;j[re++]=192|De>>6,j[re++]=128|De&63}else if(De<=65535){if(re+2>=He)break;j[re++]=224|De>>12,j[re++]=128|De>>6&63,j[re++]=128|De&63}else{if(re+3>=He)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 nt(D,j,re){return et(D,i(),j,re)}var ze,dt,jn,Mt,sa,sn,An,ia,$n;C&&(ze=c.buffer);function ot(D){ze=D,c.HEAP8=dt=new Int8Array(D),c.HEAP16=Mt=new Int16Array(D),c.HEAP32=sn=new Int32Array(D),c.HEAPU8=jn=new Uint8Array(D),c.HEAPU16=sa=new Uint16Array(D),c.HEAPU32=An=new Uint32Array(D),c.HEAPF32=ia=new Float32Array(D),c.HEAPF64=$n=new Float64Array(D)}var Fn=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:Fn/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),Fn=ze.byteLength,ot(ze);var qn,yr=[],jo=[],Ja=[],yp=!1;function ka(){return be}function qo(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)Sg(c.preRun.shift());kp(yr)}function Xt(){yp=!0,!C&&kp(jo)}function $d(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)B1(c.postRun.shift());kp(Ja)}}function Sg(D){yr.unshift(D)}function Tg(D){jo.unshift(D)}function B1(D){Ja.unshift(D)}var Hr=0,Ko=null,xr=null;function W1(D){Hr++,c.monitorRunDependencies&&c.monitorRunDependencies(Hr)}function V1(D){if(Hr--,c.monitorRunDependencies&&c.monitorRunDependencies(Hr),Hr==0&&(Ko!==null&&(clearInterval(Ko),Ko=null),xr)){var j=xr;xr=null,j()}}function Xo(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 Ng="data:application/octet-stream;base64,";function Fd(D){return D.startsWith(Ng)}function xp(D){return D.startsWith("file://")}var yn;yn="tfjs-backend-wasm-threaded-simd.wasm",Fd(yn)||(yn=A(yn));function Dd(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){Xo(j)}}function Cg(){if(!ie&&(w||I)){if(typeof fetch=="function"&&!xp(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 Dd(yn)});if(F)return new Promise(function(D,j){F(yn,function(re){D(new Uint8Array(re))},j)})}return Promise.resolve().then(function(){return Dd(yn)})}function _g(){var D={env:Hd,wasi_snapshot_preview1:Hd};function j(Ne,De){var Ot=Ne.exports;if(c.asm=Ot,Lg(c.asm._emscripten_tls_init),qn=c.asm.__indirect_function_table,Tg(c.asm.__wasm_call_ctors),xe=De,!C){var la=Ee.unusedWorkers.length;Ee.unusedWorkers.forEach(function(wr){Ee.loadWasmModuleToWorker(wr,function(){--la||V1("wasm-instantiate")})})}}C||W1("wasm-instantiate");function re(Ne){j(Ne.instance,Ne.module)}function ce(Ne){return Cg().then(function(De){return WebAssembly.instantiate(De,D)}).then(function(De){return De}).then(Ne,function(De){Q("failed to asynchronously prepare wasm: "+De),Xo(De)})}function ke(){return!ie&&typeof WebAssembly.instantiateStreaming=="function"&&!Fd(yn)&&!xp(yn)&&!T&&typeof fetch=="function"?fetch(yn,{credentials:"same-origin"}).then(function(Ne){var De=WebAssembly.instantiateStreaming(Ne,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 He=c.instantiateWasm(D,j);return He}catch(Ne){Q("Module.instantiateWasm callback failed with error: "+Ne),m(Ne)}return ke().catch(m),{}}var Eg,U1,Ag={};function Ms(D){this.name="ExitStatus",this.message="Program terminated with exit("+D+")",this.status=D}function $g(D){var j=Ee.pthreads[D];delete Ee.pthreads[D],j.terminate(),iy(D),Ee.runningWorkers.splice(Ee.runningWorkers.indexOf(j),1),j.pthread_ptr=0}function Fg(D){var j=Ee.pthreads[D];j.postMessage({cmd:"cancel"})}function vp(D){var j=Ee.pthreads[D];Le(j),Ee.returnWorkerToPool(j)}function Rd(D){var j=Ee.getNewWorker();if(!j)return 6;Ee.runningWorkers.push(j),Ee.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 Md={varargs:void 0,get:function(){Md.varargs+=4;var D=l()[Md.varargs-4>>2];return D},getStr:function(D){var j=it(D);return j}};function wp(D){if(C)return jr(1,1,D);Se=D,ka()||(Ee.terminateAllThreads(),c.onExit&&c.onExit(D),Ie=!0),x(D,new Ms(D))}function G1(D,j){if(Se=D,!j&&C)throw Od(D),"unwind";wp(D)}var Pd=G1;function Dg(D){if(D instanceof Ms||D=="unwind")return Se;x(1,D)}var Ee={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Ee.initWorker():Ee.initMainThread()},initMainThread:function(){for(var D=8;D--;)Ee.allocateUnusedWorker()},initWorker:function(){be=!1},setExitStatus:function(D){Se=D},terminateAllThreads:function(){for(var D of Object.values(Ee.pthreads))Ee.returnWorkerToPool(D);for(var D of Ee.unusedWorkers)D.terminate();Ee.unusedWorkers=[]},returnWorkerToPool:function(D){var j=D.pthread_ptr;delete Ee.pthreads[j],Ee.unusedWorkers.push(D),Ee.runningWorkers.splice(Ee.runningWorkers.indexOf(D),1),D.pthread_ptr=0,iy(j)},receiveObjectTransfer:function(D){},threadInitTLS:function(){Ee.tlsInitFunctions.forEach(D=>D())},loadWasmModuleToWorker:function(D,j){D.onmessage=re=>{var ce=re.data,ke=ce.cmd;if(D.pthread_ptr&&(Ee.currentProxiedOperationCallerThread=D.pthread_ptr),ce.targetThread&&ce.targetThread!=Zd()){var He=Ee.pthreads[ce.targetThread];He?He.postMessage(ce,ce.transferList):Q('Internal error! Worker sent a message "'+ke+'" to target pthread '+ce.targetThread+", but that thread no longer exists!"),Ee.currentProxiedOperationCallerThread=void 0;return}ke==="processProxyingQueue"?Ip(ce.queue):ke==="spawnThread"?Rd(ce):ke==="cleanupThread"?vp(ce.thread):ke==="killThread"?$g(ce.thread):ke==="cancelThread"?Fg(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),Ee.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");Ee.unusedWorkers.push(new Worker(D))},getNewWorker:function(){return Ee.unusedWorkers.length==0&&(Ee.allocateUnusedWorker(),Ee.loadWasmModuleToWorker(Ee.unusedWorkers[0])),Ee.unusedWorkers.pop()}};c.PThread=Ee;function kp(D){for(;D.length>0;)D.shift()(c)}function Rg(D){var j=oy(),re=D();return Jd(j),re}function H1(D){return D}function j1(D){var j=/\b_Z[\w\d_]+/g;return D.replace(j,function(re){var ce=re;return re===ce?re:ce+" ["+re+"]"})}function Mg(){var D=Zd(),j=l()[D+44>>2],re=l()[D+48>>2],ce=j-re;Q1(j,ce),Jd(j)}c.establishStackSpace=Mg;function Od(D){if(C)return jr(2,0,D);try{Pd(D)}catch(j){Dg(j)}}var Yo=[];function Pg(D){var j=Yo[D];return j||(D>=Yo.length&&(Yo.length=D+1),Yo[D]=j=qn.get(D)),j}function Og(D,j){var re=Pg(D)(j);ka()?Ee.setExitStatus(re):J1(re)}c.invokeEntryPoint=Og;function q1(){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 Lg(D){Ee.tlsInitFunctions.push(D)}function zg(D,j){s().set(D,j)}function Bg(D){X1(D,!I,1,!w),Ee.threadInitTLS()}function Wg(D){C?postMessage({cmd:"cleanupThread",thread:D}):vp(D)}function Ld(D,j,re,ce){return C?jr(3,1,D,j,re,ce):zd(D,j,re,ce)}function zd(D,j,re,ce){if(typeof SharedArrayBuffer=="undefined")return Q("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var ke=[],He=0;if(C&&(ke.length===0||He))return Ld(D,j,re,ce);if(He)return He;var Ne={startRoutine:re,pthread_ptr:D,arg:ce,transferList:ke};return C?(Ne.cmd="spawnThread",postMessage(Ne,ke),0):Rd(Ne)}function Vg(){return 2097152}var Ug=!0;function Gg(){return Ug}function Ip(D){Atomics.store(l(),D>>2,1),Zd()&&Z1(D),Atomics.compareExchange(l(),D>>2,1,0)}c.executeNotifiedProxyingQueue=Ip;function Hg(D,j,re,ce){if(D==j)setTimeout(()=>Ip(ce));else if(C)postMessage({targetThread:D,cmd:"processProxyingQueue",queue:ce});else{var ke=Ee.pthreads[D];if(!ke)return;ke.postMessage({cmd:"processProxyingQueue",queue:ce})}return 1}function jg(D,j,re){return-1}function qg(){Xo("")}function Ps(D){Ps.shown||(Ps.shown={}),Ps.shown[D]||(Ps.shown[D]=1,T&&(D="warning: "+D),Q(D))}function Kg(){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 Xg(){return Date.now()}function Bd(){return 2147483648}function Yg(){return Bd()}var Zo;T?Zo=()=>{var D=process.hrtime();return D[0]*1e3+D[1]/1e6}:C?Zo=()=>performance.now()-c.__performance_now_clock_drift:Zo=()=>performance.now();function Zg(D,j,re){i().copyWithin(D,j,j+re)}function Jg(){return T?TF().cpus().length:navigator.hardwareConcurrency}function jr(D,j){var re=arguments.length-2,ce=arguments;return Rg(()=>{for(var ke=re,He=Qd(ke*8),Ne=He>>3,De=0;De>3,ke=0;ke>>16),ot(ue.buffer),1}catch(j){}}function tb(D){var j=i().length;if(D=D>>>0,D<=j)return!1;var re=Bd();if(D>re)return!1;let ce=(Ot,la)=>Ot+(la-Ot%la)%la;for(var ke=1;ke<=4;ke*=2){var He=j*(1+.2/ke);He=Math.min(He,D+100663296);var Ne=Math.min(re,ce(Math.max(D,He),65536)),De=eb(Ne);if(De)return!0}return!1}function nb(){throw"unwind"}function Wd(D){return C?jr(4,1,D):52}function Vd(D,j,re,ce,ke){return C?jr(5,1,D,j,re,ce,ke):70}var ab=[null,[],[]];function rb(D,j){var re=ab[D];j===0||j===10?((D===1?Z:Q)(tt(re,0)),re.length=0):re.push(j)}function Ud(D,j,re,ce){if(C)return jr(6,1,D,j,re,ce);for(var ke=0,He=0;He>2],De=u()[j+4>>2];j+=8;for(var Ot=0;Ot>2]=ke,0}function Gd(D){var j=c["_"+D];return j}function sb(D,j,re,ce,ke){var He={string:ua=>{var tl=0;if(ua!=null&&ua!==0){var nk=(ua.length<<2)+1;tl=Qd(nk),nt(ua,tl,nk)}return tl},array:ua=>{var tl=Qd(ua.length);return zg(ua,tl),tl}};function Ne(ua){return j==="string"?it(ua):j==="boolean"?Boolean(ua):ua}var De=Gd(D),Ot=[],la=0;if(ce)for(var wr=0;wrNe==="number"||Ne==="boolean"),He=j!=="string";return He&&ke&&!ce?Gd(D):function(){return sb(D,j,re,arguments,ce)}}Ee.init();var ob=[null,wp,Od,Ld,Wd,Vd,Ud],Hd={__emscripten_init_main_thread_js:Bg,__emscripten_thread_cleanup:Wg,__pthread_create_js:zd,_emscripten_default_pthread_stack_size:Vg,_emscripten_get_now_is_monotonic:Gg,_emscripten_notify_task_queue:Hg,_emscripten_set_offscreencanvas_size:jg,abort:qg,emscripten_check_blocking_allowed:Kg,emscripten_date_now:Xg,emscripten_get_heap_max:Yg,emscripten_get_now:Zo,emscripten_memcpy_big:Zg,emscripten_num_logical_cores:Jg,emscripten_receive_on_main_thread_js:Qg,emscripten_resize_heap:tb,emscripten_unwind_to_js_event_loop:nb,exit:Pd,fd_close:Wd,fd_seek:Vd,fd_write:Ud,memory:ue||c.wasmMemory},K1=_g(),lb=c.___wasm_call_ctors=function(){return(lb=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},ub=c._init=function(){return(ub=c._init=c.asm.init).apply(null,arguments)},pb=c._init_with_threads_count=function(){return(pb=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},cb=c._get_threads_count=function(){return(cb=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},db=c._register_tensor=function(){return(db=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},hb=c._dispose_data=function(){return(hb=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},mb=c._dispose=function(){return(mb=c._dispose=c.asm.dispose).apply(null,arguments)},fb=c._Abs=function(){return(fb=c._Abs=c.asm.Abs).apply(null,arguments)},gb=c._Add=function(){return(gb=c._Add=c.asm.Add).apply(null,arguments)},bb=c._AddN=function(){return(bb=c._AddN=c.asm.AddN).apply(null,arguments)},yb=c._All=function(){return(yb=c._All=c.asm.All).apply(null,arguments)},xb=c._Any=function(){return(xb=c._Any=c.asm.Any).apply(null,arguments)},vb=c._ArgMax=function(){return(vb=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},wb=c._AvgPool=function(){return(wb=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},kb=c._BatchMatMul=function(){return(kb=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},Ib=c._Ceil=function(){return(Ib=c._Ceil=c.asm.Ceil).apply(null,arguments)},Sb=c._ClipByValue=function(){return(Sb=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},Tb=c._Conv2D=function(){return(Tb=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},Nb=c._Conv2DBackpropInput=function(){return(Nb=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},Cb=c._Cos=function(){return(Cb=c._Cos=c.asm.Cos).apply(null,arguments)},_b=c._Cosh=function(){return(_b=c._Cosh=c.asm.Cosh).apply(null,arguments)},Eb=c._CropAndResize=function(){return(Eb=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},Ab=c._Cumprod=function(){return(Ab=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},$b=c._Cumsum=function(){return($b=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},Fb=c._DepthToSpace=function(){return(Fb=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},Db=c._DepthwiseConv2dNative=function(){return(Db=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},Rb=c._Elu=function(){return(Rb=c._Elu=c.asm.Elu).apply(null,arguments)},Mb=c._Equal=function(){return(Mb=c._Equal=c.asm.Equal).apply(null,arguments)},Pb=c._Exp=function(){return(Pb=c._Exp=c.asm.Exp).apply(null,arguments)},Ob=c._FlipLeftRight=function(){return(Ob=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},Lb=c._Floor=function(){return(Lb=c._Floor=c.asm.Floor).apply(null,arguments)},zb=c._FloorDiv=function(){return(zb=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},Bb=c._FusedBatchNorm=function(){return(Bb=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},Wb=c._FusedConv2D=function(){return(Wb=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},Vb=c._FusedDepthwiseConv2D=function(){return(Vb=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},Ub=c._Gather=function(){return(Ub=c._Gather=c.asm.Gather).apply(null,arguments)},Gb=c._GatherNd=function(){return(Gb=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},Hb=c._Greater=function(){return(Hb=c._Greater=c.asm.Greater).apply(null,arguments)},jb=c._GreaterEqual=function(){return(jb=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},qb=c._LeakyRelu=function(){return(qb=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},Kb=c._Less=function(){return(Kb=c._Less=c.asm.Less).apply(null,arguments)},Xb=c._LessEqual=function(){return(Xb=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},Yb=c._Log=function(){return(Yb=c._Log=c.asm.Log).apply(null,arguments)},Zb=c._LogicalAnd=function(){return(Zb=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},Jb=c._LogicalNot=function(){return(Jb=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},Qb=c._LogicalOr=function(){return(Qb=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},ey=c._LogicalXor=function(){return(ey=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},ty=c._Max=function(){return(ty=c._Max=c.asm.Max).apply(null,arguments)},jd=c._MaxPool=function(){return(jd=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},qd=c._Maximum=function(){return(qd=c._Maximum=c.asm.Maximum).apply(null,arguments)},Tp=c._Mean=function(){return(Tp=c._Mean=c.asm.Mean).apply(null,arguments)},ny=c._Min=function(){return(ny=c._Min=c.asm.Min).apply(null,arguments)},ay=c._Minimum=function(){return(ay=c._Minimum=c.asm.Minimum).apply(null,arguments)},Jo=c._MirrorPad=function(){return(Jo=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Kd=c._Multiply=function(){return(Kd=c._Multiply=c.asm.Multiply).apply(null,arguments)},Qo=c._Neg=function(){return(Qo=c._Neg=c.asm.Neg).apply(null,arguments)},el=c._NonMaxSuppressionV3=function(){return(el=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},ry=c._NonMaxSuppressionV4=function(){return(ry=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)},Ge=c._PadV2=function(){return(Ge=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)},Be=c._RealDiv=function(){return(Be=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)},vr=c._ResizeBilinear=function(){return(vr=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Xd=c._ResizeNearestNeighbor=function(){return(Xd=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},Np=c._Reverse=function(){return(Np=c._Reverse=c.asm.Reverse).apply(null,arguments)},sy=c._RotateWithOffset=function(){return(sy=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},Dn=c._Round=function(){return(Dn=c._Round=c.asm.Round).apply(null,arguments)},qr=c._Rsqrt=function(){return(qr=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},Yd=c._ScatterNd=function(){return(Yd=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},k$=c._SelectV2=function(){return(k$=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},I$=c._Sigmoid=function(){return(I$=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},S$=c._Sin=function(){return(S$=c._Sin=c.asm.Sin).apply(null,arguments)},T$=c._Softmax=function(){return(T$=c._Softmax=c.asm.Softmax).apply(null,arguments)},N$=c._SparseFillEmptyRows=function(){return(N$=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},C$=c._SparseReshape=function(){return(C$=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},_$=c._SparseSegmentReduction=function(){return(_$=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},E$=c._Sqrt=function(){return(E$=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},A$=c._Square=function(){return(A$=c._Square=c.asm.Square).apply(null,arguments)},$$=c._SquaredDifference=function(){return($$=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},F$=c._Step=function(){return(F$=c._Step=c.asm.Step).apply(null,arguments)},D$=c._StridedSlice=function(){return(D$=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},R$=c._Sub=function(){return(R$=c._Sub=c.asm.Sub).apply(null,arguments)},M$=c._Sum=function(){return(M$=c._Sum=c.asm.Sum).apply(null,arguments)},P$=c._Tan=function(){return(P$=c._Tan=c.asm.Tan).apply(null,arguments)},O$=c._Tanh=function(){return(O$=c._Tanh=c.asm.Tanh).apply(null,arguments)},L$=c._Tile=function(){return(L$=c._Tile=c.asm.Tile).apply(null,arguments)},z$=c._TopK=function(){return(z$=c._TopK=c.asm.TopK).apply(null,arguments)},B$=c._Transform=function(){return(B$=c._Transform=c.asm.Transform).apply(null,arguments)},W$=c._Transpose=function(){return(W$=c._Transpose=c.asm.Transpose).apply(null,arguments)},V$=c.__FusedMatMul=function(){return(V$=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},U$=c._malloc=function(){return(U$=c._malloc=c.asm.malloc).apply(null,arguments)},G$=c._free=function(){return(G$=c._free=c.asm.free).apply(null,arguments)},H$=c.__emscripten_tls_init=function(){return(H$=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},Zd=c._pthread_self=function(){return(Zd=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},j$=c.___errno_location=function(){return(j$=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},X1=c.__emscripten_thread_init=function(){return(X1=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},q$=c.__emscripten_thread_crashed=function(){return(q$=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},K$=c._emscripten_main_thread_process_queued_calls=function(){return(K$=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},X$=c._emscripten_main_browser_thread_id=function(){return(X$=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},Y1=c._emscripten_run_in_main_runtime_thread_js=function(){return(Y1=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},Y$=c._emscripten_dispatch_to_thread_=function(){return(Y$=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},Z1=c.__emscripten_proxy_execute_task_queue=function(){return(Z1=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},iy=c.__emscripten_thread_free_data=function(){return(iy=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},J1=c.__emscripten_thread_exit=function(){return(J1=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},Q1=c._emscripten_stack_set_limits=function(){return(Q1=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},oy=c.stackSave=function(){return(oy=c.stackSave=c.asm.stackSave).apply(null,arguments)},Jd=c.stackRestore=function(){return(Jd=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},Qd=c.stackAlloc=function(){return(Qd=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},Z$=c.dynCall_iijjiiii=function(){return(Z$=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},J$=c.dynCall_jiji=function(){return(J$=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=ka,c.wasmMemory=ue,c.cwrap=ib,c.ExitStatus=Ms,c.PThread=Ee;var eh;xr=function D(){eh||ek(),eh||(xr=D)};function ek(D){if(D=D||b,Hr>0)return;if(C){h(c),Xt(),postMessage({cmd:"loaded"});return}if(qo(),Hr>0)return;function j(){eh||(eh=!0,c.calledRun=!0,!Ie&&(Xt(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),$d()))}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()();ek();var th;f&&(th={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 nh;if(typeof WasmBackendModule!="undefined")nh=WasmBackendModule;else if(typeof r!="undefined")nh=r;else throw new Error("Could not find wasm module in post.js");if(th){var Q$=nh._dispose;nh._dispose=function(){Q$(),th.uncaughtException.forEach(function(D){process.removeListener("uncaughtException",D)}),th.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)}),CF=Wt((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}};`}),_F=Wt((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 b(X){return s.locateFile?s.locateFile(X,g):g+X}var y,x,w,I;function T(X){X instanceof Ko||R("exiting due to exception: "+X)}if(f){m?g=Ch().dirname(g)+"/":g=__dirname+"/";var C,E;typeof DI=="function"&&(C=Tx(),E=Ch()),y=(X,se)=>(X=E.normalize(X),C.readFileSync(X,se?void 0:"utf8")),w=X=>{var se=y(X,!0);return se.buffer||(se=new Uint8Array(se)),se},x=(X,se,we)=>{X=E.normalize(X),C.readFile(X,function(Ge,wt){Ge?we(Ge):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 Ko))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="",y=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 Ge=new XMLHttpRequest;Ge.open("GET",X,!0),Ge.responseType="arraybuffer",Ge.onload=()=>{if(Ge.status==200||Ge.status==0&&Ge.response){se(Ge.response);return}we()},Ge.onerror=we,Ge.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 W,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 Ge=se+we,wt=se;X[wt]&&!(wt>=Ge);)++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,Ge){if(!(Ge>0))return 0;for(var wt=we,kt=we+Ge-1,Ue=0;Ue=55296&&Be<=57343){var Pt=X.charCodeAt(++Ue);Be=65536+((Be&1023)<<10)|Pt&1023}if(Be<=127){if(we>=kt)break;se[we++]=Be}else if(Be<=2047){if(we+1>=kt)break;se[we++]=192|Be>>6,se[we++]=128|Be&63}else if(Be<=65535){if(we+2>=kt)break;se[we++]=224|Be>>12,se[we++]=128|Be>>6&63,se[we++]=128|Be&63}else{if(we+3>=kt)break;se[we++]=240|Be>>18,se[we++]=128|Be>>12&63,se[we++]=128|Be>>6&63,se[we++]=128|Be&63}}return se[we]=0,we-wt}function ae(X,se,we){return ee(X,ie,se,we)}var te,le,ie,be,ue,xe,Ie,Se,Le;function Ve(X){te=X,s.HEAP8=le=new Int8Array(X),s.HEAP16=be=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 tt=s.INITIAL_MEMORY||16777216,it,et=[],nt=[],ze=[],dt=!1;function jn(){return M}function Mt(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)An(s.preRun.shift());xr(et)}function sa(){dt=!0,xr(nt)}function sn(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)$n(s.postRun.shift());xr(ze)}function An(X){et.unshift(X)}function ia(X){nt.unshift(X)}function $n(X){ze.unshift(X)}var ot=0,Fn=null,qn=null;function yr(X){ot++,s.monitorRunDependencies&&s.monitorRunDependencies(ot)}function jo(X){if(ot--,s.monitorRunDependencies&&s.monitorRunDependencies(ot),ot==0&&(Fn!==null&&(clearInterval(Fn),Fn=null),qn)){var se=qn;qn=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 yp="data:application/octet-stream;base64,";function ka(X){return X.startsWith(yp)}function qo(X){return X.startsWith("file://")}var Xt;Xt="tfjs-backend-wasm.wasm",ka(Xt)||(Xt=b(Xt));function $d(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 Sg(){if(!S&&(h||m)){if(typeof fetch=="function"&&!qo(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 $d(Xt)});if(x)return new Promise(function(X,se){x(Xt,function(we){X(new Uint8Array(we))},se)})}return Promise.resolve().then(function(){return $d(Xt)})}function Tg(){var X={env:wp,wasi_snapshot_preview1:wp};function se(Ue,Be){var Pt=Ue.exports;s.asm=Pt,W=s.asm.memory,Ve(W.buffer),it=s.asm.__indirect_function_table,ia(s.asm.__wasm_call_ctors),jo("wasm-instantiate")}yr("wasm-instantiate");function we(Ue){se(Ue.instance)}function Ge(Ue){return Sg().then(function(Be){return WebAssembly.instantiate(Be,X)}).then(function(Be){return Be}).then(Ue,function(Be){R("failed to asynchronously prepare wasm: "+Be),Ja(Be)})}function wt(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!ka(Xt)&&!qo(Xt)&&!f&&typeof fetch=="function"?fetch(Xt,{credentials:"same-origin"}).then(function(Ue){var Be=WebAssembly.instantiateStreaming(Ue,X);return Be.then(we,function(Pt){return R("wasm streaming compile failed: "+Pt),R("falling back to ArrayBuffer instantiation"),Ge(we)})}):Ge(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 B1,Hr;function Ko(X){this.name="ExitStatus",this.message="Program terminated with exit("+X+")",this.status=X}function xr(X){for(;X.length>0;)X.shift()(s)}function W1(X){return X}function V1(X){var se=/\b_Z[\w\d_]+/g;return X.replace(se,function(we){var Ge=we;return we===Ge?we:Ge+" ["+we+"]"})}function Xo(){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 Ng(X,se){le.set(X,se)}function Fd(){Ja("")}function xp(){return 2147483648}function yn(){return xp()}function Dd(X,se,we){ie.copyWithin(X,se,se+we)}function Cg(X){try{return W.grow(X-te.byteLength+65535>>>16),Ve(W.buffer),1}catch(se){}}function _g(X){var se=ie.length;X=X>>>0;var we=xp();if(X>we)return!1;let Ge=(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,Ge(Math.max(X,kt),65536)),Be=Cg(Ue);if(Be)return!0}return!1}var Eg={varargs:void 0,get:function(){Eg.varargs+=4;var X=xe[Eg.varargs-4>>2];return X},getStr:function(X){var se=Q(X);return se}};function U1(X){return 52}function Ag(X,se,we,Ge,wt){return 70}var Ms=[null,[],[]];function $g(X,se){var we=Ms[X];se===0||se===10?((X===1?A:R)(Z(we,0)),we.length=0):we.push(se)}function Fg(X,se,we,Ge){for(var wt=0,kt=0;kt>2],Be=Ie[se+4>>2];se+=8;for(var Pt=0;Pt>2]=wt,0}function vp(X){var se=s["_"+X];return se}function Rd(X,se,we,Ge,wt){var kt={string:Dn=>{var qr=0;if(Dn!=null&&Dn!==0){var Yd=(Dn.length<<2)+1;qr=Tp(Yd),ae(Dn,qr,Yd)}return qr},array:Dn=>{var qr=Tp(Dn.length);return Ng(Dn,qr),qr}};function Ue(Dn){return se==="string"?Q(Dn):se==="boolean"?Boolean(Dn):Dn}var Be=vp(X),Pt=[],oa=0;if(Ge)for(var vr=0;vrUe==="number"||Ue==="boolean"),kt=se!=="string";return kt&&wt&&!Ge?vp(X):function(){return Rd(X,se,we,arguments,Ge)}}var wp={abort:Fd,emscripten_get_heap_max:yn,emscripten_memcpy_big:Dd,emscripten_resize_heap:_g,fd_close:U1,fd_seek:Ag,fd_write:Fg},G1=Tg(),Pd=s.___wasm_call_ctors=function(){return(Pd=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},Dg=s._init=function(){return(Dg=s._init=s.asm.init).apply(null,arguments)},Ee=s._init_with_threads_count=function(){return(Ee=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},kp=s._get_threads_count=function(){return(kp=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},Rg=s._register_tensor=function(){return(Rg=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},H1=s._dispose_data=function(){return(H1=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},j1=s._dispose=function(){return(j1=s._dispose=s.asm.dispose).apply(null,arguments)},Mg=s._Abs=function(){return(Mg=s._Abs=s.asm.Abs).apply(null,arguments)},Od=s._Add=function(){return(Od=s._Add=s.asm.Add).apply(null,arguments)},Yo=s._AddN=function(){return(Yo=s._AddN=s.asm.AddN).apply(null,arguments)},Pg=s._All=function(){return(Pg=s._All=s.asm.All).apply(null,arguments)},Og=s._Any=function(){return(Og=s._Any=s.asm.Any).apply(null,arguments)},q1=s._ArgMax=function(){return(q1=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},Lg=s._AvgPool=function(){return(Lg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},zg=s._BatchMatMul=function(){return(zg=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},Bg=s._Ceil=function(){return(Bg=s._Ceil=s.asm.Ceil).apply(null,arguments)},Wg=s._ClipByValue=function(){return(Wg=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},Ld=s._Conv2D=function(){return(Ld=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},zd=s._Conv2DBackpropInput=function(){return(zd=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},Vg=s._Cos=function(){return(Vg=s._Cos=s.asm.Cos).apply(null,arguments)},Ug=s._Cosh=function(){return(Ug=s._Cosh=s.asm.Cosh).apply(null,arguments)},Gg=s._CropAndResize=function(){return(Gg=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},Ip=s._Cumprod=function(){return(Ip=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},Hg=s._Cumsum=function(){return(Hg=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},jg=s._DepthToSpace=function(){return(jg=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},qg=s._DepthwiseConv2dNative=function(){return(qg=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},Ps=s._Elu=function(){return(Ps=s._Elu=s.asm.Elu).apply(null,arguments)},Kg=s._Equal=function(){return(Kg=s._Equal=s.asm.Equal).apply(null,arguments)},Xg=s._Exp=function(){return(Xg=s._Exp=s.asm.Exp).apply(null,arguments)},Bd=s._FlipLeftRight=function(){return(Bd=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},Yg=s._Floor=function(){return(Yg=s._Floor=s.asm.Floor).apply(null,arguments)},Zo=s._FloorDiv=function(){return(Zo=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},Zg=s._FusedBatchNorm=function(){return(Zg=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},Jg=s._FusedConv2D=function(){return(Jg=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},jr=s._FusedDepthwiseConv2D=function(){return(jr=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},Sp=s._Gather=function(){return(Sp=s._Gather=s.asm.Gather).apply(null,arguments)},Qg=s._GatherNd=function(){return(Qg=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},eb=s._Greater=function(){return(eb=s._Greater=s.asm.Greater).apply(null,arguments)},tb=s._GreaterEqual=function(){return(tb=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},nb=s._LeakyRelu=function(){return(nb=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},Wd=s._Less=function(){return(Wd=s._Less=s.asm.Less).apply(null,arguments)},Vd=s._LessEqual=function(){return(Vd=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},ab=s._Log=function(){return(ab=s._Log=s.asm.Log).apply(null,arguments)},rb=s._LogicalAnd=function(){return(rb=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},Ud=s._LogicalNot=function(){return(Ud=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},Gd=s._LogicalOr=function(){return(Gd=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},sb=s._LogicalXor=function(){return(sb=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},ib=s._Max=function(){return(ib=s._Max=s.asm.Max).apply(null,arguments)},ob=s._MaxPool=function(){return(ob=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},Hd=s._Maximum=function(){return(Hd=s._Maximum=s.asm.Maximum).apply(null,arguments)},K1=s._Mean=function(){return(K1=s._Mean=s.asm.Mean).apply(null,arguments)},lb=s._Min=function(){return(lb=s._Min=s.asm.Min).apply(null,arguments)},ub=s._Minimum=function(){return(ub=s._Minimum=s.asm.Minimum).apply(null,arguments)},pb=s._MirrorPad=function(){return(pb=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},cb=s._Multiply=function(){return(cb=s._Multiply=s.asm.Multiply).apply(null,arguments)},db=s._Neg=function(){return(db=s._Neg=s.asm.Neg).apply(null,arguments)},hb=s._NonMaxSuppressionV3=function(){return(hb=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},mb=s._NonMaxSuppressionV4=function(){return(mb=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},fb=s._NonMaxSuppressionV5=function(){return(fb=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},gb=s._NotEqual=function(){return(gb=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},bb=s._OneHot=function(){return(bb=s._OneHot=s.asm.OneHot).apply(null,arguments)},yb=s._PadV2=function(){return(yb=s._PadV2=s.asm.PadV2).apply(null,arguments)},xb=s._Pow=function(){return(xb=s._Pow=s.asm.Pow).apply(null,arguments)},vb=s._Prelu=function(){return(vb=s._Prelu=s.asm.Prelu).apply(null,arguments)},wb=s._Prod=function(){return(wb=s._Prod=s.asm.Prod).apply(null,arguments)},kb=s._RealDiv=function(){return(kb=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},Ib=s._Relu=function(){return(Ib=s._Relu=s.asm.Relu).apply(null,arguments)},Sb=s._Relu6=function(){return(Sb=s._Relu6=s.asm.Relu6).apply(null,arguments)},Tb=s._ResizeBilinear=function(){return(Tb=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},Nb=s._ResizeNearestNeighbor=function(){return(Nb=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},Cb=s._Reverse=function(){return(Cb=s._Reverse=s.asm.Reverse).apply(null,arguments)},_b=s._RotateWithOffset=function(){return(_b=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},Eb=s._Round=function(){return(Eb=s._Round=s.asm.Round).apply(null,arguments)},Ab=s._Rsqrt=function(){return(Ab=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},$b=s._ScatterNd=function(){return($b=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},Fb=s._SelectV2=function(){return(Fb=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},Db=s._Sigmoid=function(){return(Db=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},Rb=s._Sin=function(){return(Rb=s._Sin=s.asm.Sin).apply(null,arguments)},Mb=s._Softmax=function(){return(Mb=s._Softmax=s.asm.Softmax).apply(null,arguments)},Pb=s._SparseFillEmptyRows=function(){return(Pb=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},Ob=s._SparseReshape=function(){return(Ob=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},Lb=s._SparseSegmentReduction=function(){return(Lb=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},zb=s._Sqrt=function(){return(zb=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},Bb=s._Square=function(){return(Bb=s._Square=s.asm.Square).apply(null,arguments)},Wb=s._SquaredDifference=function(){return(Wb=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Vb=s._Step=function(){return(Vb=s._Step=s.asm.Step).apply(null,arguments)},Ub=s._StridedSlice=function(){return(Ub=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},Gb=s._Sub=function(){return(Gb=s._Sub=s.asm.Sub).apply(null,arguments)},Hb=s._Sum=function(){return(Hb=s._Sum=s.asm.Sum).apply(null,arguments)},jb=s._Tan=function(){return(jb=s._Tan=s.asm.Tan).apply(null,arguments)},qb=s._Tanh=function(){return(qb=s._Tanh=s.asm.Tanh).apply(null,arguments)},Kb=s._Tile=function(){return(Kb=s._Tile=s.asm.Tile).apply(null,arguments)},Xb=s._TopK=function(){return(Xb=s._TopK=s.asm.TopK).apply(null,arguments)},Yb=s._Transform=function(){return(Yb=s._Transform=s.asm.Transform).apply(null,arguments)},Zb=s._Transpose=function(){return(Zb=s._Transpose=s.asm.Transpose).apply(null,arguments)},Jb=s.__FusedMatMul=function(){return(Jb=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},Qb=s._malloc=function(){return(Qb=s._malloc=s.asm.malloc).apply(null,arguments)},ey=s._free=function(){return(ey=s._free=s.asm.free).apply(null,arguments)},ty=s.___errno_location=function(){return(ty=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},jd=s.stackSave=function(){return(jd=s.stackSave=s.asm.stackSave).apply(null,arguments)},qd=s.stackRestore=function(){return(qd=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},Tp=s.stackAlloc=function(){return(Tp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},ny=s.dynCall_iijjiiii=function(){return(ny=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},ay=s.dynCall_jiji=function(){return(ay=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=Md;var Jo;qn=function X(){Jo||Kd(),Jo||(qn=X)};function Kd(X){if(X=X||p,ot>0||(Mt(),ot>0))return;function se(){Jo||(Jo=!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()();Kd();var Qo;l&&(Qo={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 el;if(typeof r!="undefined")el=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")el=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(Qo){var ry=el._dispose;el._dispose=function(){ry(),Qo.uncaughtException.forEach(function(X){process.removeListener("uncaughtException",X)}),Qo.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)}),im=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}},lc=class{refCount(e){return pa("refCount")}incRef(e){return pa("incRef")}timerAvailable(){return!0}time(e){return pa("time")}read(e){return pa("read")}readSync(e){return pa("readSync")}readToGPU(e,t){return pa("readToGPU")}numDataIds(){return pa("numDataIds")}disposeData(e,t){return pa("disposeData")}write(e,t,n){return pa("write")}move(e,t,n,a,r){return pa("move")}memory(){return pa("memory")}floatPrecision(){return pa("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return pa("dispose")}};function pa(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 MI(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,_h(e,t,n)}function EF(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 Hp(e,t,n){return Math.max(e,Math.min(t,n))}function AF(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 $F(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)||dn(e)&&!n)for(let a=0;a0,n,a=setTimeout){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(o,l)};o()})}function zF(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),$(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),$(e.every(a=>dl(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function PI(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 OI(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 LI(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 zI(e,t){for(let n=0;nt+=n.length),t}function Jr(e){return typeof e=="string"||e instanceof String}function VI(e){return typeof e=="boolean"}function UI(e){return typeof e=="number"}function om(e){return Array.isArray(e)?om(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":UI(e)?"float32":Jr(e)?"string":VI(e)?"bool":"float32"}function rs(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 GI(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 GI(0,e,t,n)}function Nx(e,t){let n=lm(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return ll(e,new Float32Array(n));if(t==="int32")return ll(e,new Int32Array(n));if(t==="bool")return ll(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function Cx(e){e.forEach(t=>{$(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function VF(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]=jF(n,a)})}};function GF(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(HF(t,a[0],a[1]),a.join("="))),t}function HF(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function jF(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 Ex}var Ex=null;function qF(e){Ex=e}var py;function jI(){if(py==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");py=e}return py}function KF(){let e=jI();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Ax(e,t){let n=KF();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var $l="Abs",Fl="Acos",Dl="Acosh",fs="Add",fi="AddN",Rl="All",Ml="Any",gi="ArgMax",uc="ArgMin",Pl="Asin",Ol="Asinh",Ll="Atan",zl="Atanh",Bl="Atan2",bi="AvgPool",um="AvgPoolGrad",pc="AvgPool3D",pm="AvgPool3DGrad",yi="BatchMatMul",Wl="BatchToSpaceND",cm="Bincount",qI="BroadcastTo",dm="BroadcastArgs",xi="Cast",vi="Ceil",gs="ClipByValue",hm="Complex",cc="ComplexAbs",Vl="Concat",wi="Conv2D",mm="Conv2DBackpropFilter",ki="Conv2DBackpropInput",dc="Conv3D",fm="Conv3DBackpropFilterV2",gm="Conv3DBackpropInputV2",Ii="Cos",Si="Cosh",Ul="Cumprod",Ti="Cumsum",Gl="CropAndResize",bm="DenseBincount",Hl="DepthToSpace",Ni="DepthwiseConv2dNative",ym="DepthwiseConv2dNativeBackpropFilter",xm="DepthwiseConv2dNativeBackpropInput",vm="Diag",hc="Dilation2D",Ah="Dilation2DBackpropInput",$h="Dilation2DBackpropFilter",Ci="RealDiv",wm="Einsum",_i="Elu",km="EluGrad",jl="Erf",ql="Equal",Ei="Exp",Kl="ExpandDims",Xl="Expm1",Im="FFT",mc="Fill",Yl="FlipLeftRight",Ai="Floor",$i="FloorDiv",Fi="FusedBatchNorm",Zl="GatherV2",Jl="GatherNd",Ql="Greater",Di="GreaterEqual",Ri="Identity",Sm="IFFT",Tm="Imag",eu="IsFinite",tu="IsInf",nu="IsNan",Mi="LeakyRelu",au="Less",ru="LessEqual",Nm="LinSpace",Pi="Log",su="Log1p",iu="LogicalAnd",ou="LogicalNot",lu="LogicalOr",KI="LogicalXor",XI="LogSoftmax",XF="LowerBound",fc="LRN",Cm="LRNGrad",Oi="Max",Li="Maximum",zi="MaxPool",_m="MaxPoolGrad",gc="MaxPool3D",Em="MaxPool3DGrad",Am="MaxPoolWithArgmax",Bi="Mean",Wi="Min",Vi="Minimum",Ui="MirrorPad",uu="Mod",$m="Multinomial",Gi="Multiply",pu="Neg",cu="NotEqual",du="NonMaxSuppressionV3",hu="NonMaxSuppressionV4",mu="NonMaxSuppressionV5",fu="OnesLike",Hi="OneHot",gu="Pack",ji="PadV2",YF="Pool",qi="Pow",Ki="Prelu",Xi="Prod",Fm="RaggedGather",Dm="RaggedTensorToTensor",bc="Range",Rm="Real",bu="Reciprocal",Yi="Relu",yu="Reshape",Zi="ResizeNearestNeighbor",Mm="ResizeNearestNeighborGrad",Ji="ResizeBilinear",Pm="ResizeBilinearGrad",Qi="Relu6",eo="Reverse",to="Round",no="Rsqrt",xu="ScatterNd",Om="SearchSorted",vu="Select",wu="Selu",ku="Slice",ao="Sin",Iu="Sinh",Su="Sign",ro="Sigmoid",Tu="Softplus",so="Sqrt",io="Sum",Nu="SpaceToBatchND",Cu="SplitV",oo="Softmax",yc="SparseFillEmptyRows",_u="SparseReshape",xc="SparseSegmentMean",vc="SparseSegmentSum",Lm="SparseToDense",lo="SquaredDifference",wc="Square",Eu="StridedSlice",kc="StringNGrams",Ic="StringSplit",Sc="StringToHashBucketFast",uo="Sub",po="Tan",co="Tanh",bs="Tile",Au="TopK",$u="Transform",_r="Transpose",zm="Unique",Fu="Unpack",Tc="UnsortedSegmentSum",ZF="UpperBound",Du="ZerosLike",ys="Step",Fh="FromPixels",Ru="RotateWithOffset",Qs="_FusedMatMul",ei="FusedConv2D",ti="FusedDepthwiseConv2D";function Zr(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.warn(...e)}function JF(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.log(...e)}var hl=Ax("kernelRegistry",()=>new Map),jp=Ax("gradRegistry",()=>new Map);function Dh(e,t){let n=$x(e,t);return hl.get(n)}function Ty(e){return jp.get(e)}function Rh(e){let t=hl.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 Nc(e){let{kernelName:t,backendName:n}=e,a=$x(t,n);hl.has(a)&&Zr(`The kernel '${t}' for backend '${n}' is already registered`),hl.set(a,e)}function YI(e){let{kernelName:t}=e;jp.has(t)&&H().getBool("DEBUG")&&Zr(`Overriding the gradient for '${t}'`),jp.set(t,e)}function QF(e,t){let n=$x(e,t);if(!hl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);hl.delete(n)}function eD(e){if(!jp.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);jp.delete(e)}function tD(e,t){Rh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});Nc(a)})}function $x(e,t){return`${t}_${e}`}var v={};_e(v,{arraysEqual:()=>ms,assert:()=>$,assertNonNegativeIntegerDimensions:()=>Cx,assertNonNull:()=>mi,assertShapesMatch:()=>Sn,bytesFromStringArray:()=>WI,bytesPerElement:()=>Sy,checkConversionForErrors:()=>zI,clamp:()=>Hp,computeStrides:()=>Al,createScalarValue:()=>oD,createShuffledIndices:()=>OF,decodeString:()=>Mh,distSquared:()=>DF,encodeString:()=>_c,fetch:()=>uD,fingerPrint64:()=>iD,flatten:()=>Js,getArrayFromDType:()=>LI,getTypedArrayFromDType:()=>OI,hasEncodingLoss:()=>BF,hexToLong:()=>Cc,indexToLoc:()=>UF,inferDtype:()=>om,inferFromImplicitShape:()=>zF,isBoolean:()=>VI,isFunction:()=>rs,isInt:()=>dl,isNumber:()=>UI,isPromise:()=>_x,isScalarShape:()=>RF,isString:()=>Jr,isTypedArray:()=>dn,isValidDtype:()=>BI,locToIndex:()=>VF,makeOnesTypedArray:()=>Nx,makeZerosNestedTypedArray:()=>WF,makeZerosTypedArray:()=>lm,nearestDivisor:()=>Eh,nearestLargerEven:()=>AF,now:()=>qp,parseAxisParam:()=>$a,randUniform:()=>FF,repeatedTry:()=>LF,rightPad:()=>Wp,shuffle:()=>MI,shuffleCombo:()=>EF,sizeFromShape:()=>mt,sizeToSquarishShape:()=>PF,squeezeShape:()=>PI,sum:()=>$F,swap:()=>_h,tanh:()=>MF,toNestedArray:()=>ll,toTypedArray:()=>Bm});var rk=hs(dF()),Ws=rk.default||rk;function Cc(e){return Ws.fromString(e,!0,16)}var ZI=Cc("c3a5c85c97cb3127"),zs=Cc("b492b66fbe98f273"),xn=Cc("9ae16a3b2f90404f");function Ny(e){return e.xor(e.shru(47))}function JI(e,t,n){let a=e.slice(t,t+n);return Ws.fromBytes(Array.from(a),!0,!0)}function ht(e,t){return JI(e,t,8)}function sk(e,t){return JI(e,t,4)}function Yt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function ts(e,t,n=Cc("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 nD(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 rh(e,t,n,a){return nD(ht(e,t),ht(e,t+8),ht(e,t+16),ht(e,t+24),n,a)}function aD(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 ts(s,i,n)}if(t>=4){let n=xn.add(t*2),a=sk(e,0);return ts(a.shl(3).add(t),sk(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 Ny(xn.mul(s).xor(ZI.mul(i))).mul(xn)}return xn}function rD(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 ts(Yt(a.add(r),43).add(Yt(s,30)).add(i),a.add(Yt(r.add(xn),18)).add(s),n)}function sD(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=ts(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 ts(Yt(u.add(p),43).add(Yt(d,30)).add(c),u.add(Yt(p.add(a),18)).add(d),n)}function iD(e,t=e.length){let n=Ws.fromNumber(81,!0);if(t<=32)return t<=16?aD(e,t):rD(e,t);if(t<=64)return sD(e,t);let a=n,r=n.mul(zs).add(113),s=Ny(r.mul(xn).add(113)).mul(xn),i=[Ws.UZERO,Ws.UZERO],o=[Ws.UZERO,Ws.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=rh(e,l,i[1].mul(zs),a.add(o[0])),o=rh(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=rh(e,l,i[1].mul(d),a.add(o[0])),o=rh(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],ts(ts(i[0],o[0],d).add(Ny(r).mul(ZI)).add(s),ts(i[1],o[1],d).add(a),d)}function oD(e,t){return t==="string"?_c(e):Bm([e],t)}function lD(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Bm(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")&&zI(e,t),lD(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=qp();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:qp()-i})}if(H().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{cD(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 cD(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 hD(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(!ms(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 ik=20,Cp=3,cy=7;function fD(e,t,n,a){let r=Al(t),s=gD(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 KD(e,t,n,a){let r=bt(t),s=a[a.length-1],i=new Array(s).fill(0),o=t.length,l=n==="complex64"?Kp(e):e;if(o>1)for(let u=0;u_k){let g=Up*i,b=Array.from(e.slice(0,g)),y=Array.from(e.slice((o-Up)*i,o*i));return n==="complex64"&&(b=Kp(b),y=Kp(y)),["["+b.map((x,w)=>qp(x,r[w],n)).join(", ")+", ..., "+y.map((x,w)=>qp(x,r[o-Up+w],n)).join(", ")+"]"]}let f=n==="complex64"?Kp(e):Array.from(e);return["["+f.map((g,b)=>qp(g,r[b],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>_k){for(let f=0;f1)for(let u=0;uik){let g=Cp*i,b=Array.from(e.slice(0,g)),y=Array.from(e.slice((o-Cp)*i,o*i));return n==="complex64"&&(b=Fp(b),y=Fp(y)),["["+b.map((x,w)=>$p(x,r[w],n)).join(", ")+", ..., "+y.map((x,w)=>$p(x,r[o-Cp+w],n)).join(", ")+"]"]}let f=n==="complex64"?Fp(e):Array.from(e);return["["+f.map((g,b)=>$p(g,r[b],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>ik){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||rT(t,this.size),this.strides=Vl(e)}set(e,...t){t.length===0&&(t=[0]),R(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;arm(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(),Ua().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=Ua().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>rm(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 Ua().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Ua().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return bl.print(this,e)}clone(){return this.throwIfDisposed(),bl.clone(this)}toString(e=!1){let t=this.dataSync();return qD(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),bl.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Ua().makeVariable(this,e,t,n)}};Object.defineProperty($e,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function ne(){return Yx("Tensor",()=>$e)}ne();var us=class extends $e{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(!ys(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Ua().disposeTensor(this),this.dataId=e.dataId,Ua().incRef(this,null)}dispose(){Ua().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(us,Symbol.hasInstance,{value:e=>e instanceof $e&&e.assign!=null&&e.assign instanceof Function});var qa={};Fe(qa,{assertTypesMatch:()=>vT,getTensorsInContainer:()=>Jx,isTensorInList:()=>eR,makeTypesMatch:()=>$t});var qy;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(qy||(qy={}));var Ky;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(Ky||(Ky={}));var Xy;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Xy||(Xy={}));var Yy;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Yy||(Yy={}));var Zy;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Zy||(Zy={}));var QD={float32:Yy,int32:Ky,bool:Xy,complex64:Zy};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 QD[e][t]}function pf(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 vT(e,t){R(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function eR(e,t){return t.some(n=>n.id===e.id)}function Jx(e){let t=[];return wT(e,t,new Set),t}function wT(e,t,n){if(e==null)return;if(e instanceof $e){t.push(e);return}if(!tR(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),wT(s,t,n))}}function tR(e){return Array.isArray(e)||typeof e=="object"}function Fy(e){return e.kernelName!=null}var Ek=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()}},pc=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Ek}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){am(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 Tc)&&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 pc.nextTensorId++}nextVariableId(){return pc.nextVariableId++}clone(e){let t=L.runKernel(Ui,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return L.runKernel(_i,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,nm(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=Fy(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(Fy(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=nm(h,this.backendName);R(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let b=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let y=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,b,y);let x=y.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=Fy(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=Hy(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?(R(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"&&ns(e[0])&&(r=e.map(o=>Gc(o)));let s=a.write(r,t,n),i=new $e(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=oT(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 $e(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 us(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*Gy(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 us||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*Gy(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=Hy(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,p)=>{if(u==null){let d=n[p],c=Am(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=Jx(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(R(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(r instanceof $e,()=>"The result y returned by f() must be a tensor.");let s=HD(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?nR(r.shape):n,jD(i,s,l=>this.tidy(l),aR);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 R(ls(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{R(t.every(i=>i instanceof $e),()=>"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),R(n.value instanceof $e,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),R(ls(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];R(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(...)."),R(u.every(d=>d instanceof $e),()=>"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=uc(),n=await this.backend.time(e);return n.wallMs=uc()-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 Ek;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}};pc.nextTensorId=0;pc.nextVariableId=0;function nR(e){let t=jx(bt(e),"float32");return L.makeTensor(t,e,"float32")}function kT(){let e=dT();if(e._tfengine==null){let t=new cT(e);e._tfengine=new pc(t)}return SD(e._tfengine.ENV),YD(()=>e._tfengine),e._tfengine}var L=kT();function aR(e,t){let n={a:e,b:t};return L.runKernel(xs,n)}var Hc={};Fe(Hc,{isBrowser:()=>IT,isMobile:()=>iR,mockIsMobile:()=>sR});function rR(){return typeof navigator!="undefined"&&navigator!=null}var Jy;function sR(e){Jy=e}function iR(e){if(Jy!==void 0)return Jy;if(e||rR()){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 IT(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var fa=X();fa.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.")});fa.registerFlag("IS_BROWSER",()=>IT());fa.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");fa.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));fa.registerFlag("PROD",()=>!1);fa.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>fa.getBool("DEBUG"));fa.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);fa.registerFlag("IS_TEST",()=>!1);fa.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);fa.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);fa.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);fa.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);function hr(e,t){let n=e;if(hn(e))return t==="string"?[]:[e.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)&&X().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&TT(e,a,[]),a}function TT(e,t,n){if(n=n||[],!Array.isArray(e)&&!hn(e)){R(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}R(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),R(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),$k(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=hr(e,r);!hn(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?uf(e,r):oi(e,[],!0);return L.makeTensor(i,s,r)}function cc(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)=>E(r,`${t}[${s}]`,n,a))}var Qx="__op";function z(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+Qx;let r=(...s)=>{L.startScope(n);try{let i=a(...s);return Kx(i)&&console.error("Cannot return a Promise inside of tidy."),L.endScope(i),i}catch(i){throw L.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function oR(e,t){let n=E(e,"real","complex"),a=E(t,"imag","complex");_n(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 L.runKernel(Pm,r)}var Dr=z({complex_:oR});function Is(e,t,n,a){if(a==null&&(a=$m(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");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){qx(t);let r=bt(t),s=bt(n);R(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"?uf(e,a):oi(e,[],!0),L.makeTensor(e,t,a)}function Bn(e,t,n){let a=hr(e,n);return Is(e,t,a,n)}var Qy={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},sm=4;async function lR(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,b)=>g+b.length,0)+sm*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 ev=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function Ak(e){return ev?Buffer.byteLength(e):new Blob([e]).size}function pR(e){if(ev)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 Fk(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 NT(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.trainingConfig!=null&&(n.trainingConfig=e.trainingConfig),n}async function nv(e,t){let n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(e.trainingConfig!=null&&(n.trainingConfig=e.trainingConfig),e.weightsManifest!=null){let[a,r]=await t(e.weightsManifest);n.weightSpecs=a,n.weightData=r}return e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer),n}function jc(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:Ak(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:Ak(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function dR(){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 hR(){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 mR(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function fR(){let e=dR(),t=hR(),n=mR();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 Ft=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Ft.instance==null&&(Ft.instance=new Ft),Ft.instance}static registerSaveRouter(e){Ft.getInstance().saveRouters.push(e)}static registerLoadRouter(e){Ft.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return Ft.getHandlers(e,"save")}static getLoadHandlers(e,t){return Ft.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?Ft.getInstance().loadRouters:Ft.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},gR=e=>Ft.registerSaveRouter(e),bR=e=>Ft.registerLoadRouter(e),yR=e=>Ft.getSaveHandlers(e),xR=(e,t)=>Ft.getLoadHandlers(e,t),ex="tensorflowjs",tx=1,ei="models_store",as="model_info_store";function CT(){if(!X().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 nx(e){let t=e.result;t.createObjectStore(ei,{keyPath:"modelPath"}),t.createObjectStore(as,{keyPath:"modelPath"})}var ci=class{constructor(e){if(this.indexedDB=CT(),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(ex,tx);r.onupgradeneeded=()=>nx(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(ei,"readonly"),o=i.objectStore(ei).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=jc(t),o=s.transaction(as,"readwrite"),l=o.objectStore(as),u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),p;u.onsuccess=()=>{p=s.transaction(ei,"readwrite");let d=p.objectStore(ei).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});d.onsuccess=()=>n({modelArtifactsInfo:i}),d.onerror=c=>{l=o.objectStore(as);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)})}};ci.URL_SCHEME="indexeddb://";var _T=e=>X().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ci.URL_SCHEME)?vR(e.slice(ci.URL_SCHEME.length)):null;Ft.registerSaveRouter(_T);Ft.registerLoadRouter(_T);function vR(e){return new ci(e)}function wR(e){return e.startsWith(ci.URL_SCHEME)?e.slice(ci.URL_SCHEME.length):e}var kR=class{constructor(){this.indexedDB=CT()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(ex,tx);n.onupgradeneeded=()=>nx(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(as,"readonly"),s=r.objectStore(as).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=wR(e),new Promise((t,n)=>{let a=this.indexedDB.open(ex,tx);a.onupgradeneeded=()=>nx(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(as,"readwrite"),i=s.objectStore(as),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(ei,"readwrite");let d=l.objectStore(ei).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)})}},_r="/",yl="tensorflowjs_models",ET="info",IR="model_topology",TR="weight_specs",SR="weight_data",NR="model_metadata";function $T(e){return{info:[yl,e,ET].join(_r),topology:[yl,e,IR].join(_r),weightSpecs:[yl,e,TR].join(_r),weightData:[yl,e,SR].join(_r),modelMetadata:[yl,e,NR].join(_r)}}function AT(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function CR(e){let t=e.split(_r);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(_r)}function _R(e){return e.startsWith(di.URL_SCHEME)?e.slice(di.URL_SCHEME.length):e}var di=class{constructor(e){if(!X().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=$T(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=jc(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,pR(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,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw AT(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.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=cR(s),t}};di.URL_SCHEME="localstorage://";var FT=e=>X().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(di.URL_SCHEME)?ER(e.slice(di.URL_SCHEME.length)):null;Ft.registerSaveRouter(FT);Ft.registerLoadRouter(FT);function ER(e){return new di(e)}var $R=class{constructor(){R(X().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),R(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=yl+_r,n=_r+ET;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(wl)&&(e=e.slice(0,e.indexOf(wl))),R(e.length>0,()=>"scheme must not be an empty string.");let n=Ln.getInstance();R(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=Ln.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(Ln.getInstance().managers)}};function Bh(e){if(e.indexOf(wl)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Ln.getSchemes().join(",")}`);return{scheme:e.split(wl)[0],path:e.split(wl)[1]}}async function DT(e,t,n=!1){R(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=Ft.getLoadHandlers(e);R(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),R(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=Ft.getSaveHandlers(t);R(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),R(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=Bh(e).scheme,l=Bh(e).path,u=o===Bh(e).scheme,p=await r.load();n&&u&&await Ln.getManager(o).removeModel(l);let d=await i.save(p);return n&&!u&&await Ln.getManager(o).removeModel(l),d.modelArtifactsInfo}async function AR(){let e=Ln.getSchemes(),t={};for(let n of e){let a=await Ln.getManager(n).listModels();for(let r in a){let s=n+wl+r;t[s]=a[r]}}return t}async function FR(e){let t=Bh(e);return Ln.getManager(t.scheme).removeModel(t.path)}async function DR(e,t){return DT(e,t,!1)}async function RR(e,t){return DT(e,t,!0)}var MR=class{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)}};if(X().get("IS_BROWSER")){X().setPlatform("browser",new MR);try{Ln.registerManager(di.URL_SCHEME,new $R)}catch(e){}try{Ln.registerManager(ci.URL_SCHEME,new kR)}catch(e){}}var PR={importFetch:()=>HF()},Dy,OR=class{constructor(){this.util=jF(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return X().global.fetch!=null?X().global.fetch(e,t):(Dy==null&&(Dy=PR.importFetch()),Dy(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)}};X().get("IS_NODE")&&!X().get("IS_BROWSER")&&X().setPlatform("node",new OR);function ze(e,t="float32",n){return t=t||"float32",qx(e),new jt(e,t,n)}function LR(e,t){let n=E(e,"x","cast");if(!iT(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 L.runKernel(_i,a,r)}var le=z({cast_:LR});function zR(e){let t={x:E(e,"x","clone","string_or_numeric")};return L.runKernel(Ui,t)}var cr=z({clone_:zR});function av(e,t=!1){console.log(e.toString(t))}kT();var WR={buffer:ze,cast:le,clone:cr,print:av};ZD(WR);var Nn={};Fe(Nn,{browserFiles:()=>qR,browserHTTPRequest:()=>JR,concatenateArrayBuffers:()=>tv,copyModel:()=>DR,decodeWeights:()=>ST,encodeWeights:()=>lR,fromMemory:()=>eM,fromMemorySync:()=>LT,getLoadHandlers:()=>xR,getModelArtifactsForJSON:()=>nv,getModelArtifactsInfoForJSON:()=>jc,getSaveHandlers:()=>yR,http:()=>sv,isHTTPScheme:()=>ax,listModels:()=>AR,loadWeights:()=>KR,moveModel:()=>RR,registerLoadRouter:()=>bR,registerSaveRouter:()=>gR,removeModel:()=>FR,weightsLoaderFactory:()=>MT,withSaveHandler:()=>tM,withSaveHandlerSync:()=>nM});var BR="model",VR=".json",UR=".weights.bin";function Dk(e){return new Promise(t=>setTimeout(t)).then(e)}var Nl=class{constructor(e){if(!X().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(Nl.URL_SCHEME)&&(e=e.slice(Nl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=BR),this.modelJsonFileName=e+VR,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=NT(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 Dk(()=>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 Dk(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:jc(e)}}}};Nl.URL_SCHEME="downloads://";var GR=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=nv(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,tv(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=>Fk(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=Fk(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}},HR=e=>X().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Nl.URL_SCHEME)?jR(e.slice(Nl.URL_SCHEME.length)):null;Ft.registerSaveRouter(HR);function jR(e="model"){return new Nl(e)}function qR(e){return new GR(e)}function Rk(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){R(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,u){R(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),R(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),R(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(e.map(s))}async function RT(e,t){t==null&&(t={});let n=t.fetchFunc==null?X().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 Rk(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await Rk(i,t.onProgress,o,l)}async function KR(e,t="",n,a){return MT(r=>RT(r,{requestInit:a}))(e,t,n)}function MT(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 b="quantization"in g?g.quantization.dtype:g.dtype,y=Qy[b]*bt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:y})};a!=null?a.forEach((w,I)=>{w===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=y})}),!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=ST(w,[x.manifestEntry]);for(let N in I)d[N]=I[N]}),c+=m}),d}}var XR="application/octet-stream",YR="application/json",rv=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?(R(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=X().platform.fetch,R(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&R(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=NT(e,n);t.body.append("model.json",new Blob([JSON.stringify(a)],{type:YR}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:XR}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:jc(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 nv(t,r=>this.loadWeights(r))}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=ZR(t),r=this.weightPathPrefix||n,s=[];for(let u of e)s.push(...u.weights);let 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 RT(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,tv(l)]}};rv.URL_SCHEME_REGEX=/^https?:\/\//;function ZR(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function ax(e){return e.match(rv.URL_SCHEME_REGEX)!=null}var PT=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>ax(a)):n=ax(e),n)return sv(e,t)}return null};Ft.registerSaveRouter(PT);Ft.registerLoadRouter(PT);function sv(e,t){return new rv(e,t)}function JR(e,t){return sv(e,t)}var Ry=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},OT=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},QR=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function eM(e,t,n,a){let r=arguments;return new QR(LT(...r))}function LT(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new Ry(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 Ry({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 Ry({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function tM(e){return new OT(e)}function nM(e){return new OT(e)}var zT={};Fe(zT,{confusionMatrix:()=>IM});function aM(e,t,n=!1,a=!1){let r=E(e,"a","matMul"),s=E(t,"b","matMul");[r,s]=$t(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return L.runKernel(Ci,i,o)}var Re=z({matMul_:aM});function rM(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(e,"indices","oneHot","int32")},i={dtype:r,depth:t,onValue:n,offValue:a};return L.runKernel(eo,s,i)}var Cl=z({oneHot_:rM});function sM(){X().set("PROD",!0)}function iM(){X().set("DEBUG",!0)}function oM(){X().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function iv(e){X().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}JD(iv);function lM(){L.disposeVariables()}function ir(){return L}function im(){return L.memory()}function uM(e){return L.profile(e)}function O(e,t){return L.tidy(e,t)}function Me(e){Jx(e).forEach(t=>t.dispose())}function Qt(e){return L.keep(e)}function pM(e){return L.time(e)}function cM(e){return L.setBackend(e)}function dM(){return L.ready()}function hM(){return L.backendName}function mM(e){L.removeBackend(e)}function fM(e){return L.findBackend(e)}function gM(e){return L.findBackendFactory(e)}function cf(e,t,n=1){return L.registerBackend(e,t,n)}function WT(){return L.backend}function bM(e,t){X().setPlatform(e,t)}function yM(e){let t={input:E(e,"input","imag")};return L.runKernel(Km,t)}var qc=z({imag_:yM});function xM(e){let t={x:E(e,"x","neg")};return L.runKernel(ku,t)}var kt=z({neg_:xM});function vM(e){let t={input:E(e,"input","real")};return L.runKernel(nf,t)}var _l=z({real_:vM});function wM(e,t,n){let a=E(e,"x","transpose");if(t==null&&(t=a.shape.map((i,o)=>o).reverse()),R(a.rank===t.length,()=>`Error in transpose: rank of input ${a.rank} must match length of perm ${t}.`),t.forEach(i=>{R(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"?O(()=>{let i=_l(a),o=qc(a);return i=L.runKernel(Ar,{x:i},s),o=L.runKernel(Ar,{x:o},s),n&&(o=kt(o)),Dr(i,o)}):L.runKernel(Ar,r,s)}var Ae=z({transpose_:wM});function kM(e,t,n){let a=E(e,"labels","confusionMatrix"),r=E(t,"predictions","confusionMatrix");R(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),R(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),R(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),R(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.`),R(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=Cl(le(a,"int32"),n),i=Cl(le(r,"int32"),n),o=Ae(s),l=Re(o,i);return le(l,"int32")}var IM=z({confusionMatrix_:kM}),qu={};Fe(qu,{assertAndGetBroadcastShape:()=>ct,getBroadcastDims:()=>BT,getReductionAxes:()=>Wt});function BT(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 ct(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;r$M,fromPixelsAsync:()=>_M,toPixels:()=>EM});function Kc(e,t,n){if(Ii(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=hr(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 Is(e,t,a,n)}var js;function VT(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(nm(tm,L.backendName)!=null){let c={pixels:e},h={numChannels:t};return L.runKernel(tm,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(js==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")js=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else js=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});js.canvas.width=l,js.canvas.height=u,js.drawImage(e,0,0,l,u),p=js.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 $M=z({fromPixels_:VT}),ov={};Fe(ov,{prepareAndValidate:()=>UT});function UT(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(bt(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 lv={};Fe(lv,{calculateShapes:()=>GT,validateInput:()=>pv,validateUpdateShape:()=>uv});function uv(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;dFM,computeFlatOffset:()=>OM,computeOutShape:()=>RM,getNormalizedAxes:()=>MM,isSliceContinous:()=>PM,maskToAxes:()=>DM,parseSliceParams:()=>QT,sliceInfo:()=>LM,startForAxis:()=>ZT,startIndicesWithElidedDims:()=>KT,stopForAxis:()=>JT,stopIndicesWithElidedDims:()=>XT,stridesForAxis:()=>YT,stridesWithElidedDims:()=>HT});var rx=-2,AM=-1;function FM(e,t,n){let a=e.shape.length;R(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),R(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 DM(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function RM(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=KT(i,h,m,a,e),d=XT(o,h,m,r,e),c=HT(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=jT(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=jT(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=oc(0,i,l-1),i}function JT(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=oc(0,i,l):i=oc(-1,i,l-1),i}function PM(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 OM(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{R(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:(R(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 LM(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 y=0;y0?0:-1,c.strides[y]>0?w:w-1];if(x&&c.strides[y]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[y]===1;let _=!!(c.beginMask&1<=w)throw Error(`slice index ${c.begin[y]} of dimension ${y} out of bounds.`)}else c.begin[y]=Mk(c.begin[y],0,c.strides[y],w,I,N),c.end[y]=Mk(c.end[y],1,c.strides[y],w,I,N);let M=c.strides[y]===1&&c.begin[y]===0&&c.end[y]===w;h=h&&M,m=m&&(y===0&&c.strides[y]===1||M)}else h=h&&c.strides[y]===1&&_,m=m&&(y===0&&c.strides[y]===1||_);let $,A=!1;if(c.beginValid&&c.endValid?($=c.end[y]-c.begin[y],A=!0):x?($=1,A=!0):_&&w>=0&&(c.strides[y]<0?$=-w:$=w,A=!0),A){let M;$===0||$<0!=c.strides[y]<0?M=0:M=Math.trunc($/c.strides[y])+($%c.strides[y]!==0?1:0),g.push(M)}else g.push(-1)}for(let y=0;y=0?b.push(g[x]):x===rx&&b.push(1)}return{finalShapeSparse:b.filter((y,x)=>c.finalShapeGatherIndices[x]!==rx),finalShape:b,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function zM(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 se={};Fe(se,{Serializable:()=>eS,SerializationMap:()=>Zs,registerClass:()=>Ts});var eS=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Zs=class{constructor(){this.classNameMap={}}static getMap(){return Zs.instance==null&&(Zs.instance=new Zs),Zs.instance}static register(e){Zs.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function Ts(e){R(e.className!=null,()=>"Class being registered does not have the static className property defined."),R(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),R(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Zs.register(e)}var tS={};Fe(tS,{TEST_EPSILON_FLOAT16:()=>nS,createVideoElement:()=>qM,encodeStrings:()=>aS,expectArrayBuffersEqual:()=>jM,expectArraysClose:()=>BM,expectArraysEqual:()=>UM,expectNumbersClose:()=>GM,expectPromiseToFail:()=>VM,expectValuesInRange:()=>HM,play:()=>KM,testEpsilon:()=>cv});var WM=.001,nS=.1;function BM(e,t,n){return n==null&&(n=cv()),sx(e,t,(a,r)=>dv(a,r,n))}function cv(){return L.backend.floatPrecision()===32?WM:nS}function sx(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=hr(e),o=hr(t);if(!ys(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=hn(e)?e:oi(e),s=hn(t)?t:oi(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 Fp(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||LI(t,this.size),this.strides=Al(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(),Pa().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=Pa().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 Pa().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Pa().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return sl.print(this,e)}clone(){return this.throwIfDisposed(),sl.clone(this)}toString(e=!1){let t=this.dataSync();return fD(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),sl.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Pa().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 Ax("Tensor",()=>Te)}J();var ss=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(!ms(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Pa().disposeTensor(this),this.dataId=e.dataId,Pa().incRef(this,null)}dispose(){Pa().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(ss,Symbol.hasInstance,{value:e=>e instanceof Te&&e.assign!=null&&e.assign instanceof Function});var Ba={};_e(Ba,{assertTypesMatch:()=>eS,getTensorsInContainer:()=>Fx,isTensorInList:()=>kD,makeTypesMatch:()=>_t});var Cy;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(Cy||(Cy={}));var _y;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(_y||(_y={}));var Ey;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Ey||(Ey={}));var Ay;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Ay||(Ay={}));var $y;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})($y||($y={}));var wD={float32:Ay,int32:_y,bool:Ey,complex64:$y};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 wD[e][t]}function Wm(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 eS(e,t){$(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function kD(e,t){return t.some(n=>n.id===e.id)}function Fx(e){let t=[];return tS(e,t,new Set),t}function tS(e,t,n){if(e==null)return;if(e instanceof Te){t.push(e);return}if(!ID(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),tS(s,t,n))}}function ID(e){return Array.isArray(e)||typeof e=="object"}function dy(e){return e.kernelName!=null}var ok=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()}},Kp=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new ok}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 lc)&&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 Kp.nextTensorId++}nextVariableId(){return Kp.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=dy(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(dy(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 b=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let y=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,b,y);let x=y.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=dy(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=Ty(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"&&Jr(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=WI(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 ss(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*Sy(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 ss||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*Sy(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=Ty(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,p)=>{if(u==null){let d=n[p],c=lm(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=Fx(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=hD(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?SD(r.shape):n,mD(i,s,l=>this.tidy(l),TD);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 $(rs(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"),$(rs(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=qp(),n=await this.backend.time(e);return n.wallMs=qp()-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 ok;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}};Kp.nextTensorId=0;Kp.nextVariableId=0;function SD(e){let t=Nx(mt(e),"float32");return O.makeTensor(t,e,"float32")}function nS(){let e=jI();if(e._tfengine==null){let t=new HI(e);e._tfengine=new Kp(t)}return qF(e._tfengine.ENV),yD(()=>e._tfengine),e._tfengine}var O=nS();function TD(e,t){let n={a:e,b:t};return O.runKernel(fs,n)}var Ec={};_e(Ec,{isBrowser:()=>aS,isMobile:()=>_D,mockIsMobile:()=>CD});function ND(){return typeof navigator!="undefined"&&navigator!=null}var Fy;function CD(e){Fy=e}function _D(e){if(Fy!==void 0)return Fy;if(e||ND()){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 aS(){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",()=>aS());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 or(e,t){let n=e;if(dn(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||dn(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&H().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&rS(e,a,[]),a}function rS(e,t,n){if(n=n||[],!Array.isArray(e)&&!dn(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),lk(a,r,t,n),e==null||!dn(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=or(e,r);!dn(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Bm(e,r):Js(e,[],!0);return O.makeTensor(i,s,r)}function Xp(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 Dx="__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+Dx;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 ED(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(hm,r)}var Ar=L({complex_:ED});function xs(e,t,n,a){if(a==null&&(a=om(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!dn(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){Cx(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!dn(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Bm(e,a):Js(e,[],!0),O.makeTensor(e,t,a)}function On(e,t,n){let a=or(e,n);return xs(e,t,a,n)}var Dy={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},Ph=4;async function AD(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,b)=>g+b.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 Rx=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function uk(e){return Rx?Buffer.byteLength(e):new Blob([e]).size}function FD(e){if(Rx)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 pk(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 iS(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.trainingConfig!=null&&(n.trainingConfig=e.trainingConfig),n}function oS(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),a}async function Px(e,t){let n,a;return e.weightsManifest!=null&&([n,a]=await t(e.weightsManifest)),oS(e,n,a)}function Ac(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:uk(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:uk(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function lS(e){let t=[];for(let n of e)t.push(...n.weights);return t}function RD(){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 MD(){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 PD(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function OD(){let e=RD(),t=MD(),n=PD();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}},LD=e=>At.registerSaveRouter(e),zD=e=>At.registerLoadRouter(e),BD=e=>At.getSaveHandlers(e),WD=(e,t)=>At.getLoadHandlers(e,t),Ry="tensorflowjs",My=1,Hs="models_store",Qr="model_info_store";function uS(){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 Py(e){let t=e.result;t.createObjectStore(Hs,{keyPath:"modelPath"}),t.createObjectStore(Qr,{keyPath:"modelPath"})}var ni=class{constructor(e){if(this.indexedDB=uS(),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(Ry,My);r.onupgradeneeded=()=>Py(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=Ac(t),o=s.transaction(Qr,"readwrite"),l=o.objectStore(Qr),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(Qr);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 pS=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ni.URL_SCHEME)?VD(e.slice(ni.URL_SCHEME.length)):null;At.registerSaveRouter(pS);At.registerLoadRouter(pS);function VD(e){return new ni(e)}function UD(e){return e.startsWith(ni.URL_SCHEME)?e.slice(ni.URL_SCHEME.length):e}var GD=class{constructor(){this.indexedDB=uS()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(Ry,My);n.onupgradeneeded=()=>Py(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(Qr,"readonly"),s=r.objectStore(Qr).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=UD(e),new Promise((t,n)=>{let a=this.indexedDB.open(Ry,My);a.onupgradeneeded=()=>Py(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(Qr,"readwrite"),i=s.objectStore(Qr),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)})}},Tr="/",il="tensorflowjs_models",cS="info",HD="model_topology",jD="weight_specs",qD="weight_data",KD="model_metadata";function dS(e){return{info:[il,e,cS].join(Tr),topology:[il,e,HD].join(Tr),weightSpecs:[il,e,jD].join(Tr),weightData:[il,e,qD].join(Tr),modelMetadata:[il,e,KD].join(Tr)}}function hS(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function XD(e){let t=e.split(Tr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Tr)}function YD(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=dS(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=Ac(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,FD(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,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw hS(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.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=DD(s),t}};ai.URL_SCHEME="localstorage://";var mS=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ai.URL_SCHEME)?ZD(e.slice(ai.URL_SCHEME.length)):null;At.registerSaveRouter(mS);At.registerLoadRouter(mS);function ZD(e){return new ai(e)}var JD=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=il+Tr,n=Tr+cS;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(ul)&&(e=e.slice(0,e.indexOf(ul))),$(e.length>0,()=>"scheme must not be an empty string.");let n=Rn.getInstance();$(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=Rn.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(Rn.getInstance().managers)}};function yh(e){if(e.indexOf(ul)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Rn.getSchemes().join(",")}`);return{scheme:e.split(ul)[0],path:e.split(ul)[1]}}async function fS(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=yh(e).scheme,l=yh(e).path,u=o===yh(e).scheme,p=await r.load();n&&u&&await Rn.getManager(o).removeModel(l);let d=await i.save(p);return n&&!u&&await Rn.getManager(o).removeModel(l),d.modelArtifactsInfo}async function QD(){let e=Rn.getSchemes(),t={};for(let n of e){let a=await Rn.getManager(n).listModels();for(let r in a){let s=n+ul+r;t[s]=a[r]}}return t}async function eR(e){let t=yh(e);return Rn.getManager(t.scheme).removeModel(t.path)}async function tR(e,t){return fS(e,t,!1)}async function nR(e,t){return fS(e,t,!0)}var aR=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(!window||!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 aR);try{Rn.registerManager(ai.URL_SCHEME,new JD)}catch(e){}try{Rn.registerManager(ni.URL_SCHEME,new GD)}catch(e){}}var rR={importFetch:()=>hF()},hy,sR=class{constructor(){this.util=mF(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return H().global.fetch!=null?H().global.fetch(e,t):(hy==null&&(hy=rR.importFetch()),hy(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 sR);function Oe(e,t="float32",n){return t=t||"float32",Cx(e),new Ht(e,t,n)}function iR(e,t){let n=_(e,"x","cast");if(!BI(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_:iR});function oR(e){let t={x:_(e,"x","clone","string_or_numeric")};return O.runKernel(Ri,t)}var sr=L({clone_:oR});function Ox(e,t=!1){console.log(e.toString(t))}nS();var lR={buffer:Oe,cast:oe,clone:sr,print:Ox};xD(lR);var Ut={};_e(Ut,{browserFiles:()=>fR,browserHTTPRequest:()=>vR,concatenateArrayBuffers:()=>Mx,copyModel:()=>tR,decodeWeights:()=>sS,encodeWeights:()=>AD,fromMemory:()=>kR,fromMemorySync:()=>vS,getLoadHandlers:()=>WD,getModelArtifactsForJSON:()=>Px,getModelArtifactsForJSONSync:()=>oS,getModelArtifactsInfoForJSON:()=>Ac,getSaveHandlers:()=>BD,getWeightSpecs:()=>lS,http:()=>zx,isHTTPScheme:()=>Oy,listModels:()=>QD,loadWeights:()=>gR,moveModel:()=>nR,registerLoadRouter:()=>zD,registerSaveRouter:()=>LD,removeModel:()=>eR,weightsLoaderFactory:()=>bS,withSaveHandler:()=>IR,withSaveHandlerSync:()=>SR});var uR="model",pR=".json",cR=".weights.bin";function ck(e){return new Promise(t=>setTimeout(t)).then(e)}var ml=class{constructor(e){if(!H().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(ml.URL_SCHEME)&&(e=e.slice(ml.URL_SCHEME.length)),(e==null||e.length===0)&&(e=uR),this.modelJsonFileName=e+pR,this.weightDataFileName=e+cR}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=iS(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 ck(()=>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 ck(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Ac(e)}}}};ml.URL_SCHEME="downloads://";var dR=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=Px(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,Mx(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=>pk(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=pk(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}},hR=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ml.URL_SCHEME)?mR(e.slice(ml.URL_SCHEME.length)):null;At.registerSaveRouter(hR);function mR(e="model"){return new ml(e)}function fR(e){return new dR(e)}function dk(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 gS(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 dk(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await dk(i,t.onProgress,o,l)}async function gR(e,t="",n,a){return bS(r=>gS(r,{requestInit:a}))(e,t,n)}function bS(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 b="quantization"in g?g.quantization.dtype:g.dtype,y=Dy[b]*mt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:y})};a!=null?a.forEach((w,I)=>{w===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=y})}),!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=sS(w,[x.manifestEntry]);for(let T in I)d[T]=I[T]}),c+=m}),d}}var bR="application/octet-stream",yR="application/json",Lx=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=iS(e,n);t.body.append("model.json",new Blob([JSON.stringify(a)],{type:yR}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:bR}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Ac(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 Px(t,r=>this.loadWeights(r))}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=xR(t),r=this.weightPathPrefix||n,s=lS(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 gS(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,Mx(l)]}};Lx.URL_SCHEME_REGEX=/^https?:\/\//;function xR(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Oy(e){return e.match(Lx.URL_SCHEME_REGEX)!=null}var yS=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Oy(a)):n=Oy(e),n)return zx(e,t)}return null};At.registerSaveRouter(yS);At.registerLoadRouter(yS);function zx(e,t){return new Lx(e,t)}function vR(e,t){return zx(e,t)}var my=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},xS=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},wR=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function kR(e,t,n,a){let r=arguments;return new wR(vS(...r))}function vS(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new my(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 my({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 my({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function IR(e){return new xS(e)}function SR(e){return new xS(e)}var wS={};_e(wS,{confusionMatrix:()=>HR});function TR(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 Ae=L({matMul_:TR});function NR(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 fl=L({oneHot_:NR});function CR(){H().set("PROD",!0)}function _R(){H().set("DEBUG",!0)}function ER(){H().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Bx(e){H().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}vD(Bx);function AR(){O.disposeVariables()}function er(){return O}function Oh(){return O.memory()}function $R(e){return O.profile(e)}function P(e,t){return O.tidy(e,t)}function $e(e){Fx(e).forEach(t=>t.dispose())}function Zt(e){return O.keep(e)}function FR(e){return O.time(e)}function DR(e){return O.setBackend(e)}function RR(){return O.ready()}function MR(){return O.backendName}function PR(e){O.removeBackend(e)}function OR(e){return O.findBackend(e)}function LR(e){return O.findBackendFactory(e)}function Vm(e,t,n=1){return O.registerBackend(e,t,n)}function kS(){return O.backend}function zR(e,t){H().setPlatform(e,t)}function BR(e){let t={input:_(e,"input","imag")};return O.runKernel(Tm,t)}var $c=L({imag_:BR});function WR(e){let t={x:_(e,"x","neg")};return O.runKernel(pu,t)}var vt=L({neg_:WR});function VR(e){let t={input:_(e,"input","real")};return O.runKernel(Rm,t)}var gl=L({real_:VR});function UR(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=gl(a),o=$c(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 Ce=L({transpose_:UR});function GR(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=fl(oe(a,"int32"),n),i=fl(oe(r,"int32"),n),o=Ce(s),l=Ae(o,i);return oe(l,"int32")}var HR=L({confusionMatrix_:GR}),Mu={};_e(Mu,{assertAndGetBroadcastShape:()=>ut,getBroadcastDims:()=>IS,getReductionAxes:()=>Bt});function IS(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Bt(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;rJR,fromPixelsAsync:()=>YR,toPixels:()=>ZR});function Fc(e,t,n){if(mi(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=or(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 xs(e,t,a,n)}var Os;function SS(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 JR=L({fromPixels_:SS}),Wx={};_e(Wx,{prepareAndValidate:()=>TS});function TS(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 Vx={};_e(Vx,{calculateShapes:()=>NS,validateInput:()=>Gx,validateUpdateShape:()=>Ux});function Ux(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;deM,computeFlatOffset:()=>sM,computeOutShape:()=>nM,getNormalizedAxes:()=>aM,isSliceContinous:()=>rM,maskToAxes:()=>tM,parseSliceParams:()=>MS,sliceInfo:()=>iM,startForAxis:()=>DS,startIndicesWithElidedDims:()=>AS,stopForAxis:()=>RS,stopIndicesWithElidedDims:()=>$S,stridesForAxis:()=>FS,stridesWithElidedDims:()=>CS});var Ly=-2,QR=-1;function eM(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 tM(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function nM(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=AS(i,h,m,a,e),d=$S(o,h,m,r,e),c=CS(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=_S(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=_S(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=Hp(0,i,l-1),i}function RS(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=Hp(0,i,l):i=Hp(-1,i,l-1),i}function rM(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 sM(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 iM(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 y=0;y0?0:-1,c.strides[y]>0?w:w-1];if(x&&c.strides[y]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[y]===1;let C=!!(c.beginMask&1<=w)throw Error(`slice index ${c.begin[y]} of dimension ${y} out of bounds.`)}else c.begin[y]=hk(c.begin[y],0,c.strides[y],w,I,T),c.end[y]=hk(c.end[y],1,c.strides[y],w,I,T);let R=c.strides[y]===1&&c.begin[y]===0&&c.end[y]===w;h=h&&R,m=m&&(y===0&&c.strides[y]===1||R)}else h=h&&c.strides[y]===1&&C,m=m&&(y===0&&c.strides[y]===1||C);let E,A=!1;if(c.beginValid&&c.endValid?(E=c.end[y]-c.begin[y],A=!0):x?(E=1,A=!0):C&&w>=0&&(c.strides[y]<0?E=-w:E=w,A=!0),A){let R;E===0||E<0!=c.strides[y]<0?R=0:R=Math.trunc(E/c.strides[y])+(E%c.strides[y]!==0?1:0),g.push(R)}else g.push(-1)}for(let y=0;y=0?b.push(g[x]):x===Ly&&b.push(1)}return{finalShapeSparse:b.filter((y,x)=>c.finalShapeGatherIndices[x]!==Ly),finalShape:b,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function oM(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:()=>PS,SerializationMap:()=>Vs,registerClass:()=>vs});var PS=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 vs(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 OS={};_e(OS,{TEST_EPSILON_FLOAT16:()=>LS,createVideoElement:()=>fM,encodeStrings:()=>zS,expectArrayBuffersEqual:()=>mM,expectArraysClose:()=>uM,expectArraysEqual:()=>cM,expectNumbersClose:()=>dM,expectPromiseToFail:()=>pM,expectValuesInRange:()=>hM,play:()=>gM,testEpsilon:()=>Hx});var lM=.001,LS=.1;function uM(e,t,n){return n==null&&(n=Hx()),zy(e,t,(a,r)=>jx(a,r,n))}function Hx(){return O.backend.floatPrecision()===32?lM:LS}function zy(e,t,n){let a=!0;if((dn(e)||dn(t))&&(a=!1),dn(e)&&dn(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=or(e),o=or(t);if(!ms(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=dn(e)?e:Js(e),s=dn(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 UM(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return ns(e)||ns(e[0])||ns(t)||ns(t[0])?sx(e,n,(a,r)=>a==r):sx(e,t,(a,r)=>dv(a,r,0))}function GM(e,t,n){if(n==null&&(n=cv()),!dv(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function dv(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function HM(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function jM(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 KM(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var XM="3.20.0";function YM(e,t){let n=E(e,"a","add"),a=E(t,"b","add");[n,a]=$t(n,a);let r={a:n,b:a};return L.runKernel(xs,r)}var Q=z({add_:YM});function ZM(e,t){let n=E(e,"a","floorDiv"),a=E(t,"b","floorDiv");[n,a]=$t(n,a);let r={a:n,b:a};return L.runKernel(Wi,r)}var df=z({floorDiv_:ZM});function JM(e,t){let n=E(e,"a","div"),a=E(t,"b","div");if([n,a]=$t(n,a),n.dtype==="int32"&&a.dtype==="int32")return df(n,a);let r={a:n,b:a},s={};return L.runKernel(Pi,r,s)}var fe=z({div_:JM});function QM(e,t){let n=E(e,"a","mul"),a=E(t,"b","mul");[n,a]=$t(n,a);let r={a:n,b:a};return L.runKernel(Qi,r)}var W=z({mul_:QM});function eP(e){let t=E(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return L.runKernel(Cc,n)}else{let n={x:t};return L.runKernel(Ul,n)}}var Lt=z({abs_:eP});function tP(e){let t={x:E(e,"x","acos")};return L.runKernel(Gl,t)}var hv=z({acos_:tP});function nP(e){let t={x:E(e,"x","acosh")};return L.runKernel(Hl,t)}var mv=z({acosh_:nP});function aP(e){R(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),R(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>E(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(!ys(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return L.runKernel(Ti,a)}var rS=z({addN_:aP});function rP(e,t=null,n=!1){let a={x:E(e,"x","all","bool")},r={axis:t,keepDims:n};return L.runKernel(jl,a,r)}var hf=z({all_:rP});function sP(e,t=null,n=!1){let a={x:E(e,"x","any","bool")},r={axis:t,keepDims:n};return L.runKernel(ql,a,r)}var dc=z({any_:sP});function iP(e,t=0){let n={x:E(e,"x","argMax")},a={axis:t};return L.runKernel(Si,n,a)}var hi=z({argMax_:iP});function oP(e,t=0){let n={x:E(e,"x","argMin")},a={axis:t};return L.runKernel(Sc,n,a)}var fv=z({argMin_:oP});function lP(e){let t={x:E(e,"x","asin")};return L.runKernel(Kl,t)}var gv=z({asin_:lP});function uP(e){let t={x:E(e,"x","asinh")};return L.runKernel(Xl,t)}var bv=z({asinh_:uP});function pP(e){let t={x:E(e,"x","atan")};return L.runKernel(Yl,t)}var yv=z({atan_:pP});function cP(e,t){let n=E(e,"a","atan2"),a=E(t,"b","atan2");[n,a]=$t(n,a);let r={a:n,b:a};return L.runKernel(Jl,r)}var xv=z({atan2_:cP});function dP(e){let t={x:E(e,"x","atanh")};return L.runKernel(Zl,t)}var vv=z({atanh_:dP});function hP(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=oS(r);return Xc(e,o,n,s,a,null,null,l)}function sS(e,t,n,a,r,s,i="channelsLast"){let[o,l]=om(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 Xc(e,u,n,a,r,s,!1,i)}function mP(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=ix(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 iS(e,p,n,a,r,!1,d,s)}function Xc(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]=om(n),[b,y]=om(a),x=kl(c,b),w=kl(h,y),{padInfo:I,outHeight:N,outWidth:_}=bP(r,u,p,f,g,x,w,s,o),$=i?m*d:m,A;return o==="channelsFirst"?A=[l,$,N,_]:o==="channelsLast"&&(A=[l,N,_,$]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:p,inChannels:d,outHeight:N,outWidth:_,outChannels:$,padInfo:I,strideHeight:f,strideWidth:g,filterHeight:c,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:w,dilationHeight:b,dilationWidth:y,inShape:e,outShape:A,filterShape:t}}function iS(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,[b,y,x]=ix(n),[w,I,N]=ix(a),_=kl(h,w),$=kl(m,I),A=kl(f,N),{padInfo:M,outDepth:D,outHeight:T,outWidth:P}=yP(r,u,p,d,b,y,x,_,$,A,o),U=s?g*c:g,j;return i==="channelsFirst"?j=[l,U,D,T,P]:i==="channelsLast"&&(j=[l,D,T,P,U]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:D,outHeight:T,outWidth:P,outChannels:U,padInfo:M,strideDepth:b,strideHeight:y,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:_,effectiveFilterHeight:$,effectiveFilterWidth:A,dilationDepth:w,dilationHeight:I,dilationWidth:N,inShape:e,outShape:j,filterShape:t}}function fP(e,t,n,a,r){a==null&&(a=wv(e,t,n));let s=e[0],i=e[1],o=ai((s-t+2*a)/n+1,r),l=ai((i-t+2*a)/n+1,r);return[o,l]}function gP(e,t,n,a,r,s){r==null&&(r=wv(e,t,a));let i=e[0],o=e[1],l=e[2],u=ai((i-t+2*r)/a+1,s),p=ai((o-t+2*r)/a+1,s),d=ai((l-t+2*r)/a+1,s);return[u,p,d,n]}function wv(e,t,n,a=1){let r=kl(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function om(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function ix(e){return typeof e=="number"?[e,e,e]:e}function kl(e,t){return t<=1?e:e+(e-1)*(t-1)}function bP(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=fP([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),b=h-g;u={top:m,bottom:f,left:g,right:b,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=ai((t-s+c+h)/a+1,o),d=ai((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function yP(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=gP([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,b=(m-1)*i+u-a,y=Math.floor(f/2),x=f-y,w=Math.floor(g/2),I=g-w,N=Math.floor(b/2),_=b-N;d={top:w,bottom:I,left:N,right:_,front:y,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 ai(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 ps(e){let[t,n,a]=om(e);return t===1&&n===1&&a===1}function gr(e,t){return ps(e)||ps(t)}function oS(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function En(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")R(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=>{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 xP(e,t){let n={x:E(e,"x","reshape","string_or_numeric")},a={shape:t};return L.runKernel($u,n,a)}var B=z({reshape_:xP});function vP(e,t,n,a,r){let s=E(e,"x","avgPool","float32"),i=1;R(gr(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=B(s,[1,s.shape[0],s.shape[1],s.shape[2]])),R(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),En("avgPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=L.runKernel(Ni,u,p);return d=le(d,s.dtype),l?B(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ba=z({avgPool_:vP});function wP(e,t,n,a,r,s="NDHWC"){let i=E(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=B(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),R(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),R(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),En("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=L.runKernel(Nc,u,p);return d=le(d,o.dtype),l?B(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var kv=z({avgPool3d_:wP});function kP(e,t=0){R(e.length>=1,()=>"Pass at least one tensor to concat");let n=cc(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 cr(n[0]);let a=n,r={axis:t};return L.runKernel(eu,a,r)}var Qe=z({concat_:kP});function IP(e){let t={x:E(e,"x","sigmoid","float32")};return L.runKernel(mo,t)}var ha=z({sigmoid_:IP});function TP(e,t,n){let a=E(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 L.runKernel(Ru,r,s)}var He=z({slice_:TP});function SP(e){let t={x:E(e,"x","tanh","float32")};return L.runKernel(wo,t)}var mi=z({tanh_:SP});function NP(e,t,n,a,r,s){let i=E(e,"forgetBias","basicLSTMCell"),o=E(t,"lstmKernel","basicLSTMCell"),l=E(n,"lstmBias","basicLSTMCell"),u=E(a,"data","basicLSTMCell"),p=E(r,"c","basicLSTMCell"),d=E(s,"h","basicLSTMCell"),c=Qe([u,d],1),h=Re(c,o),m=Q(h,l),f=m.shape[0],g=m.shape[1]/4,b=[f,g],y=He(m,[0,0],b),x=He(m,[0,g],b),w=He(m,[0,g*2],b),I=He(m,[0,g*3],b),N=Q(W(ha(y),mi(x)),W(p,ha(Q(i,w)))),_=W(mi(N),ha(I));return[N,_]}var lS=z({basicLSTMCell_:NP});function CP(e,t,n){let a=E(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);R(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),R(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),R(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 L.runKernel(Ql,s,i)}var Yc=z({batchToSpaceND_:CP});function _P(e){let t;return e.rank===0||e.rank===1?t=B(e,[1,1,1,e.size]):e.rank===2?t=B(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=B(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function EP(e,t,n,a,r,s){s==null&&(s=.001);let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;a!=null&&(p=E(a,"offset","batchNorm")),R(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),R(p==null||o.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),R(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let d={x:_P(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=L.runKernel(Bi,d,c);return B(h,i.shape)}var Ss=z({batchNorm_:EP});function $P(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),R(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),R(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),R(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),u!=null&&R(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),p!=null&&R(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),Ss(i,o,l,p,u,s)}var Iv=z({batchNorm2d_:$P});function AP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),R(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),R(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),R(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),u!=null&&R(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),p!=null&&R(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),Ss(i,o,l,p,u,s)}var Tv=z({batchNorm3d_:AP});function FP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),R(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),R(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),R(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),u!=null&&R(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),p!=null&&R(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),Ss(i,o,l,p,u,s)}var Sv=z({batchNorm4d_:FP});function DP(e,t,n){let a=E(e,"x","bincount"),r=E(t,"weights","bincount");R(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),R(n>=0,()=>`size must be non-negative, but got ${n}.`),R(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 L.runKernel(Rm,s,i)}var Nv=z({bincount_:DP});function RP(e,t){let n=E(e,"s0","broadcastArgs","int32"),a=E(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 L.runKernel(Mm,r)}var uS=z({broadcastArgs_:RP});function MP(e,t){let n=E(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 cr(n);let i={x:n},o={reps:s};return L.runKernel(ws,i,o)}var ri=z({broadcastTo_:MP});function PP(e){let t={x:E(e,"x","ceil","float32")};return L.runKernel(Ei,t)}var Cv=z({ceil_:PP});function OP(e,t,n){let a=E(e,"x","clipByValue");R(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`);let r={x:a},s={clipValueMin:t,clipValueMax:n};return L.runKernel(vs,r,s)}var tn=z({clipByValue_:OP});function LP(e){return Qe(e,0)}var _v=z({concat1d_:LP});function zP(e,t){return Qe(e,t)}var Ev=z({concat2d_:zP});function WP(e,t){return Qe(e,t)}var $v=z({concat3d_:WP});function BP(e,t){return Qe(e,t)}var Av=z({concat4d_:BP});function VP(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","conv2d","float32"),l=E(t,"filter","conv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=B(o,[1,o.shape[0],o.shape[1],o.shape[2]])),R(u.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`),R(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),En("conv2d",a,i);let d=r==="NHWC"?u.shape[3]:u.shape[1];R(d===l.shape[2],()=>`Error in conv2d: depth of input (${d}) must match input depth for filter ${l.shape[2]}.`),R(gr(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=L.runKernel($i,c,h);return p?B(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Dt=z({conv2d_:VP});function UP(e,t,n,a,r="NWC",s=1,i){let o=E(e,"x","conv1d"),l=E(t,"filter","conv1d"),u=o,p=!1;o.rank===2&&(p=!0,u=B(o,[1,o.shape[0],o.shape[1]])),R(u.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`),R(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),En("conv1d",a,i),R(u.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`),R(gr(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),R(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let d=B(l,[1,l.shape[0],l.shape[1],l.shape[2]]),c=B(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=Dt(c,d,[1,n],a,"NHWC",[1,s],i);return p?B(h,[h.shape[2],h.shape[3]]):B(h,[h.shape[0],h.shape[2],h.shape[3]])}var mf=z({conv1d_:UP});function GP(e,t,n,a,r,s="NHWC",i){R(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=B(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),R(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),R(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),R(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];R(p===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${n.shape[2]}.`),R(d===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${d}) must match output depth for filter ${n.shape[3]}.`),En("conv2dDerInput",r,i);let c={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=L.runKernel(Ai,c,h);return u?B(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Fv=z({conv2DBackpropInput_:GP});function HP(e,t,n,a,r,s){let i=E(e,"x","conv2dTranspose"),o=E(t,"filter","conv2dTranspose");return Fv(n,i,o,a,r,"NHWC",s)}var ff=z({conv2dTranspose_:HP});function jP(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=E(e,"x","conv3d"),o=E(t,"filter","conv3d"),l=i,u=!1;i.rank===4&&(u=!0,l=B(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),R(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),R(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),R(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),R(gr(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),R(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=L.runKernel(_c,p,d);return u?B(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var Dv=z({conv3d_:jP});function qP(e,t,n,a,r){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=B(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];R(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),R(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),R(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),R(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),R(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=L.runKernel(zm,p,d);return o?B(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var pS=z({conv3DBackpropInput_:qP});function KP(e,t,n,a,r){let s=E(e,"x","conv3dTranspose"),i=E(t,"filter","conv3dTranspose");return pS(n,s,i,a,r)}var Rv=z({conv3dTranspose_:KP});function XP(e){let t={x:E(e,"x","cos","float32")};return L.runKernel(Fi,t)}var Zc=z({cos_:XP});function YP(e){let t={x:E(e,"x","cosh","float32")};return L.runKernel(Di,t)}var gf=z({cosh_:YP});function ZP(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return L.runKernel(tu,r,s)}var hc=z({cumprod_:ZP});function JP(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return L.runKernel(Ri,r,s)}var bf=z({cumsum_:JP});function QP(e,t,n,a=!1){let r=E(e,"x","denseBincount"),s=E(t,"weights","denseBincount");R(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),R(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),R(n>=0,()=>`size must be non-negative, but got ${n}.`),R(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 L.runKernel(Wm,i,o)}var cS=z({denseBincount_:QP});function eO(e,t,n="NHWC"){let a=E(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];R(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),R(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying +Expected: ${s}.`)}typeof expect!="undefined"&&expect().nothing()}function pM(e,t){e().then(()=>t.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function cM(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Jr(e)||Jr(e[0])||Jr(t)||Jr(t[0])?zy(e,n,(a,r)=>a==r):zy(e,t,(a,r)=>jx(a,r,0))}function dM(e,t,n){if(n==null&&(n=Hx()),!jx(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function jx(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function hM(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function mM(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 gM(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var bM="3.21.0";function yM(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(fs,r)}var Y=L({add_:yM});function xM(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 Um=L({floorDiv_:xM});function vM(e,t){let n=_(e,"a","div"),a=_(t,"b","div");if([n,a]=_t(n,a),n.dtype==="int32"&&a.dtype==="int32")return Um(n,a);let r={a:n,b:a},s={};return O.runKernel(Ci,r,s)}var he=L({div_:vM});function wM(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_:wM});function kM(e){let t=_(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return O.runKernel(cc,n)}else{let n={x:t};return O.runKernel($l,n)}}var Lt=L({abs_:kM});function IM(e){let t={x:_(e,"x","acos")};return O.runKernel(Fl,t)}var qx=L({acos_:IM});function SM(e){let t={x:_(e,"x","acosh")};return O.runKernel(Dl,t)}var Kx=L({acosh_:SM});function TM(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(!ms(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 BS=L({addN_:TM});function NM(e,t=null,n=!1){let a={x:_(e,"x","all","bool")},r={axis:t,keepDims:n};return O.runKernel(Rl,a,r)}var Gm=L({all_:NM});function CM(e,t=null,n=!1){let a={x:_(e,"x","any","bool")},r={axis:t,keepDims:n};return O.runKernel(Ml,a,r)}var Yp=L({any_:CM});function _M(e,t=0){let n={x:_(e,"x","argMax")},a={axis:t};return O.runKernel(gi,n,a)}var ri=L({argMax_:_M});function EM(e,t=0){let n={x:_(e,"x","argMin")},a={axis:t};return O.runKernel(uc,n,a)}var Xx=L({argMin_:EM});function AM(e){let t={x:_(e,"x","asin")};return O.runKernel(Pl,t)}var Yx=L({asin_:AM});function $M(e){let t={x:_(e,"x","asinh")};return O.runKernel(Ol,t)}var Zx=L({asinh_:$M});function FM(e){let t={x:_(e,"x","atan")};return O.runKernel(Ll,t)}var Jx=L({atan_:FM});function DM(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(Bl,r)}var Qx=L({atan2_:DM});function RM(e){let t={x:_(e,"x","atanh")};return O.runKernel(zl,t)}var ev=L({atanh_:RM});function MM(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=US(r);return Dc(e,o,n,s,a,null,null,l)}function WS(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 Dc(e,u,n,a,r,s,!1,i)}function PM(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=By(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 VS(e,p,n,a,r,!1,d,s)}function Dc(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),[b,y]=Lh(a),x=pl(c,b),w=pl(h,y),{padInfo:I,outHeight:T,outWidth:C}=zM(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:b,dilationWidth:y,inShape:e,outShape:A,filterShape:t}}function VS(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,[b,y,x]=By(n),[w,I,T]=By(a),C=pl(h,w),E=pl(m,I),A=pl(f,T),{padInfo:R,outDepth:F,outHeight:S,outWidth:M}=BM(r,u,p,d,b,y,x,C,E,A,o),W=s?g*c:g,U;return i==="channelsFirst"?U=[l,W,F,S,M]:i==="channelsLast"&&(U=[l,F,S,M,W]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:F,outHeight:S,outWidth:M,outChannels:W,padInfo:R,strideDepth:b,strideHeight:y,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 OM(e,t,n,a,r){a==null&&(a=tv(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 LM(e,t,n,a,r,s){r==null&&(r=tv(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 tv(e,t,n,a=1){let r=pl(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 By(e){return typeof e=="number"?[e,e,e]:e}function pl(e,t){return t<=1?e:e+(e-1)*(t-1)}function zM(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=OM([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),b=h-g;u={top:m,bottom:f,left:g,right:b,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 BM(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=LM([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,b=(m-1)*i+u-a,y=Math.floor(f/2),x=f-y,w=Math.floor(g/2),I=g-w,T=Math.floor(b/2),C=b-T;d={top:w,bottom:I,left:T,right:C,front:y,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 is(e){let[t,n,a]=Lh(e);return t===1&&n===1&&a===1}function pr(e,t){return is(e)||is(t)}function US(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")$(dl(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=>{$(dl(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 WM(e,t){let n={x:_(e,"x","reshape","string_or_numeric")},a={shape:t};return O.runKernel(yu,n,a)}var B=L({reshape_:WM});function VM(e,t,n,a,r){let s=_(e,"x","avgPool","float32"),i=1;$(pr(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=B(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(bi,u,p);return d=oe(d,s.dtype),l?B(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ga=L({avgPool_:VM});function UM(e,t,n,a,r,s="NDHWC"){let i=_(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=B(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(pc,u,p);return d=oe(d,o.dtype),l?B(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var nv=L({avgPool3d_:UM});function GM(e,t=0){$(e.length>=1,()=>"Pass at least one tensor to concat");let n=Xp(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 sr(n[0]);let a=n,r={axis:t};return O.runKernel(Vl,a,r)}var Ze=L({concat_:GM});function HM(e){let t={x:_(e,"x","sigmoid","float32")};return O.runKernel(ro,t)}var ha=L({sigmoid_:HM});function jM(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(ku,r,s)}var We=L({slice_:jM});function qM(e){let t={x:_(e,"x","tanh","float32")};return O.runKernel(co,t)}var si=L({tanh_:qM});function KM(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=Ae(c,o),m=Y(h,l),f=m.shape[0],g=m.shape[1]/4,b=[f,g],y=We(m,[0,0],b),x=We(m,[0,g],b),w=We(m,[0,g*2],b),I=We(m,[0,g*3],b),T=Y(z(ha(y),si(x)),z(p,ha(Y(i,w)))),C=z(si(T),ha(I));return[T,C]}var GS=L({basicLSTMCell_:KM});function XM(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(Wl,s,i)}var Rc=L({batchToSpaceND_:XM});function YM(e){let t;return e.rank===0||e.rank===1?t=B(e,[1,1,1,e.size]):e.rank===2?t=B(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=B(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function ZM(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:YM(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=O.runKernel(Fi,d,c);return B(h,i.shape)}var ws=L({batchNorm_: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===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}.`),ws(i,o,l,p,u,s)}var av=L({batchNorm2d_:JM});function QM(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}.`),ws(i,o,l,p,u,s)}var rv=L({batchNorm3d_:QM});function eP(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}.`),ws(i,o,l,p,u,s)}var sv=L({batchNorm4d_:eP});function tP(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(cm,s,i)}var iv=L({bincount_:tP});function nP(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(dm,r)}var HS=L({broadcastArgs_:nP});function aP(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 sr(n);let i={x:n},o={reps:s};return O.runKernel(bs,i,o)}var Xs=L({broadcastTo_:aP});function rP(e){let t={x:_(e,"x","ceil","float32")};return O.runKernel(vi,t)}var ov=L({ceil_:rP});function gn(e,t,n){let a={shape:e,value:t,dtype:n};return O.runKernel(mc,{},a)}function sP(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(gs,r,s)}var Qt=L({clipByValue_:sP});function iP(e){return Ze(e,0)}var lv=L({concat1d_:iP});function oP(e,t){return Ze(e,t)}var uv=L({concat2d_:oP});function lP(e,t){return Ze(e,t)}var pv=L({concat3d_:lP});function uP(e,t){return Ze(e,t)}var cv=L({concat4d_:uP});function pP(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=B(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]}.`),$(pr(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?B(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var $t=L({conv2d_:pP});function cP(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=B(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]}.`),$(pr(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=B(l,[1,l.shape[0],l.shape[1],l.shape[2]]),c=B(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=$t(c,d,[1,n],a,"NHWC",[1,s],i);return p?B(h,[h.shape[2],h.shape[3]]):B(h,[h.shape[0],h.shape[2],h.shape[3]])}var Hm=L({conv1d_:cP});function dP(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=B(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(ki,c,h);return u?B(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var dv=L({conv2DBackpropInput_:dP});function hP(e,t,n,a,r,s){let i=_(e,"x","conv2dTranspose"),o=_(t,"filter","conv2dTranspose");return dv(n,i,o,a,r,"NHWC",s)}var jm=L({conv2dTranspose_:hP});function mP(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=B(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]}.`),$(pr(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(dc,p,d);return u?B(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var hv=L({conv3d_:mP});function fP(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=B(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(gm,p,d);return o?B(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var jS=L({conv3DBackpropInput_:fP});function gP(e,t,n,a,r){let s=_(e,"x","conv3dTranspose"),i=_(t,"filter","conv3dTranspose");return jS(n,s,i,a,r)}var mv=L({conv3dTranspose_:gP});function bP(e){let t={x:_(e,"x","cos","float32")};return O.runKernel(Ii,t)}var Mc=L({cos_:bP});function yP(e){let t={x:_(e,"x","cosh","float32")};return O.runKernel(Si,t)}var qm=L({cosh_:yP});function xP(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Ul,r,s)}var Zp=L({cumprod_:xP});function vP(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 Km=L({cumsum_:vP});function wP(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 qS=L({denseBincount_:wP});function kP(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 ${r} and ${t} for depthToSpace with input shape - ${a.shape}`),R(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying + ${a.shape}`),$(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape - ${a.shape}`),R(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 L.runKernel(au,o,l)}var Mv=z({depthToSpace_:eO});function tO(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","depthwiseConv2d","float32"),l=E(t,"filter","depthwiseConv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=B(o,[1,o.shape[0],o.shape[1],o.shape[2]])),R(u.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`),R(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];R(d===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${d}) must match the inChannels dimension in filter ${l.shape[2]}.`),En("depthwiseConv2d",a,i);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=L.runKernel(Mi,c,h);return p?B(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ns=z({depthwiseConv2d_:tO});function nO(e){let t={x:E(e,"x","diag")};return L.runKernel(Um,t)}var dS=z({diag_:nO});function aO(e,t,n,a,r=[1,1],s="NHWC"){let i=E(e,"x","dilation2d"),o=E(t,"filter","dilation2d");R(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),R(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),R(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,u=!1;i.rank===3&&(l=B(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=L.runKernel(Ec,p,d);return u?B(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Pv=z({dilation2d_:aO});function rO(e,t){let n=E(e,"a","equal","string_or_numeric"),a=E(t,"b","equal","string_or_numeric");[n,a]=$t(n,a),ct(n.shape,a.shape);let r={a:n,b:a};return L.runKernel(su,r)}var ea=z({equal_:rO});function sO(e,t,n){let a=E(t,"a","where"),r=E(n,"b","where"),s=E(e,"condition","where","bool"),i=ct(ct(s.shape,a.shape),r.shape),o=ri(s,i),l=ri(a,i),u=ri(r,i),p={condition:o,t:l,e:u};return L.runKernel(Fu,p)}var fn=z({where_:sO});function iO(e){let t={x:E(e,"x","zerosLike")};return L.runKernel(Hu,t)}var qe=z({zerosLike_:iO});function oO(e,t){let n=E(e,"a","div"),a=E(t,"b","div");[n,a]=$t(n,a);let r=fe(n,a),s=qe(r),i=ea(a,s);return fn(i,s,r)}var Ov=z({divNoNan_:oO});function lO(e,t){let n=E(e,"t1","dot"),a=E(t,"t2","dot");R((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(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=B(n,[1,-1]),o=B(a,[-1,1]),l=Re(i,o);return B(l,[])}else if(n.rank===1&&a.rank===2){let i=B(n,[1,-1]),o=B(a,[a.shape[0],a.shape[1]]),l=Re(i,o);return B(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=B(a,[-1,1]),o=Re(n,i);return B(o,[o.size])}else{let i=B(a,[a.shape[0],a.shape[1]]);return Re(n,i)}}var Lv=z({dot_:lO});function uO(e,...t){let n=t.map((r,s)=>E(r,`tensors${s}`,"einsum")),a={equation:e};return L.runKernel(Gm,n,a)}var hS=z({einsum_:uO});function pO(e){let t={x:E(e,"x","elu","float32")};return L.runKernel(Oi,t)}var Ku=z({elu_:pO});function cO(e){let t=E(e,"x","erf");R(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 L.runKernel(ru,n)}var zv=z({erf_:cO});function Wv(e,t){for(let n=0;ne[s]);return[n,r]}function fi(e,t){let n=t.map(a=>1);return mS(e,n,t)}function dO(e,t,n){R(Wv(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function gS(e,t){if(Wv(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function Bv(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function hO(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 L.runKernel(iu,a,r)}var mn=z({expandDims_:IO});function TO(e){let t={x:E(e,"x","expm1")};return L.runKernel(ou,t)}var Uv=z({expm1_:TO});function SO(e,t){let n=E(e,"x","tile","string_or_numeric");R(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 L.runKernel(ws,a,r)}var Wn=z({tile_:SO});function NO(e,t,n,a="float32"){t==null&&(t=e);let r=ze([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}.`),R(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=B(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=L.runKernel(Ac,l,u);return o?B(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var qv=z({localResponseNormalization_:OO});function LO(e){let t={x:E(e,"x","log","float32")};return L.runKernel(Hi,t)}var ta=z({log_:LO});function zO(e){let t={x:E(e,"x","log1p")};return L.runKernel(bu,t)}var Qc=z({log1p_:zO});function WO(e){return R(ls(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=E(t,"x","tf.grad","string_or_numeric"),r=n!=null?E(n,"dy","tf.grad"):null;return L.tidy(()=>{let{value:s,grads:i}=L.gradients(()=>e(a),[a],r);return r!=null&&_n(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),vf(i),i[0]})}}function BO(e){return R(ls(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{R(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=cc(t,"args","tf.grads","string_or_numeric"),r=n!=null?E(n,"dy","tf.grads"):null;return L.tidy(()=>{let{value:s,grads:i}=L.gradients(()=>e(...a),a,r);return r!=null&&_n(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),vf(i),i})}}function VO(e){return R(ls(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{R(t instanceof $e,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),R(n==null||n instanceof $e,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=L.gradients(()=>e(t),[t],n);return vf(a),{grad:a[0],value:r}}}function UO(e){return R(ls(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{R(Array.isArray(t)&&t.every(r=>r instanceof $e),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),R(n==null||n instanceof $e,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=L.gradients(()=>e(...t),t,n);return n!=null&&_n(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),vf(a.grads),a}}function xS(e,t){R(ls(e),()=>"The f passed in variableGrads(f) must be a function"),R(t==null||Array.isArray(t)&&t.every(u=>u instanceof us),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let u in L.registeredVariables)t.push(L.registeredVariables[u])}let a=n?t.filter(u=>!u.trainable):null,r=t.length;t=t.filter(u=>u.trainable),R(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}=L.gradients(e,t,null,s);R(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()."),R(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 mr(e){return L.customGrad(e)}function vf(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 GO(e){let t={x:E(e,"x","softplus")};return L.runKernel(Ou,t)}var Io=z({softplus_:GO});function HO(e){let t=E(e,"x","logSigmoid");return mr(n=>({value:kt(Io(kt(n))),gradFunc:a=>W(a,ha(kt(n)))}))(t)}var Kv=z({logSigmoid_:HO});function jO(e,t){let n=E(e,"a","sub"),a=E(t,"b","sub");[n,a]=$t(n,a);let r={a:n,b:a};return L.runKernel(xo,r)}var ce=z({sub_:jO});function qO(e,t=-1){let n=E(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 mr((a,r)=>{let s=_a(a,t,!0),i=ce(a,s),o=ce(le(i,"float32"),ta(ye(gn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=gn(p);return ce(l,W(ye(l,t,d),c))}}})(n)}var wf=z({logSoftmax_:qO});function KO(e,t=null,n=!1){let a=E(e,"x","logSumExp"),r=Aa(t,a.shape),s=_a(a,r,!0),i=ce(a,s),o=gn(i),l=ye(o,r),u=ta(l),p=Q(B(s,u.shape),u);if(n){let d=fi(p.shape,r);return B(p,d)}return p}var kf=z({logSumExp_:KO});function XO(e,t){let n=E(e,"a","logicalAnd","bool"),a=E(t,"b","logicalAnd","bool");ct(n.shape,a.shape);let r={a:n,b:a};return L.runKernel(yu,r)}var $a=z({logicalAnd_:XO});function YO(e){let t={x:E(e,"x","logicalNot","bool")};return L.runKernel(xu,t)}var ed=z({logicalNot_:YO});function ZO(e,t){let n=E(e,"a","logicalOr","bool"),a=E(t,"b","logicalOr","bool");ct(n.shape,a.shape);let r={a:n,b:a};return L.runKernel(vu,r)}var If=z({logicalOr_:ZO});function JO(e,t){let n=E(e,"a","logicalXor","bool"),a=E(t,"b","logicalXor","bool");return ct(n.shape,a.shape),$a(If(e,t),ed($a(e,t)))}var Xv=z({logicalXor_:JO}),_h=2147483648;function QO(e,t,n="left"){let a=E(e,"sortedSequence","searchSorted"),r=E(t,"values","searchSorted"),s=a.shape[a.shape.length-1],i=r.shape[r.shape.length-1],o=B(a,[-1,s]),l=B(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(bt(l.shape)>=_h)throw new Error(`values tensor size must less than ${_h}`);if(o.shape[1]>=_h)throw new Error(`trailing dim_size must less than ${_h} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return L.runKernel(sf,u,p)}var Tf=z({searchSorted_:QO});function vS(e,t){return Tf(e,t,"left")}function e3(e,t,n,a,r){let s=E(e,"x","maxPool"),i=1,o=s,l=!1;s.rank===3&&(l=!0,o=B(s,[1,s.shape[0],s.shape[1],s.shape[2]])),R(o.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),R(gr(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),En("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=L.runKernel(Ki,u,p);return l?B(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Mt=z({maxPool_:e3});function t3(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=E(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=B(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),R(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),R(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),En("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=L.runKernel(Fc,u,p);return l?B(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Yv=z({maxPool3d_:t3});function n3(e,t,n,a,r=!1){let s={x:E(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=L.runKernel(Qm,s,i);return{result:o[0],indexes:o[1]}}var wS=z({maxPoolWithArgmax_:n3});function a3(e,t){let n=E(e,"a","maximum"),a=E(t,"b","maximum");[n,a]=$t(n,a),n.dtype==="bool"&&(n=le(n,"int32"),a=le(a,"int32")),ct(n.shape,a.shape);let r={a:n,b:a};return L.runKernel(qi,r)}var br=z({maximum_:a3});function r3(e,t=null,n=!1){let a={x:E(e,"x","mean")},r={axis:t,keepDims:n};return L.runKernel(Xi,a,r)}var _t=z({mean_:r3});function It(e,t="float32"){if(t==="complex64"){let a=It(e,"float32"),r=It(e,"float32");return Dr(a,r)}let n=Am(bt(e),t);return L.makeTensor(n,e,t)}function Qn(e,t="float32"){if(t==="complex64"){let a=Qn(e,"float32"),r=It(e,"float32");return Dr(a,r)}let n=jx(bt(e),t);return L.makeTensor(n,e,t)}function kS(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(e,"x","meshgrid",e instanceof $e?e.dtype:"float32");if(t===void 0)return[a];let r=E(t,"y","meshgrid",t instanceof $e?t.dtype:"float32"),s=bt(a.shape),i=bt(r.shape);return n==="xy"?(a=B(a,[1,-1]),r=B(r,[-1,1]),[Re(Qn([i,1],a.dtype),a),Re(r,Qn([1,s],r.dtype))]):(a=B(a,[-1,1]),r=B(r,[1,-1]),[Re(a,Qn([1,i],a.dtype)),Re(Qn([s,1],r.dtype),r)])}function s3(e,t){let n=E(e,"a","minimum"),a=E(t,"b","minimum");[n,a]=$t(n,a),n.dtype==="bool"&&(n=le(n,"int32"),a=le(a,"int32")),ct(n.shape,a.shape);let r={a:n,b:a};return L.runKernel(Zi,r)}var Ju=z({minimum_:s3});function i3(e,t,n){R(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=E(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");R(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."),R(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 L.runKernel(Ji,i,s)}var Zv=z({mirrorPad_:i3});function o3(e,t){let n=E(e,"a","mod"),a=E(t,"b","mod");[n,a]=$t(n,a);let r={a:n,b:a};return L.runKernel(wu,r)}var Jv=z({mod_:o3});function l3(e,t=null,n=!1){e=E(e,"x","moments");let a=Aa(t,e.shape),r=_t(e,a,n),s=r.shape;n||(s=fi(r.shape,a));let i=ut(ce(le(e,"float32"),B(r,s))),o=_t(i,a,n);return{mean:r,variance:o}}var td=z({moments_:l3});function u3(e,t,n,a){let r=E(t,"data","multiRNNCell"),s=cc(n,"c","multiRNNCell"),i=cc(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?B(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=L.runKernel(ef,o,l);return i===1?B(u,[u.size]):u}var TS=z({multinomial_:p3});function c3(e,t){let n=E(e,"a","notEqual","string_or_numeric"),a=E(t,"b","notEqual","string_or_numeric");[n,a]=$t(n,a),ct(n.shape,a.shape);let r={a:n,b:a};return L.runKernel(Iu,r)}var gi=z({notEqual_:c3});function d3(e){let t={x:E(e,"x","onesLike")};return L.runKernel(Cu,t)}var na=z({onesLike_:d3});function h3(e,t){let n=E(e,"v1","outerProduct"),a=E(t,"v2","outerProduct");R(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=B(n,[-1,1]),s=B(a,[1,-1]);return Re(r,s)}var SS=z({outerProduct_:h3});function m3(e,t,n=0){let a=E(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 L.runKernel(to,s,r)}var ya=z({pad_:m3});function f3(e,t,n=0){return R(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),ya(e,[t],n)}var NS=z({pad1d_:f3});function g3(e,t,n=0){return R(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 CS=z({pad2d_:g3});function b3(e,t,n=0){return R(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 _S=z({pad3d_:b3});function y3(e,t,n=0){return R(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 ES=z({pad4d_:y3});function x3(e,t,n){let a=E(e,"x","spaceToBatchND");R(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),R(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),R(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 L.runKernel(Lu,r,s)}var nd=z({spaceToBatchND_:x3});function v3(e,t,n,a,r,s,i){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let o=E(e,"x","maxPool"),l=o,u=!1;o.rank===3&&(u=!0,l=B(o,[1,o.shape[0],o.shape[1],o.shape[2]])),R(gr(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=sS(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=k3([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=w3([p.inHeight,p.inWidth],d,c),g=h?a:"valid",b=h?l:nd(l,d,m),y=(n==="avg"?()=>ba(b,t,s,g,i):()=>Mt(b,t,s,g,i))(),x=h?y:Yc(y,d,f);return u?B(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function w3(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 k3(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 Qv=z({pool_:v3});function I3(e,t){let n=E(e,"x","prelu"),a=E(t,"alpha","prelu"),r={x:n,alpha:a};return L.runKernel(ao,r)}var ad=z({prelu_:I3});function T3(e,t=null,n=!1){let a=E(e,"x","prod");a.dtype==="bool"&&(a=le(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return L.runKernel(ro,r,s)}var ew=z({prod_:T3});function S3(e,t,n,a,r){let s=E(e,"shape","raggedTensorToTensor","int32"),i=E(t,"values","raggedTensorToTensor"),o=E(n,"defaultValue","raggedTensorToTensor",i.dtype),l=a.map((d,c)=>E(d,`tensors${c}`,"raggedTensorToTensor","int32")),u={shape:s,values:i,defaultValue:o,rowPartitionTensors:l},p={rowPartitionTypes:r};return L.runKernel(tf,u,p)}var $S=z({raggedTensorToTensor_:S3});function N3(e,t,n){let a=bt(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}},C3=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=tw.alea(r.toString()),this.randn=new nw(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=tw.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function E3(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 C3(t,n,a,r),i=ze(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),ga(t,0)}var RS=z({reverse1d_:O3});function L3(e,t){let n=E(e,"x","reverse");return R(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),ga(n,t)}var MS=z({reverse2d_:L3});function z3(e,t){let n=E(e,"x","reverse");return R(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),ga(n,t)}var PS=z({reverse3d_:z3});function W3(e,t){let n=E(e,"x","reverse");return R(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),ga(n,t)}var OS=z({reverse4d_:W3});function B3(e){let t={x:E(e,"x","round")};return L.runKernel(po,t)}var Cf=z({round_:B3});function V3(e){let t={x:E(e,"x","rsqrt","float32")};return L.runKernel(co,t)}var _f=z({rsqrt_:V3});function U3(e){let t={x:E(e,"x","selu")};return L.runKernel(Du,t)}var Ef=z({selu_:U3});function G3(e,t,n,a,r,s=[1,1],i="NHWC"){let o=E(e,"x","separableConv2d"),l=E(t,"depthwiseFilter","separableConv2d"),u=E(n,"pointwiseFilter","separableConv2d"),p=o,d=!1;if(o.rank===3&&(d=!0,p=B(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");R(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.rank}.`),R(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),R(u.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),R(u.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`),R(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];R(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=Ns(p,l,a,r,i,s),f=Dt(m,u,1,"valid",i);return d?B(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Es=z({separableConv2d_:G3});async function H3(e,t){let n=E(e,"x","setdiff1d"),a=E(t,"y","setdiff1d");R(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),R(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),R(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`),He(a,[t],[n])}var rd=z({slice1d_:X3});function Y3(e,t,n){let a=E(e,"x","slice2d");return R(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),He(a,t,n)}var Ff=z({slice2d_:Y3});function Z3(e,t,n){let a=E(e,"x","slice3d");return R(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),He(a,t,n)}var To=z({slice3d_:Z3});function J3(e,t,n){let a=E(e,"x","slice4d");return R(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),He(a,t,n)}var $l=z({slice4d_:J3});function Q3(e,t=-1){let n=E(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 L.runKernel(bo,a,r)}var Qa=z({softmax_:Q3});function eL(e){R(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return L.runKernel(jm,t)}var sd=z({fft_:eL});function tL(e){R(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return L.runKernel(qm,t)}var Al=z({ifft_:tL});function nL(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=B(e,[n,t]);a=Al(r)}else{let r=[n,2*(t-1)],s=B(_l(e),[n,t]),i=B(qc(e),[n,t]),o=ga(He(s,[0,1],[n,t-2]),1),l=W(ga(He(i,[0,1],[n,t-2]),1),ke(-1)),u=Qe([s,o],1),p=Qe([i,l],1),d=B(Dr(u,p),[r[0],r[1]]);a=Al(d)}if(a=_l(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=B(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var Df=z({irfft_:nL});function aL(e,t,n=0){let a={x:E(e,"x","split")},r={numOrSizeSplits:t,axis:n};return L.runKernel(zu,a,r)}var Vn=z({split_:aL});function rL(e,t){R(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=He(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=Qe([e,It(m)],e.shape.length-1),n=t}else r=e;let s=qe(r),i=B(Dr(r,s),[a,n]),o=sd(i),l=Math.floor(n/2)+1,u=_l(o),p=qc(o),d=Vn(u,[l,n-l],u.shape.length-1),c=Vn(p,[l,n-l],p.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,B(Dr(d[0],c[0]),h)}var id=z({rfft_:rL});function sL(e,t){let n=E(e,"a","squaredDifference"),a=E(t,"b","squaredDifference");[n,a]=$t(n,a),ct(n.shape,a.shape);let r={a:n,b:a},s={};return L.runKernel(yo,r,s)}var Rf=z({squaredDifference_:sL});function iL(e,t){let n=E(e,"x","squeeze","string_or_numeric");return B(n,nT(n.shape,t).newShape)}var $s=z({squeeze_:iL});function oL(e,t=0){let n=cc(e,"tensors","stack","string_or_numeric");R(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&R(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return L.runKernel(_u,a,r)}var Rt=z({stack_:oL});function lL(e,t=0){let n={x:E(e,"x","step")},a={alpha:t};return L.runKernel(ks,n,a)}var So=z({step_:lL});function uL(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let u={x:E(e,"x","stridedSlice","string_or_numeric")},p={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return L.runKernel(Bu,u,p)}var sw=z({stridedSlice_:uL});function pL(e){let t={x:E(e,"x","tan","float32")};return L.runKernel(vo,t)}var iw=z({tan_:pL});function Ke(e,t){Ii(e);let n=hr(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Is(e,null,n,t)}function Ea(e,t,n){if(Ii(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=hr(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 Is(e,t,a,n)}function Fa(e,t,n){if(Ii(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=hr(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 Is(e,t,a,n)}function zS(e,t,n){if(Ii(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=hr(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 Is(e,t,a,n)}function WS(e,t,n){if(Ii(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=hr(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,Is(e,t,a,n)}function cL(e,t=1,n=!0){let a=E(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]=L.runKernel(Vu,s,i);return{values:o,indices:l}}var ow=z({topk_:cL});function dL(e,t=0,n=1,a,r){if(a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new nw(t,n,a,!0,r),i=ze(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=L.runKernel(lf,a,r);return{values:s,indices:i}}var lw=z({unique_:hL});function mL(e,t,n){let a=E(e,"x","unsortedSegmentSum"),r=E(t,"segmentIds","unsortedSegmentSum","int32");R(Tl(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return L.runKernel(Bc,s,i)}var Pf=z({unsortedSegmentSum_:mL});function fL(e,t=0){let n=E(e,"x","unstack","string_or_numeric");R(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return L.runKernel(Gu,a,r)}var mt=z({unstack_:fL});function BS(e,t){return Tf(e,t,"right")}function uw(e,t=!0,n,a){return L.makeVariable(e,t,n,a)}function VS(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),_n(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=ke(1),u=ce(l,o),p=W(ce(i,s),u);if(r){R(a!=null,()=>"When using zeroDebias: true, step is required.");let d=E(a,"step","movingAverage");p=fe(p,ce(l,Rr(o,d)))}return Q(s,p)}var GS=z({movingAverage_:yL});function xL(e,t,n){let a=E(e,"indices","scatterND","int32"),r=E(t,"updates","scatterND");pv(r,a,n);let s={indices:a,updates:r},i={shape:n};return L.runKernel(Au,s,i)}var HS=z({scatterND_:xL});function vL(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 wL(e,t,n,a=0){let r=E(e,"sparseIndices","sparseToDense","int32"),s=E(t,"sparseValues","sparseToDense","string_or_numeric"),i=E(a,"defaultValue","sparseToDense",s.dtype);vL(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return L.runKernel(of,o,l)}var jS=z({sparseToDense_:wL});function kL(e,t){let n=E(t,"indices","gatherND","int32"),a={params:E(e,"x","gatherND","string_or_numeric"),indices:n};return L.runKernel(pu,a)}var qS=z({gatherND_:kL});function IL(e,t){if(t==null)return e.shape.slice();if(ys(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.`),R(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof $e?r.clone():r;let s=IL(r,n),i=1-t,o=fe(Yu(Q(Qu(s,0,1,"float32",a),i)),i);return W(r,o)}var cw=z({dropout_:TL});function dw(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function Of(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}`),R(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}`),_n(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];R(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=aT("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;f_L,depthwiseConv2d:()=>FL,matMul:()=>RL});function NL(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=B(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=B(t,[1,t.shape[0],t.shape[1],t.shape[2]])),R(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),R(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),R(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];R(u===n[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`),R(p===n[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${n[3]}).`),En("conv2dDerFilter",r,i);let d={x:o,dy:l},c={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return L.runKernel(Om,d,c)}var hw=z({conv2DBackpropFilter_:NL});function Lf(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return W(e,So(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function zf(e,t){let n=t,a=Wt(e.shape,t.shape);return a.length>0&&(n=ye(n,a)),B(n,e.shape)}function Wf(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Xe(e);if(t==="elu")return Ku(e);if(t==="relu6")return Nf(e);if(t==="prelu")return ad(e,n);if(t==="leakyrelu")return Jc(e,a);if(t==="sigmoid")return ha(e);throw new Error(`Unknown fused activation ${t}.`)}var Bf=(e,t)=>!(e>0)||t==="linear";function CL({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",Bf(L.state.gradientDepth,l)===!1){R(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 N=Dt(e,t,n,a,r,s,i);return o!=null&&(N=Q(N,o)),Wf(N,l,u,p)}let d=E(e,"x","conv2d","float32"),c=E(t,"filter","conv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=B(d,[1,d.shape[0],d.shape[1],d.shape[2]])),R(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),R(c.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${c.rank}.`),En("fused conv2d",a,i);let f=r==="NHWC"?h.shape[3]:h.shape[1];R(c.shape[2]===f,()=>`Error in conv2d: depth of input (${f}) must match input depth for filter ${c.shape[2]}.`),R(gr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=Xc(h.shape,c.shape,n,s,a,i),b;o!=null&&(b=E(o,"bias","fused conv2d"),[b]=$t(b,d),r==="NHWC"?ct(g.outShape,b.shape):(R(b.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${b.shape.length}.`),R(b.shape.length===0||b.shape[0]===g.outChannels||b.shape[0]===1,()=>`Error in fused conv2d: bias shape (${b.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let y;if(u!=null){let N=u.shape;if(R(N.length<=1||N.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-${N.length}.`),N.length===1)R(N[0]===1||N[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${N}) is not compatible with the number of output channels (${g.outChannels}).`);else if(N.length===3)try{ct(N,g.outShape)}catch(_){let $=`Error in fused conv2d: PReLU activation weights (${N}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error($)}y=E(u,"prelu weights","fused conv2d")}let x=(N,_)=>{R(r==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`);let[$,A,M,D]=_,T=Lf(N,M,l);R(ps(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let P=Fv(A.shape,T,$,n,a),U=hw(A,T,$.shape,n,a),j=[P,U];if(D!=null){let q=zf(D,T);j.push(q)}return j},w={x:h,filter:c,bias:b,preluActivationWeights:y},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?mr((N,_,$)=>{let A=L.runKernel(ui,w,I);return $([_,N,A]),m&&(A=B(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:x}})(h,c):mr((N,_,$,A)=>{let M=L.runKernel(ui,w,I);return A([_,N,M,$]),m&&(M=B(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:x}})(h,c,b)}var _L=z({fusedConv2d_:CL});function EL(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=B(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=B(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 L.runKernel(Bm,u,p)}var XS=z({depthwiseConv2dNativeBackpropFilter_:EL});function $L(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=B(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=L.runKernel(Vm,u,p);return l?B(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var YS=z({depthwiseConv2dNativeBackpropInput_:$L});function AL({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(Bf(L.state.gradientDepth,l)===!1){let I=Ns(e,t,n,a,r,s,i);return o!=null&&(I=Q(I,o)),Wf(I,l,u,p)}let d=E(e,"x","depthwiseConv2d","float32"),c=E(t,"filter","depthwiseConv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=B(d,[1,d.shape[0],d.shape[1],d.shape[2]])),R(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),R(c.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${c.rank}.`),R(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]),R(gr(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),En("fused depthwiseConv2d",a,i);let f=Xc(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=$t(g,d),ct(f.outShape,g.shape));let b;u!=null&&(b=E(u,"prelu weights","fused depthwiseConv2d"));let y=(I,N)=>{R(ps(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[_,$,A,M]=N,D=Lf(I,A,l),T=YS($.shape,D,_,n,a,s,i),P=XS($,D,_.shape,n,a,s,i);if(M!=null){let U=zf(g,D);return[T,P,U]}return[T,P]},x={x:h,filter:c,bias:g,preluActivationWeights:b},w={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?mr((I,N,_)=>{let $=L.runKernel(pi,x,w);return _([N,I,$]),m&&($=B($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:y}})(h,c):mr((I,N,_,$)=>{let A=L.runKernel(pi,x,w);return $([N,I,A,_]),m&&(A=B(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:y}})(h,c,g)}var FL=z({fusedDepthwiseConv2d_:AL});function DL({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(Bf(L.state.gradientDepth,s)===!1){let M=Re(e,t,n,a);return r!=null&&(M=Q(M,r)),Wf(M,s,i,o)}let l=E(e,"a","fused matMul"),u=E(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=bt(m),b=bt(f);R(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 y=ct(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([c,h]),x=n?B(l,[g,p,c]):B(l,[g,c,p]),w=a?B(u,[b,h,d]):B(u,[b,d,h]),I;r!=null&&(I=E(r,"bias","fused matMul"),[I]=$t(I,l),ct(y,I.shape));let N;i!=null&&(N=E(i,"prelu weights","fused matMul"));let _=(M,D)=>{let[T,P,U,j]=D,q=Lf(B(M,U.shape),U,s),K,Y;if(!n&&!a?(K=Re(q,P,!1,!0),Y=Re(T,q,!0,!1)):!n&&a?(K=Re(q,P,!1,!1),Y=Re(q,T,!0,!1)):n&&!a?(K=Re(P,q,!1,!0),Y=Re(T,q,!1,!1)):(K=Re(P,q,!0,!0),Y=Re(q,T,!0,!0)),r!=null){let te=zf(j,q);return[K,Y,te]}else return[K,Y]},$={a:x,b:w,bias:I,preluActivationWeights:N},A={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?mr((M,D,T)=>{let P=L.runKernel(li,$,A);return T([M,D,P]),{value:B(P,y),gradFunc:_}})(x,w):mr((M,D,T,P)=>{let U=L.runKernel(li,$,A);return P([M,D,U,T]),{value:B(U,y),gradFunc:_}})(x,w,I)}var RL=z({fusedMatMul_:DL});function ML(e){return Of(e,.54,.46)}var PL=z({hammingWindow_:ML});function OL(e){return Of(e,.5,.5)}var ZS=z({hannWindow_:OL});function LL(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(He(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),R(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`),R(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`),R(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),R(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),R(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 L.runKernel(nu,p,d)}var VL=z({cropAndResize_:BL});function UL(e){let t=E(e,"image","flipLeftRight","float32");R(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return L.runKernel(lu,n,{})}var GL=z({flipLeftRight_:UL});function HL(e){let t=E(e,"image","grayscaleToRGB"),n=t.rank-1,a=t.shape[n];R(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),R(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,Wn(t,r)}var jL=z({grayscaleToRGB_:HL});function qL(e,t,n=0,a=.5){let r=E(e,"image","rotateWithOffset","float32");R(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 L.runKernel(ju,s,i)}var KL=z({rotateWithOffset_:qL});function ep(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),R(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),R(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),R(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),R(t.rank===1,()=>"scores must be a 1D tensor"),R(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),R(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function XL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppression","float32"),i=E(t,"scores","nonMaxSuppression","float32"),o=ep(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return L.runKernel(Tu,{boxes:s,scores:i},l)}var YL=z({nonMaxSuppression_:XL});function ZL(e,t,n){let a=JL(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function JL(e,t,n){return ez(e,t,n||QL)}function QL(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 QS(e,t,n,a,r){return mw(e,t,n,a,r,0)}function eN(e,t,n,a,r,s){return mw(e,t,n,a,r,0,!1,s,!0)}function tN(e,t,n,a,r,s){return mw(e,t,n,a,r,s,!0)}function mw(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(Pk);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:b,boxIndex:y,suppressBeginIndex:x}=g;if(b=x;--I){let N=tz(e,y,d[I]);if(N>=a){w=!0;break}if(g.score=g.score*nz(a,p,N),g.score<=r)break}g.suppressBeginIndex=d.length,w||(g.score===b?(d.push(y),c.push(g.score)):g.score>r&&ZL(u,g,Pk))}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 tz(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),b=Math.min(o,d),y=Math.min(l,c),x=Math.max(b-f,0)*Math.max(y-g,0);return x/(h+m-x)}function nz(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function Pk(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function az(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppressionAsync"),i=E(t,"scores","nonMaxSuppressionAsync"),o=ep(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}=QS(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),Ke(d,"int32")}var rz=az;function sz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=ep(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=L.runKernel(Nu,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var iz=z({nonMaxSuppressionWithScore_:sz});async function oz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=ep(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}=tN(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(c,"int32"),selectedScores:Ke(h)}}var lz=oz;function uz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=ep(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=L.runKernel(Su,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var pz=z({nonMaxSuppressionPadded_:uz});async function cz(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=ep(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}=eN(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(m,"int32"),validOutputs:ke(f,"int32")}}var dz=cz;function hz(e,t,n=!1,a=!1){let r=E(e,"images","resizeBilinear");R(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),R(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),R(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=B(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=L.runKernel(oo,o,l);return i?B(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var nN=z({resizeBilinear_:hz});function mz(e,t,n=!1,a=!1){let r=E(e,"images","resizeNearestNeighbor");R(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),R(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),R(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),R(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=B(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=L.runKernel(io,o,l);return i?B(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var aN=z({resizeNearestNeighbor_:mz});function fz(e,t="binary",n=!1,a=.5){let r=E(e,"image","threshold"),s=.2989,i=.587,o=.114,l=r.shape[0]*r.shape[1],u=W(Ke([a]),255),p,d,c,h;if(R(r.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`),R(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(r.dtype==="int32"||r.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`),R(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),r.shape[2]===3){[p,d,c]=Vn(r,[1,1,1],-1);let f=W(p,s),g=W(d,i),b=W(c,o);h=Q(Q(f,g),b)}else h=e;if(t==="otsu"){let f=Nv(le(Cf(h),"int32"),Bn([]),256);u=gz(f,l)}let m=n?_s(h,u):jn(h,u);return le(W(m,255),"int32")}function gz(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}.`),R(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"),R(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 L.runKernel(Uu,l,u)}var xz=z({transform_:yz});function vz(e,t,n){R(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),R(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=E(e,"a","bandPart");R(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=B(El(0,s,1,"int32"),[-1,1]),l=El(0,i,1,"int32"),u=ce(o,l),p=$a(_s(u,ke(+t,"int32")),Cs(u,ke(-n,"int32"))),d=It([s,i],a.dtype);return B(Rt(mt(B(a,[-1,s,i])).map(c=>fn(p,c,d))),r)}var wz=z({bandPart_:vz});function kz(e){let t;if(Array.isArray(e)){t=!1,R(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=Vn(e,e.shape[0],0).map(r=>$s(r,[0]));R(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 Ok(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=mt(B(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,p]=Ok(l,t);r.push(u),s.push(p)});let i=B(Rt(r,0),e.shape),o=B(Rt(s,0),e.shape);return[i,o]}}function Ok(e,t=!1){return L.tidy(()=>{R(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=yf(n),s=cr(e),i=Ea([[1]],[1,1]),o=cr(i),l=n>=a?a:n;for(let u=0;u{let h=He(s,[u,u],[n-u,1]),m=Xu(h),f=He(s,[u,u],[1,1]),g=fn(jn(f,0),Ea([[-1]]),Ea([[1]])),b=ce(f,W(g,m)),y=fe(h,b);y.shape[0]===1?o=cr(i):o=Qe([i,He(y,[1,0],[y.shape[0]-1,y.shape[1]])],0);let x=kt(fe(Re(g,b),m)),w=He(s,[u,0],[n-u,a]),I=W(x,o),N=Ae(o);if(u===0)s=ce(w,Re(I,Re(N,w)));else{let A=ce(w,Re(I,Re(N,w)));s=Qe([He(s,[0,0],[u,a]),A],0)}let _=Ae(I),$=He(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=ce($,Re(Re($,o),_));else{let A=ce($,Re(Re($,o),_));r=Qe([He(r,[0,0],[n,u]),A],1)}return[o,s,r]}),Me([p,d,c])}return!t&&n>a&&(r=He(r,[0,0],[n,a]),s=He(s,[0,0],[a,a])),[r,s]})}var Sz=z({qr_:Tz}),In;(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"})(In||(In={}));function Nz(e,t,n=In.SUM_BY_NONZERO_WEIGHTS){let a=E(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=E(t,"weights","computeWeightedLoss"));let s=r==null?a:W(a,r);if(n===In.NONE)return s;if(n===In.SUM)return ye(s);if(n===In.MEAN){if(r==null)return _t(s);{let i=a.size/r.size,o=fe(ye(s),ye(r));return i>1?fe(o,ke(i)):o}}if(n===In.SUM_BY_NONZERO_WEIGHTS){if(r==null)return fe(ye(s),ke(a.size));{let i=W(r,Qn(a.shape)),o=le(ye(gi(i,ke(0))),"float32");return fe(ye(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Mr=z({computeWeightedLoss_:Nz});function Cz(e,t,n,a=In.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","absoluteDifference"),s=E(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=E(n,"weights","absoluteDifference")),_n(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(ce(r,s));return Mr(o,i,a)}var _z=z({absoluteDifference_:Cz});function Ez(e,t,n,a,r=In.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","cosineDistance"),i=E(t,"predictions","cosineDistance"),o=null;a!=null&&(o=E(a,"weights","cosineDistance")),_n(s.shape,i.shape,"Error in cosineDistance: ");let l=ke(1),u=ce(l,ye(W(s,i),n,!0));return Mr(u,o,r)}var $z=z({cosineDistance_:Ez});function Az(e,t,n,a=In.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","hingeLoss"),s=E(t,"predictions","hingeLoss"),i=null;n!=null&&(i=E(n,"weights","hingeLoss")),_n(r.shape,s.shape,"Error in hingeLoss: ");let o=ke(1);r=ce(W(ke(2),r),o);let l=Xe(ce(o,W(r,s)));return Mr(l,i,a)}var Fz=z({hingeLoss_:Az});function Dz(e,t,n,a=1,r=In.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","huberLoss"),i=E(t,"predictions","huberLoss"),o=null;n!=null&&(o=E(n,"weights","huberLoss")),_n(s.shape,i.shape,"Error in huberLoss: ");let l=ke(a),u=Lt(ce(i,s)),p=Ju(u,l),d=ce(u,p),c=Q(W(ke(.5),ut(p)),W(l,d));return Mr(c,o,r)}var Rz=z({huberLoss_:Dz});function Mz(e,t,n,a=1e-7,r=In.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","logLoss"),i=E(t,"predictions","logLoss"),o=null;n!=null&&(o=E(n,"weights","logLoss")),_n(s.shape,i.shape,"Error in logLoss: ");let l=ke(1),u=ke(a),p=kt(W(s,ta(Q(i,u)))),d=W(ce(l,s),ta(Q(ce(l,i),u))),c=ce(p,d);return Mr(c,o,r)}var Pz=z({logLoss_:Mz});function Oz(e,t,n,a=In.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","meanSquaredError"),s=E(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=E(n,"weights","meanSquaredError")),_n(r.shape,s.shape,"Error in meanSquaredError: ");let o=Rf(r,s);return Mr(o,i,a)}var Lz=z({meanSquaredError_:Oz});function zz(e,t){let n=E(e,"labels","sigmoidCrossEntropyWithLogits"),a=E(t,"logits","sigmoidCrossEntropyWithLogits");_n(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Xe(a),s=W(a,n),i=Qc(gn(kt(Lt(a))));return Q(ce(r,s),i)}function Wz(e,t,n,a=0,r=In.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"multiClassLabels","sigmoidCrossEntropy"),i=E(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","sigmoidCrossEntropy")),_n(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=ke(a),p=ke(1),d=ke(.5);s=Q(W(s,ce(p,u)),W(d,u))}let l=zz(s,i);return Mr(l,o,r)}var Bz=z({sigmoidCrossEntropy_:Wz});function Vz(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 mr((a,r,s)=>{let i=kf(r,[n],!0),o=ce(le(r,"float32"),i);s([a,o]);let l=kt(W(o,a));return{value:ye(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=fi(u.shape,[n]);return[W(B(u,h),ce(le(d,"float32"),gn(c))),W(B(u,h),ce(gn(c),le(d,"float32")))]}}})(e,t)}function Uz(e,t,n,a=0,r=In.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"onehotLabels","softmaxCrossEntropy"),i=E(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","softmaxCrossEntropy")),_n(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=ke(a),p=ke(1),d=ke(s.shape[1]);s=Q(W(s,ce(p,u)),fe(u,d))}let l=Vz(s,i);return Mr(l,o,r)}var Gz=z({softmaxCrossEntropy_:Uz});function Hz(e,t,n,a){let r=E(e,"indices","sparseFillEmptyRows","int32"),s=E(t,"values","sparseFillEmptyRows"),i=E(n,"denseShape","sparseFillEmptyRows","int32"),o=E(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=L.runKernel(Rc,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var jz=z({sparseFillEmptyRows_:Hz});function qz(e,t,n){let a=E(e,"inputIndices","sparseReshape","int32"),r=E(t,"inputShape","sparseReshape","int32"),s=E(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=L.runKernel(Wu,i);return{outputIndices:o[0],outputShape:o[1]}}var Kz=z({sparseReshape_:qz});function Xz(e,t,n){let a=E(e,"data","sparseSegmentMean"),r=E(t,"indices","sparseSegmentMean","int32"),s=E(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}`),$(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(Hl,o,l)}var fv=L({depthToSpace_:kP});function IP(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=B(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(Ni,c,h);return p?B(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var ks=L({depthwiseConv2d_:IP});function SP(e){let t={x:_(e,"x","diag")};return O.runKernel(vm,t)}var KS=L({diag_:SP});function TP(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=B(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(hc,p,d);return u?B(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var gv=L({dilation2d_:TP});function NP(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(ql,r)}var Qn=L({equal_:NP});function CP(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(vu,p)}var mn=L({where_:CP});function _P(e){let t={x:_(e,"x","zerosLike")};return O.runKernel(Du,t)}var je=L({zerosLike_:_P});function EP(e,t){let n=_(e,"a","div"),a=_(t,"b","div");[n,a]=_t(n,a);let r=he(n,a),s=je(r),i=Qn(a,s);return mn(i,s,r)}var bv=L({divNoNan_:EP});function AP(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=B(n,[1,-1]),o=B(a,[-1,1]),l=Ae(i,o);return B(l,[])}else if(n.rank===1&&a.rank===2){let i=B(n,[1,-1]),o=B(a,[a.shape[0],a.shape[1]]),l=Ae(i,o);return B(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=B(a,[-1,1]),o=Ae(n,i);return B(o,[o.size])}else{let i=B(a,[a.shape[0],a.shape[1]]);return Ae(n,i)}}var yv=L({dot_:AP});function $P(e,...t){let n=t.map((r,s)=>_(r,`tensors${s}`,"einsum")),a={equation:e};return O.runKernel(wm,n,a)}var XS=L({einsum_:$P});function FP(e){let t={x:_(e,"x","elu","float32")};return O.runKernel(_i,t)}var Pu=L({elu_:FP});function DP(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(jl,n)}var xv=L({erf_:DP});function vv(e,t){for(let n=0;ne[s]);return[n,r]}function ii(e,t){let n=t.map(a=>1);return YS(e,n,t)}function RP(e,t,n){$(vv(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function JS(e,t){if(vv(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function wv(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function MP(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(Kl,a,r)}var hn=L({expandDims_:HP});function jP(e){let t={x:_(e,"x","expm1")};return O.runKernel(Xl,t)}var Iv=L({expm1_:jP});function qP(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 Pn=L({tile_:qP});function KP(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}.`),$(dl(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=B(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(fc,l,u);return o?B(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Cv=L({localResponseNormalization_:sO});function iO(e){let t={x:_(e,"x","log","float32")};return O.runKernel(Pi,t)}var ea=L({log_:iO});function oO(e){let t={x:_(e,"x","log1p")};return O.runKernel(su,t)}var Oc=L({log1p_:oO});function lO(e){return $(rs(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)"),Zm(i),i[0]})}}function uO(e){return $(rs(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=Xp(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,...])"),Zm(i),i})}}function pO(e){return $(rs(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 Zm(a),{grad:a[0],value:r}}}function cO(e){return $(rs(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,...])"),Zm(a.grads),a}}function tT(e,t){$(rs(e),()=>"The f passed in variableGrads(f) must be a function"),$(t==null||Array.isArray(t)&&t.every(u=>u instanceof ss),()=>"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 lr(e){return O.customGrad(e)}function Zm(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 dO(e){let t={x:_(e,"x","softplus")};return O.runKernel(Tu,t)}var mo=L({softplus_:dO});function hO(e){let t=_(e,"x","logSigmoid");return lr(n=>({value:vt(mo(vt(n))),gradFunc:a=>z(a,ha(vt(n)))}))(t)}var _v=L({logSigmoid_:hO});function mO(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_:mO});function fO(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 lr((a,r)=>{let s=_a(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 Jm=L({logSoftmax_:fO});function gO(e,t=null,n=!1){let a=_(e,"x","logSumExp"),r=$a(t,a.shape),s=_a(a,r,!0),i=pe(a,s),o=fn(i),l=fe(o,r),u=ea(l),p=Y(B(s,u.shape),u);if(n){let d=ii(p.shape,r);return B(p,d)}return p}var Qm=L({logSumExp_:gO});function bO(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(iu,r)}var Aa=L({logicalAnd_:bO});function yO(e){let t={x:_(e,"x","logicalNot","bool")};return O.runKernel(ou,t)}var Lc=L({logicalNot_:yO});function xO(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(lu,r)}var ef=L({logicalOr_:xO});function vO(e,t){let n=_(e,"a","logicalXor","bool"),a=_(t,"b","logicalXor","bool");return ut(n.shape,a.shape),Aa(ef(e,t),Lc(Aa(e,t)))}var Ev=L({logicalXor_:vO}),sh=2147483648;function wO(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=B(a,[-1,s]),l=B(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)>=sh)throw new Error(`values tensor size must less than ${sh}`);if(o.shape[1]>=sh)throw new Error(`trailing dim_size must less than ${sh} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return O.runKernel(Om,u,p)}var tf=L({searchSorted_:wO});function nT(e,t){return tf(e,t,"left")}function kO(e,t,n,a,r){let s=_(e,"x","maxPool"),i=1,o=s,l=!1;s.rank===3&&(l=!0,o=B(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}.`),$(pr(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(zi,u,p);return l?B(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Dt=L({maxPool_:kO});function IO(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=B(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(gc,u,p);return l?B(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Av=L({maxPool3d_:IO});function SO(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 aT=L({maxPoolWithArgmax_:SO});function TO(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 cr=L({maximum_:TO});function NO(e,t=null,n=!1){let a={x:_(e,"x","mean")},r={axis:t,keepDims:n};return O.runKernel(Bi,a,r)}var Nt=L({mean_:NO});function It(e,t="float32"){if(t==="complex64"){let a=It(e,"float32"),r=It(e,"float32");return Ar(a,r)}let n=lm(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 Ar(a,r)}let n=Nx(mt(e),t);return O.makeTensor(n,e,t)}function rT(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=B(a,[1,-1]),r=B(r,[-1,1]),[Ae(Zn([i,1],a.dtype),a),Ae(r,Zn([1,s],r.dtype))]):(a=B(a,[-1,1]),r=B(r,[1,-1]),[Ae(a,Zn([1,i],a.dtype)),Ae(Zn([s,1],r.dtype),r)])}function CO(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 Bu=L({minimum_:CO});function _O(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 $v=L({mirrorPad_:_O});function EO(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(uu,r)}var Fv=L({mod_:EO});function AO(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=ii(r.shape,a));let i=lt(pe(oe(e,"float32"),B(r,s))),o=Nt(i,a,n);return{mean:r,variance:o}}var zc=L({moments_:AO});function $O(e,t,n,a){let r=_(t,"data","multiRNNCell"),s=Xp(n,"c","multiRNNCell"),i=Xp(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?B(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=O.runKernel($m,o,l);return i===1?B(u,[u.size]):u}var iT=L({multinomial_:FO});function DO(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(cu,r)}var oi=L({notEqual_:DO});function RO(e){let t={x:_(e,"x","onesLike")};return O.runKernel(fu,t)}var ta=L({onesLike_:RO});function MO(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=B(n,[-1,1]),s=B(a,[1,-1]);return Ae(r,s)}var oT=L({outerProduct_:MO});function PO(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_:PO});function OO(e,t,n=0){return $(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),ba(e,[t],n)}var lT=L({pad1d_:OO});function LO(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 uT=L({pad2d_:LO});function zO(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 pT=L({pad3d_:zO});function BO(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 cT=L({pad4d_:BO});function WO(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(Nu,r,s)}var Bc=L({spaceToBatchND_:WO});function VO(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=B(o,[1,o.shape[0],o.shape[1],o.shape[2]])),$(pr(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=WS(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=GO([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=UO([p.inHeight,p.inWidth],d,c),g=h?a:"valid",b=h?l:Bc(l,d,m),y=(n==="avg"?()=>ga(b,t,s,g,i):()=>Dt(b,t,s,g,i))(),x=h?y:Rc(y,d,f);return u?B(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function UO(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 GO(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 Dv=L({pool_:VO});function HO(e,t){let n=_(e,"x","prelu"),a=_(t,"alpha","prelu"),r={x:n,alpha:a};return O.runKernel(Ki,r)}var Wc=L({prelu_:HO});function jO(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 Rv=L({prod_:jO});function qO(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(Fm,o,l);return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}var dT=L({raggedGather_:qO});function KO(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(Dm,u,p)}var hT=L({raggedTensorToTensor_:KO});function XO(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}},YO=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=Mv.alea(r.toString()),this.randn=new Pv(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=Mv.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function JO(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 YO(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}.`),fa(t,0)}var bT=L({reverse1d_:i3});function o3(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 yT=L({reverse2d_:o3});function l3(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 xT=L({reverse3d_:l3});function u3(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 vT=L({reverse4d_:u3});function p3(e){let t={x:_(e,"x","round")};return O.runKernel(to,t)}var rf=L({round_:p3});function c3(e){let t={x:_(e,"x","rsqrt","float32")};return O.runKernel(no,t)}var sf=L({rsqrt_:c3});function d3(e){let t={x:_(e,"x","selu")};return O.runKernel(wu,t)}var of=L({selu_:d3});function h3(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=B(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=ks(p,l,a,r,i,s),f=$t(m,u,1,"valid",i);return d?B(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Ts=L({separableConv2d_:h3});async function m3(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`),We(a,[t],[n])}var Vc=L({slice1d_:y3});function x3(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`),We(a,t,n)}var pf=L({slice2d_:x3});function v3(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`),We(a,t,n)}var fo=L({slice3d_:v3});function w3(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`),We(a,t,n)}var yl=L({slice4d_:w3});function k3(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 ja=L({softmax_:k3});function I3(e){$(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(Im,t)}var Uc=L({fft_:I3});function S3(e){$(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(Sm,t)}var xl=L({ifft_:S3});function T3(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=B(e,[n,t]);a=xl(r)}else{let r=[n,2*(t-1)],s=B(gl(e),[n,t]),i=B($c(e),[n,t]),o=fa(We(s,[0,1],[n,t-2]),1),l=z(fa(We(i,[0,1],[n,t-2]),1),ye(-1)),u=Ze([s,o],1),p=Ze([i,l],1),d=B(Ar(u,p),[r[0],r[1]]);a=xl(d)}if(a=gl(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=B(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var cf=L({irfft_:T3});function N3(e,t,n=0){let a={x:_(e,"x","split")},r={numOrSizeSplits:t,axis:n};return O.runKernel(Cu,a,r)}var Ln=L({split_:N3});function C3(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=We(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=je(r),i=B(Ar(r,s),[a,n]),o=Uc(i),l=Math.floor(n/2)+1,u=gl(o),p=$c(o),d=Ln(u,[l,n-l],u.shape.length-1),c=Ln(p,[l,n-l],p.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,B(Ar(d[0],c[0]),h)}var Gc=L({rfft_:C3});function _3(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 df=L({squaredDifference_:_3});function E3(e,t){let n=_(e,"x","squeeze","string_or_numeric");return B(n,PI(n.shape,t).newShape)}var Ns=L({squeeze_:E3});function A3(e,t=0){let n=Xp(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(gu,a,r)}var Ft=L({stack_:A3});function $3(e,t=0){let n={x:_(e,"x","step")},a={alpha:t};return O.runKernel(ys,n,a)}var go=L({step_:$3});function F3(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(Eu,u,p)}var zv=L({stridedSlice_:F3});function D3(e){let t={x:_(e,"x","tan","float32")};return O.runKernel(po,t)}var Bv=L({tan_:D3});function Ke(e,t){mi(e);let n=or(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return xs(e,null,n,t)}function Ea(e,t,n){if(mi(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=or(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 xs(e,t,a,n)}function Fa(e,t,n){if(mi(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=or(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 xs(e,t,a,n)}function kT(e,t,n){if(mi(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=or(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 xs(e,t,a,n)}function IT(e,t,n){if(mi(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=or(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,xs(e,t,a,n)}function R3(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(Au,s,i);return{values:o,indices:l}}var Wv=L({topk_:R3});function M3(e,t=0,n=1,a,r){if(a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Pv(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(zm,a,r);return{values:s,indices:i}}var Vv=L({unique_:P3});function O3(e,t,n){let a=_(e,"x","unsortedSegmentSum"),r=_(t,"segmentIds","unsortedSegmentSum","int32");$(dl(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return O.runKernel(Tc,s,i)}var mf=L({unsortedSegmentSum_:O3});function L3(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(Fu,a,r)}var ct=L({unstack_:L3});function ST(e,t){return tf(e,t,"right")}function Uv(e,t=!0,n,a){return O.makeVariable(e,t,n,a)}function TT(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=ye(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 CT=L({movingAverage_:W3});function V3(e,t,n){let a=_(e,"indices","scatterND","int32"),r=_(t,"updates","scatterND");Gx(r,a,n);let s={indices:a,updates:r},i={shape:n};return O.runKernel(xu,s,i)}var _T=L({scatterND_:V3});function U3(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 G3(e,t,n,a=0){let r=_(e,"sparseIndices","sparseToDense","int32"),s=_(t,"sparseValues","sparseToDense","string_or_numeric"),i=_(a,"defaultValue","sparseToDense",s.dtype);U3(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return O.runKernel(Lm,o,l)}var ET=L({sparseToDense_:G3});function H3(e,t){let n=_(t,"indices","gatherND","int32"),a={params:_(e,"x","gatherND","string_or_numeric"),indices:n};return O.runKernel(Jl,a)}var AT=L({gatherND_:H3});function j3(e,t){if(t==null)return e.shape.slice();if(ms(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=j3(r,n),i=1-t,o=he(Lu(Y(Wu(s,0,1,"float32",a),i)),i);return z(r,o)}var Hv=L({dropout_:q3});function jv(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function ff(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=OI("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;fZ3,depthwiseConv2d:()=>tL,matMul:()=>aL});function X3(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=B(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=B(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(mm,d,c)}var qv=L({conv2DBackpropFilter_:X3});function gf(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 bf(e,t){let n=t,a=Bt(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),B(n,e.shape)}function yf(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Xe(e);if(t==="elu")return Pu(e);if(t==="relu6")return af(e);if(t==="prelu")return Wc(e,n);if(t==="leakyrelu")return Pc(e,a);if(t==="sigmoid")return ha(e);throw new Error(`Unknown fused activation ${t}.`)}var xf=(e,t)=>!(e>0)||t==="linear";function Y3({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",xf(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)),yf(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=B(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]}.`),$(pr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=Dc(h.shape,c.shape,n,s,a,i),b;o!=null&&(b=_(o,"bias","fused conv2d"),[b]=_t(b,d),r==="NHWC"?ut(g.outShape,b.shape):($(b.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${b.shape.length}.`),$(b.shape.length===0||b.shape[0]===g.outChannels||b.shape[0]===1,()=>`Error in fused conv2d: bias shape (${b.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let y;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)}y=_(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=gf(T,R,l);$(is(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=dv(A.shape,S,E,n,a),W=qv(A,S,E.shape,n,a),U=[M,W];if(F!=null){let G=bf(F,S);U.push(G)}return U},w={x:h,filter:c,bias:b,preluActivationWeights:y},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?lr((T,C,E)=>{let A=O.runKernel(ei,w,I);return E([C,T,A]),m&&(A=B(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:x}})(h,c):lr((T,C,E,A)=>{let R=O.runKernel(ei,w,I);return A([C,T,R,E]),m&&(R=B(R,[R.shape[1],R.shape[2],R.shape[3]])),{value:R,gradFunc:x}})(h,c,b)}var Z3=L({fusedConv2d_:Y3});function J3(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=B(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=B(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(ym,u,p)}var FT=L({depthwiseConv2dNativeBackpropFilter_:J3});function Q3(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=B(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(xm,u,p);return l?B(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var DT=L({depthwiseConv2dNativeBackpropInput_:Q3});function eL({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(xf(O.state.gradientDepth,l)===!1){let I=ks(e,t,n,a,r,s,i);return o!=null&&(I=Y(I,o)),yf(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=B(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]),$(pr(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=Dc(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 b;u!=null&&(b=_(u,"prelu weights","fused depthwiseConv2d"));let y=(I,T)=>{$(is(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=gf(I,A,l),S=DT(E.shape,F,C,n,a,s,i),M=FT(E,F,C.shape,n,a,s,i);if(R!=null){let W=bf(g,F);return[S,M,W]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:b},w={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?lr((I,T,C)=>{let E=O.runKernel(ti,x,w);return C([T,I,E]),m&&(E=B(E,[E.shape[1],E.shape[2],E.shape[3]])),{value:E,gradFunc:y}})(h,c):lr((I,T,C,E)=>{let A=O.runKernel(ti,x,w);return E([T,I,A,C]),m&&(A=B(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:y}})(h,c,g)}var tL=L({fusedDepthwiseConv2d_:eL});function nL({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(xf(O.state.gradientDepth,s)===!1){let R=Ae(e,t,n,a);return r!=null&&(R=Y(R,r)),yf(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),b=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 y=ut(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([c,h]),x=n?B(l,[g,p,c]):B(l,[g,c,p]),w=a?B(u,[b,h,d]):B(u,[b,d,h]),I;r!=null&&(I=_(r,"bias","fused matMul"),[I]=_t(I,l),ut(y,I.shape));let T;i!=null&&(T=_(i,"prelu weights","fused matMul"));let C=(R,F)=>{let[S,M,W,U]=F,G=gf(B(R,W.shape),W,s),q,K;if(!n&&!a?(q=Ae(G,M,!1,!0),K=Ae(S,G,!0,!1)):!n&&a?(q=Ae(G,M,!1,!1),K=Ae(G,S,!0,!1)):n&&!a?(q=Ae(M,G,!1,!0),K=Ae(S,G,!1,!1)):(q=Ae(M,G,!0,!0),K=Ae(G,S,!0,!0)),r!=null){let Z=bf(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?lr((R,F,S)=>{let M=O.runKernel(Qs,E,A);return S([R,F,M]),{value:B(M,y),gradFunc:C}})(x,w):lr((R,F,S,M)=>{let W=O.runKernel(Qs,E,A);return M([R,F,W,S]),{value:B(W,y),gradFunc:C}})(x,w,I)}var aL=L({fusedMatMul_:nL});function rL(e){return ff(e,.54,.46)}var sL=L({hammingWindow_:rL});function iL(e){return ff(e,.5,.5)}var RT=L({hannWindow_:iL});function oL(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(We(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(Gl,p,d)}var cL=L({cropAndResize_:pL});function dL(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(Yl,n,{})}var hL=L({flipLeftRight_:dL});function mL(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,Pn(t,r)}var fL=L({grayscaleToRGB_:mL});function gL(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(Ru,s,i)}var bL=L({rotateWithOffset_:gL});function Vu(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=Vu(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(du,{boxes:s,scores:i},l)}var xL=L({nonMaxSuppression_:yL});function vL(e,t,n){let a=wL(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function wL(e,t,n){return IL(e,t,n||kL)}function kL(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 PT(e,t,n,a,r){return Kv(e,t,n,a,r,0)}function OT(e,t,n,a,r,s){return Kv(e,t,n,a,r,0,!1,s,!0)}function LT(e,t,n,a,r,s){return Kv(e,t,n,a,r,s,!0)}function Kv(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(mk);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:b,boxIndex:y,suppressBeginIndex:x}=g;if(b=x;--I){let T=SL(e,y,d[I]);if(T>=a){w=!0;break}if(g.score=g.score*TL(a,p,T),g.score<=r)break}g.suppressBeginIndex=d.length,w||(g.score===b?(d.push(y),c.push(g.score)):g.score>r&&vL(u,g,mk))}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 SL(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),b=Math.min(o,d),y=Math.min(l,c),x=Math.max(b-f,0)*Math.max(y-g,0);return x/(h+m-x)}function TL(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function mk(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function NL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppressionAsync"),i=_(t,"scores","nonMaxSuppressionAsync"),o=Vu(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}=PT(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),Ke(d,"int32")}var CL=NL;function _L(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Vu(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(mu,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var EL=L({nonMaxSuppressionWithScore_:_L});async function AL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Vu(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}=LT(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(c,"int32"),selectedScores:Ke(h)}}var $L=AL;function FL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Vu(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(hu,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var DL=L({nonMaxSuppressionPadded_:FL});async function RL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Vu(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}=OT(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(m,"int32"),validOutputs:ye(f,"int32")}}var ML=RL;function PL(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=B(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?B(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var zT=L({resizeBilinear_:PL});function OL(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=B(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?B(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var BT=L({resizeNearestNeighbor_:OL});function LL(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]=Ln(r,[1,1,1],-1);let f=z(p,s),g=z(d,i),b=z(c,o);h=Y(Y(f,g),b)}else h=e;if(t==="otsu"){let f=iv(oe(rf(h),"int32"),On([]),256);u=zL(f,l)}let m=n?Ss(h,u):Vn(h,u);return oe(z(m,255),"int32")}function zL(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($u,l,u)}var VL=L({transform_:WL});function UL(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=B(bl(0,s,1,"int32"),[-1,1]),l=bl(0,i,1,"int32"),u=pe(o,l),p=Aa(Ss(u,ye(+t,"int32")),Is(u,ye(-n,"int32"))),d=It([s,i],a.dtype);return B(Ft(ct(B(a,[-1,s,i])).map(c=>mn(p,c,d))),r)}var GL=L({bandPart_:UL});function HL(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=Ln(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 fk(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=ct(B(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,p]=fk(l,t);r.push(u),s.push(p)});let i=B(Ft(r,0),e.shape),o=B(Ft(s,0),e.shape);return[i,o]}}function fk(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=Xm(n),s=sr(e),i=Ea([[1]],[1,1]),o=sr(i),l=n>=a?a:n;for(let u=0;u{let h=We(s,[u,u],[n-u,1]),m=Ou(h),f=We(s,[u,u],[1,1]),g=mn(Vn(f,0),Ea([[-1]]),Ea([[1]])),b=pe(f,z(g,m)),y=he(h,b);y.shape[0]===1?o=sr(i):o=Ze([i,We(y,[1,0],[y.shape[0]-1,y.shape[1]])],0);let x=vt(he(Ae(g,b),m)),w=We(s,[u,0],[n-u,a]),I=z(x,o),T=Ce(o);if(u===0)s=pe(w,Ae(I,Ae(T,w)));else{let A=pe(w,Ae(I,Ae(T,w)));s=Ze([We(s,[0,0],[u,a]),A],0)}let C=Ce(I),E=We(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(E,Ae(Ae(E,o),C));else{let A=pe(E,Ae(Ae(E,o),C));r=Ze([We(r,[0,0],[n,u]),A],1)}return[o,s,r]}),$e([p,d,c])}return!t&&n>a&&(r=We(r,[0,0],[n,a]),s=We(s,[0,0],[a,a])),[r,s]})}var KL=L({qr_:qL}),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 XL(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,ye(i)):o}}if(n===vn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return he(fe(s),ye(a.size));{let i=z(r,Zn(a.shape)),o=oe(fe(oi(i,ye(0))),"float32");return he(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Fr=L({computeWeightedLoss_:XL});function YL(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")),Sn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(pe(r,s));return Fr(o,i,a)}var ZL=L({absoluteDifference_:YL});function JL(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")),Sn(s.shape,i.shape,"Error in cosineDistance: ");let l=ye(1),u=pe(l,fe(z(s,i),n,!0));return Fr(u,o,r)}var QL=L({cosineDistance_:JL});function ez(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")),Sn(r.shape,s.shape,"Error in hingeLoss: ");let o=ye(1);r=pe(z(ye(2),r),o);let l=Xe(pe(o,z(r,s)));return Fr(l,i,a)}var tz=L({hingeLoss_:ez});function nz(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")),Sn(s.shape,i.shape,"Error in huberLoss: ");let l=ye(a),u=Lt(pe(i,s)),p=Bu(u,l),d=pe(u,p),c=Y(z(ye(.5),lt(p)),z(l,d));return Fr(c,o,r)}var az=L({huberLoss_:nz});function rz(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")),Sn(s.shape,i.shape,"Error in logLoss: ");let l=ye(1),u=ye(a),p=vt(z(s,ea(Y(i,u)))),d=z(pe(l,s),ea(Y(pe(l,i),u))),c=pe(p,d);return Fr(c,o,r)}var sz=L({logLoss_:rz});function iz(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")),Sn(r.shape,s.shape,"Error in meanSquaredError: ");let o=df(r,s);return Fr(o,i,a)}var oz=L({meanSquaredError_:iz});function lz(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=Oc(fn(vt(Lt(a))));return Y(pe(r,s),i)}function uz(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")),Sn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=ye(a),p=ye(1),d=ye(.5);s=Y(z(s,pe(p,u)),z(d,u))}let l=lz(s,i);return Fr(l,o,r)}var pz=L({sigmoidCrossEntropy_:uz});function cz(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 lr((a,r,s)=>{let i=Qm(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(B(u,h),pe(oe(d,"float32"),fn(c))),z(B(u,h),pe(fn(c),oe(d,"float32")))]}}})(e,t)}function dz(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")),Sn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=ye(a),p=ye(1),d=ye(s.shape[1]);s=Y(z(s,pe(p,u)),he(u,d))}let l=cz(s,i);return Fr(l,o,r)}var hz=L({softmaxCrossEntropy_:dz});function mz(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(yc,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var fz=L({sparseFillEmptyRows_:mz});function gz(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(_u,i);return{outputIndices:o[0],outputShape:o[1]}}var bz=L({sparseReshape_:gz});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 L.runKernel(Mc,i)}var Yz=z({sparseSegmentMean_:Xz});function Zz(e,t,n){let a=E(e,"data","sparseSegmentSum"),r=E(t,"indices","sparseSegmentSum","int32"),s=E(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(xc,i)}var xz=L({sparseSegmentMean_:yz});function vz(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 L.runKernel(Pc,i)}var Jz=z({sparseSegmentSum_:Zz});function Qz(e,t,n,a,r,s,i,o){let l=E(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=E(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=L.runKernel(Lc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var eW=z({stringNGrams_:Qz});function tW(e,t,n=!0){let a=E(e,"input","stringSplit","string"),r=E(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=L.runKernel(zc,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var nW=z({stringSplit_:tW});function aW(e,t){let n=E(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 L.runKernel(Wc,r,a)}var rW=z({stringToHashBucketFast_:aW}),rN={fft:sd,ifft:Al,rfft:id,irfft:Df},sN={hammingWindow:PL,hannWindow:ZS,frame:JS,stft:WL},Er={flipLeftRight:GL,grayscaleToRGB:jL,resizeNearestNeighbor:aN,resizeBilinear:nN,rotateWithOffset:KL,cropAndResize:VL,nonMaxSuppression:YL,nonMaxSuppressionAsync:rz,nonMaxSuppressionWithScore:iz,nonMaxSuppressionWithScoreAsync:lz,nonMaxSuppressionPadded:pz,nonMaxSuppressionPaddedAsync:dz,threshold:bz,transform:xz},fw={bandPart:wz,gramSchmidt:Iz,qr:Sz},iN={absoluteDifference:_z,computeWeightedLoss:Mr,cosineDistance:$z,hingeLoss:Fz,huberLoss:Rz,logLoss:Pz,meanSquaredError:Lz,sigmoidCrossEntropy:Bz,softmaxCrossEntropy:Gz},oN={sparseFillEmptyRows:jz,sparseReshape:Kz,sparseSegmentMean:Yz,sparseSegmentSum:Jz},lN={stringNGrams:eW,stringSplit:nW,stringToHashBucketFast:rW},Pr=class extends eS{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 Me(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 xS(e,t)}dispose(){this.iterations_!=null&&Me(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:ke(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(Pr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var Vf=class extends Pr{constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=L.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=L.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:O(()=>qe(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:O(()=>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;O(()=>{let l=Q(W(i,this.rho),W(ut(s),1-this.rho)),u=W(fe(un(Q(o,this.epsilon)),un(Q(i,this.epsilon))),s),p=Q(W(o,this.rho),W(ut(u),1-this.rho));i.assign(l),o.assign(p);let d=Q(W(u,-this.learningRate),a);a.assign(d)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Me(this.accumulatedGrads.map(e=>e.variable)),Me(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)}};Vf.className="Adadelta";Ts(Vf);var Uf=class extends Pr{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=L.registeredVariables[t];this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:O(()=>$n(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;O(()=>{let i=Q(s,ut(r));s.assign(i);let o=Q(W(fe(r,un(Q(i,L.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Me(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)}};Uf.className="Adagrad";Ts(Uf);var Gf=class extends Pr{constructor(e,t,n,a=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],O(()=>{this.accBeta1=ke(t).variable(),this.accBeta2=ke(n).variable()}),a==null&&(this.epsilon=L.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);O(()=>{let n=ce(1,this.accBeta1),a=ce(1,this.accBeta2);t.forEach((r,s)=>{let i=L.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:O(()=>qe(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:O(()=>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=Q(W(u,this.beta1),W(l,1-this.beta1)),c=Q(W(p,this.beta2),W(ut(l),1-this.beta2)),h=fe(d,n),m=fe(c,a);u.assign(d),p.assign(c);let f=Q(W(fe(h,Q(un(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(W(this.accBeta1,this.beta1)),this.accBeta2.assign(W(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Me(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&Me(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),O(()=>{this.accBeta1.assign(Rr(this.beta1,this.iterations_+1)),this.accBeta2.assign(Rr(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)}};Gf.className="Adam";Ts(Gf);var Hf=class extends Pr{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=[],O(()=>{this.iteration=ke(0).variable(),this.accBeta1=ke(t).variable()}),a==null&&(this.epsilon=L.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);O(()=>{let n=ce(1,this.accBeta1),a=fe(-this.learningRate,Q(W(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=L.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=Q(W(u,this.beta1),W(l,1-this.beta1)),c=W(p,this.beta2),h=Lt(l),m=br(c,h);u.assign(d),p.assign(m);let f=Q(W(fe(a,n),fe(d,Q(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(Q(this.iteration,1)),this.accBeta1.assign(W(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Me(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&Me(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)}};Hf.className="Adamax";Ts(Hf);var od=class extends Pr{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=L.registeredVariables[t];O(()=>{let s=Q(W(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Qt(ke(-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)}};od.className="SGD";Ts(od);var jf=class extends od{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=ke(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=L.registeredVariables[t];this.accumulations[n]==null&&(this.accumulations[n]={originalName:`${t}/momentum`,variable:O(()=>qe(a).variable(!1))});let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&O(()=>{let i,o=Q(W(this.m,r),s);this.useNesterov?i=Q(W(this.c,Q(s,W(o,this.m))),a):i=Q(W(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Me(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)}};jf.className="Momentum";Ts(jf);var qf=class extends Pr{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=L.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=L.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:O(()=>qe(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:O(()=>qe(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:O(()=>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;O(()=>{let l=Q(W(i,this.decay),W(ut(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=Q(W(u,this.decay),W(s,1-this.decay)),d=fe(W(s,this.learningRate),un(ce(l,Q(ut(p),this.epsilon)))),c=Q(W(o,this.momentum),d);i.assign(l),u.assign(p),o.assign(c);let h=ce(a,c);a.assign(h)}else{let u=Q(W(i,this.decay),W(ut(s),1-this.decay)),p=Q(W(o,this.momentum),fe(W(s,this.learningRate),un(Q(u,this.epsilon))));i.assign(u),o.assign(p);let d=ce(a,p);a.assign(d)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Me(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Me(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&Me(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)}};qf.className="RMSProp";Ts(qf);var Qr=class{static sgd(e){return new od(e)}static momentum(e,t,n=!1){return new jf(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new qf(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Gf(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new Vf(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new Hf(e,t,n,a,r)}static adagrad(e,t=.1){return new Uf(e,t)}},Xs={sgd:Qr.sgd,momentum:Qr.momentum,adadelta:Qr.adadelta,adagrad:Qr.adagrad,rmsprop:Qr.rmsprop,adamax:Qr.adamax,adam:Qr.adam},sW=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function gw(){return new Promise(e=>sW(()=>e()))}var C={};Fe(C,{ERF_A1:()=>vW,ERF_A2:()=>wW,ERF_A3:()=>kW,ERF_A4:()=>IW,ERF_A5:()=>TW,ERF_P:()=>xW,PARALLELIZE_THRESHOLD:()=>bw,RowPartitionType:()=>or,SELU_SCALE:()=>pN,SELU_SCALEALPHA:()=>uN,applyActivation:()=>Wf,assertAndGetBroadcastShape:()=>ct,assertAxesAreInnerMostDims:()=>dO,assertParamsConsistent:()=>iW,assignToTypedArray:()=>$W,axesAreInnerMostDims:()=>Wv,calculateShapes:()=>GT,checkEinsumDimSizes:()=>PW,checkPadOnDimRoundingMode:()=>En,combineLocations:()=>mS,combineRaggedTensorToTensorShapes:()=>lW,complexWithEvenIndex:()=>CW,complexWithOddIndex:()=>_W,computeConv2DInfo:()=>Xc,computeConv3DInfo:()=>iS,computeDefaultPad:()=>wv,computeDilation2DInfo:()=>hP,computeOptimalWindowSize:()=>dW,computeOutAndReduceShapes:()=>fS,computeOutShape:()=>oW,computePool2DInfo:()=>sS,computePool3DInfo:()=>mP,convertConv2DDataFormat:()=>oS,decodeEinsumEquation:()=>RW,eitherStridesOrDilationsAreOne:()=>gr,expandShapeToKeepDim:()=>fi,exponent:()=>FW,exponents:()=>AW,fromStringArrayToUint8:()=>aB,fromUint8ToStringArray:()=>nB,getAxesPermutation:()=>gS,getBroadcastDims:()=>BT,getComplexWithIndex:()=>EW,getEinsumComputePath:()=>OW,getEinsumPermutation:()=>MW,getFusedBiasGradient:()=>zf,getFusedDyActivation:()=>Lf,getImageCenter:()=>hW,getInnerMostAxes:()=>hO,getPermuted:()=>fW,getRaggedRank:()=>pW,getReductionAxes:()=>Wt,getReshaped:()=>mW,getReshapedPermuted:()=>gW,getRowPartitionTypesHelper:()=>uW,getSliceBeginCoords:()=>bW,getSliceSize:()=>yW,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>BW,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>VW,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>UW,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>jW,getSparseReshapeInputOutputMismatchErrorMessage:()=>KW,getSparseReshapeInputOutputMultipleErrorMessage:()=>qW,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>GW,getSparseReshapeNegativeOutputDimErrorMessage:()=>HW,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>JW,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>XW,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>YW,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>ZW,getUndoAxesPermutation:()=>Bv,isIdentityPermutation:()=>LW,log:()=>$D,mergeRealAndImagArrays:()=>SW,prepareAndValidate:()=>UT,prepareSplitSize:()=>WW,segment_util:()=>cN,shouldFuse:()=>Bf,slice_util:()=>qt,splitRealAndImagArrays:()=>NW,tupleValuesAreOne:()=>ps,upcastType:()=>ma,validateDefaultValueShape:()=>cW,validateInput:()=>pv,validateUpdateShape:()=>uv,warn:()=>ts});function iW(e,t){let n=e[0].length;e.forEach((r,s)=>{R(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),R(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 oW(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 uW(e){let t={FIRST_DIM_SIZE:or.FIRST_DIM_SIZE,VALUE_ROWIDS:or.VALUE_ROWIDS,ROW_LENGTHS:or.ROW_LENGTHS,ROW_SPLITS:or.ROW_SPLITS,ROW_LIMITS:or.ROW_LIMITS,ROW_STARTS:or.ROW_STARTS},n=[];for(let a of e)if(a in t)n.push(t[a]);else break;return n}function pW(e){return e.length===0?0:e[0]===or.FIRST_DIM_SIZE?e.length-1:e.length}function cW(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 bw=30;function dW(e){return e<=bw?e:Jh(e,Math.floor(Math.sqrt(e)))}function hW(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function mW(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 gW(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,Lk=",",zk="...";function RW(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(DW,"").length)/My.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 ("${My}").`);let[a,r]=e.split(My);R(a.indexOf(zk)===-1,()=>`The ellipsis notation ("${zk}") is not supported yet.`);let s=a.split(Lk),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 PW(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 OW(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 zW(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(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}R(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 BW(e){return`Received SparseTensor with denseShape[0] = 0 but - indices.shape[0] = ${e}`}function VW(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function UW(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function GW(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 jW(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function qW(e,t){let n=bt(e),a=bt(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 KW(e,t){let n=bt(e),a=bt(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function XW(){return"segment ids must be >= 0"}function YW(){return"segment ids are not increasing"}function ZW(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function JW(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var cN={};Fe(cN,{collectGatherOpShapeInfo:()=>tB,computeOutShape:()=>eB,segOpComputeOptimalWindowSize:()=>QW});function QW(e,t){let n=!1,a;for(e<=bw?(a=e,n=!0):a=Jh(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=Jh(e,a+1);return a}function eB(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(nrm(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function aB(e){return e.map(t=>Gc(t))}var yr={};Fe(yr,{nonMaxSuppressionV3Impl:()=>QS,nonMaxSuppressionV4Impl:()=>eN,nonMaxSuppressionV5Impl:()=>tN,whereImpl:()=>VS});var dN={kernelName:Ul,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,So(le(n,"float32"),-1))}}},rB={kernelName:Gl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ut(le(n,"float32")),r=un(ce(ke(1),a));return kt(fe(e,r))}}}},sB={kernelName:Hl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=un(ce(ut(le(n,"float32")),1));return fe(e,a)}}}},iB={kernelName:xs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=ye(s,i)),B(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=ye(s,i)),B(s,a.shape)}}}},oB={kernelName:Ti,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},lB={kernelName:Si,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},uB={kernelName:Sc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},pB={kernelName:Kl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>fe(e,un(ce(ke(1),ut(le(n,"float32")))))}}},cB={kernelName:Xl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=un(Q(ke(1),ut(le(n,"float32"))));return fe(e,a)}}}},dB={kernelName:Jl,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=Q(ut(n),ut(a)),i=W(e,fe(a,s)),o=Wt(n.shape,r);return o.length>0&&(i=ye(i,o)),B(i,n.shape)},b:()=>{let s=Q(ut(n),ut(a)),i=kt(W(e,fe(n,s))),o=Wt(a.shape,r);return o.length>0&&(i=ye(i,o)),B(i,a.shape)}}}},hB={kernelName:Yl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>fe(e,Q(ut(le(n,"float32")),1))}}},mB={kernelName:Zl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>fe(e,ce(ke(1),ut(le(n,"float32"))))}}};function fB(e,t,n,a,r,s){let i=E(e,"dy","avgPool3dGrad"),o=E(t,"input","avgPool3dGrad"),l=i,u=o,p=!1;o.rank===4&&(p=!0,l=B(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=B(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),R(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),R(u.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`),En("avgPool3dGrad",r,s);let d={dy:l,input:u},c={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=L.runKernel(Dm,d,c);return p?B(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var gB=z({avgPool3dGrad_:fB}),bB={kernelName:Nc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>gB(e,a,r,s,i,o)}}};function yB(e,t,n,a,r){let s=E(e,"dy","avgPoolGrad"),i=E(t,"input","avgPoolGrad");R(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=B(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=B(s,[1,s.shape[0],s.shape[1],s.shape[2]])),R(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),R(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=L.runKernel(Fm,p,d);return u?B(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var xB=z({avgPoolGrad_:yB}),vB={kernelName:Ni,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>xB(e,a,r,s,i)}}},wB={kernelName:Ci,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>Re(e,r,!1,!0),b:()=>Re(a,e,!0,!1)}:!s&&i?{a:()=>Re(e,r,!1,!1),b:()=>Re(e,a,!0,!1)}:s&&!i?{a:()=>Re(r,e,!1,!0),b:()=>Re(a,e,!1,!1)}:{a:()=>Re(r,e,!0,!0),b:()=>Re(e,a,!0,!0)}}},kB={kernelName:Ql,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>nd(e,a,r)}}},IB={kernelName:hT,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:()=>ye(e,o,!0)}}},TB={kernelName:_i,gradFunc:e=>({x:()=>e.clone()})},SB={kernelName:Ei,gradFunc:e=>({x:()=>qe(e)})},NB={kernelName:vs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>fn($a(Cs(a,r),_s(a,s)),e,qe(e))}}},CB={kernelName:Cc,inputsToSave:["x"],gradFunc:dN.gradFunc},_B={kernelName:eu,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 Vn(e,i,s).map(o=>()=>o)}},EB={kernelName:$i,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return R(ps(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>Fv(a.shape,e,r,i,o,l),filter:()=>hw(a,e,r.shape,i,o,l)}}},$B={kernelName:Ai,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Dt(e,r,s,i,o,1,l),filter:()=>hw(e,a,r.shape,s,i,o,l)}}};function AB(e,t,n,a,r){let s=e;e.rank===4&&(s=B(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=B(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),R(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),R(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),R(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),R(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),R(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 L.runKernel(Lm,o,l)}var FB=z({conv3DBackpropFilter_:AB}),DB={kernelName:_c,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;R(ps(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:()=>pS(i.shape,e,o,r,s),filter:()=>FB(i,e,o.shape,r,s)}}},RB={kernelName:Fi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(kt($f(le(n,"float32"))),e)}}},MB={kernelName:Di,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(Af(le(n,"float32")),e)}}},PB={kernelName:Ri,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=gS([r],a.rank),l=bf(e,r,s,!i);return o!=null&&(l=Ae(l,o)),l}}}},OB={kernelName:Mi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;R(ps(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,u]=t;return R(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),R(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`),R(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]}.`),R(gr(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),En("depthwiseConv2d",s,i),{x:()=>YS(l.shape,e,u,r,s,o,i),filter:()=>XS(l,e,u.shape,r,s,o,i)}}},LB={kernelName:Ec,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:()=>L.runKernel(Qh,s,n),filter:()=>L.runKernel(em,i,n)}}},zB={kernelName:Oi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>L.runKernel(Hm,a)}}},WB={kernelName:ru,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=W(gn(kt(ut(n))),2/Math.sqrt(Math.PI));return{x:()=>W(e,a)}}},BB={kernelName:Li,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n)}}},VB={kernelName:iu,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>B(e,n.shape)}}},UB={kernelName:ou,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,gn(n))}}},GB={kernelName:zi,gradFunc:e=>({x:()=>qe(e)})},HB={kernelName:Wi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=fe(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?B(ye(s,i),n.shape):s},b:()=>{let s=W(e,le(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=B(ye(s,i),a.shape));let o=ut(a);return kt(fe(s,le(o,"float32")))}}}},jB={kernelName:Bi,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?ke(1):o,u=Wt(s.shape,r.shape),p=[];if(s.rank===1){for(let f=0;fs.rank===1?B(W(W(e,Wn(B(h,[1,1,1,s.shape[0]]),p)),l),r.shape):B(W(W(e,h),l),r.shape),mean:()=>{let f=W(W(h,ke(-1)),c);return s.rank===1&&(f=ye(f,u)),B(f,s.shape)},variance:()=>{let f=W(W(m,d),c);return s.rank===1&&(f=ye(f,u)),B(f,s.shape)},scale:()=>{let f=W(d,h),g=W(e,f);return s.rank===1&&(g=ye(g,u)),B(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=ye(f,u)),B(f,s.shape)}}}},qB={kernelName:uu,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=Wk(0,p),m=Wk(p+1,p+1+c),f=Bk([u,[l],d]),g=B(e,f),b=B(r,[l]),y=Bk([[p],h,m]),x=Ae(g,y),w=Pf(x,b,a.shape[i]),I=Bv(y);return w=Ae(w,I),w},indices:()=>r}}};function Wk(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>qe(n),b:()=>qe(a)}}},XB={kernelName:Ui,gradFunc:e=>({x:()=>le(e,"float32")})},YB={kernelName:du,gradFunc:e=>({x:()=>qe(e)})},ZB={kernelName:hu,gradFunc:e=>({x:()=>qe(e)})},JB={kernelName:mu,gradFunc:e=>({x:()=>qe(e)})},QB={kernelName:Gi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=jn(a,0);return{x:()=>fn(s,e,W(e,r))}}},e4={kernelName:bu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>fe(e,Q(n,1))}}},t4={kernelName:Hi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>fe(e,le(n,"float32"))}}},n4={kernelName:fT,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=gn(a);return ce(e,W(ye(e,r,!0),s))}}}};function a4(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 L.runKernel(Ym,o,l)}var r4=z({localResponseNormalizationBackprop_:a4}),s4={kernelName:Ac,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>r4(a,r,e,s,i,o,l)}}};function hN(e,t,n,a){return t.rankW(e,le(ea(n,t),e.dtype))}}var Vk={kernelName:ji,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=hN(e,i,s,o);return{x:()=>l.x()}}},i4={kernelName:qi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>W(e,le(Cs(n,a),"float32")),b:()=>W(e,le(xf(n,a),"float32"))}}};function o4(e,t,n,a,r,s,i){let o=E(e,"dy","maxPool3dGrad"),l=E(t,"input","maxPool3dGrad"),u=E(n,"output","maxPool3dGrad"),p=o,d=l,c=u,h=!1;l.rank===4&&(h=!0,p=B(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),d=B(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),c=B(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),R(p.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${p.rank}.`),R(d.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${d.rank}.`),R(c.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${c.rank}.`),En("maxPool3dGrad",s,i);let m={dy:p,input:d,output:c},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=L.runKernel(Jm,m,f);return h?B(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var l4=z({maxPool3dGrad_:o4}),u4={kernelName:Fc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>l4(e,a,r,s,i,o,l)}}};function p4(e,t,n,a,r,s,i){let o=E(e,"dy","maxPoolGrad"),l=E(t,"input","maxPoolGrad"),u=E(n,"output","maxPoolGrad");R(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),R(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),R(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),En("maxPoolGrad",s,i);let p={dy:o,input:l,output:u},d={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return L.runKernel(Zm,p,d)}var c4=z({maxPoolGrad_:p4}),d4={kernelName:Ki,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>c4(e,a,r,s,i,o)}}},h4={kernelName:Xi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=Aa(r,a.shape),i=fS(a.shape,s)[1],o=bt(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=B(e,l);return fe(W(u,Qn(a.shape,"float32")),o)}}}},m4={kernelName:Yi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=Aa(r,s.shape),l=hN(e,i,s,o);return{x:()=>l.x()}}},f4={kernelName:Zi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>W(e,le(_s(n,a),"float32")),b:()=>W(e,le(jn(n,a),"float32"))}}},g4={kernelName:Ji,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>He(e,s,a.shape)}}},b4={kernelName:wu,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=Wt(n.shape,r);return s.length>0?B(ye(e,s),n.shape):e},b:()=>{let s=W(e,kt(Yu(fe(n,a)))),i=Wt(a.shape,r);return i.length>0?B(ye(s,i),a.shape):s}}}},y4={kernelName:Qi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=W(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?B(ye(s,i),n.shape):s},b:()=>{let s=W(e,le(n,"float32")),i=Wt(a.shape,r);return i.length>0?B(ye(s,i),a.shape):s}}}},x4={kernelName:ku,gradFunc:e=>({x:()=>kt(e)})},v4={kernelName:eo,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>It(n.shape,"float32")}}},w4={kernelName:Cu,gradFunc:e=>({x:()=>qe(e)})},k4={kernelName:_u,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return mt(e,a).map(r=>()=>r)}},Uk={kernelName:to,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>He(e,s,a.shape)}}},I4={kernelName:no,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=ct(s.shape,i.shape);return{a:()=>{let l=le(i,"float32"),u=W(e,W(l,Rr(s,ce(l,ke(1))))),p=Wt(s.shape,o);return p.length>0&&(u=ye(u,p)),B(u,s.shape)},b:()=>{let l=jn(s,0),u=fn(l,ta(s),qe(s)),p=W(e,W(r,u)),d=Wt(i.shape,o);return d.length>0&&(p=ye(p,d)),B(p,i.shape)}}}},T4={kernelName:ao,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=jn(n,0);return{x:()=>fn(r,e,W(e,a)),alpha:()=>{let s=fn(r,qe(e),W(e,n)),i=Wt(a.shape,e.shape);return i.length>0&&(s=ye(s,i)),B(s,a.shape)}}}};function S4(e,t,n){let a=e.shape.slice();a[n]=1;let r=B(t,a),s=hc(e,n,!0,!1),i=hc(e,n,!0,!0),o=W(s,i);return W(r,o)}function N4(e,t,n){let a=e.shape.length,r=a-n.length,s=C.getAxesPermutation(n,a),i=e;s!=null&&(i=Ae(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=S4(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=C.getUndoAxesPermutation(s);p=Ae(p,d)}return p}var C4={kernelName:ro,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:()=>N4(a,e,s)}}},_4={kernelName:Pi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=fe(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?B(ye(s,i),n.shape):s},b:()=>{let s=W(e,le(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=B(ye(s,i),a.shape));let o=ut(a);return kt(fe(s,le(o,"float32")))}}}},E4={kernelName:Eu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>fe(e,kt(ut(n)))}}},$4={kernelName:lo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=W(_s(n,6),So(n));return{x:()=>W(e,le(a,"float32"))}}},A4={kernelName:so,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,le(So(n),"float32"))}}},F4={kernelName:$u,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,n.shape)}}},D4={kernelName:oo,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>L.runKernel(rf,r,n)}}},R4={kernelName:io,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>L.runKernel(af,r,n)}}},M4={kernelName:uo,gradFunc:(e,t,n)=>{let{dims:a}=n,r=Aa(a,e.shape);return{x:()=>ga(e,r)}}},P4={kernelName:po,gradFunc:e=>({x:()=>qe(e)})},O4={kernelName:co,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>kt(fe(e,W(Rr(n,1.5),2)))}}},L4={kernelName:Fu,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>le(qe(n),"float32"),t:()=>W(e,le(n,e.dtype)),e:()=>W(e,le(ed(n),e.dtype))}}},z4={kernelName:Du,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=jn(n,ke(0)),r=ke(uN),s=ke(pN),i=W(e,s),o=W(W(e,r),gn(le(n,"float32")));return fn(a,i,o)}}}},W4={kernelName:mo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,W(n,ce(ke(1),n)))}}},B4={kernelName:Pu,gradFunc:e=>({x:()=>qe(e)})},V4={kernelName:ho,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(Zc(le(n,"float32")),e)}}},U4={kernelName:Mu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(gf(le(n,"float32")),e)}}},G4={kernelName:Ru,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=QT(a,r,s),u=[];for(let p=0;pya(e,u)}}},H4={kernelName:bo,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=W(e,a);return{logits:()=>ce(i,W(ye(i,[r],s),a))}}},j4={kernelName:Ou,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,ha(n))}}},Gk={kernelName:Lu,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>Yc(e,a,r)}}},Hk={kernelName:zu,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Qe(e,a)}}},q4={kernelName:fo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>fe(e,W(un(le(n,"float32")),2))}}},K4={kernelName:Oc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,W(le(n,"float32"),2))}}},X4={kernelName:yo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ke(2);return{a:()=>W(e,W(r,ce(n,a))),b:()=>W(e,W(r,ce(a,n)))}}},Y4={kernelName:ks,gradFunc:e=>({x:()=>qe(e)})},Z4={kernelName:xo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ct(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=ye(s,i)),B(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=ye(s,i)),B(kt(s),a.shape)}}}},J4={kernelName:go,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=B(e,r),o=W(i,Qn(a.shape,"float32"));return{x:()=>o}}},Q4={kernelName:vo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>fe(e,ut(Zc(n)))}}},eV={kernelName:wo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(ce(ke(1),ut(n)),e)}}},tV={kernelName:ws,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=Bv(r);return{x:()=>Ae(e,s)}}},aV={kernelName:Gu,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Rt(e,r)}}},rV={kernelName:Bc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>sV(e,n)}}};function sV(e,t){let n=br(t,qe(t)),a=Zu(e,n),r=Cs(t,ke(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>qe(e)})},oV=[dN,rB,sB,iB,oB,lB,uB,pB,cB,dB,hB,mB,bB,vB,wB,kB,IB,TB,SB,NB,CB,_B,$B,EB,DB,RB,MB,PB,OB,LB,_4,zB,WB,BB,VB,UB,HB,GB,jB,qB,KB,XB,YB,ZB,JB,QB,e4,t4,n4,s4,Vk,Vk,i4,u4,d4,h4,m4,f4,g4,b4,y4,x4,v4,w4,k4,Uk,Uk,I4,T4,C4,E4,$4,A4,F4,D4,R4,M4,P4,O4,L4,z4,W4,B4,V4,U4,G4,H4,j4,Gk,Gk,Hk,Hk,q4,X4,K4,Y4,Z4,J4,Q4,eV,tV,nV,aV,rV,iV];for(let e of oV)gT(e);ne().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};ne().prototype.acos=function(){return this.throwIfDisposed(),hv(this)};ne().prototype.acosh=function(){return this.throwIfDisposed(),mv(this)};ne().prototype.add=function(e){return this.throwIfDisposed(),Q(this,e)};ne().prototype.all=function(e,t){return this.throwIfDisposed(),hf(this,e,t)};ne().prototype.any=function(e,t){return this.throwIfDisposed(),dc(this,e,t)};ne().prototype.argMax=function(e){return this.throwIfDisposed(),hi(this,e)};ne().prototype.argMin=function(e){return this.throwIfDisposed(),fv(this,e)};ne().prototype.asScalar=function(){return this.throwIfDisposed(),R(this.size===1,()=>"The array must have only 1 element."),B(this,[])};ne().prototype.asType=function(e){return this.throwIfDisposed(),le(this,e)};ne().prototype.as1D=function(){return this.throwIfDisposed(),B(this,[this.size])};ne().prototype.as2D=function(e,t){return this.throwIfDisposed(),B(this,[e,t])};ne().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),B(this,[e,t,n])};ne().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),B(this,[e,t,n,a])};ne().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),B(this,[e,t,n,a,r])};ne().prototype.asin=function(){return this.throwIfDisposed(),gv(this)};ne().prototype.asinh=function(){return this.throwIfDisposed(),bv(this)};ne().prototype.atan=function(){return this.throwIfDisposed(),yv(this)};ne().prototype.atan2=function(e){return this.throwIfDisposed(),xv(this,e)};ne().prototype.atanh=function(){return this.throwIfDisposed(),vv(this)};ne().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),ba(this,e,t,n,a)};ne().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Yc(this,e,t)};ne().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),Ss(this,e,t,n,a,r)};ne().prototype.broadcastTo=function(e){return this.throwIfDisposed(),ri(this,e)};ne().prototype.cast=function(e){return this.throwIfDisposed(),le(this,e)};ne().prototype.ceil=function(){return this.throwIfDisposed(),Cv(this)};ne().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),tn(this,e,t)};ne().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof $e&&(e=[e]),Qe([this,...e],t)};ne().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),mf(this,e,t,n,a,r,s)};ne().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),ff(this,e,t,n,a,r)};ne().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Dt(this,e,t,n,a,r,s)};ne().prototype.cos=function(){return this.throwIfDisposed(),Zc(this)};ne().prototype.cosh=function(){return this.throwIfDisposed(),gf(this)};ne().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),hc(this,e,t,n)};ne().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),bf(this,e,t,n)};ne().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),Mv(this,e,t)};ne().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Ns(this,e,t,n,a,r,s)};ne().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),Pv(this,e,t,n,a,r)};ne().prototype.divNoNan=function(e){return this.throwIfDisposed(),Ov(this,e)};ne().prototype.div=function(e){return this.throwIfDisposed(),fe(this,e)};ne().prototype.dot=function(e){return this.throwIfDisposed(),Lv(this,e)};ne().prototype.elu=function(){return this.throwIfDisposed(),Ku(this)};ne().prototype.equal=function(e){return this.throwIfDisposed(),ea(this,e)};ne().prototype.erf=function(){return this.throwIfDisposed(),zv(this)};ne().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),Vv(this,e,t)};ne().prototype.exp=function(){return this.throwIfDisposed(),gn(this)};ne().prototype.expandDims=function(e){return this.throwIfDisposed(),mn(this,e)};ne().prototype.expm1=function(){return this.throwIfDisposed(),Uv(this)};ne().prototype.fft=function(){return this.throwIfDisposed(),sd(this)};ne().prototype.flatten=function(){return this.throwIfDisposed(),B(this,[this.size])};ne().prototype.floor=function(){return this.throwIfDisposed(),Yu(this)};ne().prototype.floorDiv=function(e){return this.throwIfDisposed(),df(this,e)};ne().prototype.gather=function(e,t){return this.throwIfDisposed(),Zu(this,e,t)};ne().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Cs(this,e)};ne().prototype.greater=function(e){return this.throwIfDisposed(),jn(this,e)};ne().prototype.ifft=function(){return this.throwIfDisposed(),Al(this)};ne().prototype.irfft=function(){return this.throwIfDisposed(),Df(this)};ne().prototype.isFinite=function(){return this.throwIfDisposed(),Gv(this)};ne().prototype.isInf=function(){return this.throwIfDisposed(),Hv(this)};ne().prototype.isNaN=function(){return this.throwIfDisposed(),jv(this)};ne().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Jc(this,e)};ne().prototype.lessEqual=function(e){return this.throwIfDisposed(),_s(this,e)};ne().prototype.less=function(e){return this.throwIfDisposed(),xf(this,e)};ne().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),qv(this,e,t,n,a)};ne().prototype.logSigmoid=function(){return this.throwIfDisposed(),Kv(this)};ne().prototype.logSoftmax=function(e){return this.throwIfDisposed(),wf(this,e)};ne().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),kf(this,e,t)};ne().prototype.log=function(){return this.throwIfDisposed(),ta(this)};ne().prototype.log1p=function(){return this.throwIfDisposed(),Qc(this)};ne().prototype.logicalAnd=function(e){return this.throwIfDisposed(),$a(this,e)};ne().prototype.logicalNot=function(){return this.throwIfDisposed(),ed(this)};ne().prototype.logicalOr=function(e){return this.throwIfDisposed(),If(this,e)};ne().prototype.logicalXor=function(e){return this.throwIfDisposed(),Xv(this,e)};ne().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),Re(this,e,t,n)};ne().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Mt(this,e,t,n,a)};ne().prototype.max=function(e,t){return this.throwIfDisposed(),_a(this,e,t)};ne().prototype.maximum=function(e){return this.throwIfDisposed(),br(this,e)};ne().prototype.mean=function(e,t){return this.throwIfDisposed(),_t(this,e,t)};ne().prototype.min=function(e,t){return this.throwIfDisposed(),mc(this,e,t)};ne().prototype.minimum=function(e){return this.throwIfDisposed(),Ju(this,e)};ne().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Zv(this,e,t)};ne().prototype.mod=function(e){return this.throwIfDisposed(),Jv(this,e)};ne().prototype.mul=function(e){return this.throwIfDisposed(),W(this,e)};ne().prototype.neg=function(){return this.throwIfDisposed(),kt(this)};ne().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Xu(this,e,t,n)};ne().prototype.notEqual=function(e){return this.throwIfDisposed(),gi(this,e)};ne().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),Cl(this,e,t,n)};ne().prototype.onesLike=function(){return this.throwIfDisposed(),na(this)};ne().prototype.pad=function(e,t){return this.throwIfDisposed(),ya(this,e,t)};ne().prototype.pool=function(e,t,n,a,r,s){return this.throwIfDisposed(),Qv(this,e,t,n,a,r,s)};ne().prototype.pow=function(e){return this.throwIfDisposed(),Rr(this,e)};ne().prototype.prelu=function(e){return this.throwIfDisposed(),ad(this,e)};ne().prototype.prod=function(e,t){return this.throwIfDisposed(),ew(this,e,t)};ne().prototype.reciprocal=function(){return this.throwIfDisposed(),aw(this)};ne().prototype.relu=function(){return this.throwIfDisposed(),Xe(this)};ne().prototype.relu6=function(){return this.throwIfDisposed(),Nf(this)};ne().prototype.reshapeAs=function(e){return this.throwIfDisposed(),B(this,e.shape)};ne().prototype.reshape=function(e){return this.throwIfDisposed(),B(this,e)};ne().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),nN(this,e,t,n)};ne().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),aN(this,e,t,n)};ne().prototype.reverse=function(e){return this.throwIfDisposed(),ga(this,e)};ne().prototype.rfft=function(){return this.throwIfDisposed(),id(this)};ne().prototype.round=function(){return this.throwIfDisposed(),Cf(this)};ne().prototype.rsqrt=function(){return this.throwIfDisposed(),_f(this)};ne().prototype.selu=function(){return this.throwIfDisposed(),Ef(this)};ne().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Es(this,e,t,n,a,r,s)};ne().prototype.sigmoid=function(){return this.throwIfDisposed(),ha(this)};ne().prototype.sign=function(){return this.throwIfDisposed(),rw(this)};ne().prototype.sin=function(){return this.throwIfDisposed(),$f(this)};ne().prototype.sinh=function(){return this.throwIfDisposed(),Af(this)};ne().prototype.slice=function(e,t){return this.throwIfDisposed(),He(this,e,t)};ne().prototype.softmax=function(e){return this.throwIfDisposed(),Qa(this,e)};ne().prototype.softplus=function(){return this.throwIfDisposed(),Io(this)};ne().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),nd(this,e,t)};ne().prototype.split=function(e,t){return this.throwIfDisposed(),Vn(this,e,t)};ne().prototype.sqrt=function(){return this.throwIfDisposed(),un(this)};ne().prototype.square=function(){return this.throwIfDisposed(),ut(this)};ne().prototype.squaredDifference=function(e){return this.throwIfDisposed(),Rf(this,e)};ne().prototype.squeeze=function(e){return this.throwIfDisposed(),$s(this,e)};ne().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof $e?[this,e]:[this,...e];return Rt(n,t)};ne().prototype.step=function(e){return this.throwIfDisposed(),So(this,e)};ne().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),sw(this,e,t,n,a,r,s,i,o)};ne().prototype.sub=function(e){return this.throwIfDisposed(),ce(this,e)};ne().prototype.sum=function(e,t){return this.throwIfDisposed(),ye(this,e,t)};ne().prototype.tan=function(){return this.throwIfDisposed(),iw(this)};ne().prototype.tanh=function(){return this.throwIfDisposed(),mi(this)};ne().prototype.tile=function(e){return this.throwIfDisposed(),Wn(this,e)};ne().prototype.toBool=function(){return this.throwIfDisposed(),le(this,"bool")};ne().prototype.toFloat=function(){return this.throwIfDisposed(),le(this,"float32")};ne().prototype.toInt=function(){return this.throwIfDisposed(),le(this,"int32")};ne().prototype.topk=function(e,t){return this.throwIfDisposed(),ow(this,e,t)};ne().prototype.transpose=function(e){return this.throwIfDisposed(),Ae(this,e)};ne().prototype.unique=function(e){return this.throwIfDisposed(),lw(this,e)};ne().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),Pf(this,e,t)};ne().prototype.unstack=function(e){return this.throwIfDisposed(),mt(this,e)};ne().prototype.where=function(e,t){return this.throwIfDisposed(),fn(e,this,t)};ne().prototype.zerosLike=function(){return this.throwIfDisposed(),qe(this)};var Sr=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Sr.prototype)}},Ha=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Ha.prototype)}},H=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,H.prototype)}},Oe=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Oe.prototype)}},mN=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,mN.prototype)}},fN=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 Ia={};function yw(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function ox(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>ox(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:ox(a))}}}function ld(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 Ia)i=Ia[s];else if(i=t[s],i==null)throw new H(`Unknown ${a}: ${e}. This may be due to one of the following reasons: + ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(vc,i)}var wz=L({sparseSegmentSum_:vz});function kz(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(kc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var Iz=L({stringNGrams_:kz});function Sz(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(Ic,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var Tz=L({stringSplit_:Sz});function Nz(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(Sc,r,a)}var Cz=L({stringToHashBucketFast_:Nz}),WT={fft:Uc,ifft:xl,rfft:Gc,irfft:cf},VT={hammingWindow:sL,hannWindow:RT,frame:MT,stft:uL},Nr={flipLeftRight:hL,grayscaleToRGB:fL,resizeNearestNeighbor:BT,resizeBilinear:zT,rotateWithOffset:bL,cropAndResize:cL,nonMaxSuppression:xL,nonMaxSuppressionAsync:CL,nonMaxSuppressionWithScore:EL,nonMaxSuppressionWithScoreAsync:$L,nonMaxSuppressionPadded:DL,nonMaxSuppressionPaddedAsync:ML,threshold:BL,transform:VL},Xv={bandPart:GL,gramSchmidt:jL,qr:KL},UT={absoluteDifference:ZL,computeWeightedLoss:Fr,cosineDistance:QL,hingeLoss:tz,huberLoss:az,logLoss:sz,meanSquaredError:oz,sigmoidCrossEntropy:pz,softmaxCrossEntropy:hz},GT={sparseFillEmptyRows:fz,sparseReshape:bz,sparseSegmentMean:xz,sparseSegmentSum:wz},HT={stringNGrams:Iz,stringSplit:Tz,stringToHashBucketFast:Cz},Dr=class extends PS{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 tT(e,t)}dispose(){this.iterations_!=null&&$e(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:ye(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(Dr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var vf=class extends Dr{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(()=>je(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:P(()=>je(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(ln(Y(o,this.epsilon)),ln(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)}};vf.className="Adadelta";vs(vf);var wf=class extends Dr{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,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)}};wf.className="Adagrad";vs(wf);var kf=class extends Dr{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=ye(t).variable(),this.accBeta2=ye(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(()=>je(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:P(()=>je(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(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)}};kf.className="Adam";vs(kf);var If=class extends Dr{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=ye(0).variable(),this.accBeta1=ye(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:je(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:je(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=cr(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)}};If.className="Adamax";vs(If);var Hc=class extends Dr{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=Zt(ye(-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)}};Hc.className="SGD";vs(Hc);var Sf=class extends Hc{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=ye(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(()=>je(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)}};Sf.className="Momentum";vs(Sf);var Tf=class extends Dr{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(()=>je(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:P(()=>je(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:P(()=>je(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),ln(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),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)}};Tf.className="RMSProp";vs(Tf);var Xr=class{static sgd(e){return new Hc(e)}static momentum(e,t,n=!1){return new Sf(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new Tf(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new kf(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new vf(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new If(e,t,n,a,r)}static adagrad(e,t=.1){return new wf(e,t)}},Bs={sgd:Xr.sgd,momentum:Xr.momentum,adadelta:Xr.adadelta,adagrad:Xr.adagrad,rmsprop:Xr.rmsprop,adamax:Xr.adamax,adam:Xr.adam},_z=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Yv(){return new Promise(e=>_z(()=>e()))}var N={};_e(N,{ERF_A1:()=>Uz,ERF_A2:()=>Gz,ERF_A3:()=>Hz,ERF_A4:()=>jz,ERF_A5:()=>qz,ERF_P:()=>Vz,PARALLELIZE_THRESHOLD:()=>Zv,RowPartitionType:()=>tr,SELU_SCALE:()=>qT,SELU_SCALEALPHA:()=>jT,applyActivation:()=>yf,assertAndGetBroadcastShape:()=>ut,assertAxesAreInnerMostDims:()=>RP,assertParamsConsistent:()=>Ez,assignToTypedArray:()=>Qz,axesAreInnerMostDims:()=>vv,calculateShapes:()=>NS,checkEinsumDimSizes:()=>sB,checkPadOnDimRoundingMode:()=>Tn,combineLocations:()=>YS,combineRaggedTensorToTensorShapes:()=>$z,complexWithEvenIndex:()=>Yz,complexWithOddIndex:()=>Zz,computeConv2DInfo:()=>Dc,computeConv3DInfo:()=>VS,computeDefaultPad:()=>tv,computeDilation2DInfo:()=>MM,computeOptimalWindowSize:()=>Mz,computeOutAndReduceShapes:()=>ZS,computeOutShape:()=>Az,computePool2DInfo:()=>WS,computePool3DInfo:()=>PM,convertConv2DDataFormat:()=>US,decodeEinsumEquation:()=>aB,eitherStridesOrDilationsAreOne:()=>pr,expandShapeToKeepDim:()=>ii,exponent:()=>tB,exponents:()=>eB,fromStringArrayToUint8:()=>NB,fromUint8ToStringArray:()=>TB,getAxesPermutation:()=>JS,getBroadcastDims:()=>IS,getComplexWithIndex:()=>Jz,getEinsumComputePath:()=>iB,getEinsumPermutation:()=>rB,getFusedBiasGradient:()=>bf,getFusedDyActivation:()=>gf,getImageCenter:()=>Pz,getInnerMostAxes:()=>MP,getPermuted:()=>Lz,getRaggedRank:()=>Dz,getReductionAxes:()=>Bt,getReshaped:()=>Oz,getReshapedPermuted:()=>zz,getRowPartitionTypesHelper:()=>Fz,getSliceBeginCoords:()=>Bz,getSliceSize:()=>Wz,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>pB,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>cB,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>dB,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>fB,getSparseReshapeInputOutputMismatchErrorMessage:()=>bB,getSparseReshapeInputOutputMultipleErrorMessage:()=>gB,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>hB,getSparseReshapeNegativeOutputDimErrorMessage:()=>mB,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>wB,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>yB,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>xB,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>vB,getUndoAxesPermutation:()=>wv,isIdentityPermutation:()=>oB,log:()=>JF,mergeRealAndImagArrays:()=>Kz,prepareAndValidate:()=>TS,prepareSplitSize:()=>uB,segment_util:()=>KT,shouldFuse:()=>xf,slice_util:()=>jt,splitRealAndImagArrays:()=>Xz,tupleValuesAreOne:()=>is,upcastType:()=>ma,validateDefaultValueShape:()=>Rz,validateInput:()=>Gx,validateUpdateShape:()=>Ux,warn:()=>Zr});function Ez(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 Az(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 Fz(e){let t={FIRST_DIM_SIZE:tr.FIRST_DIM_SIZE,VALUE_ROWIDS:tr.VALUE_ROWIDS,ROW_LENGTHS:tr.ROW_LENGTHS,ROW_SPLITS:tr.ROW_SPLITS,ROW_LIMITS:tr.ROW_LIMITS,ROW_STARTS:tr.ROW_STARTS},n=[];for(let a of e)if(a in t)n.push(t[a]);else break;return n}function Dz(e){return e.length===0?0:e[0]===tr.FIRST_DIM_SIZE?e.length-1:e.length}function Rz(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 Zv=30;function Mz(e){return e<=Zv?e:Eh(e,Math.floor(Math.sqrt(e)))}function Pz(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function Oz(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 zz(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,gk=",",bk="...";function aB(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(nB,"").length)/fy.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 ("${fy}").`);let[a,r]=e.split(fy);$(a.indexOf(bk)===-1,()=>`The ellipsis notation ("${bk}") is not supported yet.`);let s=a.split(gk),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 sB(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 iB(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 lB(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 pB(e){return`Received SparseTensor with denseShape[0] = 0 but + indices.shape[0] = ${e}`}function cB(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function dB(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function hB(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function mB(e,t){return`size ${e} must be non-negative, not ${t}`}function fB(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function gB(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 bB(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 yB(){return"segment ids must be >= 0"}function xB(){return"segment ids are not increasing"}function vB(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function wB(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var KT={};_e(KT,{collectGatherOpShapeInfo:()=>SB,computeOutShape:()=>IB,segOpComputeOptimalWindowSize:()=>kB});function kB(e,t){let n=!1,a;for(e<=Zv?(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 IB(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 NB(e){return e.map(t=>_c(t))}var dr={};_e(dr,{nonMaxSuppressionV3Impl:()=>PT,nonMaxSuppressionV4Impl:()=>OT,nonMaxSuppressionV5Impl:()=>LT,whereImpl:()=>TT});var XT={kernelName:$l,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,go(oe(n,"float32"),-1))}}},CB={kernelName:Fl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=lt(oe(n,"float32")),r=ln(pe(ye(1),a));return vt(he(e,r))}}}},_B={kernelName:Dl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ln(pe(lt(oe(n,"float32")),1));return he(e,a)}}}},EB={kernelName:fs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=e,i=Bt(n.shape,r);return i.length>0&&(s=fe(s,i)),B(s,n.shape)},b:()=>{let s=e,i=Bt(a.shape,r);return i.length>0&&(s=fe(s,i)),B(s,a.shape)}}}},AB={kernelName:fi,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},$B={kernelName:gi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>je(n)}}},FB={kernelName:uc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>je(n)}}},DB={kernelName:Pl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,ln(pe(ye(1),lt(oe(n,"float32")))))}}},RB={kernelName:Ol,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ln(Y(ye(1),lt(oe(n,"float32"))));return he(e,a)}}}},MB={kernelName:Bl,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=Bt(n.shape,r);return o.length>0&&(i=fe(i,o)),B(i,n.shape)},b:()=>{let s=Y(lt(n),lt(a)),i=vt(z(e,he(n,s))),o=Bt(a.shape,r);return o.length>0&&(i=fe(i,o)),B(i,a.shape)}}}},PB={kernelName:Ll,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,Y(lt(oe(n,"float32")),1))}}},OB={kernelName:zl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pe(ye(1),lt(oe(n,"float32"))))}}};function LB(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=B(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=B(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(pm,d,c);return p?B(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var zB=L({avgPool3dGrad_:LB}),BB={kernelName:pc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>zB(e,a,r,s,i,o)}}};function WB(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=B(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=B(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(um,p,d);return u?B(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var VB=L({avgPoolGrad_:WB}),UB={kernelName:bi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>VB(e,a,r,s,i)}}},GB={kernelName:yi,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>Ae(e,r,!1,!0),b:()=>Ae(a,e,!0,!1)}:!s&&i?{a:()=>Ae(e,r,!1,!1),b:()=>Ae(e,a,!0,!1)}:s&&!i?{a:()=>Ae(r,e,!1,!0),b:()=>Ae(a,e,!1,!1)}:{a:()=>Ae(r,e,!0,!0),b:()=>Ae(e,a,!0,!0)}}},HB={kernelName:Wl,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Bc(e,a,r)}}},jB={kernelName:qI,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)}}},qB={kernelName:xi,gradFunc:e=>({x:()=>e.clone()})},KB={kernelName:vi,gradFunc:e=>({x:()=>je(e)})},XB={kernelName:gs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>mn(Aa(Is(a,r),Ss(a,s)),e,je(e))}}},YB={kernelName:cc,inputsToSave:["x"],gradFunc:XT.gradFunc},ZB={kernelName:Vl,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 Ln(e,i,s).map(o=>()=>o)}},JB={kernelName:wi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return $(is(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>dv(a.shape,e,r,i,o,l),filter:()=>qv(a,e,r.shape,i,o,l)}}},QB={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:()=>qv(e,a,r.shape,s,i,o,l)}}};function eW(e,t,n,a,r){let s=e;e.rank===4&&(s=B(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=B(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(fm,o,l)}var tW=L({conv3DBackpropFilter_:eW}),nW={kernelName:dc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;$(is(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:()=>jS(i.shape,e,o,r,s),filter:()=>tW(i,e,o.shape,r,s)}}},aW={kernelName:Ii,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(vt(lf(oe(n,"float32"))),e)}}},rW={kernelName:Si,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(uf(oe(n,"float32")),e)}}},sW={kernelName:Ti,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=JS([r],a.rank),l=Km(e,r,s,!i);return o!=null&&(l=Ce(l,o)),l}}}},iW={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;$(is(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]}.`),$(pr(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:()=>DT(l.shape,e,u,r,s,o,i),filter:()=>FT(l,e,u.shape,r,s,o,i)}}},oW={kernelName:hc,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)}}},lW={kernelName:_i,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>O.runKernel(km,a)}}},uW={kernelName:jl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(fn(vt(lt(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},pW={kernelName:Ei,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},cW={kernelName:Kl,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>B(e,n.shape)}}},dW={kernelName:Xl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,fn(n))}}},hW={kernelName:Ai,gradFunc:e=>({x:()=>je(e)})},mW={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=Bt(n.shape,r);return i.length>0?B(fe(s,i),n.shape):s},b:()=>{let s=z(e,oe(n,"float32")),i=Bt(a.shape,r);i.length>0&&(s=B(fe(s,i),a.shape));let o=lt(a);return vt(he(s,oe(o,"float32")))}}}},fW={kernelName:Fi,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?ye(1):o,u=Bt(s.shape,r.shape),p=[];if(s.rank===1){for(let f=0;fs.rank===1?B(z(z(e,Pn(B(h,[1,1,1,s.shape[0]]),p)),l),r.shape):B(z(z(e,h),l),r.shape),mean:()=>{let f=z(z(h,ye(-1)),c);return s.rank===1&&(f=fe(f,u)),B(f,s.shape)},variance:()=>{let f=z(z(m,d),c);return s.rank===1&&(f=fe(f,u)),B(f,s.shape)},scale:()=>{let f=z(d,h),g=z(e,f);return s.rank===1&&(g=fe(g,u)),B(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=fe(f,u)),B(f,s.shape)}}}},gW={kernelName:Zl,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=yk(0,p),m=yk(p+1,p+1+c),f=xk([u,[l],d]),g=B(e,f),b=B(r,[l]),y=xk([[p],h,m]),x=Ce(g,y),w=mf(x,b,a.shape[i]),I=wv(y);return w=Ce(w,I),w},indices:()=>r}}};function yk(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>je(n),b:()=>je(a)}}},yW={kernelName:Ri,gradFunc:e=>({x:()=>oe(e,"float32")})},xW={kernelName:eu,gradFunc:e=>({x:()=>je(e)})},vW={kernelName:tu,gradFunc:e=>({x:()=>je(e)})},wW={kernelName:nu,gradFunc:e=>({x:()=>je(e)})},kW={kernelName:Mi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=Vn(a,0);return{x:()=>mn(s,e,z(e,r))}}},IW={kernelName:su,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,Y(n,1))}}},SW={kernelName:Pi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,oe(n,"float32"))}}},TW={kernelName:XI,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 NW(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(Cm,o,l)}var CW=L({localResponseNormalizationBackprop_:NW}),_W={kernelName:fc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>CW(a,r,e,s,i,o,l)}}};function YT(e,t,n,a){return t.rankz(e,oe(Qn(n,t),e.dtype))}}var vk={kernelName:Oi,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=YT(e,i,s,o);return{x:()=>l.x()}}},EW={kernelName:Li,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,oe(Is(n,a),"float32")),b:()=>z(e,oe(Ym(n,a),"float32"))}}};function AW(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=B(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),d=B(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),c=B(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(Em,m,f);return h?B(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var $W=L({maxPool3dGrad_:AW}),FW={kernelName:gc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>$W(e,a,r,s,i,o,l)}}};function DW(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(_m,p,d)}var RW=L({maxPoolGrad_:DW}),MW={kernelName:zi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>RW(e,a,r,s,i,o)}}},PW={kernelName:Bi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=$a(r,a.shape),i=ZS(a.shape,s)[1],o=mt(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=B(e,l);return he(z(u,Zn(a.shape,"float32")),o)}}}},OW={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=YT(e,i,s,o);return{x:()=>l.x()}}},LW={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(Vn(n,a),"float32"))}}},zW={kernelName:Ui,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>We(e,s,a.shape)}}},BW={kernelName:uu,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=Bt(n.shape,r);return s.length>0?B(fe(e,s),n.shape):e},b:()=>{let s=z(e,vt(Lu(he(n,a)))),i=Bt(a.shape,r);return i.length>0?B(fe(s,i),a.shape):s}}}},WW={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=Bt(n.shape,r);return i.length>0?B(fe(s,i),n.shape):s},b:()=>{let s=z(e,oe(n,"float32")),i=Bt(a.shape,r);return i.length>0?B(fe(s,i),a.shape):s}}}},VW={kernelName:pu,gradFunc:e=>({x:()=>vt(e)})},UW={kernelName:Hi,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>It(n.shape,"float32")}}},GW={kernelName:fu,gradFunc:e=>({x:()=>je(e)})},HW={kernelName:gu,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return ct(e,a).map(r=>()=>r)}},wk={kernelName:ji,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>We(e,s,a.shape)}}},jW={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,ye(1))))),p=Bt(s.shape,o);return p.length>0&&(u=fe(u,p)),B(u,s.shape)},b:()=>{let l=Vn(s,0),u=mn(l,ea(s),je(s)),p=z(e,z(r,u)),d=Bt(i.shape,o);return d.length>0&&(p=fe(p,d)),B(p,i.shape)}}}},qW={kernelName:Ki,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=Vn(n,0);return{x:()=>mn(r,e,z(e,a)),alpha:()=>{let s=mn(r,je(e),z(e,n)),i=Bt(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),B(s,a.shape)}}}};function KW(e,t,n){let a=e.shape.slice();a[n]=1;let r=B(t,a),s=Zp(e,n,!0,!1),i=Zp(e,n,!0,!0),o=z(s,i);return z(r,o)}function XW(e,t,n){let a=e.shape.length,r=a-n.length,s=N.getAxesPermutation(n,a),i=e;s!=null&&(i=Ce(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=KW(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=N.getUndoAxesPermutation(s);p=Ce(p,d)}return p}var YW={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:()=>XW(a,e,s)}}},ZW={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=Bt(n.shape,r);return i.length>0?B(fe(s,i),n.shape):s},b:()=>{let s=z(e,oe(n,"float32")),i=Bt(a.shape,r);i.length>0&&(s=B(fe(s,i),a.shape));let o=lt(a);return vt(he(s,oe(o,"float32")))}}}},JW={kernelName:bu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,vt(lt(n)))}}},QW={kernelName:Qi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(Ss(n,6),go(n));return{x:()=>z(e,oe(a,"float32"))}}},e4={kernelName:Yi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,oe(go(n),"float32"))}}},t4={kernelName:yu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B(e,n.shape)}}},n4={kernelName:Ji,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Pm,r,n)}}},a4={kernelName:Zi,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Mm,r,n)}}},r4={kernelName:eo,gradFunc:(e,t,n)=>{let{dims:a}=n,r=$a(a,e.shape);return{x:()=>fa(e,r)}}},s4={kernelName:to,gradFunc:e=>({x:()=>je(e)})},i4={kernelName:no,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>vt(he(e,z($r(n,1.5),2)))}}},o4={kernelName:vu,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>oe(je(n),"float32"),t:()=>z(e,oe(n,e.dtype)),e:()=>z(e,oe(Lc(n),e.dtype))}}},l4={kernelName:wu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=Vn(n,ye(0)),r=ye(jT),s=ye(qT),i=z(e,s),o=z(z(e,r),fn(oe(n,"float32")));return mn(a,i,o)}}}},u4={kernelName:ro,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(ye(1),n)))}}},p4={kernelName:Su,gradFunc:e=>({x:()=>je(e)})},c4={kernelName:ao,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Mc(oe(n,"float32")),e)}}},d4={kernelName:Iu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(qm(oe(n,"float32")),e)}}},h4={kernelName:ku,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=MS(a,r,s),u=[];for(let p=0;pba(e,u)}}},m4={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))}}},f4={kernelName:Tu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,ha(n))}}},kk={kernelName:Nu,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>Rc(e,a,r)}}},Ik={kernelName:Cu,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Ze(e,a)}}},g4={kernelName:so,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,z(ln(oe(n,"float32")),2))}}},b4={kernelName:wc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(oe(n,"float32"),2))}}},y4={kernelName:lo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ye(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},x4={kernelName:ys,gradFunc:e=>({x:()=>je(e)})},v4={kernelName:uo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=e,i=Bt(n.shape,r);return i.length>0&&(s=fe(s,i)),B(s,n.shape)},b:()=>{let s=e,i=Bt(a.shape,r);return i.length>0&&(s=fe(s,i)),B(vt(s),a.shape)}}}},w4={kernelName:io,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=B(e,r),o=z(i,Zn(a.shape,"float32"));return{x:()=>o}}},k4={kernelName:po,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,lt(Mc(n)))}}},I4={kernelName:co,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(ye(1),lt(n)),e)}}},S4={kernelName:bs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=je(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=wv(r);return{x:()=>Ce(e,s)}}},N4={kernelName:Fu,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Ft(e,r)}}},C4={kernelName:Tc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>_4(e,n)}}};function _4(e,t){let n=cr(t,je(t)),a=zu(e,n),r=Is(t,ye(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>je(e)})},A4=[XT,CB,_B,EB,AB,$B,FB,DB,RB,MB,PB,OB,BB,UB,GB,HB,jB,qB,KB,XB,YB,ZB,QB,JB,nW,aW,rW,sW,iW,oW,ZW,lW,uW,pW,cW,dW,mW,hW,fW,gW,bW,yW,xW,vW,wW,kW,IW,SW,TW,_W,vk,vk,EW,FW,MW,PW,OW,LW,zW,BW,WW,VW,UW,GW,HW,wk,wk,jW,qW,YW,JW,QW,e4,t4,n4,a4,r4,s4,i4,o4,l4,u4,p4,c4,d4,h4,m4,f4,kk,kk,Ik,Ik,g4,y4,b4,x4,v4,w4,k4,I4,S4,T4,N4,C4,E4];for(let e of A4)YI(e);J().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};J().prototype.acos=function(){return this.throwIfDisposed(),qx(this)};J().prototype.acosh=function(){return this.throwIfDisposed(),Kx(this)};J().prototype.add=function(e){return this.throwIfDisposed(),Y(this,e)};J().prototype.all=function(e,t){return this.throwIfDisposed(),Gm(this,e,t)};J().prototype.any=function(e,t){return this.throwIfDisposed(),Yp(this,e,t)};J().prototype.argMax=function(e){return this.throwIfDisposed(),ri(this,e)};J().prototype.argMin=function(e){return this.throwIfDisposed(),Xx(this,e)};J().prototype.asScalar=function(){return this.throwIfDisposed(),$(this.size===1,()=>"The array must have only 1 element."),B(this,[])};J().prototype.asType=function(e){return this.throwIfDisposed(),oe(this,e)};J().prototype.as1D=function(){return this.throwIfDisposed(),B(this,[this.size])};J().prototype.as2D=function(e,t){return this.throwIfDisposed(),B(this,[e,t])};J().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),B(this,[e,t,n])};J().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),B(this,[e,t,n,a])};J().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),B(this,[e,t,n,a,r])};J().prototype.asin=function(){return this.throwIfDisposed(),Yx(this)};J().prototype.asinh=function(){return this.throwIfDisposed(),Zx(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(),ev(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(),Rc(this,e,t)};J().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),ws(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(),ov(this)};J().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),Qt(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(),Hm(this,e,t,n,a,r,s)};J().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),jm(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(),Mc(this)};J().prototype.cosh=function(){return this.throwIfDisposed(),qm(this)};J().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),Zp(this,e,t,n)};J().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Km(this,e,t,n)};J().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),fv(this,e,t)};J().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),ks(this,e,t,n,a,r,s)};J().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),gv(this,e,t,n,a,r)};J().prototype.divNoNan=function(e){return this.throwIfDisposed(),bv(this,e)};J().prototype.div=function(e){return this.throwIfDisposed(),he(this,e)};J().prototype.dot=function(e){return this.throwIfDisposed(),yv(this,e)};J().prototype.elu=function(){return this.throwIfDisposed(),Pu(this)};J().prototype.equal=function(e){return this.throwIfDisposed(),Qn(this,e)};J().prototype.erf=function(){return this.throwIfDisposed(),xv(this)};J().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),kv(this,e,t)};J().prototype.exp=function(){return this.throwIfDisposed(),fn(this)};J().prototype.expandDims=function(e){return this.throwIfDisposed(),hn(this,e)};J().prototype.expm1=function(){return this.throwIfDisposed(),Iv(this)};J().prototype.fft=function(){return this.throwIfDisposed(),Uc(this)};J().prototype.flatten=function(){return this.throwIfDisposed(),B(this,[this.size])};J().prototype.floor=function(){return this.throwIfDisposed(),Lu(this)};J().prototype.floorDiv=function(e){return this.throwIfDisposed(),Um(this,e)};J().prototype.gather=function(e,t){return this.throwIfDisposed(),zu(this,e,t)};J().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Is(this,e)};J().prototype.greater=function(e){return this.throwIfDisposed(),Vn(this,e)};J().prototype.ifft=function(){return this.throwIfDisposed(),xl(this)};J().prototype.irfft=function(){return this.throwIfDisposed(),cf(this)};J().prototype.isFinite=function(){return this.throwIfDisposed(),Sv(this)};J().prototype.isInf=function(){return this.throwIfDisposed(),Tv(this)};J().prototype.isNaN=function(){return this.throwIfDisposed(),Nv(this)};J().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Pc(this,e)};J().prototype.lessEqual=function(e){return this.throwIfDisposed(),Ss(this,e)};J().prototype.less=function(e){return this.throwIfDisposed(),Ym(this,e)};J().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),Cv(this,e,t,n,a)};J().prototype.logSigmoid=function(){return this.throwIfDisposed(),_v(this)};J().prototype.logSoftmax=function(e){return this.throwIfDisposed(),Jm(this,e)};J().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),Qm(this,e,t)};J().prototype.log=function(){return this.throwIfDisposed(),ea(this)};J().prototype.log1p=function(){return this.throwIfDisposed(),Oc(this)};J().prototype.logicalAnd=function(e){return this.throwIfDisposed(),Aa(this,e)};J().prototype.logicalNot=function(){return this.throwIfDisposed(),Lc(this)};J().prototype.logicalOr=function(e){return this.throwIfDisposed(),ef(this,e)};J().prototype.logicalXor=function(e){return this.throwIfDisposed(),Ev(this,e)};J().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),Ae(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(),_a(this,e,t)};J().prototype.maximum=function(e){return this.throwIfDisposed(),cr(this,e)};J().prototype.mean=function(e,t){return this.throwIfDisposed(),Nt(this,e,t)};J().prototype.min=function(e,t){return this.throwIfDisposed(),Jp(this,e,t)};J().prototype.minimum=function(e){return this.throwIfDisposed(),Bu(this,e)};J().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),$v(this,e,t)};J().prototype.mod=function(e){return this.throwIfDisposed(),Fv(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(),Ou(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(),fl(this,e,t,n)};J().prototype.onesLike=function(){return this.throwIfDisposed(),ta(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(),Dv(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(),Wc(this,e)};J().prototype.prod=function(e,t){return this.throwIfDisposed(),Rv(this,e,t)};J().prototype.reciprocal=function(){return this.throwIfDisposed(),Ov(this)};J().prototype.relu=function(){return this.throwIfDisposed(),Xe(this)};J().prototype.relu6=function(){return this.throwIfDisposed(),af(this)};J().prototype.reshapeAs=function(e){return this.throwIfDisposed(),B(this,e.shape)};J().prototype.reshape=function(e){return this.throwIfDisposed(),B(this,e)};J().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),zT(this,e,t,n)};J().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),BT(this,e,t,n)};J().prototype.reverse=function(e){return this.throwIfDisposed(),fa(this,e)};J().prototype.rfft=function(){return this.throwIfDisposed(),Gc(this)};J().prototype.round=function(){return this.throwIfDisposed(),rf(this)};J().prototype.rsqrt=function(){return this.throwIfDisposed(),sf(this)};J().prototype.selu=function(){return this.throwIfDisposed(),of(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(),Lv(this)};J().prototype.sin=function(){return this.throwIfDisposed(),lf(this)};J().prototype.sinh=function(){return this.throwIfDisposed(),uf(this)};J().prototype.slice=function(e,t){return this.throwIfDisposed(),We(this,e,t)};J().prototype.softmax=function(e){return this.throwIfDisposed(),ja(this,e)};J().prototype.softplus=function(){return this.throwIfDisposed(),mo(this)};J().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Bc(this,e,t)};J().prototype.split=function(e,t){return this.throwIfDisposed(),Ln(this,e,t)};J().prototype.sqrt=function(){return this.throwIfDisposed(),ln(this)};J().prototype.square=function(){return this.throwIfDisposed(),lt(this)};J().prototype.squaredDifference=function(e){return this.throwIfDisposed(),df(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(),zv(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(),Bv(this)};J().prototype.tanh=function(){return this.throwIfDisposed(),si(this)};J().prototype.tile=function(e){return this.throwIfDisposed(),Pn(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(),Wv(this,e,t)};J().prototype.transpose=function(e){return this.throwIfDisposed(),Ce(this,e)};J().prototype.unique=function(e){return this.throwIfDisposed(),Vv(this,e)};J().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),mf(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(),je(this)};var kr=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,kr.prototype)}},La=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,La.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)}},ZT=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,ZT.prototype)}},JT=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 Ia={};function Jv(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Wy(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Wy(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:Wy(a))}}}function jc(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 Ia)i=Ia[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 H(`${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 Ia?[o,l]=Ia.className:i in t&&([o,l]=t[i]),o==null)throw new H(`Unknown ${a}: ${i}. This may be due to one of the following reasons: +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 Ia?[o,l]=Ia.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(Ia))u[h]=Ia[h];for(let h of Object.keys(n))u[h]=n[h];let p=s.config;p.customObjects=u;let d=Object.assign({},Ia);for(let h of Object.keys(n))Ia[h]=n[h];ox(s.config);let c=l(o,s.config,n,r);return Ia=Object.assign({},d),c}else{let u=Object.assign({},Ia);for(let d of Object.keys(n))Ia[d]=n[d];let p=new o(s.config);return Ia=Object.assign({},u),p}}}function lV(e,t){return et?1:0}function Eh(e,t){return-1*lV(e,t)}function is(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function uV(e){if(e==null)throw new H(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function No(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new H(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function xw(e,t,n=0,a=1/0){return lr(n>=0),lr(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function en(e,t){Array.isArray(e)?(v.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>en(n,`element ${a+1} of ${t}`))):v.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${gN(e)}.`)}function gN(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>gN(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function pV(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 ml.set(n,1),n}else return e}var xV=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function kN(e){return!!e.match(xV)}function vV(e){return e===parseInt(e.toString(),10)}function os(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 Ya(e,t){if(t{if(e.shape.length!==2)throw new H(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=ud(e,1);return lx(n,[1,t,1])})}function kV(e){let t=[os(e.shape)];return B(e,t)}function IV(e){if(e.rank<=1)throw new H(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],os(e.shape,1)];return B(e,t)}function ii(e,t,n){return O(()=>{switch(e.rank){case 1:return rd(e,t,n);case 2:return Ff(e,[t,0],[n,e.shape[1]]);case 3:return To(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return $l(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return He(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return He(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 H(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Oy(e,t,n){return O(()=>{switch(e.rank){case 1:return rd(e,t,n);case 2:return Ff(e,[0,t],[e.shape[0],n]);case 3:return To(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return $l(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new H(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Ah(e,t,n,a){return O(()=>{switch(e.rank){case 1:return rd(e,t,n);case 2:switch(a){case 1:return ii(e,t,n);case 2:return Oy(e,t,n);default:throw new H(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return ii(e,t,n);case 2:return To(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return Oy(e,t,n);default:throw new H(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return ii(e,t,n);case 2:return $l(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return $l(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return Oy(e,t,n);default:throw new H(`The axis is not within the rank of the tensor ${a}`)}default:throw new H(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function vw(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Qe(e,t)}function Kk(e,t){switch(e.rank){case 1:return _v([e,t]);case 2:return Ev([e,t],0);case 3:return $v([e,t],0);case 4:return Av([e,t],0);default:throw new H(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function lx(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new H(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return Wn(e,t)}function Yf(e,t=0,n=1,a,r){return Sf(e,t,n,a,r)}function dr(e,t,n,a){if(e.rank<2||t.rank<2)throw new Oe(`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 Oe(`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 Fl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?ux(e.rank,a,Za()):null,activation:n});{let r=e.shape.slice(),s=r.pop();e=B(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=B(Ae(t,p),[l,-1]);let d=[...r,...u],c=!1,h=!1;return B(Fl.matMul({a:e,b:t,transposeA:c,transposeB:h,bias:a?ux(e.rank,a,Za()):null,activation:n}),d)}}function IN(e,t,n){return O(()=>(Array.isArray(t)?t=Ke(t,"int32"):t=le(t,"int32"),Zu(e,t,n)))}function pd(e){return W(e,e)}function ux(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new H(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?B(t,[1,a[0],1,1,1]):B(t,[1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?B(t,[1,1,1,1,a[0]]):B(t,[1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?B(t,[1,a[0],1,1]):B(t,[1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?B(t,[1,1,1,a[0]]):B(t,[1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?B(t,[1,a[0],1]):B(t,[1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?B(t,[1,1,a[0]]):B(t,[1].concat(a))}else if(e<3)return t;throw new H(`Unsupported input rank by biasAdd: ${t.rank}`)}function er(e,t,n){return O(()=>(n==null&&(n=Za()),Pt(n),Q(e,ux(e.rank,t,n))))}function TV(e,t=1){if(t!==1)throw new Oe(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Ku(e)}function SV(e){return O(()=>fe(e,Q(Lt(e),1)))}function TN(e,t,n,a){return O(()=>cw(e,t,n,a))}function NV(e){return O(()=>{let t=Q(.5,W(.2,e));return tn(t,0,1)})}function cd(e,t,n=!1){return n?e():t()}var CV=["fanIn","fanOut","fanAvg"],_V=["normal","uniform","truncatedNormal"];function EV(e){No(CV,"FanMode",e)}function $V(e){No(_V,"Distribution",e)}var Da=class extends se.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},ww=class extends Da{apply(e,t){return It(e,t)}};ww.className="Zeros";se.registerClass(ww);var Zf=class extends Da{apply(e,t){return Qn(e,t)}};Zf.className="Ones";se.registerClass(Zf);var kw=class extends Da{constructor(e){if(super(),typeof e!="object")throw new H(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new H(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return O(()=>W(ke(this.value),Qn(e,t)))}getConfig(){return{value:this.value}}};kw.className="Constant";se.registerClass(kw);var Iw=class extends Da{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 Qu(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Iw.className="RandomUniform";se.registerClass(Iw);var Tw=class extends Da{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 Oe(`randomNormal does not support dType ${t}.`);return Yf(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Tw.className="RandomNormal";se.registerClass(Tw);var Sw=class extends Da{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 Oe(`truncatedNormal 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}}};Sw.className="TruncatedNormal";se.registerClass(Sw);var Nw=class extends Da{constructor(e){super(),this.gain=e.gain!=null?e.gain:1}apply(e,t){return O(()=>{if(e.length!==2||e[0]!==e[1])throw new H("Identity matrix initializer can only be used for 2D square matrices.");return W(this.gain,yf(e[0]))})}getConfig(){return{gain:this.gain}}};Nw.className="Identity";se.registerClass(Nw);function AV(e,t="channelsLast"){let n,a;if(Pt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=os(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=os(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=os(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Gn=class extends Da{constructor(e){if(super(),e.scale<0)throw new H(`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,EV(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,$V(this.distribution),this.seed=e.seed}apply(e,t){let n=AV(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 Oe(`${this.getClassName()} does not support dType ${t}.`);return Mf(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Qu(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Gn.className="VarianceScaling";se.registerClass(Gn);var Jf=class extends Gn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Gn.className}};Jf.className="GlorotUniform";se.registerClass(Jf);var Qf=class extends Gn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Gn.className}};Qf.className="GlorotNormal";se.registerClass(Qf);var eg=class extends Gn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Gn.className}};eg.className="HeNormal";se.registerClass(eg);var tg=class extends Gn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Gn.className}};tg.className="HeUniform";se.registerClass(tg);var ng=class extends Gn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Gn.className}};ng.className="LeCunNormal";se.registerClass(ng);var ag=class extends Gn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Gn.className}};ag.className="LeCunNormal";se.registerClass(ag);var Cw=class extends Da{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 Oe("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return O(()=>{if(e.length<2)throw new Oe("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=Yf(n,0,1,"float32"),r=fw.gramSchmidt(a);return e[0]>e[1]&&(r=Ae(r)),W(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Cw.className="Orthogonal";se.registerClass(Cw);var Xk={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 Yk(e,t={}){return ld(e,se.SerializationMap.getMap().classNameMap,t,"initializer")}function Et(e){return yw(e)}function Tt(e){if(typeof e=="string"){let t=e in Xk?Xk[e]:e;if(t==="GlorotNormal")return new Qf;if(t==="GlorotUniform")return new Jf;if(t==="HeNormal")return new eg;if(t==="HeUniform")return new tg;if(t==="LeCunNormal")return new ng;if(t==="LeCunUniform")return new ag;{let n={};return n.className=t,n.config={},Yk(n)}}else return e instanceof Da?e:Yk(e)}function px(e){return Array.isArray(e)&&Array.isArray(e[0])}function lm(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function We(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new H(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function it(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new H(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function um(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 Zk="Variable",SN=class{constructor(e,t="float32",n=Zk,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=yN(),n=n==null?Zk:n,this.originalName=vN(n),this.name=wN(this.originalName),this.trainable_=a,this.constraint=r,this.val=uw(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),FV(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 FV(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function cx(e){return e.map(t=>t.read())}function _w(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||{}}},ja=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=yN(),s!=null&&(this.originalName=vN(s),this.name=wN(this.originalName)),this.rank=t.length}},DV=0,rg=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}}},RV=0,Ye=class extends se.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=RV++,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=Nr(n)+"_"+Kf(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 Ha(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new H(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return zn(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return zn(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Sr(`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 Sr(`Layer ${this.name} is not connected, no input to return.`);return zn(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new Sr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Sr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return zn(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=wt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=wt(this.inputSpec);if(e.length!==t.length)throw new H(`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 H(`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 H(`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 wt(e))s.push(i.shape);this.build(zn(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=wt(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=zn(o),this.activityRegularizer!=null)throw new Oe("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=PV(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 ja(l,u,this,wt(e),t,this.name,p)):o=new ja(l,i,this,wt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new Oe("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 Sr(`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 Sr(`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 Ha(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return um(this.weights)}build(e){this.built=!0}getWeights(e=!1){return cx(e?this.trainableWeights:this.weights)}setWeights(e){O(()=>{let t=this.weights;if(t.length!==e.length)throw new H(`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=cx(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=wt(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=wt(e);t=wt(t),n=wt(n),a=wt(a),r=lm(r),s=lm(s);let l=[],u=[],p=[];for(let d of o)l.push(d.sourceLayer),u.push(d.nodeIndex),p.push(d.tensorIndex);new rg({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=wt(e);let t=[];for(let n of e)t.push(n.shape);return zn(t)}function PV(e){return"float32"}function NN(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=pm.get(p),c;if(d==null){let m=zV(i,t);d=m.sorted,c=m.recipientCounts,pm.put(p,d),cm.put(p,c)}c={},r||Object.assign(c,cm.get(p));let h=new ti(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=Jk(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=Jk(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:WV(a)}}function WV(e){let t={};for(let n in e)t[n]=e[n].size;return t}function Jk(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 BV(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,LV);var _N={};Fe(_N,{maxNorm:()=>UV,minMaxNorm:()=>jV,nonNeg:()=>HV,unitNorm:()=>GV});function Ew(e,t){return O(()=>un(ye(W(e,e),t,!0)))}var dd=class extends se.Serializable{getConfig(){return{}}},$w=class extends dd{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 O(()=>{let t=Ew(e,this.axis),n=tn(t,0,this.maxValue);return W(e,fe(n,Q(Ht(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};$w.className="MaxNorm";se.registerClass($w);var Aw=class extends dd{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return O(()=>fe(e,Q(Ht(),Ew(e,this.axis))))}getConfig(){return{axis:this.axis}}};Aw.className="UnitNorm";se.registerClass(Aw);var Fw=class extends dd{apply(e){return Xe(e)}};Fw.className="NonNeg";se.registerClass(Fw);var Dw=class extends dd{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 O(()=>{let t=Ew(e,this.axis),n=Q(W(this.rate,tn(t,this.minValue,this.maxValue)),W(1-this.rate,t));return W(e,fe(n,Q(Ht(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Dw.className="MinMaxNorm";se.registerClass(Dw);var Qk={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Kt(e){return yw(e)}function eI(e,t={}){return ld(e,se.SerializationMap.getMap().classNameMap,t,"constraint")}function Xt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in Qk?Qk[e]:e,config:{}};return eI(t)}else return e instanceof dd?e:eI(e)}function UV(e){return new $w(e)}function GV(e){return new Aw(e)}function HV(){return new Fw}function jV(e){return new Dw(e)}var EN={};Fe(EN,{constant:()=>XV,glorotNormal:()=>nU,glorotUniform:()=>tU,heNormal:()=>aU,heUniform:()=>rU,identity:()=>QV,leCunNormal:()=>sU,leCunUniform:()=>iU,ones:()=>KV,orthogonal:()=>oU,randomNormal:()=>ZV,randomUniform:()=>YV,truncatedNormal:()=>JV,varianceScaling:()=>eU,zeros:()=>qV});function qV(){return new ww}function KV(){return new Zf}function XV(e){return new kw(e)}function YV(e){return new Iw(e)}function ZV(e){return new Tw(e)}function JV(e){return new Sw(e)}function QV(e){return new Nw(e)}function eU(e){return new Gn(e)}function tU(e){return new Jf(e)}function nU(e){return new Qf(e)}function aU(e){return new eg(e)}function rU(e){return new tg(e)}function sU(e){return new ng(e)}function iU(e){return new ag(e)}function oU(e){return new Cw(e)}var $N={};Fe($N,{Layer:()=>Ye,RNN:()=>xr,RNNCell:()=>bd,activation:()=>DG,add:()=>VG,alphaDropout:()=>SH,average:()=>UG,averagePooling1d:()=>W0,averagePooling2d:()=>B0,averagePooling3d:()=>V0,avgPool1d:()=>JG,avgPool2d:()=>eH,avgPool3d:()=>nH,avgPooling1d:()=>QG,avgPooling2d:()=>tH,avgPooling3d:()=>aH,batchNormalization:()=>XG,bidirectional:()=>bH,concatenate:()=>GG,conv1d:()=>TG,conv2d:()=>SG,conv2dTranspose:()=>NG,conv3d:()=>CG,conv3dTranspose:()=>_G,convLstm2d:()=>hH,convLstm2dCell:()=>mH,cropping2D:()=>$G,dense:()=>RG,depthwiseConv2d:()=>FG,dot:()=>KG,dropout:()=>MG,elu:()=>yG,embedding:()=>BG,flatten:()=>OG,gaussianDropout:()=>TH,gaussianNoise:()=>IH,globalAveragePooling1d:()=>rH,globalAveragePooling2d:()=>sH,globalMaxPool1d:()=>xH,globalMaxPool2d:()=>vH,globalMaxPooling1d:()=>w2,globalMaxPooling2d:()=>k2,gru:()=>oH,gruCell:()=>lH,input:()=>KN,inputLayer:()=>bG,layerNormalization:()=>YG,leakyReLU:()=>vG,lstm:()=>uH,lstmCell:()=>pH,masking:()=>NH,maxPool1d:()=>wH,maxPool2d:()=>kH,maxPooling1d:()=>I2,maxPooling2d:()=>T2,maxPooling3d:()=>iH,maximum:()=>HG,minimum:()=>jG,multiply:()=>qG,permute:()=>WG,prelu:()=>wG,reLU:()=>xG,repeatVector:()=>LG,reshape:()=>zG,rnn:()=>fH,separableConv2d:()=>EG,simpleRNN:()=>cH,simpleRNNCell:()=>dH,softmax:()=>kG,spatialDropout1d:()=>PG,stackedRNNCells:()=>gH,thresholdedReLU:()=>IG,timeDistributed:()=>yH,upSampling2d:()=>AG,zeroPadding2d:()=>ZG});async function es(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;sQ(this.totals[a],W(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:O(()=>{let a=W(fe(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),Qt(t[n])}))}},DN=class extends Rl{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 Na=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}`),Na.checkForDuplicate(t),Na.constructors[e]==null&&(Na.constructors[e]=[]),Na.constructors[e].push(t)}static checkForDuplicate(e){for(let t in Na.constructors)Na.constructors[+t].forEach(n=>{if(n===e)throw new H("Duplicate callback constructor.")})}static clear(){Na.constructors={}}static createCallbacks(e){let t=[];for(let n in Na.constructors){let a=+n;e>=a&&t.push(...Na.constructors[a])}return t.map(n=>new n)}};Na.constructors={};function PN(e,t,n,a,r,s,i,o,l){let u=new DN,p=[new uU,...Na.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new FN(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 Ka(e,t={},n=!1){return ld(e,se.SerializationMap.getMap().classNameMap,t,"layer",n)}function dm(e,t){return O(()=>{e.dtype!=="float32"&&(e=le(e,"float32"));let n=ye(pd(e),t,!0),a=$n(n.shape,Ht()),r=un(br(n,a));return fe(e,r)})}function Co(e,t){return O(()=>_t(pd(ce(t,e)),-1))}function sg(e,t){return O(()=>_t(Lt(ce(t,e)),-1))}function np(e,t){return O(()=>{let n=ce(e,t),a=tn(Lt(e),Ht(),Number.MAX_VALUE),r=Lt(fe(n,a));return W(100,_t(r,-1))})}function pU(e,t){return O(()=>{let n=tn(t,Ht(),Number.MAX_VALUE),a=ta(Q(1,n)),r=tn(e,Ht(),Number.MAX_VALUE),s=ta(Q(1,r));return _t(pd(ce(a,s)),-1)})}function cU(e,t){return O(()=>{let n=br(0,ce(1,W(e,t)));return _t(pd(n),-1)})}function dU(e,t){return O(()=>{let n=br(0,ce(1,W(e,t)));return _t(n,-1)})}function hU(e,t){return O(()=>{let n=ye(W(e,t),-1),a=_a(W(ce(1,e),t),-1);return br(0,Q(1,ce(a,n)))})}function mU(e,t){return O(()=>{let n=Math.log(2),a=ce(t,e),r=ce(Q(a,Io(W(-2,a))),n);return _t(r,-1)})}function fc(e,t,n=!1){return O(()=>{if(n)t=Qa(t);else{let a=ye(t,t.shape.length-1,!0);t=fe(t,a)}return t=tn(t,Ht(),1-Ht()),kt(ye(W(le(e,"float32"),ta(t)),t.shape.length-1))})}function hm(e,t,n=!1){return O(()=>{let a=le(Yu(kV(e)),"int32");t=tn(t,Ht(),1-Ht());let r=t.shape,s=B(Cl(a,r[r.length-1]),r);return fc(s,t,n)})}function fU(e,t){if(!v.arraysEqual(e.shape,t.shape))throw new H(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return O(()=>{let n=Xe(t),a=kt(Lt(t));return Q(ce(n,W(t,e)),Qc(gn(a)))})}function ig(e,t){return O(()=>{let n;return n=tn(t,Ht(),1-Ht()),n=ta(fe(n,ce(1,n))),_t(fU(e,n),-1)})}function gU(e,t){return O(()=>{let n=tn(e,Ht(),1),a=tn(t,Ht(),1);return ye(W(e,ta(fe(n,a))),-1)})}function bU(e,t){return O(()=>{let n=ta(Q(Ht(),t));return _t(ce(t,W(e,n)),-1)})}function Rw(e,t){return O(()=>{let n=dm(e,-1),a=dm(t,-1),r=W(n,a);return kt(ye(r,-1))})}var mm={meanSquaredError:Co,meanAbsoluteError:sg,meanAbsolutePercentageError:np,meanSquaredLogarithmicError:pU,squaredHinge:cU,hinge:dU,categoricalHinge:hU,logcosh:mU,categoricalCrossentropy:fc,sparseCategoricalCrossentropy:hm,binaryCrossentropy:ig,kullbackLeiblerDivergence:gU,poisson:bU,cosineProximity:Rw};function Ly(e){if(typeof e=="string"){if(e in mm)return mm[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 H(t)}else return e}function Mw(e,t){return O(()=>{let n=W(.5,na(t)),a=Xf(jn(t,n),e.dtype);return _t(ea(e,a),-1)})}function Pw(e,t){return O(()=>Xf(ea(hi(e,-1),hi(t,-1)),"float32"))}function ON(e,t){return O(()=>le(ye($a(ea(e,1),ea(t,1))),"float32"))}function yU(e,t){return O(()=>le(ye($a(ea(e,1),ea(t,0))),"float32"))}function xU(e,t){return O(()=>le(ye($a(ea(e,0),ea(t,1))),"float32"))}function LN(e,t){return O(()=>{let n=ON(e,t),a=xU(e,t),r=Q(n,a);return le(fn(jn(r,0),fe(n,r),0),"float32")})}function vU(e,t){return O(()=>{let n=ON(e,t),a=yU(e,t),r=Q(n,a);return le(fn(jn(r,0),fe(n,r),0),"float32")})}function zN(e,t){return ig(e,t)}function WN(e,t){return e.rank===t.rank&&(e=$s(e,[e.rank-1])),t=hi(t,-1),t.dtype!==e.dtype&&(t=le(t,e.dtype)),le(ea(e,t),"float32")}var wU=Co,kU=Co,IU=sg,TU=sg,SU=np,NU=np,Ow=fc,CU=Rw,BN=hm,fm={binaryAccuracy:Mw,categoricalAccuracy:Pw,precision:LN,categoricalCrossentropy:Ow,sparseCategoricalCrossentropy:BN,mse:wU,MSE:kU,mae:IU,MAE:TU,mape:SU,MAPE:NU,cosine:CU};function _U(e){if(typeof e=="string"&&e in fm)return fm[e];if(typeof e!="string"&&e!=null)return e;throw new H(`Unknown metric ${e}`)}function Fh(e){if(lr(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(mm))if(mm[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(fm))if(fm[n]===e){t=n;break}return t!==void 0?t:e.name}}function EU(e){let t={Adagrad:()=>Xs.adagrad(.01),Adadelta:()=>Xs.adadelta(1,.95,Ht()),Adam:()=>Xs.adam(.001,.9,.999,Ht()),Adamax:()=>Xs.adamax(.002,.9,.999,Ht(),0),RMSProp:()=>Xs.rmsprop(.001,.9,0,Ht()),SGD:()=>Xs.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 H(`Unknown Optimizer ${e}`)}function nI(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!dx(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 dx(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"||!dx(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!dx(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function $U(e,t,n,a=console.log){let r=FU(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)),gm(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 gm(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()];gm(o,t,n)}function RU(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;cb.name)}`);is(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 y=b.sourceLayer,x=b.nodeIndex,w=b.tensorIndex;this.outputLayers.push(y),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(w)}for(let b of this.inputs){let y=b.sourceLayer,x=b.nodeIndex,w=b.tensorIndex;lr(x===0,"input layer has >1 nodes"),lr(w===0,"input layer has >1 tensors"),this.inputLayers.push(y),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(w)}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 t={},n={},a={},r={},s={},i=[],o=(b,y,x,w,I,N)=>{(w==null||I==null||N==null)&&(w=b.sourceLayer,I=b.nodeIndex,N=b.tensorIndex);let _=w.inboundNodes[I];if(x.indexOf(_)!==-1)throw new Ha(`The tensor ${b.name} at layer "${w.name}" is part of a cycle.`);if(y.indexOf(_)!==-1)return;this.containerNodes.add(sr.nodeKey(w,I)),w.id in s||(s[w.id]=Object.keys(s).length),x.indexOf(_)===-1&&x.push(_);let $=_.inboundLayers.length;for(let A=0;A<$;A++){let M=_.inputTensors[A],D=_.inboundLayers[A],T=_.nodeIndices[A],P=_.tensorIndices[A];o(M,y,x,D,T,P)}for(y.push(_);x.indexOf(_)>=0;)x.splice(x.indexOf(_),1);i.push(_)},l=[],u=[];for(let b of this.outputs)o(b,l,u);let p=i.slice().reverse();for(let b of p){n[b.id]=b,b.id in t||(t[b.id]=0);let y=t[b.id],x=a[b.outboundLayer.id]==null?0:a[b.outboundLayer.id];y=Math.max(y,x),a[b.outboundLayer.id]=y,r[b.outboundLayer.id]=b.outboundLayer,t[b.id]=y;for(let w=0;wparseInt(b,10)).sort(Eh);this.layers=[];for(let b of h){let y=c[b];y.sort((x,w)=>{let I=s[x.id],N=s[w.id];return IN?1:0});for(let x of y)x instanceof sr&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=c,h=Object.keys(d).map(b=>parseInt(b,10)).sort(Eh);let m=this.inputs.slice(),f=[];for(let b of h)for(let y of d[b]){let x=y.outboundLayer;if(x!=null){for(let w of y.inputTensors)if(m.indexOf(w)===-1)throw new Ha(`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 y.outputTensors)m.push(w);f.push(x.name)}}this.nodesByDepth=d;let g=this.layers.map(b=>b.name);for(let b of g){let y=g.filter(x=>x===b).length;if(y!==1)throw new Ha(`The name "${b}" is used ${y} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new rg({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 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 H("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 H(`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 H(`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 H(`${s.length} of ${a} weights are not set: ${s}`)}_w(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${Lw}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=hx(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return O(()=>{e=wt(e);let n=new ti;for(let a=0;a{e=wt(e);let n;return t==null?n=bi(null,e.length):n=wt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=lm(e);if(t.length!==this.inputLayers.length)throw new H(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(Eh);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(Eh);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,b,y;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,w]=h[0];m.mask==null&&(m.mask=w),b=wt(p.call(x,m)),y=wt(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),b=wt(p.call(f,m)),y=wt(p.computeMask(f,g));if(p.activityRegularizer)throw new Oe("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(zn(b),y)}function l(f){let g=f.name,b=Ka(f,t.customObjects!=null?t.customObjects:{});b.setFastWeightInitDuringBuild(a),r[g]=b,f.inboundNodes.forEach(y=>{if(!(y instanceof Array))throw new H(`Corrupted configuration, expected array for nodeData: ${y}`);i(b,y)})}let u=t.name,p=t.layers;for(let f of p)l(f);for(;!uV(s);)for(let f of p){let g=r[f.name];if(g.name in s){let b=s[g.name];delete s[g.name];for(let y of b)o(g,y)}}let d=[],c=[],h=t.inputLayers;for(let f of h){let g=f[0],b=f[1],y=f[2];lr(g in r);let x=r[g].inboundNodes[b].outputTensors;d.push(x[y])}let m=t.outputLayers;for(let f of m){let g=f[0],b=f[1],y=f[2];lr(g in r);let x=r[g].inboundNodes[b].outputTensors;c.push(x[y])}return new e({inputs:d,outputs:c,name:u})}get stateful(){if(this._stateful)throw new H("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(){O(()=>{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 UN(e,t){return MU(e,t,"classWeight")}async function GN(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=O(()=>{if(e.shape.length===1)return cr(e);if(e.shape.length===2){if(e.shape[1]>1)return hi(e,1);if(e.shape[1]===1)return B(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());Me(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 PU(e,t){return W(e,t)}var OU=32;function HN(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=aI("input",e.inputNames,n),i=aI("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 aI(e,t,n){if(n instanceof $e)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 H(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function LU(e){if(e.length===3)throw new Oe("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function zU(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(rI(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=LU(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=MN(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=PN(p,d,n.epochs,null,null,WU(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;rI(n.validationData)?w=wt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):w=wt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?OU:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new Oe("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=BU(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=HN(e,u.value),c=p.concat(d),h=O(()=>r(c));if(Me(c),l===0)for(let f=0;fQ(s[f],W(m,g))),l>0&&Me(b)}Me(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 Yp(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>ii(a,t,n-t)):ii(e,t,n-t)}function zw(e,t){return O(()=>e==null?null:Array.isArray(e)?e.map(n=>zw(n,t)):IN(e,t.dtype==="int32"?t:le(t,"int32")))}function fx(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function UU(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 H("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"),b;g!=null&&(b=Ya(0,g)),i==null&&(i=1);let{callbackList:y,history:x}=PN(o,i,s,c,g,h,r,f,d);y.setModel(e),e.history=x,await y.onTrainBegin(),e.stopTraining_=!1;for(let w=c;w{let M=_[$][0],D=_[$][1],T=ii(N,M,D-M);A.batch=$,A.size=D-M;let P=zw(n,T),U=t(P);for(let j=0;j0){if(g=!0,a.validationData.length===2)l=a.validationData[0],u=a.validationData[1];else throw a.validationData.length===3?new Oe("validationData including sample weights is not supported yet."):new H(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${a.validationData} is invalid.`);let $=!0,A=await e.standardizeUserData(l,u,null,null,$,h);p=A[0],d=A[1],b=p.concat(d)}else if(a.validationSplit!=null&&a.validationSplit>0&&a.validationSplit<1){g=!0;let $=Math.floor(r[0].shape[0]*(1-a.validationSplit)),A=r[0].shape[0];p=Yp(r,$,A),i=r,r=Yp(r,0,$),d=Yp(s,$,A),o=s,s=Yp(s,0,$),b=p.concat(d)}else a.validationSteps!=null&&(g=!0);let y=r.concat(s).concat(c);e.checkTrainableWeightsConsistency();let x=e.makeTrainFunction(),w=e.getDedupedMetricsNames(),I,N;g?(e.makeTestFunction(),I=e.testFunction,N=w.slice().concat(w.map($=>"val_"+$))):(I=null,b=[],N=w.slice());let _=MN(a.callbacks,a.yieldEvery);return await UU(e,x,y,w,h,a.epochs,a.verbose,_,I,b,a.shuffle,N,a.initialEpoch,null,null)}finally{e.isTraining=!1,Ga(r,t),Ga(s,n),Ga(i,t),Ga(o,n),Ga(p,l),Ga(d,u),c!=null&&Me(c)}}function jN(e){let t=[];e instanceof $e&&(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 $e)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 $e}function gx(e){return Array.isArray(e)}function sI(e){return!HU(e)&&!gx(e)}function iI(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(gx(e)&&e.length>0)i=!0;else if(sI(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new H(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(sI(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new H(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(gx(e)){if(e=e,e.length!==t.length)throw new H(`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 H(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=jN(s),n!=null)for(let i=0;i=0&&u!==p)throw new H(`${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 jU(e,t,n){let a=is(e.map(s=>s.shape[0]));a.sort();let r=is(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new H(`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 H(`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 H(`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 qU(e,t,n){let a=[Co,ig,fc];for(let r=0;r1)throw new H(`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 XU="layers-model",Fr=class extends sr{constructor(e){super(e),this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new H("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).");$U(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=EU(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Pr))throw new H("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 H(`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(Ly(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new H(`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=>Ly(s))}else{let s=Ly(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=KU(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])};si("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]===ig?["accuracy","acc"].indexOf(c)!==-1?p=Mw:["crossentropy","ce"].indexOf(c)!==-1&&(p=zN):this.lossFunctions[s]===hm?["accuracy","acc"].indexOf(c)!==-1?p=WN:["crossentropy","ce"].indexOf(c)!==-1&&(p=BN):["accuracy","acc"].indexOf(c)!==-1?p=Pw:["crossentropy","ce"].indexOf(c)!==-1&&(p=Ow);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=_U(c),u=l+Fh(c);let h;si(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;mx(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 zn(l)}finally{Ga(s[0],e),Ga(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),VU(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new H(`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 H(`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 H("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new ti;if(e instanceof $e&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new H(`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 H(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return O(()=>{let a=this.checkNumSamples(e);if(n)throw new Oe("Verbose predictLoop() is not implemented yet.");let r=fx(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=Yp(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return zn(s.map(i=>Qe(i,0)))})}predict(e,t={}){let n=jN(e);oI(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return mx(a),this.predictLoop(n,a)}finally{Ga(n,e)}}predictOnBatch(e){oI(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 Ha("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 H(`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=UN(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new Oe("Verbose mode is not implemented yet.");if(r!=null)throw new Oe("steps mode in testLoop() is not implemented yet");{let o=fx(s,n),l=Ke(Ya(0,s));for(let u=0;u1&&(r+=`_${jk(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=Q(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=>O(()=>{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;lNr(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]=Nr(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[Nr(Fh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Nr(Fh(e)));{let e={};for(let t in this.metrics)e[t]=Nr(Fh(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=gc(e.optimizer_config),n=Ka(t),a;if(typeof e.loss=="string")a=Js(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Js(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Js(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Js(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Js(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=Nn.getSaveHandlers(e);if(i.length===0)throw new H(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new H(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new H("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Nn.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:XU,generatedBy:`TensorFlow.js tfjs-layers v${Lw}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await Nn.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=Nn.concatenateArrayBuffers([n.data,o])}return this.userDefinedMetadata!=null&&(nI(this.userDefinedMetadata,this.name,!0),s.userDefinedMetadata=this.userDefinedMetadata),s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){nI(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Fr.className="Model";se.registerClass(Fr);var qN=class extends Fr{};qN.className="Functional";se.registerClass(qN);async function YU(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=gc(n),r=Ka(a,t);if(e.weightsManifest!=null){let s=await Nn.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),Me(s)}return r}async function ZU(e,t){if(t==null&&(t={}),typeof e=="string"){let n=Nn.getLoadHandlers(e,t);if(n.length===0)n.push(Nn.browserHTTPRequest(e,t));else if(n.length>1)throw new H(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return JU(e,void 0,t)}async function JU(e,t,n){if(n==null&&(n={}),e.load==null)throw new H("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=Ka(gc(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 H("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:u,optimizerWeights:p}=QU(a.weightData,a.weightSpecs);o.loadWeights(u,s),o.optimizer!=null&&p.length>0&&await o.optimizer.setWeights(p),Me(u),Me(p.map(d=>d.tensor))}return o}function QU(e,t){let n=Nn.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 Ml=class extends Fr{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:Kf("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 H(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof Ml||e instanceof Fr,n;if(t){if(n=e,n.outputs.length!==1)throw new H("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 H("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 H("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=CN({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 H(`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 H("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=NN(this.outputs[0])}this.inboundNodes=[],new rg({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:bi(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(it(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 Fr({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 Ha("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 Ha("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 Ha("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 Ha("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 H("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 Ml))throw new Oe(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=Ka(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new H("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 H("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}}};Ml.className="Sequential";se.registerClass(Ml);function eG(e){return new Fr(e)}function tG(e){return new Ml(e)}function nG(e,t){return t==null&&(t={}),ZU(e,t)}function KN(e){return CN(e)}function aG(e,t){Na.registerCallbackConstructor(e,t)}var qn=class extends se.Serializable{getConfig(){return{}}},XN=class extends qn{apply(e,t=1){return TV(e,t)}};XN.className="elu";se.registerClass(XN);var YN=class extends qn{apply(e){return Ef(e)}};YN.className="selu";se.registerClass(YN);var ZN=class extends qn{apply(e){return Xe(e)}};ZN.className="relu";se.registerClass(ZN);var JN=class extends qn{apply(e){return O(()=>Ju(6,Xe(e)))}};JN.className="relu6";se.registerClass(JN);var QN=class extends qn{apply(e){return e}};QN.className="linear";se.registerClass(QN);var e2=class extends qn{apply(e){return ha(e)}};e2.className="sigmoid";se.registerClass(e2);var t2=class extends qn{apply(e){return NV(e)}};t2.className="hardSigmoid";se.registerClass(t2);var n2=class extends qn{apply(e){return Io(e)}};n2.className="softplus";se.registerClass(n2);var a2=class extends qn{apply(e){return SV(e)}};a2.className="softsign";se.registerClass(a2);var r2=class extends qn{apply(e){return mi(e)}};r2.className="tanh";se.registerClass(r2);var Ww=class extends qn{apply(e,t=-1){return Qa(e,t)}};Ww.className="softmax";se.registerClass(Ww);var s2=class extends qn{apply(e,t=-1){return wf(e,t)}};s2.className="logSoftmax";se.registerClass(s2);var i2=class extends qn{apply(e,t=1){return O(()=>W(ha(W(e,t)),e))}};i2.className="swish";se.registerClass(i2);var o2=class extends qn{apply(e){return O(()=>W(e,mi(Io(e))))}};o2.className="mish";se.registerClass(o2);function ds(e){return e.getClassName()}function zy(e,t={}){return ld(e,se.SerializationMap.getMap().classNameMap,t,"activation")}function hs(e){if(e==null){let t={};return t.className="linear",t.config={},zy(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},zy(t)}else return e instanceof qn?e:zy(e)}function Bw(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 l2=class extends se.Serializable{},hd=class extends l2{constructor(e){super(),Bw(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 O(()=>{let t=It([1]);return this.hasL1&&(t=Q(t,ye(W(this.l1,Lt(e))))),this.hasL2&&(t=Q(t,ye(W(this.l2,pd(e))))),B(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};hd.className="L1L2";se.registerClass(hd);function rG(e){return Bw(e),new hd({l1:e!=null?e.l1:null,l2:0})}function sG(e){return Bw(e),new hd({l2:e!=null?e.l2:null,l1:0})}var lI={l1l2:"L1L2"};function ht(e){return yw(e)}function uI(e,t={}){return ld(e,se.SerializationMap.getMap().classNameMap,t,"regularizer")}function St(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in lI?lI[e]:e,config:{}};return uI(t)}else return e instanceof l2?e:uI(e)}var Vw=class extends Ye{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=We(e);let n=Xe(e);return this.maxValue!=null&&(n=tn(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};Vw.className="ReLU";se.registerClass(Vw);var Uw=class extends Ye{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=We(e);return Jc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};Uw.className="LeakyReLU";se.registerClass(Uw);var Gw=class extends Ye{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=Tt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=St(e.alphaRegularizer),this.alphaConstraint=Xt(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 H(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=it(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(Pt(t),t==="channelsFirst"?Ae(e,[0,2,3,1]):e))}function u2(e,t){return O(()=>(Pt(t),t==="channelsFirst"?Ae(e,[0,2,3,4,1]):e))}function iG(e,t,n,a=1,r="valid",s,i=1){return O(()=>{if(s==null&&(s=Za()),Pt(s),e.shape.length!==3)throw new H(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new H(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new H(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=Ae(e,[0,2,1])),r==="causal")throw new Oe("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=mf(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=er(o,n)),o})}function pI(e,t,n,a=[1,1],r="valid",s,i,o=null){return O(()=>{if(s==null&&(s=Za()),Pt(s),e.rank!==3&&e.rank!==4)throw new H(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new H(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=Kw(e,s);if(r==="causal")throw new Oe("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=Fl.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ae(l,[0,3,1,2])),l})}function oG(e,t,n,a=[1,1,1],r="valid",s,i){return O(()=>{if(s==null&&(s=Za()),Pt(s),e.rank!==4&&e.rank!==5)throw new H(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new H(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=u2(e,s);if(r==="causal")throw new Oe("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=Dv(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=er(o,n)),s==="channelsFirst"&&(o=Ae(o,[0,4,1,2,3])),o})}var Xw=class extends Ye{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Xw.verifyArgs(t),this.rank=e,en(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Oe(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Il(t.kernelSize,e,"kernelSize"),this.strides=Il(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,Pt(this.dataFormat),this.activation=hs(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=Tt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Xt(t.biasConstraint),this.biasRegularizer=St(t.biasRegularizer),this.activityRegularizer=St(t.activityRegularizer),this.dilationRate=Il(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new H(`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 H(`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 H(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(lr("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!xw(e.kernelSize,"number",1,3))throw new H(`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:ds(this.activation),useBias:this.useBias,biasInitializer:Et(this.biasInitializer),biasRegularizer:ht(this.biasRegularizer),activityRegularizer:ht(this.activityRegularizer),biasConstraint:Kt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},md=class extends Xw{constructor(e,t){super(e,t),this.kernel=null,md.verifyArgs(t),this.filters=t.filters,en(this.filters,"filters"),this.kernelInitializer=Tt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Xt(t.kernelConstraint),this.kernelRegularizer=St(t.kernelRegularizer)}build(e){e=it(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new H(`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 O(()=>{e=We(e);let n,a=this.bias==null?null:this.bias.read(),r=bN(this.activation.getClassName());if(r!=null&&this.rank===2)n=pI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=iG(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=pI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=oG(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Oe("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=it(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)}`)}},fd=class extends md{constructor(e){super(2,e),fd.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!xw(e.kernelSize,"number",1,2))throw new H(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};fd.className="Conv2D";se.registerClass(fd);var gd=class extends md{constructor(e){super(3,e),gd.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 H(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};gd.className="Conv3D";se.registerClass(gd);var Yw=class extends fd{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new H(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=it(e),e.length!==4)throw new H("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 H("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 O(()=>{let n=We(e);if(n.shape.length!==4)throw new H(`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=ur(o,d,u,this.padding),m=ur(l,c,p,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ae(n,[0,2,3,1]));let g=ff(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ae(g,[0,3,1,2])),this.bias!=null&&(g=er(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=it(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]=ur(t[a],o,s,this.padding),t[r]=ur(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Yw.className="Conv2DTranspose";se.registerClass(Yw);var Zw=class extends gd{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new H(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=it(e),e.length!==5)throw new H("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 H("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 O(()=>{let n=We(e);if(n.shape.length!==5)throw new H(`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],b=ur(l,m,d,this.padding),y=ur(u,f,c,this.padding),x=ur(p,g,h,this.padding),w=[r,b,y,x,this.filters];this.dataFormat!=="channelsLast"&&(n=Ae(n,[0,2,3,4,1]));let I=Rv(n,this.kernel.read(),w,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=Ae(I,[0,4,1,2,3])),this.bias!==null&&(I=er(I,this.bias.read(),this.dataFormat)),this.activation!==null&&(I=this.activation.apply(I)),I})}computeOutputShape(e){e=it(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]=ur(t[a],u,i,this.padding),t[r]=ur(t[r],p,o,this.padding),t[s]=ur(t[s],d,l,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Zw.className="Conv3DTranspose";se.registerClass(Zw);var p2=class extends md{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 H("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new H("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 H(`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=Tt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=St(t.depthwiseRegularizer),this.depthwiseConstraint=Xt(t.depthwiseConstraint),this.pointwiseInitializer=Tt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=St(t.pointwiseRegularizer),this.pointwiseConstraint=Xt(t.pointwiseConstraint)}build(e){if(e=it(e),e.length{e=We(e);let n;if(this.rank===1)throw new Oe("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ae(e,[0,2,3,1])),n=Es(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=er(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ae(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=Et(this.depthwiseInitializer),e.pointwiseInitializer=Et(this.pointwiseInitializer),e.depthwiseRegularizer=ht(this.depthwiseRegularizer),e.pointwiseRegularizer=ht(this.pointwiseRegularizer),e.depthwiseConstraint=Kt(this.depthwiseConstraint),e.pointwiseConstraint=Kt(this.pointwiseConstraint),e}};p2.className="SeparableConv";var Jw=class extends p2{constructor(e){super(2,e)}};Jw.className="SeparableConv2D";se.registerClass(Jw);var og=class extends md{constructor(e){super(1,e),og.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"&&!xw(e.kernelSize,"number",1,1))throw new H(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};og.className="Conv1D";se.registerClass(og);var Qw=class extends Ye{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 O(()=>{if(e=We(e),this.dataFormat==="channelsLast"){let n=Ah(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Ah(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Ah(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Ah(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}};Qw.className="Cropping2D";se.registerClass(Qw);var e0=class extends Ye{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,Pt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,bV(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 O(()=>{let n=We(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ae(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?Er.resizeNearestNeighbor(n,[r,s]):Er.resizeBilinear(n,[r,s]);return Ae(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?Er.resizeNearestNeighbor(n,[r,s]):Er.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}};e0.className="UpSampling2D";se.registerClass(e0);function lG(e,t,n=[1,1],a="valid",r,s){return O(()=>{r==null&&(r=Za()),Pt(r);let i=Kw(e,r);if(e.rank!==4)throw new H(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new H(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Ns(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=Ae(i,[0,3,1,2])),i})}var t0=class extends Xw{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=Tt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Xt(e.depthwiseConstraint),this.depthwiseRegularizer=St(e.depthwiseRegularizer)}build(e){if(e=it(e),e.length<4)throw new H(`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 H(`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 O(()=>{e=We(e);let n=lG(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=er(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=it(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=Xa(t,this.kernelSize[0],this.padding,this.strides[0]),s=Xa(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=Et(this.depthwiseInitializer),e.depthwiseRegularizer=ht(this.depthwiseRegularizer),e.depthwiseConstraint=Kt(this.depthwiseRegularizer),e}};t0.className="DepthwiseConv2D";se.registerClass(t0);function c2(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new H("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 d2(e,t,n,a=!1,r,s,i=!1,o=!1){return O(()=>{let l=t.shape.length;if(l<3)throw new H(`Input should be at least 3D, but is ${l}D.`);let u=[1,0].concat(Ya(2,l));if(t=Ae(t,u),s!=null)throw new Oe("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=mn(r,-1)),r=Ae(r,u)),a&&(t=ga(t,0),r!=null&&(r=ga(r,0)));let p=[],d,c=n,h=t.shape[0],m=mt(t),f;r!=null&&(f=mt(r));for(let b=0;be(y,c));if(r==null)d=x[0],c=x[1];else{let w=O(()=>{let I=f[b],N=ce(na(I),I),_=Q(W(x[0],I),W(c[0],N)),$=c.map((A,M)=>Q(W(x[1][M],I),W(A,N)));return{output:_,newStates:$}});d=w.output,c=w.newStates}o&&p.push(d)}let g;return o&&(g=Rt(p,1)),[d,g,c]})}var xr=class extends Ye{constructor(e){super(e);let t;if(e.cell==null)throw new H("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new pg({cells:e.cell}):t=e.cell,t.stateSize==null)throw new H("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 Ya(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){px(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 O(()=>{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 H(`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){O(()=>{if(!this.stateful)throw new Sr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new H("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)Me(this.states_),this.keptStates!=null&&(Me(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 H(`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()):Me(this.states_);for(let a=0;aQt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=c2(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 ja){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 O(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=We(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 H(`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=d2((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 O(()=>{let t=It(e.shape);return t=ye(t,[1,2]),t=ud(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?lx(t,[1,n]):t):this.cell.stateSize>1?[lx(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()===xr.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){let a=t.cell,r=Ka(a,n);return new e(Object.assign(t,{cell:r}))}};xr.className="RNN";se.registerClass(xr);var bd=class extends Ye{},lg=class extends bd{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,en(this.units,"units"),this.activation=hs(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=St(e.kernelRegularizer),this.recurrentRegularizer=St(e.recurrentRegularizer),this.biasRegularizer=St(e.biasRegularizer),this.kernelConstraint=Xt(e.kernelConstraint),this.recurrentConstraint=Xt(e.recurrentConstraint),this.biasConstraint=Xt(e.biasConstraint),this.dropout=Dl([1,cs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Dl([1,cs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=it(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 O(()=>{if(e=e,e.length!==2)throw new H(`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=dr(W(e,s),this.kernel.read()):r=dr(e,this.kernel.read()),this.bias!=null&&(r=er(r,this.bias.read())),i!=null&&(n=W(n,i));let o=Q(r,dr(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:ds(this.activation),useBias:this.useBias,kernelInitializer:Et(this.kernelInitializer),recurrentInitializer:Et(this.recurrentInitializer),biasInitializer:Et(this.biasInitializer),kernelRegularizer:ht(this.kernelRegularizer),recurrentRegularizer:ht(this.recurrentRegularizer),biasRegularizer:ht(this.biasRegularizer),activityRegularizer:ht(this.activityRegularizer),kernelConstraint:Kt(this.kernelConstraint),recurrentConstraint:Kt(this.recurrentConstraint),biasConstraint:Kt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}};lg.className="SimpleRNNCell";se.registerClass(lg);var n0=class extends xr{constructor(e){e.cell=new lg(e),super(e)}call(e,t){return O(()=>{this.cell.dropoutMask!=null&&(Me(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Me(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)}};n0.className="SimpleRNN";se.registerClass(n0);var ug=class extends bd{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 H("GRUCell does not support reset_after parameter set to true.");this.units=e.units,en(this.units,"units"),this.activation=hs(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=hs(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=St(e.kernelRegularizer),this.recurrentRegularizer=St(e.recurrentRegularizer),this.biasRegularizer=St(e.biasRegularizer),this.kernelConstraint=Xt(e.kernelConstraint),this.recurrentConstraint=Xt(e.recurrentConstraint),this.biasConstraint=Xt(e.biasConstraint),this.dropout=Dl([1,cs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Dl([1,cs([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=it(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 O(()=>{if(e=e,e.length!==2)throw new H(`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&&(Me(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Me(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)}};a0.className="GRU";se.registerClass(a0);var yd=class extends bd{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,en(this.units,"units"),this.activation=hs(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=hs(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Tt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=St(e.kernelRegularizer),this.recurrentRegularizer=St(e.recurrentRegularizer),this.biasRegularizer=St(e.biasRegularizer),this.kernelConstraint=Xt(e.kernelConstraint),this.recurrentConstraint=Xt(e.recurrentConstraint),this.biasConstraint=Xt(e.biasConstraint),this.dropout=Dl([1,cs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Dl([1,cs([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=it(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 Da{apply(i,o){let l=r.apply([s]),u=new Zf().apply([s]),p=r.apply([s*2]);return Kk(Kk(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 O(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new H(`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&&(Me(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Me(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)}};r0.className="LSTM";se.registerClass(r0);var pg=class extends bd{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 O(()=>{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{si(`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({},e,n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Ka(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 cx(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):TN(t(),n),o=()=>cd(i,t,a);return!r||r<=1?Qt(o().clone()):Array(r).fill(void 0).map(o).map(l=>Qt(l.clone()))}var uG=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&&(Me(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Me(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new H("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 O(()=>{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){O(()=>{if(!this.stateful)throw new Sr("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 H("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)Me(this.states_),this.keptStates!=null&&(Me(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 H(`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()):Me(this.states_);for(let s=0;sQt(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=Xa(l,a[0],r,s[0],i[0]),d=Xa(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,p,d]:[p,d,n]]}};h2.className="ConvRNN2D";var cg=class extends yd{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign({},e,{units:t})),this.filters=t,en(this.filters,"filters"),this.kernelSize=Il(n,2,"kernelSize"),this.kernelSize.forEach(o=>en(o,"kernelSize")),this.strides=Il(a||1,2,"strides"),this.strides.forEach(o=>en(o,"strides")),this.padding=r||"valid",xa(this.padding),this.dataFormat=s||"channelsLast",Pt(this.dataFormat),this.dilationRate=Il(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>en(o,"dilationRate"))}build(e){var t;e=it(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new H(`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 Da{apply(p,d){let c=l.apply([u]),h=Qn([u]),m=l.apply([u*2]);return vw([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 O(()=>{if(e.length!==3)throw new H(`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=(te,re,J)=>!re||!re[J]?te:W(re[J],te),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),b=l(r,h,3),y=3,[x,w,I,N]=Vn(this.kernel.read(),i,y),[_,$,A,M]=this.useBias?Vn(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,_,this.padding),p=this.inputConv(p,w,$,this.padding),d=this.inputConv(d,I,A,this.padding),c=this.inputConv(c,N,M,this.padding);let[D,T,P,U]=Vn(this.recurrentKernel.read(),i,y);m=this.recurrentConv(m,D),f=this.recurrentConv(f,T),g=this.recurrentConv(g,P),b=this.recurrentConv(b,U);let j=this.recurrentActivation.apply(Q(u,m)),q=this.recurrentActivation.apply(Q(p,f)),K=Q(W(q,s),W(j,this.activation.apply(Q(d,g)))),Y=W(this.recurrentActivation.apply(Q(c,b)),this.activation.apply(K));return[Y,Y,K]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=uG(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},n,a)}inputConv(e,t,n,a){let r=Dt(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?er(r,n,this.dataFormat):r}recurrentConv(e,t){return Dt(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};cg.className="ConvLSTM2DCell";se.registerClass(cg);var s0=class extends h2{constructor(e){let t=new cg(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}};s0.className="ConvLSTM2D";se.registerClass(s0);var dg=class extends Ye{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=We(e);if(0TN(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()}};dg.className="Dropout";se.registerClass(dg);var i0=class extends dg{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};i0.className="SpatialDropout1D";se.registerClass(i0);var o0=class extends Ye{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,en(this.units,"units"),this.activation=hs(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=Tt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=Tt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Xt(e.kernelConstraint),this.biasConstraint=Xt(e.biasConstraint),this.kernelRegularizer=St(e.kernelRegularizer),this.biasRegularizer=St(e.biasRegularizer),this.activityRegularizer=St(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=it(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=it(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return O(()=>{this.invokeCallHook(e,t);let n=We(e),a=bN(this.activation.getClassName()),r;return a!=null?r=dr(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=dr(n,this.kernel.read()),this.bias!=null&&(r=er(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:ds(this.activation),useBias:this.useBias,kernelInitializer:Et(this.kernelInitializer),biasInitializer:Et(this.biasInitializer),kernelRegularizer:ht(this.kernelRegularizer),biasRegularizer:ht(this.biasRegularizer),activityRegularizer:ht(this.activityRegularizer),kernelConstraint:Kt(this.kernelConstraint),biasConstraint:Kt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};o0.className="Dense";se.registerClass(o0);var l0=class extends Ye{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=it(e);for(let t of e.slice(1))if(t==null)throw new H(`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],os(e,1)]}call(e,t){return O(()=>{this.invokeCallHook(e,t);let n=We(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=We(e);return this.activation.apply(n)})}getConfig(){let e={activation:ds(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};u0.className="Activation";se.registerClass(u0);var p0=class extends Ye{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 O(()=>(e=We(e),wV(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};p0.className="RepeatVector";se.registerClass(p0);var c0=class extends Ye{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=We(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return B(n,r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};c0.className="Reshape";se.registerClass(c0);var d0=class extends Ye{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=Ya(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=it(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ae(We(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};d0.className="Permute";se.registerClass(d0);var h0=class extends Ye{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=We(e),a=-1;return dc(gi(n,this.maskValue),a)}call(e,t){return O(()=>{this.invokeCallHook(e,t);let n=We(e),a=-1,r=!0,s=dc(gi(n,this.maskValue),a,r);return W(n,le(s,n.dtype))})}};h0.className="Masking";se.registerClass(h0);var m0=class extends Ye{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(wt(e.inputLength))}this.inputDim=e.inputDim,en(this.inputDim,"inputDim"),this.outputDim=e.outputDim,en(this.outputDim,"outputDim"),this.embeddingsInitializer=Tt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=St(e.embeddingsRegularizer),this.activityRegularizer=St(e.activityRegularizer),this.embeddingsConstraint=Xt(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 O(()=>this.maskZero?(e=We(e),gi(e,qe(e))):null)}computeOutputShape(e){if(e=it(e),this.inputLength==null)return[...e,this.outputDim];let t=wt(this.inputLength);if(t.length!==e.length-1)throw new H(`"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=We(e);n.dtype!=="int32"&&(n=Xf(n,"int32"));let a=IN(this.embeddings.read(),B(n,[n.size]));return B(a,it(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Et(this.embeddingsInitializer),embeddingsRegularizer:ht(this.embeddingsRegularizer),activityRegularizer:ht(this.activityRegularizer),embeddingsConstraint:Kt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};m0.className="Embedding";se.registerClass(m0);var _o=class extends Ye{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Oe}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new H(`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&&is(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return O(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=cs(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=Ya(1,l).concat([0]);n.push(Ae(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=B(Ae(B(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(Ya(0,i-1));s=Ae(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 H("`mask` should be an Array");if(!Array.isArray(e))throw new H("`inputs` should be an Array");if(t.length!==e.length)throw new H(`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:mn(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 H("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return O(()=>vw(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new H("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 H("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new H("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new H(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return O(()=>{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 Oe("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 Oe("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 O(()=>{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 Oe("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 H(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new H(`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)=>Gp(r,e[s].shape.length)):a=[Gp(this.axes,t.shape.length),Gp(this.axes,n.shape.length)],this.normalize&&(t=dm(t,a[0]),n=dm(n,a[1])),pG(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[Gp(this.axes,e.length),Gp(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 Oe("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}};w0.className="Dot";se.registerClass(w0);var k0=class extends Ye{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 O(()=>{this.invokeCallHook(e,t);let n=We(e);return cd(()=>Q(Yf(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};k0.className="GaussianNoise";se.registerClass(k0);var I0=class extends Ye{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 O(()=>{this.invokeCallHook(e,t);let n=We(e);return this.rate>0&&this.rate<1?cd(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return W(n,Yf(n.shape,1,a))},()=>n,t.training||!1):n})}};I0.className="GaussianDropout";se.registerClass(I0);var T0=class extends Ye{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||We(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 O(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return cd(()=>{let a=We(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=Cs(Qu(n),this.rate);o=Xf(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,u=-l*i*this.rate,p=Q(W(a,o),W(Q(o,-1),i));return Q(W(p,l),u)},()=>We(e),t.training||!1)}return e})}};T0.className="AlphaDropout";se.registerClass(T0);function bc(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=Iv(e,t,n,a,r,s);else if(e.rank===3)i=Tv(e,t,n,a,r,s);else if(e.rank===4)i=Sv(e,t,n,a,r,s);else throw new Oe(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function cG(e,t,n,a,r=.001){return O(()=>{let s=td(e,a),i=s.mean,o=s.variance;return[bc(e,i,o,n,t,r),i,o]})}function dG(e,t,n,a,r=.001){return O(()=>{let s=td(e,a),i=s.mean,o=s.variance,l=[];for(let h of Ya(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=B(i,l),p=B(o,l),d=t==null?null:B(t,l),c=n==null?null:B(n,l);return[bc(e,u,p,c,d,r),i,o]})}function hG(e,t,n,a,r=.001){return v.arraysEqual(a.slice().sort(),Ya(0,e.rank-1))?cG(e,t,n,a,r):dG(e,t,n,a,r)}var S0=class extends Ye{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=Tt(e.betaInitializer||"zeros"),this.gammaInitializer=Tt(e.gammaInitializer||"ones"),this.movingMeanInitializer=Tt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=Tt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Xt(e.betaConstraint),this.gammaConstraint=Xt(e.gammaConstraint),this.betaRegularizer=St(e.betaRegularizer),this.gammaRegularizer=St(e.gammaRegularizer)}build(e){e=it(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new H(`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 O(()=>{let n=t.training==null?!1:t.training,a=We(e),r=a.shape,s=r.length,i=Ya(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=bi(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!v.arraysEqual(u,Ya(0,s).slice(0,s-1)),d=()=>{if(p){let g=B(this.movingMean.read(),l),b=B(this.movingVariance.read(),l),y=this.center?B(this.beta.read(),l):null,x=this.scale?B(this.gamma.read(),l):null;return bc(a,g,b,y,x,this.epsilon)}else return bc(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]=hG(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,b,y)=>{O(()=>{let x=1-y,w=g.read(),I=W(ce(w,b),x);g.write(ce(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:Et(this.betaInitializer),gammaInitializer:Et(this.gammaInitializer),movingMeanInitializer:Et(this.movingMeanInitializer),movingVarianceInitializer:Et(this.movingVarianceInitializer),betaRegularizer:ht(this.betaRegularizer),gammaRegularizer:ht(this.gammaRegularizer),betaConstraint:Kt(this.betaConstraint),gammaConstraint:Kt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};S0.className="BatchNormalization";se.registerClass(S0);var N0=class extends Ye{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=Tt(e.betaInitializer||"zeros"),this.gammaInitializer=Tt(e.gammaInitializer||"ones"),this.betaRegularizer=St(e.betaRegularizer),this.gammaRegularizer=St(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=it(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!==is(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=We(e),a=n.shape,r=a.length;return O(()=>{let{mean:s,variance:i}=td(n,this.axis,!0),o=bi(1,r);for(let h of this.axis)o[h]=a[h];let l=h=>h!=null&&h.shape.length!==r?B(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 H(`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 H("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=Za()),n!=="channelsLast"&&n!=="channelsFirst")throw new H(`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 C0=class extends Ye{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?Za():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 H(`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 H(`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 H(`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=it(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 O(()=>mG(We(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};C0.className="ZeroPadding2D";se.registerClass(C0);function hg(e,t,n,a,r,s){return O(()=>{Pt(r),xN(s),xa(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=Za()),s==null&&(s="max"),e=Kw(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Mt(e,t,n,o):i=ba(e,t,n,o),r==="channelsFirst"&&(i=Ae(i,[0,3,1,2])),i})}function m2(e,t,n,a,r,s){return O(()=>{Pt(r),xN(s),xa(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=Za()),s==null&&(s="max"),e=u2(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Yv(e,t,n,o):i=kv(e,t,n,o),r==="channelsFirst"&&(i=Ae(i,[0,4,1,2,3])),i})}var f2=class extends Ye{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 H(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(en(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 H(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);en(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,xa(this.padding),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){e=it(e);let t=Xa(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return O(()=>{this.invokeCallHook(e,t),e=ud(We(e),2);let n=this.poolingFunction(We(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return $s(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},_0=class extends f2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),xa(a),hg(e,t,n,a,r,"max")}};_0.className="MaxPooling1D";se.registerClass(_0);var E0=class extends f2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),xa(a),hg(e,t,n,a,r,"avg")}};E0.className="AveragePooling1D";se.registerClass(E0);var g2=class extends Ye{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 H(`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];en(this.poolSize,"poolSize"),en(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(this.dataFormat),xa(this.padding),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=it(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Xa(t,this.poolSize[0],this.padding,this.strides[0]),n=Xa(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 O(()=>(this.invokeCallHook(e,t),this.poolingFunction(We(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}},$0=class extends g2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),xa(a),hg(e,t,n,a,r,"max")}};$0.className="MaxPooling2D";se.registerClass($0);var A0=class extends g2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),xa(a),hg(e,t,n,a,r,"avg")}};A0.className="AveragePooling2D";se.registerClass(A0);var b2=class extends Ye{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 H(`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];en(this.poolSize,"poolSize"),en(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(this.dataFormat),xa(this.padding),this.inputSpec=[new zt({ndim:5})]}computeOutputShape(e){e=it(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=Xa(t,this.poolSize[0],this.padding,this.strides[0]),n=Xa(n,this.poolSize[1],this.padding,this.strides[1]),a=Xa(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 O(()=>(this.invokeCallHook(e,t),this.poolingFunction(We(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}},F0=class extends b2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),xa(a),m2(e,t,n,a,r,"max")}};F0.className="MaxPooling3D";se.registerClass(F0);var D0=class extends b2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Pt(r),xa(a),m2(e,t,n,a,r,"avg")}};D0.className="AveragePooling3D";se.registerClass(D0);var y2=class extends Ye{constructor(e){super(e),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Oe}},R0=class extends y2{constructor(e){super(e||{})}call(e,t){return O(()=>{let n=We(e);return _t(n,1)})}};R0.className="GlobalAveragePooling1D";se.registerClass(R0);var M0=class extends y2{constructor(e){super(e||{})}call(e,t){return O(()=>{let n=We(e);return _a(n,1)})}};M0.className="GlobalMaxPooling1D";se.registerClass(M0);var x2=class extends Ye{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Pt(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 Oe}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},P0=class extends x2{call(e,t){return O(()=>{let n=We(e);return this.dataFormat==="channelsLast"?_t(n,[1,2]):_t(n,[2,3])})}};P0.className="GlobalAveragePooling2D";se.registerClass(P0);var O0=class extends x2{call(e,t){return O(()=>{let n=We(e);return this.dataFormat==="channelsLast"?_a(n,[1,2]):_a(n,[2,3])})}};O0.className="GlobalMaxPooling2D";se.registerClass(O0);var v2=class extends Ye{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=Ka(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},L0=class extends v2{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=it(e),e.length<3)throw new H(`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=it(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 O(()=>(e=We(e),d2((n,a)=>[We(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};L0.className="TimeDistributed";se.registerClass(L0);function fG(e){No(gV,"BidirectionalMergeMode",e)}var gG="concat",z0=class extends v2{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Ka(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Ka(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?gG:e.mergeMode,fG(this.mergeMode),e.weights)throw new Oe("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()):zn(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=c2(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 H("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 Oe("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof ja;for(let l of s)if(l instanceof ja!==o)throw new H("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 O(()=>{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=vw([a,r]):this.mergeMode==="sum"?i=Q(a,r):this.mergeMode==="ave"?i=W(.5,Q(a,r)):this.mergeMode==="mul"?i=W(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){si(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),si(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=Ka(t.layer);if(delete t.layer,t.numConstants!=null)throw new Oe("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};z0.className="Bidirectional";se.registerClass(z0);function bG(e){return new tp(e)}function yG(e){return new Hw(e)}function xG(e){return new Vw(e)}function vG(e){return new Uw(e)}function wG(e){return new Gw(e)}function kG(e){return new qw(e)}function IG(e){return new jw(e)}function TG(e){return new og(e)}function SG(e){return new fd(e)}function NG(e){return new Yw(e)}function CG(e){return new gd(e)}function _G(e){return new Zw(e)}function EG(e){return new Jw(e)}function $G(e){return new Qw(e)}function AG(e){return new e0(e)}function FG(e){return new t0(e)}function DG(e){return new u0(e)}function RG(e){return new o0(e)}function MG(e){return new dg(e)}function PG(e){return new i0(e)}function OG(e){return new l0(e)}function LG(e){return new p0(e)}function zG(e){return new c0(e)}function WG(e){return new d0(e)}function BG(e){return new m0(e)}function VG(e){return new f0(e)}function UG(e){return new b0(e)}function GG(e){return new v0(e)}function HG(e){return new y0(e)}function jG(e){return new x0(e)}function qG(e){return new g0(e)}function KG(e){return new w0(e)}function XG(e){return new S0(e)}function YG(e){return new N0(e)}function ZG(e){return new C0(e)}function W0(e){return new E0(e)}function JG(e){return W0(e)}function QG(e){return W0(e)}function B0(e){return new A0(e)}function eH(e){return B0(e)}function tH(e){return B0(e)}function V0(e){return new D0(e)}function nH(e){return V0(e)}function aH(e){return V0(e)}function rH(e){return new R0(e)}function sH(e){return new P0(e)}function w2(e){return new M0(e)}function k2(e){return new O0(e)}function I2(e){return new _0(e)}function T2(e){return new $0(e)}function iH(e){return new F0(e)}function oH(e){return new a0(e)}function lH(e){return new ug(e)}function uH(e){return new r0(e)}function pH(e){return new yd(e)}function cH(e){return new n0(e)}function dH(e){return new lg(e)}function hH(e){return new s0(e)}function mH(e){return new cg(e)}function fH(e){return new xr(e)}function gH(e){return new pg(e)}function bH(e){return new z0(e)}function yH(e){return new L0(e)}var xH=w2,vH=k2,wH=I2,kH=T2;function IH(e){return new k0(e)}function TH(e){return new I0(e)}function SH(e){return new T0(e)}function NH(e){return new h0(e)}var S2={};Fe(S2,{MAPE:()=>OH,MSE:()=>WH,binaryAccuracy:()=>CH,binaryCrossentropy:()=>_H,categoricalAccuracy:()=>$H,categoricalCrossentropy:()=>AH,cosineProximity:()=>RH,mape:()=>LH,meanAbsoluteError:()=>MH,meanAbsolutePercentageError:()=>PH,meanSquaredError:()=>zH,mse:()=>BH,precision:()=>FH,recall:()=>DH,sparseCategoricalAccuracy:()=>EH});function CH(e,t){return Mw(e,t)}function _H(e,t){return zN(e,t)}function EH(e,t){return WN(e,t)}function $H(e,t){return Pw(e,t)}function AH(e,t){return Ow(e,t)}function FH(e,t){return LN(e,t)}function DH(e,t){return vU(e,t)}function RH(e,t){return Rw(e,t)}function MH(e,t){return sg(e,t)}function PH(e,t){return np(e,t)}function OH(e,t){return np(e,t)}function LH(e,t){return np(e,t)}function zH(e,t){return Co(e,t)}function WH(e,t){return Co(e,t)}function BH(e,t){return Co(e,t)}var N2={};Fe(N2,{modelFromJSON:()=>YU});var C2={};Fe(C2,{l1:()=>UH,l1l2:()=>VH,l2:()=>GH});function VH(e){return new hd(e)}function UH(e){return rG(e)}function GH(e){return sG(e)}var _2=class extends Rl{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof Fr))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Dh(e,t){return et}var E2=class extends _2{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new Oe("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=Dh:this.mode==="max"?this.monitorFunc=cI:this.monitor.indexOf("acc")!==-1?this.monitorFunc=cI:this.monitorFunc=Dh,this.monitorFunc===Dh&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Dh?1/0:-1/0}async onEpochEnd(e,t){await es(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 HH(e){return new E2(e)}var jH={earlyStopping:HH},qH=X();qH.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 dI;(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={}))})(dI||(dI={}));var U0={};function KH(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};U0[e]=n}function $2(e){return U0[e]}function XH(e){delete U0[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 Tn(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(d=>Tn(d,n,a,r));let u=Tn(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 Tn(e,t,n,a){let[r,s]=Zn(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[bm(r,o)]);return i!==void 0?t[bm(r,i)][s]:void 0}function YH(e,t,n){return t[bm(e,n.currentContextId)]}function pr(e,t){let[n,a,r]=Zn(e);return[bm(n,t&&t.currentContextId),a,r]}function bm(e,t){return t?`${e}-${t}`:e}function Zn(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 Cr(e){return e.kept?e:cr(e)}var A2={};Fe(A2,{json:()=>ZH});var ZH=[{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}]}],F2={};Fe(F2,{json:()=>JH});var JH=[{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}]}],D2={};Fe(D2,{json:()=>QH});var QH=[{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={};Fe(R2,{json:()=>e6});var e6=[{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"}]}],M2={};Fe(M2,{json:()=>t6});var t6=[{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"}]}],P2={};Fe(P2,{json:()=>n6});var n6=[{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={};Fe(O2,{json:()=>a6});var a6=[{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={};Fe(L2,{json:()=>r6});var r6=[{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"}]}],z2={};Fe(z2,{json:()=>s6});var s6=[{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"}]}],W2={};Fe(W2,{json:()=>i6});var i6=[{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"}]}],B2={};Fe(B2,{json:()=>o6});var o6=[{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}]}],V2={};Fe(V2,{json:()=>l6});var l6=[{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"}]}],U2={};Fe(U2,{json:()=>u6});var u6=[{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}]}],G2={};Fe(G2,{json:()=>p6});var p6=[{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"}]}],H2={};Fe(H2,{json:()=>c6});var c6=[{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}]}],j2={};Fe(j2,{json:()=>d6});var d6=[{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"}]}],q2={};Fe(q2,{json:()=>h6});var h6=[{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}]}],K2={};Fe(K2,{json:()=>m6});var m6=[{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={};Fe(X2,{json:()=>f6});var f6=[{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:[]}],hI=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[A2,F2,D2,R2,M2,P2,O2,L2,z2,W2,B2,V2,U2,G2,H2,j2,q2,K2,X2],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}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,b)=>{let[y,,x]=pr(g),w=i[y];if(w.outputs!=null){let I=w.outputs.indexOf(x);if(I!==-1){let N=`${y}:${I}`;f.inputNames[b]=N}}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]=pr(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]=pr(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=$2(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=bx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=bx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=Tx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Tx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=xx(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=xx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=Ix(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Ix(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=yx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=yx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=Nx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Nx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=kx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=kx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=Sx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Sx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=vx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=vx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=wx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=wx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=mI(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=mI(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]=pr(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:G0(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]=pr(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let b=`${h}:${g}`;p.inputNames[c]=b}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=pr(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 g6(e){let t=X().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 Y2(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):g6(e);return t?n:n.toLowerCase()}function bx(e,t,n,a=!1){let r=e[t];return r!=null?Y2(r.s,a):n}function yx(e,t,n){let a=e[t];return a?a.b:n}function xx(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 G0(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 mI(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function vx(e,t,n){let a=e[t];return a&&a.type?G0(a.type):n}function wx(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>G0(r)):n}function Z2(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function kx(e,t,n){let a=e[t];return a&&a.shape?Z2(a.shape):n}function Ix(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 Tx(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>Y2(s,a)):n}function Sx(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>Z2(r)):n}function Nx(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var b6=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 Tn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return Tn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return xx(this.node.rawAttrs,e,t);if(n.s!=null)return bx(this.node.rawAttrs,e,t);if(n.b!=null)return yx(this.node.rawAttrs,e,t);if(n.shape!=null)return kx(this.node.rawAttrs,e,t);if(n.type!=null)return vx(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Ix(this.node.rawAttrs,e,t);if(n.list.s!=null)return Tx(this.node.rawAttrs,e,t);if(n.list.shape!=null)return Sx(this.node.rawAttrs,e,t);if(n.list.b!=null)return Nx(this.node.rawAttrs,e,t);if(n.list.type!=null)return wx(this.node.rawAttrs,e,t)}return t}},pn={};Fe(pn,{OP_SCOPE_SUFFIX:()=>Qx,abs:()=>Lt,acos:()=>hv,acosh:()=>mv,add:()=>Q,addN:()=>rS,all:()=>hf,any:()=>dc,argMax:()=>hi,argMin:()=>fv,asin:()=>gv,asinh:()=>bv,atan:()=>yv,atan2:()=>xv,atanh:()=>vv,avgPool:()=>ba,avgPool3d:()=>kv,basicLSTMCell:()=>lS,batchNorm:()=>Ss,batchNorm2d:()=>Iv,batchNorm3d:()=>Tv,batchNorm4d:()=>Sv,batchToSpaceND:()=>Yc,bincount:()=>Nv,booleanMaskAsync:()=>US,broadcastArgs:()=>uS,broadcastTo:()=>ri,buffer:()=>ze,cast:()=>le,ceil:()=>Cv,clipByValue:()=>tn,clone:()=>cr,complex:()=>Dr,concat:()=>Qe,concat1d:()=>_v,concat2d:()=>Ev,concat3d:()=>$v,concat4d:()=>Av,conv1d:()=>mf,conv2d:()=>Dt,conv2dTranspose:()=>ff,conv3d:()=>Dv,conv3dTranspose:()=>Rv,cos:()=>Zc,cosh:()=>gf,cosineWindow:()=>Of,cumprod:()=>hc,cumsum:()=>bf,denseBincount:()=>cS,depthToSpace:()=>Mv,depthwiseConv2d:()=>Ns,diag:()=>dS,dilation2d:()=>Pv,div:()=>fe,divNoNan:()=>Ov,dot:()=>Lv,dropout:()=>cw,einsum:()=>hS,elu:()=>Ku,enclosingPowerOfTwo:()=>dw,equal:()=>ea,erf:()=>zv,euclideanNorm:()=>Vv,exp:()=>gn,expandDims:()=>mn,expm1:()=>Uv,eye:()=>yf,fft:()=>sd,fill:()=>$n,floor:()=>Yu,floorDiv:()=>df,fused:()=>Fl,gather:()=>Zu,gatherND:()=>qS,greater:()=>jn,greaterEqual:()=>Cs,ifft:()=>Al,imag:()=>qc,image:()=>Er,inTopKAsync:()=>KS,irfft:()=>Df,isFinite:()=>Gv,isInf:()=>Hv,isNaN:()=>jv,leakyRelu:()=>Jc,less:()=>xf,lessEqual:()=>_s,linalg:()=>fw,linspace:()=>yS,localResponseNormalization:()=>qv,log:()=>ta,log1p:()=>Qc,logSigmoid:()=>Kv,logSoftmax:()=>wf,logSumExp:()=>kf,logicalAnd:()=>$a,logicalNot:()=>ed,logicalOr:()=>If,logicalXor:()=>Xv,losses:()=>iN,lowerBound:()=>vS,matMul:()=>Re,max:()=>_a,maxPool:()=>Mt,maxPool3d:()=>Yv,maxPoolWithArgmax:()=>wS,maximum:()=>br,mean:()=>_t,meshgrid:()=>kS,min:()=>mc,minimum:()=>Ju,mirrorPad:()=>Zv,mod:()=>Jv,moments:()=>td,movingAverage:()=>GS,mul:()=>W,multiRNNCell:()=>IS,multinomial:()=>TS,neg:()=>kt,norm:()=>Xu,notEqual:()=>gi,oneHot:()=>Cl,ones:()=>Qn,onesLike:()=>na,op:()=>z,outerProduct:()=>SS,pad:()=>ya,pad1d:()=>NS,pad2d:()=>CS,pad3d:()=>_S,pad4d:()=>ES,pool:()=>Qv,pow:()=>Rr,prelu:()=>ad,print:()=>av,prod:()=>ew,raggedTensorToTensor:()=>$S,rand:()=>AS,randomGamma:()=>FS,randomNormal:()=>Sf,randomStandardNormal:()=>DS,randomUniform:()=>Qu,range:()=>El,real:()=>_l,reciprocal:()=>aw,relu:()=>Xe,relu6:()=>Nf,reshape:()=>B,reverse:()=>ga,reverse1d:()=>RS,reverse2d:()=>MS,reverse3d:()=>PS,reverse4d:()=>OS,rfft:()=>id,round:()=>Cf,rsqrt:()=>_f,scalar:()=>ke,scatterND:()=>HS,searchSorted:()=>Tf,selu:()=>Ef,separableConv2d:()=>Es,setdiff1dAsync:()=>LS,sigmoid:()=>ha,sign:()=>rw,signal:()=>sN,sin:()=>$f,sinh:()=>Af,slice:()=>He,slice1d:()=>rd,slice2d:()=>Ff,slice3d:()=>To,slice4d:()=>$l,softmax:()=>Qa,softplus:()=>Io,spaceToBatchND:()=>nd,sparse:()=>oN,sparseToDense:()=>jS,spectral:()=>rN,split:()=>Vn,sqrt:()=>un,square:()=>ut,squaredDifference:()=>Rf,squeeze:()=>$s,stack:()=>Rt,step:()=>So,stridedSlice:()=>sw,string:()=>lN,sub:()=>ce,sum:()=>ye,tan:()=>iw,tanh:()=>mi,tensor:()=>Bn,tensor1d:()=>Ke,tensor2d:()=>Ea,tensor3d:()=>Kc,tensor4d:()=>Fa,tensor5d:()=>zS,tensor6d:()=>WS,tile:()=>Wn,topk:()=>ow,transpose:()=>Ae,truncatedNormal:()=>Mf,unique:()=>lw,unsortedSegmentSum:()=>Pf,unstack:()=>mt,upperBound:()=>BS,variable:()=>uw,where:()=>fn,whereAsync:()=>pw,zeros:()=>It,zerosLike:()=>qe});var y6=(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`)}},x6=(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(Tn(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(Tn(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 fI(e){return!(typeof e=="number"||e.some(t=>t<0))}function Hp(e,t,n){let a=Cx(e,n),r=!fI(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=Cx(s.shape,a)}),!fI(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function Cx(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 v6=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=ke(0),Qt(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,Qt(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,mt(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 +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(Ia))u[h]=Ia[h];for(let h of Object.keys(n))u[h]=n[h];let p=s.config;p.customObjects=u;let d=Object.assign({},Ia);for(let h of Object.keys(n))Ia[h]=n[h];Wy(s.config);let c=l(o,s.config,n,r);return Ia=Object.assign({},d),c}else{let u=Object.assign({},Ia);for(let d of Object.keys(n))Ia[d]=n[d];let p=new o(s.config);return Ia=Object.assign({},u),p}}}function $4(e,t){return et?1:0}function ih(e,t){return-1*$4(e,t)}function ns(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function F4(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 bo(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 nr(n>=0),nr(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function Jt(e,t){Array.isArray(e)?(v.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>Jt(n,`element ${a+1} of ${t}`))):v.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${QT(e)}.`)}function QT(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>QT(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function D4(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 nl.set(n,1),n}else return e}var V4=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function sN(e){return!!e.match(V4)}function U4(e){return e===parseInt(e.toString(),10)}function as(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 Ua(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=Kc(e,1);return Vy(n,[1,t,1])})}function H4(e){let t=[as(e.shape)];return B(e,t)}function j4(e){if(e.rank<=1)throw new V(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],as(e.shape,1)];return B(e,t)}function Zs(e,t,n){return P(()=>{switch(e.rank){case 1:return Vc(e,t,n);case 2:return pf(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 yl(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return We(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return We(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 by(e,t,n){return P(()=>{switch(e.rank){case 1:return Vc(e,t,n);case 2:return pf(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 yl(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 lh(e,t,n,a){return P(()=>{switch(e.rank){case 1:return Vc(e,t,n);case 2:switch(a){case 1:return Zs(e,t,n);case 2:return by(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 by(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 yl(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return yl(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return by(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 ew(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 Nk(e,t){switch(e.rank){case 1:return lv([e,t]);case 2:return uv([e,t],0);case 3:return pv([e,t],0);case 4:return cv([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Vy(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 Pn(e,t)}function Cf(e,t=0,n=1,a,r){return nf(e,t,n,a,r)}function ir(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 vl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Uy(e.rank,a,Ga()):null,activation:n});{let r=e.shape.slice(),s=r.pop();e=B(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=B(Ce(t,p),[l,-1]);let d=[...r,...u],c=!1,h=!1;return B(vl.matMul({a:e,b:t,transposeA:c,transposeB:h,bias:a?Uy(e.rank,a,Ga()):null,activation:n}),d)}}function iN(e,t,n){return P(()=>(Array.isArray(t)?t=Ke(t,"int32"):t=oe(t,"int32"),zu(e,t,n)))}function Xc(e){return z(e,e)}function Uy(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?B(t,[1,a[0],1,1,1]):B(t,[1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?B(t,[1,1,1,1,a[0]]):B(t,[1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?B(t,[1,a[0],1,1]):B(t,[1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?B(t,[1,1,1,a[0]]):B(t,[1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?B(t,[1,a[0],1]):B(t,[1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?B(t,[1,1,a[0]]):B(t,[1].concat(a))}else if(e<3)return t;throw new V(`Unsupported input rank by biasAdd: ${t.rank}`)}function qa(e,t,n){return P(()=>(n==null&&(n=Ga()),Rt(n),Y(e,Uy(e.rank,t,n))))}function q4(e,t=1){if(t!==1)throw new Re(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Pu(e)}function K4(e){return P(()=>he(e,Y(Lt(e),1)))}function oN(e,t,n,a){return P(()=>Hv(e,t,n,a))}function X4(e){return P(()=>{let t=Y(.5,z(.2,e));return Qt(t,0,1)})}function Yc(e,t,n=!1){return n?e():t()}var Y4=["fanIn","fanOut","fanAvg"],Z4=["normal","uniform","truncatedNormal"];function J4(e){bo(Y4,"FanMode",e)}function Q4(e){bo(Z4,"Distribution",e)}var Da=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},tw=class extends Da{apply(e,t){return It(e,t)}};tw.className="Zeros";ne.registerClass(tw);var _f=class extends Da{apply(e,t){return Zn(e,t)}};_f.className="Ones";ne.registerClass(_f);var nw=class extends Da{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(ye(this.value),Zn(e,t)))}getConfig(){return{value:this.value}}};nw.className="Constant";ne.registerClass(nw);var aw=class extends Da{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 Wu(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};aw.className="RandomUniform";ne.registerClass(aw);var rw=class extends Da{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 Cf(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};rw.className="RandomNormal";ne.registerClass(rw);var sw=class extends Da{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 hf(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};sw.className="TruncatedNormal";ne.registerClass(sw);var iw=class extends Da{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,Xm(e[0]))})}getConfig(){return{gain:this.gain}}};iw.className="Identity";ne.registerClass(iw);function eV(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=as(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=as(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=as(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Bn=class extends Da{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,J4(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,Q4(this.distribution),this.seed=e.seed}apply(e,t){let n=eV(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 hf(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Wu(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 Ef=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Ef.className="GlorotUniform";ne.registerClass(Ef);var Af=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Af.className="GlorotNormal";ne.registerClass(Af);var $f=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};$f.className="HeNormal";ne.registerClass($f);var Ff=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Ff.className="HeUniform";ne.registerClass(Ff);var Df=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Df.className="LeCunNormal";ne.registerClass(Df);var Rf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Rf.className="LeCunNormal";ne.registerClass(Rf);var ow=class extends Da{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=Cf(n,0,1,"float32"),r=Xv.gramSchmidt(a);return e[0]>e[1]&&(r=Ce(r)),z(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};ow.className="Orthogonal";ne.registerClass(ow);var Ck={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 _k(e,t={}){return jc(e,ne.SerializationMap.getMap().classNameMap,t,"initializer")}function Ct(e){return Jv(e)}function St(e){if(typeof e=="string"){let t=e in Ck?Ck[e]:e;if(t==="GlorotNormal")return new Af;if(t==="GlorotUniform")return new Ef;if(t==="HeNormal")return new $f;if(t==="HeUniform")return new Ff;if(t==="LeCunNormal")return new Df;if(t==="LeCunUniform")return new Rf;{let n={};return n.className=t,n.config={},_k(n)}}else return e instanceof Da?e:_k(e)}function Gy(e){return Array.isArray(e)&&Array.isArray(e[0])}function zh(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Me(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 at(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 Ek="Variable",lN=class{constructor(e,t="float32",n=Ek,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=tN(),n=n==null?Ek:n,this.originalName=aN(n),this.name=rN(this.originalName),this.trainable_=a,this.constraint=r,this.val=Uv(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),tV(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 tV(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Hy(e){return e.map(t=>t.read())}function lw(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||{}}},za=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=tN(),s!=null&&(this.originalName=aN(s),this.name=rN(this.originalName)),this.rank=t.length}},nV=0,Mf=class{constructor(e,t){this.callArgs=t,this.id=nV++,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}}},aV=0,qe=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=aV++,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=Ir(n)+"_"+Nf(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 La(`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 Mn(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return Mn(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new kr(`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 kr(`Layer ${this.name} is not connected, no input to return.`);return Mn(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new kr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new kr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return Mn(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(Mn(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=Mn(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=rV(e),i=this.computeOutputShape(s),o,l=sV(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 za(l,u,this,xt(e),t,this.name,p)):o=new za(l,i,this,xt(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 kr(`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 kr(`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 La(`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 Hy(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=Hy(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=zh(r),s=zh(s);let l=[],u=[],p=[];for(let d of o)l.push(d.sourceLayer),u.push(d.nodeIndex),p.push(d.tensorIndex);new Mf({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 rV(e){e=xt(e);let t=[];for(let n of e)t.push(n.shape);return Mn(t)}function sV(e){return"float32"}function uN(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=Wh.get(p),c;if(d==null){let m=lV(i,t);d=m.sorted,c=m.recipientCounts,Wh.put(p,d),Vh.put(p,c)}c={},r||Object.assign(c,Vh.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=Ak(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=Ak(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:uV(a)}}function uV(e){let t={};for(let n in e)t[n]=e[n].size;return t}function Ak(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 pV(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,oV);var cN={};_e(cN,{maxNorm:()=>dV,minMaxNorm:()=>fV,nonNeg:()=>mV,unitNorm:()=>hV});function uw(e,t){return P(()=>ln(fe(z(e,e),t,!0)))}var Zc=class extends ne.Serializable{getConfig(){return{}}},pw=class extends Zc{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=uw(e,this.axis),n=Qt(t,0,this.maxValue);return z(e,he(n,Y(Gt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};pw.className="MaxNorm";ne.registerClass(pw);var cw=class extends Zc{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>he(e,Y(Gt(),uw(e,this.axis))))}getConfig(){return{axis:this.axis}}};cw.className="UnitNorm";ne.registerClass(cw);var dw=class extends Zc{apply(e){return Xe(e)}};dw.className="NonNeg";ne.registerClass(dw);var hw=class extends Zc{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=uw(e,this.axis),n=Y(z(this.rate,Qt(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}}};hw.className="MinMaxNorm";ne.registerClass(hw);var $k={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function qt(e){return Jv(e)}function Fk(e,t={}){return jc(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Kt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in $k?$k[e]:e,config:{}};return Fk(t)}else return e instanceof Zc?e:Fk(e)}function dV(e){return new pw(e)}function hV(e){return new cw(e)}function mV(){return new dw}function fV(e){return new hw(e)}var dN={};_e(dN,{constant:()=>yV,glorotNormal:()=>TV,glorotUniform:()=>SV,heNormal:()=>NV,heUniform:()=>CV,identity:()=>kV,leCunNormal:()=>_V,leCunUniform:()=>EV,ones:()=>bV,orthogonal:()=>AV,randomNormal:()=>vV,randomUniform:()=>xV,truncatedNormal:()=>wV,varianceScaling:()=>IV,zeros:()=>gV});function gV(){return new tw}function bV(){return new _f}function yV(e){return new nw(e)}function xV(e){return new aw(e)}function vV(e){return new rw(e)}function wV(e){return new sw(e)}function kV(e){return new iw(e)}function IV(e){return new Bn(e)}function SV(e){return new Ef(e)}function TV(e){return new Af(e)}function NV(e){return new $f(e)}function CV(e){return new Ff(e)}function _V(e){return new Df(e)}function EV(e){return new Rf(e)}function AV(e){return new ow(e)}var hN={};_e(hN,{Layer:()=>qe,RNN:()=>hr,RNNCell:()=>nd,activation:()=>nG,add:()=>cG,alphaDropout:()=>KG,average:()=>dG,averagePooling1d:()=>w0,averagePooling2d:()=>k0,averagePooling3d:()=>I0,avgPool1d:()=>wG,avgPool2d:()=>IG,avgPool3d:()=>TG,avgPooling1d:()=>kG,avgPooling2d:()=>SG,avgPooling3d:()=>NG,batchNormalization:()=>yG,bidirectional:()=>BG,concatenate:()=>hG,conv1d:()=>qU,conv2d:()=>KU,conv2dTranspose:()=>XU,conv3d:()=>YU,conv3dTranspose:()=>ZU,convLstm2d:()=>PG,convLstm2dCell:()=>OG,cropping2D:()=>QU,dense:()=>aG,depthwiseConv2d:()=>tG,dot:()=>bG,dropout:()=>rG,elu:()=>WU,embedding:()=>pG,flatten:()=>iG,gaussianDropout:()=>qG,gaussianNoise:()=>jG,globalAveragePooling1d:()=>CG,globalAveragePooling2d:()=>_G,globalMaxPool1d:()=>VG,globalMaxPool2d:()=>UG,globalMaxPooling1d:()=>r2,globalMaxPooling2d:()=>s2,gru:()=>AG,gruCell:()=>$G,input:()=>$N,inputLayer:()=>BU,layerNormalization:()=>xG,leakyReLU:()=>UU,lstm:()=>FG,lstmCell:()=>DG,masking:()=>XG,maxPool1d:()=>GG,maxPool2d:()=>HG,maxPooling1d:()=>i2,maxPooling2d:()=>o2,maxPooling3d:()=>EG,maximum:()=>mG,minimum:()=>fG,multiply:()=>gG,permute:()=>uG,prelu:()=>GU,reLU:()=>VU,repeatVector:()=>oG,rescaling:()=>YG,reshape:()=>lG,rnn:()=>LG,separableConv2d:()=>JU,simpleRNN:()=>RG,simpleRNNCell:()=>MG,softmax:()=>HU,spatialDropout1d:()=>sG,stackedRNNCells:()=>zG,thresholdedReLU:()=>jU,timeDistributed:()=>WG,upSampling2d:()=>eG,zeroPadding2d:()=>vG});async function Yr(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(),Zt(t[n])}))}},gN=class extends kl{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 bN(n,t))}var Na=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}`),Na.checkForDuplicate(t),Na.constructors[e]==null&&(Na.constructors[e]=[]),Na.constructors[e].push(t)}static checkForDuplicate(e){for(let t in Na.constructors)Na.constructors[+t].forEach(n=>{if(n===e)throw new V("Duplicate callback constructor.")})}static clear(){Na.constructors={}}static createCallbacks(e){let t=[];for(let n in Na.constructors){let a=+n;e>=a&&t.push(...Na.constructors[a])}return t.map(n=>new n)}};Na.constructors={};function xN(e,t,n,a,r,s,i,o,l){let u=new gN,p=[new FV,...Na.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new fN(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 Wa(e,t={},n=!1){return jc(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function Uh(e,t){return P(()=>{e.dtype!=="float32"&&(e=oe(e,"float32"));let n=fe(Xc(e),t,!0),a=gn(n.shape,Gt()),r=ln(cr(n,a));return he(e,r)})}function yo(e,t){return P(()=>Nt(Xc(pe(t,e)),-1))}function Pf(e,t){return P(()=>Nt(Lt(pe(t,e)),-1))}function Gu(e,t){return P(()=>{let n=pe(e,t),a=Qt(Lt(e),Gt(),Number.MAX_VALUE),r=Lt(he(n,a));return z(100,Nt(r,-1))})}function DV(e,t){return P(()=>{let n=Qt(t,Gt(),Number.MAX_VALUE),a=ea(Y(1,n)),r=Qt(e,Gt(),Number.MAX_VALUE),s=ea(Y(1,r));return Nt(Xc(pe(a,s)),-1)})}function RV(e,t){return P(()=>{let n=cr(0,pe(1,z(e,t)));return Nt(Xc(n),-1)})}function MV(e,t){return P(()=>{let n=cr(0,pe(1,z(e,t)));return Nt(n,-1)})}function PV(e,t){return P(()=>{let n=fe(z(e,t),-1),a=_a(z(pe(1,e),t),-1);return cr(0,Y(1,pe(a,n)))})}function OV(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 Qp(e,t,n=!1){return P(()=>{if(n)t=ja(t);else{let a=fe(t,t.shape.length-1,!0);t=he(t,a)}return t=Qt(t,Gt(),1-Gt()),vt(fe(z(oe(e,"float32"),ea(t)),t.shape.length-1))})}function Gh(e,t,n=!1){return P(()=>{let a=oe(Lu(H4(e)),"int32");t=Qt(t,Gt(),1-Gt());let r=t.shape,s=B(fl(a,r[r.length-1]),r);return Qp(s,t,n)})}function LV(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)),Oc(fn(a)))})}function Of(e,t){return P(()=>{let n;return n=Qt(t,Gt(),1-Gt()),n=ea(he(n,pe(1,n))),Nt(LV(e,n),-1)})}function zV(e,t){return P(()=>{let n=Qt(e,Gt(),1),a=Qt(t,Gt(),1);return fe(z(e,ea(he(n,a))),-1)})}function BV(e,t){return P(()=>{let n=ea(Y(Gt(),t));return Nt(pe(t,z(e,n)),-1)})}function mw(e,t){return P(()=>{let n=Uh(e,-1),a=Uh(t,-1),r=z(n,a);return vt(fe(r,-1))})}var Hh={meanSquaredError:yo,meanAbsoluteError:Pf,meanAbsolutePercentageError:Gu,meanSquaredLogarithmicError:DV,squaredHinge:RV,hinge:MV,categoricalHinge:PV,logcosh:OV,categoricalCrossentropy:Qp,sparseCategoricalCrossentropy:Gh,binaryCrossentropy:Of,kullbackLeiblerDivergence:zV,poisson:BV,cosineProximity:mw};function yy(e){if(typeof e=="string"){if(e in Hh)return Hh[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 fw(e,t){return P(()=>{let n=z(.5,ta(t)),a=qc(Vn(t,n),e.dtype);return Nt(Qn(e,a),-1)})}function gw(e,t){return P(()=>qc(Qn(ri(e,-1),ri(t,-1)),"float32"))}function vN(e,t){return P(()=>oe(fe(Aa(Qn(e,1),Qn(t,1))),"float32"))}function WV(e,t){return P(()=>oe(fe(Aa(Qn(e,1),Qn(t,0))),"float32"))}function VV(e,t){return P(()=>oe(fe(Aa(Qn(e,0),Qn(t,1))),"float32"))}function wN(e,t){return P(()=>{let n=vN(e,t),a=VV(e,t),r=Y(n,a);return oe(mn(Vn(r,0),he(n,r),0),"float32")})}function UV(e,t){return P(()=>{let n=vN(e,t),a=WV(e,t),r=Y(n,a);return oe(mn(Vn(r,0),he(n,r),0),"float32")})}function kN(e,t){return Of(e,t)}function IN(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(Qn(e,t),"float32")}var GV=yo,HV=yo,jV=Pf,qV=Pf,KV=Gu,XV=Gu,bw=Qp,YV=mw,SN=Gh,jh={binaryAccuracy:fw,categoricalAccuracy:gw,precision:wN,categoricalCrossentropy:bw,sparseCategoricalCrossentropy:SN,mse:GV,MSE:HV,mae:jV,MAE:qV,mape:KV,MAPE:XV,cosine:YV};function ZV(e){if(typeof e=="string"&&e in jh)return jh[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function uh(e){if(nr(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(Hh))if(Hh[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(jh))if(jh[n]===e){t=n;break}return t!==void 0?t:e.name}}function JV(e){let t={Adagrad:()=>Bs.adagrad(.01),Adadelta:()=>Bs.adadelta(1,.95,Gt()),Adam:()=>Bs.adam(.001,.9,.999,Gt()),Adamax:()=>Bs.adamax(.002,.9,.999,Gt(),0),RMSProp:()=>Bs.rmsprop(.001,.9,0,Gt()),SGD:()=>Bs.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 Rk(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!jy(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 jy(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"||!jy(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!jy(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function QV(e,t,n,a=console.log){let r=tU(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)),qh(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 qh(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 nU(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()];qh(o,t,n)}function aU(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;cb.name)}`);ns(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 y=b.sourceLayer,x=b.nodeIndex,w=b.tensorIndex;this.outputLayers.push(y),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(w)}for(let b of this.inputs){let y=b.sourceLayer,x=b.nodeIndex,w=b.tensorIndex;nr(x===0,"input layer has >1 nodes"),nr(w===0,"input layer has >1 tensors"),this.inputLayers.push(y),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(w)}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 t={},n={},a={},r={},s={},i=[],o=(b,y,x,w,I,T)=>{(w==null||I==null||T==null)&&(w=b.sourceLayer,I=b.nodeIndex,T=b.tensorIndex);let C=w.inboundNodes[I];if(x.indexOf(C)!==-1)throw new La(`The tensor ${b.name} at layer "${w.name}" is part of a cycle.`);if(y.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 b of this.outputs)o(b,l,u);let p=i.slice().reverse();for(let b of p){n[b.id]=b,b.id in t||(t[b.id]=0);let y=t[b.id],x=a[b.outboundLayer.id]==null?0:a[b.outboundLayer.id];y=Math.max(y,x),a[b.outboundLayer.id]=y,r[b.outboundLayer.id]=b.outboundLayer,t[b.id]=y;for(let w=0;wparseInt(b,10)).sort(ih);this.layers=[];for(let b of h){let y=c[b];y.sort((x,w)=>{let I=s[x.id],T=s[w.id];return IT?1:0});for(let x of y)x instanceof Qa&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=c,h=Object.keys(d).map(b=>parseInt(b,10)).sort(ih);let m=this.inputs.slice(),f=[];for(let b of h)for(let y of d[b]){let x=y.outboundLayer;if(x!=null){for(let w of y.inputTensors)if(m.indexOf(w)===-1)throw new La(`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 y.outputTensors)m.push(w);f.push(x.name)}}this.nodesByDepth=d;let g=this.layers.map(b=>b.name);for(let b of g){let y=g.filter(x=>x===b).length;if(y!==1)throw new La(`The name "${b}" is used ${y} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new Mf({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 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}`)}lw(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${yw}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=qy(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=zh(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(ih);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(ih);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,b,y;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,w]=h[0];m.mask==null&&(m.mask=w),b=xt(p.call(x,m)),y=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),b=xt(p.call(f,m)),y=xt(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(Mn(b),y)}function l(f){let g=f.name,b=Wa(f,t.customObjects!=null?t.customObjects:{});b.setFastWeightInitDuringBuild(a),r[g]=b,f.inboundNodes.forEach(y=>{if(!(y instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${y}`);i(b,y)})}let u=t.name,p=t.layers;for(let f of p)l(f);for(;!F4(s);)for(let f of p){let g=r[f.name];if(g.name in s){let b=s[g.name];delete s[g.name];for(let y of b)o(g,y)}}let d=[],c=[],h=t.inputLayers;for(let f of h){let g=f[0],b=f[1],y=f[2];nr(g in r);let x=r[g].inboundNodes[b].outputTensors;d.push(x[y])}let m=t.outputLayers;for(let f of m){let g=f[0],b=f[1],y=f[2];nr(g in r);let x=r[g].inboundNodes[b].outputTensors;c.push(x[y])}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 rU(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 NN(e,t){return rU(e,t,"classWeight")}async function CN(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 sr(e);if(e.shape.length===2){if(e.shape[1]>1)return ri(e,1);if(e.shape[1]===1)return B(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 sU(e,t){return z(e,t)}var iU=32;function _N(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=Mk("input",e.inputNames,n),i=Mk("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 Mk(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 oU(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 lU(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(Pk(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=oU(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=yN(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=xN(p,d,n.epochs,null,null,uU(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;Pk(n.validationData)?w=xt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):w=xt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?iU: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=pU(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=_N(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(b)}$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 Rp(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>Zs(a,t,n-t)):Zs(e,t,n-t)}function xw(e,t){return P(()=>e==null?null:Array.isArray(e)?e.map(n=>xw(n,t)):iN(e,t.dtype==="int32"?t:oe(t,"int32")))}function Xy(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function dU(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"),b;g!=null&&(b=Ua(0,g)),i==null&&(i=1);let{callbackList:y,history:x}=xN(o,i,s,c,g,h,r,f,d);y.setModel(e),e.history=x,await y.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=xw(n,S),W=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],b=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=Rp(r,E,A),i=r,r=Rp(r,0,E),d=Rp(s,E,A),o=s,s=Rp(s,0,E),b=p.concat(d)}else a.validationSteps!=null&&(g=!0);let y=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,b=[],T=w.slice());let C=yN(a.callbacks,a.yieldEvery);return await dU(e,x,y,w,h,a.epochs,a.verbose,C,I,b,a.shuffle,T,a.initialEpoch,null,null)}finally{e.isTraining=!1,Oa(r,t),Oa(s,n),Oa(i,t),Oa(o,n),Oa(p,l),Oa(d,u),c!=null&&$e(c)}}function EN(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 mU(e){return e instanceof Te}function Yy(e){return Array.isArray(e)}function Ok(e){return!mU(e)&&!Yy(e)}function Lk(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(Yy(e)&&e.length>0)i=!0;else if(Ok(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(Ok(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(Yy(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=EN(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 fU(e,t,n){let a=ns(e.map(s=>s.shape[0]));a.sort();let r=ns(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 gU(e,t,n){let a=[yo,Of,Qp];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",Er=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).");QV(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=JV(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Dr))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(yy(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=>yy(s))}else{let s=yy(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=bU(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]===Of?["accuracy","acc"].indexOf(c)!==-1?p=fw:["crossentropy","ce"].indexOf(c)!==-1&&(p=kN):this.lossFunctions[s]===Gh?["accuracy","acc"].indexOf(c)!==-1?p=IN:["crossentropy","ce"].indexOf(c)!==-1&&(p=SN):["accuracy","acc"].indexOf(c)!==-1?p=gw:["crossentropy","ce"].indexOf(c)!==-1&&(p=bw);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=ZV(c),u=l+uh(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;Ky(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 Mn(l)}finally{Oa(s[0],e),Oa(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),cU(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 Re("Verbose predictLoop() is not implemented yet.");let r=Xy(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=Rp(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return Mn(s.map(i=>Ze(i,0)))})}predict(e,t={}){let n=EN(e);zk(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return Ky(a),this.predictLoop(n,a)}finally{Oa(n,e)}}predictOnBatch(e){zk(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 La("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=NN(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=Xy(s,n),l=Ke(Ua(0,s));for(let u=0;u1&&(r+=`_${Sk(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;lIr(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]=Ir(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[Ir(uh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Ir(uh(e)));{let e={};for(let t in this.metrics)e[t]=Ir(uh(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=ec(e.optimizer_config),n=Wa(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:yU,generatedBy:`TensorFlow.js tfjs-layers v${yw}`,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&&(Rk(this.userDefinedMetadata,this.name,!0),s.userDefinedMetadata=this.userDefinedMetadata),s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){Rk(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Er.className="Model";ne.registerClass(Er);var AN=class extends Er{};AN.className="Functional";ne.registerClass(AN);async function xU(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=ec(n),r=Wa(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 vU(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 wU(e,void 0,t)}async function wU(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=Wa(ec(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}=kU(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 kU(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 Il=class extends Er{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:Nf("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 Il||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=pN({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=uN(this.outputs[0])}this.inboundNodes=[],new Mf({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(at(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 La("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 La("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 La("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 La("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 Il))throw new Re(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=Wa(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}}};Il.className="Sequential";ne.registerClass(Il);function IU(e){return new Er(e)}function SU(e){return new Il(e)}function TU(e,t){return t==null&&(t={}),vU(e,t)}function $N(e){return pN(e)}function NU(e,t){Na.registerCallbackConstructor(e,t)}var Un=class extends ne.Serializable{getConfig(){return{}}},FN=class extends Un{apply(e,t=1){return q4(e,t)}};FN.className="elu";ne.registerClass(FN);var DN=class extends Un{apply(e){return of(e)}};DN.className="selu";ne.registerClass(DN);var RN=class extends Un{apply(e){return Xe(e)}};RN.className="relu";ne.registerClass(RN);var MN=class extends Un{apply(e){return P(()=>Bu(6,Xe(e)))}};MN.className="relu6";ne.registerClass(MN);var PN=class extends Un{apply(e){return e}};PN.className="linear";ne.registerClass(PN);var ON=class extends Un{apply(e){return ha(e)}};ON.className="sigmoid";ne.registerClass(ON);var LN=class extends Un{apply(e){return X4(e)}};LN.className="hardSigmoid";ne.registerClass(LN);var zN=class extends Un{apply(e){return mo(e)}};zN.className="softplus";ne.registerClass(zN);var BN=class extends Un{apply(e){return K4(e)}};BN.className="softsign";ne.registerClass(BN);var WN=class extends Un{apply(e){return si(e)}};WN.className="tanh";ne.registerClass(WN);var vw=class extends Un{apply(e,t=-1){return ja(e,t)}};vw.className="softmax";ne.registerClass(vw);var VN=class extends Un{apply(e,t=-1){return Jm(e,t)}};VN.className="logSoftmax";ne.registerClass(VN);var UN=class extends Un{apply(e,t=1){return P(()=>z(ha(z(e,t)),e))}};UN.className="swish";ne.registerClass(UN);var GN=class extends Un{apply(e){return P(()=>z(e,si(mo(e))))}};GN.className="mish";ne.registerClass(GN);function ls(e){return e.getClassName()}function xy(e,t={}){return jc(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function us(e){if(e==null){let t={};return t.className="linear",t.config={},xy(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},xy(t)}else return e instanceof Un?e:xy(e)}function ww(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 HN=class extends ne.Serializable{},Jc=class extends HN{constructor(e){super(),ww(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,Xc(e))))),B(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};Jc.className="L1L2";ne.registerClass(Jc);function CU(e){return ww(e),new Jc({l1:e!=null?e.l1:null,l2:0})}function _U(e){return ww(e),new Jc({l2:e!=null?e.l2:null,l1:0})}var Bk={l1l2:"L1L2"};function pt(e){return Jv(e)}function Wk(e,t={}){return jc(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Tt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in Bk?Bk[e]:e,config:{}};return Wk(t)}else return e instanceof HN?e:Wk(e)}var kw=class extends qe{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Me(e);let n=Xe(e);return this.maxValue!=null&&(n=Qt(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};kw.className="ReLU";ne.registerClass(kw);var Iw=class extends qe{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=Me(e);return Pc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};Iw.className="LeakyReLU";ne.registerClass(Iw);var Sw=class extends qe{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=at(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"?Ce(e,[0,2,3,1]):e))}function jN(e,t){return P(()=>(Rt(t),t==="channelsFirst"?Ce(e,[0,2,3,4,1]):e))}function EU(e,t,n,a=1,r="valid",s,i=1){return P(()=>{if(s==null&&(s=Ga()),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=Ce(e,[0,2,1])),r==="causal")throw new Re("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=Hm(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=qa(o,n)),o})}function Vk(e,t,n,a=[1,1],r="valid",s,i,o=null){return P(()=>{if(s==null&&(s=Ga()),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 Re("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=vl.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ce(l,[0,3,1,2])),l})}function AU(e,t,n,a=[1,1,1],r="valid",s,i){return P(()=>{if(s==null&&(s=Ga()),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=jN(e,s);if(r==="causal")throw new Re("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=hv(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=qa(o,n)),s==="channelsFirst"&&(o=Ce(o,[0,4,1,2,3])),o})}var Ew=class extends qe{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Ew.verifyArgs(t),this.rank=e,Jt(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=cl(t.kernelSize,e,"kernelSize"),this.strides=cl(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,ya(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Rt(this.dataFormat),this.activation=us(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=cl(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(nr("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:ls(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}},Qc=class extends Ew{constructor(e,t){super(e,t),this.kernel=null,Qc.verifyArgs(t),this.filters=t.filters,Jt(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=at(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=Me(e);let n,a=this.bias==null?null:this.bias.read(),r=eN(this.activation.getClassName());if(r!=null&&this.rank===2)n=Vk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=EU(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=Vk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=AU(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=at(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)}`)}},ed=class extends Qc{constructor(e){super(2,e),ed.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)}.`)}};ed.className="Conv2D";ne.registerClass(ed);var td=class extends Qc{constructor(e){super(3,e),td.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)}.`)}};td.className="Conv3D";ne.registerClass(td);var Aw=class extends ed{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=at(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=Me(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=ar(o,d,u,this.padding),m=ar(l,c,p,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ce(n,[0,2,3,1]));let g=jm(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ce(g,[0,3,1,2])),this.bias!=null&&(g=qa(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=at(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]=ar(t[a],o,s,this.padding),t[r]=ar(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Aw.className="Conv2DTranspose";ne.registerClass(Aw);var $w=class extends td{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=at(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=Me(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],b=ar(l,m,d,this.padding),y=ar(u,f,c,this.padding),x=ar(p,g,h,this.padding),w=[r,b,y,x,this.filters];this.dataFormat!=="channelsLast"&&(n=Ce(n,[0,2,3,4,1]));let I=mv(n,this.kernel.read(),w,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=Ce(I,[0,4,1,2,3])),this.bias!==null&&(I=qa(I,this.bias.read(),this.dataFormat)),this.activation!==null&&(I=this.activation.apply(I)),I})}computeOutputShape(e){e=at(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]=ar(t[a],u,i,this.padding),t[r]=ar(t[r],p,o,this.padding),t[s]=ar(t[s],d,l,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};$w.className="Conv3DTranspose";ne.registerClass($w);var qN=class extends Qc{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=at(e),e.length{e=Me(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=Ce(e,[0,2,3,1])),n=Ts(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=qa(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ce(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}};qN.className="SeparableConv";var Fw=class extends qN{constructor(e){super(2,e)}};Fw.className="SeparableConv2D";ne.registerClass(Fw);var Lf=class extends Qc{constructor(e){super(1,e),Lf.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)}.`)}};Lf.className="Conv1D";ne.registerClass(Lf);var Dw=class extends qe{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=Me(e),this.dataFormat==="channelsLast"){let n=lh(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return lh(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=lh(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return lh(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}};Dw.className="Cropping2D";ne.registerClass(Dw);var Rw=class extends qe{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,B4(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=Me(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ce(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?Nr.resizeNearestNeighbor(n,[r,s]):Nr.resizeBilinear(n,[r,s]);return Ce(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?Nr.resizeNearestNeighbor(n,[r,s]):Nr.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}};Rw.className="UpSampling2D";ne.registerClass(Rw);function $U(e,t,n=[1,1],a="valid",r,s){return P(()=>{r==null&&(r=Ga()),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=ks(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=Ce(i,[0,3,1,2])),i})}var Mw=class extends Ew{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=at(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=Me(e);let n=$U(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=qa(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=at(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=Va(t,this.kernelSize[0],this.padding,this.strides[0]),s=Va(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}};Mw.className="DepthwiseConv2D";ne.registerClass(Mw);function KN(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 XN(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(Ua(2,l));if(t=Ce(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=hn(r,-1)),r=Ce(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 b=0;be(y,c));if(r==null)d=x[0],c=x[1];else{let w=P(()=>{let I=f[b],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 hr=class extends qe{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 Wf({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 Ua(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Gy(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 kr("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;aZt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=KN(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 za){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=Me(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=XN((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=Kc(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Vy(t,[1,n]):t):this.cell.stateSize>1?[Vy(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()===hr.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){let a=t.cell,r=Wa(a,n);return new e(Object.assign(t,{cell:r}))}};hr.className="RNN";ne.registerClass(hr);var nd=class extends qe{},zf=class extends nd{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,Jt(this.units,"units"),this.activation=us(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=wl([1,os([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=wl([1,os([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=at(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=ir(z(e,s),this.kernel.read()):r=ir(e,this.kernel.read()),this.bias!=null&&(r=qa(r,this.bias.read())),i!=null&&(n=z(n,i));let o=Y(r,ir(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:ls(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({},e,t)}};zf.className="SimpleRNNCell";ne.registerClass(zf);var Pw=class extends hr{constructor(e){e.cell=new zf(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)}};Pw.className="SimpleRNN";ne.registerClass(Pw);var Bf=class extends nd{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,Jt(this.units,"units"),this.activation=us(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=us(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=wl([1,os([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=wl([1,os([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=at(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)}};Ow.className="GRU";ne.registerClass(Ow);var ad=class extends nd{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,Jt(this.units,"units"),this.activation=us(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=us(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=wl([1,os([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=wl([1,os([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=at(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 Da{apply(i,o){let l=r.apply([s]),u=new _f().apply([s]),p=r.apply([s*2]);return Nk(Nk(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)}};Lw.className="LSTM";ne.registerClass(Lw);var Wf=class extends nd{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({},e,n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Wa(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 Hy(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):oN(t(),n),o=()=>Yc(i,t,a);return!r||r<=1?Zt(o().clone()):Array(r).fill(void 0).map(o).map(l=>Zt(l.clone()))}var FU=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 kr("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;sZt(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=Va(l,a[0],r,s[0],i[0]),d=Va(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,p,d]:[p,d,n]]}};YN.className="ConvRNN2D";var Vf=class extends ad{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign({},e,{units:t})),this.filters=t,Jt(this.filters,"filters"),this.kernelSize=cl(n,2,"kernelSize"),this.kernelSize.forEach(o=>Jt(o,"kernelSize")),this.strides=cl(a||1,2,"strides"),this.strides.forEach(o=>Jt(o,"strides")),this.padding=r||"valid",ya(this.padding),this.dataFormat=s||"channelsLast",Rt(this.dataFormat),this.dilationRate=cl(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>Jt(o,"dilationRate"))}build(e){var t;e=at(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 Da{apply(p,d){let c=l.apply([u]),h=Zn([u]),m=l.apply([u*2]);return ew([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),b=l(r,h,3),y=3,[x,w,I,T]=Ln(this.kernel.read(),i,y),[C,E,A,R]=this.useBias?Ln(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,W]=Ln(this.recurrentKernel.read(),i,y);m=this.recurrentConv(m,F),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),b=this.recurrentConv(b,W);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,b)),this.activation.apply(q));return[K,K,q]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=FU(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return 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?qa(r,n,this.dataFormat):r}recurrentConv(e,t){return $t(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Vf.className="ConvLSTM2DCell";ne.registerClass(Vf);var zw=class extends YN{constructor(e){let t=new Vf(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}};zw.className="ConvLSTM2D";ne.registerClass(zw);var Uf=class extends qe{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=Me(e);if(0oN(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()}};Uf.className="Dropout";ne.registerClass(Uf);var Bw=class extends Uf{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};Bw.className="SpatialDropout1D";ne.registerClass(Bw);var Ww=class extends qe{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,Jt(this.units,"units"),this.activation=us(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=at(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=at(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Me(e),a=eN(this.activation.getClassName()),r;return a!=null?r=ir(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=ir(n,this.kernel.read()),this.bias!=null&&(r=qa(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:ls(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}};Ww.className="Dense";ne.registerClass(Ww);var Vw=class extends qe{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=at(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],as(e,1)]}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Me(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Me(e);return this.activation.apply(n)})}getConfig(){let e={activation:ls(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};Uw.className="Activation";ne.registerClass(Uw);var Gw=class extends qe{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=Me(e),G4(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};Gw.className="RepeatVector";ne.registerClass(Gw);var Hw=class extends qe{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Me(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return B(n,r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};Hw.className="Reshape";ne.registerClass(Hw);var jw=class extends qe{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=Ua(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=at(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ce(Me(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};jw.className="Permute";ne.registerClass(jw);var qw=class extends qe{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=Me(e),a=-1;return Yp(oi(n,this.maskValue),a)}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Me(e),a=-1,r=!0,s=Yp(oi(n,this.maskValue),a,r);return z(n,oe(s,n.dtype))})}};qw.className="Masking";ne.registerClass(qw);var Kw=class extends qe{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,Jt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Jt(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=Me(e),oi(e,je(e))):null)}computeOutputShape(e){if(e=at(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=Me(e);n.dtype!=="int32"&&(n=qc(n,"int32"));let a=iN(this.embeddings.read(),B(n,[n.size]));return B(a,at(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}};Kw.className="Embedding";ne.registerClass(Kw);var xo=class extends qe{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&&ns(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=os(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=Ua(1,l).concat([0]);n.push(Ce(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=B(Ce(B(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(Ua(0,i-1));s=Ce(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:hn(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(()=>ew(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)=>_p(r,e[s].shape.length)):a=[_p(this.axes,t.shape.length),_p(this.axes,n.shape.length)],this.normalize&&(t=Uh(t,a[0]),n=Uh(n,a[1])),DU(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 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}};t0.className="Dot";ne.registerClass(t0);var n0=class extends qe{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=Me(e);return Yc(()=>Y(Cf(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};n0.className="GaussianNoise";ne.registerClass(n0);var a0=class extends qe{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=Me(e);return this.rate>0&&this.rate<1?Yc(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,Cf(n.shape,1,a))},()=>n,t.training||!1):n})}};a0.className="GaussianDropout";ne.registerClass(a0);var r0=class extends qe{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Me(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 Yc(()=>{let a=Me(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=Is(Wu(n),this.rate);o=qc(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)},()=>Me(e),t.training||!1)}return e})}};r0.className="AlphaDropout";ne.registerClass(r0);function tc(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=av(e,t,n,a,r,s);else if(e.rank===3)i=rv(e,t,n,a,r,s);else if(e.rank===4)i=sv(e,t,n,a,r,s);else throw new Re(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function RU(e,t,n,a,r=.001){return P(()=>{let s=zc(e,a),i=s.mean,o=s.variance;return[tc(e,i,o,n,t,r),i,o]})}function MU(e,t,n,a,r=.001){return P(()=>{let s=zc(e,a),i=s.mean,o=s.variance,l=[];for(let h of Ua(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=B(i,l),p=B(o,l),d=t==null?null:B(t,l),c=n==null?null:B(n,l);return[tc(e,u,p,c,d,r),i,o]})}function PU(e,t,n,a,r=.001){return v.arraysEqual(a.slice().sort(),Ua(0,e.rank-1))?RU(e,t,n,a,r):MU(e,t,n,a,r)}var s0=class extends qe{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=at(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=Me(e),r=a.shape,s=r.length,i=Ua(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,Ua(0,s).slice(0,s-1)),d=()=>{if(p){let g=B(this.movingMean.read(),l),b=B(this.movingVariance.read(),l),y=this.center?B(this.beta.read(),l):null,x=this.scale?B(this.gamma.read(),l):null;return tc(a,g,b,y,x,this.epsilon)}else return tc(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]=PU(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,b,y)=>{P(()=>{let x=1-y,w=g.read(),I=z(pe(w,b),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}};s0.className="BatchNormalization";ne.registerClass(s0);var i0=class extends qe{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=at(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!==ns(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=Me(e),a=n.shape,r=a.length;return P(()=>{let{mean:s,variance:i}=zc(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?B(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=Ga()),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 o0=class extends qe{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?Ga():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=at(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(()=>OU(Me(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};o0.className="ZeroPadding2D";ne.registerClass(o0);function Gf(e,t,n,a,r,s){return P(()=>{Rt(r),nN(s),ya(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=Ga()),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=ga(e,t,n,o),r==="channelsFirst"&&(i=Ce(i,[0,3,1,2])),i})}function ZN(e,t,n,a,r,s){return P(()=>{Rt(r),nN(s),ya(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=Ga()),s==null&&(s="max"),e=jN(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Av(e,t,n,o):i=nv(e,t,n,o),r==="channelsFirst"&&(i=Ce(i,[0,4,1,2,3])),i})}var JN=class extends qe{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(Jt(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)}`);Jt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,ya(this.padding),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){e=at(e);let t=Va(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=Kc(Me(e),2);let n=this.poolingFunction(Me(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}},l0=class extends JN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ya(a),Gf(e,t,n,a,r,"max")}};l0.className="MaxPooling1D";ne.registerClass(l0);var u0=class extends JN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ya(a),Gf(e,t,n,a,r,"avg")}};u0.className="AveragePooling1D";ne.registerClass(u0);var QN=class extends qe{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];Jt(this.poolSize,"poolSize"),Jt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),ya(this.padding),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=at(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Va(t,this.poolSize[0],this.padding,this.strides[0]),n=Va(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(Me(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}},p0=class extends QN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ya(a),Gf(e,t,n,a,r,"max")}};p0.className="MaxPooling2D";ne.registerClass(p0);var c0=class extends QN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ya(a),Gf(e,t,n,a,r,"avg")}};c0.className="AveragePooling2D";ne.registerClass(c0);var e2=class extends qe{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];Jt(this.poolSize,"poolSize"),Jt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),ya(this.padding),this.inputSpec=[new zt({ndim:5})]}computeOutputShape(e){e=at(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=Va(t,this.poolSize[0],this.padding,this.strides[0]),n=Va(n,this.poolSize[1],this.padding,this.strides[1]),a=Va(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(Me(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 e2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ya(a),ZN(e,t,n,a,r,"max")}};d0.className="MaxPooling3D";ne.registerClass(d0);var h0=class extends e2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ya(a),ZN(e,t,n,a,r,"avg")}};h0.className="AveragePooling3D";ne.registerClass(h0);var t2=class extends qe{constructor(e){super(e),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Re}},m0=class extends t2{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Me(e);return Nt(n,1)})}};m0.className="GlobalAveragePooling1D";ne.registerClass(m0);var f0=class extends t2{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Me(e);return _a(n,1)})}};f0.className="GlobalMaxPooling1D";ne.registerClass(f0);var n2=class extends qe{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}},g0=class extends n2{call(e,t){return P(()=>{let n=Me(e);return this.dataFormat==="channelsLast"?Nt(n,[1,2]):Nt(n,[2,3])})}};g0.className="GlobalAveragePooling2D";ne.registerClass(g0);var b0=class extends n2{call(e,t){return P(()=>{let n=Me(e);return this.dataFormat==="channelsLast"?_a(n,[1,2]):_a(n,[2,3])})}};b0.className="GlobalMaxPooling2D";ne.registerClass(b0);var a2=class extends qe{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=Wa(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},y0=class extends a2{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=at(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=at(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=Me(e),XN((n,a)=>[Me(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};y0.className="TimeDistributed";ne.registerClass(y0);function LU(e){bo(z4,"BidirectionalMergeMode",e)}var zU="concat",x0=class extends a2{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Wa(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Wa(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?zU:e.mergeMode,LU(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()):Mn(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=KN(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 za;for(let l of s)if(l instanceof za!==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=ew([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=Wa(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)}};x0.className="Bidirectional";ne.registerClass(x0);var v0=class extends qe{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=Me(e),e.dtype!=="float32"&&(e=qc(e,"float32")),Y(z(e,this.scale),this.offset)))}};v0.className="Rescaling";ne.registerClass(v0);function BU(e){return new Uu(e)}function WU(e){return new Tw(e)}function VU(e){return new kw(e)}function UU(e){return new Iw(e)}function GU(e){return new Sw(e)}function HU(e){return new Cw(e)}function jU(e){return new Nw(e)}function qU(e){return new Lf(e)}function KU(e){return new ed(e)}function XU(e){return new Aw(e)}function YU(e){return new td(e)}function ZU(e){return new $w(e)}function JU(e){return new Fw(e)}function QU(e){return new Dw(e)}function eG(e){return new Rw(e)}function tG(e){return new Mw(e)}function nG(e){return new Uw(e)}function aG(e){return new Ww(e)}function rG(e){return new Uf(e)}function sG(e){return new Bw(e)}function iG(e){return new Vw(e)}function oG(e){return new Gw(e)}function lG(e){return new Hw(e)}function uG(e){return new jw(e)}function pG(e){return new Kw(e)}function cG(e){return new Xw(e)}function dG(e){return new Zw(e)}function hG(e){return new e0(e)}function mG(e){return new Jw(e)}function fG(e){return new Qw(e)}function gG(e){return new Yw(e)}function bG(e){return new t0(e)}function yG(e){return new s0(e)}function xG(e){return new i0(e)}function vG(e){return new o0(e)}function w0(e){return new u0(e)}function wG(e){return w0(e)}function kG(e){return w0(e)}function k0(e){return new c0(e)}function IG(e){return k0(e)}function SG(e){return k0(e)}function I0(e){return new h0(e)}function TG(e){return I0(e)}function NG(e){return I0(e)}function CG(e){return new m0(e)}function _G(e){return new g0(e)}function r2(e){return new f0(e)}function s2(e){return new b0(e)}function i2(e){return new l0(e)}function o2(e){return new p0(e)}function EG(e){return new d0(e)}function AG(e){return new Ow(e)}function $G(e){return new Bf(e)}function FG(e){return new Lw(e)}function DG(e){return new ad(e)}function RG(e){return new Pw(e)}function MG(e){return new zf(e)}function PG(e){return new zw(e)}function OG(e){return new Vf(e)}function LG(e){return new hr(e)}function zG(e){return new Wf(e)}function BG(e){return new x0(e)}function WG(e){return new y0(e)}var VG=r2,UG=s2,GG=i2,HG=o2;function jG(e){return new n0(e)}function qG(e){return new a0(e)}function KG(e){return new r0(e)}function XG(e){return new qw(e)}function YG(e){return new v0(e)}var l2={};_e(l2,{MAPE:()=>oH,MSE:()=>pH,binaryAccuracy:()=>ZG,binaryCrossentropy:()=>JG,categoricalAccuracy:()=>eH,categoricalCrossentropy:()=>tH,cosineProximity:()=>rH,mape:()=>lH,meanAbsoluteError:()=>sH,meanAbsolutePercentageError:()=>iH,meanSquaredError:()=>uH,mse:()=>cH,precision:()=>nH,recall:()=>aH,sparseCategoricalAccuracy:()=>QG});function ZG(e,t){return fw(e,t)}function JG(e,t){return kN(e,t)}function QG(e,t){return IN(e,t)}function eH(e,t){return gw(e,t)}function tH(e,t){return bw(e,t)}function nH(e,t){return wN(e,t)}function aH(e,t){return UV(e,t)}function rH(e,t){return mw(e,t)}function sH(e,t){return Pf(e,t)}function iH(e,t){return Gu(e,t)}function oH(e,t){return Gu(e,t)}function lH(e,t){return Gu(e,t)}function uH(e,t){return yo(e,t)}function pH(e,t){return yo(e,t)}function cH(e,t){return yo(e,t)}var u2={};_e(u2,{modelFromJSON:()=>xU});var p2={};_e(p2,{l1:()=>hH,l1l2:()=>dH,l2:()=>mH});function dH(e){return new Jc(e)}function hH(e){return CU(e)}function mH(e){return _U(e)}var c2=class extends kl{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 ph(e,t){return et}var d2=class extends c2{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=ph:this.mode==="max"?this.monitorFunc=Uk:this.monitor.indexOf("acc")!==-1?this.monitorFunc=Uk:this.monitorFunc=ph,this.monitorFunc===ph&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===ph?1/0:-1/0}async onEpochEnd(e,t){await Yr(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 fH(e){return new d2(e)}var gH={earlyStopping:fH},bH=H();bH.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 Ta;(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"})(Ta||(Ta={}));var Gk;(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={}))})(Gk||(Gk={}));var S0={};function yH(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};S0[e]=n}function h2(e){return S0[e]}function xH(e){delete S0[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]=Xn(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[Kh(r,o)]);return i!==void 0?t[Kh(r,i)][s]:void 0}function vH(e,t,n){return t[Kh(e,n.currentContextId)]}function rr(e,t){let[n,a,r]=Xn(e);return[Kh(n,t&&t.currentContextId),a,r]}function Kh(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 xh(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 Sr(e){return e.kept?e:sr(e)}var m2={};_e(m2,{json:()=>wH});var wH=[{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}]}],f2={};_e(f2,{json:()=>kH});var kH=[{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}]}],g2={};_e(g2,{json:()=>IH});var IH=[{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"}]}],b2={};_e(b2,{json:()=>SH});var SH=[{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"}]}],y2={};_e(y2,{json:()=>TH});var TH=[{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"}]}],x2={};_e(x2,{json:()=>NH});var NH=[{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}]}],v2={};_e(v2,{json:()=>CH});var CH=[{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"}]}],w2={};_e(w2,{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"}]}],k2={};_e(k2,{json:()=>EH});var EH=[{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"}]}],I2={};_e(I2,{json:()=>AH});var AH=[{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"}]}],S2={};_e(S2,{json:()=>$H});var $H=[{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}]}],T2={};_e(T2,{json:()=>FH});var FH=[{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"}]}],N2={};_e(N2,{json:()=>DH});var DH=[{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}]}],C2={};_e(C2,{json:()=>RH});var RH=[{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"}]}],_2={};_e(_2,{json:()=>MH});var MH=[{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}]}],E2={};_e(E2,{json:()=>PH});var PH=[{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"}]}],A2={};_e(A2,{json:()=>OH});var OH=[{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}]}],$2={};_e($2,{json:()=>LH});var LH=[{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"}]}],F2={};_e(F2,{json:()=>zH});var zH=[{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:[]}],Hk=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[m2,f2,g2,b2,y2,x2,v2,w2,k2,I2,S2,T2,N2,C2,_2,E2,A2,$2,F2],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}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,b)=>{let[y,,x]=rr(g),w=i[y];if(w.outputs!=null){let I=w.outputs.indexOf(x);if(I!==-1){let T=`${y}:${I}`;f.inputNames[b]=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]=rr(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]=rr(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=h2(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=Zy(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Zy(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=rx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=rx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=Qy(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=Qy(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=ax(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ax(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=Jy(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Jy(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=ix(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ix(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=nx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=nx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=sx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=sx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=ex(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ex(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=tx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=tx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=jk(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=jk(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]=rr(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:T0(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]=rr(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let b=`${h}:${g}`;p.inputNames[c]=b}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=rr(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 BH(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 D2(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):BH(e);return t?n:n.toLowerCase()}function Zy(e,t,n,a=!1){let r=e[t];return r!=null?D2(r.s,a):n}function Jy(e,t,n){let a=e[t];return a?a.b:n}function Qy(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 T0(e){switch(typeof e=="string"&&(e=Ta[e]),e){case Ta.DT_FLOAT:case Ta.DT_HALF:return"float32";case Ta.DT_INT32:case Ta.DT_INT64:case Ta.DT_INT8:case Ta.DT_UINT8:return"int32";case Ta.DT_BOOL:return"bool";case Ta.DT_DOUBLE:return"float32";case Ta.DT_STRING:return"string";default:return null}}function jk(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function ex(e,t,n){let a=e[t];return a&&a.type?T0(a.type):n}function tx(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>T0(r)):n}function R2(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function nx(e,t,n){let a=e[t];return a&&a.shape?R2(a.shape):n}function ax(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 rx(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>D2(s,a)):n}function sx(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>R2(r)):n}function ix(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var WH=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 Qy(this.node.rawAttrs,e,t);if(n.s!=null)return Zy(this.node.rawAttrs,e,t);if(n.b!=null)return Jy(this.node.rawAttrs,e,t);if(n.shape!=null)return nx(this.node.rawAttrs,e,t);if(n.type!=null)return ex(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return ax(this.node.rawAttrs,e,t);if(n.list.s!=null)return rx(this.node.rawAttrs,e,t);if(n.list.shape!=null)return sx(this.node.rawAttrs,e,t);if(n.list.b!=null)return ix(this.node.rawAttrs,e,t);if(n.list.type!=null)return tx(this.node.rawAttrs,e,t)}return t}},un={};_e(un,{OP_SCOPE_SUFFIX:()=>Dx,abs:()=>Lt,acos:()=>qx,acosh:()=>Kx,add:()=>Y,addN:()=>BS,all:()=>Gm,any:()=>Yp,argMax:()=>ri,argMin:()=>Xx,asin:()=>Yx,asinh:()=>Zx,atan:()=>Jx,atan2:()=>Qx,atanh:()=>ev,avgPool:()=>ga,avgPool3d:()=>nv,basicLSTMCell:()=>GS,batchNorm:()=>ws,batchNorm2d:()=>av,batchNorm3d:()=>rv,batchNorm4d:()=>sv,batchToSpaceND:()=>Rc,bincount:()=>iv,booleanMaskAsync:()=>NT,broadcastArgs:()=>HS,broadcastTo:()=>Xs,buffer:()=>Oe,cast:()=>oe,ceil:()=>ov,clipByValue:()=>Qt,clone:()=>sr,complex:()=>Ar,concat:()=>Ze,concat1d:()=>lv,concat2d:()=>uv,concat3d:()=>pv,concat4d:()=>cv,conv1d:()=>Hm,conv2d:()=>$t,conv2dTranspose:()=>jm,conv3d:()=>hv,conv3dTranspose:()=>mv,cos:()=>Mc,cosh:()=>qm,cosineWindow:()=>ff,cumprod:()=>Zp,cumsum:()=>Km,denseBincount:()=>qS,depthToSpace:()=>fv,depthwiseConv2d:()=>ks,diag:()=>KS,dilation2d:()=>gv,div:()=>he,divNoNan:()=>bv,dot:()=>yv,dropout:()=>Hv,einsum:()=>XS,elu:()=>Pu,enclosingPowerOfTwo:()=>jv,equal:()=>Qn,erf:()=>xv,euclideanNorm:()=>kv,exp:()=>fn,expandDims:()=>hn,expm1:()=>Iv,eye:()=>Xm,fft:()=>Uc,fill:()=>gn,floor:()=>Lu,floorDiv:()=>Um,fused:()=>vl,gather:()=>zu,gatherND:()=>AT,greater:()=>Vn,greaterEqual:()=>Is,ifft:()=>xl,imag:()=>$c,image:()=>Nr,inTopKAsync:()=>$T,irfft:()=>cf,isFinite:()=>Sv,isInf:()=>Tv,isNaN:()=>Nv,leakyRelu:()=>Pc,less:()=>Ym,lessEqual:()=>Ss,linalg:()=>Xv,linspace:()=>eT,localResponseNormalization:()=>Cv,log:()=>ea,log1p:()=>Oc,logSigmoid:()=>_v,logSoftmax:()=>Jm,logSumExp:()=>Qm,logicalAnd:()=>Aa,logicalNot:()=>Lc,logicalOr:()=>ef,logicalXor:()=>Ev,losses:()=>UT,lowerBound:()=>nT,matMul:()=>Ae,max:()=>_a,maxPool:()=>Dt,maxPool3d:()=>Av,maxPoolWithArgmax:()=>aT,maximum:()=>cr,mean:()=>Nt,meshgrid:()=>rT,min:()=>Jp,minimum:()=>Bu,mirrorPad:()=>$v,mod:()=>Fv,moments:()=>zc,movingAverage:()=>CT,mul:()=>z,multiRNNCell:()=>sT,multinomial:()=>iT,neg:()=>vt,norm:()=>Ou,notEqual:()=>oi,oneHot:()=>fl,ones:()=>Zn,onesLike:()=>ta,op:()=>L,outerProduct:()=>oT,pad:()=>ba,pad1d:()=>lT,pad2d:()=>uT,pad3d:()=>pT,pad4d:()=>cT,pool:()=>Dv,pow:()=>$r,prelu:()=>Wc,print:()=>Ox,prod:()=>Rv,raggedGather:()=>dT,raggedTensorToTensor:()=>hT,rand:()=>mT,randomGamma:()=>fT,randomNormal:()=>nf,randomStandardNormal:()=>gT,randomUniform:()=>Wu,range:()=>bl,real:()=>gl,reciprocal:()=>Ov,relu:()=>Xe,relu6:()=>af,reshape:()=>B,reverse:()=>fa,reverse1d:()=>bT,reverse2d:()=>yT,reverse3d:()=>xT,reverse4d:()=>vT,rfft:()=>Gc,round:()=>rf,rsqrt:()=>sf,scalar:()=>ye,scatterND:()=>_T,searchSorted:()=>tf,selu:()=>of,separableConv2d:()=>Ts,setdiff1dAsync:()=>wT,sigmoid:()=>ha,sign:()=>Lv,signal:()=>VT,sin:()=>lf,sinh:()=>uf,slice:()=>We,slice1d:()=>Vc,slice2d:()=>pf,slice3d:()=>fo,slice4d:()=>yl,softmax:()=>ja,softplus:()=>mo,spaceToBatchND:()=>Bc,sparse:()=>GT,sparseToDense:()=>ET,spectral:()=>WT,split:()=>Ln,sqrt:()=>ln,square:()=>lt,squaredDifference:()=>df,squeeze:()=>Ns,stack:()=>Ft,step:()=>go,stridedSlice:()=>zv,string:()=>HT,sub:()=>pe,sum:()=>fe,tan:()=>Bv,tanh:()=>si,tensor:()=>On,tensor1d:()=>Ke,tensor2d:()=>Ea,tensor3d:()=>Fc,tensor4d:()=>Fa,tensor5d:()=>kT,tensor6d:()=>IT,tile:()=>Pn,topk:()=>Wv,transpose:()=>Ce,truncatedNormal:()=>hf,unique:()=>Vv,unsortedSegmentSum:()=>mf,unstack:()=>ct,upperBound:()=>ST,variable:()=>Uv,where:()=>mn,whereAsync:()=>Gv,zeros:()=>It,zerosLike:()=>je});var VH=(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`)}},UH=(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(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 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 qk(e){return!(typeof e=="number"||e.some(t=>t<0))}function Ep(e,t,n){let a=ox(e,n),r=!qk(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=ox(s.shape,a)}),!qk(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function ox(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 GH=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=ye(0),Zt(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,Zt(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=[];O(()=>{t=B(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: "),Qt(r)}),this.idTensor=ke(0),this.maxNumElements=a,Qt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new Pl([...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=Hp(this.elementShape,this.tensors,e);return O(()=>{let r=this.tensors.map(s=>B(s,a));return Rt(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=Hp(this.elementShape,this.tensors,e),a=this.tensors.pop();return a.kept=!1,Ca(a.shape,e,"TensorList shape mismatch: "),B(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.");Qt(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 Pl([],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=Hp(this.elementShape,this.tensors,t);return B(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: "),Qt(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=Hp(this.elementShape,this.tensors,n);return e.length===0?Bn([],[0].concat(a)):O(()=>{let r=e.map(s=>B(this.tensors[s],a));return Rt(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=Hp(this.elementShape,this.tensors,t);return this.size()===0?Bn([],[0].concat(n)):O(()=>{let a=this.tensors.map(r=>B(r,n));return Qe(a,0)})}};function w6(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=mt(e);return new Pl(s,t,a)}function k6(e,t,n,a){return new Pl([],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 Pl([],n,e.dtype,a),i=mt(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function T6(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=B(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: "),Zt(r)}),this.idTensor=ye(0),this.maxNumElements=a,Zt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new Sl([...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=Ep(this.elementShape,this.tensors,e);return P(()=>{let r=this.tensors.map(s=>B(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=Ep(this.elementShape,this.tensors,e),a=this.tensors.pop();return a.kept=!1,Ca(a.shape,e,"TensorList shape mismatch: "),B(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.");Zt(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 Sl([],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=Ep(this.elementShape,this.tensors,t);return B(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: "),Zt(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=Ep(this.elementShape,this.tensors,n);return e.length===0?On([],[0].concat(a)):P(()=>{let r=e.map(s=>B(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=Ep(this.elementShape,this.tensors,t);return this.size()===0?On([],[0].concat(n)):P(()=>{let a=this.tensors.map(r=>B(r,n));return Ze(a,0)})}};function HH(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 Sl(s,t,a)}function jH(e,t,n,a){return new Sl([],e,t,a)}function qH(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 Sl([],n,e.dtype,a),i=ct(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function KH(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=Cx(s,n),o=a===0?0:e.size/a,l=O(()=>{let p=[];e=B(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[Cr(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=Cr(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>Tn(r,t,n)!==void 0);if(a){let r=Tn(a,t,n);return[Cr(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[Cr(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[Cr(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[Cr(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 v6(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,ke(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[ke(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=k6(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=w6(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=T6(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[ke(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 gI(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 N6=(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}=gI(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}=gI(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`)}},C6=(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 Wy(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 _6=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}=Wy(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}=Wy(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}=Wy(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`)}},E6=(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`)}},$6=(e,t,n,a=pn)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[Tn(e.name,t,n)||r];case"Placeholder":return[Tn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let p=k("x",e,t,n);return[Cr(p)]}case"IdentityN":return k("x",e,t,n).map(p=>Cr(p));case"Snapshot":let s=k("x",e,t,n);return[Cr(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 ke(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(),O(()=>{let a=mt(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=k("keyDType",e,t,n),s=k("valueDType",e,t,n),i=new A6(r,s);return a.addHashTable(e.name,i),[i.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`)}},D6=(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`)}},R6=(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`)}},M6=(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`)}},P6=(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`)}},O6=(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`)}},L6=(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`)}},z6=(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`)}},W6=(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`)}},B6=(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`)}},V6=(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 bI(e,t,n,a,r=O){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>y6(i,o,l));case"basic_math":return r(()=>x6(i,o,l));case"control":return S6(i,o,l);case"convolution":return r(()=>N6(i,o,l));case"creation":return r(()=>C6(i,o,l));case"dynamic":return _6(i,o,l);case"evaluation":return r(()=>E6(i,o,l));case"image":return r(()=>D6(i,o,l));case"graph":return r(()=>$6(i,o,l));case"logical":return r(()=>R6(i,o,l));case"matrices":return r(()=>M6(i,o,l));case"normalization":return r(()=>P6(i,o,l));case"reduction":return r(()=>O6(i,o,l));case"slice_join":return r(()=>L6(i,o,l));case"sparse":return r(()=>z6(i,o,l));case"spectral":return r(()=>W6(i,o,l));case"string":return r(()=>B6(i,o,l));case"transformation":return r(()=>V6(i,o,l));case"hash_table":return F6(i,o,l,a);case"custom":let u=$2(i.op);if(u&&u.customExecutor)return u.customExecutor(new b6(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 yI=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 xI(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=Object.keys(e).map(c=>Zn(c)[0]),p=[];a!=null&&(p=a.map(c=>Zn(c.name)[0]));let d=[...t];for(;d.length>0;){let c=d.pop();if((J2(c)||q6(c)||K6(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 U6(e,t,n){let{usedNodes:a,inputs:r}=n,s=[],i=Object.keys(r).map(p=>Zn(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"],H6=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],j6=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function J2(e){return G6.indexOf(e.op)>=0}function q6(e){return H6.indexOf(e.op)>=0}function K6(e){return j6.indexOf(e.op)>=0}var _x=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 _x(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=xI(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 U6(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[Zn(p)[0]]),r=t.map(p=>Zn(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 O(()=>{let p=new yI(this.weightMap,l,u,this.functionExecutorMap),d=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=Zn(m),b=[];b[g]=e[m],d[f]=b});let c=this.getFrozenTensorIds(d),h={};for(let m=0;mTn(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=YH(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]=pr(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=X().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(u){console.warn(u.message)}this.resetIntermediateTensors();let s=new yI(this.weightMap,a,r,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(e,s,t,n);let i=t.map(u=>Tn(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(y=>this.graph.nodes[Zn(y)[0]]),i=n.map(y=>Zn(y)[0]),o=i.map(y=>this.graph.nodes[y]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:u,dynamicNode:p,syncInputs:d}=xI(e,o,this.weightMap,this._initNodes),c=[...s,...this.graph.weights,...this._initNodes||[]].map(y=>({node:y,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(y=>{let[x,w]=Zn(y),I=[];I[w]=e[y],h[x]=I});let m={},f=this.getFrozenTensorIds(h),g={};for(;c.length>0;){let y=this.processStack(s,c,t,h,g,f,i,m,l);await Promise.all(y)}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 b=o.filter(y=>!J2(y)&&!Tn(y.name,h,t)).map(y=>y.name);if(b.length>0){let y="";throw p!=null&&(y=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${d}]`),new Error(`Cannot compute the outputs [${b}] from the provided inputs [${r}]. Consider providing the following inputs: [${u}]. ${y}`)}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]=pr(p.node.name,n)),a[p.node.name]==null){let c=bI(p.node,a,n,this._resourceManager);d||([d]=pr(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]=pr(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!Tn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!Tn(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]=Zn(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]=Zn(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]=Zn(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},X6=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]}},Y6="?tfjs-format=file",Z6="model.json",H0=class{constructor(e,t={},n=Nn){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new X6}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 _x(hI.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=hI.Instance.transformGraph(e.modelInitializer);this.initializer=new _x(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}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 $e?[n]:n,r={};return a.forEach((s,i)=>r[this.structuredOutputKeys[i]]=s),r}return n}normalizeInputs(e){if(!(e instanceof $e)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,n,a)=>(t[n]=e[a],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=this.executor.execute(e,t);return n.length>1?n:n[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);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.resourceManager.dispose()}};async function J6(e,t={},n=Nn){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=ej(e));let a=new H0(e,t,n);return await a.load(),a}function Q6(e){if(e==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide a url or an IOHandler that loads the model");if(!e.load)throw new Error(`modelUrl IO Handler ${e} has no load function`);let t=new H0(e);return t.load(),t}function ej(e){return e.endsWith("/")||(e=e+"/"),`${e}${Z6}${Y6}`}var tj="3.20.0",Q2={};Fe(Q2,{CSVDataset:()=>lC,Dataset:()=>ap,FileDataSource:()=>fC,TextLineDataset:()=>oC,URLDataSource:()=>gC,array:()=>Tj,csv:()=>Mj,func:()=>Pj,generator:()=>Oj,microphone:()=>zj,version_data:()=>Wj,webcam:()=>Lj,zip:()=>Sj});var nj=bs(_m()),aj=bs(_m());function rj(e,t){return ym(e,t)}function ym(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(Ol(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=ym(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 sj(e,t=tC){return eC(e,t)}function eC(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(Ol(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=eC(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 tC(e){return e===null?null:Ol(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function nC(e,t){let n=new Map;ym(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 ym(e,t,n)}function Ol(e){let t=!1;if(X().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=eT();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof $e)&&!(e instanceof Promise)&&!t)}function ij(e){return e==null||oj(e)||Array.isArray(e)||typeof e=="object"&&e instanceof $e||v.isTypedArray(e)}function oj(e){return e===null||typeof e!="object"&&typeof e!="function"}function lj(e){return rj(e,uj)}function uj(e){return e instanceof $e?{value:e.clone(),recurse:!1}:Ol(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var aC=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}},j0=class extends aC{constructor(){super(j0.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 bj(this,e,t)}columnMajorBatch(e,t=!0,n=tC){return this.rowMajorBatch(e,t).map(a=>sj(a,n))}concatenate(e,t){return new sC(rC([this,e]),t)}take(e){return e<0||e==null?this:new gj(this,e)}skip(e){return e<0||e==null?this:new fj(this,e)}prefetch(e){return new iC(this,e)}shuffle(e,t){return new Ij(this,e,t)}serial(){return new mj(this)}},dj=class extends nn{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:lj(e),done:!1}}},hj=class extends nn{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}}},mj=class extends nn{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()}},fj=class extends nn{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()}},bj=class extends nn{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}}},yj=class extends nn{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;Me(e.value)}}},xj=class extends nn{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=qa.getTensorsInContainer(e.value),n=this.transform(e.value),a=qa.getTensorsInContainer(n);for(let r of t)qa.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},vj=class extends nn{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}}}},vI=class extends nn{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=qa.getTensorsInContainer(e.value),n=await this.transform(e.value),a=qa.getTensorsInContainer(n);for(let r of t)qa.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},K0=class extends nn{constructor(){super(),this.outputQueue=new j0,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}}},wj=class extends K0{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=qa.getTensorsInContainer(e.value),n=this.transform(e.value),a=qa.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)qa.isTensorInList(r,a)||r.dispose();return!0}},sC=class extends nn{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}},rs;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(rs||(rs={}));var kj=class extends nn{constructor(e,t=rs.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 nn?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await nC(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case rs.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case rs.SHORTEST:return{value:null,done:!0};case rs.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},iC=class extends nn{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new aC(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 iC{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=aj.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}}},ap=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),Yn(async()=>(await n.iterator()).columnMajorBatch(e,t,Nj),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,Yn(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,Yn(async()=>(await t.iterator()).filter(a=>O(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Yn(async()=>(await t.iterator()).map(n=>O(()=>e(n))),this.size)}mapAsync(e){let t=this;return Yn(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 Yn(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,Yn(async()=>{let a=q0(async()=>({value:await t.iterator(),done:!1}));return pj(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=nj.alea(t||v.now().toString());return Yn(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,Yn(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()}};ap.MAX_BUFFER_SIZE=1e4;function Yn(e,t=null){return new class extends ap{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function Tj(e){return Yn(async()=>rC(e),e.length)}function Sj(e){if(!Ol(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 nC(e,a=>{if(a instanceof ap)return{value:a.iterator(),recurse:!1};if(Ol(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return cj(n,rs.SHORTEST)},t)}function Nj(e){if(e===null)return null;let t=e[0];return ij(t)?{value:Cj(e),recurse:!1}:{value:null,recurse:!0}}function Cj(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof $e?Rt(e):Bn(e)}var oC=class extends ap{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))}},Rh='"',jp=Symbol("out"),wI=Symbol("field"),Mh=Symbol("quote"),By=Symbol("quoteafterquote"),kI=Symbol("quoteinquote"),lC=class extends ap{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 oC(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(!X().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let t=new uC(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),Bn(n,t)}},pC=class extends nn{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=Ea([s,r,o,i],[1,4])}else this.cropBox=Ea([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(!X().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 pC(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=ko.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 O(()=>{let t=mn(le(e,"float32"),0),n;n=Er.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return B(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.")}},cC=class{},dC=class extends nn{split(e){return new _j(this,e)}},_j=class extends dC{constructor(e,t){super(),this.upstream=e,this.impl=new Ej(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Ej=class extends K0{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}},$j=class extends nn{decodeUTF8(){return new Aj(this)}},Aj=class extends dC{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 K0{constructor(e){if(super(),this.upstream=e,X().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=eT();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 X().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},hC=class extends $j{constructor(e,t={}){super(),this.file=e,this.options=t,v.assert(e instanceof Uint8Array||(X().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 Dj(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=Rj(e));let s=await(n||v.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new hC(i,t)}else throw new Error(s.statusText)}var Rj=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 mC(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var fC=class extends cC{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(mC(this.input)&&X().get("IS_NODE")){let e=Hx();this.input=e.readFileSync(this.input.slice(7))}return new hC(this.input,this.options)}},gC=class extends cC{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return mC(this.url)?new fC(this.url,this.fileOptions).iterator():Dj(this.url,this.fileOptions)}};function Mj(e,t={}){return new lC(new gC(e),t)}function Pj(e){let t=q0(e);return Yn(async()=>t)}function Oj(e){return Yn(async()=>{let t=await e();return q0(()=>t.next())})}async function Lj(e,t){return pC.create(e,t)}async function zj(e){return uC.create(e)}var Wj="3.20.0";function xe(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 Bj=yr.whereImpl,X0=class extends Tc{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new Em(this,ir())}nextDataId(){return X0.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,X().get("IS_NODE")&&C.warn(` + ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=ox(s,n),o=a===0?0:e.size/a,l=P(()=>{let p=[];e=B(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[Sr(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=Sr(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[Sr(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[Sr(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[Sr(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[Sr(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 GH(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,ye(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[ye(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=qH(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=jH(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=HH(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=KH(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[ye(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 Kk(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=xh(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 YH=(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=xh(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}=Kk(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}=Kk(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=xh(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=xh(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`)}},ZH=(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 vy(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 JH=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}=vy(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}=vy(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}=vy(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`)}},QH=(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`)}},e6=(e,t,n,a=un)=>{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[Sr(p)]}case"IdentityN":return k("x",e,t,n).map(p=>Sr(p));case"Snapshot":let s=k("x",e,t,n);return[Sr(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 ye(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=k("keyDType",e,t,n),s=k("valueDType",e,t,n),i=new t6(r,s);return a.addHashTable(e.name,i),[i.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`)}},a6=(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`)}},r6=(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`)}},s6=(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`)}},i6=(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`)}},o6=(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`)}},l6=(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`)}},u6=(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`)}},p6=(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`)}},c6=(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`)}},d6=(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 Xk(e,t,n,a,r=P){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>VH(i,o,l));case"basic_math":return r(()=>UH(i,o,l));case"control":return XH(i,o,l);case"convolution":return r(()=>YH(i,o,l));case"creation":return r(()=>ZH(i,o,l));case"dynamic":return JH(i,o,l);case"evaluation":return r(()=>QH(i,o,l));case"image":return r(()=>a6(i,o,l));case"graph":return r(()=>e6(i,o,l));case"logical":return r(()=>r6(i,o,l));case"matrices":return r(()=>s6(i,o,l));case"normalization":return r(()=>i6(i,o,l));case"reduction":return r(()=>o6(i,o,l));case"slice_join":return r(()=>l6(i,o,l));case"sparse":return r(()=>u6(i,o,l));case"spectral":return r(()=>p6(i,o,l));case"string":return r(()=>c6(i,o,l));case"transformation":return r(()=>d6(i,o,l));case"hash_table":return n6(i,o,l,a);case"custom":let u=h2(i.op);if(u&&u.customExecutor)return u.customExecutor(new WH(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 Yk=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 Zk(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((M2(c)||b6(c)||y6(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 h6(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 m6=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],f6=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],g6=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function M2(e){return m6.indexOf(e.op)>=0}function b6(e){return f6.indexOf(e.op)>=0}function y6(e){return g6.indexOf(e.op)>=0}var lx=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 lx(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=Zk(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 h6(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 Yk(this.weightMap,l,u,this.functionExecutorMap),d=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=Xn(m),b=[];b[g]=e[m],d[f]=b});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=vH(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]=rr(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 Yk(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(y=>this.graph.nodes[Xn(y)[0]]),i=n.map(y=>Xn(y)[0]),o=i.map(y=>this.graph.nodes[y]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:u,dynamicNode:p,syncInputs:d}=Zk(e,o,this.weightMap,this._initNodes),c=[...s,...this.graph.weights,...this._initNodes||[]].map(y=>({node:y,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(y=>{let[x,w]=Xn(y),I=[];I[w]=e[y],h[x]=I});let m={},f=this.getFrozenTensorIds(h),g={};for(;c.length>0;){let y=this.processStack(s,c,t,h,g,f,i,m,l);await Promise.all(y)}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 b=o.filter(y=>!M2(y)&&!wn(y.name,h,t)).map(y=>y.name);if(b.length>0){let y="";throw p!=null&&(y=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${d}]`),new Error(`Cannot compute the outputs [${b}] from the provided inputs [${r}]. Consider providing the following inputs: [${u}]. ${y}`)}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]=rr(p.node.name,n)),a[p.node.name]==null){let c=Xk(p.node,a,n,this._resourceManager);d||([d]=rr(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]=rr(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]=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`)})}},x6=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]}},v6="?tfjs-format=file",w6="model.json",N0=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 x6}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 lx(Hk.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=Hk.Instance.transformGraph(e.modelInitializer);this.initializer=new lx(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}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))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,n,a)=>(t[n]=e[a],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=this.executor.execute(e,t);return n.length>1?n:n[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);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.resourceManager.dispose()}};async function k6(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=S6(e));let a=new N0(e,t,n);return await a.load(),a}function I6(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 N0(t);return n.load(),n}function S6(e){return e.endsWith("/")||(e=e+"/"),`${e}${w6}${v6}`}var T6="3.21.0",P2={};_e(P2,{CSVDataset:()=>H2,Dataset:()=>Hu,FileDataSource:()=>J2,TextLineDataset:()=>G2,URLDataSource:()=>Q2,array:()=>K6,csv:()=>sj,func:()=>ij,generator:()=>oj,microphone:()=>uj,version_data:()=>pj,webcam:()=>lj,zip:()=>X6});var N6=hs(sm()),C6=hs(sm());function _6(e,t){return Xh(e,t)}function Xh(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(Tl(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=Xh(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 E6(e,t=L2){return O2(e,t)}function O2(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(Tl(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=O2(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 L2(e){return e===null?null:Tl(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function z2(e,t){let n=new Map;Xh(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 Xh(e,t,n)}function Tl(e){let t=!1;if(H().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=RI();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Te)&&!(e instanceof Promise)&&!t)}function A6(e){return e==null||$6(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Te||v.isTypedArray(e)}function $6(e){return e===null||typeof e!="object"&&typeof e!="function"}function F6(e){return _6(e,D6)}function D6(e){return e instanceof Te?{value:e.clone(),recurse:!1}:Tl(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var B2=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}},C0=class extends B2{constructor(){super(C0.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 W6(this,e,t)}columnMajorBatch(e,t=!0,n=L2){return this.rowMajorBatch(e,t).map(a=>E6(a,n))}concatenate(e,t){return new V2(W2([this,e]),t)}take(e){return e<0||e==null?this:new B6(this,e)}skip(e){return e<0||e==null?this:new z6(this,e)}prefetch(e){return new U2(this,e)}shuffle(e,t){return new q6(this,e,t)}serial(){return new L6(this)}},P6=class extends en{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:F6(e),done:!1}}},O6=class extends en{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}}},L6=class extends en{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()}},z6=class extends en{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()}},W6=class extends en{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}}},V6=class extends en{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)}}},U6=class extends en{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=Ba.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ba.getTensorsInContainer(n);for(let r of t)Ba.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},G6=class extends en{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}}}},Jk=class extends en{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=Ba.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Ba.getTensorsInContainer(n);for(let r of t)Ba.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},E0=class extends en{constructor(){super(),this.outputQueue=new C0,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}}},H6=class extends E0{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=Ba.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ba.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Ba.isTensorInList(r,a)||r.dispose();return!0}},V2=class extends en{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}},es;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(es||(es={}));var j6=class extends en{constructor(e,t=es.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 en?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await z2(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case es.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case es.SHORTEST:return{value:null,done:!0};case es.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},U2=class extends en{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new B2(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()}},q6=class extends U2{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=C6.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}}},Hu=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,Y6),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=_0(async()=>({value:await t.iterator(),done:!1}));return R6(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=N6.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()}};Hu.MAX_BUFFER_SIZE=1e4;function Kn(e,t=null){return new class extends Hu{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function K6(e){return Kn(async()=>W2(e),e.length)}function X6(e){if(!Tl(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 z2(e,a=>{if(a instanceof Hu)return{value:a.iterator(),recurse:!1};if(Tl(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return M6(n,es.SHORTEST)},t)}function Y6(e){if(e===null)return null;let t=e[0];return A6(t)?{value:Z6(e),recurse:!1}:{value:null,recurse:!0}}function Z6(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Te?Ft(e):On(e)}var G2=class extends Hu{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))}},ch='"',Ap=Symbol("out"),Qk=Symbol("field"),dh=Symbol("quote"),wy=Symbol("quoteafterquote"),eI=Symbol("quoteinquote"),H2=class extends Hu{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 G2(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 j2(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),On(n,t)}},q2=class extends en{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=Ea([s,r,o,i],[1,4])}else this.cropBox=Ea([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 q2(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=hn(oe(e,"float32"),0),n;n=Nr.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return B(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.")}},K2=class{},X2=class extends en{split(e){return new J6(this,e)}},J6=class extends X2{constructor(e,t){super(),this.upstream=e,this.impl=new Q6(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Q6=class extends E0{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}},ej=class extends en{decodeUTF8(){return new tj(this)}},tj=class extends X2{constructor(e){super(),this.upstream=e,this.impl=new nj(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},nj=class extends E0{constructor(e){if(super(),this.upstream=e,H().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=RI();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}},Y2=class extends ej{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 aj(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=rj(e));let s=await(n||v.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new Y2(i,t)}else throw new Error(s.statusText)}var rj=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 Z2(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var J2=class extends K2{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(Z2(this.input)&&H().get("IS_NODE")){let e=Tx();this.input=e.readFileSync(this.input.slice(7))}return new Y2(this.input,this.options)}},Q2=class extends K2{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return Z2(this.url)?new J2(this.url,this.fileOptions).iterator():aj(this.url,this.fileOptions)}};function sj(e,t={}){return new H2(new Q2(e),t)}function ij(e){let t=_0(e);return Kn(async()=>t)}function oj(e){return Kn(async()=>{let t=await e();return _0(()=>t.next())})}async function lj(e,t){return q2.create(e,t)}async function uj(e){return j2.create(e)}var pj="3.21.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 cj=dr.whereImpl,A0=class extends lc{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new im(this,er())}nextDataId(){return A0.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 C.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 ze(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return ze(e.shape,e.dtype,t)}makeOutput(e,t,n){return ir().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){xe([e],"where");let t=this.readSync(e.dataId);return Bj(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};X0.nextDataId=0;var bC={};Fe(bC,{addImpl:()=>vC,bincountImpl:()=>Z0,bincountReduceImpl:()=>wC,castImpl:()=>xC,ceilImpl:()=>kC,concatImpl:()=>J0,equalImpl:()=>IC,expImpl:()=>SC,expm1Impl:()=>CC,floorImpl:()=>_C,gatherNdImpl:()=>EC,gatherV2Impl:()=>$C,greaterEqualImpl:()=>FC,greaterImpl:()=>AC,lessEqualImpl:()=>RC,lessImpl:()=>DC,linSpaceImpl:()=>MC,logImpl:()=>PC,maxImpl:()=>OC,maximumImpl:()=>LC,minimumImpl:()=>zC,multiplyImpl:()=>Q0,negImpl:()=>WC,notEqualImpl:()=>BC,prodImpl:()=>VC,raggedTensorToTensorImpl:()=>UC,rangeImpl:()=>t1,rsqrtImpl:()=>GC,scatterImpl:()=>xl,sigmoidImpl:()=>Eq,simpleAbsImpl:()=>yC,sliceImpl:()=>vm,sparseFillEmptyRowsImpl:()=>jC,sparseReshapeImpl:()=>qC,sparseSegmentReductionImpl:()=>n1,sqrtImpl:()=>Fq,squaredDifferenceImpl:()=>KC,stridedSliceImpl:()=>XC,stringNGramsImpl:()=>a1,stringSplitImpl:()=>r1,stringToHashBucketFastImpl:()=>s1,subImpl:()=>YC,tileImpl:()=>ZC,topKImpl:()=>QC,transposeImpl:()=>e1,uniqueImpl:()=>e_});function yC(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;xe(t,"abs");let a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=yC(r),n.makeOutput(a,t.shape,t.dtype)},Uj={kernelName:Ul,backendName:"cpu",kernelFunc:Vj};function Vt(e){return(t,n,a,r,s)=>{let i=C.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=C.getBroadcastDims(t,i),g=C.getBroadcastDims(n,i);if(f.length+g.length===0)for(let b=0;bx[_]=0);let w=v.locToIndex(x,d,h),I=y.slice(-c);g.forEach(_=>I[_]=0);let N=v.locToIndex(I,c,m);p[b]=e(a[w],r[N])}return[p,i]}}function Jn(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:Pm,backendName:"cpu",kernelFunc:Jn};function xm(e,t,n="float32"){if(n==="complex64"){let r=xm(e,t,"float32"),s=xm(e,t,"float32");return Jn({inputs:{real:r,imag:s},backend:e})}let a=v.makeZerosTypedArray(v.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function fr(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 Hj={kernelName:Ui,backendName:"cpu",kernelFunc:fr};function yi(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 jj={kernelName:nf,backendName:"cpu",kernelFunc:yi};function xC(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 fs(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return fr({inputs:{x:r},backend:n});let p=xm(n,r.shape,r.dtype),d=fs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),c=Jn({inputs:{real:d,imag:p},backend:n});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),c}if(r.dtype==="complex64"){let p=yi({inputs:{input:r},backend:n}),d=fs({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!v.hasEncodingLoss(r.dtype,s)){let p=fr({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]=xC(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var qj={kernelName:_i,backendName:"cpu",kernelFunc:fs};function an(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;xe([i,o],e);let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=i.dtype==="string"?C.fromUint8ToStringArray(u):u,c=i.dtype==="string"?C.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=fs({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=fs({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),b=g.complexTensorInfos.real,y=g.complexTensorInfos.imag,x=l.data.get(b.dataId).values,w=l.data.get(y.dataId).values,[I,N,_]=n(i.shape,o.shape,h,m,x,w),$=l.makeTensorInfo(_,"float32",I),A=l.makeTensorInfo(_,"float32",N),M=Jn({inputs:{real:$,imag:A},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo($),l.disposeIntermediateTensorInfo(A),M}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 Y0(e){return(t,n,a,r,s,i)=>{let o=C.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=C.getBroadcastDims(t,o),m=C.getBroadcastDims(n,o),f=C.mergeRealAndImagArrays(a,r),g=C.mergeRealAndImagArrays(s,i),b=t.length,y=v.computeStrides(t),x=n.length,w=v.computeStrides(n);if(h.length+m.length===0)for(let I=0;I_[T]=0);let $=v.locToIndex(_,b,y),A=N.slice(-x);m.forEach(T=>A[T]=0);let M=v.locToIndex(A,x,w),D=e(f[$*2],f[$*2+1],g[M*2],g[M*2+1]);d[I]=D.real,c[I]=D.imag}return[d,c,o]}}var vC=Vt((e,t)=>e+t),Kj=Y0((e,t,n,a)=>({real:e+n,imag:t+a})),Ll=an(xs,vC,Kj),Xj={kernelName:xs,backendName:"cpu",kernelFunc:Ll};function Z0(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 wC(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=ze([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 As(e){return(t,n,a)=>{let r=v.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(xe(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(xe(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 kC=As(e=>Math.ceil(e)),Yj=rp(Ei,kC),Zj={kernelName:Ei,backendName:"cpu",kernelFunc:Yj};function J0(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"?C.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let u=0;ue===t?1:0),TC=an(su,IC,null,"bool"),Jj={kernelName:su,backendName:"cpu",kernelFunc:TC},SC=As(e=>Math.exp(e)),NC=rp(Li,SC,"float32"),Qj={kernelName:Li,backendName:"cpu",kernelFunc:NC},CC=As(e=>Math.expm1(e)),eq=rp(ou,CC),tq={kernelName:ou,backendName:"cpu",kernelFunc:eq},_C=As(e=>Math.floor(e)),nq=rp(zi,_C),aq={kernelName:zi,backendName:"cpu",kernelFunc:nq};function EC(e,t,n,a,r,s,i,o,l){let u=ze([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),rq=an(cu,AC,null,"bool"),sq={kernelName:cu,backendName:"cpu",kernelFunc:rq},FC=Vt((e,t)=>e>=t?1:0),iq=an(Vi,FC,null,"bool"),oq={kernelName:Vi,backendName:"cpu",kernelFunc:iq},DC=Vt((e,t)=>ee<=t?1:0),pq=an(gu,RC,null,"bool"),cq={kernelName:gu,backendName:"cpu",kernelFunc:pq};function MC(e,t,n){let a=(t-e)/(n-1),r=v.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),dq=rp(Hi,PC),hq={kernelName:Hi,backendName:"cpu",kernelFunc:dq};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)),mq=an(qi,LC),fq={kernelName:qi,backendName:"cpu",kernelFunc:mq},zC=Vt((e,t)=>Math.min(e,t)),gq=an(Zi,zC),bq={kernelName:Zi,backendName:"cpu",kernelFunc:gq},Q0=Vt((e,t)=>e*t),yq=Y0((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),mg=an(Qi,Q0,yq),xq={kernelName:Qi,backendName:"cpu",kernelFunc:mg};function WC(e,t,n){let a=v.createScalarValue(-1,n);return Q0([],t,a,e,n)}function vq(e){let{inputs:t,backend:n}=e,{x:a}=t;xe(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=WC(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var wq={kernelName:ku,backendName:"cpu",kernelFunc:vq},BC=Vt((e,t)=>e!==t?1:0),kq=an(Iu,BC,null,"bool"),Iq={kernelName:Iu,backendName:"cpu",kernelFunc:kq};function e1(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(y)),n.makeTensorInfo(b,g,m)}var Nq={kernelName:ro,backendName:"cpu",kernelFunc:Sq},Ta=C.RowPartitionType,Ex=class{constructor(e,t,n,a,r,s,i,o,l,u){this.shape=e,this.shapeShape=t,this.values=n,this.valuesShape=a,this.valuesDType=r,this.defaultValue=s,this.defaultValueShape=i,this.rowPartitionValues=o,this.rowPartitionValuesShapes=l,this.rowPartitionTypes=C.getRowPartitionTypesHelper(u),this.raggedRank=C.getRaggedRank(this.rowPartitionTypes)}getRowPartitionTypeByDimension(e){return this.rowPartitionTypes[0]===Ta.FIRST_DIM_SIZE?this.rowPartitionTypes[e+1]:this.rowPartitionTypes[e]}getRowPartitionTensor(e){return this.rowPartitionTypes[0]===Ta.FIRST_DIM_SIZE?this.rowPartitionValues[e+1]:this.rowPartitionValues[e]}getMaxWidth(e){let t=this.getRowPartitionTensor(e-1);switch(this.getRowPartitionTypeByDimension(e-1)){case Ta.VALUE_ROWIDS:return Ex.getMaxWidthValueRowID(t);case Ta.ROW_SPLITS:return Ex.getMaxWidthRowSplit(t);default:throw new Error(`Cannot handle partition type ${Ta[this.getRowPartitionTypeByDimension(e-1)]}`)}}static getMaxWidthRowSplit(e){let t=e.length;if(t===0||t===1)return 0;let n=0;for(let a=0;an&&(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=TI(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;O(()=>{let m=B(u,h);u=ri(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);II(f,u,o),++c}m<0?(p=h+1,d=c):(p=h,d=c,c=d+1)}}};function II(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 UC(e,t,n,a,r,s,i,o,l,u){return new Ex(e,t,n,a,r,s,i,o,l,u).compute()}function t1(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)),Cq=rp(co,GC),_q={kernelName:co,backendName:"cpu",kernelFunc:Cq};function xl(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 ze(n,t.dtype);let h=ze(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 b=0;b1/(1+Math.exp(-e))),HC=ot(mo,e=>1/(1+Math.exp(-e))),$q={kernelName:mo,backendName:"cpu",kernelFunc:HC};function vm(e,t,n,a,r){let s=qt.isSliceContinous(a,t,n),i=v.sizeFromShape(n),o=v.computeStrides(a);if(s){let d=qt.computeFlatOffset(t,o);return r==="string"?e.slice(d,d+i):e.subarray(d,d+i)}let l=r==="string"?C.fromUint8ToStringArray(e):e,u=ze(a,r,l),p=ze(n,r);for(let d=0;dm+t[f]);p.set(u.get(...h),...c)}return r==="string"?C.fromStringArrayToUint8(p.values):p.values}function xi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;xe(r,"slice");let[o,l]=qt.parseSliceParams(r,s,i);qt.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,p=vm(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var Aq={kernelName:Ru,backendName:"cpu",kernelFunc:xi};function jC(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(C.getSparseFillEmptyRowsIndicesDenseShapeMismatch(o));let g=v.getArrayFromDType(n,0),b=v.getArrayFromDType(r,0);return[g,[0,d],b,u,p]}let c=!0,h=0,m=new Array(l).fill(0);for(let g=0;g=l)throw new Error(C.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,b,l));++m[b],c=c&&b>=h,h=b}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,b=a;for(let y=0;y0){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(C.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let d=t.slice();d[0]=p;let c=d.reduce((y,x)=>y*x,1),h=v.getArrayFromDType(n,c);if(o===0)return p>0&&h.fill(i),[h,d];if(p<=0)throw new Error(C.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=0,f=1,g=0,b=r[m];for(;;){let y=0;if(f=y)throw new Error(C.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(C.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>g&&h.fill(i,g*u,b*u);for(let x=m;x=l[0])throw new Error(C.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(x,a[x],l[0]));for(let I=0;Io)break}return gMath.sqrt(e)),Dq=ot(fo,e=>Math.sqrt(e)),Rq={kernelName:fo,backendName:"cpu",kernelFunc:Dq},KC=Vt((e,t)=>{let n=e-t;return n*n}),Mq=an(yo,KC),Pq={kernelName:yo,backendName:"cpu",kernelFunc:Mq};function XC(e,t,n,a){let r=ze(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let g=0;gg.forEach(b=>h[m++]=b);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 a1(e,t,n,a,r,s,i,o){return new Oq(n,a,r,s,i,o).compute(e,t)}function Lq(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),zq=Y0((e,t,n,a)=>({real:e-n,imag:t-a})),i1=an(xo,YC,zq),Wq={kernelName:xo,backendName:"cpu",kernelFunc:i1};function ZC(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 JC(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));JC(e,t,c,h)}let r=e[t],s=n,i=a;for(v.swap(e,n,t),Zp(e[a],r)>0&&v.swap(e,n,a);s0;)i=i-1}Zp(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 QC(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:y,index:x}),a{for(let g=0;gnew X0,1);var t_=ot(Oi,e=>e>=0?e:Math.exp(e)-1),Bq={kernelName:Oi,backendName:"cpu",kernelFunc:t_};function n_(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;xe([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 a_(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;xe([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=Uq(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var Gq={kernelName:ao,backendName:"cpu",kernelFunc:a_},r_=ot(so,e=>Math.max(0,e)),Hq={kernelName:so,backendName:"cpu",kernelFunc:r_},s_=ot(lo,e=>Math.min(Math.max(0,e),6)),jq={kernelName:lo,backendName:"cpu",kernelFunc:s_};function wm(e,t,n,a,r){if(n==="linear")return fr({inputs:{x:t},backend:e});if(n==="relu")return r_({inputs:{x:t},backend:e});if(n==="elu")return t_({inputs:{x:t},backend:e});if(n==="relu6")return s_({inputs:{x:t},backend:e});if(n==="prelu")return a_({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return n_({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return HC({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function yt(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 qq={kernelName:$u,backendName:"cpu",kernelFunc:yt};function i_(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;xe([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),b=v.sizeFromShape(f),y=qu.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?[b,h,d]:[b,d,h],I=yt({inputs:{x:r},backend:n,attrs:{shape:x}}),N=yt({inputs:{x:s},backend:n,attrs:{shape:w}}),_=i?I.shape[1]:I.shape[2],$=i?I.shape[2]:I.shape[1],A=o?N.shape[1]:N.shape[2],M=Math.max(g,b),D=n.data.get(I.dataId).values,T=n.data.get(N.dataId).values,P=v.computeStrides(I.shape),U=v.computeStrides(N.shape),[j,q,K]=i?[P[0],1,P[1]]:[P[0],P[1],1],[Y,te,re]=o?[1,U[1],U[0]]:[U[1],1,U[0]],J=$*A,ie=ze([M,$,A],I.dtype),ae=ie.values,oe=n.blockSize;for(let ue=0;ueMath.acos(e)),Jq={kernelName:Gl,backendName:"cpu",kernelFunc:Zq},Qq=ot(Hl,e=>Math.acosh(e)),e5={kernelName:Hl,backendName:"cpu",kernelFunc:Qq};function t5(e){let{inputs:t,backend:n}=e,a=t;xe(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=ze(a[0].shape,a[0].dtype),i=s.values;for(let o=0;oy&&(y=I,x=w)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var l5={kernelName:Si,backendName:"cpu",kernelFunc:o5};function u5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;xe(r,"argMin");let i=v.parseAxisParam(s,r.shape),o=C.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Hn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=C.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],C.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[p,d]=C.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 p5={kernelName:Sc,backendName:"cpu",kernelFunc:u5},c5=ot(Kl,e=>Math.asin(e)),d5={kernelName:Kl,backendName:"cpu",kernelFunc:c5},h5=ot(Xl,e=>Math.asinh(e)),m5={kernelName:Xl,backendName:"cpu",kernelFunc:h5},f5=ot(Yl,e=>Math.atan(e)),g5={kernelName:Yl,backendName:"cpu",kernelFunc:f5},b5=Vt((e,t)=>Math.atan2(e,t)),y5=an(Jl,b5),x5={kernelName:Jl,backendName:"cpu",kernelFunc:y5},v5=ot(Zl,e=>Math.atanh(e)),w5={kernelName:Zl,backendName:"cpu",kernelFunc:v5};function o1(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=ze(r.outShape,n),g=f.values,b=r.outShape[1]*r.outShape[2]*r.outShape[3],y=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let w=0;wK?K=ue:s==="avg"&&(Y+=ue,te++)}if(isNaN(K))break}let re=T+P*x+_;g[re]=s==="avg"?Y/te:K}}}return f}function o_(e,t,n,a,r=!1,s=!1){let i=ze(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=ze(t,n,e);for(let g=0;gM&&(M=q,r?D=s?((g*a.inHeight+T)*a.inWidth+U)*a.inChannels+b:(T*a.inWidth+U)*a.inChannels+b:D=P*c+j)}}i.set(D,g,y,N,b)}}return i}function l_(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,b=r.padInfo.left,y=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=ze(r.outShape,n),w=x.values,I=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],N=r.outShape[2]*r.outShape[3]*r.outShape[4],_=r.outShape[3]*r.outShape[4],$=r.outShape[4];for(let A=0;AIe?Ie=dt:s==="avg"&&(Ee+=dt,De++),isNaN(Ie))break}if(isNaN(Ie))break}if(isNaN(Ie))break}let Be=be+T;w[Be]=s==="avg"?Ee/De:Ie}}}}return x}function k5(e,t){let n=ze(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=P&&(P=J,U=q*p*d+Y*p+re)}}}n.set(U,f,b,I,A,g)}}}return n}function I5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;xe(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(C.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=C.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=fr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=o1(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var T5={kernelName:Ni,backendName:"cpu",kernelFunc:I5};function S5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;xe(r,"avgPool3d");let p=C.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=l_(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var N5={kernelName:Nc,backendName:"cpu",kernelFunc:S5};function C5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;xe([r,s],"avgPool3DGrad");let p=C.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,b=p.dilationDepth,y=p.dilationHeight,x=p.dilationWidth,w=p.effectiveFilterDepth,I=p.effectiveFilterHeight,N=p.effectiveFilterWidth,_=w-1-p.padInfo.front,$=N-1-p.padInfo.left,A=I-1-p.padInfo.top,M=ze(s.shape,"float32"),D=1/(m*f*g),T=n.bufferSync(r);for(let P=0;P=p.outDepth||Math.floor(ae)!==ae))for(let oe=0;oe=p.outHeight||Math.floor(ue)!==ue))for(let we=0;we=p.outWidth||Math.floor(be)!==be||(J+=T.get(P,ae,ue,be,U))}}}M.set(J*D,P,j,q,K,U)}return n.makeTensorInfo(M.shape,M.dtype,M.values)}var _5={kernelName:Dm,backendName:"cpu",kernelFunc:C5};function E5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;xe([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=C.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,b=p.effectiveFilterHeight,y=p.effectiveFilterWidth,x=y-1-p.padInfo.left,w=b-1-p.padInfo.top,I=ze(i.shape,"float32"),N=1/(h*m),_=n.data.get(r.dataId).values,$=ze(r.shape,"float32",_);for(let A=0;A=p.outHeight||Math.floor(K)!==K))for(let Y=0;Y=p.outWidth||Math.floor(te)!==te||(j+=$.get(A,K,te,M))}}I.set(j*N,A,D,T,M)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var $5={kernelName:Fm,backendName:"cpu",kernelFunc:E5};function A5(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."),xe([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,b=h.length,y=c.length,x=d.length,w=0,I=0,N=0,_=0;for(let $=0;$=g&&(w=0),I>=x&&(I=0),N>=b&&(N=0),_>=y&&(_=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var F5={kernelName:Bi,backendName:"cpu",kernelFunc:A5};function D5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;xe([r],"batchToSpaceND");let o=s.reduce((b,y)=>b*y),l=C.getReshaped(r.shape,s,o),u=C.getPermuted(l.length,s.length),p=C.getReshapedPermuted(r.shape,s,o),d=C.getSliceBeginCoords(i,s.length),c=C.getSliceSize(p,i,s.length),h=yt({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Hn({inputs:{x:h},backend:n,attrs:{perm:u}}),f=yt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=xi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var R5={kernelName:Ql,backendName:"cpu",kernelFunc:D5};function M5(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=Z0(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var P5={kernelName:Rm,backendName:"cpu",kernelFunc:M5};function O5(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=C.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var L5={kernelName:Mm,backendName:"cpu",kernelFunc:O5},z5=ot(vs,(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),s);if(v.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(f=>v.sizeFromShape(f.shape)>0);if(o.length===1)return fr({inputs:{x:o[0]},backend:n});let l=o.map(f=>f.shape);if(C.assertParamsConsistent(l,s),o[0].dtype==="complex64"){let f=o.map(w=>yi({inputs:{input:w},backend:n})),g=o.map(w=>zl({inputs:{input:w},backend:n})),b=Wl({inputs:f,backend:n,attrs:{axis:s}}),y=Wl({inputs:g,backend:n,attrs:{axis:s}}),x=Jn({inputs:{real:b,imag:y},backend:n});return f.forEach(w=>n.disposeIntermediateTensorInfo(w)),g.forEach(w=>n.disposeIntermediateTensorInfo(w)),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(y),x}let u=o.map(f=>{let g=v.sizeFromShape(f.shape.slice(s));return yt({inputs:{x:f},backend:n,attrs:{shape:[-1,g]}})}),p=u.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));i=C.computeOutShape(u.map(f=>f.shape),1);let d=u[0].shape[0]===1,c=J0(p,i,t[0].dtype,d),h=C.computeOutShape(o.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,c);return u.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var G5={kernelName:eu,backendName:"cpu",kernelFunc:Wl};function u_(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;xe([r,s],"conv2d");let d=C.convertConv2DDataFormat(l),c=C.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h=c.filterHeight,m=c.filterWidth,f=c.dilationHeight,g=c.dilationWidth,b=c.padInfo.left,y=c.padInfo.top,x=c.dataFormat==="channelsLast",w=new jt(c.outShape,r.dtype),I=v.computeStrides(r.shape),N=v.computeStrides(s.shape),_=I[0],$=x?I[1]:I[2],A=x?I[2]:1,M=x?1:I[1],D=w.strides[0],T=x?w.strides[1]:w.strides[2],P=x?w.strides[2]:1,U=x?1:w.strides[1],j=n.data.get(r.dataId).values,q=n.data.get(s.dataId).values,K=w.values;for(let Y=0;Y=c.inHeight)continue;let we=oe*N[0],be=te+ue*$;for(let Ie=0;Ie=c.inWidth)continue;let st=we+Be*N[1],nt=be+je*A,at=st;for(let Ne=0;Ne=u.inDepth)continue;let Y=q*A[0],te=D+K*$[1];for(let re=0;re=u.inHeight)continue;let ue=Y+ae*A[1],we=te+oe*$[2];for(let be=0;be=u.inWidth)continue;let je=ue+De*A[2],st=we+Be*u.inChannels,nt=je;for(let at=0;atMath.cos(e)),aK={kernelName:Fi,backendName:"cpu",kernelFunc:nK},rK=ot(Di,e=>Math.cosh(e)),sK={kernelName:Di,backendName:"cpu",kernelFunc:rK};function iK(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,b=ze([m,f,g,h],"float32"),y=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),N=v.computeStrides(b.shape);for(let _=0;_=p)continue;let U=f>1?(D-A)*(d-1)/(f-1):0,j=g>1?(T-M)*(c-1)/(g-1):0;for(let q=0;q1?A*(d-1)+q*U:.5*(A+D)*(d-1);if(K<0||K>d-1){for(let Y=0;Y1?M*(c-1)+J*j:.5*(M+T)*(c-1);if(ie<0||ie>c-1){for(let we=0;we1?M*(c-1)+Y*j:.5*(M+T)*(c-1);if(te<0||te>c-1){for(let ie=0;ieb+m-y-1:(b,y)=>b+y;for(let b=0;bb+m-y-1:(b,y)=>b+y;for(let b=0;b`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 b=0;b`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let h=C.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:b,padInfo:y}=h,x=y.left,w=y.top,I=h.outChannels/h.inChannels,N=new jt(h.outShape,r.dtype),_=n.data.get(r.dataId).values,$=n.data.get(s.dataId).values,A=N.values;for(let M=0;M=h.inHeight)continue;let Y=q*d[0],te=D+K*p[1];for(let re=0;re=h.inWidth)continue;let ue=Y+ae*d[1],we=te+oe*h.inChannels,be=J,Ie=ue;for(let Ee=0;Ee{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:b,outWidth:y,padInfo:x,strideHeight:w,strideWidth:I,filterHeight:N,filterWidth:_,dilationHeight:$,dilationWidth:A,outShape:M}=C.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),D=v.sizeFromShape(M),T=M.length,P=v.getArrayFromDType(a.dtype,D);for(let U=0;U=0&&ae=0&&uere&&(re=Ie)}}}let J=v.locToIndex([U,j,K,te],T,v.computeStrides(M));P[J]=re}}}return{dataId:l.write(v.toTypedArray(P,a.dtype),M,a.dtype),shape:M,dtype:a.dtype}}},TK={kernelName:em,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:b,padInfo:y,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:N,dilationHeight:_,dilationWidth:$,outShape:A}=C.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===A.length,()=>`Error in ${em}, dy must have the same rank as output ${A.length}, but got ${s.rank}`);let M=v.toNestedArray(A,u.data.get(s.dataId).values),D=v.makeZerosNestedTypedArray(r.shape,r.dtype);for(let T=0;T=0&&ie=0&&oeY&&(Y=ue,te=J,re=ae)}}}D[te][re][K]+=M[T][P][j][K]}}}return{dataId:u.write(v.toTypedArray(D,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},SK={kernelName:Qh,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:b,padInfo:y,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:N,dilationHeight:_,dilationWidth:$,outShape:A}=C.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===A.length,()=>`Error in ${Qh}, dy must have the same rank as output ${A.length}, but got ${s.rank}`);let M=v.toNestedArray(A,u.data.get(s.dataId).values),D=v.makeZerosNestedTypedArray(a.shape,a.dtype);for(let T=0;T=0&&ie=0&&oeY&&(Y=ue,te=ie,re=oe)}}}D[T][te][re][K]+=M[T][P][j][K]}}}return{dataId:u.write(v.toTypedArray(D,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function xd(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;xe(r,"sum");let o;r.dtype==="bool"?o=fs({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=fr({inputs:{x:r},backend:n});let l=o.shape.length,u=v.parseAxisParam(s,o.shape),p=C.getAxesPermutation(u,l),d=u,c=o;p!=null&&(c=Hn({inputs:{x:o},backend:n,attrs:{perm:p}}),d=C.getInnerMostAxes(d.length,l)),C.assertAxesAreInnerMostDims("sum",d,c.shape.length);let[h,m]=C.computeOutAndReduceShapes(c.shape,d),f=C.upcastType(c.dtype,"int32"),g=xm(n,h,f),b=v.sizeFromShape(m),y=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let w=0;w=0&&(c=xd({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 _K={kernelName:Gm,backendName:"cpu",kernelFunc:CK};function EK(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;xe([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 $K={kernelName:Hm,backendName:"cpu",kernelFunc:EK},AK=C.ERF_P,FK=C.ERF_A1,DK=C.ERF_A2,RK=C.ERF_A3,MK=C.ERF_A4,PK=C.ERF_A5,OK=ot(ru,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+AK*n);return t*(1-((((PK*a+MK)*a+RK)*a+DK)*a+FK)*a*Math.exp(-n*n))}),LK={kernelName:ru,backendName:"cpu",kernelFunc:OK};function km(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),yt({inputs:{x:r},backend:n,attrs:{shape:o}})}var zK={kernelName:iu,backendName:"cpu",kernelFunc:km},WK=Vt((e,t)=>e/t),l1=an(Pi,WK),$x={kernelName:Pi,backendName:"cpu",kernelFunc:l1};function c_(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&&yMath.floor(e/t)),YK=an(Wi,XK,null,"int32"),ZK={kernelName:Wi,backendName:"cpu",kernelFunc:YK};function JK(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=u_({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 b=yt({inputs:{x:i},backend:n,attrs:{shape:[i.shape[0],1,1]}});f=Ll({inputs:{a:f,b},backend:n}),n.disposeIntermediateTensorInfo(b)}else f=Ll({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 b=yt({inputs:{x:o},backend:n,attrs:{shape:[o.shape[0],1,1]}});f=wm(n,f,h,b,m),n.disposeIntermediateTensorInfo(b)}else f=wm(n,f,h,o,m);n.disposeIntermediateTensorInfo(g)}return f}var QK={kernelName:ui,backendName:"cpu",kernelFunc:JK};function e8(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=p_({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;f=Ll({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=wm(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var t8={kernelName:pi,backendName:"cpu",kernelFunc:e8};function n8(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]=C.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=EC(c,h,a.dtype,u,o,p,d,a.shape,s);return n.makeTensorInfo(l,a.dtype,m.values)}var a8={kernelName:pu,backendName:"cpu",kernelFunc:n8};function r8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,indices:s}=t,{axis:i,batchDims:o}=a;xe([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=C.segment_util.collectGatherOpShapeInfo(r,s,l,d),m=yt({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=yt({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],b=n.bufferSync(f),y=n.bufferSync(m),x=$C(y,b,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var s8={kernelName:uu,backendName:"cpu",kernelFunc:r8};function i8(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=yt({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=c_(o,!0,n),u=yt({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var o8={kernelName:qm,backendName:"cpu",kernelFunc:i8},l8=ot(du,e=>Number.isFinite(e)?1:0,"bool"),u8={kernelName:du,backendName:"cpu",kernelFunc:l8},p8=ot(hu,e=>Math.abs(e)===1/0?1:0,"bool"),c8={kernelName:hu,backendName:"cpu",kernelFunc:p8},d8=ot(mu,e=>Number.isNaN(e)?1:0,"bool"),h8={kernelName:mu,backendName:"cpu",kernelFunc:d8};function m8(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=MC(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var f8={kernelName:Xm,backendName:"cpu",kernelFunc:m8},g8=ot(bu,e=>Math.log1p(e)),b8={kernelName:bu,backendName:"cpu",kernelFunc:g8},y8=Vt((e,t)=>e&&t),x8=an(yu,y8,null,"bool"),v8={kernelName:yu,backendName:"cpu",kernelFunc:x8},w8=ot(xu,e=>e?0:1,"bool"),k8={kernelName:xu,backendName:"cpu",kernelFunc:w8},I8=Vt((e,t)=>e||t),T8=an(vu,I8,null,"bool"),S8={kernelName:vu,backendName:"cpu",kernelFunc:T8};function N8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;xe(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,b=f-g+Math.max(0,g-s),y=f-g+Math.min(g+s,p),x=0;for(;b<=y;b++){let w=d[b];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=C.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=fr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=o1(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var F8={kernelName:Ki,backendName:"cpu",kernelFunc:A8};function D8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;xe(r,"maxPool3d");let p=C.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=l_(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var R8={kernelName:Fc,backendName:"cpu",kernelFunc:D8};function M8(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;xe([r,s],"maxPool3DGrad");let p=C.computePool3DInfo(s.shape,i,o,1,l,u),d=n.bufferSync(s),c=k5(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,b=p.dilationHeight,y=p.dilationWidth,x=p.effectiveFilterDepth,w=p.effectiveFilterHeight,I=p.effectiveFilterWidth,N=x-1-p.padInfo.front,_=I-1-p.padInfo.left,$=w-1-p.padInfo.top,A=ze(s.shape,"float32"),M=n.bufferSync(r);for(let D=0;D=p.outDepth||Math.floor(J)!==J))for(let ie=0;ie=p.outHeight||Math.floor(ae)!==ae))for(let oe=0;oe=p.outWidth||Math.floor(ue)!==ue)continue;let we=x*w*I-1-c.get(D,J,ae,ue,T),be=re*w*I+ie*I+oe,Ie=we===be?1:0;Ie!==0&&(te+=M.get(D,J,ae,ue,T)*Ie)}}}A.set(te,D,P,U,j,T)}return n.makeTensorInfo(A.shape,A.dtype,A.values)}var P8={kernelName:Jm,backendName:"cpu",kernelFunc:M8};function O8(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;xe([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=C.computePool2DInfo(o.shape,l,u,1,p,d),h=n.data.get(o.dataId).values,m=ze(c.outShape,o.dtype,o_(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,b=c.dilationHeight,y=c.dilationWidth,x=c.effectiveFilterHeight,w=c.effectiveFilterWidth,I=w-1-c.padInfo.left,N=x-1-c.padInfo.top,_=ze(o.shape,"float32"),$=n.data.get(r.dataId).values,A=ze(r.shape,"float32",$);for(let M=0;M=c.outHeight||Math.floor(Y)!==Y))for(let te=0;te=c.outWidth||Math.floor(re)!==re)continue;let J=x*w-1-m.get(M,Y,re,D),ie=K*w+te,ae=J===ie?1:0;ae!==0&&(q+=A.get(M,Y,re,D)*ae)}}_.set(q,M,T,P,D)}return n.makeTensorInfo(_.shape,_.dtype,_.values)}var L8={kernelName:Zm,backendName:"cpu",kernelFunc:O8};function z8(e,t,n,a,r){let s=v.computeStrides(t),i=o1(e,t,n,s,r,"max"),o=o_(e,t,n,r,!0,a);return[i.values,o.values]}var W8={kernelName:Qm,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;xe(a,"MaxPoolWithArgmax");let u=l.data.get(a.dataId).values,p=C.computePool2DInfo(a.shape,r,s,[1,1],i),[d,c]=z8(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 B8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=v.parseAxisParam(s,r.shape),l=C.computeOutAndReduceShapes(r.shape,o)[1],u=v.sizeFromShape(l),p=[],d=n.makeTensorInfo([],"float32",new Float32Array([u]));p.push(d);let c=fs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=l1({inputs:{a:c,b:d},backend:n});p.push(h);let m=xd({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var V8={kernelName:Xi,backendName:"cpu",kernelFunc:B8};function U8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;xe(r,"min");let o=v.parseAxisParam(s,r.shape),l=o,u=C.getAxesPermutation(l,r.shape.length),p=r;u!=null&&(p=Hn({inputs:{x:r},backend:n,attrs:{perm:u}}),l=C.getInnerMostAxes(l.length,r.shape.length)),C.assertAxesAreInnerMostDims("min",l,p.shape.length);let[d,c]=C.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 b=0;by[0]+r.shape[x]+y[1]),l=s.map(y=>y[0]),u=s.map((y,x)=>y[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),b=v.getTypedArrayFromDType(r.dtype,m);for(let y=0;y=u[I]&&(x[I]=(u[I]-1)*2-x[I]+p);x=x.map((I,N)=>I-l[N]);let w=v.locToIndex(x,c,h);b[y]=d[w]}return{dataId:n.write(b,o,r.dtype),shape:o,dtype:r.dtype}}var j8={kernelName:Ji,backendName:"cpu",kernelFunc:H8},q8=Vt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),K8=an(wu,q8),X8={kernelName:wu,backendName:"cpu",kernelFunc:K8},Y8=bs(_m());function h_(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=d_({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=C.expandShapeToKeepDim(u.shape,l),d=yt({inputs:{x:u},backend:n,attrs:{shape:p}}),c=i1({inputs:{a:r,b:d},backend:n}),h=NC({inputs:{x:c},backend:n}),m=xd({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=yt({inputs:{x:m},backend:n,attrs:{shape:p}}),g=l1({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 Z8={kernelName:bo,backendName:"cpu",kernelFunc:h_};function J8(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;xe(r,"multinomial");let l=o?r:h_({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=km({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=Wl({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var hX={kernelName:_u,backendName:"cpu",kernelFunc:f_};function mX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;xe(r,"pad");let o=s.map((b,y)=>b[0]+r.shape[y]+b[1]),l=s.map(b=>b[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 b=0;bw+l[I]),x=v.locToIndex(y,m,f);g[x]=u[b]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var g_={kernelName:to,backendName:"cpu",kernelFunc:mX},fX=Vt((e,t)=>Math.pow(e,t)),gX=an(no,fX),bX={kernelName:no,backendName:"cpu",kernelFunc:gX};function yX(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]=UC(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var xX={kernelName:tf,backendName:"cpu",kernelFunc:yX};function vX(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=t1(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var wX={kernelName:Dc,backendName:"cpu",kernelFunc:vX},kX=ot(Eu,e=>1/e),IX={kernelName:Eu,backendName:"cpu",kernelFunc:kX};function TX(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;xe(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])),b=[s&&u>1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,w=b[0]/y[0],I=b[1]/y[1];for(let N=0;N1?u-1:u,i&&h>1?p-1:p],g=[i&&c>1?c-1:c,i&&h>1?h-1:h],b=f[0]/g[0],y=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],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=b[0]/y[0],w=b[1]/y[1],I=0;for(let N=0;N1?p-1:p,i&&m>1?d-1:d],y=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=b[0]/y[0],w=b[1]/y[1],I=1/x,N=1/w,_=Math.ceil(I)*2+2,$=Math.ceil(N)*2+2;for(let A=0;A=h)continue;let ae=M+ie*l[1],oe=ie*x,ue=Math.min(p-1,i?Math.round(oe):Math.floor(oe));if(D===ue)for(let we=0;we<$;we++){let be=we+Y;if(be<0||be>=m)continue;let Ie=ae+be*l[2],Ee=be*w,De=Math.min(d-1,i?Math.round(Ee):Math.floor(Ee));j===De&&(re+=g[Ie+te])}}f[q+te]=re}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var AX={kernelName:af,backendName:"cpu",kernelFunc:$X};function FX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;xe(r,"reverse");let i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return fr({inputs:{x:r},backend:n});let l=new jt(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 DX={kernelName:uo,backendName:"cpu",kernelFunc:FX},RX={kernelName:ju,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]=C.getImageCenter(i,p,d),f=255,g=Math.sin(r),b=Math.cos(r),y=o.data.get(a.dataId).values;for(let x=0;x=0&&P=0&&U{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),PX={kernelName:po,backendName:"cpu",kernelFunc:MX};function OX(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}=C.calculateShapes(s,r,i),c=!0,h=n.bufferSync(r),m=n.bufferSync(s),f=xl(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var LX={kernelName:Au,backendName:"cpu",kernelFunc:OX};function zX(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?qX*e:jX*(Math.exp(e)-1)),XX={kernelName:Du,backendName:"cpu",kernelFunc:KX},YX=ot(Pu,e=>e<0?-1:e>0?1:0),ZX={kernelName:Pu,backendName:"cpu",kernelFunc:YX},JX=ot(ho,e=>Math.sin(e)),QX={kernelName:ho,backendName:"cpu",kernelFunc:JX},e7=ot(Mu,e=>Math.sinh(e)),t7={kernelName:Mu,backendName:"cpu",kernelFunc:e7},n7=11920928955078125e-23,SI=Math.log(n7)+2,a7=ot(Ou,e=>{let t=e>-SI,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 er().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 cj(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};A0.nextDataId=0;var eC={};_e(eC,{addImpl:()=>aC,bincountImpl:()=>F0,bincountReduceImpl:()=>rC,castImpl:()=>nC,ceilImpl:()=>sC,concatImpl:()=>D0,equalImpl:()=>iC,expImpl:()=>lC,expm1Impl:()=>pC,floorImpl:()=>cC,gatherNdImpl:()=>dC,gatherV2Impl:()=>hC,greaterEqualImpl:()=>fC,greaterImpl:()=>mC,lessEqualImpl:()=>bC,lessImpl:()=>gC,linSpaceImpl:()=>yC,logImpl:()=>xC,maxImpl:()=>vC,maximumImpl:()=>wC,minimumImpl:()=>kC,multiplyImpl:()=>R0,negImpl:()=>IC,notEqualImpl:()=>SC,prodImpl:()=>TC,raggedGatherImpl:()=>NC,raggedTensorToTensorImpl:()=>CC,rangeImpl:()=>P0,rsqrtImpl:()=>_C,scatterImpl:()=>ol,sigmoidImpl:()=>sq,simpleAbsImpl:()=>tC,sliceImpl:()=>Zh,sparseFillEmptyRowsImpl:()=>AC,sparseReshapeImpl:()=>$C,sparseSegmentReductionImpl:()=>O0,sqrtImpl:()=>lq,squaredDifferenceImpl:()=>FC,stridedSliceImpl:()=>DC,stringNGramsImpl:()=>L0,stringSplitImpl:()=>z0,stringToHashBucketFastImpl:()=>B0,subImpl:()=>RC,tileImpl:()=>MC,topKImpl:()=>OC,transposeImpl:()=>M0,uniqueImpl:()=>LC});function tC(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=tC(r),n.makeOutput(a,t.shape,t.dtype)},hj={kernelName:$l,backendName:"cpu",kernelFunc:dj};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 b=0;bx[C]=0);let w=v.locToIndex(x,d,h),I=y.slice(-c);g.forEach(C=>I[C]=0);let T=v.locToIndex(I,c,m);p[b]=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 mj={kernelName:hm,backendName:"cpu",kernelFunc:Yn};function Yh(e,t,n="float32"){if(n==="complex64"){let r=Yh(e,t,"float32"),s=Yh(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 ur(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 fj={kernelName:Ri,backendName:"cpu",kernelFunc:ur};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 gj={kernelName:Rm,backendName:"cpu",kernelFunc:ui};function nC(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 cs(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return ur({inputs:{x:r},backend:n});let p=Yh(n,r.shape,r.dtype),d=cs({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=ui({inputs:{input:r},backend:n}),d=cs({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!v.hasEncodingLoss(r.dtype,s)){let p=ur({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]=nC(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var bj={kernelName:xi,backendName:"cpu",kernelFunc:cs};function tn(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=cs({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=cs({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),b=g.complexTensorInfos.real,y=g.complexTensorInfos.imag,x=l.data.get(b.dataId).values,w=l.data.get(y.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 $0(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),b=t.length,y=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,b,y),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 aC=Vt((e,t)=>e+t),yj=$0((e,t,n,a)=>({real:e+n,imag:t+a})),Nl=tn(fs,aC,yj),xj={kernelName:fs,backendName:"cpu",kernelFunc:Nl};function F0(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 rC(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 sC=Cs(e=>Math.ceil(e)),vj=ju(vi,sC),wj={kernelName:vi,backendName:"cpu",kernelFunc:vj};function D0(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),oC=tn(ql,iC,null,"bool"),kj={kernelName:ql,backendName:"cpu",kernelFunc:oC},lC=Cs(e=>Math.exp(e)),uC=ju(Ei,lC,"float32"),Ij={kernelName:Ei,backendName:"cpu",kernelFunc:uC},pC=Cs(e=>Math.expm1(e)),Sj=ju(Xl,pC),Tj={kernelName:Xl,backendName:"cpu",kernelFunc:Sj},cC=Cs(e=>Math.floor(e)),Nj=ju(Ai,cC),Cj={kernelName:Ai,backendName:"cpu",kernelFunc:Nj};function dC(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),_j=tn(Ql,mC,null,"bool"),Ej={kernelName:Ql,backendName:"cpu",kernelFunc:_j},fC=Vt((e,t)=>e>=t?1:0),Aj=tn(Di,fC,null,"bool"),$j={kernelName:Di,backendName:"cpu",kernelFunc:Aj},gC=Vt((e,t)=>ee<=t?1:0),Rj=tn(ru,bC,null,"bool"),Mj={kernelName:ru,backendName:"cpu",kernelFunc:Rj};function yC(e,t,n){let a=(t-e)/(n-1),r=v.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),Pj=ju(Pi,xC),Oj={kernelName:Pi,backendName:"cpu",kernelFunc:Pj};function vC(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 wC=Vt((e,t)=>Math.max(e,t)),Lj=tn(Li,wC),zj={kernelName:Li,backendName:"cpu",kernelFunc:Lj},kC=Vt((e,t)=>Math.min(e,t)),Bj=tn(Vi,kC),Wj={kernelName:Vi,backendName:"cpu",kernelFunc:Bj},R0=Vt((e,t)=>e*t),Vj=$0((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Hf=tn(Gi,R0,Vj),Uj={kernelName:Gi,backendName:"cpu",kernelFunc:Hf};function IC(e,t,n){let a=v.createScalarValue(-1,n);return R0([],t,a,e,n)}function Gj(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=IC(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var Hj={kernelName:pu,backendName:"cpu",kernelFunc:Gj},SC=Vt((e,t)=>e!==t?1:0),jj=tn(cu,SC,null,"bool"),qj={kernelName:cu,backendName:"cpu",kernelFunc:jj};function M0(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(y)),n.makeTensorInfo(b,g,m)}var Yj={kernelName:Xi,backendName:"cpu",kernelFunc:Xj};function Zj(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 Jj(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 Qj(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);Jj(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let b=p;br[i]=s)}return t}function tI(e,t){let n=e.slice(0,t);for(;n.lengthn&&(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 Sa.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(r,t,n,a);case Sa.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: ${Sa[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 Sa.FIRST_DIM_SIZE:return e[0];case Sa.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Sa.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Sa[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=aI(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=B(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);nI(f,u,o),++c}m<0?(p=h+1,d=c):(p=h,d=c,c=d+1)}}};function nI(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 CC(e,t,n,a,r,s,i,o,l,u){return new ux(e,t,n,a,r,s,i,o,l,u).compute()}function P0(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)),aq=ju(no,_C),rq={kernelName:no,backendName:"cpu",kernelFunc:aq};function ol(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 b=0;b1/(1+Math.exp(-e))),EC=rt(ro,e=>1/(1+Math.exp(-e))),iq={kernelName:ro,backendName:"cpu",kernelFunc:EC};function Zh(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=Zh(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var oq={kernelName:ku,backendName:"cpu",kernelFunc:pi};function AC(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),b=v.getArrayFromDType(r,0);return[g,[0,d],b,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,b,l));++m[b],c=c&&b>=h,h=b}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,b=a;for(let y=0;y0){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((y,x)=>y*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,b=r[m];for(;;){let y=0;if(f=y)throw new Error(N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>g&&h.fill(i,g*u,b*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)),uq=rt(so,e=>Math.sqrt(e)),pq={kernelName:so,backendName:"cpu",kernelFunc:uq},FC=Vt((e,t)=>{let n=e-t;return n*n}),cq=tn(lo,FC),dq={kernelName:lo,backendName:"cpu",kernelFunc:cq};function DC(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(b=>h[m++]=b);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 L0(e,t,n,a,r,s,i,o){return new hq(n,a,r,s,i,o).compute(e,t)}function mq(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),fq=$0((e,t,n,a)=>({real:e-n,imag:t-a})),W0=tn(uo,RC,fq),gq={kernelName:uo,backendName:"cpu",kernelFunc:W0};function MC(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 PC(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));PC(e,t,c,h)}let r=e[t],s=n,i=a;for(v.swap(e,n,t),Mp(e[a],r)>0&&v.swap(e,n,a);s0;)i=i-1}Mp(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 OC(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:y,index:x}),a{for(let g=0;gnew A0,1);var zC=rt(_i,e=>e>=0?e:Math.exp(e)-1),bq={kernelName:_i,backendName:"cpu",kernelFunc:zC};function BC(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 WC(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]=xq(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var vq={kernelName:Ki,backendName:"cpu",kernelFunc:WC},VC=rt(Yi,e=>Math.max(0,e)),wq={kernelName:Yi,backendName:"cpu",kernelFunc:VC},UC=rt(Qi,e=>Math.min(Math.max(0,e),6)),kq={kernelName:Qi,backendName:"cpu",kernelFunc:UC};function Jh(e,t,n,a,r){if(n==="linear")return ur({inputs:{x:t},backend:e});if(n==="relu")return VC({inputs:{x:t},backend:e});if(n==="elu")return zC({inputs:{x:t},backend:e});if(n==="relu6")return UC({inputs:{x:t},backend:e});if(n==="prelu")return WC({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return BC({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return EC({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 Iq={kernelName:yu,backendName:"cpu",kernelFunc:ft};function GC(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),b=v.sizeFromShape(f),y=Mu.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?[b,h,d]:[b,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,b),F=n.data.get(I.dataId).values,S=n.data.get(T.dataId).values,M=v.computeStrides(I.shape),W=v.computeStrides(T.shape),[U,G,q]=i?[M[0],1,M[1]]:[M[0],M[1],1],[K,Z,Q]=o?[1,W[1],W[0]]:[W[1],1,W[0]],ee=E*A,ae=Oe([R,E,A],I.dtype),te=ae.values,le=n.blockSize;for(let ie=0;ieMath.acos(e)),_q={kernelName:Fl,backendName:"cpu",kernelFunc:Cq},Eq=rt(Dl,e=>Math.acosh(e)),Aq={kernelName:Dl,backendName:"cpu",kernelFunc:Eq};function $q(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;oy&&(y=I,x=w)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var Lq={kernelName:gi,backendName:"cpu",kernelFunc:Oq};function zq(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=Wn({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 Bq={kernelName:uc,backendName:"cpu",kernelFunc:zq},Wq=rt(Pl,e=>Math.asin(e)),Vq={kernelName:Pl,backendName:"cpu",kernelFunc:Wq},Uq=rt(Ol,e=>Math.asinh(e)),Gq={kernelName:Ol,backendName:"cpu",kernelFunc:Uq},Hq=rt(Ll,e=>Math.atan(e)),jq={kernelName:Ll,backendName:"cpu",kernelFunc:Hq},qq=Vt((e,t)=>Math.atan2(e,t)),Kq=tn(Bl,qq),Xq={kernelName:Bl,backendName:"cpu",kernelFunc:Kq},Yq=rt(zl,e=>Math.atanh(e)),Zq={kernelName:zl,backendName:"cpu",kernelFunc:Yq};function V0(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,b=r.outShape[1]*r.outShape[2]*r.outShape[3],y=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 HC(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+W)*a.inChannels+b:(S*a.inWidth+W)*a.inChannels+b:F=M*c+U)}}i.set(F,g,y,T,b)}}return i}function jC(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,b=r.padInfo.left,y=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 Jq(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,W=G*p*d+K*p+Q)}}}n.set(W,f,b,I,A,g)}}}return n}function Qq(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=ur({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=V0(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var e5={kernelName:bi,backendName:"cpu",kernelFunc:Qq};function t5(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=jC(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var n5={kernelName:pc,backendName:"cpu",kernelFunc:t5};function a5(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,b=p.dilationDepth,y=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 be=0;be=p.outWidth||Math.floor(ue)!==ue||(ee+=S.get(M,te,ie,ue,W))}}}R.set(ee*F,M,U,G,q,W)}return n.makeTensorInfo(R.shape,R.dtype,R.values)}var r5={kernelName:pm,backendName:"cpu",kernelFunc:a5};function s5(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,b=p.effectiveFilterHeight,y=p.effectiveFilterWidth,x=y-1-p.padInfo.left,w=b-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 i5={kernelName:um,backendName:"cpu",kernelFunc:s5};function o5(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,b=h.length,y=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>=b&&(T=0),C>=y&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var l5={kernelName:Fi,backendName:"cpu",kernelFunc:o5};function u5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((b,y)=>b*y),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=Wn({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 p5={kernelName:Wl,backendName:"cpu",kernelFunc:u5};function c5(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=F0(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var d5={kernelName:cm,backendName:"cpu",kernelFunc:c5};function h5(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 m5={kernelName:dm,backendName:"cpu",kernelFunc:h5},f5=rt(gs,(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 ur({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=>Cl({inputs:{input:w},backend:n})),b=_l({inputs:f,backend:n,attrs:{axis:s}}),y=_l({inputs:g,backend:n,attrs:{axis:s}}),x=Yn({inputs:{real:b,imag:y},backend:n});return f.forEach(w=>n.disposeIntermediateTensorInfo(w)),g.forEach(w=>n.disposeIntermediateTensorInfo(w)),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(y),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=D0(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 v5={kernelName:Vl,backendName:"cpu",kernelFunc:_l};function qC(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,b=c.padInfo.left,y=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,W=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 be=le*T[0],ue=Z+ie*E;for(let xe=0;xe=c.inWidth)continue;let tt=be+Le*T[1],it=ue+Ve*A,et=tt;for(let nt=0;nt=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],be=Z+le*E[2];for(let ue=0;ue=u.inWidth)continue;let Ve=ie+Se*A[2],tt=be+Le*u.inChannels,it=Ve;for(let et=0;etMath.cos(e)),D5={kernelName:Ii,backendName:"cpu",kernelFunc:F5},R5=rt(Si,e=>Math.cosh(e)),M5={kernelName:Si,backendName:"cpu",kernelFunc:R5};function P5(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,b=Oe([m,f,g,h],"float32"),y=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(b.shape);for(let C=0;C=p)continue;let W=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*W:.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 be=0;be1?R*(c-1)+K*U:.5*(R+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aeb+m-y-1:(b,y)=>b+y;for(let b=0;bb+m-y-1:(b,y)=>b+y;for(let b=0;b`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 b=0;b`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:b,padInfo:y}=h,x=y.left,w=y.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],be=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:b,outWidth:y,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 W=0;W=0&&te=0&&ieQ&&(Q=xe)}}}let ee=v.locToIndex([W,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}}},e8={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:b,padInfo:y,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}}},t8={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:b,padInfo:y,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 rd(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=cs({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=ur({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=Wn({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=Yh(n,h,f),b=v.sizeFromShape(m),y=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let w=0;w=0&&(c=rd({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 r8={kernelName:wm,backendName:"cpu",kernelFunc:a8};function s8(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 i8={kernelName:km,backendName:"cpu",kernelFunc:s8},o8=N.ERF_P,l8=N.ERF_A1,u8=N.ERF_A2,p8=N.ERF_A3,c8=N.ERF_A4,d8=N.ERF_A5,h8=rt(jl,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+o8*n);return t*(1-((((d8*a+c8)*a+p8)*a+u8)*a+l8)*a*Math.exp(-n*n))}),m8={kernelName:jl,backendName:"cpu",kernelFunc:h8};function Qh(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 f8={kernelName:Kl,backendName:"cpu",kernelFunc:Qh},g8=Vt((e,t)=>e/t),U0=tn(Ci,g8),px={kernelName:Ci,backendName:"cpu",kernelFunc:U0};function XC(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&&yMath.floor(e/t)),N8=tn($i,T8,null,"int32"),C8={kernelName:$i,backendName:"cpu",kernelFunc:N8};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=qC({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 b=ft({inputs:{x:i},backend:n,attrs:{shape:[i.shape[0],1,1]}});f=Nl({inputs:{a:f,b},backend:n}),n.disposeIntermediateTensorInfo(b)}else f=Nl({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 b=ft({inputs:{x:o},backend:n,attrs:{shape:[o.shape[0],1,1]}});f=Jh(n,f,h,b,m),n.disposeIntermediateTensorInfo(b)}else f=Jh(n,f,h,o,m);n.disposeIntermediateTensorInfo(g)}return f}var E8={kernelName:ei,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=KC({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;f=Nl({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Jh(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var $8={kernelName:ti,backendName:"cpu",kernelFunc:A8};function F8(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=dC(c,h,a.dtype,u,o,p,d,a.shape,s);return n.makeTensorInfo(l,a.dtype,m.values)}var D8={kernelName:Jl,backendName:"cpu",kernelFunc:F8};function R8(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],b=n.bufferSync(f),y=n.bufferSync(m),x=hC(y,b,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var M8={kernelName:Zl,backendName:"cpu",kernelFunc:R8};function P8(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=XC(o,!0,n),u=ft({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var O8={kernelName:Sm,backendName:"cpu",kernelFunc:P8},L8=rt(eu,e=>Number.isFinite(e)?1:0,"bool"),z8={kernelName:eu,backendName:"cpu",kernelFunc:L8},B8=rt(tu,e=>Math.abs(e)===1/0?1:0,"bool"),W8={kernelName:tu,backendName:"cpu",kernelFunc:B8},V8=rt(nu,e=>Number.isNaN(e)?1:0,"bool"),U8={kernelName:nu,backendName:"cpu",kernelFunc:V8};function G8(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=yC(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var H8={kernelName:Nm,backendName:"cpu",kernelFunc:G8},j8=rt(su,e=>Math.log1p(e)),q8={kernelName:su,backendName:"cpu",kernelFunc:j8},K8=Vt((e,t)=>e&&t),X8=tn(iu,K8,null,"bool"),Y8={kernelName:iu,backendName:"cpu",kernelFunc:X8},Z8=rt(ou,e=>e?0:1,"bool"),J8={kernelName:ou,backendName:"cpu",kernelFunc:Z8},Q8=Vt((e,t)=>e||t),eK=tn(lu,Q8,null,"bool"),tK={kernelName:lu,backendName:"cpu",kernelFunc:eK};function nK(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,b=f-g+Math.max(0,g-s),y=f-g+Math.min(g+s,p),x=0;for(;b<=y;b++){let w=d[b];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=ur({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=V0(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var lK={kernelName:zi,backendName:"cpu",kernelFunc:oK};function uK(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=jC(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var pK={kernelName:gc,backendName:"cpu",kernelFunc:uK};function cK(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=Jq(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,b=p.dilationHeight,y=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 be=x*w*I-1-c.get(F,ee,te,ie,S),ue=Q*w*I+ae*I+le,xe=be===ue?1:0;xe!==0&&(Z+=R.get(F,ee,te,ie,S)*xe)}}}A.set(Z,F,M,W,U,S)}return n.makeTensorInfo(A.shape,A.dtype,A.values)}var dK={kernelName:Em,backendName:"cpu",kernelFunc:cK};function hK(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,HC(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,b=c.dilationHeight,y=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 mK={kernelName:_m,backendName:"cpu",kernelFunc:hK};function fK(e,t,n,a,r){let s=v.computeStrides(t),i=V0(e,t,n,s,r,"max"),o=HC(e,t,n,r,!0,a);return[i.values,o.values]}var gK={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]=fK(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 bK(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=cs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=U0({inputs:{a:c,b:d},backend:n});p.push(h);let m=rd({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var yK={kernelName:Bi,backendName:"cpu",kernelFunc:bK};function xK(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=Wn({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 b=0;by[0]+r.shape[x]+y[1]),l=s.map(y=>y[0]),u=s.map((y,x)=>y[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),b=v.getTypedArrayFromDType(r.dtype,m);for(let y=0;y=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);b[y]=d[w]}return{dataId:n.write(b,o,r.dtype),shape:o,dtype:r.dtype}}var kK={kernelName:Ui,backendName:"cpu",kernelFunc:wK},IK=Vt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),SK=tn(uu,IK),TK={kernelName:uu,backendName:"cpu",kernelFunc:SK},NK=hs(sm());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=YC({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=W0({inputs:{a:r,b:d},backend:n}),h=uC({inputs:{x:c},backend:n}),m=rd({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=U0({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 CK={kernelName:oo,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=Qh({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 UK={kernelName:gu,backendName:"cpu",kernelFunc:QC};function GK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((b,y)=>b[0]+r.shape[y]+b[1]),l=s.map(b=>b[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 b=0;bw+l[I]),x=v.locToIndex(y,m,f);g[x]=u[b]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var e_={kernelName:ji,backendName:"cpu",kernelFunc:GK},HK=Vt((e,t)=>Math.pow(e,t)),jK=tn(qi,HK),qK={kernelName:qi,backendName:"cpu",kernelFunc:jK};function KK(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.data.get(b.dataId).values),u=r.map(b=>b.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=NC(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var XK={kernelName:Fm,backendName:"cpu",kernelFunc:KK};function YK(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]=CC(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var ZK={kernelName:Dm,backendName:"cpu",kernelFunc:YK};function JK(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=P0(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var QK={kernelName:bc,backendName:"cpu",kernelFunc:JK},eX=rt(bu,e=>1/e),tX={kernelName:bu,backendName:"cpu",kernelFunc:eX};function nX(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])),b=[s&&u>1?c-1:c,s&&p>1?h-1:h],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,w=b[0]/y[0],I=b[1]/y[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],b=f[0]/g[0],y=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],y=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=b[0]/y[0],w=b[1]/y[1],I=0;for(let T=0;T1?p-1:p,i&&m>1?d-1:d],y=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=b[0]/y[0],w=b[1]/y[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 be=0;be=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 uX={kernelName:Mm,backendName:"cpu",kernelFunc:lX};function pX(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 ur({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 cX={kernelName:eo,backendName:"cpu",kernelFunc:pX},dX={kernelName:Ru,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),b=Math.cos(r),y=o.data.get(a.dataId).values;for(let x=0;x=0&&M=0&&W{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),mX={kernelName:to,backendName:"cpu",kernelFunc:hX};function fX(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=ol(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var gX={kernelName:xu,backendName:"cpu",kernelFunc:fX};function bX(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?TX*e:SX*(Math.exp(e)-1)),CX={kernelName:wu,backendName:"cpu",kernelFunc:NX},_X=rt(Su,e=>e<0?-1:e>0?1:0),EX={kernelName:Su,backendName:"cpu",kernelFunc:_X},AX=rt(ao,e=>Math.sin(e)),$X={kernelName:ao,backendName:"cpu",kernelFunc:AX},FX=rt(Iu,e=>Math.sinh(e)),DX={kernelName:Iu,backendName:"cpu",kernelFunc:FX},RX=11920928955078125e-23,rI=Math.log(RX)+2,MX=rt(Tu,e=>{let t=e>-rI,n=eNumber(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var l7={kernelName:Rc,backendName:"cpu",kernelFunc:o7};function u7(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 + ${i.shape}`);let o=n.data.get(a.dataId).values,l=n.data.get(r.dataId).values,u=n.data.get(s.dataId).values,p=n.data.get(i.dataId).values[0],[d,c,h,m,f]=AC(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 BX={kernelName:yc,backendName:"cpu",kernelFunc:zX};function WX(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]=qC(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var p7={kernelName:Wu,backendName:"cpu",kernelFunc:u7};function c7(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]=$C(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var VX={kernelName:_u,backendName:"cpu",kernelFunc:WX};function UX(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]=n1(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var d7={kernelName:Mc,backendName:"cpu",kernelFunc:c7};function h7(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 + ${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]=O0(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var GX={kernelName:xc,backendName:"cpu",kernelFunc:UX};function HX(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]=n1(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var m7={kernelName:Pc,backendName:"cpu",kernelFunc:h7};function f7(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}=C.calculateShapes(s,r,o),h=!1,m=n.bufferSync(r),f;switch(s.dtype){case"bool":{let g=n.bufferSync(s),b=Boolean(n.data.get(i.dataId).values[0]);f=xl(m,g,o,c,p,u,l,d,b,h);break}case"float32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=xl(m,g,o,c,p,u,l,d,b,h);break}case"int32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=xl(m,g,o,c,p,u,l,d,b,h);break}case"string":{let g=n.bufferSync(s),b=v.decodeString(n.data.get(i.dataId).values[0]);f=xl(m,g,o,c,p,u,l,d,b,h);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var g7={kernelName:of,backendName:"cpu",kernelFunc:f7};function b7(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=C.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=xi({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var y7={kernelName:zu,backendName:"cpu",kernelFunc:b7},x7={kernelName:Oc,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;xe(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}),w7={kernelName:ks,backendName:"cpu",kernelFunc:v7};function k7(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;xe(r,"stridedSlice");let{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:b,begin:y,end:x,strides:w}=qt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=yt({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let N=qt.computeOutShape(y,x,w),_=xi({inputs:{x:r},backend:n,attrs:{begin:y,size:N}});I=yt({inputs:{x:_},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(_)}else{let N=n.bufferSync(r),_=XC(h,N,w,y);I=n.makeTensorInfo(m,_.dtype,_.values)}return I}var I7={kernelName:Bu,backendName:"cpu",kernelFunc:k7};function T7(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]=a1(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var S7={kernelName:Lc,backendName:"cpu",kernelFunc:T7};function N7(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]=r1(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 C7={kernelName:zc,backendName:"cpu",kernelFunc:N7};function _7(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=s1(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var E7={kernelName:Wc,backendName:"cpu",kernelFunc:_7},$7=ot(vo,e=>Math.tan(e)),A7={kernelName:vo,backendName:"cpu",kernelFunc:$7},F7=ot(wo,e=>Math.tanh(e)),D7={kernelName:wo,backendName:"cpu",kernelFunc:F7};function R7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;xe(r,"tile");let i=ZC(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var M7={kernelName:ws,backendName:"cpu",kernelFunc:R7};function P7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;xe(r,"topk");let o=n.data.get(r.dataId).values,[l,u]=QC(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 O7={kernelName:Vu,backendName:"cpu",kernelFunc:P7};function L7(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],b=v.computeStrides(r.shape),y=b[0],x=b[1],w=b[2],I=v.computeStrides(g),N=I[0],_=I[1],$=I[2],A=v.getTypedArrayFromDType(r.dtype,v.sizeFromShape(g));A.fill(l);let M=a.data.get(r.dataId).values,D=a.data.get(s.dataId).values;for(let T=0;Tt-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 B7(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 V7(e,t){return e}function U7(e,t){return v.clamp(0,e,t-1)}function Jp(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 Z7={kernelName:Bc,backendName:"cpu",kernelFunc:Y7},J7=[Yq,Uj,Jq,e5,Xj,n5,r5,i5,l5,p5,d5,m5,g5,x5,w5,T5,N5,_5,$5,Kq,F5,R5,P5,L5,qj,Zj,W5,Gj,V5,G5,H5,q5,X5,Z5,Q5,tK,aK,sK,oK,uK,cK,hK,fK,gK,yK,vK,kK,IK,TK,SK,_K,Bq,$K,Jj,LK,Qj,zK,tq,HK,jK,KK,aq,ZK,QK,t8,a8,s8,sq,oq,Hj,o8,U5,u8,c8,h8,Vq,uq,cq,f8,hq,b8,v8,k8,S8,C8,E8,$8,fq,F8,R8,P8,L8,W8,V8,G8,bq,j8,X8,Q8,xq,wq,nX,sX,lX,Iq,pX,dX,hX,g_,bX,Gq,Nq,xX,wX,jj,$x,IX,Hq,jq,qq,SX,CX,EX,AX,DX,RX,PX,_q,LX,UX,HX,XX,$q,ZX,QX,t7,Aq,Z8,r7,i7,l7,p7,d7,m7,g7,y7,Rq,x7,Pq,w7,I7,S7,C7,E7,Wq,NK,A7,D7,M7,O7,z7,Tq,q7,X7,Z7,cX];for(let e of J7)Vc(e);var b_={};Fe(b_,{assertNotComplex:()=>ip,bindCanvasToFramebuffer:()=>uY,bindColorTextureToFramebuffer:()=>Gh,bindTextureToProgramUniformSampler:()=>D_,bindTextureUnit:()=>$_,bindVertexBufferToProgramAttribute:()=>Fx,callAndCheck:()=>ge,canBeRepresented:()=>x_,createFragmentShader:()=>k_,createFramebuffer:()=>E_,createProgram:()=>I_,createStaticIndexBuffer:()=>N_,createStaticVertexBuffer:()=>S_,createTexture:()=>C_,createVertexShader:()=>w_,getBatchDim:()=>vi,getExtensionOrThrow:()=>Qp,getFramebufferErrorMessage:()=>R_,getMaxTexturesInShader:()=>L_,getNumChannels:()=>oY,getProgramUniformLocation:()=>F_,getProgramUniformLocationOrThrow:()=>A_,getRowsCols:()=>wi,getShapeAs3D:()=>Hh,getTextureShapeFromLogicalShape:()=>P_,getWebGLDisjointQueryTimerVersion:()=>z_,getWebGLErrorMessage:()=>v_,getWebGLMaxTextureSize:()=>O_,hasExtension:()=>da,isCapableOfRenderingToFloatTexture:()=>W_,isDownloadFloatTextureEnabled:()=>B_,isReshapeFree:()=>xc,isWebGLFenceEnabled:()=>V_,isWebGLVersionEnabled:()=>Rx,linkProgram:()=>T_,logShaderSourceAndInfoLog:()=>c1,resetMaxTextureSize:()=>pY,resetMaxTexturesInShader:()=>cY,unbindColorTextureFromFramebuffer:()=>Dx,unbindTextureUnit:()=>lY,validateFramebuffer:()=>ec,validateProgram:()=>Uh,validateTextureSize:()=>__});var Qs={},Ph={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function y_(e,t){Qs[e]=t}function Ja(e,t){if(!(e in Qs)||t!=null){let a=eY(e,t);if(a!==null)Qs[e]=a;else return console.log("Could not get context for WebGL version",e),null}let n=Qs[e];return n==null||n.isContextLost()?(delete Qs[e],Ja(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),Qs[e])}function Q7(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 eY(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?Q7(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete Qs[e]},!1),X().getBool("SOFTWARE_WEBGL_ENABLED")&&(Ph.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",Ph)||n.getContext("experimental-webgl",Ph):n.getContext("webgl2",Ph)}var yc;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(yc||(yc={}));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 vd(e,t){return[t,e]}function tY(e,t){return e*t}function Oh(e){let t=v.sizeFromShape(e),n=Math.ceil(t/4);return v.sizeToSquarishShape(n)}function sp(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function nY(e,t){let[n,a]=sp(e,t);return n*a*4}function p1(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return X().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 ge(e,t){let n=t();return X().getBool("DEBUG")&&aY(e),n}function aY(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+v_(e,t))}var rY=596e-10,sY=65504;function x_(e){return!!(X().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||rYe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function w_(e,t){let n=Or(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(ge(e,()=>e.shaderSource(n,t)),ge(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 k_(e,t){let n=Or(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(ge(e,()=>e.shaderSource(n,t)),ge(e,()=>e.compileShader(n)),X().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw c1(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var iY=/ERROR: [0-9]+:([0-9]+):/g;function c1(e,t){let n=iY.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]=O0(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var jX={kernelName:vc,backendName:"cpu",kernelFunc:HX};function qX(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),b=Boolean(n.data.get(i.dataId).values[0]);f=ol(m,g,o,c,p,u,l,d,b,h);break}case"float32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ol(m,g,o,c,p,u,l,d,b,h);break}case"int32":{let g=n.bufferSync(s),b=n.data.get(i.dataId).values[0];f=ol(m,g,o,c,p,u,l,d,b,h);break}case"string":{let g=n.bufferSync(s),b=v.decodeString(n.data.get(i.dataId).values[0]);f=ol(m,g,o,c,p,u,l,d,b,h);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var KX={kernelName:Lm,backendName:"cpu",kernelFunc:qX};function XX(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 YX={kernelName:Cu,backendName:"cpu",kernelFunc:XX},ZX={kernelName:wc,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}),QX={kernelName:ys,backendName:"cpu",kernelFunc:JX};function eY(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:b,begin:y,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||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=jt.computeOutShape(y,x,w),C=pi({inputs:{x:r},backend:n,attrs:{begin:y,size:T}});I=ft({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let T=n.bufferSync(r),C=DC(h,T,w,y);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var tY={kernelName:Eu,backendName:"cpu",kernelFunc:eY};function nY(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]=L0(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var aY={kernelName:kc,backendName:"cpu",kernelFunc:nY};function rY(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]=z0(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 sY={kernelName:Ic,backendName:"cpu",kernelFunc:rY};function iY(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=B0(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var oY={kernelName:Sc,backendName:"cpu",kernelFunc:iY},lY=rt(po,e=>Math.tan(e)),uY={kernelName:po,backendName:"cpu",kernelFunc:lY},pY=rt(co,e=>Math.tanh(e)),cY={kernelName:co,backendName:"cpu",kernelFunc:pY};function dY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=MC(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var hY={kernelName:bs,backendName:"cpu",kernelFunc:dY};function mY(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]=OC(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 fY={kernelName:Au,backendName:"cpu",kernelFunc:mY};function gY(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],b=v.computeStrides(r.shape),y=b[0],x=b[1],w=b[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 xY(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 vY(e,t){return e}function wY(e,t){return v.clamp(0,e,t-1)}function Pp(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 EY={kernelName:Tc,backendName:"cpu",kernelFunc:_Y},AY=[Nq,hj,_q,Aq,xj,Fq,Rq,Pq,Lq,Bq,Vq,Gq,jq,Xq,Zq,e5,n5,r5,i5,Sq,l5,p5,d5,m5,bj,wj,g5,mj,y5,v5,w5,I5,T5,C5,E5,$5,D5,M5,O5,z5,W5,U5,H5,j5,K5,Y5,J5,Q5,e8,t8,r8,bq,i8,kj,m8,Ij,f8,Tj,w8,k8,S8,Cj,C8,E8,$8,D8,M8,Ej,$j,fj,O8,x5,z8,W8,U8,yq,Dj,Mj,H8,Oj,q8,Y8,J8,tK,aK,sK,iK,zj,lK,pK,dK,mK,gK,yK,vK,Wj,kK,TK,EK,Uj,Hj,FK,MK,LK,qj,BK,VK,UK,e_,qK,vq,Yj,XK,ZK,QK,gj,px,tX,wq,kq,Iq,aX,sX,oX,uX,cX,dX,mX,rq,gX,wX,IX,CX,iq,EX,$X,DX,oq,CK,PX,LX,BX,VX,GX,jX,KX,YX,pq,ZX,dq,QX,tY,aY,sY,oY,gq,n8,uY,cY,hY,fY,bY,Kj,TY,CY,EY,WK];for(let e of AY)Nc(e);var t_={};_e(t_,{assertNotComplex:()=>Ku,bindCanvasToFramebuffer:()=>WY,bindColorTextureToFramebuffer:()=>wh,bindTextureToProgramUniformSampler:()=>b_,bindTextureUnit:()=>m_,bindVertexBufferToProgramAttribute:()=>dx,callAndCheck:()=>me,canBeRepresented:()=>a_,createFragmentShader:()=>i_,createFramebuffer:()=>h_,createProgram:()=>o_,createStaticIndexBuffer:()=>p_,createStaticVertexBuffer:()=>u_,createTexture:()=>c_,createVertexShader:()=>s_,getBatchDim:()=>ci,getExtensionOrThrow:()=>Op,getFramebufferErrorMessage:()=>y_,getMaxTexturesInShader:()=>k_,getNumChannels:()=>zY,getProgramUniformLocation:()=>g_,getProgramUniformLocationOrThrow:()=>f_,getRowsCols:()=>di,getShapeAs3D:()=>kh,getTextureShapeFromLogicalShape:()=>v_,getWebGLDisjointQueryTimerVersion:()=>I_,getWebGLErrorMessage:()=>r_,getWebGLMaxTextureSize:()=>w_,hasExtension:()=>da,isCapableOfRenderingToFloatTexture:()=>S_,isDownloadFloatTextureEnabled:()=>T_,isReshapeFree:()=>ac,isWebGLFenceEnabled:()=>N_,isWebGLVersionEnabled:()=>mx,linkProgram:()=>l_,logShaderSourceAndInfoLog:()=>j0,resetMaxTextureSize:()=>VY,resetMaxTexturesInShader:()=>UY,unbindColorTextureFromFramebuffer:()=>hx,unbindTextureUnit:()=>BY,validateFramebuffer:()=>Lp,validateProgram:()=>vh,validateTextureSize:()=>d_});var Gs={},hh={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function n_(e,t){Gs[e]=t}function Ha(e,t){if(!(e in Gs)||t!=null){let a=FY(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],Ha(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 $Y(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 FY(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?$Y(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete Gs[e]},!1),H().getBool("SOFTWARE_WEBGL_ENABLED")&&(hh.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",hh)||n.getContext("experimental-webgl",hh):n.getContext("webgl2",hh)}var nc;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(nc||(nc={}));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 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 sd(e,t){return[t,e]}function DY(e,t){return e*t}function mh(e){let t=v.sizeFromShape(e),n=Math.ceil(t/4);return v.sizeToSquarishShape(n)}function qu(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function RY(e,t){let[n,a]=qu(e,t);return n*a*4}function H0(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")&&MY(e),n}function MY(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+r_(e,t))}var PY=596e-10,OY=65504;function a_(e){return!!(H().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||PYe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function s_(e,t){let n=Rr(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 i_(e,t){let n=Rr(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 j0(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var LY=/ERROR: [0-9]+:([0-9]+):/g;function j0(e,t){let n=LY.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 T_(e,t){if(ge(e,()=>e.linkProgram(t)),!X().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 Uh(e,t){if(ge(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function S_(e,t){let n=Or(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return ge(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),ge(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function N_(e,t){let n=Or(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return ge(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),ge(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function oY(){return X().getNumber("WEBGL_VERSION")===2?1:4}function C_(e){return Or(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function __(e,t){let n=X().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 E_(e){return Or(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function Fx(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(ge(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),ge(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),ge(e,()=>e.enableVertexAttribArray(o)),!0)}function $_(e,t,n){M_(e,n),ge(e,()=>e.activeTexture(e.TEXTURE0+n)),ge(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function lY(e,t){M_(e,t),ge(e,()=>e.activeTexture(e.TEXTURE0+t)),ge(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function A_(e,t,n){return Or(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function F_(e,t,n){return e.getUniformLocation(t,n)}function D_(e,t,n,a){ge(e,()=>$_(e,t,a)),ge(e,()=>e.uniform1i(n,a))}function uY(e){ge(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),ge(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),ge(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function Gh(e,t,n){ge(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),ge(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function Dx(e,t){ge(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),ge(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function ec(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+R_(e,t))}function R_(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 Or(e,t,n){let a=ge(e,()=>t());if(a==null)throw new Error(n);return a}function M_(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 vi(e,t=2){return v.sizeFromShape(e.slice(0,e.length-t))}function wi(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 Hh(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[vi(e),...wi(e)]),t}function P_(e,t=!1){let n=X().getNumber("WEBGL_MAX_TEXTURE_SIZE");t&&(n=n*2,e=e.map((r,s)=>s>=e.length-2?v.nearestLargerEven(e[s]):e[s]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=v.squeezeShape(e).newShape);let a=v.sizeFromShape(e);if(e.length<=1&&a<=n)return[1,a];if(e.length===2&&e[0]<=n&&e[1]<=n)return e;if(e.length===3&&e[0]*e[1]<=n&&e[2]<=n)return[e[0]*e[1],e[2]];if(e.length===3&&e[0]<=n&&e[1]*e[2]<=n)return[e[0],e[1]*e[2]];if(e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n)return[e[0]*e[1]*e[2],e[3]];if(e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n)return[e[0],e[1]*e[2]*e[3]];if(t){let r=vi(e),s=2,i=2;return e.length&&([s,i]=wi(e)),a=r*(s/2)*(i/2),v.sizeToSquarishShape(a).map(o=>o*2)}return v.sizeToSquarishShape(a)}function Lh(e){return e%2===0}function xc(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||Lh(n)&&Lh(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&Lh(e[0])&&Lh(t[0])}var jh,qh;function O_(e){if(jh==null){let t=Ja(e);jh=t.getParameter(t.MAX_TEXTURE_SIZE)}return jh}function pY(){jh=null}function cY(){qh=null}function L_(e){if(qh==null){let t=Ja(e);qh=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,qh)}function z_(e){if(e===0)return 0;let t,n=Ja(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 Rx(e){try{if(Ja(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function W_(e){if(e===0)return!1;let t=Ja(e);if(e===1){if(!da(t,"OES_texture_float"))return!1}else if(!da(t,"EXT_color_buffer_float"))return!1;return Mx(t)}function B_(e){if(e===0)return!1;let t=Ja(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 Mx(t);let n="EXT_color_buffer_half_float";if(da(t,n)){let a=t.getExtension(n);return dY(t,a)}return!1}return Mx(t)}function Mx(e){let t=p1(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 dY(e,t){let n=p1(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 V_(e){return e!==2?!1:Ja(e).fenceSync!=null}function ip(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 Se=X();Se.registerFlag("HAS_WEBGL",()=>Se.getNumber("WEBGL_VERSION")>0);Se.registerFlag("WEBGL_VERSION",()=>Rx(2)?2:Rx(1)?1:0);Se.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Se.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Se.get("WEBGL_VERSION")===2);Se.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Se.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Se.registerFlag("WEBGL_PACK",()=>Se.getBool("HAS_WEBGL"));Se.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_PACK_CLIP",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_PACK_REDUCE",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_LAZILY_UNPACK",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_CONV_IM2COL",()=>Se.getBool("WEBGL_PACK"));Se.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>O_(Se.getNumber("WEBGL_VERSION")));Se.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>L_(Se.getNumber("WEBGL_VERSION")));Se.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=Se.getNumber("WEBGL_VERSION");return e===0?0:z_(e)});Se.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Se.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Hc.isMobile());Se.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>W_(Se.getNumber("WEBGL_VERSION")));Se.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Se.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Se.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Se.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>B_(Se.getNumber("WEBGL_VERSION")));Se.registerFlag("WEBGL_FENCE_API_ENABLED",()=>V_(Se.getNumber("WEBGL_VERSION")));Se.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Se.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Se.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}.`)});Se.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>Hc.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}.`)});Se.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);Se.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);Se.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);Se.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);Se.registerFlag("WEBGL_EXP_CONV",()=>!1);Se.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>Se.getBool("IS_TEST"));function An(){let e,t,n,a,r,s,i,o,l,u;return X().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=` +`))}function o_(e){return Rr(e,()=>e.createProgram(),"Unable to create WebGLProgram.")}function l_(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 vh(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 u_(e,t){let n=Rr(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 p_(e,t){let n=Rr(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 zY(){return H().getNumber("WEBGL_VERSION")===2?1:4}function c_(e){return Rr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function d_(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 h_(e){return Rr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function dx(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 m_(e,t,n){x_(e,n),me(e,()=>e.activeTexture(e.TEXTURE0+n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function BY(e,t){x_(e,t),me(e,()=>e.activeTexture(e.TEXTURE0+t)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function f_(e,t,n){return Rr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function g_(e,t,n){return e.getUniformLocation(t,n)}function b_(e,t,n,a){me(e,()=>m_(e,t,a)),me(e,()=>e.uniform1i(n,a))}function WY(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 wh(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 hx(e,t){me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),me(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function Lp(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+y_(e,t))}function y_(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 Rr(e,t,n){let a=me(e,()=>t());if(a==null)throw new Error(n);return a}function x_(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 kh(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[ci(e),...di(e)]),t}function v_(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 fh(e){return e%2===0}function ac(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||fh(n)&&fh(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&fh(e[0])&&fh(t[0])}var Ih,Sh;function w_(e){if(Ih==null){let t=Ha(e);Ih=t.getParameter(t.MAX_TEXTURE_SIZE)}return Ih}function VY(){Ih=null}function UY(){Sh=null}function k_(e){if(Sh==null){let t=Ha(e);Sh=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Sh)}function I_(e){if(e===0)return 0;let t,n=Ha(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 mx(e){try{if(Ha(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function S_(e){if(e===0)return!1;let t=Ha(e);if(e===1){if(!da(t,"OES_texture_float"))return!1}else if(!da(t,"EXT_color_buffer_float"))return!1;return fx(t)}function T_(e){if(e===0)return!1;let t=Ha(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 fx(t);let n="EXT_color_buffer_half_float";if(da(t,n)){let a=t.getExtension(n);return GY(t,a)}return!1}return fx(t)}function fx(e){let t=H0(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 GY(e,t){let n=H0(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 N_(e){return e!==2?!1:Ha(e).fenceSync!=null}function Ku(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",()=>mx(2)?2:mx(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",()=>w_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>k_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=ve.getNumber("WEBGL_VERSION");return e===0?0:I_(e)});ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>ve.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Ec.isMobile());ve.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>S_(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",()=>T_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_FENCE_API_ENABLED",()=>N_(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",()=>Ec.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 Nn(){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; @@ -73,7 +73,7 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram } #define isnan(value) isnan_custom(value) - `,l="",u=` + `:"",l="",u=` #define round(value) newRound(value) int newRound(float value) { return int(floor(value + 0.5)); @@ -107,15 +107,15 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram ivec4 round(vec4 value) { return ivec4(floor(value + vec4(0.5))); } - `),{version:e,attribute:t,varyingVs:n,varyingFs:a,texture2D:r,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:u}}function Eo(e,t,n="index"){let a=v.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / ${r}`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * ${r}`:`index -= ${e[s]} * ${r}`;return`${i}; ${o};`}).join("")}function fg(e,t,n="index"){let a=v.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / outShapeStrides[${s}]`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * outShapeStrides[${s}]`:`index -= ${e[s]} * outShapeStrides[${s}]`;return`${i}; ${o};`}).join("")}function hY(e,t){let n=e.length,a=e.map(s=>`${t}[${s}]`),r=new Array(n-1);r[n-2]=a[n-1];for(let s=n-3;s>=0;--s)r[s]=`(${r[s+1]} * ${a[s+1]})`;return r}function mY(e,t,n="index"){let a=e.map((s,i)=>i),r=hY(a,t);return r.map((s,i)=>{let o=`int ${e[i]} = ${n} / ${r[i]}`,l=i===r.length-1?`int ${e[i+1]} = ${n} - ${e[i]} * ${r[i]}`:`index -= ${e[i]} * ${r[i]}`;return`${o}; ${l};`}).join("")}function d1(e){let t=v.computeStrides(e).map(n=>n.toString());return` + `),{version:e,attribute:t,varyingVs:n,varyingFs:a,texture2D:r,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:u}}function vo(e,t,n="index"){let a=v.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / ${r}`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * ${r}`:`index -= ${e[s]} * ${r}`;return`${i}; ${o};`}).join("")}function jf(e,t,n="index"){let a=v.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / outShapeStrides[${s}]`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * outShapeStrides[${s}]`:`index -= ${e[s]} * outShapeStrides[${s}]`;return`${i}; ${o};`}).join("")}function HY(e,t){let n=e.length,a=e.map(s=>`${t}[${s}]`),r=new Array(n-1);r[n-2]=a[n-1];for(let s=n-3;s>=0;--s)r[s]=`(${r[s+1]} * ${a[s+1]})`;return r}function jY(e,t,n="index"){let a=e.map((s,i)=>i),r=HY(a,t);return r.map((s,i)=>{let o=`int ${e[i]} = ${n} / ${r[i]}`,l=i===r.length-1?`int ${e[i+1]} = ${n} - ${e[i]} * ${r[i]}`:`index -= ${e[i]} * ${r[i]}`;return`${o}; ${l};`}).join("")}function q0(e){let t=v.computeStrides(e).map(n=>n.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; } -`}function h1(){return` +`}function K0(){return` int getFlatIndex(ivec3 coords) { return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z; } -`}var U_=` +`}var C_=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; @@ -154,22 +154,22 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return c / 255.0; } -`,{getBroadcastDims:G_}=C;function fY(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}=m1(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=>gY(c,t,n.packedInputs,n.enableShapeUniforms)).join(` -`),i=t.texShape,o=An(),l=xY(o),u,p,d=kY(o);return t.isPacked?(u=bY(t.logicalShape,i,n.enableShapeUniforms),p=wY(o)):(u=yY(t.logicalShape,i,n.enableShapeUniforms),p=vY(o)),n.packedInputs&&(d+=NY),[d,l,p,r,u,s,n.userCode].join(` -`)}function op(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return LY(e,t);case 1:return WY(e,t);case 2:return VY(e,t);case 3:return GY(e,t);case 4:return jY(e,t);case 5:return qY(e);case 6:return KY(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function H_(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return OY(e);case 1:return zY(e,t);case 2:return BY(e,t);case 3:return UY(e,t);default:return HY(e,t)}}function gY(e,t,n=!1,a){let r="";n?r+=H_(e,a):r+=op(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=XY(e,t):r+=YY(e,t)),r}function bY(e,t,n){switch(e.length){case 0:return j_();case 1:return CY(e,t,n);case 2:return MY(e,t,n);case 3:return EY(e,t,n);default:return AY(e,t,n)}}function yY(e,t,n){switch(e.length){case 0:return j_();case 1:return _Y(e,t,n);case 2:return PY(e,t,n);case 3:return $Y(e,t,n);case 4:return FY(e,t,n);case 5:return DY(e,t);case 6:return RY(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function xY(e){return` +`,{getBroadcastDims:__}=N;function qY(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}=X0(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=>KY(c,t,n.packedInputs,n.enableShapeUniforms)).join(` +`),i=t.texShape,o=Nn(),l=ZY(o),u,p,d=e7(o);return t.isPacked?(u=XY(t.logicalShape,i,n.enableShapeUniforms),p=QY(o)):(u=YY(t.logicalShape,i,n.enableShapeUniforms),p=JY(o)),n.packedInputs&&(d+=r7),[d,l,p,r,u,s,n.userCode].join(` +`)}function Xu(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return g7(e,t);case 1:return y7(e,t);case 2:return v7(e,t);case 3:return k7(e,t);case 4:return S7(e,t);case 5:return T7(e);case 6:return N7(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function E_(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return f7(e);case 1:return b7(e,t);case 2:return x7(e,t);case 3:return w7(e,t);default:return I7(e,t)}}function KY(e,t,n=!1,a){let r="";n?r+=E_(e,a):r+=Xu(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=C7(e,t):r+=_7(e,t)),r}function XY(e,t,n){switch(e.length){case 0:return A_();case 1:return s7(e,t,n);case 2:return h7(e,t,n);case 3:return o7(e,t,n);default:return u7(e,t,n)}}function YY(e,t,n){switch(e.length){case 0:return A_();case 1:return i7(e,t,n);case 2:return m7(e,t,n);case 3:return l7(e,t,n);case 4:return p7(e,t,n);case 5:return c7(e,t);case 6:return d7(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function ZY(e){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${e.texture2D}(textureSampler, uv).r; } - `}function vY(e){return` + `}function JY(e){return` void setOutput(float val) { ${e.output} = vec4(val, 0, 0, 0); } - `}function wY(e){return` + `}function QY(e){return` void setOutput(vec4 val) { ${e.output} = val; } - `}function kY(e){return`${e.version} + `}function e7(e){return`${e.version} precision highp float; precision highp int; precision highp sampler2D; @@ -224,10 +224,10 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return fract((p3.x + p3.y) * p3.z); } - ${IY} - ${TY} - ${SY} - `}var IY=` + ${t7} + ${n7} + ${a7} + `}var t7=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -239,7 +239,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,TY=` +`,n7=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -247,7 +247,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,SY=` +`,a7=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -256,7 +256,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,NY=` +`,r7=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -267,11 +267,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function j_(){return` +`;function A_(){return` int getOutputCoords() { return 0; } - `}function CY(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return a[0]===1?n?` + `}function s7(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return a[0]===1?n?` int getOutputCoords() { return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0)); } @@ -300,7 +300,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${a[0]}, ${a[1]})); return 2 * (resTexRC.x * ${a[1]} + resTexRC.y); } - `}function _Y(e,t,n){return t[0]===1?n?` + `}function i7(e,t,n){return t[0]===1?n?` int getOutputCoords() { return int(resultUV.x * float(outTexShape[1])); } @@ -328,7 +328,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return resTexRC.x * ${t[1]} + resTexRC.y; } - `}function EY(e,t,n){if(n)return` + `}function o7(e,t,n){if(n)return` ivec3 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0)); @@ -359,15 +359,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function $Y(e,t,n){if(n)return` + `}function l7(e,t,n){if(n)return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; - ${fg(["r","c","d"],e)} + ${jf(["r","c","d"],e)} return ivec3(r, c, d); } -`;let a=Eo(["r","c","d"],e);return` +`;let a=vo(["r","c","d"],e);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -375,7 +375,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${a} return ivec3(r, c, d); } - `}function AY(e,t,n){if(n)return` + `}function u7(e,t,n){if(n)return` ivec4 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); ivec2 resTexRC = ivec2(resultUV.yx * @@ -416,15 +416,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec${e.length}(${l}); } - `}function FY(e,t,n){if(n)return` + `}function p7(e,t,n){if(n)return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; - ${fg(["r","c","d","d2"],e)} + ${jf(["r","c","d","d2"],e)} return ivec4(r, c, d, d2); } - `;let a=Eo(["r","c","d","d2"],e);return` + `;let a=vo(["r","c","d","d2"],e);return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -432,7 +432,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${a} return ivec4(r, c, d, d2); } - `}function DY(e,t){let n=Eo(["r","c","d","d2","d3"],e);return` + `}function c7(e,t){let n=vo(["r","c","d","d2","d3"],e);return` ivec5 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -444,7 +444,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec5 outShape = ivec5(r, c, d, d2, d3); return outShape; } - `}function RY(e,t){let n=Eo(["r","c","d","d2","d3","d4"],e);return` + `}function d7(e,t){let n=vo(["r","c","d","d2","d3","d4"],e);return` ivec6 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -455,7 +455,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec6 result = ivec6(r, c, d, d2, d3, d4); return result; } - `}function MY(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(v.arraysEqual(e,t))return n?` + `}function h7(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(v.arraysEqual(e,t))return n?` ivec2 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); return 2 * ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); @@ -488,7 +488,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec2(r, c); } - `}function PY(e,t,n){return v.arraysEqual(e,t)?n?` + `}function m7(e,t,n){return v.arraysEqual(e,t)?n?` ivec2 getOutputCoords() { return ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); } @@ -542,15 +542,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int c = index - r * ${e[1]}; return ivec2(r, c); } - `}function $o(e){return`offset${e}`}function OY(e){let t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),a=An();return` + `}function wo(e){return`offset${e}`}function f7(e){let t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),a=Nn();return` vec4 ${n}() { return ${a.texture2D}(${t}, halfCR); } - `}function LY(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 g7(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); } - `;let i=$o(n);if(t)return` + `;let i=wo(n);if(t)return` float ${a}() { vec2 uv = uvFromFlat(${n}TexShape[0], ${n}TexShape[1], ${i}); return sampleTexture(${n}, uv); @@ -560,7 +560,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${o}, ${l}, ${i}); return sampleTexture(${n}, uv); } - `}function zY(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1),r=e.shapeInfo.texShape,s=An();if(t)return` + `}function b7(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1),r=e.shapeInfo.texShape,s=Nn();if(t)return` vec4 ${a}(int index) { ivec2 packedTexShape = ivec2(ceil(float(${n}TexShape[0]) / 2.0), ceil(float(${n}TexShape[1]) / 2.0)); vec2 uv = packedUVfrom1D( @@ -573,15 +573,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${i[0]}, ${i[1]}, index); return ${s.texture2D}(${n}, uv); } - `}function WY(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return` + `}function y7(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return` float ${a}(int index) { - ${lp(e)} + ${Yu(e)} } `;let r=e.shapeInfo.texShape,s=r[0],i=r[1];if(i===1&&s===1)return` float ${a}(int index) { return sampleTexture(${n}, halfCR); } - `;let o=$o(n);return i===1?t?` + `;let o=wo(n);return i===1?t?` float ${a}(int index) { vec2 uv = vec2(0.5, (float(index + ${o}) + 0.5) / float(${n}TexShape[0])); return sampleTexture(${n}, uv); @@ -611,7 +611,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${s}, ${i}, index + ${o}); return sampleTexture(${n}, uv); } - `}function BY(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape,i=s[0],o=s[1],l=An();if(s!=null&&v.arraysEqual(n,s))return t?` + `}function x7(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape,i=s[0],o=s[1],l=Nn();if(s!=null&&v.arraysEqual(n,s))return t?` vec4 ${r}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${a}TexShape[1], ${a}TexShape[0]); @@ -635,7 +635,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = packedUVfrom2D(${p}, ${u[0]}, ${u[1]}, row, col); return ${l.texture2D}(${a}, uv); } - `}function VY(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape;if(s!=null&&v.arraysEqual(n,s)){if(t)return` + `}function v7(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape;if(s!=null&&v.arraysEqual(n,s)){if(t)return` float ${r}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${a}TexShape[1], ${a}TexShape[0]); return sampleTexture(${a}, uv); @@ -645,17 +645,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = (vec2(col, row) + halfCR) / vec2(${h}.0, ${c}.0); return sampleTexture(${a}, uv); } - `}let{newShape:i,keptDims:o}=v.squeezeShape(n),l=i;if(l.length=1?p="coords = 0;":p=o.map(g=>`coords.${d[g+u]} = 0;`).join(` + `}function C7(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=__(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,b)=>`coords.${d[b+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=` @@ -972,20 +972,20 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec4 outputValue = get${a}(${c}); ${h} } - `}function YY(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&e.shapeInfo.flatOffset==null&&v.arraysEqual(i,s))return` + `}function _7(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&e.shapeInfo.flatOffset==null&&v.arraysEqual(i,s))return` float ${r}() { return sampleTexture(${n}, resultUV); } - `;let u=pt(l),p=G_(e.shapeInfo.logicalShape,t.logicalShape),d=l-o,c,h=["x","y","z","w","u","v"];o===0?c="":l<2&&p.length>=1?c="coords = 0;":c=p.map(f=>`coords.${h[f+d]} = 0;`).join(` + `;let u=gt(l),p=__(e.shapeInfo.logicalShape,t.logicalShape),d=l-o,c,h=["x","y","z","w","u","v"];o===0?c="":l<2&&p.length>=1?c="coords = 0;":c=p.map(f=>`coords.${h[f+d]} = 0;`).join(` `);let m="";return l<2&&o>0?m="coords":m=e.shapeInfo.logicalShape.map((f,g)=>`coords.${h[g+d]}`).join(", "),` float ${r}() { ${u} coords = getOutputCoords(); ${c} return get${a}(${m}); } - `}function pt(e){if(e<=1)return"int";if(e===2)return"ivec2";if(e===3)return"ivec3";if(e===4)return"ivec4";if(e===5)return"ivec5";if(e===6)return"ivec6";throw Error(`GPU for rank ${e} is not yet supported`)}function m1(e,t,n){let{newShape:a,keptDims:r}=v.squeezeShape(t),s=t.length,i=e&&s===3&&t[0]===1,o=i?t.slice(1):a,l=!e&&s>1&&!v.arraysEqual(t,n)&&a.lengthe[n]).join(", ")}function ZY(e,t,n,a){let r=n.map((p,d)=>{let c={logicalShape:p.shape,texShape:p.isUniform?null:p.texData.texShape,isUniform:p.isUniform,isPacked:p.isUniform?!1:p.texData.isPacked,flatOffset:null};return p.texData!=null&&p.texData.slice!=null&&p.texData.slice.flatOffset>0&&(c.flatOffset=p.texData.slice.flatOffset),{name:t.variableNames[d],shapeInfo:c}}),s=r.map(p=>p.shapeInfo),i={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},o=fY(r,i,t),l=k_(e.gl,o),u=e.createProgram(l);return X().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,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:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i},q_(e,t,u))}function q_(e,t,n){let a={},r={},s={},i=[],o,l,u,p=null,d=null;d=e.getUniformLocation(n,"NAN",!1),X().getNumber("WEBGL_VERSION")===1&&(p=e.getUniformLocation(n,"INFINITY",!1));let c=!1;for(let h=0;h{i[m]=e.getUniformLocation(n,h.name,c)}),{uniformLocations:a,customUniformLocations:i,infLoc:p,nanLoc:d,inShapesLocations:r,inTexShapesLocations:s,outShapeLocation:o,outShapeStridesLocation:u,outTexShapeLocation:l}}function CI(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach((n,a)=>{let r=n.logicalShape,s=t[a],i=s.shape;if(!v.arraysEqual(r,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${i} must match`);if(n.isUniform&&s.isUniform)return;let o=n.texShape,l=s.isUniform?null:s.texData.texShape;if(!v.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function JY(e,t,n,a,r){t.program.enableShapeUniforms||(CI(t.inShapeInfos,n),CI([t.outShapeInfo],[a]));let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):e.setOutputMatrixTexture(s.texture,i[0],i[1]),e.setProgram(t.webGLProgram),X().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((l,u)=>{let p=t.program.variableNames[u],d=t.uniformLocations[p],c=t.uniformLocations[`offset${p}`],h=t.inShapesLocations[`${p}Shape`],m=t.inTexShapesLocations[`${p}TexShape`];if(h){let{uniformShape:f}=m1(t.program.packedInputs,l.shape,l.texData.texShape);switch(f.length){case 1:e.gl.uniform1iv(h,new Int32Array(f));break;case 2:e.gl.uniform2iv(h,new Int32Array(f));break;case 3:e.gl.uniform3iv(h,new Int32Array(f));break;case 4:e.gl.uniform4iv(h,new Int32Array(f));break;default:break}}if(m&&e.gl.uniform2i(m,l.texData.texShape[0],l.texData.texShape[1]),d!=null){if(l.isUniform){if(v.sizeFromShape(l.shape)<2)e.gl.uniform1f(d,l.uniformValues[0]);else{let f=l.uniformValues;f instanceof Float32Array||(f=new Float32Array(f)),e.gl.uniform1fv(d,f)}return}l.texData.slice!=null&&c!=null&&e.gl.uniform1i(c,l.texData.slice.flatOffset),e.setInputMatrixTexture(l.texData.texture.texture,d,u)}});let o=t.outShapeLocation;if(o)switch(a.shape.length){case 1:e.gl.uniform1iv(o,new Int32Array(a.shape));break;case 2:e.gl.uniform2iv(o,new Int32Array(a.shape));break;case 3:e.gl.uniform3iv(o,new Int32Array(a.shape));break;case 4:e.gl.uniform4iv(o,new Int32Array(a.shape));break;default:break}if(t.outShapeStridesLocation){let l=v.computeStrides(a.shape);switch(a.shape.length){case 2:e.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(l));break;case 3:e.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(l));break;case 4:e.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(l));break;default:break}}t.outTexShapeLocation&&e.gl.uniform2i(t.outTexShapeLocation,a.texData.texShape[0],a.texData.texShape[1]),t.program.customUniforms&&r&&t.program.customUniforms.forEach((l,u)=>{let p=t.customUniformLocations[u],d=r[u];if(l.type==="float")e.gl.uniform1fv(p,d);else if(l.type==="vec2")e.gl.uniform2fv(p,d);else if(l.type==="vec3")e.gl.uniform3fv(p,d);else if(l.type==="vec4")e.gl.uniform4fv(p,d);else if(l.type==="int")e.gl.uniform1iv(p,d);else if(l.type==="ivec2")e.gl.uniform2iv(p,d);else if(l.type==="ivec3")e.gl.uniform3iv(p,d);else if(l.type==="ivec4")e.gl.uniform4iv(p,d);else throw Error(`uniform type ${l.type} is not supported yet.`)}),e.executeProgram()}function QY(e,t,n){let a="";t.concat(n).forEach(i=>{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!i.isUniform){let l=i.texData.texShape,{useSqueezeShape:u,uniformShape:p,keptDims:d}=m1(e.packedInputs,i.shape,l),c="",h="",m="";if(p.length===1&&e.packedInputs){let I=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];c=`${I[0]>1}_${I[1]>1}`}else if(p.length===2&&!e.packedInputs)h=`${p[0]>1}_${p[1]>1}`;else if(p.length>2&&!e.packedInputs){let I=v.computeStrides(p);m=`${I[0]===l[1]}_${I[I.length-1]===l[1]}`}let f=i.shape.length,g=p.length===2&&v.arraysEqual(i.shape,l),b=v.sizeFromShape(i.shape)===1,y=C.getBroadcastDims(i.shape,n.shape),x=!e.packedInputs&&f===n.shape.length&&v.arraysEqual(l,n.texData.texShape),w=e.packedInputs||p.length>2?"":`${l[0]>1}_${l[1]>1}`;a+=`${f}_${x}_${u?d:""}_${p.length}_${b}_${y}_${g}_${c}_${h}_${m}_${w}_${o}`}else{let l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`}});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r+`${X().getNumber("WEBGL_VERSION")}`,s}function Fn(e){return X().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}var eZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=yc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=An();this.outputShape=e,this.enableShapeUniforms=Fn(this.outputShape.length),this.userCode=` + `}function gt(e){if(e<=1)return"int";if(e===2)return"ivec2";if(e===3)return"ivec3";if(e===4)return"ivec4";if(e===5)return"ivec5";if(e===6)return"ivec6";throw Error(`GPU for rank ${e} is not yet supported`)}function X0(e,t,n){let{newShape:a,keptDims:r}=v.squeezeShape(t),s=t.length,i=e&&s===3&&t[0]===1,o=i?t.slice(1):a,l=!e&&s>1&&!v.arraysEqual(t,n)&&a.lengthe[n]).join(", ")}function E7(e,t,n,a){let r=n.map((p,d)=>{let c={logicalShape:p.shape,texShape:p.isUniform?null:p.texData.texShape,isUniform:p.isUniform,isPacked:p.isUniform?!1:p.texData.isPacked,flatOffset:null};return p.texData!=null&&p.texData.slice!=null&&p.texData.slice.flatOffset>0&&(c.flatOffset=p.texData.slice.flatOffset),{name:t.variableNames[d],shapeInfo:c}}),s=r.map(p=>p.shapeInfo),i={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},o=qY(r,i,t),l=i_(e.gl,o),u=e.createProgram(l);return H().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,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:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i},$_(e,t,u))}function $_(e,t,n){let a={},r={},s={},i=[],o,l,u,p=null,d=null;d=e.getUniformLocation(n,"NAN",!1),H().getNumber("WEBGL_VERSION")===1&&(p=e.getUniformLocation(n,"INFINITY",!1));let c=!1;for(let h=0;h{i[m]=e.getUniformLocation(n,h.name,c)}),{uniformLocations:a,customUniformLocations:i,infLoc:p,nanLoc:d,inShapesLocations:r,inTexShapesLocations:s,outShapeLocation:o,outShapeStridesLocation:u,outTexShapeLocation:l}}function iI(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach((n,a)=>{let r=n.logicalShape,s=t[a],i=s.shape;if(!v.arraysEqual(r,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${i} must match`);if(n.isUniform&&s.isUniform)return;let o=n.texShape,l=s.isUniform?null:s.texData.texShape;if(!v.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function A7(e,t,n,a,r){t.program.enableShapeUniforms||(iI(t.inShapeInfos,n),iI([t.outShapeInfo],[a]));let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):e.setOutputMatrixTexture(s.texture,i[0],i[1]),e.setProgram(t.webGLProgram),H().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((l,u)=>{let p=t.program.variableNames[u],d=t.uniformLocations[p],c=t.uniformLocations[`offset${p}`],h=t.inShapesLocations[`${p}Shape`],m=t.inTexShapesLocations[`${p}TexShape`];if(h){let{uniformShape:f}=X0(t.program.packedInputs,l.shape,l.texData.texShape);switch(f.length){case 1:e.gl.uniform1iv(h,new Int32Array(f));break;case 2:e.gl.uniform2iv(h,new Int32Array(f));break;case 3:e.gl.uniform3iv(h,new Int32Array(f));break;case 4:e.gl.uniform4iv(h,new Int32Array(f));break;default:break}}if(m&&e.gl.uniform2i(m,l.texData.texShape[0],l.texData.texShape[1]),d!=null){if(l.isUniform){if(v.sizeFromShape(l.shape)<2)e.gl.uniform1f(d,l.uniformValues[0]);else{let f=l.uniformValues;f instanceof Float32Array||(f=new Float32Array(f)),e.gl.uniform1fv(d,f)}return}l.texData.slice!=null&&c!=null&&e.gl.uniform1i(c,l.texData.slice.flatOffset),e.setInputMatrixTexture(l.texData.texture.texture,d,u)}});let o=t.outShapeLocation;if(o)switch(a.shape.length){case 1:e.gl.uniform1iv(o,new Int32Array(a.shape));break;case 2:e.gl.uniform2iv(o,new Int32Array(a.shape));break;case 3:e.gl.uniform3iv(o,new Int32Array(a.shape));break;case 4:e.gl.uniform4iv(o,new Int32Array(a.shape));break;default:break}if(t.outShapeStridesLocation){let l=v.computeStrides(a.shape);switch(a.shape.length){case 2:e.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(l));break;case 3:e.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(l));break;case 4:e.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(l));break;default:break}}t.outTexShapeLocation&&e.gl.uniform2i(t.outTexShapeLocation,a.texData.texShape[0],a.texData.texShape[1]),t.program.customUniforms&&r&&t.program.customUniforms.forEach((l,u)=>{let p=t.customUniformLocations[u],d=r[u];if(l.type==="float")e.gl.uniform1fv(p,d);else if(l.type==="vec2")e.gl.uniform2fv(p,d);else if(l.type==="vec3")e.gl.uniform3fv(p,d);else if(l.type==="vec4")e.gl.uniform4fv(p,d);else if(l.type==="int")e.gl.uniform1iv(p,d);else if(l.type==="ivec2")e.gl.uniform2iv(p,d);else if(l.type==="ivec3")e.gl.uniform3iv(p,d);else if(l.type==="ivec4")e.gl.uniform4iv(p,d);else throw Error(`uniform type ${l.type} is not supported yet.`)}),e.executeProgram()}function $7(e,t,n){let a="";t.concat(n).forEach(i=>{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!i.isUniform){let l=i.texData.texShape,{useSqueezeShape:u,uniformShape:p,keptDims:d}=X0(e.packedInputs,i.shape,l),c="",h="",m="";if(p.length===1&&e.packedInputs){let I=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];c=`${I[0]>1}_${I[1]>1}`}else if(p.length===2&&!e.packedInputs)h=`${p[0]>1}_${p[1]>1}`;else if(p.length>2&&!e.packedInputs){let I=v.computeStrides(p);m=`${I[0]===l[1]}_${I[I.length-1]===l[1]}`}let f=i.shape.length,g=p.length===2&&v.arraysEqual(i.shape,l),b=v.sizeFromShape(i.shape)===1,y=N.getBroadcastDims(i.shape,n.shape),x=!e.packedInputs&&f===n.shape.length&&v.arraysEqual(l,n.texData.texShape),w=e.packedInputs||p.length>2?"":`${l[0]>1}_${l[1]>1}`;a+=`${f}_${x}_${u?d:""}_${p.length}_${b}_${y}_${g}_${c}_${h}_${m}_${w}_${o}`}else{let l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`}});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r+`${H().getNumber("WEBGL_VERSION")}`,s}function Cn(e){return H().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}var F7=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=nc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=Nn();this.outputShape=e,this.enableShapeUniforms=Cn(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?fg(["r","c","d"],e):Eo(["r","c","d"],e)} + ${this.enableShapeUniforms?jf(["r","c","d"],e):vo(["r","c","d"],e)} return ivec3(r, c, d); } @@ -1003,9 +1003,9 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t.output} = result; } - `}},tZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=yc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=An();this.outputShape=e,this.enableShapeUniforms=Fn(this.outputShape.length),this.userCode=` + `}},D7=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=nc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=Nn();this.outputShape=e,this.enableShapeUniforms=Cn(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?fg(["r","c","d"],e):Eo(["r","c","d"],e)} + ${this.enableShapeUniforms?jf(["r","c","d"],e):vo(["r","c","d"],e)} return ivec3(r, c, d); } @@ -1023,23 +1023,23 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t.output} = result; } - `}},nZ=class{constructor(e){this.variableNames=["A"],this.outTexUsage=ca.DOWNLOAD;let t=An();this.outputShape=e,this.userCode=` - ${U_} + `}},R7=class{constructor(e){this.variableNames=["A"],this.outTexUsage=ca.DOWNLOAD;let t=Nn();this.outputShape=e,this.userCode=` + ${C_} void main() { float x = getAAtOutCoords(); ${t.output} = encode_float(x); } - `}},aZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=ca.DOWNLOAD;let t=An();this.outputShape=e,this.userCode=` - ${U_} + `}},M7=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=ca.DOWNLOAD;let t=Nn();this.outputShape=e,this.userCode=` + ${C_} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${t.output} = encode_float(x); } - `}},rZ=class{constructor(e,t=!1){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let n=An();this.outputShape=e,this.enableShapeUniforms=Fn(this.outputShape.length);let a="result";t&&(a="floor(result * 255. + 0.5)"),this.userCode=` - ${this.enableShapeUniforms?h1():d1(e)} + `}},P7=class{constructor(e,t=!1){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let n=Nn();this.outputShape=e,this.enableShapeUniforms=Cn(this.outputShape.length);let a="result";t&&(a="floor(result * 255. + 0.5)"),this.userCode=` + ${this.enableShapeUniforms?K0():q0(e)} void main() { ivec3 coords = getOutputCoords(); @@ -1068,7 +1068,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n.output} = vec4(${a}, 0., 0., 0.); } - `}},sZ=class{constructor(e,t=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.customUniforms=[{name:"texShape",type:"ivec2"}];let n=An();this.outputShape=e,this.enableShapeUniforms=Fn(this.outputShape.length);let a="",r="result";t&&(r="floor(result * 255. + 0.5)");for(let s=0;s<=1;s++)for(let i=0;i<=1;i++){let o=s*2+i;a+=` + `}},O7=class{constructor(e,t=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.customUniforms=[{name:"texShape",type:"ivec2"}];let n=Nn();this.outputShape=e,this.enableShapeUniforms=Cn(this.outputShape.length);let a="",r="result";t&&(r="floor(result * 255. + 0.5)");for(let s=0;s<=1;s++)for(let i=0;i<=1;i++){let o=s*2+i;a+=` localCoords = coords; if(localCoords[2] + ${i} < ${this.enableShapeUniforms?"outShape[2]":`${e[2]}`}) { localCoords[2] += ${i}; @@ -1097,7 +1097,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } } `}this.userCode=` - ${this.enableShapeUniforms?h1():d1(e)} + ${this.enableShapeUniforms?K0():q0(e)} void main() { ivec3 coords = getOutputCoords(); @@ -1112,7 +1112,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n.output} = ${r}; } - `}},K_={};Fe(K_,{bindVertexProgramAttributeStreams:()=>aE,createBufferFromOutputTexture:()=>iE,createFloat16MatrixTexture:()=>Q_,createFloat16PackedMatrixTexture:()=>nE,createFloat32MatrixTexture:()=>J_,createIndexBuffer:()=>Z_,createPackedMatrixTexture:()=>tE,createUnsignedBytesMatrixTexture:()=>eE,createVertexBuffer:()=>Y_,createVertexShader:()=>X_,downloadByteEncodedFloatMatrixFromOutputTexture:()=>lE,downloadFloat32MatrixFromBuffer:()=>oE,downloadMatrixFromPackedOutputTexture:()=>pE,downloadPackedMatrixFromBuffer:()=>uE,getInternalFormatForFloat16MatrixTexture:()=>g1,getInternalFormatForFloat16PackedMatrixTexture:()=>x1,getInternalFormatForFloat32MatrixTexture:()=>f1,getInternalFormatForPackedMatrixTexture:()=>y1,getInternalFormatForUnsignedBytesMatrixTexture:()=>b1,uploadDenseMatrixToTexture:()=>rE,uploadPixelDataToTexture:()=>sE});function X_(e){let t=An(),n=`${t.version} + `}},F_={};_e(F_,{bindVertexProgramAttributeStreams:()=>W_,createBufferFromOutputTexture:()=>G_,createFloat16MatrixTexture:()=>O_,createFloat16PackedMatrixTexture:()=>B_,createFloat32MatrixTexture:()=>P_,createIndexBuffer:()=>M_,createPackedMatrixTexture:()=>z_,createUnsignedBytesMatrixTexture:()=>L_,createVertexBuffer:()=>R_,createVertexShader:()=>D_,downloadByteEncodedFloatMatrixFromOutputTexture:()=>j_,downloadFloat32MatrixFromBuffer:()=>H_,downloadMatrixFromPackedOutputTexture:()=>K_,downloadPackedMatrixFromBuffer:()=>q_,getInternalFormatForFloat16MatrixTexture:()=>Z0,getInternalFormatForFloat16PackedMatrixTexture:()=>e1,getInternalFormatForFloat32MatrixTexture:()=>Y0,getInternalFormatForPackedMatrixTexture:()=>Q0,getInternalFormatForUnsignedBytesMatrixTexture:()=>J0,uploadDenseMatrixToTexture:()=>V_,uploadPixelDataToTexture:()=>U_});function D_(e){let t=Nn(),n=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -1121,11 +1121,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return w_(e,n)}function Y_(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 S_(e,t)}function Z_(e){let t=new Uint16Array([0,1,2,2,1,3]);return N_(e,t)}function wd(e,t,n,a,r,s){__(t,n);let i=C_(e),o=e.TEXTURE_2D;return ge(e,()=>e.bindTexture(o,i)),ge(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),ge(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),ge(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),ge(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),X().getNumber("WEBGL_VERSION")===1?ge(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):ge(e,()=>e.texStorage2D(o,1,a,t,n)),ge(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function f1(e){return e.internalFormatFloat}function J_(e,t,n,a){let[r,s]=vd(t,n);return wd(e,r,s,f1(a),a.textureFormatFloat,e.FLOAT)}function g1(e){return e.internalFormatHalfFloat}function Q_(e,t,n,a){let[r,s]=vd(t,n);return wd(e,r,s,g1(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function b1(e){return e.downloadTextureFormat}function eE(e,t,n,a){let[r,s]=vd(t,n);return wd(e,r,s,b1(a),e.RGBA,e.UNSIGNED_BYTE)}function y1(e){return e.internalFormatPackedFloat}function tE(e,t,n,a){let[r,s]=sp(t,n);return wd(e,r,s,y1(a),e.RGBA,e.FLOAT)}function x1(e){return e.internalFormatPackedHalfFloat}function nE(e,t,n,a){let[r,s]=sp(t,n);return wd(e,r,s,x1(a),e.RGBA,a.textureTypeHalfFloat)}function aE(e,t,n){return ge(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),Fx(e,t,"clipSpacePos",n,3,20,0)&&Fx(e,t,"uv",n,2,20,12)}function rE(e,t,n,a,r,s){ge(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),X().getNumber("WEBGL_VERSION")===2?ge(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):ge(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),ge(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function sE(e,t,n){ge(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?X().getNumber("WEBGL_VERSION")===2?ge(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):ge(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):X().getNumber("WEBGL_VERSION")===2?ge(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):ge(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),ge(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function iE(e,t,n,a){let r=e.createBuffer();ge(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return ge(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),ge(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),ge(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function oE(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 lE(e,t,n,a){let[r,s]=vd(t,n),i=4,o=new Uint8Array(tY(t*n,i));return ge(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function uE(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(nY(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 pE(e,t,n){let a=new Float32Array(t*n*4);return ge(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var Kh=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=X().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,y_(t,e)):this.gl=Ja(t);let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),X().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=Qp(this.gl,r),da(this.gl,s))this.textureHalfFloatExtension=Qp(this.gl,s);else if(X().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=Qp(this.gl,a);else if(X().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=Y_(this.gl),this.indexBuffer=Z_(this.gl),this.framebuffer=E_(this.gl),this.textureConfig=p1(this.gl,this.textureHalfFloatExtension)}get debug(){return X().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;ge(e,()=>e.finish()),ge(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),ge(e,()=>e.deleteFramebuffer(this.framebuffer)),ge(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),ge(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),ge(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),J_(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),Q_(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),eE(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),sE(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),rE(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),nE(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),tE(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(Dx(this.gl,this.framebuffer),this.outputTexture=null),ge(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>lE(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return uE(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return oE(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=iE(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(X().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 X().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,X().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>pE(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=X_(t));let n=I_(t);return ge(t,()=>t.attachShader(n,this.vertexShader)),ge(t,()=>t.attachShader(n,e)),T_(t,n),this.debug&&Uh(t,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=aE(t,this.program,this.vertexBuffer)),n}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&ge(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Uh(this.gl,this.program),ge(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?A_(this.gl,e,t):F_(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),ge(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(),D_(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=sp(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&&Uh(this.gl,this.program),ec(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),ge(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),ge(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Qp(this.gl,X().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(X().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(X().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,X().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,X().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=iZ(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){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),!(this.itemsToPoll.length>1)&&v.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Gh(this.gl,e,this.framebuffer),this.debug&&ec(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Gh(this.gl,this.outputTexture,this.framebuffer),this.debug&&ec(this.gl)):Dx(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;Gh(a,e,this.framebuffer),this.debug&&ec(a),this.outputTexture=e,ge(a,()=>a.viewport(0,0,t,n)),ge(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),ge(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 iZ(e){let t=0;for(;t`${e}.${n}`)}function Sn(e,t){return t===1?[e]:mE(e,t)}function KZ(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 Y0(e){return e.internalFormatFloat}function P_(e,t,n,a){let[r,s]=sd(t,n);return id(e,r,s,Y0(a),a.textureFormatFloat,e.FLOAT)}function Z0(e){return e.internalFormatHalfFloat}function O_(e,t,n,a){let[r,s]=sd(t,n);return id(e,r,s,Z0(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function J0(e){return e.downloadTextureFormat}function L_(e,t,n,a){let[r,s]=sd(t,n);return id(e,r,s,J0(a),e.RGBA,e.UNSIGNED_BYTE)}function Q0(e){return e.internalFormatPackedFloat}function z_(e,t,n,a){let[r,s]=qu(t,n);return id(e,r,s,Q0(a),e.RGBA,e.FLOAT)}function e1(e){return e.internalFormatPackedHalfFloat}function B_(e,t,n,a){let[r,s]=qu(t,n);return id(e,r,s,e1(a),e.RGBA,a.textureTypeHalfFloat)}function W_(e,t,n){return me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),dx(e,t,"clipSpacePos",n,3,20,0)&&dx(e,t,"uv",n,2,20,12)}function V_(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 U_(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 G_(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 H_(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 j_(e,t,n,a){let[r,s]=sd(t,n),i=4,o=new Uint8Array(DY(t*n,i));return me(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function q_(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(RY(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 K_(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,n_(t,e)):this.gl=Ha(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=Op(this.gl,r),da(this.gl,s))this.textureHalfFloatExtension=Op(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=Op(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=R_(this.gl),this.indexBuffer=M_(this.gl),this.framebuffer=h_(this.gl),this.textureConfig=H0(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(),P_(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),O_(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),L_(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),U_(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),V_(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),B_(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),z_(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(hx(this.gl,this.framebuffer),this.outputTexture=null),me(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>j_(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return q_(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return H_(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=G_(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,()=>K_(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=D_(t));let n=o_(t);return me(t,()=>t.attachShader(n,this.vertexShader)),me(t,()=>t.attachShader(n,e)),l_(t,n),this.debug&&vh(t,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=W_(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&&vh(this.gl,this.program),me(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?f_(this.gl,e,t):g_(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(),b_(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=qu(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&&vh(this.gl,this.program),Lp(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=Op(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=L7(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(),wh(this.gl,e,this.framebuffer),this.debug&&Lp(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(wh(this.gl,this.outputTexture,this.framebuffer),this.debug&&Lp(this.gl)):hx(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;wh(a,e,this.framebuffer),this.debug&&Lp(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 L7(e){let t=0;for(;t`${e}.${n}`)}function kn(e,t){return t===1?[e]:J_(e,t)}function CZ(e,t){if(e===1)return"rc";let n="";for(let a=0;a= ${this.enableShapeUniforms?"outShape":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`:`getA(${t[0]}), cEdge ? 0. : getA(${t[1]}), rEdge ? 0. : getA(${t[2]}), - rEdge || cEdge ? 0. : getA(${t[3]})`}},fE=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=Fn(this.outputShape.length);let n="";for(let a=0;a<4;a++){let r="thisRC = rc;";a%2===1&&(r+="thisRC.z += 1;"),a>1&&(r+="thisRC.y += 1;"),n+=` + rEdge || cEdge ? 0. : getA(${t[3]})`}},Q_=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=Cn(this.outputShape.length);let n="";for(let a=0;a<4;a++){let r="thisRC = rc;";a%2===1&&(r+="thisRC.z += 1;"),a>1&&(r+="thisRC.y += 1;"),n+=` ${r} ${a>0?"if(thisRC.y < rows && thisRC.z < cols){":""} int flatIndex = getFlatIndex(thisRC); @@ -1160,8 +1160,8 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${a>0?"}":""} `}this.userCode=` - ${YZ(t,this.enableShapeUniforms)} - ${this.enableShapeUniforms?h1():d1(e)} + ${EZ(t,this.enableShapeUniforms)} + ${this.enableShapeUniforms?K0():q0(e)} void main() { ivec3 rc = getOutputCoords(); @@ -1176,12 +1176,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function YZ(e,t){return` + `}};function EZ(e,t){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { - ${t?mY(["r","c","d"],"inputShape"):Eo(["r","c","d"],e)} + ${t?jY(["r","c","d"],"inputShape"):vo(["r","c","d"],e)} return ivec3(r, c, d); } - `}var ZZ=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){let a=EI(t,n),r=$I(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=_I(e,a,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();let o=this.freeTextures[r].shift();return this.usedTextures[r].push(o),o}let i;return a===ln.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===ln.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===ln.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===ln.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===ln.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[r].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,a){if(this.freeTextures==null)return;let r=EI(n,a),s=$I(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=_I(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=X().get("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],u=l.indexOf(e);if(u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(u,1),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function JZ(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F||t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;if(t===n.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function _I(e,t,n,a,r){let s=QZ(t,a),i;if(r){let[l,u]=sp(e[0],e[1]);i=l*u}else{let[l,u]=vd(e[0],e[1]);i=l*u}let o=JZ(n,s);return i*o}function QZ(e,t){switch(e){case ln.PACKED_2X2_FLOAT32:return y1(t);case ln.PACKED_2X2_FLOAT16:return x1(t);case ln.UNPACKED_FLOAT32:return f1(t);case ln.UNPACKED_FLOAT16:return g1(t);case ln.PACKED_4X1_UNSIGNED_BYTE:return b1(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function eJ(e){return X().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?ln.PACKED_2X2_FLOAT32:ln.UNPACKED_FLOAT32:e?ln.PACKED_2X2_FLOAT16:ln.UNPACKED_FLOAT16}function EI(e,t){if(e===ca.UPLOAD)return ln.PACKED_2X2_FLOAT32;if(e===ca.RENDER||e==null)return eJ(t);if(e===ca.DOWNLOAD||e===ca.PIXELS)return ln.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function $I(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var $r=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=Fn(this.outputShape.length),this.userCode=` + `}var AZ=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){let a=lI(t,n),r=uI(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=oI(e,a,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();let o=this.freeTextures[r].shift();return this.usedTextures[r].push(o),o}let i;return a===on.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===on.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===on.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===on.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===on.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[r].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,a){if(this.freeTextures==null)return;let r=lI(n,a),s=uI(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=oI(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=H().get("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],u=l.indexOf(e);if(u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(u,1),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function $Z(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F||t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;if(t===n.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function oI(e,t,n,a,r){let s=FZ(t,a),i;if(r){let[l,u]=qu(e[0],e[1]);i=l*u}else{let[l,u]=sd(e[0],e[1]);i=l*u}let o=$Z(n,s);return i*o}function FZ(e,t){switch(e){case on.PACKED_2X2_FLOAT32:return Q0(t);case on.PACKED_2X2_FLOAT16:return e1(t);case on.UNPACKED_FLOAT32:return Y0(t);case on.UNPACKED_FLOAT16:return Z0(t);case on.PACKED_4X1_UNSIGNED_BYTE:return J0(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function DZ(e){return H().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?on.PACKED_2X2_FLOAT32:on.UNPACKED_FLOAT32:e?on.PACKED_2X2_FLOAT16:on.UNPACKED_FLOAT16}function lI(e,t){if(e===ca.UPLOAD)return on.PACKED_2X2_FLOAT32;if(e===ca.RENDER||e==null)return DZ(t);if(e===ca.DOWNLOAD||e===ca.PIXELS)return on.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function uI(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var Cr=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=Cn(this.outputShape.length),this.userCode=` float unaryOperation(float x) { ${t} } @@ -1192,11 +1192,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},Ra="if (isnan(x)) return x;",tJ="return x;",AI="return abs(x);",nJ="return (x >= 0.0) ? x : (exp(x) - 1.0);",aJ=Ra+` + `}},Ra="if (isnan(x)) return x;",RZ="return x;",pI="return abs(x);",MZ="return (x >= 0.0) ? x : (exp(x) - 1.0);",PZ=Ra+` return (x < 0.0) ? 0.0 : x; -`,rJ=Ra+` +`,OZ=Ra+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,fl="return x;",sJ="return 1.0 / (1.0 + exp(-1.0 * x));",iJ="return x;",oJ=` +`,al="return x;",LZ="return 1.0 / (1.0 + exp(-1.0 * x));",zZ="return x;",BZ=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -1205,7 +1205,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,lJ=` +`,WZ=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1215,7 +1215,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,uJ=` +`,VZ=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1225,7 +1225,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,pJ="return 1.0 / (1.0 + exp(-1.0 * x));",ni=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=Fn(this.outputShape.length),this.userCode=` +`,UZ="return 1.0 / (1.0 + exp(-1.0 * x));",qs=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=Cn(this.outputShape.length),this.userCode=` vec4 unaryOperation(vec4 x) { ${t} } @@ -1236,17 +1236,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},cJ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=Fn(this.outputShape.length);let t=e.length,n=Sn("rc",t),a=pt(t),r=KZ(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` + `}},GZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=Cn(this.outputShape.length);let t=e.length,n=kn("rc",t),a=gt(t),r=CZ(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` void main() { ${a} rc = getOutputCoords(); vec4 packedInput = getA(${r}); setOutput(getChannel(packedInput, ${i})); } - `}},dJ=yr.whereImpl,hJ=1e-7,mJ=1e-4,Vy={};function fJ(e){return e in Vy||(Vy[e]={}),Vy[e]}var gJ=X().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),bJ=600;function yJ(){return X().global.screen==null?1024:X().global.screen.height*X().global.screen.width*window.devicePixelRatio*bJ/1024/1024}var gg=class extends Tc{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,!X().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let t;if(e!=null){if(e instanceof Kh)t=e;else{let n=Ja(X().getNumber("WEBGL_VERSION"),e);t=new Kh(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Ja(X().getNumber("WEBGL_VERSION"));t=new Kh(n),this.binaryCache=fJ(X().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new ZZ(this.gpgpu),this.numMBBeforeWarning=yJ(),this.texData=new Em(this,ir())}nextDataId(){return gg.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}write(e,t,n){if((X().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||X().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(X().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 ni(i,fl):d=new $r(i,fl);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=C.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 ni(a,fl):h=new $r(a,fl);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(X().getBool("DEBUG")&&!X().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&X().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"&&X().get("WEBGL_BUFFER_SUPPORTED")){u=this.decode(e);let h=this.texData.get(u.dataId);l=this.gpgpu.createBufferFromTexture(h.texture.texture,...Oh(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=C.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;ge(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)&&ir().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 ni(r,fl):c=new $r(r,fl);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=ir().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 ze(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return ze(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(X().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 X().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:v.now(),endMs:null}}endTimer(e){return X().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=v.now(),e)}async getQueryTime(e){if(X().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=gJ){return X().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 ir().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,n),this)}unpackTensor(e){let t=new cJ(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new XZ(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[vi(e.shape),...wi(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[vi(t),...wi(t)],s=new fE(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=Hh(r),o;a?o=new tZ(i):o=new eZ(i);let l=!0,u=[t!=null?t:Oh(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===yc.DENSE){let g=s!=null?s:Oh(e.outputShape);o.texShape=g.map(b=>b*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 b=this.texData.get(g.dataId);if(b.texture==null){if(!e.packedInputs&&v.sizeFromShape(g.shape)<=X().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:b.values};e.packedInputs&&(b.isPacked=!0,b.shape=g.shape)}if(this.uploadToGPU(g.dataId),!!b.isPacked!=!!e.packedInputs)g=b.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),b=this.texData.get(g.dataId);else if(b.isPacked&&!xc(b.shape,g.shape)){let y=g,x=g.shape;g.shape=b.shape,g=this.packedReshape(g,x),l.push(g),b=this.texData.get(g.dataId),y.shape=x}return{shape:g.shape,texData:b,isUniform:!1}});this.uploadToGPU(i.dataId);let p={shape:i.shape,texData:o,isUniform:!1},d=QY(e,u,p),c=this.getAndSaveBinary(d,()=>ZY(this.gpgpu,e,u,p)),h=this.activeTimers!=null,m;h&&(m=this.startTimer()),X().get("ENGINE_COMPILE_ONLY")||JY(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=X().get("WEBGL_FLUSH_THRESHOLD");if(f>0){let g=v.now();g-this.lastGlFlushTime>f&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=g)}if(!X().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||(X().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=O(()=>{if(!X().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=X().getBool("DEBUG");X().set("DEBUG",!1);let t=this.abs(ke(1e-8)).dataSync()[0];if(X().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?hJ:mJ}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=P_(n,o),t.texShape=p),r!=null){let d=Hh(n),c,h=p[1],m=p[0],f=r instanceof Uint8Array||r instanceof Uint8ClampedArray;(o||!f)&&([h,m]=sp(p[0],p[1])),o?c=new sZ(d,f):c=new rZ(d,f);let g=f?[m,h]:p,b=this.makeTensorInfo(g,a),y=this.texData.get(b.dataId);f?y.usage=ca.PIXELS:y.usage=ca.UPLOAD,y.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),h,m,r);let x=[[m,h]],w=!0,I=this.runWebGLProgram(c,[b],a,x,w),N=this.texData.get(I.dataId);t.texShape=N.texShape,t.isPacked=N.isPacked,t.usage=N.usage,X().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(t.texture=N.texture,t.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(b),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=xJ(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 gw(),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?(c1(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}=q_(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}}};gg.nextDataId=0;function xJ(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 gg,2);var wJ={forceHalfFloat:gE},bE=` + `}},HZ=dr.whereImpl,jZ=1e-7,qZ=1e-4,ky={};function KZ(e){return e in ky||(ky[e]={}),ky[e]}var XZ=H().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),YZ=600;function ZZ(){return H().global.screen==null?1024:H().global.screen.height*H().global.screen.width*window.devicePixelRatio*YZ/1024/1024}var qf=class extends lc{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=Ha(H().getNumber("WEBGL_VERSION"),e);t=new Th(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Ha(H().getNumber("WEBGL_VERSION"));t=new Th(n),this.binaryCache=KZ(H().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new AZ(this.gpgpu),this.numMBBeforeWarning=ZZ(),this.texData=new im(this,er())}nextDataId(){return qf.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}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,al):d=new Cr(i,al);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,al):h=new Cr(a,al);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,...mh(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)&&er().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,al):c=new Cr(r,al);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=er().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=XZ){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 er().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,n),this)}unpackTensor(e){let t=new GZ(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new _Z(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 Q_(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=kh(r),o;a?o=new D7(i):o=new F7(i);let l=!0,u=[t!=null?t:mh(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===nc.DENSE){let g=s!=null?s:mh(e.outputShape);o.texShape=g.map(b=>b*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 b=this.texData.get(g.dataId);if(b.texture==null){if(!e.packedInputs&&v.sizeFromShape(g.shape)<=H().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:b.values};e.packedInputs&&(b.isPacked=!0,b.shape=g.shape)}if(this.uploadToGPU(g.dataId),!!b.isPacked!=!!e.packedInputs)g=b.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),b=this.texData.get(g.dataId);else if(b.isPacked&&!ac(b.shape,g.shape)){let y=g,x=g.shape;g.shape=b.shape,g=this.packedReshape(g,x),l.push(g),b=this.texData.get(g.dataId),y.shape=x}return{shape:g.shape,texData:b,isUniform:!1}});this.uploadToGPU(i.dataId);let p={shape:i.shape,texData:o,isUniform:!1},d=$7(e,u,p),c=this.getAndSaveBinary(d,()=>E7(this.gpgpu,e,u,p)),h=this.activeTimers!=null,m;h&&(m=this.startTimer()),H().get("ENGINE_COMPILE_ONLY")||A7(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(ye(1e-8)).dataSync()[0];if(H().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?jZ:qZ}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=v_(n,o),t.texShape=p),r!=null){let d=kh(n),c,h=p[1],m=p[0],f=r instanceof Uint8Array||r instanceof Uint8ClampedArray;(o||!f)&&([h,m]=qu(p[0],p[1])),o?c=new O7(d,f):c=new P7(d,f);let g=f?[m,h]:p,b=this.makeTensorInfo(g,a),y=this.texData.get(b.dataId);f?y.usage=ca.PIXELS:y.usage=ca.UPLOAD,y.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),h,m,r);let x=[[m,h]],w=!0,I=this.runWebGLProgram(c,[b],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(b),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=JZ(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 Yv(),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?(j0(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}=$_(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}}};qf.nextDataId=0;function JZ(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 qf,2);var eJ={forceHalfFloat:eE},n1=` if (isnan(a)) return a; if (isnan(b)) return b; -`,Bl=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=C.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=Fn(this.outputShape.length),this.userCode=` +`,El=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=Cn(this.outputShape.length),this.userCode=` float binaryOperation(float a, float b) { ${e} } @@ -1256,17 +1256,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float b = getBAtOutCoords(); setOutput(binaryOperation(a, b)); } - `}},bg=` - result.r = isNaN.r > 0. ? NAN : result.r; - result.g = isNaN.g > 0. ? NAN : result.g; - result.b = isNaN.b > 0. ? NAN : result.b; - result.a = isNaN.a > 0. ? NAN : result.a; -`,kd=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=C.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length;this.enableShapeUniforms=Fn(r);let s="";if(a)if(r===0||v.sizeFromShape(this.outputShape)===1)s=` + `}},od=` + result.r = isNaN.r ? NAN : result.r; + result.g = isNaN.g ? NAN : result.g; + result.b = isNaN.b ? NAN : result.b; + result.a = isNaN.a ? NAN : result.a; +`,ld=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=N.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length;this.enableShapeUniforms=Cn(r);let s="";if(a)if(r===0||v.sizeFromShape(this.outputShape)===1)s=` result.y = 0.; result.z = 0.; result.w = 0.; `;else if(s=` - ${pt(r)} coords = getOutputCoords(); + ${gt(r)} coords = getOutputCoords(); `,r===1)this.enableShapeUniforms?s+=` result.y = (coords + 1) >= outShape ? 0. : result.y; result.z = 0.; @@ -1275,7 +1275,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y; result.z = 0.; result.w = 0.; - `;else{let i=Sn("coords",r);this.enableShapeUniforms?s+=` + `;else{let i=kn("coords",r);this.enableShapeUniforms?s+=` bool nextRowOutOfBounds = (${i[r-2]} + 1) >= outShape[${r} - 2]; bool nextColOutOfBounds = @@ -1305,21 +1305,13 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};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 kJ={kernelName:Ui,backendName:"webgl",kernelFunc:aa};function Fs(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 IJ={kernelName:Pm,backendName:"webgl",kernelFunc:Fs},yE="return (a < 0.) ? b * a : a;",xE=` + `}};function na(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 tJ={kernelName:Ri,backendName:"webgl",kernelFunc:na};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=na({inputs:{x:a},backend:n}),l=na({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var nJ={kernelName:hm,backendName:"webgl",kernelFunc:_s},tE="return (a < 0.) ? b * a : a;",nE=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function TJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",v.createScalarValue(s,"float32")),o=X().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new kd(xE,r.shape,i.shape):new Bl(yE,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var SJ={kernelName:Gi,backendName:"webgl",kernelFunc:TJ},vE="return (a < 0.) ? b * a : a;",wE=` +`;function aJ(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 ld(nE,r.shape,i.shape):new El(tE,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var rJ={kernelName:Mi,backendName:"webgl",kernelFunc:aJ},aE="return (a < 0.) ? b * a : a;",rE=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function NJ(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=X().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new kd(wE,a.shape,r.shape):new Bl(vE,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var CJ={kernelName:ao,backendName:"webgl",kernelFunc:NJ},cp="if (isnan(x)) return x;",_J=` - if (isnan(a)) return a; - if (isnan(b)) return b; -`,EJ=` - result.r = isNaN.r > 0. ? NAN : result.r; - result.g = isNaN.g > 0. ? NAN : result.g; - result.b = isNaN.b > 0. ? NAN : result.b; - result.a = isNaN.a > 0. ? NAN : result.a; -`;function Ze({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=X().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,p;return u?p=new ni(i.shape,t):p=new $r(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,b]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[w,I]=x,N={dataId:w.dataId,dtype:w.dtype,shape:l.shape},_={dataId:I.dataId,dtype:I.dtype,shape:u.shape},$=new Bl(e,l.shape,u.shape);return p.runWebGLProgram($,[N,_],ma(w.dtype,I.dtype))}),y=Fs({inputs:{real:g,imag:b},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(b),y}let d=s||ma(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"?C.fromUint8ToStringArray(m):m,b=l.dtype==="string"?C.fromUint8ToStringArray(f):f,[y,x]=r(l.shape,u.shape,g,b,d),w=p.makeTensorInfo(x,d),I=p.texData.get(w.dataId);return I.values=y,w}let c=X().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new kd(t,l.shape,u.shape,n):h=new Bl(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function vc(e,t=!1){if(e==="linear")return t?iJ:tJ;if(e==="relu")return t?lJ:aJ;if(e==="elu")return t?oJ:nJ;if(e==="relu6")return t?uJ:rJ;if(e==="prelu")return t?wE:vE;if(e==="leakyrelu")return t?xE:yE;if(e==="sigmoid")return t?pJ:sJ;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var kE=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=Fn(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 sJ(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ld(rE,a.shape,r.shape):new El(aE,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var iJ={kernelName:Ki,backendName:"webgl",kernelFunc:sJ},Qu="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 pn({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,b]=[[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 El(e,l.shape,u.shape);return p.runWebGLProgram(E,[T,C],ma(w.dtype,I.dtype))}),y=_s({inputs:{real:g,imag:b},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(b),y}let d=s||ma(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,b=l.dtype==="string"?N.fromUint8ToStringArray(f):f,[y,x]=r(l.shape,u.shape,g,b,d),w=p.makeTensorInfo(x,d),I=p.texData.get(w.dataId);return I.values=y,w}let c=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new ld(t,l.shape,u.shape,n):h=new El(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function rc(e,t=!1){if(e==="linear")return t?zZ:RZ;if(e==="relu")return t?WZ:PZ;if(e==="elu")return t?BZ:MZ;if(e==="relu6")return t?VZ:OZ;if(e==="prelu")return t?rE:aE;if(e==="leakyrelu")return t?nE:tE;if(e==="sigmoid")return t?UZ:LZ;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var sE=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=Cn(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) { @@ -1358,7 +1350,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}},FI={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},DI=class{constructor(e,t,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=C.assertAndGetBroadcastShape(t,n),this.userCode=` + `}},cI={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},dI=class{constructor(e,t,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.userCode=` float binaryOpComplex( float areal, float aimag, float breal, float bimag) { ${e} @@ -1371,7 +1363,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } - `}},RI="return a * b;";function w1(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=C.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),u=new DI(FI.REAL,a.shape,r.shape),p=new DI(FI.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=Fs({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]=CZ(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 X().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new kd(RI,a.shape,r.shape):i=new Bl(RI,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var $J={kernelName:Qi,backendName:"webgl",kernelFunc:w1};function AJ(e,t,n){let a=[vi(e.shape),...wi(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[vi(t),...wi(t)],i=new fE(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 he(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&&!xc(r.shape,l)&&!(p.texture!==null&&xc(p.shape,l))?AJ(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var FJ={kernelName:$u,backendName:"webgl",kernelFunc:he},MI=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=` + `}},hI="return a * b;";function a1(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 dI(cI.REAL,a.shape,r.shape),p=new dI(cI.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]=sZ(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 ld(hI,a.shape,r.shape):i=new El(hI,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var oJ={kernelName:Gi,backendName:"webgl",kernelFunc:a1};function lJ(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 Q_(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&&!ac(r.shape,l)&&!(p.texture!==null&&ac(p.shape,l))?lJ(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var uJ={kernelName:yu,backendName:"webgl",kernelFunc:de},mI=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; } @@ -1424,7 +1416,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(sumValue); } - `}},DJ=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i="0.0",o="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",o="min"):t==="max"&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");let u=Math.floor(n/4)*4,p=n%4,d=` + `}},pJ=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i="0.0",o="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",o="min"):t==="max"&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");let u=Math.floor(n/4)*4,p=n%4,d=` if (${t==="sum"}) { sumValue += dot(values, ones); } else if (${t==="prod"}) { @@ -1516,12 +1508,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${l}); } - `}};function RJ(e){let t=[];for(;t.length===0||t[t.length-1].outSize!==1;){let n=t.length?t[t.length-1].outSize:e[1],a=C.computeOptimalWindowSize(n);t.push({inSize:n,windowSize:a,outSize:Math.ceil(n/a)})}return t}function Ao(e,t,n,a){let r=RJ(e.shape),s=e;for(let i=0;i6)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=pt(this.rank),r=mE("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=J_("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?[b,d,h]:[b,h,d],I=a?[y,m,c]:[y,c,m],N=he({inputs:{x:e},backend:r,attrs:{shape:w}}),_=he({inputs:{x:t},backend:r,attrs:{shape:I}}),$=[N,_],A=Math.max(b,y),M=n?N.shape[1]:N.shape[2],D=s!=null,T=i!=null,P=l==="leakyrelu",U=l!=null?vc(l,!0):null,j=D||T||P||U!=null,q;if((h===1||m===1)&&M>IE&&j===!1){let Y=N,te=_;n&&(Y=Cn({inputs:{x:N},backend:r,attrs:{perm:[0,2,1]}}),$.push(Y)),a&&(te=Cn({inputs:{x:_},backend:r,attrs:{perm:[0,2,1]}}),$.push(te));let re=m!==1,J=m===1,ie=Y;re&&(ie=he({inputs:{x:Y},backend:r,attrs:{shape:[A,M,1]}}),$.push(ie));let ae=m===1?2:1,oe=te;J&&(oe=he({inputs:{x:te},backend:r,attrs:{shape:[A,1,M]}}),$.push(oe));let ue=w1({inputs:{a:ie,b:oe},backend:r});q=xg({inputs:{x:ue},backend:r,attrs:{axis:ae,keepDims:!0}}),$.push(ue)}else{let Y=ma(e.dtype,t.dtype),te=new kE(w,I,[A,h,m],n,a,D,U,T,P),re=[N,_];if(s!=null&&re.push(s),T&&re.push(i),P){let J=r.makeTensorInfo([],"float32",v.createScalarValue(o,"float32"));re.push(J),$.push(J)}q=r.runWebGLProgram(te,re,Y)}let K=he({inputs:{x:q},backend:r,attrs:{shape:x}});$.push(q);for(let Y of $)r.disposeIntermediateTensorInfo(Y);return K}function BJ(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 Tm({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var VJ={kernelName:li,backendName:"webgl",kernelFunc:BJ},PI="return abs(x);";function UJ(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=dE(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return X().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ni(a.shape,PI):r=new $r(a.shape,PI),n.runWebGLProgram(r,[a],a.dtype)}var GJ={kernelName:Ul,backendName:"webgl",kernelFunc:UJ},HJ=Ra+` + `}};function Kf(e,t,n){let a=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new mJ(e.shape,t):new dJ(e.shape,t);return n.runWebGLProgram(a,[e],e.dtype)}function fJ(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=Kf(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}),b=Wm(e.dtype),y=ko(g,b,"sum",a),x=de({inputs:{x:y},attrs:{shape:h},backend:a});return a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(y),u&&a.disposeIntermediateTensorInfo(p),x}function Xf(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;return fJ(r,s,i,n)}var gJ={kernelName:io,backendName:"webgl",kernelFunc:Xf};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?[b,d,h]:[b,h,d],I=a?[y,m,c]:[y,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(b,y),R=n?T.shape[1]:T.shape[2],F=s!=null,S=i!=null,M=l==="leakyrelu",W=l!=null?rc(l,!0):null,U=F||S||M||W!=null,G;if((h===1||m===1)&&R>iE&&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=a1({inputs:{a:ae,b:le},backend:r});G=Xf({inputs:{x:ie},backend:r,attrs:{axis:te,keepDims:!0}}),E.push(ie)}else{let K=ma(e.dtype,t.dtype),Z=new sE(w,I,[A,h,m],n,a,F,W,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 yJ(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 tm({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var xJ={kernelName:Qs,backendName:"webgl",kernelFunc:yJ},fI="return abs(x);";function vJ(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=Y_(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return H().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new qs(a.shape,fI):r=new Cr(a.shape,fI),n.runWebGLProgram(r,[a],a.dtype)}var wJ={kernelName:$l,backendName:"webgl",kernelFunc:vJ},kJ=Ra+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,jJ=Ze({opSnippet:HJ}),qJ={kernelName:Gl,backendName:"webgl",kernelFunc:jJ},KJ=Ra+` +`,IJ=Ye({opSnippet:kJ}),SJ={kernelName:Fl,backendName:"webgl",kernelFunc:IJ},TJ=Ra+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,XJ=Ze({opSnippet:KJ}),YJ={kernelName:Hl,backendName:"webgl",kernelFunc:XJ},OI="return a + b;",ZJ=cn({opSnippet:OI,packedOpSnippet:OI,supportsComplex:!0,cpuKernelImpl:oZ}),JJ={kernelName:xs,backendName:"webgl",kernelFunc:ZJ},QJ=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));`,NJ=Ye({opSnippet:TJ}),CJ={kernelName:Dl,backendName:"webgl",kernelFunc:NJ},gI="return a + b;",_J=pn({opSnippet:gI,packedOpSnippet:gI,supportsComplex:!0,cpuKernelImpl:z7}),EJ={kernelName:fs,backendName:"webgl",kernelFunc:_J},AJ=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(` `)} @@ -1553,7 +1545,7 @@ return log(x + sqrt(x * x - 1.0));`,XJ=Ze({opSnippet:KJ}),YJ={kernelName:Hl,back float result = ${a}; setOutput(result); } - `}},e9=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`vec4 v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` + `}},$J=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`vec4 v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1561,7 +1553,7 @@ return log(x + sqrt(x * x - 1.0));`,XJ=Ze({opSnippet:KJ}),YJ={kernelName:Hl,back vec4 result = ${a}; setOutput(result); } - `}};function Xh(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return aa({inputs:{x:a[0]},backend:n});if(a.length>X().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=Xh({inputs:a.slice(0,o),backend:n}),u=Xh({inputs:a.slice(o),backend:n});return Xh({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>ma(o,l)),s=a.map(o=>o.shape),i=X().getBool("WEBGL_PACK")?new e9(a[0].shape,s):new QJ(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var t9={kernelName:Ti,backendName:"webgl",kernelFunc:Xh};function n9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=C.getAxesPermutation(u,o),d=r;p!=null&&(d=Cn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=C.getInnerMostAxes(u.length,o)),C.assertAxesAreInnerMostDims("all",u,o);let[c,h]=C.computeOutAndReduceShapes(d.shape,u),m=v.sizeFromShape(h),f=he({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=Ao(f,f.dtype,"all",n),b;if(i){let y=C.expandShapeToKeepDim(c,l);b=he({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=he({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var a9={kernelName:jl,backendName:"webgl",kernelFunc:n9};function r9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=C.getAxesPermutation(u,o),d=r;p!=null&&(d=Cn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=C.getInnerMostAxes(u.length,o)),C.assertAxesAreInnerMostDims("any",u,o);let[c,h]=C.computeOutAndReduceShapes(d.shape,u),m=v.sizeFromShape(h),f=he({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=Ao(f,f.dtype,"any",n),b;if(i){let y=C.expandShapeToKeepDim(c,l);b=he({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=he({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var s9={kernelName:ql,backendName:"webgl",kernelFunc:r9},i9=class{constructor(e,t,n){this.variableNames=["A"];let{windowSize:a,batchSize:r,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,s];let i=t==="max"?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` + `}};function Nh(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return na({inputs:{x:a[0]},backend:n});if(a.length>H().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=Nh({inputs:a.slice(0,o),backend:n}),u=Nh({inputs:a.slice(o),backend:n});return Nh({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>ma(o,l)),s=a.map(o=>o.shape),i=H().getBool("WEBGL_PACK")?new $J(a[0].shape,s):new AJ(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var FJ={kernelName:fi,backendName:"webgl",kernelFunc:Nh};function DJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=r;p!=null&&(d=In({inputs:{x:r},backend:n,attrs:{perm:p}}),u=N.getInnerMostAxes(u.length,o)),N.assertAxesAreInnerMostDims("all",u,o);let[c,h]=N.computeOutAndReduceShapes(d.shape,u),m=v.sizeFromShape(h),f=de({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=ko(f,f.dtype,"all",n),b;if(i){let y=N.expandShapeToKeepDim(c,l);b=de({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=de({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var RJ={kernelName:Rl,backendName:"webgl",kernelFunc:DJ};function MJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=r;p!=null&&(d=In({inputs:{x:r},backend:n,attrs:{perm:p}}),u=N.getInnerMostAxes(u.length,o)),N.assertAxesAreInnerMostDims("any",u,o);let[c,h]=N.computeOutAndReduceShapes(d.shape,u),m=v.sizeFromShape(h),f=de({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=ko(f,f.dtype,"any",n),b;if(i){let y=N.expandShapeToKeepDim(c,l);b=de({inputs:{x:g},backend:n,attrs:{shape:y}})}else b=de({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),b}var PJ={kernelName:Ml,backendName:"webgl",kernelFunc:MJ},OJ=class{constructor(e,t,n){this.variableNames=["A"];let{windowSize:a,batchSize:r,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,s];let i=t==="max"?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -1581,14 +1573,14 @@ return log(x + sqrt(x * x - 1.0));`,XJ=Ze({opSnippet:KJ}),YJ={kernelName:Hl,back } setOutput(float(bestIndex)); } - `}},o9=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,v.assert(e.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let r=e[e.length-1],s=Math.ceil(r/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),a||this.variableNames.push("bestIndicesA");let i=this.outputShape,o=i.length,l=pt(o),u=Sn("coords",o),p,d;if(s===1){d=o+1;let _=pt(d);p=` - ${_} sourceLocR = ${_}(${u.join()}, 0); + `}},LJ=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,v.assert(e.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let r=e[e.length-1],s=Math.ceil(r/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),a||this.variableNames.push("bestIndicesA");let i=this.outputShape,o=i.length,l=gt(o),u=kn("coords",o),p,d;if(s===1){d=o+1;let C=gt(d);p=` + ${C} sourceLocR = ${C}(${u.join()}, 0); ++${u[o-1]}; - ${_} sourceLocG = ${_}(${u.join()}, 0); + ${C} sourceLocG = ${C}(${u.join()}, 0); ++${u[o-2]}; - ${_} sourceLocA = ${_}(${u.join()}, 0); + ${C} sourceLocA = ${C}(${u.join()}, 0); --${u[o-1]}; - ${_} sourceLocB = ${_}(${u.join()}, 0); + ${C} sourceLocB = ${C}(${u.join()}, 0); --${u[o-2]};`}else d=o,p=` ${l} sourceLocR = coords; ++${u[o-1]}; @@ -1597,7 +1589,7 @@ return log(x + sqrt(x * x - 1.0));`,XJ=Ze({opSnippet:KJ}),YJ={kernelName:Hl,back ${l} sourceLocA = coords; --${u[o-1]}; ${l} sourceLocB = coords; - --${u[o-2]};`;let c=["x","y","z","w","u","v"].slice(0,d),h="."+c[d-1],m=c.map(_=>"int "+_),f=Sn("sourceLocR",d-1).concat("inIdx.r"),g=Sn("sourceLocG",d-1).concat("inIdx.g"),b=Sn("sourceLocB",d-1).concat("inIdx.b"),y=Sn("sourceLocA",d-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",w=a?"":` + --${u[o-2]};`;let c=["x","y","z","w","u","v"].slice(0,d),h="."+c[d-1],m=c.map(C=>"int "+C),f=kn("sourceLocR",d-1).concat("inIdx.r"),g=kn("sourceLocG",d-1).concat("inIdx.g"),b=kn("sourceLocB",d-1).concat("inIdx.b"),y=kn("sourceLocA",d-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",w=a?"":` inIdx = round(vec4(getBestIndicesAChannel(${f.join()}), getBestIndicesAChannel(${g.join()}), getBestIndicesAChannel(${b.join()}), @@ -1605,7 +1597,7 @@ return log(x + sqrt(x * x - 1.0));`,XJ=Ze({opSnippet:KJ}),YJ={kernelName:Hl,back getAChannel(${f.join()}), hasNextCol ? getAChannel(${g.join()}) : 0., hasNextRow ? getAChannel(${b.join()}) : 0., - hasNextRow && hasNextCol ? getAChannel(${y.join()}) : 0.)`,N=a?"":` + hasNextRow && hasNextCol ? getAChannel(${y.join()}) : 0.)`,T=a?"":` float getBestIndicesAChannel(${m.join()}) { return getChannel(getBestIndicesA(${c.join()}), vec2(${c.slice(-2).join()})); @@ -1614,7 +1606,7 @@ return log(x + sqrt(x * x - 1.0));`,XJ=Ze({opSnippet:KJ}),YJ={kernelName:Hl,back return getChannel(getA(${c.join()}), vec2(${c.slice(-2).join()})); } - ${N} + ${T} void main() { ${l} coords = getOutputCoords(); bool hasNextCol = ${u[o-1]} < ${i[o-1]-1}; @@ -1643,23 +1635,25 @@ return log(x + sqrt(x * x - 1.0));`,XJ=Ze({opSnippet:KJ}),YJ={kernelName:Hl,back } setOutput(bestIndex); } - `}};function TE(e,t,n,a=null){let r=t.shape[0],s=t.shape[1];a!=null&&(r=a.shape[0],s=a.shape[1]);let i=C.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new i9(o,n,a==null),u=[t];a!=null&&u.push(a);let p=e.runWebGLProgram(l,u,"int32");if(p.shape[1]===1)return p;let d=TE(e,t,n,p);return e.disposeIntermediateTensorInfo(p),d}function SE(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=C.computeOptimalWindowSize(s),o=new o9(r,i,n,a==null),l=a==null?[t]:[t,a],u=e.runWebGLProgram(o,l,"int32");if(u.shape.length===t.shape.length){let p=SE(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}return u}function NE(e,t,n,a){let r=[n];if(C.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!X().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=e.texData.get(t.dataId),o=i!==null&&i.isPacked,l=t;o&&(l=e.unpackTensor(t),s.push(l));let[u,p]=C.computeOutAndReduceShapes(l.shape,r),d=v.sizeFromShape(p),c=he({inputs:{x:l},backend:e,attrs:{shape:[-1,d]}});s.push(c);let h=TE(e,c,a);s.push(h);let m=he({inputs:{x:h},backend:e,attrs:{shape:u}});return s.forEach(f=>e.disposeIntermediateTensorInfo(f)),m}return SE(e,t,a)}function l9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=v.parseAxisParam(s,r.shape),o=C.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Cn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=C.getInnerMostAxes(i.length,l.shape.length)),C.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let p=NE(n,l,i[0],"max");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var u9={kernelName:Si,backendName:"webgl",kernelFunc:l9};function p9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=v.parseAxisParam(s,r.shape),o=C.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Cn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=C.getInnerMostAxes(i.length,l.shape.length)),C.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let p=NE(n,l,i[0],"min");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var c9={kernelName:Sc,backendName:"webgl",kernelFunc:p9},d9=Ra+` + `}};function oE(e,t,n,a=null){let r=t.shape[0],s=t.shape[1];a!=null&&(r=a.shape[0],s=a.shape[1]);let i=N.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new OJ(o,n,a==null),u=[t];a!=null&&u.push(a);let p=e.runWebGLProgram(l,u,"int32");if(p.shape[1]===1)return p;let d=oE(e,t,n,p);return e.disposeIntermediateTensorInfo(p),d}function lE(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=N.computeOptimalWindowSize(s),o=new LJ(r,i,n,a==null),l=a==null?[t]:[t,a],u=e.runWebGLProgram(o,l,"int32");if(u.shape.length===t.shape.length){let p=lE(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}return u}function uE(e,t,n,a){let r=[n];if(N.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!H().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=e.texData.get(t.dataId),o=i!==null&&i.isPacked,l=t;o&&(l=e.unpackTensor(t),s.push(l));let[u,p]=N.computeOutAndReduceShapes(l.shape,r),d=v.sizeFromShape(p),c=de({inputs:{x:l},backend:e,attrs:{shape:[-1,d]}});s.push(c);let h=oE(e,c,a);s.push(h);let m=de({inputs:{x:h},backend:e,attrs:{shape:u}});return s.forEach(f=>e.disposeIntermediateTensorInfo(f)),m}return lE(e,t,a)}function zJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=In({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let p=uE(n,l,i[0],"max");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var BJ={kernelName:gi,backendName:"webgl",kernelFunc:zJ};function WJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=In({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let p=uE(n,l,i[0],"min");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var VJ={kernelName:uc,backendName:"webgl",kernelFunc:WJ},UJ=Ra+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,h9=Ze({opSnippet:d9}),m9={kernelName:Kl,backendName:"webgl",kernelFunc:h9},f9=Ra+"return log(x + sqrt(x * x + 1.0));",g9=Ze({opSnippet:f9}),b9={kernelName:Xl,backendName:"webgl",kernelFunc:g9},y9=Ra+` +`,GJ=Ye({opSnippet:UJ}),HJ={kernelName:Pl,backendName:"webgl",kernelFunc:GJ},jJ=Ra+"return log(x + sqrt(x * x + 1.0));",qJ=Ye({opSnippet:jJ}),KJ={kernelName:Ol,backendName:"webgl",kernelFunc:qJ},XJ=Ra+` return atan(x); -`,x9=Ze({opSnippet:y9}),v9={kernelName:Yl,backendName:"webgl",kernelFunc:x9},w9=_J+` +`,YJ=Ye({opSnippet:XJ}),ZJ={kernelName:Ll,backendName:"webgl",kernelFunc:YJ},JJ=n1+` return atan(a, b); -`,k9=` +`,QJ=` vec4 result = atan(a, b); - vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); - `+EJ+` + bvec4 isNaNA = isnan(a); + bvec4 isNaNB = isnan(b); + bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); + `+od+` return result; -`,I9=cn({opSnippet:w9,packedOpSnippet:k9}),T9={kernelName:Jl,backendName:"webgl",kernelFunc:I9},S9=Ra+` +`,e9=pn({opSnippet:JJ,packedOpSnippet:QJ}),t9={kernelName:Bl,backendName:"webgl",kernelFunc:e9},n9=Ra+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelName:Zl,backendName:"webgl",kernelFunc:N9},wc=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`,b="0.0";if(m||(b="-1.0 / 1e-20"),n){let _=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,a9=Ye({opSnippet:n9}),r9={kernelName:zl,backendName:"webgl",kernelFunc:a9},sc=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`,b="0.0";if(m||(b="-1.0 / 1e-20"),n){let C=">=";this.userCode=` const ivec2 strides = ivec2(${i}, ${o}); const ivec2 pads = ivec2(${c}, ${h}); @@ -1701,7 +1695,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam // use the current value. float currMinMaxValue = mix( value, minMaxValue, minMaxValueFound); - if (value ${_} currMinMaxValue) { + if (value ${C} currMinMaxValue) { minMaxValue = value; minMaxValueFound = 1.0; minMaxPosition = ${a?r?f:g:`wR * ${d} + wC`}; @@ -1710,7 +1704,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam } setOutput(float(minMaxPosition)); } - `;return}let y="max",x=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(x="avgValue / count");let w=Math.floor(s/4)*4,I=s%4,N=` + `;return}let y="max",x=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(x="avgValue / count");let w=Math.floor(s/4)*4,I=s%4,T=` if (${m}) { avgValue += dot(values, ones); } else { @@ -1765,7 +1759,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam getValue(batch, xR, xC + 3 * ${u}, d) ); - ${N} + ${T} } int xC = xCCorner + ${w}; @@ -1777,7 +1771,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam initializationValue ); - ${N} + ${T} } else if (${I===2}) { vec4 values = vec4( getValue(batch, xR, xC, d), @@ -1786,7 +1780,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam initializationValue ); - ${N} + ${T} } else if (${I===3}) { vec4 values = vec4( getValue(batch, xR, xC, d), @@ -1795,12 +1789,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam initializationValue ); - ${N} + ${T} } } setOutput(${x}); } - `}},k1=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,b=e.padInfo.left;this.outputShape=e.outShape;let y=t==="avg",x="0.0";if(y||(x="-1.0 / 1e-20"),n){let A=">=";this.userCode=` + `}},r1=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,b=e.padInfo.left;this.outputShape=e.outShape;let y=t==="avg",x="0.0";if(y||(x="-1.0 / 1e-20"),n){let A=">=";this.userCode=` const ivec3 strides = ivec3(${i}, ${o}, ${l}); const ivec3 pads = ivec3(${f}, ${g}, ${b}); @@ -1862,7 +1856,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam } setOutput(float(minMaxPosition)); } - `;return}let w="max",I=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(I="avgValue / count");let N=Math.floor(s/4)*4,_=s%4,$=` + `;return}let w="max",I=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(I="avgValue / count");let T=Math.floor(s/4)*4,C=s%4,E=` if (${y}) { avgValue += dot(values, ones); } else { @@ -1917,7 +1911,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam continue; } - for (int wC = 0; wC < ${N}; wC += 4) { + for (int wC = 0; wC < ${T}; wC += 4) { int xC = xCCorner + wC * ${d}; vec4 values = vec4( @@ -1927,11 +1921,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam getValue(batch, xD, xR, xC + 3 * ${d}, ch) ); - ${$} + ${E} } - int xC = xCCorner + ${N}; - if (${_===1}) { + int xC = xCCorner + ${T}; + if (${C===1}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), initializationValue, @@ -1939,8 +1933,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam initializationValue ); - ${$} - } else if (${_===2}) { + ${E} + } else if (${C===2}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), getValue(batch, xD, xR, xC + ${d}, ch), @@ -1948,8 +1942,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam initializationValue ); - ${$} - } else if (${_===3}) { + ${E} + } else if (${C===3}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), getValue(batch, xD, xR, xC + ${d}, ch), @@ -1957,13 +1951,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam initializationValue ); - ${$} + ${E} } } setOutput(${I}); } } - `}};function _9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ip(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(C.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=C.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))return aa({inputs:{x:r},backend:n});let d=new wc(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var E9={kernelName:Ni,backendName:"webgl",kernelFunc:_9};function $9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=[1,1,1],d=C.computePool3DInfo(r.shape,s,i,p,o,l,u),c=new k1(d,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}var A9={kernelName:Nc,backendName:"webgl",kernelFunc:$9},F9=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,u=o-1-e.padInfo.top,p=l-1-e.padInfo.left,d=1/(t*n);this.userCode=` + `}};function s9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;Ku(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);if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))return na({inputs:{x:r},backend:n});let d=new sc(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var i9={kernelName:bi,backendName:"webgl",kernelFunc:s9};function o9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=[1,1,1],d=N.computePool3DInfo(r.shape,s,i,p,o,l,u),c=new r1(d,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}var l9={kernelName:pc,backendName:"webgl",kernelFunc:o9},u9=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,u=o-1-e.padInfo.top,p=l-1-e.padInfo.left,d=1/(t*n);this.userCode=` const ivec2 pads = ivec2(${u}, ${p}); const float avgMultiplier = float(${d}); @@ -2005,7 +1999,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam } setOutput(dotProd); } - `}},D9=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterDepth,d=e.effectiveFilterHeight,c=e.effectiveFilterWidth,h=p-1-e.padInfo.front,m=d-1-e.padInfo.top,f=c-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` + `}},p9=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterDepth,d=e.effectiveFilterHeight,c=e.effectiveFilterWidth,h=p-1-e.padInfo.front,m=d-1-e.padInfo.top,f=c-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` const ivec3 pads = ivec3(${h}, ${m}, ${f}); const float avgMultiplier = float(${g}); @@ -2061,7 +2055,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam } setOutput(dotProd); } - `}};function R9(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=C.computePool3DInfo(i.shape,o,l,d,u,p),h=new D9(c);return n.runWebGLProgram(h,[r],i.dtype)}var M9={kernelName:Dm,backendName:"webgl",kernelFunc:R9};function P9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ip([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=C.computePool2DInfo(i.shape,o,l,1,u),d=new F9(p);return n.runWebGLProgram(d,[r],i.dtype)}var O9={kernelName:Fm,backendName:"webgl",kernelFunc:P9};function L9(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return Tm({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var z9={kernelName:Ci,backendName:"webgl",kernelFunc:L9},W9=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],C.assertAndGetBroadcastShape(e,t),C.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(C.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(C.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 p9(c);return n.runWebGLProgram(h,[r],i.dtype)}var d9={kernelName:pm,backendName:"webgl",kernelFunc:c9};function h9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;Ku([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=new u9(p);return n.runWebGLProgram(d,[r],i.dtype)}var m9={kernelName:um,backendName:"webgl",kernelFunc:h9};function f9(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return tm({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var g9={kernelName:yi,backendName:"webgl",kernelFunc:f9},b9=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(); @@ -2071,7 +2065,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam float inv = scale * inversesqrt(variance + float(${s})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}},B9=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],C.assertAndGetBroadcastShape(e,t),C.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(C.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(C.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}},y9=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(N.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(N.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { vec4 offset = ${i}; vec4 scale = ${o}; @@ -2084,7 +2078,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam setOutput((x - mean) * inv + offset); } - `}},V9=({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=X().getBool("WEBGL_PACK_NORMALIZATION")?new B9(a.shape,r.shape,s.shape,p,d,l):new W9(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},U9={kernelName:Bi,backendName:"webgl",kernelFunc:V9},G9=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=pt(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=H9(this.rank),a,r=e.map((s,i)=>`sourceLoc.${Px[i]} = start[${i}] + coords.${Px[i]};`);a=` + `}},x9=({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 y9(a.shape,r.shape,s.shape,p,d,l):new b9(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},v9={kernelName:Fi,backendName:"webgl",kernelFunc:x9},w9=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=k9(this.rank),a,r=e.map((s,i)=>`sourceLoc.${gx[i]} = start[${i}] + coords.${gx[i]};`);a=` ${t} sourceLoc; ${t} coords = getOutputCoords(); ${r.join(` @@ -2094,7 +2088,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam ${a} setOutput(getSource(${n})); } - `}},Px=["x","y","z","w","u","v"];function H9(e){if(e===1)return"sourceLoc";if(e<=6)return Px.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var j9=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let t=pt(this.rank),n=Sn("coords",this.rank),a=Sn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` + `}},gx=["x","y","z","w","u","v"];function k9(e){if(e===1)return"sourceLoc";if(e<=6)return gx.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var I9=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let t=gt(this.rank),n=kn("coords",this.rank),a=kn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` result.x = ${s}; if (++${n[this.rank-1]} < ${e[this.rank-1]}) { ++${a[this.rank-1]}; @@ -2123,7 +2117,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam ${o} setOutput(result); } - `}};function q9(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=qt.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 dp(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=qt.parseSliceParams(r,s,i);if(qt.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=PZ(d.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}let{isPacked:u}=n.texData.get(r.dataId),p=qt.isSliceContinous(r.shape,o,l);if(u||!p){let d=X().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new j9(l):new G9(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),q9(r,o,l,n)}var K9={kernelName:Ru,backendName:"webgl",kernelFunc:dp},X9=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((y,x)=>y*x),l=C.getReshaped(r.shape,s,o),u=C.getPermuted(l.length,s.length),p=C.getReshapedPermuted(r.shape,s,o),d=C.getSliceBeginCoords(i,s.length),c=C.getSliceSize(p,i,s.length),h=[],m=he({inputs:{x:r},backend:n,attrs:{shape:l}}),f=Cn({inputs:{x:m},backend:n,attrs:{perm:u}}),g=he({inputs:{x:f},backend:n,attrs:{shape:p}}),b=dp({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(y=>n.disposeIntermediateTensorInfo(y)),b},Y9={kernelName:Ql,backendName:"webgl",kernelFunc:X9};function Z9(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=cE(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var J9={kernelName:Rm,backendName:"webgl",kernelFunc:Z9};function Q9(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.readSync(a.dataId),i=n.readSync(r.dataId),o=C.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var eQ={kernelName:Mm,backendName:"webgl",kernelFunc:Q9},tQ="return float(a != b);",CE=cn({opSnippet:tQ,cpuKernelImpl:EZ,dtype:"bool"}),nQ={kernelName:Iu,backendName:"webgl",kernelFunc:CE};function Id(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 aQ={kernelName:nf,backendName:"webgl",kernelFunc:Id},rQ="return float(int(x));";function sQ(e,t){let n=new $r(e.shape,rQ),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function Ox(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=Ox({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Fs({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Id({inputs:{input:r},backend:n}),o=Ox({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]=uZ(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return sQ(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",v.getTypedArrayFromDType("bool",1)),o=CE({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 iQ={kernelName:_i,backendName:"webgl",kernelFunc:Ox},LI="return ceil(x);",oQ=Ze({opSnippet:LI,packedOpSnippet:LI,cpuKernelImpl:pZ}),lQ={kernelName:Ei,backendName:"webgl",kernelFunc:oQ},uQ=class{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + `}};function S9(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 ep(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=fZ(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 I9(l):new w9(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),S9(r,o,l,n)}var T9={kernelName:ku,backendName:"webgl",kernelFunc:ep},N9=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((y,x)=>y*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}}),b=ep({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(y=>n.disposeIntermediateTensorInfo(y)),b},C9={kernelName:Wl,backendName:"webgl",kernelFunc:N9};function _9(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=X_(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var E9={kernelName:cm,backendName:"webgl",kernelFunc:_9};function A9(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 $9={kernelName:dm,backendName:"webgl",kernelFunc:A9},F9="return float(a != b);",pE=pn({opSnippet:F9,cpuKernelImpl:oZ,dtype:"bool"}),D9={kernelName:cu,backendName:"webgl",kernelFunc:pE};function ud(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 R9={kernelName:Rm,backendName:"webgl",kernelFunc:ud},M9="return float(int(x));";function P9(e,t){let n=new Cr(e.shape,M9),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function bx(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=bx({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=ud({inputs:{input:r},backend:n}),o=bx({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]=W7(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return P9(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",v.getTypedArrayFromDType("bool",1)),o=pE({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 O9={kernelName:xi,backendName:"webgl",kernelFunc:bx},bI="return ceil(x);",L9=Ye({opSnippet:bI,packedOpSnippet:bI,cpuKernelImpl:V7}),z9={kernelName:vi,backendName:"webgl",kernelFunc:L9},B9=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(); @@ -2134,7 +2128,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam setOutput(clamp(value, minVal, maxVal)); } - `}},pQ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + `}},W9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` void main() { vec4 value = getAAtOutCoords(); @@ -2145,7 +2139,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}};function cQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;X().getBool("WEBGL_PACK_CLIP")?o=new pQ(r.shape):o=new uQ(r.shape);let l=[[s],[i]];return n.runWebGLProgram(o,[r],r.dtype,l)}var dQ={kernelName:vs,backendName:"webgl",kernelFunc:cQ},hQ=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + `}};function V9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;H().getBool("WEBGL_PACK_CLIP")?o=new W9(r.shape):o=new B9(r.shape);let l=[[s],[i]];return n.runWebGLProgram(o,[r],r.dtype,l)}var U9={kernelName:gs,backendName:"webgl",kernelFunc:V9},G9=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -2158,7 +2152,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function zI(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}function mQ(e){let{inputs:t,backend:n}=e,{x:a}=t,r=n.texData.get(a.dataId),s=new hQ(a.shape),i=[zI(a,r.complexTensorInfos.real),zI(a,r.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}var fQ={kernelName:Cc,backendName:"webgl",kernelFunc:mQ},gQ=class{constructor(e){this.outputShape=[],this.outputShape=C.computeOutShape(e,1),this.variableNames=e.map((s,i)=>`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let s=1;s`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let s=1;s`T${f}`);let o=new Array(e.length-1);o[0]=e[0][t];for(let m=1;m`T${f}`);let o=new Array(e.length-1);o[0]=e[0][t];for(let m=1;m= ${o[m-1]}) { return getChannel( - getT${m}(${zh(i,l,f)}), - vec2(${zh(u,l,f)})); + getT${m}(${gh(i,l,f)}), + vec2(${gh(u,l,f)})); }`}let c=o.length,h=o[o.length-1];d+=` return getChannel( - getT${c}(${zh(i,l,h)}), - vec2(${zh(u,l,h)}));`,this.userCode=` + getT${c}(${gh(i,l,h)}), + vec2(${gh(u,l,h)}));`,this.userCode=` float getValue(${i.map(m=>"int "+m)}) { ${d} } @@ -2204,7 +2198,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam } setOutput(result); } - `}};function zh(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function vg(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 yQ={kernelName:Km,backendName:"webgl",kernelFunc:vg};function tc(e,t,n){let a=e[0].dtype;if(a==="complex64"){let d=e.map(g=>Id({inputs:{input:g},backend:n})),c=e.map(g=>vg({inputs:{input:g},backend:n})),h=tc(d,t,n),m=tc(c,t,n),f=Fs({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(y=>{let x=v.sizeFromShape(y.shape.slice(t));return he({inputs:{x:y},backend:n,attrs:{shape:[-1,x]}})}),c=d.map(y=>({vals:n.readSync(y.dataId),shape:y.shape})),h=C.computeOutShape(d.map(y=>y.shape),1),m=d[0].shape[0]===1,f=cZ(c,h,a,m),g=C.computeOutShape(e.map(y=>y.shape),t),b=n.makeTensorInfo(g,a,f);return d.forEach(y=>n.disposeIntermediateTensorInfo(y)),b}let s=X().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(e.length>s){let d=[];for(let h=0;h1){let d=new bQ(e.map(c=>c.shape),t);return n.runWebGLProgram(d,e,a)}let{tensors2D:i,outShape:o}=xQ(e,t,n),l=new gQ(i.map(d=>d.shape)),u=n.runWebGLProgram(l,i,a);i.forEach(d=>n.disposeIntermediateTensorInfo(d));let p=he({inputs:{x:u},attrs:{shape:o},backend:n});return n.disposeIntermediateTensorInfo(u),p}function xQ(e,t,n){let a=C.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>he({inputs:{x:r},attrs:{shape:[-1,v.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function _E(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=v.parseAxisParam(r,t[0].shape)[0],i=C.computeOutShape(t.map(u=>u.shape),s);if(v.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(u=>v.sizeFromShape(u.shape)>0);if(o.length===1)return aa({inputs:{x:o[0]},backend:n});let l=o.map(u=>u.shape);return C.assertParamsConsistent(l,s),tc(o,s,n)}var vQ={kernelName:eu,backendName:"webgl",kernelFunc:_E},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,b=f?2:3,y=f?3:1,x="",w="";n&&(a?x=`float activation(float a) { + `}};function gh(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function Yf(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 X9={kernelName:Tm,backendName:"webgl",kernelFunc:Yf};function zp(e,t,n){let a=e[0].dtype;if(a==="complex64"){let d=e.map(g=>ud({inputs:{input:g},backend:n})),c=e.map(g=>Yf({inputs:{input:g},backend:n})),h=zp(d,t,n),m=zp(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(y=>{let x=v.sizeFromShape(y.shape.slice(t));return de({inputs:{x:y},backend:n,attrs:{shape:[-1,x]}})}),c=d.map(y=>({vals:n.readSync(y.dataId),shape:y.shape})),h=N.computeOutShape(d.map(y=>y.shape),1),m=d[0].shape[0]===1,f=U7(c,h,a,m),g=N.computeOutShape(e.map(y=>y.shape),t),b=n.makeTensorInfo(g,a,f);return d.forEach(y=>n.disposeIntermediateTensorInfo(y)),b}let s=H().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(e.length>s){let d=[];for(let h=0;h1){let d=new K9(e.map(c=>c.shape),t);return n.runWebGLProgram(d,e,a)}let{tensors2D:i,outShape:o}=Y9(e,t,n),l=new q9(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 Y9(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 cE(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}):zp(l,s,n)}var Z9={kernelName:Vl,backendName:"webgl",kernelFunc:cE},dE=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,b=f?2:3,y=f?3:1,x="",w="";n&&(a?x=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?x=`float activation(float a) { @@ -2338,7 +2332,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam ${w} setOutput(result); } - `}},wQ=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,n=e.padInfo.top,a=e.padInfo.left,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,p=e.filterDepth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` + `}},J9=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,n=e.padInfo.top,a=e.padInfo.left,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,p=e.filterDepth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` const ivec3 strides = ivec3(${r}, ${s}, ${i}); const ivec3 pads = ivec3(${t}, ${n}, ${a}); @@ -2426,7 +2420,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam } setOutput(dotProd); } - `}},$E=class{constructor(e,t=!1,n=null,a=!1,r=!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=e.outShape,this.enableShapeUniforms=Fn(this.outputShape.length);let s=e.padInfo.left,i=e.strideWidth,o=e.dilationWidth,l=e.filterHeight,u=e.filterWidth,p=u,d=` + `}},hE=class{constructor(e,t=!1,n=null,a=!1,r=!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=e.outShape,this.enableShapeUniforms=Cn(this.outputShape.length);let s=e.padInfo.left,i=e.strideWidth,o=e.dilationWidth,l=e.filterHeight,u=e.filterWidth,p=u,d=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let f=0;f=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 AE({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,b=[];if(s!=null){let y=Sm(s.shape,h);y!=null&&(s=he({inputs:{x:s},backend:a,attrs:{shape:y}}),b.push(s))}if(r!=null){let y=Sm(r.shape,h);y!=null&&(r=he({inputs:{x:r},backend:a,attrs:{shape:y}}),b.push(r))}if(!((d===1||c===1)&&p>IE)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&v.arraysEqual(u.shape.slice(-3),l.slice(-3))){let y=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,y,n.inChannels],dtype:e.dtype},w=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,v.assert(xc(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=he({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});b.push(I);let N=Tm({a:x,b:I,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),_=a.texData.get(N.dataId);v.assert(_.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=w,_.shape=n.outShape,g=aa({inputs:{x:N},backend:a}),g.shape=n.outShape,b.push(N)}else{let y=n.outHeight*n.outWidth,x=he({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,y,n.inChannels]:[n.batchSize,n.inChannels,y]}}),w=he({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=Tm({a:h?x:w,b:h?w:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=he({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),b.push(x),b.push(w),b.push(I)}for(let y of b)a.disposeIntermediateTensorInfo(y);return g}function FE({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,b=[n.batchSize,f,g],y=!0,x=!1,w=[];if(s!=null){let Y=Sm(s.shape,m);Y!=null&&(s=he({inputs:{x:s},backend:a,attrs:{shape:Y}}),w.push(s))}if(r!=null){let Y=Sm(r.shape,m);Y!=null&&(r=he({inputs:{x:r},backend:a,attrs:{shape:Y}}),w.push(r))}let I=he({inputs:{x:t},backend:a,attrs:{shape:[1,f,v.sizeFromShape(t.shape)/f]}});w.push(I);let N=new kQ(b,n),_=[e.shape,[n.padInfo.top,n.padInfo.left],[n.strideHeight,n.strideWidth],[n.dilationHeight,n.dilationWidth],[n.inChannels],[n.filterWidth*n.inChannels],[n.outWidth]],$=a.runWebGLProgram(N,[e],"float32",_),A=he({inputs:{x:$},backend:a,attrs:{shape:b}});w.push($),w.push(A);let M=r!=null,D=s!=null,T=o==="leakyrelu",P=o?vc(o,!0):null,U=new kE(m?A.shape:I.shape,m?I.shape:A.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],y,x,M,P,D,T),j=m?[A,I]:[I,A];if(r&&j.push(r),D&&j.push(s),T){let Y=a.makeTensorInfo([],"float32",v.createScalarValue(i,"float32"));j.push(Y),w.push(Y)}let q=a.runWebGLProgram(U,j,"float32"),K=he({inputs:{x:q},backend:a,attrs:{shape:n.outShape}});w.push(q);for(let Y of w)a.disposeIntermediateTensorInfo(Y);return K}function IQ(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=C.convertConv2DDataFormat(l),c=C.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=AE({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&X().getBool("WEBGL_EXP_CONV")){let f=new $E(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(X().getBool("WEBGL_CONV_IM2COL"))h=FE({x:r,filter:s,convInfo:c,backend:n});else{let f=new EE(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=he({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var TQ={kernelName:$i,backendName:"webgl",kernelFunc:IQ},SQ=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 nm(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 mE({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,b=[];if(s!=null){let y=nm(s.shape,h);y!=null&&(s=de({inputs:{x:s},backend:a,attrs:{shape:y}}),b.push(s))}if(r!=null){let y=nm(r.shape,h);y!=null&&(r=de({inputs:{x:r},backend:a,attrs:{shape:y}}),b.push(r))}if(!((d===1||c===1)&&p>iE)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&v.arraysEqual(u.shape.slice(-3),l.slice(-3))){let y=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,y,n.inChannels],dtype:e.dtype},w=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,v.assert(ac(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]}});b.push(I);let T=tm({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,b.push(T)}else{let y=n.outHeight*n.outWidth,x=de({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,y,n.inChannels]:[n.batchSize,n.inChannels,y]}}),w=de({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=tm({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}}),b.push(x),b.push(w),b.push(I)}for(let y of b)a.disposeIntermediateTensorInfo(y);return g}function fE({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,b=[n.batchSize,f,g],y=!0,x=!1,w=[];if(s!=null){let K=nm(s.shape,m);K!=null&&(s=de({inputs:{x:s},backend:a,attrs:{shape:K}}),w.push(s))}if(r!=null){let K=nm(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 Q9(b,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:b}});w.push(E),w.push(A);let R=r!=null,F=s!=null,S=o==="leakyrelu",M=o?rc(o,!0):null,W=new sE(m?A.shape:I.shape,m?I.shape:A.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],y,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(W,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 eQ(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=mE({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let f=new hE(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=fE({x:r,filter:s,convInfo:c,backend:n});else{let f=new dE(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 tQ={kernelName:wi,backendName:"webgl",kernelFunc:eQ},nQ=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; @@ -2711,7 +2705,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam } setOutput(dotProd); } - `}},NQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,u=s?2:3,p=s?3:1;this.userCode=` + `}},aQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,u=s?2:3,p=s?3:1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { @@ -2764,7 +2758,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam } setOutput(dotProd); } - `}},CQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=` + `}},rQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=` void main() { ivec5 coords = getOutputCoords(); int wF = coords.x; @@ -2806,7 +2800,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam } setOutput(dotProd); } - `}},_Q=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,u=a-1-e.padInfo.left;this.userCode=` + `}},sQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,u=a-1-e.padInfo.left;this.userCode=` const ivec3 pads = ivec3(${o}, ${l}, ${u}); void main() { @@ -2863,12 +2857,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam } setOutput(dotProd); } - `}};function EQ(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=C.convertConv2DDataFormat(l),c=C.computeConv2DInfo(r.shape,p,i,1,o,u,!1,d),h=new SQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var $Q={kernelName:Om,backendName:"webgl",kernelFunc:EQ};function AQ(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=C.convertConv2DDataFormat(u),c=C.computeConv2DInfo(i,s.shape,o,1,l,p,!1,d),h=new NQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var FQ={kernelName:Ai,backendName:"webgl",kernelFunc:AQ};function DQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=C.computeConv3DInfo(r.shape,s.shape,i,l,o),p=new wQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var RQ={kernelName:_c,backendName:"webgl",kernelFunc:DQ};function MQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,u=C.computeConv3DInfo(r.shape,l,i,1,o),p=new CQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var PQ={kernelName:Lm,backendName:"webgl",kernelFunc:MQ};function OQ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,u=C.computeConv3DInfo(l,s.shape,o,1,i),p=new _Q(u);return n.runWebGLProgram(p,[r,s],"float32")}var LQ={kernelName:zm,backendName:"webgl",kernelFunc:OQ},zQ=cp+` + `}};function iQ(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 nQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var oQ={kernelName:mm,backendName:"webgl",kernelFunc:iQ};function lQ(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 aQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var uQ={kernelName:ki,backendName:"webgl",kernelFunc:lQ};function pQ(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 J9(u);return n.runWebGLProgram(p,[r,s],"float32")}var cQ={kernelName:dc,backendName:"webgl",kernelFunc:pQ};function dQ(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 rQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var hQ={kernelName:fm,backendName:"webgl",kernelFunc:dQ};function mQ(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 sQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var fQ={kernelName:gm,backendName:"webgl",kernelFunc:mQ},gQ=Qu+` return cos(x); -`,WQ=Ze({opSnippet:zQ}),BQ={kernelName:Fi,backendName:"webgl",kernelFunc:WQ},VQ=` +`,bQ=Ye({opSnippet:gQ}),yQ={kernelName:Ii,backendName:"webgl",kernelFunc:bQ},xQ=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,UQ=Ze({opSnippet:VQ}),GQ={kernelName:Di,backendName:"webgl",kernelFunc:UQ},HQ=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[u]=t,[p,d]=n;this.outputShape=[u,p,d,l];let c=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,b]=p>1?[`${(i-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[y,x,w]=d>1?[`${(o-1)/(d-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` +`,vQ=Ye({opSnippet:xQ}),wQ={kernelName:Si,backendName:"webgl",kernelFunc:vQ},kQ=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[u]=t,[p,d]=n;this.outputShape=[u,p,d,l];let c=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,b]=p>1?[`${(i-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[y,x,w]=d>1?[`${(o-1)/(d-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` const float height_ratio = float(${f}); const float width_ratio = float(${y}); void main() { @@ -2929,20 +2923,20 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam setOutput(newValue); } } - `}},jQ=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,p=new HQ(r.shape,s.shape,o,l,u);return n.runWebGLProgram(p,[r,s,i],"float32")},qQ={kernelName:nu,backendName:"webgl",kernelFunc:jQ},kc;(function(e){e.Prod="*",e.Sum="+"})(kc||(kc={}));var WI=class{constructor(e,t,n,a){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let r=this.outputShape.length,s=this.op===kc.Prod?"1.0":"0.0",i=n?s:`getX(${BI(r,"coords",this.op)})`,o=this.outputShape[this.outputShape.length-1],l="",u="";n?(l=a?`end != ${o-1}`:"end != 0",u=a?"end + 1":"end - 1"):(l=a?`end + pow2 < ${o}`:"end >= pow2",u=a?"end + pow2":"end - pow2"),this.userCode=` + `}},IQ=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,p=new kQ(r.shape,s.shape,o,l,u);return n.runWebGLProgram(p,[r,s,i],"float32")},SQ={kernelName:Gl,backendName:"webgl",kernelFunc:IQ},ic;(function(e){e.Prod="*",e.Sum="+"})(ic||(ic={}));var xI=class{constructor(e,t,n,a){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let r=this.outputShape.length,s=this.op===ic.Prod?"1.0":"0.0",i=n?s:`getX(${vI(r,"coords",this.op)})`,o=this.outputShape[this.outputShape.length-1],l="",u="";n?(l=a?`end != ${o-1}`:"end != 0",u=a?"end + 1":"end - 1"):(l=a?`end + pow2 < ${o}`:"end >= pow2",u=a?"end + pow2":"end - pow2"),this.userCode=` void main() { - ${pt(r)} coords = getOutputCoords(); - int end = ${VI(r,"coords",this.op)}; + ${gt(r)} coords = getOutputCoords(); + int end = ${wI(r,"coords",this.op)}; float val = ${i}; int pow2 = int(pow(2.0, index)); if (${l}) { int idx = ${u}; - ${VI(r,"coords",this.op)} = idx; - val ${this.op}= getX(${BI(r,"coords",this.op)}); + ${wI(r,"coords",this.op)} = idx; + val ${this.op}= getX(${vI(r,"coords",this.op)}); } setOutput(val); } - `}};function BI(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 VI(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 DE(e,t,n,a,r,s){let i=t.shape.length,o=C.getAxesPermutation([a],i),l=t;o!=null&&(l=Cn({inputs:{x:t},backend:n,attrs:{perm:o}}));let u=C.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=aa({inputs:{x:l},backend:n});for(let c=0;c<=Math.ceil(Math.log2(p))-1;c++){let h=new WI(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 WI(e,l.shape,r,s),h=d;d=n.runWebGLProgram(c,[d],d.dtype),n.disposeIntermediateTensorInfo(h)}if(o!=null){let c=C.getUndoAxesPermutation(o),h=Cn({inputs:{x:d},backend:n,attrs:{perm:c}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(l),h}return d}function KQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return DE(kc.Prod,r,n,s,i,o)}var XQ={kernelName:tu,backendName:"webgl",kernelFunc:KQ};function YQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return DE(kc.Sum,r,n,s,i,o)}var ZQ={kernelName:Ri,backendName:"webgl",kernelFunc:YQ};function JQ(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=cE(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=lZ(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 QQ={kernelName:Wm,backendName:"webgl",kernelFunc:JQ},eee=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` + `}};function vI(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 wI(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 gE(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 xI(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 xI(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 TQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return gE(ic.Prod,r,n,s,i,o)}var NQ={kernelName:Ul,backendName:"webgl",kernelFunc:TQ};function CQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return gE(ic.Sum,r,n,s,i,o)}var _Q={kernelName:Ti,backendName:"webgl",kernelFunc:CQ};function EQ(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=X_(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=B7(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 AQ={kernelName:bm,backendName:"webgl",kernelFunc:EQ},$Q=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]; @@ -2961,7 +2955,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam float result = ${this.getInputSamplingString()}; setOutput(result); } - `}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 tee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{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=new eee(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var nee={kernelName:au,backendName:"webgl",kernelFunc:tee},RE=class{constructor(e,t=!1,n=null,a=!1,r=!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=e.outShape,this.enableShapeUniforms=Fn(this.outputShape.length);let s=e.filterHeight,i=e.filterWidth,o=e.outChannels/e.inChannels,l="",u="";n&&(a?l=`float activation(float a) { + `}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 FQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{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=new $Q(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var DQ={kernelName:Hl,backendName:"webgl",kernelFunc:FQ},bE=class{constructor(e,t=!1,n=null,a=!1,r=!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=e.outShape,this.enableShapeUniforms=Cn(this.outputShape.length);let s=e.filterHeight,i=e.filterWidth,o=e.outChannels/e.inChannels,l="",u="";n&&(a?l=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?l=`float activation(float a) { @@ -3014,7 +3008,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam ${u} setOutput(result); } - `}},ME=class{constructor(e,t=!1,n=null,a=!1,r=!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=e.outShape,this.enableShapeUniforms=Fn(this.outputShape.length);let s=e.outChannels/e.inChannels,i=e.padInfo.left,o=e.strideWidth,l=e.dilationWidth,u=e.filterHeight,p=e.filterWidth,d=p,c=` + `}},yE=class{constructor(e,t=!1,n=null,a=!1,r=!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=e.outShape,this.enableShapeUniforms=Cn(this.outputShape.length);let s=e.outChannels/e.inChannels,i=e.padInfo.left,o=e.strideWidth,l=e.dilationWidth,u=e.filterHeight,p=e.filterWidth,d=p,c=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let g=0;g`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${p}'`);let d=C.computeConv2DInfo(r.shape,s.shape,i,p,o,u,!0),c;X().getBool("WEBGL_PACK_DEPTHWISECONV")&&d.strideWidth<=2&&d.outChannels/d.inChannels===1?c=new ME(d):c=new RE(d);let h=[[d.padInfo.top,d.padInfo.left],[d.strideHeight,d.strideWidth],[d.dilationHeight,d.dilationWidth],[d.inHeight,d.inWidth]];return n.runWebGLProgram(c,[r,s],"float32",h)}var ree={kernelName:Mi,backendName:"webgl",kernelFunc:aee},see=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.outChannels/e.inChannels;this.userCode=` + `}};function RQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l,dimRoundingMode:u}=a,p=l;p==null&&(p=[1,1]),v.assert(N.eitherStridesOrDilationsAreOne(i,p),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${p}'`);let d=N.computeConv2DInfo(r.shape,s.shape,i,p,o,u,!0),c;H().getBool("WEBGL_PACK_DEPTHWISECONV")&&d.strideWidth<=2&&d.outChannels/d.inChannels===1?c=new yE(d):c=new bE(d);let h=[[d.padInfo.top,d.padInfo.left],[d.strideHeight,d.strideWidth],[d.dilationHeight,d.dilationWidth],[d.inHeight,d.inWidth]];return n.runWebGLProgram(c,[r,s],"float32",h)}var MQ={kernelName:Ni,backendName:"webgl",kernelFunc:RQ},PQ=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.outChannels/e.inChannels;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -3238,7 +3232,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam } setOutput(dotProd); } - `}},iee=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=` + `}},OQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=` const ivec2 pads = ivec2(${s}, ${i}); void main() { @@ -3283,13 +3277,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam } setOutput(dotProd); } - `}};function oee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:p}=a,d=C.computeConv2DInfo(r.shape,p,i,o,l,u,!0),c=new see(d);return n.runWebGLProgram(c,[r,s],"float32")}var lee={kernelName:Bm,backendName:"webgl",kernelFunc:oee};function uee(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:p}=a,d=C.computeConv2DInfo(p,s.shape,i,o,l,u,!0),c=new iee(d);return n.runWebGLProgram(c,[r,s],"float32")}var pee={kernelName:Vm,backendName:"webgl",kernelFunc:uee},cee=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + `}};function LQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:p}=a,d=N.computeConv2DInfo(r.shape,p,i,o,l,u,!0),c=new PQ(d);return n.runWebGLProgram(c,[r,s],"float32")}var zQ={kernelName:ym,backendName:"webgl",kernelFunc:LQ};function BQ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:p}=a,d=N.computeConv2DInfo(p,s.shape,i,o,l,u,!0),c=new OQ(d);return n.runWebGLProgram(c,[r,s],"float32")}var WQ={kernelName:xm,backendName:"webgl",kernelFunc:BQ},VQ=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` void main() { ivec2 coords = getOutputCoords(); float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; setOutput(val); } - `}};function dee(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=v.sizeFromShape(a.shape),i=he({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new cee(s),l=n.runWebGLProgram(o,[i],i.dtype),u=he({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var hee={kernelName:Um,backendName:"webgl",kernelFunc:dee},mee=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:n,padInfo:a,strideHeight:r,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:u}=e,{top:p,left:d}=a;this.userCode=` + `}};function UQ(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=v.sizeFromShape(a.shape),i=de({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new VQ(s),l=n.runWebGLProgram(o,[i],i.dtype),u=de({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var GQ={kernelName:vm,backendName:"webgl",kernelFunc:UQ},HQ=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:n,padInfo:a,strideHeight:r,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:u}=e,{top:p,left:d}=a;this.userCode=` const ivec2 strides = ivec2(${r}, ${s}); const ivec2 pads = ivec2(${p}, ${d}); const float neg_infinity = -3.4e38; @@ -3327,7 +3321,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam float result = curVal; setOutput(result); } - `}};function fee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=C.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p,d=new mee(u);p=n.runWebGLProgram(d,[r,s],"float32");let c=he({inputs:{x:p},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(p),c}var gee={kernelName:Ec,backendName:"webgl",kernelFunc:fee};function bee(e){let{inputs:t,backend:n,attrs:a}=e,{equation:r}=a,s=t,{allDims:i,summedDims:o,idDims:l}=C.decodeEinsumEquation(r,s.length);C.checkEinsumDimSizes(i.length,l,s);let{path:u,steps:p}=C.getEinsumComputePath(o,l),d=p.length,c=null,h=i.length,m=[];for(let f=0;f=0&&(c=xg({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 yee={kernelName:Gm,backendName:"webgl",kernelFunc:bee},xee="return (x >= 0.0) ? x : (exp(x) - 1.0);",vee=` + `}};function jQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=N.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p,d=new HQ(u);p=n.runWebGLProgram(d,[r,s],"float32");let c=de({inputs:{x:p},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(p),c}var qQ={kernelName:hc,backendName:"webgl",kernelFunc:jQ};function KQ(e){let{inputs:t,backend:n,attrs:a}=e,{equation:r}=a,s=t,{allDims:i,summedDims:o,idDims:l}=N.decodeEinsumEquation(r,s.length);N.checkEinsumDimSizes(i.length,l,s);let{path:u,steps:p}=N.getEinsumComputePath(o,l),d=p.length,c=null,h=i.length,m=[];for(let f=0;f=0&&(c=Xf({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 XQ={kernelName:wm,backendName:"webgl",kernelFunc:KQ},YQ="return (x >= 0.0) ? x : (exp(x) - 1.0);",ZQ=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -3336,29 +3330,29 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,wee=Ze({opSnippet:xee,packedOpSnippet:vee}),kee={kernelName:Oi,backendName:"webgl",kernelFunc:wee},Iee="return (b >= 1.0) ? a : a * (b + 1.0);",Tee=` +`,JQ=Ye({opSnippet:YQ,packedOpSnippet:ZQ}),QQ={kernelName:_i,backendName:"webgl",kernelFunc:JQ},eee="return (b >= 1.0) ? a : a * (b + 1.0);",tee=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,See=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=X().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new kd(Tee,a.shape,r.shape):new Bl(Iee,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},Nee={kernelName:Hm,backendName:"webgl",kernelFunc:See},Cee=` +`,nee=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ld(tee,a.shape,r.shape):new El(eee,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},aee={kernelName:km,backendName:"webgl",kernelFunc:nee},ree=` return vec4(equal(a, b)); -`,_ee="return float(a == b);",Eee=cn({opSnippet:_ee,packedOpSnippet:Cee,dtype:"bool",cpuKernelImpl:dZ}),$ee={kernelName:su,backendName:"webgl",kernelFunc:Eee},Aee=` +`,see="return float(a == b);",iee=pn({opSnippet:see,packedOpSnippet:ree,dtype:"bool",cpuKernelImpl:G7}),oee={kernelName:ql,backendName:"webgl",kernelFunc:iee},lee=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. - float p = ${C.ERF_P}; - float a1 = ${C.ERF_A1}; - float a2 = ${C.ERF_A2}; - float a3 = ${C.ERF_A3}; - float a4 = ${C.ERF_A4}; - float a5 = ${C.ERF_A5}; + float p = ${N.ERF_P}; + float a1 = ${N.ERF_A1}; + float a2 = ${N.ERF_A2}; + float a3 = ${N.ERF_A3}; + float a4 = ${N.ERF_A4}; + float a5 = ${N.ERF_A5}; float sign = sign(x); x = abs(x); float t = 1.0 / (1.0 + p * x); return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); -`,Fee=Ze({opSnippet:Aee}),Dee={kernelName:ru,backendName:"webgl",kernelFunc:Fee},Ree=cp+` +`,uee=Ye({opSnippet:lee}),pee={kernelName:jl,backendName:"webgl",kernelFunc:uee},cee=Qu+` return exp(x); -`,Mee=` +`,dee=` vec4 result = exp(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; @@ -3367,7 +3361,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam result.a = isNaN.a ? x.a : result.a; return result; -`,PE=Ze({opSnippet:Ree,packedOpSnippet:Mee,cpuKernelImpl:hZ,dtype:"float32"}),Pee={kernelName:Li,backendName:"webgl",kernelFunc:PE};function Lx(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),he({inputs:{x:s},backend:a,attrs:{shape:o}})}var Oee={kernelName:iu,backendName:"webgl",kernelFunc:Lx},UI="return exp(x) - 1.0;",Lee=Ze({opSnippet:UI,packedOpSnippet:UI,cpuKernelImpl:mZ}),zee={kernelName:ou,backendName:"webgl",kernelFunc:Lee},GI=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=` +`,xE=Ye({opSnippet:cee,packedOpSnippet:dee,cpuKernelImpl:H7,dtype:"float32"}),hee={kernelName:Ei,backendName:"webgl",kernelFunc:xE};function yx(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 mee={kernelName:Kl,backendName:"webgl",kernelFunc:yx},kI="return exp(x) - 1.0;",fee=Ye({opSnippet:kI,packedOpSnippet:kI,cpuKernelImpl:j7}),gee={kernelName:Xl,backendName:"webgl",kernelFunc:fee},II=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) { @@ -3400,12 +3394,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function OE(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=he({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new GI("real",l,t),p=new GI("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=Fs({inputs:{real:c,imag:h},backend:n});n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h);let f=he({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function Wee(e){let{inputs:t,backend:n}=e,{input:a}=t;return OE(a,!1,n)}var Bee={kernelName:jm,backendName:"webgl",kernelFunc:Wee},Vee=class{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` + `}};function vE(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 II("real",l,t),p=new II("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 bee(e){let{inputs:t,backend:n}=e,{input:a}=t;return vE(a,!1,n)}var yee={kernelName:Im,backendName:"webgl",kernelFunc:bee},xee=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); } - `}};function Td(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||v.inferDtype(r),s==="string"){let i=v.getArrayFromDType(s,v.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new Vee(a,r),o=[[r]];return t.runWebGLProgram(i,[],s,o)}}var Uee={kernelName:$c,backendName:"webgl",kernelFunc:Td},Gee=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` + `}};function pd(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||v.inferDtype(r),s==="string"){let i=v.getArrayFromDType(s,v.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new xee(a,r),o=[[r]];return t.runWebGLProgram(i,[],s,o)}}var vee={kernelName:mc,backendName:"webgl",kernelFunc:pd},wee=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; @@ -3419,7 +3413,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam } setOutput(outputValue); } - `}},Hee={kernelName:lu,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new Gee(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},HI="return floor(x);",jee=Ze({opSnippet:HI,packedOpSnippet:HI,cpuKernelImpl:fZ}),qee={kernelName:zi,backendName:"webgl",kernelFunc:jee},Kee=` + `}},kee={kernelName:Yl,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new wee(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},SI="return floor(x);",Iee=Ye({opSnippet:SI,packedOpSnippet:SI,cpuKernelImpl:q7}),See={kernelName:Ai,backendName:"webgl",kernelFunc:Iee},Tee=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -3429,7 +3423,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam } else { return NAN; } -`,Xee=` +`,Nee=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -3450,7 +3444,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,Yee=cn({opSnippet:Kee,packedOpSnippet:Xee,dtype:"int32"}),Zee={kernelName:Wi,backendName:"webgl",kernelFunc:Yee},Jee=class{constructor(e){this.variableNames=["A"];let t=An(),[n,a]=e;this.outputShape=e,this.userCode=` +`,Cee=pn({opSnippet:Tee,packedOpSnippet:Nee,dtype:"int32"}),_ee={kernelName:$i,backendName:"webgl",kernelFunc:Cee},Eee=class{constructor(e){this.variableNames=["A"];let t=Nn(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3472,7 +3466,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam setOutput(floor(value * 255.0 + 0.5)); } - `}},Qee=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=An(),[n,a]=e;this.outputShape=e,this.userCode=` + `}},Aee=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=Nn(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3506,39 +3500,39 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam ${t.output} = result; } - `}},ete={kernelName:tm,backendName:"webgl",kernelFunc:tte},gl,Uy=X().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function tte(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=X().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(gl==null||f!==Uy)&&(Uy=f,gl=document.createElement("canvas").getContext("2d",{willReadFrequently:Uy})),gl.canvas.width=l,gl.canvas.height=u,gl.drawImage(r,0,0,l,u),r=gl.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=X().getBool("WEBGL_PACK")?new Qee(d):new Jee(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function nte(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=C.convertConv2DDataFormat(p),g=C.computeConv2DInfo(r.shape,s.shape,l,d,u,c,!1,f),b,y=[],x=i!=null,w=o!=null,I=h==="leakyrelu",N=()=>{let $=[r,s],A=(M,D)=>{if(D==="NCHW"&&M.shape.length===1&&M.shape[0]!==1){let T=he({inputs:{x:M},backend:n,attrs:{shape:[M.shape[0],1,1]}});return y.push(T),T}return M};if(x&&$.push(A(i,p)),w&&$.push(A(o,p)),I){let M=n.makeTensorInfo([],"float32",v.createScalarValue(m,"float32"));$.push(M),y.push(M)}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"))b=AE({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&X().getBool("WEBGL_EXP_CONV")){let $=h?vc(h,!0):null,A=new $E(g,x,$,w,I),M=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],D=N();b=n.runWebGLProgram(A,D,"float32",M)}else if(X().getBool("WEBGL_CONV_IM2COL"))b=FE({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let $=h?vc(h,!1):null,A=new EE(g,x,$,w,I),M=N();b=n.runWebGLProgram(A,M,"float32")}let _=he({inputs:{x:b},backend:n,attrs:{shape:g.outShape}});return y.push(b),y.forEach($=>n.disposeIntermediateTensorInfo($)),_}var ate={kernelName:ui,backendName:"webgl",kernelFunc:nte};function rte(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(C.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=C.computeConv2DInfo(r.shape,s.shape,l,f,u,d,!0),b=X().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,y=c?vc(c,b):null,x=[r,s],w=i!=null,I=o!=null,N=c==="leakyrelu";if(w&&x.push(i),I&&x.push(o),N){let M=n.makeTensorInfo([],"float32",v.createScalarValue(h,"float32"));x.push(M),m.push(M)}let _;b?_=new ME(g,w,y,I,N):_=new RE(g,w,y,I,N);let $=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],A=n.runWebGLProgram(_,x,"float32",$);return m.forEach(M=>n.disposeIntermediateTensorInfo(M)),A}var ste={kernelName:pi,backendName:"webgl",kernelFunc:rte},ite=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=pt(t.length),s=pt(n.length),i=this.sliceDim>1?"strides[j]":"strides",o=pt(a.length),l=a.length>1?"paramsShape[j]":"paramsShape";this.userCode=` - ${r} strides = ${r}(${this.strides}); - ${o} paramsShape = ${o}(${this.paramsShape}); + `}},$ee={kernelName:Fh,backendName:"webgl",kernelFunc:Fee},rl,Iy=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Fee(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");(rl==null||f!==Iy)&&(Iy=f,rl=document.createElement("canvas").getContext("2d",{willReadFrequently:Iy})),rl.canvas.width=l,rl.canvas.height=u,rl.drawImage(r,0,0,l,u),r=rl.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 Aee(d):new Eee(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function Dee(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),b,y=[],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 y.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),y.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"))b=mE({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?rc(h,!0):null,A=new hE(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();b=n.runWebGLProgram(A,F,"float32",R)}else if(H().getBool("WEBGL_CONV_IM2COL"))b=fE({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let E=h?rc(h,!1):null,A=new dE(g,x,E,w,I),R=T();b=n.runWebGLProgram(A,R,"float32")}let C=de({inputs:{x:b},backend:n,attrs:{shape:g.outShape}});return y.push(b),y.forEach(E=>n.disposeIntermediateTensorInfo(E)),C}var Ree={kernelName:ei,backendName:"webgl",kernelFunc:Dee};function Mee(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),b=H().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,y=c?rc(c,b):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;b?C=new yE(g,w,y,I,T):C=new bE(g,w,y,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 Pee={kernelName:ti,backendName:"webgl",kernelFunc:Mee},Oee=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= ${this.paramsShape[i]}; + flattenIndex += index * ${this.strides[i]};`;this.userCode=` void main() { - ${s} coords = getOutputCoords(); + ${r} coords = getOutputCoords(); int flattenIndex = 0; bool out_of_bounds = false; - for (int j = 0; j < ${this.sliceDim}; j++) { - int index = round(getIndices(coords[0], j)); - out_of_bounds = out_of_bounds || index < 0; - out_of_bounds = out_of_bounds || index >= ${l}; - flattenIndex += index * ${i}; - } + + ${s} + setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1])); } - `}};function ote(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=r.shape,i=s[s.length-1],o=v.sizeFromShape(a.shape),[l,u,p,d]=C.prepareAndValidate(a,r),c=he({inputs:{x:r},backend:n,attrs:{shape:[u,i]}}),h=he({inputs:{x:a},backend:n,attrs:{shape:[v.sizeFromShape(a.shape)/p,p]}});if(n.shouldExecuteOnCPU([a,r])||a.dtype==="string"){let b=n.readSync(r.dataId),y=n.bufferSync(a),x=gZ(b,y,a.dtype,u,i,p,d,a.shape,o);return n.makeTensorInfo(l,a.dtype,x.values)}let m=new ite(i,d,[u,p],a.shape),f=n.runWebGLProgram(m,[h,c],h.dtype),g=he({inputs:{x:f},backend:n,attrs:{shape:l}});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),g}var lte={kernelName:pu,backendName:"webgl",kernelFunc:ote},ute=class{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let n=pt(this.rank),a=pte(e,2);this.userCode=` + `}};function Lee(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=r.shape,i=s[s.length-1],o=v.sizeFromShape(a.shape),[l,u,p,d]=N.prepareAndValidate(a,r),c=de({inputs:{x:r},backend:n,attrs:{shape:[u,i]}}),h=de({inputs:{x:a},backend:n,attrs:{shape:[v.sizeFromShape(a.shape)/p,p]}});if(n.shouldExecuteOnCPU([a,r])||a.dtype==="string"){let b=n.readSync(r.dataId),y=n.bufferSync(a),x=K7(b,y,a.dtype,u,i,p,d,a.shape,o);return n.makeTensorInfo(l,a.dtype,x.values)}let m=new Oee(i,d,[u,p],a.shape),f=n.runWebGLProgram(m,[h,c],h.dtype),g=de({inputs:{x:f},backend:n,attrs:{shape:l}});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),g}var zee={kernelName:Jl,backendName:"webgl",kernelFunc:Lee},Bee=class{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let n=gt(this.rank),a=Wee(e,2);this.userCode=` void main() { ${n} resRC = getOutputCoords(); int index = int(getIndices(resRC.x, resRC.z)); float inBounds = (index >= 0) && (index < ${e[2]}) ? 1.0 : 0.0; setOutput(inBounds * getA(${a})); } - `}};function pte(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=C.segment_util.collectGatherOpShapeInfo(r,s,l,o),p=v.sizeFromShape(s.shape),d=[],c=he({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),h=he({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 y=n.bufferSync(h),x=n.bufferSync(c),w=bZ(x,y,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,w.dtype,w.values)}let f=new ute(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let b=he({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(y=>n.disposeIntermediateTensorInfo(y)),b}var cte={kernelName:uu,backendName:"webgl",kernelFunc:LE},dte="return float(a > b);",hte=` + `}};function Wee(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 y=n.bufferSync(h),x=n.bufferSync(c),w=X7(x,y,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,w.dtype,w.values)}let f=new Bee(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let b=de({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(y=>n.disposeIntermediateTensorInfo(y)),b}var Vee={kernelName:Zl,backendName:"webgl",kernelFunc:wE},Uee="return float(a > b);",Gee=` return vec4(greaterThan(a, b)); -`,mte=cn({opSnippet:dte,packedOpSnippet:hte,cpuKernelImpl:yZ,dtype:"bool"}),fte={kernelName:cu,backendName:"webgl",kernelFunc:mte},gte="return float(a >= b);",bte=` +`,Hee=pn({opSnippet:Uee,packedOpSnippet:Gee,cpuKernelImpl:Y7,dtype:"bool"}),jee={kernelName:Ql,backendName:"webgl",kernelFunc:Hee},qee="return float(a >= b);",Kee=` return vec4(greaterThanEqual(a, b)); -`,yte=cn({opSnippet:gte,packedOpSnippet:bte,dtype:"bool",cpuKernelImpl:xZ}),xte={kernelName:Vi,backendName:"webgl",kernelFunc:yte};function vte(e){let{inputs:t,backend:n}=e,{input:a}=t;return OE(a,!0,n)}var wte={kernelName:qm,backendName:"webgl",kernelFunc:vte},kte="return float(!isnan(x) && !isinf(x));",Ite=Ze({opSnippet:kte,dtype:"bool"}),Tte={kernelName:du,backendName:"webgl",kernelFunc:Ite},Ste="return float(isinf(x));",Nte=Ze({opSnippet:Ste,dtype:"bool"}),Cte={kernelName:hu,backendName:"webgl",kernelFunc:Nte},_te="return float(isnan(x));",Ete=Ze({opSnippet:_te,dtype:"bool"}),$te={kernelName:mu,backendName:"webgl",kernelFunc:Ete},Ate="return float(a < b);",Fte=` +`,Xee=pn({opSnippet:qee,packedOpSnippet:Kee,dtype:"bool",cpuKernelImpl:Z7}),Yee={kernelName:Di,backendName:"webgl",kernelFunc:Xee};function Zee(e){let{inputs:t,backend:n}=e,{input:a}=t;return vE(a,!0,n)}var Jee={kernelName:Sm,backendName:"webgl",kernelFunc:Zee},Qee="return float(!isnan(x) && !isinf(x));",ete=Ye({opSnippet:Qee,dtype:"bool"}),tte={kernelName:eu,backendName:"webgl",kernelFunc:ete},nte="return float(isinf(x));",ate=Ye({opSnippet:nte,dtype:"bool"}),rte={kernelName:tu,backendName:"webgl",kernelFunc:ate},ste="return float(isnan(x));",ite=Ye({opSnippet:ste,dtype:"bool"}),ote={kernelName:nu,backendName:"webgl",kernelFunc:ite},lte="return float(a < b);",ute=` return vec4(lessThan(a, b)); -`,Dte=cn({opSnippet:Ate,packedOpSnippet:Fte,cpuKernelImpl:vZ,dtype:"bool"}),Rte={kernelName:fu,backendName:"webgl",kernelFunc:Dte},Mte="return float(a <= b);",Pte=` +`,pte=pn({opSnippet:lte,packedOpSnippet:ute,cpuKernelImpl:J7,dtype:"bool"}),cte={kernelName:au,backendName:"webgl",kernelFunc:pte},dte="return float(a <= b);",hte=` return vec4(lessThanEqual(a, b)); -`,Ote=cn({opSnippet:Mte,packedOpSnippet:Pte,cpuKernelImpl:wZ,dtype:"bool"}),Lte={kernelName:gu,backendName:"webgl",kernelFunc:Ote};function zte(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=kZ(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var Wte={kernelName:Xm,backendName:"webgl",kernelFunc:zte},Bte=cp+` +`,mte=pn({opSnippet:dte,packedOpSnippet:hte,cpuKernelImpl:Q7,dtype:"bool"}),fte={kernelName:ru,backendName:"webgl",kernelFunc:mte};function gte(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=eZ(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var bte={kernelName:Nm,backendName:"webgl",kernelFunc:gte},yte=Qu+` return x < 0.0 ? 0./0. : log(x); -`,Vte=` +`,xte=` vec4 result = log(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r); @@ -3546,18 +3540,18 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b); result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a); return result; -`,Ute=Ze({opSnippet:Bte,packedOpSnippet:Vte,cpuKernelImpl:IZ}),Gte={kernelName:Hi,backendName:"webgl",kernelFunc:Ute},Hte=cp+` +`,vte=Ye({opSnippet:yte,packedOpSnippet:xte,cpuKernelImpl:tZ}),wte={kernelName:Pi,backendName:"webgl",kernelFunc:vte},kte=Qu+` return log(1.0 + x); -`,jte=Ze({opSnippet:Hte}),qte={kernelName:bu,backendName:"webgl",kernelFunc:jte},Kte="return float(a >= 1.0 && b >= 1.0);",Xte=` +`,Ite=Ye({opSnippet:kte}),Ste={kernelName:su,backendName:"webgl",kernelFunc:Ite},Tte="return float(a >= 1.0 && b >= 1.0);",Nte=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,Yte=cn({opSnippet:Kte,packedOpSnippet:Xte,dtype:"bool"}),Zte={kernelName:yu,backendName:"webgl",kernelFunc:Yte},Jte="return float(!(x >= 1.0));",Qte=Ze({opSnippet:Jte}),ene={kernelName:xu,backendName:"webgl",kernelFunc:Qte},tne="return float(a >= 1.0 || b >= 1.0);",nne=` +`,Cte=pn({opSnippet:Tte,packedOpSnippet:Nte,dtype:"bool"}),_te={kernelName:iu,backendName:"webgl",kernelFunc:Cte},Ete="return float(!(x >= 1.0));",Ate=Ye({opSnippet:Ete}),$te={kernelName:ou,backendName:"webgl",kernelFunc:Ate},Fte="return float(a >= 1.0 || b >= 1.0);",Dte=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,ane=cn({opSnippet:tne,packedOpSnippet:nne,dtype:"bool"}),rne={kernelName:vu,backendName:"webgl",kernelFunc:ane},sne=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[];let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` +`,Rte=pn({opSnippet:Fte,packedOpSnippet:Dte,dtype:"bool"}),Mte={kernelName:lu,backendName:"webgl",kernelFunc:Rte},Pte=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[];let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3576,7 +3570,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam float val = x * ${o}; setOutput(val); } - `}},ine=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` + `}},Ote=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords.x; @@ -3638,7 +3632,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam vec4 result = xAtOutputCoords * ${o}; setOutput(result); } - `}},one=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=X().getBool("WEBGL_PACK_NORMALIZATION")?new ine(r.shape,s,i,o,l):new sne(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},lne={kernelName:Ac,backendName:"webgl",kernelFunc:one},une=class{constructor(e,t,n,a,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=a,this.beta=r,this.userCode=` + `}},Lte=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=H().getBool("WEBGL_PACK_NORMALIZATION")?new Ote(r.shape,s,i,o,l):new Pte(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},zte={kernelName:fc,backendName:"webgl",kernelFunc:Lte},Bte=class{constructor(e,t,n,a,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=a,this.beta=r,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3693,14 +3687,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam } setOutput(result); } - `}},pne=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 une(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},cne={kernelName:Ym,backendName:"webgl",kernelFunc:pne};function dne(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=he({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Ao(i,e.dtype,"max",a),l=he({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function zE(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=C.getAxesPermutation(u,o),d=p!=null,c=n.shouldExecuteOnCPU([r]),h=r;if(d){if(c){let y=n.texData.get(h.dataId).values,x=new Array(o);for(let N=0;N{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 Bte(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},Vte={kernelName:Cm,backendName:"webgl",kernelFunc:Wte};function Ute(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=ko(i,e.dtype,"max",a),l=de({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function kE(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 y=n.texData.get(h.dataId).values,x=new Array(o);for(let T=0;T`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=C.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))return aa({inputs:{x:r},backend:n});let d=new wc(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var xne={kernelName:Ki,backendName:"webgl",kernelFunc:yne};function vne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=a,p=[1,1,1],d=C.computePool3DInfo(r.shape,s,i,p,o,u,l),c=new k1(d,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}var wne={kernelName:Fc,backendName:"webgl",kernelFunc:vne},kne=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,n=e.strideWidth,a=e.dilationHeight,r=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=r-1-e.padInfo.top,o=s-1-e.padInfo.left,l=r*s-1;this.userCode=` +`,qte=pn({opSnippet:Hte,packedOpSnippet:jte,cpuKernelImpl:aZ}),Kte={kernelName:Li,backendName:"webgl",kernelFunc:qte};function Xte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;Ku(r,"maxPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(N.eitherStridesOrDilationsAreOne(i,u),()=>`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);if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))return na({inputs:{x:r},backend:n});let d=new sc(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var Yte={kernelName:zi,backendName:"webgl",kernelFunc:Xte};function Zte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=a,p=[1,1,1],d=N.computePool3DInfo(r.shape,s,i,p,o,u,l),c=new r1(d,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}var Jte={kernelName:gc,backendName:"webgl",kernelFunc:Zte},Qte=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,n=e.strideWidth,a=e.dilationHeight,r=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=r-1-e.padInfo.top,o=s-1-e.padInfo.left,l=r*s-1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { @@ -3746,7 +3742,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam } setOutput(dotProd); } - `}},Ine=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,p=o-1-e.padInfo.front,d=l-1-e.padInfo.top,c=u-1-e.padInfo.left,h=o*l*u-1;this.userCode=` + `}},ene=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,p=o-1-e.padInfo.front,d=l-1-e.padInfo.top,c=u-1-e.padInfo.left,h=o*l*u-1;this.userCode=` const ivec3 pads = ivec3(${p}, ${d}, ${c}); void main() { @@ -3810,14 +3806,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam } setOutput(dotProd); } - `}};function Tne(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=C.computePool3DInfo(i.shape,o,l,d,u,p),h=new k1(c,"max",!0),m=n.runWebGLProgram(h,[i],i.dtype),f=new Ine(c),g=n.runWebGLProgram(f,[r,m],i.dtype);return n.disposeIntermediateTensorInfo(m),g}var Sne={kernelName:Jm,backendName:"webgl",kernelFunc:Tne};function Nne(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ip([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=C.computePool2DInfo(o.shape,l,u,1,p,d),h=!0,m=new wc(c,"max",h),f=n.runWebGLProgram(m,[o],o.dtype),g=new kne(c),b=n.runWebGLProgram(g,[r,f],o.dtype);return n.disposeIntermediateTensorInfo(f),b}var Cne={kernelName:Zm,backendName:"webgl",kernelFunc:Nne};function _ne(e,t,n,a){let r=new wc(n,"max",!1),s=a.runWebGLProgram(r,[e],"float32");r=new wc(n,"max",!0,!0,t);let i=a.runWebGLProgram(r,[e],"float32");return[s,i]}var Ene={kernelName:Qm,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{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(C.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let p=C.computePool2DInfo(a.shape,r,s,u,i),[d,c]=_ne(a,o,p,l);return[d,c]}};function $ne(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=he({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Ao(i,"float32","mean",a),l=he({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var Ane={kernelName:Xi,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=C.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 _=0;_{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]=sne(a,o,p,l);return[d,c]}};function one(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=ko(i,"float32","mean",a),l=de({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var lne={kernelName:Bi,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=pt(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=` +`,hne=pn({opSnippet:cne,packedOpSnippet:dne,cpuKernelImpl:rZ}),mne={kernelName:Vi,backendName:"webgl",kernelFunc:hne},fne=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}; @@ -3846,7 +3844,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam ${r} coords = outC - start; setOutput(getX(${o})); } - `}},zne=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,m)=>h[0]+e[m]+h[1]);let a=e.length,r=pt(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=Sn("rc",a),l=Sn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=n==="reflect"?0:1,c="";if(a===1){let h=` + `}},gne=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,m)=>h[0]+e[m]+h[1]);let a=e.length,r=gt(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=kn("rc",a),l=kn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=n==="reflect"?0:1,c="";if(a===1){let h=` ${r} source = rc; if (source < start) { source = start * 2 - source - ${d}; @@ -3902,13 +3900,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam ${c} setOutput(result); } - `}},Wne=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=X().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new zne(a.shape,r,s):new Lne(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},Bne={kernelName:Ji,backendName:"webgl",kernelFunc:Wne},Vne=`if (b == 0.0) return NAN; - return mod(a, b);`,Une=` + `}},bne=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new gne(a.shape,r,s):new fne(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},yne={kernelName:Ui,backendName:"webgl",kernelFunc:bne},xne=`if (b == 0.0) return NAN; + return mod(a, b);`,vne=` vec4 result = mod(a, b); - vec4 isNaN = vec4(equal(b, vec4(0.0))); - `+bg+` + bvec4 isNaN = equal(b, vec4(0.0)); + `+od+` return result; -`,Gne=cn({opSnippet:Vne,packedOpSnippet:Une}),Hne={kernelName:wu,backendName:"webgl",kernelFunc:Gne},jne=class{constructor(e,t,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,n],this.userCode=` +`,wne=pn({opSnippet:xne,packedOpSnippet:vne}),kne={kernelName:uu,backendName:"webgl",kernelFunc:wne},Ine=class{constructor(e,t,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,n],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -3928,11 +3926,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,N9=Ze({opSnippet:S9}),C9={kernelNam // If no other event happened, last event happened. setOutput(float(${t-1})); } - `}},qne=` + `}},Sne=` if (a == b) { return 1.0; }; -return a / b;`,Kne=` +return a / b;`,Tne=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -3950,9 +3948,9 @@ return a / b;`,Kne=` } return result; -`,WE=cn({opSnippet:qne,packedOpSnippet:Kne,checkOutOfBounds:!0}),Xne={kernelName:Pi,backendName:"webgl",kernelFunc:WE},jI="return a - b;",BE=cn({opSnippet:jI,packedOpSnippet:jI,supportsComplex:!0,cpuKernelImpl:GZ}),Yne={kernelName:xo,backendName:"webgl",kernelFunc:BE};function VE(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=v.parseAxisParam([s],r.shape),o=zE({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=C.expandShapeToKeepDim(o.shape,i),u=he({inputs:{x:o},backend:n,attrs:{shape:l}}),p=BE({inputs:{a:r,b:u},backend:n}),d=PE({inputs:{x:p},backend:n}),c=xg({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=he({inputs:{x:c},backend:n,attrs:{shape:l}}),m=WE({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 Zne={kernelName:bo,backendName:"webgl",kernelFunc:VE};function Jne(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:VE({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new jne(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var Qne={kernelName:ef,backendName:"webgl",kernelFunc:Jne},eae=Ra+` +`,IE=pn({opSnippet:Sne,packedOpSnippet:Tne,checkOutOfBounds:!0}),Nne={kernelName:Ci,backendName:"webgl",kernelFunc:IE},TI="return a - b;",SE=pn({opSnippet:TI,packedOpSnippet:TI,supportsComplex:!0,cpuKernelImpl:IZ}),Cne={kernelName:uo,backendName:"webgl",kernelFunc:SE};function TE(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=v.parseAxisParam([s],r.shape),o=kE({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=SE({inputs:{a:r,b:u},backend:n}),d=xE({inputs:{x:p},backend:n}),c=Xf({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=de({inputs:{x:c},backend:n,attrs:{shape:l}}),m=IE({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 _ne={kernelName:oo,backendName:"webgl",kernelFunc:TE};function Ene(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:TE({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new Ine(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var Ane={kernelName:$m,backendName:"webgl",kernelFunc:Ene},$ne=Ra+` return -x; -`,tae=` +`,Fne=` vec4 result = -x; bvec4 isNaN = isnan(x); @@ -3962,14 +3960,14 @@ return a / b;`,Kne=` result.a = isNaN.a ? x.a : result.a; return result; -`;function nae(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=_Z(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return X().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ni(a.shape,tae):r=new $r(a.shape,eae),n.runWebGLProgram(r,[a],a.dtype)}var aae={kernelName:ku,backendName:"webgl",kernelFunc:nae},rae=yr.nonMaxSuppressionV3Impl;function sae(e){C.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d}=rae(u,p,i,o,l);return n.makeTensorInfo([d.length],"int32",new Int32Array(d))}var iae={kernelName:Tu,backendName:"webgl",kernelFunc:sae},oae=yr.nonMaxSuppressionV4Impl;function lae(e){C.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),{selectedIndices:c,validOutputs:h}=oae(p,d,i,o,l,u);return[n.makeTensorInfo([c.length],"int32",new Int32Array(c)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var uae={kernelName:Su,backendName:"webgl",kernelFunc:lae},pae=yr.nonMaxSuppressionV5Impl;function cae(e){C.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),c=i,h=o,m=l,f=u,{selectedIndices:g,selectedScores:b}=pae(p,d,c,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([b.length],"float32",new Float32Array(b))]}var dae={kernelName:Nu,backendName:"webgl",kernelFunc:cae},hae=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` +`;function Dne(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=iZ(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return H().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new qs(a.shape,Fne):r=new Cr(a.shape,$ne),n.runWebGLProgram(r,[a],a.dtype)}var Rne={kernelName:pu,backendName:"webgl",kernelFunc:Dne},Mne=dr.nonMaxSuppressionV3Impl;function Pne(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d}=Mne(u,p,i,o,l);return n.makeTensorInfo([d.length],"int32",new Int32Array(d))}var One={kernelName:du,backendName:"webgl",kernelFunc:Pne},Lne=dr.nonMaxSuppressionV4Impl;function zne(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),{selectedIndices:c,validOutputs:h}=Lne(p,d,i,o,l,u);return[n.makeTensorInfo([c.length],"int32",new Int32Array(c)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var Bne={kernelName:hu,backendName:"webgl",kernelFunc:zne},Wne=dr.nonMaxSuppressionV5Impl;function Vne(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),c=i,h=o,m=l,f=u,{selectedIndices:g,selectedScores:b}=Wne(p,d,c,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([b.length],"float32",new Float32Array(b))]}var Une={kernelName:mu,backendName:"webgl",kernelFunc:Vne},Gne=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int index = round(getIndices(coords.x)); setOutput(mix(float(${a}), float(${n}), float(index == coords.y))); } - `}},mae=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=v.sizeFromShape(r.shape),p=new hae(u,i,o,l),d=he({inputs:{x:r},backend:n,attrs:{shape:[u]}}),c=n.runWebGLProgram(p,[d],s);n.disposeIntermediateTensorInfo(d);let h=[...r.shape,i],m=he({inputs:{x:c},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(c),m},fae={kernelName:eo,backendName:"webgl",kernelFunc:mae};function Nm(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=Id({inputs:{input:a},backend:n}),s=Nm({inputs:{x:r},backend:n}),i=vg({inputs:{input:a},backend:n}),o=Nm({inputs:{x:i},backend:n}),l=Fs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return Td({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var gae={kernelName:Hu,backendName:"webgl",kernelFunc:Nm};function UE(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(a.dtype==="complex64"){let r=Id({inputs:{input:a},backend:n}),s=UE({inputs:{x:r},backend:n}),i=vg({inputs:{input:a},backend:n}),o=Nm({inputs:{x:i},backend:n}),l=Fs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return Td({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var bae={kernelName:Cu,backendName:"webgl",kernelFunc:UE};function yae(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return Lx({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=Lx({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.disposeIntermediateTensorInfo(p)),u}var xae={kernelName:_u,backendName:"webgl",kernelFunc:yae},vae=class{constructor(e,t,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((l,u)=>l[0]+e[u]+l[1]);let a=e.length,r=pt(a),s=t.map(l=>l[0]).join(","),i=t.map((l,u)=>l[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` + `}},Hne=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=v.sizeFromShape(r.shape),p=new Gne(u,i,o,l),d=de({inputs:{x:r},backend:n,attrs:{shape:[u]}}),c=n.runWebGLProgram(p,[d],s);n.disposeIntermediateTensorInfo(d);let h=[...r.shape,i],m=de({inputs:{x:c},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(c),m},jne={kernelName:Hi,backendName:"webgl",kernelFunc:Hne};function am(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=ud({inputs:{input:a},backend:n}),s=am({inputs:{x:r},backend:n}),i=Yf({inputs:{input:a},backend:n}),o=am({inputs:{x:i},backend:n}),l=_s({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return pd({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var qne={kernelName:Du,backendName:"webgl",kernelFunc:am};function NE(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(a.dtype==="complex64"){let r=ud({inputs:{input:a},backend:n}),s=NE({inputs:{x:r},backend:n}),i=Yf({inputs:{input:a},backend:n}),o=am({inputs:{x:i},backend:n}),l=_s({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return pd({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var Kne={kernelName:fu,backendName:"webgl",kernelFunc:NE};function Xne(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return yx({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=yx({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=cE({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var Yne={kernelName:gu,backendName:"webgl",kernelFunc:Xne},Zne=class{constructor(e,t,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((l,u)=>l[0]+e[u]+l[1]);let a=e.length,r=gt(a),s=t.map(l=>l[0]).join(","),i=t.map((l,u)=>l[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` int start = ${s}; int end = ${i}; @@ -3994,7 +3992,7 @@ return a / b;`,Kne=` setOutput(getX(${o})); } } - `}},wae=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);let a=e.length,r=pt(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=Sn("rc",a),l=Sn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; + `}},Jne=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);let a=e.length,r=gt(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=kn("rc",a),l=kn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; if(${u}) { `,a===1?"":`} rc = outputLoc; @@ -4018,7 +4016,7 @@ return a / b;`,Kne=` ${h} setOutput(result); } - `}},GE=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;if(v.sizeFromShape(r.shape)===0){let u=s.map((p,d)=>p[0]+r.shape[d]+p[1]);return Td({backend:n,attrs:{shape:u,value:i,dtype:r.dtype}})}let o=X().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new wae(r.shape,s,i):new vae(r.shape,s,i),l=[[i]];return n.runWebGLProgram(o,[r],r.dtype,l)},kae={kernelName:to,backendName:"webgl",kernelFunc:GE},Iae=` + `}},CE=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;if(v.sizeFromShape(r.shape)===0){let u=s.map((p,d)=>p[0]+r.shape[d]+p[1]);return pd({backend:n,attrs:{shape:u,value:i,dtype:r.dtype}})}let o=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Jne(r.shape,s,i):new Zne(r.shape,s,i),l=[[i]];return n.runWebGLProgram(o,[r],r.dtype,l)},Qne={kernelName:ji,backendName:"webgl",kernelFunc:CE},eae=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -4027,7 +4025,7 @@ return a / b;`,Kne=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,Tae=` +`,tae=` // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); @@ -4040,12 +4038,14 @@ return a / b;`,Kne=` result.b = isExpZero.b ? 1.0 : result.b; result.a = isExpZero.a ? 1.0 : result.a; - vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b)); - `+bg+` + bvec4 isNaN1 = lessThan(a, vec4(0.0)); + bvec4 isNaN2 = lessThan(floor(b), b); + bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w); + `+od+` return result; -`,Sae=cn({opSnippet:Iae,packedOpSnippet:Tae}),Nae={kernelName:no,backendName:"webgl",kernelFunc:Sae};function Cae(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=C.getAxesPermutation(p,o),c=r;d!=null&&(c=Cn({inputs:{x:r},backend:n,attrs:{perm:d}}),p=C.getInnerMostAxes(p.length,o),l.push(c)),C.assertAxesAreInnerMostDims("prod",p,o);let h;if(n.shouldExecuteOnCPU([c])){let m=n.texData.get(c.dataId).values,{outVals:f,outShape:g,outDtype:b}=$Z(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,b,f)}else{let[m,f]=C.computeOutAndReduceShapes(c.shape,p),g=v.sizeFromShape(f),b=he({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),y=pf(r.dtype),x=Ao(b,y,"prod",n);h=he({inputs:{x},backend:n,attrs:{shape:m}}),l.push(b),l.push(x)}if(i){l.push(h);let m=C.expandShapeToKeepDim(h.shape,u);h=he({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var _ae={kernelName:ro,backendName:"webgl",kernelFunc:Cae};function Eae(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]=AZ(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var $ae={kernelName:tf,backendName:"webgl",kernelFunc:Eae},HE=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=FZ(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},Aae={kernelName:Dc,backendName:"webgl",kernelFunc:HE},Fae="return 1.0 / x;",Dae=Ze({opSnippet:Fae}),Rae={kernelName:Eu,backendName:"webgl",kernelFunc:Dae},Mae=Ra+` +`,nae=pn({opSnippet:eae,packedOpSnippet:tae}),aae={kernelName:qi,backendName:"webgl",kernelFunc:nae};function rae(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=In({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:b}=lZ(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,b,f)}else{let[m,f]=N.computeOutAndReduceShapes(c.shape,p),g=v.sizeFromShape(f),b=de({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),y=Wm(r.dtype),x=ko(b,y,"prod",n);h=de({inputs:{x},backend:n,attrs:{shape:m}}),l.push(b),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 sae={kernelName:Xi,backendName:"webgl",kernelFunc:rae};function iae(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(b=>n.readSync(b.dataId)),u=r.map(b=>b.shape),p=n.readSync(s.dataId),d=n.readSync(i.dataId),[c,h,m]=uZ(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(b=>n.makeTensorInfo([b.length],"int32",b)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var oae={kernelName:Fm,backendName:"webgl",kernelFunc:iae};function lae(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]=pZ(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var uae={kernelName:Dm,backendName:"webgl",kernelFunc:lae},_E=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=cZ(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},pae={kernelName:bc,backendName:"webgl",kernelFunc:_E},cae="return 1.0 / x;",dae=Ye({opSnippet:cae}),hae={kernelName:bu,backendName:"webgl",kernelFunc:dae},mae=Ra+` return (x < 0.0) ? 0.0 : x; -`,Pae=` +`,fae=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4055,9 +4055,9 @@ return a / b;`,Kne=` result.a = isNaN.a ? x.a : result.a; return result; -`,Oae=Ze({opSnippet:Mae,packedOpSnippet:Pae}),Lae={kernelName:so,backendName:"webgl",kernelFunc:Oae},zae=Ra+` +`,gae=Ye({opSnippet:mae,packedOpSnippet:fae}),bae={kernelName:Yi,backendName:"webgl",kernelFunc:gae},yae=Ra+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Wae=` +`,xae=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4067,7 +4067,7 @@ return a / b;`,Kne=` result.a = isNaN.a ? x.a : result.a; return result; -`,Bae=Ze({opSnippet:zae,packedOpSnippet:Wae}),Vae={kernelName:lo,backendName:"webgl",kernelFunc:Bae},Uae=class{constructor(e,t,n,a,r){this.variableNames=["A"],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="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` +`,vae=Ye({opSnippet:yae,packedOpSnippet:xae}),wae={kernelName:Qi,backendName:"webgl",kernelFunc:vae},kae=class{constructor(e,t,n,a,r){this.variableNames=["A"],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="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${u[0]/p[0]}, ${u[1]/p[1]}); @@ -4100,7 +4100,7 @@ return a / b;`,Kne=` setOutput(newValue); } - `}},Gae=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=` + `}},Iae=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]}, @@ -4177,7 +4177,7 @@ return a / b;`,Kne=` setOutput(newValue); } - `}};function Hae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=X().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Gae(r.shape,l,u,s,i):new Uae(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var jae={kernelName:oo,backendName:"webgl",kernelFunc:Hae},qae=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 Sae(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 Iae(r.shape,l,u,s,i):new kae(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var Tae={kernelName:Ji,backendName:"webgl",kernelFunc:Sae},Nae=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]; @@ -4258,7 +4258,7 @@ return a / b;`,Kne=` setOutput(accumulator); } - `}};function Kae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new qae(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var Xae={kernelName:rf,backendName:"webgl",kernelFunc:Kae},Yae=class{constructor(e,t,n,a,r){this.variableNames=["A"],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=a?"0.5":"0.0",c;r?c="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":c="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};function Cae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Nae(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var _ae={kernelName:Pm,backendName:"webgl",kernelFunc:Cae},Eae=class{constructor(e,t,n,a,r){this.variableNames=["A"],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=a?"0.5":"0.0",c;r?c="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":c="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${u[0]/p[0]}, ${u[1]/p[1]}); @@ -4280,7 +4280,7 @@ return a / b;`,Kne=` setOutput(newValue); } - `}},Zae=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=a?"0.5":"0.0",c;r?c="max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":c="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}},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=a?"0.5":"0.0",c;r?c="max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":c="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${u[0]/p[0]}, ${u[1]/p[1]}, @@ -4321,7 +4321,7 @@ return a / b;`,Kne=` setOutput(newValue); } - `}};function Jae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=X().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Zae(r.shape,l,u,s,i):new Yae(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],r.dtype)}var Qae={kernelName:io,backendName:"webgl",kernelFunc:Jae},ere=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 $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],r.dtype)}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=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -4391,17 +4391,17 @@ return a / b;`,Kne=` setOutput(accumulator); } - `}};function tre(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new ere(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var nre={kernelName:af,backendName:"webgl",kernelFunc:tre},are=class{constructor(e,t){this.variableNames=["x"];let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,n===1){this.userCode=` + `}};function Rae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Dae(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var Mae={kernelName:Mm,backendName:"webgl",kernelFunc:Rae},Pae=class{constructor(e,t){this.variableNames=["x"];let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,n===1){this.userCode=` void main() { int coord = getOutputCoords(); setOutput(getX(${e[0]} - coord - 1)); } - `;return}let a=i=>t.indexOf(i)!==-1&&e[i]!==1?`${e[i]} - coords[${i}] - 1`:`coords[${i}]`,r=e.map((i,o)=>a(o)).join(","),s=pt(n);this.userCode=` + `;return}let a=i=>t.indexOf(i)!==-1&&e[i]!==1?`${e[i]} - coords[${i}] - 1`:`coords[${i}]`,r=e.map((i,o)=>a(o)).join(","),s=gt(n);this.userCode=` void main() { ${s} coords = getOutputCoords(); setOutput(getX(${r})); } - `}},rre=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;let a=Sn("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=pt(n);n===1?this.userCode=` + `}},Oae=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;let a=kn("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=gt(n);n===1?this.userCode=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); @@ -4429,7 +4429,7 @@ return a / b;`,Kne=` } setOutput(result); } - `;function o(h){return d(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",d(h)}function u(h){return h[n-2]="("+h[n-2]+" + 1)",d(h)}function p(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",d(h)}function d(h){let m=e.map((b,y)=>c(y,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function c(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function sre(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return aa({inputs:{x:r},backend:n});let l=X().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new rre(r.shape,o):new are(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var ire={kernelName:uo,backendName:"webgl",kernelFunc:sre},ore=class{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];let n=e[1],a=e[2];this.outputShape=e;let r="";typeof t=="number"?r=`float outputValue = ${t.toFixed(2)};`:r=` + `;function o(h){return d(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",d(h)}function u(h){return h[n-2]="("+h[n-2]+" + 1)",d(h)}function p(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",d(h)}function d(h){let m=e.map((b,y)=>c(y,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function c(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function Lae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return na({inputs:{x:r},backend:n});let l=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Oae(r.shape,o):new Pae(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var zae={kernelName:eo,backendName:"webgl",kernelFunc:Lae},Bae=class{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];let n=e[1],a=e[2];this.outputShape=e;let r="";typeof t=="number"?r=`float outputValue = ${t.toFixed(2)};`:r=` vec3 fill = vec3(${t.join(",")}); float outputValue = fill[coords[3]];`,this.userCode=` void main() { @@ -4448,7 +4448,7 @@ return a / b;`,Kne=` } setOutput(outputValue); } - `}},lre={kernelName:ju,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new ore(a.shape,s),[u,p]=C.getImageCenter(i,a.shape[1],a.shape[2]),d=[[u,p,Math.sin(r),Math.cos(r)]];return o.runWebGLProgram(l,[a],a.dtype,d)}},ure=` + `}},Wae={kernelName:Ru,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new Bae(a.shape,s),[u,p]=N.getImageCenter(i,a.shape[1],a.shape[2]),d=[[u,p,Math.sin(r),Math.cos(r)]];return o.runWebGLProgram(l,[a],a.dtype,d)}},Vae=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -4463,7 +4463,7 @@ return a / b;`,Kne=` return base + 1.0; } } -`,pre=Ze({opSnippet:ure}),cre={kernelName:po,backendName:"webgl",kernelFunc:pre},dre="return inversesqrt(x);",hre=Ze({opSnippet:dre,cpuKernelImpl:DZ}),mre={kernelName:co,backendName:"webgl",kernelFunc:hre},jE=class{constructor(e,t,n,a,r,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let o=pt(r.length),l=pt(s.length),u="";n===1?u="i":n===2&&(u="i, j");let p=`getIndices(${u})`,d="";a===1?d="i":a===2&&(d="i, coords[1]");let c=`getUpdates(${d})`,h=t>1?"strides[j]":"strides";this.userCode=` +`,Uae=Ye({opSnippet:Vae}),Gae={kernelName:to,backendName:"webgl",kernelFunc:Uae},Hae="return inversesqrt(x);",jae=Ye({opSnippet:Hae,cpuKernelImpl:dZ}),qae={kernelName:no,backendName:"webgl",kernelFunc:jae},EE=class{constructor(e,t,n,a,r,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let o=gt(r.length),l=gt(s.length),u="";n===1?u="i":n===2&&(u="i, j");let p=`getIndices(${u})`,d="";a===1?d="i":a===2&&(d="i, coords[1]");let c=`getUpdates(${d})`,h=t>1?"strides[j]":"strides";this.userCode=` ${o} strides = ${o}(${r}); void main() { @@ -4483,7 +4483,7 @@ return a / b;`,Kne=` } setOutput(mix(getDefaultValue(), sum, float(found))); } - `}};function fre(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}=C.calculateShapes(s,r,i),c=[d/u,u];if(d===0)return n.makeTensorInfo(i,r.dtype);let h=he({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=he({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new jE(l,o,h.shape.length,m.shape.length,p,c),b=n.runWebGLProgram(g,[m,h,f],m.dtype),y=he({inputs:{x:b},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(f),y}var gre={kernelName:Au,backendName:"webgl",kernelFunc:fre},bre=class{constructor(e,t,n,a){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,n];let r="while (left < right) {",s=`for (int i = 0; i < ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,i=X().getNumber("WEBGL_VERSION")===2?r:s,o=a==="left"?"<":"<=";this.userCode=` + `}};function Kae(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=[d/u,u];if(d===0)return n.makeTensorInfo(i,r.dtype);let h=de({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=de({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new EE(l,o,h.shape.length,m.shape.length,p,c),b=n.runWebGLProgram(g,[m,h,f],m.dtype),y=de({inputs:{x:b},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(f),y}var Xae={kernelName:xu,backendName:"webgl",kernelFunc:Kae},Yae=class{constructor(e,t,n,a){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,n];let r="while (left < right) {",s=`for (int i = 0; i < ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,i=H().getNumber("WEBGL_VERSION")===2?r:s,o=a==="left"?"<":"<=";this.userCode=` int findBound(int batch, float value) { int left = 0; int right = numInputs; @@ -4508,7 +4508,7 @@ return a / b;`,Kne=` setOutput(float(findBound(batch, value))); } - `}};function yre(e){let{inputs:t,backend:n,attrs:a}=e,{sortedSequence:r,values:s}=t,{side:i}=a,o=new bre(r.shape[0],r.shape[1],s.shape[1],i),l=[[r.shape[1]]];return n.runWebGLProgram(o,[r,s],"int32",l)}var xre={kernelName:sf,backendName:"webgl",kernelFunc:yre},vre=class{constructor(e,t,n){this.variableNames=["c","a","b"],this.outputShape=t;let a,r;if(n>4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)r="resRC",a="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],l=[];for(let u=0;u4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)r="resRC",a="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],l=[];for(let u=0;u= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); -`,Tre=Ze({opSnippet:Ire}),Sre={kernelName:Du,backendName:"webgl",kernelFunc:Tre},Nre=cp+` +`,are=Ye({opSnippet:nre}),rre={kernelName:wu,backendName:"webgl",kernelFunc:are},sre=Qu+` return 1.0 / (1.0 + exp(-1.0 * x)); -`,Cre=` +`,ire=` vec4 result = 1.0 / (1.0 + exp(-1.0 * x)); bvec4 isNaN = isnan(x); @@ -4536,15 +4536,15 @@ return a / b;`,Kne=` result.a = isNaN.a ? x.a : result.a; return result; -`,_re=Ze({opSnippet:Nre,packedOpSnippet:Cre,cpuKernelImpl:MZ}),Ere={kernelName:mo,backendName:"webgl",kernelFunc:_re},$re=` +`,ore=Ye({opSnippet:sre,packedOpSnippet:ire,cpuKernelImpl:mZ}),lre={kernelName:ro,backendName:"webgl",kernelFunc:ore},ure=` if (isnan(x)) { return 0.0; } return sign(x); -`,Are=Ze({opSnippet:$re}),Fre={kernelName:Pu,backendName:"webgl",kernelFunc:Are},Dre=cp+` +`,pre=Ye({opSnippet:ure}),cre={kernelName:Su,backendName:"webgl",kernelFunc:pre},dre=Qu+` return sin(x); -`,Rre=Ze({opSnippet:Dre}),Mre={kernelName:ho,backendName:"webgl",kernelFunc:Rre},Pre=` +`,hre=Ye({opSnippet:dre}),mre={kernelName:ao,backendName:"webgl",kernelFunc:hre},fre=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,Ore=Ze({opSnippet:Pre}),Lre={kernelName:Mu,backendName:"webgl",kernelFunc:Ore},zre=` +`,gre=Ye({opSnippet:fre}),bre={kernelName:Iu,backendName:"webgl",kernelFunc:gre},yre=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -4564,17 +4564,17 @@ return a / b;`,Kne=` result = log(exp_x + 1.0); } return result; -`,Wre=Ze({opSnippet:zre}),Bre={kernelName:Ou,backendName:"webgl",kernelFunc:Wre},Vre=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((b,y)=>b*y),l=[[0,0]];l.push(...i);for(let b=1+s.length;bn.disposeIntermediateTensorInfo(b)),g},Ure={kernelName:Lu,backendName:"webgl",kernelFunc:Vre};function Gre(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: +`,xre=Ye({opSnippet:yre}),vre={kernelName:Tu,backendName:"webgl",kernelFunc:xre},wre=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((b,y)=>b*y),l=[[0,0]];l.push(...i);for(let b=1+s.length;bn.disposeIntermediateTensorInfo(b)),g},kre={kernelName:Nu,backendName:"webgl",kernelFunc:wre};function Ire(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]=OZ(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 Hre={kernelName:Rc,backendName:"webgl",kernelFunc:Gre};function jre(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]=LZ(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var qre={kernelName:Wu,backendName:"webgl",kernelFunc:jre};function Kre(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]=gZ(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 Sre={kernelName:yc,backendName:"webgl",kernelFunc:Ire};function Tre(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]=bZ(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var Nre={kernelName:_u,backendName:"webgl",kernelFunc:Tre};function Cre(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]=hE(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var Xre={kernelName:Mc,backendName:"webgl",kernelFunc:Kre};function Yre(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 + ${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 _re={kernelName:xc,backendName:"webgl",kernelFunc:Cre};function Ere(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]=hE(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var Zre={kernelName:Pc,backendName:"webgl",kernelFunc:Yre};function Jre(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}=C.calculateShapes(s,r,o),h=!1;if(s.dtype==="string"){let b=n.bufferSync(r),y=n.bufferSync(s),x=v.decodeString(n.readSync(i.dataId)[0]),w=RZ(b,y,o,c,p,u,l,d,x,h);return n.makeTensorInfo(o,w.dtype,w.values)}let m=new jE(u,l,r.shape.length,s.shape.length,d,[c,1],h),f=n.runWebGLProgram(m,[s,r,i],s.dtype),g=he({inputs:{x:f},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(f),g}var Qre={kernelName:of,backendName:"webgl",kernelFunc:Jre};function ese(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=C.prepareSplitSize(r,s,o),u=r.shape.length,p=new Array(u).fill(0),d=r.shape.slice();return l.map(c=>{let h=[...d];h[o]=c;let m=dp({inputs:{x:r},backend:n,attrs:{begin:p,size:h}});return p[o]+=c,m})}var tse={kernelName:zu,backendName:"webgl",kernelFunc:ese},qI="return sqrt(x);",nse=Ze({opSnippet:qI,packedOpSnippet:qI,cpuKernelImpl:zZ}),ase={kernelName:fo,backendName:"webgl",kernelFunc:nse},rse="return x * x;",sse=Ze({opSnippet:rse}),ise={kernelName:Oc,backendName:"webgl",kernelFunc:sse},KI="return (a - b) * (a - b);",ose=cn({opSnippet:KI,packedOpSnippet:KI}),lse={kernelName:yo,backendName:"webgl",kernelFunc:ose};function use({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Ra+` + ${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);return n.makeTensorInfo(p,a.dtype,u)}var Are={kernelName:vc,backendName:"webgl",kernelFunc:Ere};function $re(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;if(s.dtype==="string"){let b=n.bufferSync(r),y=n.bufferSync(s),x=v.decodeString(n.readSync(i.dataId)[0]),w=hZ(b,y,o,c,p,u,l,d,x,h);return n.makeTensorInfo(o,w.dtype,w.values)}let m=new EE(u,l,r.shape.length,s.shape.length,d,[c,1],h),f=n.runWebGLProgram(m,[s,r,i],s.dtype),g=de({inputs:{x:f},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(f),g}var Fre={kernelName:Lm,backendName:"webgl",kernelFunc:$re};function Dre(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=r.shape.length,p=new Array(u).fill(0),d=r.shape.slice();return l.map(c=>{let h=[...d];h[o]=c;let m=ep({inputs:{x:r},backend:n,attrs:{begin:p,size:h}});return p[o]+=c,m})}var Rre={kernelName:Cu,backendName:"webgl",kernelFunc:Dre},NI="return sqrt(x);",Mre=Ye({opSnippet:NI,packedOpSnippet:NI,cpuKernelImpl:yZ}),Pre={kernelName:so,backendName:"webgl",kernelFunc:Mre},Ore="return x * x;",Lre=Ye({opSnippet:Ore}),zre={kernelName:wc,backendName:"webgl",kernelFunc:Lre},CI="return (a - b) * (a - b);",Bre=pn({opSnippet:CI,packedOpSnippet:CI}),Wre={kernelName:lo,backendName:"webgl",kernelFunc:Bre};function Vre({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Ra+` return x > 0.0 ? 1.0 : float(${t.alpha}); - `,s=new $r(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var pse={kernelName:ks,backendName:"webgl",kernelFunc:use},cse=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=pt(n.length),s=pt(n.length),i="";if(a===1)i="coords * strides + begin";else{let o=0;i=n.map((l,u)=>(o++,n.length===1?`coords * strides[${u}] + begin[${u}]`:`coords[${o-1}] * strides[${u}] + begin[${u}]`)).join(",")}this.userCode=` + `,s=new Cr(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var Ure={kernelName:ys,backendName:"webgl",kernelFunc:Vre},Gre=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=gt(n.length),s=gt(n.length),i="";if(a===1)i="coords * strides + begin";else{let o=0;i=n.map((l,u)=>(o++,n.length===1?`coords * strides[${u}] + begin[${u}]`:`coords[${o-1}] * strides[${u}] + begin[${u}]`)).join(",")}this.userCode=` ${r} begin = ${r}(${e}); ${r} strides = ${r}(${t}); @@ -4582,15 +4582,15 @@ return a / b;`,Kne=` ${s} coords = getOutputCoords(); setOutput(getX(${i})); } - `}};function dse(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:b,begin:y,end:x,strides:w}=qt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=he({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let _=qt.computeOutShape(y,x,w),$=dp({inputs:{x:r},backend:n,attrs:{begin:y,size:_}});I=he({inputs:{x:$},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo($)}else if(n.shouldExecuteOnCPU([r])){let _=n.readSync(r.dataId),$=ze(r.shape,r.dtype,_),A=WZ(h,$,w,y);I=n.makeTensorInfo(m,r.dtype,A.values)}else{let _=new cse(y,w,h);I=n.runWebGLProgram(_,[r],r.dtype)}let N=he({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),N}var hse={kernelName:Bu,backendName:"webgl",kernelFunc:dse};function mse(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]=BZ(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var fse={kernelName:Lc,backendName:"webgl",kernelFunc:mse};function gse(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]=VZ(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 bse={kernelName:zc,backendName:"webgl",kernelFunc:gse};function yse(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=UZ(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var xse={kernelName:Wc,backendName:"webgl",kernelFunc:yse},vse="return tan(x);",wse=Ze({opSnippet:vse}),kse={kernelName:vo,backendName:"webgl",kernelFunc:wse},Ise=` + `}};function Hre(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:b,begin:y,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||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=jt.computeOutShape(y,x,w),E=ep({inputs:{x:r},backend:n,attrs:{begin:y,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=xZ(h,E,w,y);I=n.makeTensorInfo(m,r.dtype,A.values)}else{let C=new Gre(y,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 jre={kernelName:Eu,backendName:"webgl",kernelFunc:Hre};function qre(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]=vZ(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var Kre={kernelName:kc,backendName:"webgl",kernelFunc:qre};function Xre(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]=wZ(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 Yre={kernelName:Ic,backendName:"webgl",kernelFunc:Xre};function Zre(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=kZ(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var Jre={kernelName:Sc,backendName:"webgl",kernelFunc:Zre},Qre="return tan(x);",ese=Ye({opSnippet:Qre}),tse={kernelName:po,backendName:"webgl",kernelFunc:ese},nse=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,Tse=Ze({opSnippet:Ise}),Sse={kernelName:wo,backendName:"webgl",kernelFunc:Tse},Nse=class{constructor(e,t){this.variableNames=["A"];let n=new Array(e.length);for(let s=0;s5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],a=[];for(let r=0;r5){let o=n.readSync(r.dataId),l=r.dtype==="string"?o.map(d=>v.decodeString(d)):o,u=ze(r.shape,r.dtype,l),p=HZ(u,s);return n.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new Nse(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var _se={kernelName:ws,backendName:"webgl",kernelFunc:qE},Ese=class{constructor(e){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=e,this.userCode=` + `}};function ise(e){let t=e.length;if(t>5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],a=[];for(let r=0;r5){let o=n.readSync(r.dataId),l=r.dtype==="string"?o.map(d=>v.decodeString(d)):o,u=Oe(r.shape,r.dtype,l),p=SZ(u,s);return n.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new sse(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var ose={kernelName:bs,backendName:"webgl",kernelFunc:AE},lse=class{constructor(e){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=e,this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -4630,7 +4630,7 @@ return a / b;`,Kne=` setOutput(float(i1)); } } - `}},$se=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode=` + `}},use=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode=` void main() { // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ... ivec2 coords = getOutputCoords(); @@ -4664,7 +4664,7 @@ return a / b;`,Kne=` setOutput(x0 >= x1 ? float(i0) : float(i1)); } - `}};function qs(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function XI(e){let t=1;for(;tl){let A=n.readSync(r.dataId),[M,D]=jZ(A,u,r.dtype,s,i);return[n.makeTensorInfo(M.shape,M.dtype,M.values),n.makeTensorInfo(D.shape,D.dtype,D.values)]}if(s===0)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(p===1)return[r,Td({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=he({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&qs(n,h);let g=XI(s),b=XI(p),y=null,x=()=>y===null?[f,f]:[f,y],w=(A,M,D)=>{let T=x(),P=new Ese(D),U=[[p],[y===null?1:0],[Number.NEGATIVE_INFINITY],[A],[M]],j=y;y=n.runWebGLProgram(P,T,"int32",U),qs(n,j)};for(let A=1;A=1;D/=2)w(M,D,[m,b])}for(let A=b;A>g;A/=2){let M=x(),D=new $se([m,A/2]),T=[[p],[y===null?1:0],[g]],P=y;y=n.runWebGLProgram(D,M,"int32",T),qs(n,P);let U=g/2,j=U*2;for(let q=U;q>=1;q/=2)w(j,q,y.shape)}let I=y;y=dp({inputs:{x:y},backend:n,attrs:{begin:0,size:[m,s]}}),qs(n,I);let N=LE({inputs:{x:f,indices:y},backend:n,attrs:{axis:1,batchDims:1}});qs(n,f);let _=u.slice(0,-1);_.push(s),I=y,y=he({inputs:{x:y},attrs:{shape:_},backend:n}),qs(n,I);let $=N;return N=he({inputs:{x:N},attrs:{shape:_},backend:n}),qs(n,$),[N,y]}var Fse={kernelName:Vu,backendName:"webgl",kernelFunc:Ase},Dse=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 _I(e){let t=1;for(;tl){let A=n.readSync(r.dataId),[R,F]=TZ(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,pd({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=_I(s),b=_I(p),y=null,x=()=>y===null?[f,f]:[f,y],w=(A,R,F)=>{let S=x(),M=new lse(F),W=[[p],[y===null?1:0],[Number.NEGATIVE_INFINITY],[A],[R]],U=y;y=n.runWebGLProgram(M,S,"int32",W),Ls(n,U)};for(let A=1;A=1;F/=2)w(R,F,[m,b])}for(let A=b;A>g;A/=2){let R=x(),F=new use([m,A/2]),S=[[p],[y===null?1:0],[g]],M=y;y=n.runWebGLProgram(F,R,"int32",S),Ls(n,M);let W=g/2,U=W*2;for(let G=W;G>=1;G/=2)w(U,G,y.shape)}let I=y;y=ep({inputs:{x:y},backend:n,attrs:{begin:0,size:[m,s]}}),Ls(n,I);let T=wE({inputs:{x:f,indices:y},backend:n,attrs:{axis:1,batchDims:1}});Ls(n,f);let C=u.slice(0,-1);C.push(s),I=y,y=de({inputs:{x:y},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,y]}var cse={kernelName:Au,backendName:"webgl",kernelFunc:pse},dse=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) { @@ -4776,7 +4776,7 @@ return a / b;`,Kne=` } setOutput(outputValue); } - `}};function Rse(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],b=new Dse(d,c,i,o,l,g);return n.runWebGLProgram(b,[r,s],"float32")}var Mse={kernelName:Uu,backendName:"webgl",kernelFunc:Rse};function Pse(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;ip(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}=qZ(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var Ose={kernelName:lf,backendName:"webgl",kernelFunc:Pse};function Lse(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 zse={kernelName:Gu,backendName:"webgl",kernelFunc:Lse},Wse=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 hse(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],b=new dse(d,c,i,o,l,g);return n.runWebGLProgram(b,[r,s],"float32")}var mse={kernelName:$u,backendName:"webgl",kernelFunc:hse};function fse(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;Ku(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}=NZ(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var gse={kernelName:zm,backendName:"webgl",kernelFunc:fse};function bse(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 yse={kernelName:Fu,backendName:"webgl",kernelFunc:bse},xse=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}) { @@ -4882,6 +4882,6 @@ return a / b;`,Kne=` } setOutput(${l}); } - `}};function Bse(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=C.getAxesPermutation([u],o),d=r;p!=null&&(d=Cn({inputs:{x:r},backend:n,attrs:{perm:p}}),l.push(d),u=C.getInnerMostAxes(1,o)[0]);let c=C.segment_util.computeOutShape(d.shape,u,i),h=v.sizeFromShape([d.shape[u]]),m=he({inputs:{x:d},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=pf(r.dtype),g=(w,I,N,_,$)=>{let A=w.shape[0],M=w.shape[1],D=C.segment_util.segOpComputeOptimalWindowSize(M,$),T={windowSize:D,inSize:M,batchSize:A,numSegments:$},P=new Wse(T,I),U=n.compileAndRun(P,[w,N],_);if(l.push(U),U.shape[1]===$)return U;let j=HE({backend:n,attrs:{start:0,stop:$,step:1,dtype:"float32"}}),q=qE({inputs:{x:j},backend:n,attrs:{reps:[M/D]}});return l.push(j),l.push(q),g(U,I,q,_,$)},b=g(m,"unsortedSegmentSum",s,f,i),y=he({inputs:{x:b},backend:n,attrs:{shape:c}}),x=y;if(p!=null){l.push(y);let w=C.getUndoAxesPermutation(p);x=Cn({inputs:{x},backend:n,attrs:{perm:w}})}return l.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}var Vse={kernelName:Bc,backendName:"webgl",kernelFunc:Bse},Use=[VJ,GJ,qJ,YJ,JJ,t9,a9,s9,u9,c9,m9,b9,v9,T9,C9,E9,A9,M9,O9,z9,U9,Y9,J9,eQ,iQ,lQ,dQ,IJ,fQ,vQ,TQ,$Q,FQ,RQ,PQ,LQ,BQ,GQ,qQ,XQ,ZQ,QQ,nee,ree,lee,pee,hee,gee,yee,kee,Nee,$ee,Dee,Pee,Oee,zee,Bee,Uee,Hee,qee,Zee,ete,ate,ste,lte,cte,fte,xte,kJ,wte,yQ,Tte,Cte,$te,SJ,Rte,Lte,Wte,Gte,qte,Zte,ene,rne,lne,cne,hne,bne,xne,wne,Sne,Cne,Ene,Ane,Dne,One,Bne,Hne,Qne,$J,aae,iae,uae,dae,nQ,fae,bae,xae,kae,Nae,CJ,_ae,$ae,Aae,aQ,Xne,Rae,Lae,Vae,FJ,jae,Xae,Qae,nre,ire,lre,cre,mre,gre,xre,kre,Sre,Ere,Fre,Mre,Lre,K9,Zne,Bre,Ure,Hre,qre,Xre,Zre,Qre,tse,ase,ise,lse,pse,hse,fse,bse,xse,Yne,zJ,kse,Sse,_se,Fse,Mse,WJ,Ose,zse,Vse,gae];for(let e of Use)Vc(e);var At;(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"})(At||(At={}));var Ic;(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"})(Ic||(Ic={}));var KE;function Gse(e){KE=e.wasm.cwrap(li,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Hse(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 $=n.dataIdMap.get(i.dataId);if($.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${$.shape.length}.`);m=$.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=Ic[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let b=l?r.shape[2]:r.shape[1],y=u?s.shape[1]:s.shape[2],x=qu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),w=n.makeOutput([...x,b,y],r.dtype),I=n.dataIdMap.get(w.dataId).id,N=new Uint8Array(new Int32Array(r.shape).buffer),_=new Uint8Array(new Int32Array(s.shape).buffer);return KE(c,N,r.shape.length,h,_,s.shape.length,l,u,g,m,f,d||0,I),w}var jse={kernelName:li,backendName:"wasm",setupFunc:Gse,kernelFunc:Hse};function rn(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,At[o.dtype],p),u}return{kernelName:e,backendName:"wasm",setupFunc:a,kernelFunc:r}}var qse=rn(Ul);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=C.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),b=new Uint8Array(new Int32Array(p.shape).buffer),y=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,b,p.shape.length,At[u.dtype],y),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var Kse=!0,Xse=dn(xs,Kse),XE;function Yse(e){XE=e.wasm.cwrap(Ti,null,["array","number","number","number"])}function Zse(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 XE(s,r.length,At[a.dtype],i),a}var Jse={kernelName:Ti,backendName:"wasm",setupFunc:Yse,kernelFunc:Zse};function wg(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var Qse={kernelName:Ui,backendName:"wasm",kernelFunc:wg},YE;function eie(e){YE=e.wasm.cwrap(Ar,null,["number","array","number","number","number","array","number"])}function gs(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=nie(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 aie={kernelName:Ar,backendName:"wasm",kernelFunc:gs,setupFunc:eie};function Ds(e,t,n){let a=e.shape,r=e.shape.length,s=v.parseAxisParam(t,a),i=s,o=C.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 gie={kernelName:$u,backendName:"wasm",kernelFunc:Un},t$;function bie(e){t$=e.wasm.cwrap(Ci,null,["number","array","number","number","array","number","number","number","number"])}function yie(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),b=v.sizeFromShape(f),y=qu.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?[b,h,d]:[b,d,h],I=Un({inputs:{x:r},backend:n,attrs:{shape:x}}),N=Un({inputs:{x:s},backend:n,attrs:{shape:w}}),_=n.dataIdMap.get(I.dataId).id,$=n.dataIdMap.get(N.dataId).id,A=i?I.shape[2]:I.shape[1],M=o?N.shape[1]:N.shape[2],D=Math.max(g,b),T=n.makeOutput([D,A,M],I.dtype),P=n.dataIdMap.get(T.dataId).id,U=new Uint8Array(new Int32Array(I.shape).buffer),j=new Uint8Array(new Int32Array(N.shape).buffer);return t$(_,U,I.shape.length,$,j,N.shape.length,i,o,P),n.disposeData(I.dataId),n.disposeData(N.dataId),T.shape=y,T}var xie={kernelName:Ci,backendName:"wasm",setupFunc:bie,kernelFunc:yie};function ki(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=qt.parseSliceParams(t,n,a),o=qt.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=qt.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=vm(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)vie(l,p[0],c,s,i);else if(h===3)wie(l,p[0],p[1],c,s,i);else if(h===4)kie(l,p[0],p[1],p[2],c,s,i);else{let m=vm(l,s,i,t.shape,t.dtype);c.set(m)}return u}function vie(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;ub*y),l=C.getReshaped(r.shape,s,o),u=C.getPermuted(l.length,s.length),p=C.getReshapedPermuted(r.shape,s,o),d=C.getSliceBeginCoords(i,s.length),c=C.getSliceSize(p,i,s.length),h=Un({inputs:{x:r},backend:n,attrs:{shape:l}}),m=gs({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Un({inputs:{x:m},backend:n,attrs:{shape:p}}),g=ki({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 Sie={kernelName:Ql,backendName:"wasm",kernelFunc:Tie};function hp(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 Nie={kernelName:_i,backendName:"wasm",kernelFunc:hp},Cie=rn(Ei),n$;function _ie(e){n$=e.wasm.cwrap(vs,null,["number","number","number","number"])}function Eie(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 n$(o,s,i,u),l}var $ie={kernelName:vs,backendName:"wasm",setupFunc:_ie,kernelFunc:Eie};function a$(e){let{inputs:t,backend:n}=e,a=v.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=C.computeOutShape(t.map(h=>h.shape),a),s=t.filter(h=>v.sizeFromShape(h.shape)>0);if(s.length===1)return wg({inputs:{x:s[0]},backend:n});let i=n.makeOutput(r,t[0].dtype);if(v.sizeFromShape(r)===0)return i;let o=s.map(h=>h.shape);if(C.assertParamsConsistent(o,a),s[0].dtype==="string"){let h=s.map(x=>{let w=v.sizeFromShape(x.shape.slice(a));return Un({inputs:{x},backend:n,attrs:{shape:[-1,w]}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));r=C.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=J0(m,r,t[0].dtype,f),b=C.computeOutShape(s.map(x=>x.shape),a);i.shape=b;let y=n.dataIdMap.get(i.dataId);return y.stringBytes=C.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),i}let l=v.sizeFromShape(s[0].shape.slice(0,a)),u=0,p=s.map(h=>{let m=v.sizeFromShape(h.shape.slice(a));return u+=m,m}),d=s.map(h=>n.typedArrayFromHeap(h)),c=n.typedArrayFromHeap(i);for(let h=0;h`cumprod does not support ${r.dtype} tensors in the WASM backend`);let u=C.getAxesPermutation([s],l),p=r;u!==null&&(p=gs({inputs:{x:r},attrs:{perm:u},backend:n}));let d=C.getInnerMostAxes(1,l)[0];C.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;o$(m,i?1:0,o?1:0,h,f,At[r.dtype]);let g=c;if(u!==null){let b=C.getUndoAxesPermutation(u);g=gs({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Hie={kernelName:tu,backendName:"wasm",setupFunc:Uie,kernelFunc:Gie},l$;function jie(e){l$=e.wasm.cwrap(Ri,null,["number","number","number","number","number","number"])}function qie(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=C.getAxesPermutation([s],l),p=r;u!==null&&(p=gs({inputs:{x:r},attrs:{perm:u},backend:n}));let d=C.getInnerMostAxes(1,l)[0];C.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;l$(m,i?1:0,o?1:0,h,f,At[r.dtype]);let g=c;if(u!==null){let b=C.getUndoAxesPermutation(u);g=gs({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Kie={kernelName:Ri,backendName:"wasm",setupFunc:jie,kernelFunc:qie},u$;function Xie(e){u$=e.wasm.cwrap(au,null,["number","number","number","array","number","array","array","number","number"])}function Yie(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,b=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(v.computeStrides(m)).buffer),w=t.dataIdMap.get(f.dataId).id;return u$(g,s,i==="NHWC"?1:0,b,r.shape.length-1,y,x,m.length,w),f}var Zie={kernelName:au,backendName:"wasm",setupFunc:Xie,kernelFunc:Yie},p$;function Jie(e){p$=e.wasm.cwrap(Mi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Qie(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=C.computeConv2DInfo(r.shape,s.shape,l,c,p,d,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,b=h.padInfo.right,y=h.padInfo.bottom,x=h.padInfo.left,w=h.dilationHeight,I=h.dilationWidth,N=h.strideHeight,_=h.strideWidth,$=h.inChannels,A=h.outChannels,M=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 D=a.makeOutput(h.outShape,"float32"),T=a.dataIdMap.get(D.dataId).id;return p$(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,b,y,x,M,w,I,N,_,$,A,T),D}var eoe={kernelName:Mi,backendName:"wasm",setupFunc:Jie,kernelFunc:Qie},toe=rn(Oi),noe=!1,aoe=dn(su,noe,"bool"),roe=rn(Li,"float32");function Wx(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),Un({inputs:{x:r},backend:a,attrs:{shape:o}})}var soe={kernelName:iu,backendName:"wasm",kernelFunc:Wx};function c$(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 ioe={kernelName:$c,backendName:"wasm",kernelFunc:c$},d$;function ooe(e){d$=e.wasm.cwrap(lu,null,["number","number","number","number","number","number"])}function loe(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 d$(s,o,l,u,p,i),r}var uoe={kernelName:lu,backendName:"wasm",kernelFunc:loe,setupFunc:ooe},poe=rn(zi),coe=!1,doe=dn(Wi,coe),h$;function hoe(e){h$=e.wasm.cwrap(Bi,null,["number","number","number","number","number","number","number"])}function moe(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 h$(p,d,c,h,m,r,g),f}var foe={kernelName:Bi,backendName:"wasm",setupFunc:hoe,kernelFunc:moe},m$;function goe(e){m$=e.wasm.cwrap(ui,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 boe(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=C.computeConv2DInfo(r.shape,s.shape,l,p,u,c),g=Ic[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let ae=a.dataIdMap.get(i.dataId);if(ae.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${ae.shape}) does not match the number of output channels (${x})`);w=ae.id}let I=f.filterHeight,N=f.filterWidth,_=f.padInfo.top,$=f.padInfo.right,A=f.padInfo.bottom,M=f.padInfo.left,D=f.dilationHeight,T=f.dilationWidth,P=f.strideHeight,U=f.strideWidth,j=f.inChannels,q=f.padInfo.type==="SAME"?1:0,K=f.batchSize,Y=f.inHeight,te=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let re=a.makeOutput(f.outShape,"float32"),J=a.dataIdMap.get(re.dataId).id,ie=o==null?0:a.dataIdMap.get(o.dataId).id;return m$(b,K,Y,te,y,I,N,w,_,$,A,M,q,D,T,P,U,j,x,g,ie,m||0,J),re}var yoe={kernelName:ui,backendName:"wasm",setupFunc:goe,kernelFunc:boe},f$;function xoe(e){f$=e.wasm.cwrap(pi,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 voe(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=C.computeConv2DInfo(r.shape,s.shape,l,p,u,c,!0),g=Ic[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let ae=a.dataIdMap.get(i.dataId);if(ae.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${ae.shape}) does not match the number of output channels (${x})`);w=ae.id}let I=f.filterHeight,N=f.filterWidth,_=f.padInfo.top,$=f.padInfo.right,A=f.padInfo.bottom,M=f.padInfo.left,D=f.dilationHeight,T=f.dilationWidth,P=f.strideHeight,U=f.strideWidth,j=f.inChannels,q=f.padInfo.type==="SAME"?1:0,K=f.batchSize,Y=f.inHeight,te=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let re=a.makeOutput(f.outShape,"float32"),J=a.dataIdMap.get(re.dataId).id,ie=o==null?0:a.dataIdMap.get(o.dataId).id;return f$(b,K,Y,te,y,I,N,w,_,$,A,M,q,D,T,P,U,j,x,g,ie,m||0,J),re}var woe={kernelName:pi,backendName:"wasm",setupFunc:xoe,kernelFunc:voe},g$;function koe(e){g$=e.wasm.cwrap(pu,null,["number","number","number","number","number","number","array","number"])}function Ioe(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=ov.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 g$(c,At[a.dtype],h,i,d,o,m,f),u}var Toe={kernelName:pu,backendName:"wasm",setupFunc:koe,kernelFunc:Ioe},b$;function Soe(e){b$=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Noe(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 _=0;_=0,()=>`GatherV2: the index value ${$} is not in [0, ${p-1}]`)}let d=C.segment_util.collectGatherOpShapeInfo(r,s,l,o),c=Un({inputs:{x:r},attrs:{shape:[d.batchSize,d.outerSize,d.dimSize,d.sliceSize]},backend:t}),h=v.sizeFromShape(s.shape),m=Un({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 b=c.shape.length-1,y=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),N=new Uint8Array(new Int32Array(v.computeStrides(f)).buffer);return b$(y,At[r.dtype],I,b,x,d.batchSize,N,w),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var Coe={kernelName:uu,backendName:"wasm",setupFunc:Soe,kernelFunc:Noe},_oe=!1,Eoe=dn(cu,_oe,"bool"),$oe=!1,Aoe=dn(Vi,$oe,"bool"),y$;function Foe(e){y$=e.wasm.cwrap(Gi,null,["number","number","number","number"])}function Doe(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;y$(r,At[t.dtype],n,i)}return s}var Roe={kernelName:Gi,backendName:"wasm",setupFunc:Foe,kernelFunc:Doe},Moe=!1,Poe=dn(fu,Moe,"bool"),Ooe=!1,Loe=dn(gu,Ooe,"bool"),zoe=rn(Hi),Woe=!1,Boe=dn(yu,Woe,"bool"),Voe=rn(xu),Uoe=!1,Goe=dn(vu,Uoe,"bool"),Hoe=!1,joe=dn(mT,Hoe,"bool"),x$;function qoe(e){x$=e.wasm.cwrap(ji,null,["number","number","number","number"])}function Koe(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}=Ds(i,r,t);if(c){let y=t.dataIdMap.get(u.dataId).id;l=u,o=y}let h=l.shape.length;C.assertAxesAreInnerMostDims("max",p,h);let[m,f]=C.computeOutAndReduceShapes(l.shape,p),g=v.sizeFromShape(f),b=t.makeOutput(m,i.dtype);if(v.sizeFromShape(l.shape)!==0){let y=t.dataIdMap.get(b.dataId).id;x$(o,At[i.dtype],g,y)}if(c&&t.disposeData(u.dataId),s){let y=C.expandShapeToKeepDim(b.shape,d);b.shape=y}return b}var Xoe={kernelName:ji,backendName:"wasm",setupFunc:qoe,kernelFunc:Koe},Yoe=!1,Zoe=dn(qi,Yoe),v$;function Joe(e){v$=e.wasm.cwrap(Ki,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Qoe(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=C.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,b=p.dilationHeight,y=p.dilationWidth,x=p.strideHeight,w=p.strideWidth,I=p.inChannels,N=p.outChannels;if(p.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${p.dataFormat}'. Please use 'channelsLast'.`);let _=a.makeOutput(p.outShape,"float32"),$=a.dataIdMap.get(_.dataId).id;return v$(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,b,y,x,w,I,N,$),_}var ele={kernelName:Ki,backendName:"wasm",setupFunc:Joe,kernelFunc:Qoe},w$;function tle(e){w$=e.wasm.cwrap(Xi,null,["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}=Ds(i,r,t),m=d;if(h){let w=t.dataIdMap.get(p.dataId).id;w!==o&&(u=p,l=w,m=C.getInnerMostAxes(m.length,u.shape.length))}C.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=C.computeOutAndReduceShapes(u.shape,m),b=v.sizeFromShape(g),y=u;u.dtype!=="float32"&&(y=hp({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(y.dataId).id);let x=t.makeOutput(f,"float32");if(v.sizeFromShape(u.shape)!==0){let w=t.dataIdMap.get(x.dataId).id;w$(l,b,w)}if(h&&t.disposeData(p.dataId),s){let w=C.expandShapeToKeepDim(x.shape,c);x.shape=w}return u.dtype!=="float32"&&t.disposeData(y.dataId),x}var ale={kernelName:Xi,backendName:"wasm",setupFunc:tle,kernelFunc:nle},k$;function rle(e){k$=e.wasm.cwrap(Yi,null,["number","number","number","number"])}function sle(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}=Ds(i,r,t);if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x)}let m=u.shape.length;C.assertAxesAreInnerMostDims("min",d,m);let[f,g]=C.computeOutAndReduceShapes(u.shape,d),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;k$(l,At[i.dtype],b,x)}if(h&&t.disposeData(p.dataId),s){let x=C.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var ile={kernelName:Yi,backendName:"wasm",setupFunc:rle,kernelFunc:sle},ole=!1,lle=dn(Zi,ole),Bx;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(Bx||(Bx={}));var I$;function ule(e){I$=e.wasm.cwrap(Ji,null,["number","array","number","number","array","array","number","number"])}function ple(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 I$(i,u,t.shape.length,At[t.dtype],c,h,Bx[r],l),o}var cle={kernelName:Ji,backendName:"wasm",kernelFunc:ple,setupFunc:ule},dle=!0,hle=dn(Qi,dle),mle=rn(ku);function I1(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 T$;function fle(e){T$=e.wasm.cwrap(Tu,"number",["number","number","number","number","number"])}function gle(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=T$(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=I1(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var ble={kernelName:Tu,backendName:"wasm",setupFunc:fle,kernelFunc:gle},S$;function yle(e){S$=e.wasm.cwrap(Su,"number",["number","number","number","number","number","bool"])}function xle(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=S$(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=I1(t,c);t.wasm._free(f);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([],"int32",g);return[b,y]}var vle={kernelName:Su,backendName:"wasm",setupFunc:yle,kernelFunc:xle},N$;function wle(e){N$=e.wasm.cwrap(Nu,"number",["number","number","number","number","number","number"])}function kle(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=N$(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=I1(t,c);t.wasm._free(g);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([m],"float32",f);return[b,y]}var Ile={kernelName:Nu,backendName:"wasm",setupFunc:wle,kernelFunc:kle},Tle=!1,Sle=dn(Iu,Tle,"bool"),C$;function Nle(e){C$=e.wasm.cwrap(eo,null,["number","number","number","number","number"])}function Cle(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 C$(d,i,o,l,p),u}var _le={kernelName:eo,backendName:"wasm",setupFunc:Nle,kernelFunc:Cle};function Ele(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var $le={kernelName:Cu,backendName:"wasm",kernelFunc:Ele};function Ale(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return Wx({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=Wx({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=a$({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var Fle={kernelName:_u,backendName:"wasm",kernelFunc:Ale},_$;function Dle(e){_$=e.wasm.cwrap(to,null,["number","array","number","number","array","array","number","number"])}function Rle(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 c$({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 _$(i,u,t.shape.length,At[t.dtype],c,h,r,l),o}var E$={kernelName:to,backendName:"wasm",kernelFunc:Rle,setupFunc:Dle},Mle=!1,Ple=dn(no,Mle),$$;function Ole(e){$$=e.wasm.cwrap(ao,null,["number","number","number"])}function Lle(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=hp({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 $$(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var zle={kernelName:ao,backendName:"wasm",setupFunc:Ole,kernelFunc:Lle},A$;function Wle(e){A$=e.wasm.cwrap(ro,null,["number","number","number","number"])}function Ble(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}=Ds(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=C.getInnerMostAxes(m.length,u.shape.length))}C.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=C.computeOutAndReduceShapes(u.shape,m),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;A$(l,b,At[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=C.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Vle={kernelName:ro,backendName:"wasm",setupFunc:Wle,kernelFunc:Ble},Ule=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=t1(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},Gle={kernelName:Dc,backendName:"wasm",kernelFunc:Ule},Hle=!0,jle=dn(Pi,Hle),qle=rn(so),Kle=rn(lo),F$;function Xle(e){F$=e.wasm.cwrap(oo,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.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=hp({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let b=f.id,y=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return y;let x=t.dataIdMap.get(y.dataId).id;return F$(b,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),y}var Zle={kernelName:oo,backendName:"wasm",setupFunc:Xle,kernelFunc:Yle},D$;function Jle(e){D$=e.wasm.cwrap(io,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.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return f;let g=t.dataIdMap.get(r.dataId),b;g.dtype!=="float32"&&(b=hp({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(b.dataId));let y=g.id,x=t.dataIdMap.get(f.dataId).id;return D$(y,p,d,c,h,l,u,s?1:0,i?1:0,x),b!=null&&t.disposeData(b.dataId),f}var eue={kernelName:io,backendName:"wasm",setupFunc:Jle,kernelFunc:Qle},R$;function tue(e){R$=e.wasm.cwrap(uo,null,["number","array","number","array","number","number"])}function nue(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 wg({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);R$(l,p,i.length,d,r.shape.length,u);let c=Un({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),c}var aue={kernelName:uo,backendName:"wasm",kernelFunc:nue,setupFunc:tue},M$;function rue(e){M$=e.wasm.cwrap(ju,null,["number","number","number","number","number","number","number","number","array","number","number"])}function sue(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]=C.getImageCenter(o,c,h),b=i===0,y=255,x=typeof i=="number"?[i,i,i,b?0:y]:[...i,y],w=new Uint8Array(new Int32Array(x).buffer);return M$(u,d,c,h,m,s,f,g,w,x.length,p),l}var iue={kernelName:ju,backendName:"wasm",kernelFunc:sue,setupFunc:rue},oue=rn(po),lue=rn(co),P$;function uue(e){P$=e.wasm.cwrap(Au,null,["number","number","number","number","number","number","array","number","number"])}function pue(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}=lv.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 P$(h,m,At[s.dtype],l,u,p,f,c,g),o}var cue={kernelName:Au,backendName:"wasm",setupFunc:uue,kernelFunc:pue},O$;function due(e){O$=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function hue(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 O$(i,o,l,h,p),u}var mue={kernelName:Fu,backendName:"wasm",kernelFunc:hue,setupFunc:due},L$;function fue(e){L$=e.wasm.cwrap(mo,null,["number","number"])}function gue(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||L$(a,s),r}var bue={kernelName:"Sigmoid",backendName:"wasm",setupFunc:fue,kernelFunc:gue},yue=rn(ho),z$;function xue(e){z$=e.wasm.cwrap(bo,null,["number","number","number","number"])}function vue(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||z$(r,i,o,l),s}var wue={kernelName:bo,backendName:"wasm",setupFunc:xue,kernelFunc:vue};function kue(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 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 xse(S,I),W=n.compileAndRun(M,[w,T],C);if(l.push(W),W.shape[1]===E)return W;let U=_E({backend:n,attrs:{start:0,stop:E,step:1,dtype:"float32"}}),G=AE({inputs:{x:U},backend:n,attrs:{reps:[R/F]}});return l.push(U),l.push(G),g(W,I,G,C,E)},b=g(m,"unsortedSegmentSum",s,f,i),y=de({inputs:{x:b},backend:n,attrs:{shape:c}}),x=y;if(p!=null){l.push(y);let w=N.getUndoAxesPermutation(p);x=In({inputs:{x},backend:n,attrs:{perm:w}})}return l.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}var wse={kernelName:Tc,backendName:"webgl",kernelFunc:vse},kse=[xJ,wJ,SJ,CJ,EJ,FJ,RJ,PJ,BJ,VJ,HJ,KJ,ZJ,t9,r9,i9,l9,d9,m9,g9,v9,C9,E9,$9,O9,z9,U9,nJ,j9,Z9,tQ,oQ,uQ,cQ,hQ,fQ,yQ,wQ,SQ,NQ,_Q,AQ,DQ,MQ,zQ,WQ,GQ,qQ,XQ,QQ,aee,oee,pee,hee,mee,gee,yee,vee,kee,See,_ee,$ee,Ree,Pee,zee,Vee,jee,Yee,tJ,Jee,X9,tte,rte,ote,rJ,cte,fte,bte,wte,Ste,_te,$te,Mte,zte,Vte,Gte,Kte,Yte,Jte,nne,rne,ine,lne,pne,mne,yne,kne,Ane,oJ,Rne,One,Bne,Une,D9,jne,Kne,Yne,Qne,aae,iJ,sae,oae,uae,pae,R9,Nne,hae,bae,wae,uJ,Tae,_ae,Fae,Mae,zae,Wae,Gae,qae,Xae,Jae,tre,rre,lre,cre,mre,bre,T9,_ne,vre,kre,Sre,Nre,_re,Are,Fre,Rre,Pre,zre,Wre,Ure,jre,Kre,Yre,Jre,Cne,gJ,tse,rse,ose,cse,mse,bJ,gse,yse,wse,qne];for(let e of kse)Nc(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 oc;(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"})(oc||(oc={}));var $E;function Ise(e){$E=e.wasm.cwrap(Qs,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Sse(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=oc[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let b=l?r.shape[2]:r.shape[1],y=u?s.shape[1]:s.shape[2],x=Mu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),w=n.makeOutput([...x,b,y],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 $E(c,T,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),w}var Tse={kernelName:Qs,backendName:"wasm",setupFunc:Ise,kernelFunc:Sse};function nn(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 Nse=nn($l);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),b=new Uint8Array(new Int32Array(p.shape).buffer),y=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,b,p.shape.length,Et[u.dtype],y),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var Cse=!0,_se=cn(fs,Cse),FE;function Ese(e){FE=e.wasm.cwrap(fi,null,["array","number","number","number"])}function Ase(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 FE(s,r.length,Et[a.dtype],i),a}var $se={kernelName:fi,backendName:"wasm",setupFunc:Ese,kernelFunc:Ase};function Zf(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var Fse={kernelName:Ri,backendName:"wasm",kernelFunc:Zf},DE;function Dse(e){DE=e.wasm.cwrap(_r,null,["number","array","number","number","number","array","number"])}function ds(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=Mse(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 Pse={kernelName:_r,backendName:"wasm",kernelFunc:ds,setupFunc:Dse};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 Xse={kernelName:yu,backendName:"wasm",kernelFunc:zn},LE;function Yse(e){LE=e.wasm.cwrap(yi,null,["number","array","number","number","array","number","number","number","number"])}function Zse(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),b=v.sizeFromShape(f),y=Mu.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?[b,h,d]:[b,d,h],I=zn({inputs:{x:r},backend:n,attrs:{shape:x}}),T=zn({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,b),S=n.makeOutput([F,A,R],I.dtype),M=n.dataIdMap.get(S.dataId).id,W=new Uint8Array(new Int32Array(I.shape).buffer),U=new Uint8Array(new Int32Array(T.shape).buffer);return LE(C,W,I.shape.length,E,U,T.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(T.dataId),S.shape=y,S}var Jse={kernelName:yi,backendName:"wasm",setupFunc:Yse,kernelFunc:Zse};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=Zh(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)Qse(l,p[0],c,s,i);else if(h===3)eie(l,p[0],p[1],c,s,i);else if(h===4)tie(l,p[0],p[1],p[2],c,s,i);else{let m=Zh(l,s,i,t.shape,t.dtype);c.set(m)}return u}function Qse(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;ub*y),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=zn({inputs:{x:r},backend:n,attrs:{shape:l}}),m=ds({inputs:{x:h},backend:n,attrs:{perm:u}}),f=zn({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 rie={kernelName:Wl,backendName:"wasm",kernelFunc:aie};function tp(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 sie={kernelName:xi,backendName:"wasm",kernelFunc:tp},iie=nn(vi),zE;function oie(e){zE=e.wasm.cwrap(gs,null,["number","number","number","number"])}function lie(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 zE(o,s,i,u),l}var uie={kernelName:gs,backendName:"wasm",setupFunc:oie,kernelFunc:lie};function BE(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 Zf({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 zn({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=D0(m,s,t[0].dtype,f),b=N.computeOutShape(i.map(x=>x.shape),a);o.shape=b;let y=n.dataIdMap.get(o.dataId);return y.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=ds({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;GE(m,i?1:0,o?1:0,h,f,Et[r.dtype]);let g=c;if(u!==null){let b=N.getUndoAxesPermutation(u);g=ds({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Sie={kernelName:Ul,backendName:"wasm",setupFunc:kie,kernelFunc:Iie},HE;function Tie(e){HE=e.wasm.cwrap(Ti,null,["number","number","number","number","number","number"])}function Nie(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=ds({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;HE(m,i?1:0,o?1:0,h,f,Et[r.dtype]);let g=c;if(u!==null){let b=N.getUndoAxesPermutation(u);g=ds({inputs:{x:c},attrs:{perm:b},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Cie={kernelName:Ti,backendName:"wasm",setupFunc:Tie,kernelFunc:Nie},jE;function _ie(e){jE=e.wasm.cwrap(Hl,null,["number","number","number","array","number","array","array","number","number"])}function Eie(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,b=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),y=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(v.computeStrides(m)).buffer),w=t.dataIdMap.get(f.dataId).id;return jE(g,s,i==="NHWC"?1:0,b,r.shape.length-1,y,x,m.length,w),f}var Aie={kernelName:Hl,backendName:"wasm",setupFunc:_ie,kernelFunc:Eie},qE;function $ie(e){qE=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 Fie(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,b=h.padInfo.right,y=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 qE(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,b,y,x,R,w,I,T,C,E,A,S),F}var Die={kernelName:Ni,backendName:"wasm",setupFunc:$ie,kernelFunc:Fie},Rie=nn(_i),Mie=!1,Pie=cn(ql,Mie,"bool"),Oie=nn(Ei,"float32");function vx(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),zn({inputs:{x:r},backend:a,attrs:{shape:o}})}var Lie={kernelName:Kl,backendName:"wasm",kernelFunc:vx};function KE(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 zie={kernelName:mc,backendName:"wasm",kernelFunc:KE},XE;function Bie(e){XE=e.wasm.cwrap(Yl,null,["number","number","number","number","number","number"])}function Wie(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 XE(s,o,l,u,p,i),r}var Vie={kernelName:Yl,backendName:"wasm",kernelFunc:Wie,setupFunc:Bie},Uie=nn(Ai),Gie=!1,Hie=cn($i,Gie),YE;function jie(e){YE=e.wasm.cwrap(Fi,null,["number","number","number","number","number","number","number"])}function qie(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 YE(p,d,c,h,m,r,g),f}var Kie={kernelName:Fi,backendName:"wasm",setupFunc:jie,kernelFunc:qie},ZE;function Xie(e){ZE=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 Yie(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=oc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=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,W=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(b,q,K,Z,y,I,T,w,C,E,A,R,G,F,S,M,W,U,x,g,ae,m||0,ee),Q}var Zie={kernelName:ei,backendName:"wasm",setupFunc:Xie,kernelFunc:Yie},JE;function Jie(e){JE=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 Qie(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=oc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let b=a.dataIdMap.get(r.dataId).id,y=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,W=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 JE(b,q,K,Z,y,I,T,w,C,E,A,R,G,F,S,M,W,U,x,g,ae,m||0,ee),Q}var eoe={kernelName:ti,backendName:"wasm",setupFunc:Jie,kernelFunc:Qie},QE;function toe(e){QE=e.wasm.cwrap(Jl,null,["number","number","number","number","number","number","array","number"])}function noe(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Wx.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 QE(c,Et[a.dtype],h,i,d,o,m,f),u}var aoe={kernelName:Jl,backendName:"wasm",setupFunc:toe,kernelFunc:noe},eA;function roe(e){eA=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function soe(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=zn({inputs:{x:r},attrs:{shape:[d.batchSize,d.outerSize,d.dimSize,d.sliceSize]},backend:t}),h=v.sizeFromShape(s.shape),m=zn({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 b=c.shape.length-1,y=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 eA(y,Et[r.dtype],I,b,x,d.batchSize,T,w),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var ioe={kernelName:Zl,backendName:"wasm",setupFunc:roe,kernelFunc:soe},ooe=!1,loe=cn(Ql,ooe,"bool"),uoe=!1,poe=cn(Di,uoe,"bool"),tA;function coe(e){tA=e.wasm.cwrap(Mi,null,["number","number","number","number"])}function doe(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;tA(r,Et[t.dtype],n,i)}return s}var hoe={kernelName:Mi,backendName:"wasm",setupFunc:coe,kernelFunc:doe},moe=!1,foe=cn(au,moe,"bool"),goe=!1,boe=cn(ru,goe,"bool"),yoe=nn(Pi),xoe=!1,voe=cn(iu,xoe,"bool"),woe=nn(ou),koe=!1,Ioe=cn(lu,koe,"bool"),Soe=!1,Toe=cn(KI,Soe,"bool"),nA;function Noe(e){nA=e.wasm.cwrap(Oi,null,["number","number","number","number"])}function Coe(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 y=t.dataIdMap.get(u.dataId).id;l=u,o=y}let h=l.shape.length;N.assertAxesAreInnerMostDims("max",p,h);let[m,f]=N.computeOutAndReduceShapes(l.shape,p),g=v.sizeFromShape(f),b=t.makeOutput(m,i.dtype);if(v.sizeFromShape(l.shape)!==0){let y=t.dataIdMap.get(b.dataId).id;nA(o,Et[i.dtype],g,y)}if(c&&t.disposeData(u.dataId),s){let y=N.expandShapeToKeepDim(b.shape,d);b.shape=y}return b}var _oe={kernelName:Oi,backendName:"wasm",setupFunc:Noe,kernelFunc:Coe},Eoe=!1,Aoe=cn(Li,Eoe),aA;function $oe(e){aA=e.wasm.cwrap(zi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Foe(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,b=p.dilationHeight,y=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 aA(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,b,y,x,w,I,T,E),C}var Doe={kernelName:zi,backendName:"wasm",setupFunc:$oe,kernelFunc:Foe},rA;function Roe(e){rA=e.wasm.cwrap(Bi,null,["number, number, number"])}function Moe(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),b=v.sizeFromShape(g),y=u;u.dtype!=="float32"&&(y=tp({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(y.dataId).id);let x=t.makeOutput(f,"float32");if(v.sizeFromShape(u.shape)!==0){let w=t.dataIdMap.get(x.dataId).id;rA(l,b,w)}if(h&&t.disposeData(p.dataId),s){let w=N.expandShapeToKeepDim(x.shape,c);x.shape=w}return u.dtype!=="float32"&&t.disposeData(y.dataId),x}var Poe={kernelName:Bi,backendName:"wasm",setupFunc:Roe,kernelFunc:Moe},sA;function Ooe(e){sA=e.wasm.cwrap(Wi,null,["number","number","number","number"])}function Loe(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),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;sA(l,Et[i.dtype],b,x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var zoe={kernelName:Wi,backendName:"wasm",setupFunc:Ooe,kernelFunc:Loe},Boe=!1,Woe=cn(Vi,Boe),wx;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(wx||(wx={}));var iA;function Voe(e){iA=e.wasm.cwrap(Ui,null,["number","array","number","number","array","array","number","number"])}function Uoe(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 iA(i,u,t.shape.length,Et[t.dtype],c,h,wx[r],l),o}var Goe={kernelName:Ui,backendName:"wasm",kernelFunc:Uoe,setupFunc:Voe},Hoe=!0,joe=cn(Gi,Hoe),qoe=nn(pu);function s1(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 oA;function Koe(e){oA=e.wasm.cwrap(du,"number",["number","number","number","number","number"])}function Xoe(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=oA(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=s1(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var Yoe={kernelName:du,backendName:"wasm",setupFunc:Koe,kernelFunc:Xoe},lA;function Zoe(e){lA=e.wasm.cwrap(hu,"number",["number","number","number","number","number","bool"])}function Joe(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=lA(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=s1(t,c);t.wasm._free(f);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([],"int32",g);return[b,y]}var Qoe={kernelName:hu,backendName:"wasm",setupFunc:Zoe,kernelFunc:Joe},uA;function ele(e){uA=e.wasm.cwrap(mu,"number",["number","number","number","number","number","number"])}function tle(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=uA(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=s1(t,c);t.wasm._free(g);let b=t.makeOutput([m],"int32",h),y=t.makeOutput([m],"float32",f);return[b,y]}var nle={kernelName:mu,backendName:"wasm",setupFunc:ele,kernelFunc:tle},ale=!1,rle=cn(cu,ale,"bool"),pA;function sle(e){pA=e.wasm.cwrap(Hi,null,["number","number","number","number","number"])}function ile(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 pA(d,i,o,l,p),u}var ole={kernelName:Hi,backendName:"wasm",setupFunc:sle,kernelFunc:ile};function lle(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var ule={kernelName:fu,backendName:"wasm",kernelFunc:lle};function ple(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return vx({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=vx({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=BE({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var cle={kernelName:gu,backendName:"wasm",kernelFunc:ple},cA;function dle(e){cA=e.wasm.cwrap(ji,null,["number","array","number","number","array","array","number","number"])}function hle(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 KE({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 cA(i,u,t.shape.length,Et[t.dtype],c,h,r,l),o}var dA={kernelName:ji,backendName:"wasm",kernelFunc:hle,setupFunc:dle},mle=!1,fle=cn(qi,mle),hA;function gle(e){hA=e.wasm.cwrap(Ki,null,["number","number","number"])}function ble(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=tp({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 hA(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var yle={kernelName:Ki,backendName:"wasm",setupFunc:gle,kernelFunc:ble},mA;function xle(e){mA=e.wasm.cwrap(Xi,null,["number","number","number","number"])}function vle(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),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;mA(l,b,Et[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var wle={kernelName:Xi,backendName:"wasm",setupFunc:xle,kernelFunc:vle},kle=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=P0(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},Ile={kernelName:bc,backendName:"wasm",kernelFunc:kle},Sle=!0,Tle=cn(Ci,Sle),Nle=nn(Yi),Cle=nn(Qi),fA;function _le(e){fA=e.wasm.cwrap(Ji,null,["number","number","number","number","number","number","number","number","number","number"])}function Ele(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=tp({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let b=f.id,y=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return y;let x=t.dataIdMap.get(y.dataId).id;return fA(b,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),y}var Ale={kernelName:Ji,backendName:"wasm",setupFunc:_le,kernelFunc:Ele},gA;function $le(e){gA=e.wasm.cwrap(Zi,null,["number","number","number","number","number","number","number","number","number","number"])}function Fle(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),b;g.dtype!=="float32"&&(b=tp({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(b.dataId));let y=g.id,x=t.dataIdMap.get(f.dataId).id;return gA(y,p,d,c,h,l,u,s?1:0,i?1:0,x),b!=null&&t.disposeData(b.dataId),f}var Dle={kernelName:Zi,backendName:"wasm",setupFunc:$le,kernelFunc:Fle},bA;function Rle(e){bA=e.wasm.cwrap(eo,null,["number","array","number","array","number","number"])}function Mle(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 Zf({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);bA(l,p,i.length,d,r.shape.length,u);let c=zn({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),c}var Ple={kernelName:eo,backendName:"wasm",kernelFunc:Mle,setupFunc:Rle},yA;function Ole(e){yA=e.wasm.cwrap(Ru,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Lle(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),b=i===0,y=255,x=typeof i=="number"?[i,i,i,b?0:y]:[...i,y],w=new Uint8Array(new Int32Array(x).buffer);return yA(u,d,c,h,m,s,f,g,w,x.length,p),l}var zle={kernelName:Ru,backendName:"wasm",kernelFunc:Lle,setupFunc:Ole},Ble=nn(to),Wle=nn(no),xA;function Vle(e){xA=e.wasm.cwrap(xu,null,["number","number","number","number","number","number","array","number","number"])}function Ule(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}=Vx.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 xA(h,m,Et[s.dtype],l,u,p,f,c,g),o}var Gle={kernelName:xu,backendName:"wasm",setupFunc:Vle,kernelFunc:Ule},vA;function Hle(e){vA=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function jle(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 vA(i,o,l,h,p),u}var qle={kernelName:vu,backendName:"wasm",kernelFunc:jle,setupFunc:Hle},wA;function Kle(e){wA=e.wasm.cwrap(ro,null,["number","number"])}function Xle(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||wA(a,s),r}var Yle={kernelName:"Sigmoid",backendName:"wasm",setupFunc:Kle,kernelFunc:Xle},Zle=nn(ao),kA;function Jle(e){kA=e.wasm.cwrap(oo,null,["number","number","number","number"])}function Qle(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||kA(r,i,o,l),s}var eue={kernelName:oo,backendName:"wasm",setupFunc:Jle,kernelFunc:Qle};function tue(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(C.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"),b=n.dataIdMap.get(g.dataId).id;V$(d,At[r.dtype],r.shape[0],c,h,f,b,t,0);let y=n.readSync(g.dataId),x;switch(y[0]){case 0:{x=C.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=C.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=C.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y[1],y[2]);break;case 3:x=C.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(y[1],y[2],y[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function $ue(e){return G$(e,!0)}var Aue={kernelName:Mc,backendName:"wasm",setupFunc:U$,kernelFunc:$ue};function Fue(e){return G$(e,!1)}var Due={kernelName:Pc,backendName:"wasm",setupFunc:U$,kernelFunc:Fue};function Rue(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=C.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=ki({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var Mue={kernelName:zu,backendName:"wasm",kernelFunc:Rue},Pue=rn(fo),Oue=rn(Oc),Lue=!0,zue=dn(yo,Lue),H$;function Wue(e){H$=e.wasm.cwrap(ks,null,["number","number","number","number"])}function Bue(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 H$(i,r,At[s.dtype],l),o}var Vue={kernelName:ks,backendName:"wasm",setupFunc:Wue,kernelFunc:Bue},j$;function Uue(e){j$=e.wasm.cwrap(Bu,null,["number","array","number","array","array","array","array","array","number","number"])}function Gue(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:b,begin:y,end:x,strides:w}=qt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=Un({inputs:{x:r},backend:t,attrs:{shape:m}});else if(g||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let N=qt.computeOutShape(y,x,w),_=ki({inputs:{x:r},backend:t,attrs:{begin:y,size:N}});I=Un({inputs:{x:_},backend:t,attrs:{shape:m}}),t.disposeData(_.dataId)}else{let N=t.makeOutput(h,"float32"),_=t.dataIdMap.get(r.dataId).id,$=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),A=new Uint8Array(new Int32Array(y).buffer),M=new Uint8Array(new Int32Array(x).buffer),D=new Uint8Array(new Int32Array(w).buffer),T=new Uint8Array(new Int32Array(h).buffer),P=new Uint8Array(new Int32Array(v.computeStrides(h)).buffer),U=t.dataIdMap.get(N.dataId).id;j$(_,$,r.shape.length,A,M,D,T,P,h.length,U),I=Un({inputs:{x:N},backend:t,attrs:{shape:m}}),t.disposeData(N.dataId)}return I}var Hue={kernelName:Bu,backendName:"wasm",setupFunc:Uue,kernelFunc:Gue};function jue(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]=a1(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),b=t.dataIdMap.get(g.dataId);b.stringBytes=m;let y=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(y).set(f),[g,y]}var que={kernelName:Lc,backendName:"wasm",kernelFunc:jue};function Kue(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]=r1(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 Xue={kernelName:zc,backendName:"wasm",kernelFunc:Kue};function Yue(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=s1(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var Zue={kernelName:Wc,backendName:"wasm",kernelFunc:Yue},Jue=!0,Que=dn(xo,Jue),q$;function epe(e){q$=e.wasm.cwrap(go,null,["number","number","number","number"])}function tpe(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}=Ds(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=C.getInnerMostAxes(m.length,u.shape.length))}C.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=C.computeOutAndReduceShapes(u.shape,m),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;q$(l,b,At[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=C.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var npe={kernelName:go,backendName:"wasm",setupFunc:epe,kernelFunc:tpe},ape=rn(vo),rpe=rn(wo),K$;function spe(e){K$=e.wasm.cwrap(ws,null,["number","array","number","array","number","number"])}function ipe(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 X$(i,o,a.shape.length,At[a.dtype],r,s,p,c),[u,d]},ppe={kernelName:Vu,backendName:"wasm",setupFunc:lpe,kernelFunc:upe},Y$;function cpe(e){Y$=e.wasm.cwrap(Uu,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function dpe(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],b=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),y=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,N=t.dataIdMap.get(s.dataId).id,_=i==="nearest"?1:2,$;switch(o){case"constant":$=1;break;case"reflect":$=2;break;case"wrap":$=3;break;case"nearest":$=4;break;default:$=1;break}return Y$(I,N,s.shape[0]>1,p,m,f,h,c,d,b,r.shape.length-1,y,g.length-1,_,$,l,w),x}var hpe={kernelName:Uu,backendName:"wasm",setupFunc:cpe,kernelFunc:dpe};function mpe(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 fpe={kernelName:Gu,backendName:"wasm",kernelFunc:mpe};function gpe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var bpe={kernelName:Hu,backendName:"wasm",kernelFunc:gpe},ype=[jse,qse,Xse,Jse,iie,uie,die,fie,xie,Sie,Nie,Cie,$ie,Aie,Rie,Oie,Lie,zie,Vie,Hie,Kie,Zie,eoe,toe,aoe,roe,soe,ioe,uoe,poe,doe,foe,yoe,woe,Toe,Coe,Eoe,Aoe,Qse,Roe,Poe,Loe,zoe,Boe,Voe,Goe,joe,Xoe,Zoe,ele,ale,ile,lle,cle,hle,mle,ble,vle,Ile,Sle,_le,$le,Fle,E$,Ple,zle,Vle,Gle,jle,qle,Kle,gie,Zle,eue,aue,iue,oue,lue,cue,mue,bue,yue,Iie,wue,Iue,Nue,Eue,Aue,Due,Mue,Pue,Oue,zue,Vue,Hue,que,Xue,Zue,Que,npe,ape,rpe,ope,ppe,hpe,aie,fpe,bpe];for(let e of ype)Vc(e);var Vx=X();Vx.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>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])));Vx.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Vx.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 YI=bs(rD()),xpe=bs(sD()),ZI=bs(iD()),JI=YI.default||YI,vpe=ZI.default||ZI,Z$=class extends Tc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(J$),Ux=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new Em(this,ir())}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 Ipe(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 wpe(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 QI(e,t,n){if(Cm!=null)return Cm;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),sc!=null&&sc[a]!=null?sc[a]:n+a}async function kpe(){let[e,t]=await Promise.all([X().getAsync("WASM_HAS_SIMD_SUPPORT"),X().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=xpe.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?QI(e,t,nc!=null?nc:l):l+o},T1&&(r.instantiateWasm=wpe(QI(e,t,nc!=null?nc:"")));let s=!1;r.onAbort=()=>{s||ic||(ic=!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&&Cm==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+JI.toString()],{type:"text/javascript"}),i=JI(r)):i=vpe(r),i.then(o=>{s=!0,ic=!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 Ipe(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 Tpe=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],Cm=null,nc=null,sc={},ic=!1,T1=!1;function Spe(e,t=!1){if(iv("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),ic)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");Cm=e,T1=t}function Npe(e,t=!1){if(ic)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")nc=e;else{sc=e;let n=Tpe.filter(a=>sc[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.`)}T1=t}var J$=-1,Ux=-1;function Cpe(e){J$=e}function _pe(){if(Ux===-1)throw new Error("WASM backend not initialized.");return Ux}var Epe="3.20.0",$pe=2;cf("wasm",async()=>{let{wasm:e}=await kpe();return new Z$(e)},$pe);var Ape="3.20.0",Fpe="3.20.0",Dpe="3.20.0",Rpe="3.20.0",Mpe="3.20.0",Ppe="3.20.0",Ope="3.20.0",Lpe="3.20.0",zpe={tfjs:Ape,"tfjs-core":Fpe,"tfjs-data":Dpe,"tfjs-layers":Rpe,"tfjs-converter":Mpe,"tfjs-backend-cpu":Ppe,"tfjs-backend-webgl":Ope,"tfjs-backend-wasm":Lpe};var X1={};Nh(X1,{AnchorPosition:()=>W1,DrawBox:()=>Cd,DrawBoxOptions:()=>Sg,DrawFaceLandmarks:()=>Pg,DrawFaceLandmarksOptions:()=>Mg,DrawTextField:()=>Br,DrawTextFieldOptions:()=>bp,drawContour:()=>Lr,drawDetections:()=>Kpe,drawFaceExpressions:()=>Qpe,drawFaceLandmarks:()=>tce});function Lr(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 _1={};Nh(_1,{computeReshapedDimensions:()=>C1,getCenterPoint:()=>Ro,isDimensions:()=>Ig,isEven:()=>kg,isFloat:()=>N1,isTensor:()=>Fo,isTensor1D:()=>Wpe,isTensor2D:()=>S1,isTensor3D:()=>zr,isTensor4D:()=>va,isValidNumber:()=>tr,isValidProbablitiy:()=>mp,range:()=>vr,round:()=>Do});var bn=class{constructor(t,n){if(!tr(t)||!tr(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 bn(1/this.width,1/this.height)}};function Fo(e,t){return e instanceof $e&&e.shape.length===t}function Wpe(e){return Fo(e,1)}function S1(e){return Fo(e,2)}function zr(e){return Fo(e,3)}function va(e){return Fo(e,4)}function N1(e){return e%1!==0}function kg(e){return e%2===0}function Do(e,t=2){let n=10**t;return Math.floor(e*n)/n}function Ig(e){return e&&e.width&&e.height}function C1({width:e,height:t},n){let a=n/Math.max(t,e);return new bn(Math.round(e*a),Math.round(t*a))}function Ro(e){return e.reduce((t,n)=>t.add(n),new Pe(0,0)).div(new Pe(e.length,e.length))}function vr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function tr(e){return!!e&&e!==1/0&&e!==-1/0&&!Number.isNaN(e)||e===0}function mp(e){return tr(e)&&e>=0&&e<=1}var Pe=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new Pe(this.x+t.x,this.y+t.y)}sub(t){return new Pe(this.x-t.x,this.y-t.y)}mul(t){return new Pe(this.x*t.x,this.y*t.y)}div(t){return new Pe(this.x/t.x,this.y/t.y)}abs(){return new Pe(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new Pe(Math.floor(this.x),Math.floor(this.y))}};var lt=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(tr)}static assertIsValidBox(t,n,a=!1){if(!lt.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(tr),s=[a.x,a.y,a.width,a.height].every(tr);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];lt.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 Pe(this.left,this.top)}get topRight(){return new Pe(this.right,this.top)}get bottomLeft(){return new Pe(this.left,this.bottom)}get bottomRight(){return new Pe(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 lt({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 lt({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 lt({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 Mo=class extends lt{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var Wr=class{constructor(t,n,a,r,s){this._imageDims=new bn(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new lt(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 lt(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new Wr(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var xt=class extends Wr{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 E1(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 $1(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 nr(e,t){return O(()=>{let[n,a,r]=t,s=$n([...e.shape.slice(0,3),1],n,"float32"),i=$n([...e.shape.slice(0,3),1],a,"float32"),o=$n([...e.shape.slice(0,3),1],r,"float32"),l=Qe([s,i,o],3);return ce(e,l)})}function F1(e,t=!1){return O(()=>{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,$n(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 Qe(d,i)})}function Bpe(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 Sd(e){return 1/(1+Math.exp(-e))}function Vpe(e){return Math.log(e/(1-e))}var Po=class extends lt{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var Upe=.5,Gpe=.43,Hpe=.45,ra=class{constructor(t,n,a=new Pe(0,0)){let{width:r,height:s}=n;this._imgDims=new bn(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new Pe(r,s)).add(a))}get shift(){return new Pe(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 Pe(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 Pe(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 lt(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/Hpe),l=Ro(t),u=Math.floor(Math.max(0,l.x-Upe*o)),p=Math.floor(Math.max(0,l.y-Gpe*o));return new Po(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=$1(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var D1=class extends ra{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Ro([t[3],t[4]])]}};var Oo=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(Ro)}};var fp=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?` (${Do(this.distance)})`:""}`}};var gp=class extends lt{constructor(n,a){super(n);this._label=a}static assertIsValidLabeledBox(n,a){if(lt.assertIsValidBox(n,a),!tr(n.label))throw new Error(`${a} - expected property label (${n.label}) to be a number`)}get label(){return this._label}};var wr=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 wr(t.label,n)}};var R1=class extends gp{constructor(n,a,r,s){super(n,a);this._score=r,this._classScore=s}static assertIsValidPredictedBox(n,a){if(gp.assertIsValidLabeledBox(n,a),!mp(n.score)||!mp(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 kr(e){return e.detection instanceof xt}function Lo(e,t){return{...e,...{detection:t}}}function M1(){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 Nd(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function Tg(e){let t="";if(!e&&Nd())try{e=MF("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 P1(){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=Tg();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 O1(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var sn;function jpe(){if(!sn)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return sn}function L1(e){sn=e}function z1(){return O1()?L1(M1()):Nd()?L1(P1()):null}function qpe(e){if(sn||z1(),!sn)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=sn.Canvas,Image:n=sn.Image}=e;sn.Canvas=t,sn.Image=n,sn.createCanvasElement=e.createCanvasElement||(()=>new t),sn.createImageElement=e.createImageElement||(()=>new n),sn.ImageData=e.ImageData||sn.ImageData,sn.Video=e.Video||sn.Video,sn.fetch=e.fetch||sn.fetch,sn.readFile=e.readFile||sn.readFile}var et={getEnv:jpe,setEnv:L1,initialize:z1,createBrowserEnv:M1,createFileSystem:Tg,createNodejsEnv:P1,monkeyPatch:qpe,isBrowser:O1,isNodejs:Nd};z1();function zo(e){return!et.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function Kn(e){let{Canvas:t,CanvasRenderingContext2D:n}=et.getEnv();if(e instanceof n)return e;let a=zo(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 W1=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(W1||{}),bp=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}},Br=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof Br?t.text:t,this.anchor=n,this.options=new bp(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 Sg=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 bp({...i,...s})}},Cd=class{constructor(t,n={}){this.box=new lt(t),this.options=new Sg(n)}draw(t){let n=Kn(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 Br([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function Kpe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof xt?a.score:kr(a)?a.detection.score:void 0,s=a instanceof xt?a.box:kr(a)?a.detection.box:new lt(a),i=r?`${Do(r)}`:void 0;new Cd(s,{label:i}).draw(e)})}function _d(e){let{Image:t,Video:n}=et.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function B1(e){return new Promise((t,n)=>{(e instanceof et.getEnv().Canvas||_d(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 V1(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 Wo(e){let{Image:t,Video:n}=et.getEnv();return e instanceof t?new bn(e.naturalWidth,e.naturalHeight):e instanceof n?new bn(e.videoWidth,e.videoHeight):new bn(e.width,e.height)}function Bo({width:e,height:t}){let{createCanvasElement:n}=et.getEnv(),a=n();return a.width=e,a.height=t,a}function Ed(e,t){let{ImageData:n}=et.getEnv();if(!(e instanceof n)&&!_d(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||Wo(e),s=Bo({width:a,height:r});return e instanceof n?Kn(s).putImageData(e,0,0):Kn(s).drawImage(e,0,0,a,r),s}async function U1(e,t){let n=t||et.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(va(e)?1:0),i=O(()=>e.as3D(a,r,s).toInt());return await ko.toPixels(i,n),i.dispose(),n}function Ng(e){let{Image:t,Canvas:n,Video:a}=et.getEnv();return e instanceof t||e instanceof n||e instanceof a}function G1(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 Bo({width:1,height:1});let s=Wo(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=Bo({width:t,height:t}),p=e instanceof r?e:Ed(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&Kn(u).drawImage(p,c,h,o,l),u}var Ir=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(zr(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 et.getEnv().Canvas?a:Ed(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 vr(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 C1({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,O(()=>{let a=vr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof $e){let o=va(i)?i:mn(i);return o=F1(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Er.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof et.getEnv().Canvas)return ko.fromPixels(G1(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return Rt(a.map(s=>le(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function vt(e){if(e instanceof Ir)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(zo);return a.forEach((r,s)=>{if(!Ng(r)&&!zr(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=>Ng(r)&&B1(r))),new Ir(a,Array.isArray(e))}async function yp(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 U1(o)}let r=Kn(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=Bo({width:l,height:u});return l>0&&u>0&&Kn(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function xp(e,t){if(!zr(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 O(()=>{let[n,a,r]=e.shape.slice(va(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})=>To(e.as3D(n,a,r),[l,o,0],[p,u,r]))})}async function Vr(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 Xpe(e){let t=await Vr(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 V1(n)}async function H1(e){return(await Vr(e)).json()}async function Ype(e){return new Float32Array(await(await Vr(e)).arrayBuffer())}function Q$(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 Zpe(e){let t=await Vr(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 Q$(n)}function Cg(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 j1(e,t){let{manifestUri:n,modelBaseUri:a}=Cg(e,t),r=await H1(n);return Nn.loadWeights(r,a)}function Jpe(e,t,n=!1){let{width:a,height:r}=n?Wo(t):t;return e.width=a,e.height=r,{width:a,height:r}}var on=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 us)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof us))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=Bn(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 j1(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}=Cg(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>d.buffer))),i=Nn.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 $e))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Xn(e,t,n){return O(()=>{let a=Es(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=Q(a,t.bias),a})}function _g(e,t,n=!1){return O(()=>{let a=Xe(n?Q(Dt(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Xn(e,t.conv0,[2,2])),r=Xn(a,t.conv1,[1,1]),s=Xe(Q(a,r)),i=Xn(s,t.conv2,[1,1]);return Xe(Q(a,Q(r,i)))})}function $d(e,t,n=!1,a=!0){return O(()=>{let r=Xe(n?Q(Dt(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Xn(e,t.conv0,a?[2,2]:[1,1])),s=Xn(r,t.conv1,[1,1]),i=Xe(Q(r,s)),o=Xn(i,t.conv2,[1,1]),l=Xe(Q(r,Q(s,o))),u=Xn(l,t.conv3,[1,1]);return Xe(Q(r,Q(s,Q(o,u))))})}function Vo(e,t,n="same",a=!1){return O(()=>{let r=Q(Dt(e,t.filters,[1,1],n),t.bias);return a?Xe(r):r})}function Dn(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function vp(e,t){return(n,a,r,s)=>{let i=Fa(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 Eg(e,t){return(n,a,r)=>{let s=Ea(e(n*a),[n,a]),i=Ke(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var Ad=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function wp(e,t){return(n,a,r)=>{let s=Fa(e(9*n),[3,3,n,1]),i=Fa(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 Ad(s,i,o)}}function kp(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new Ad(n,a,r)}}function sa(e,t){return(n,a,r)=>{let s=e[n];if(!Fo(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 Rn(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 $g(e,t){let n=vp(e,t),a=wp(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 eA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Rn(e),{extractDenseBlock4Params:r}=$g(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 Ag(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function Fg(e,t){let n=sa(e,t),a=Ag(n),r=kp(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 tA(e){let t=[],{extractDenseBlock4Params:n}=Fg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return Dn(e,t),{params:a,paramMappings:t}}var Ip=class extends on{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return O(()=>{let a=le(t.toBatchTensor(112,!0),"float32"),s=nr(a,[122.782,117.001,104.298]).div(255),i=$d(s,n.dense0,!0);return i=$d(i,n.dense1),i=$d(i,n.dense2),i=$d(i,n.dense3),i=ba(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 tA(t)}extractParams(t){return eA(t)}};function Fd(e,t){return O(()=>Q(Re(e,t.weights),t.bias))}function nA(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=Rn(e),o=Eg(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 aA(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 Dn(e,t),{params:r,paramMappings:t}}function Dg(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 Tp=class extends on{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 O(()=>{let r=n instanceof Ir?this.faceFeatureExtractor.forwardInput(n):n;return Fd(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 nA(n,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=Dg(n);return this.faceFeatureExtractor.loadFromWeightMap(a),aA(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 q1=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Ur=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}`);q1.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return q1.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var Dd=class extends Tp{constructor(t=new Ip){super("FaceExpressionNet",t)}forwardInput(t){return O(()=>Qa(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(mt(a).map(async i=>{let o=i.dataSync();return i.dispose(),o}));a.dispose();let s=r.map(i=>new Ur(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function K1(e){return e.expressions instanceof Ur}function Rg(e,t){return{...e,...{expressions:t}}}function Qpe(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Ur?s:K1(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=kr(s)?s.detection.box.bottomLeft:a||new Pe(0,0);new Br(l.map(d=>`${d.expression} (${Do(d.probability)})`),u).draw(e)})}function Uo(e){return kr(e)&&e.landmarks instanceof ra&&e.unshiftedLandmarks instanceof ra&&e.alignedRect instanceof xt}function ece(e){let t=(o,l,u,p)=>Math.atan2(p-l,u-o)%Math.PI,n=o=>o*180/Math.PI,a={roll:void 0,pitch:void 0,yaw:void 0};if(!e||!e._positions||e._positions.length!==68)return a;let r=e._positions;a.roll=-t(r[36]._x,r[36]._y,r[45]._x,r[45]._y),a.pitch=t(0,Math.abs(r[0]._x-r[30]._x)/r[30]._x,Math.PI,Math.abs(r[16]._x-r[30]._x)/r[30]._x);let s=r.reduce((o,l)=>oo>l._y?o:l._y,-1/0);return a.yaw=Math.PI*(e._imgDims._height/(i-s)/1.4-1),a}function Sp(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=ece(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var Mg=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)"}},Pg=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new Mg(n)}draw(t){let n=Kn(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof Oo&&(n.strokeStyle=i,n.lineWidth=s,Lr(n,this.faceLandmarks.getJawOutline()),Lr(n,this.faceLandmarks.getLeftEyeBrow()),Lr(n,this.faceLandmarks.getRightEyeBrow()),Lr(n,this.faceLandmarks.getNose()),Lr(n,this.faceLandmarks.getLeftEye(),!0),Lr(n,this.faceLandmarks.getRightEye(),!0),Lr(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 tce(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof ra?a:Uo(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new Pg(r).draw(e)})}var rA="1.7.4";function rce(e,t){let n=vp(e,t),a=wp(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 sA(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=Rn(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=rce(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={};vr(t,0,1).forEach(b=>{h[`main_block_${b}`]=l(128,`middle_flow/main_block_${b}`)});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 sce(e,t){let n=sa(e,t),a=Ag(n),r=kp(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 iA(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=sce(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={};vr(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 Dn(e,n),{params:{entry_flow:p,middle_flow:d,exit_flow:m},paramMappings:n}}function oA(e,t,n){return Q(Dt(e,t.filters,n,"same"),t.bias)}function Y1(e,t,n=!0){let a=n?Xe(e):e;return a=Xn(a,t.separable_conv0,[1,1]),a=Xn(Xe(a),t.separable_conv1,[1,1]),a=Mt(a,[3,3],[2,2],"same"),a=Q(a,oA(e,t.expansion_conv,[2,2])),a}function ice(e,t){let n=Xn(Xe(e),t.separable_conv0,[1,1]);return n=Xn(Xe(n),t.separable_conv1,[1,1]),n=Xn(Xe(n),t.separable_conv2,[1,1]),n=Q(n,e),n}var Og=class extends on{constructor(n){super("TinyXception");this._numMainBlocks=n}forwardInput(n){let{params:a}=this;if(!a)throw new Error("TinyXception - load model before inference");return O(()=>{let r=le(n.toBatchTensor(112,!0),"float32"),i=nr(r,[122.782,117.001,104.298]).div(255),o=Xe(oA(i,a.entry_flow.conv_in,[2,2]));return o=Y1(o,a.entry_flow.reduction_block_0,!1),o=Y1(o,a.entry_flow.reduction_block_1),vr(this._numMainBlocks,0,1).forEach(l=>{o=ice(o,a.middle_flow[`main_block_${l}`])}),o=Y1(o,a.exit_flow.reduction_block),o=Xe(Xn(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 iA(n,this._numMainBlocks)}extractParams(n){return sA(n,this._numMainBlocks)}};function lA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Rn(e),r=Eg(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 uA(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 Dn(e,t),{params:r,paramMappings:t}}var Lg=(n=>(n.FEMALE="female",n.MALE="male",n))(Lg||{});var Rd=class extends on{constructor(n=new Og(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 O(()=>{let r=n instanceof Ir?this.faceFeatureExtractor.forwardInput(n):n,s=ba(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=Fd(s,a.fc.age).as1D(),o=Fd(s,a.fc.gender);return{age:i,gender:o}})}forwardInput(n){return O(()=>{let{age:a,gender:r}=this.runNet(n);return{age:a,gender:Qa(r)}})}async forward(n){return this.forwardInput(await vt(n))}async predictAgeAndGender(n){let a=await vt(n),r=await this.forwardInput(a),s=mt(r.age),i=mt(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 lA(n)}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=Dg(n);return this.faceFeatureExtractor.loadFromWeightMap(a),uA(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 Np=class extends Tp{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 O(()=>{let i=(d,c)=>Rt([$n([68],d,"float32"),$n([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(Rt(Array.from(Array(s),(d,c)=>i(r[c].width,r[c].height))))})}forwardInput(t){return O(()=>{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=O(()=>mt(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(s.dataSync()),l=o.filter((p,d)=>kg(d)),u=o.filter((p,d)=>!kg(d));return new Oo(Array(68).fill(0).map((p,d)=>new Pe(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 Go=class extends Np{constructor(t=new Ip){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function pA(e){let t=[],{extractDenseBlock3Params:n}=Fg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return Dn(e,t),{params:a,paramMappings:t}}function cA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Rn(e),{extractDenseBlock3Params:r}=$g(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 zg=class extends on{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return O(()=>{let a=le(t.toBatchTensor(112,!0),"float32"),s=nr(a,[122.782,117.001,104.298]).div(255),i=_g(s,n.dense0,!0);return i=_g(i,n.dense1),i=_g(i,n.dense2),i=ba(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 pA(t)}extractParams(t){return cA(t)}};var Md=class extends Np{constructor(t=new zg){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Z1=class extends Go{};function dA(e,t){return Q(W(e,t.weights),t.biases)}function J1(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=Dt(e,s,n,r);return o=Q(o,i),o=dA(o,t.scale),a?Xe(o):o}function hA(e,t){return J1(e,t,[1,1],!0)}function Q1(e,t){return J1(e,t,[1,1],!1)}function Wg(e,t){return J1(e,t,[2,2],!0,"valid")}function oce(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(N1(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return O(()=>Ae(Fa(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 mA(e){let{extractWeights:t,getRemainingWeights:n}=Rn(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=oce(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"),b=s(589824,256,3,"conv256_down",!0),y=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),w=s(589824,256,3,"conv256_down_out"),I=O(()=>Ae(Ea(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:b,conv256_1:y,conv256_2:x,conv256_down_out:w,fc:I},paramMappings:a}}function lce(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 fA(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=lce(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"),b=a("conv256_2"),y=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!S1(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:b,conv256_down_out:y,fc:x};return Dn(e,t),{params:w,paramMappings:t}}function ar(e,t){let n=hA(e,t.conv1);return n=Q1(n,t.conv2),n=Q(n,e),n=Xe(n),n}function Pd(e,t){let n=Wg(e,t.conv1);n=Q1(n,t.conv2);let a=ba(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=Qe([n,l],1);let u=[...n.shape];u[2]=1;let p=It(u);n=Qe([n,p],2)}return a=s?Qe([a,r],3):a,n=Q(a,n),n=Xe(n),n}var Ho=class extends on{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return O(()=>{let a=le(t.toBatchTensor(150,!0),"float32"),s=nr(a,[122.782,117.001,104.298]).div(255),i=Wg(s,n.conv32_down);i=Mt(i,3,2,"valid"),i=ar(i,n.conv32_1),i=ar(i,n.conv32_2),i=ar(i,n.conv32_3),i=Pd(i,n.conv64_down),i=ar(i,n.conv64_1),i=ar(i,n.conv64_2),i=ar(i,n.conv64_3),i=Pd(i,n.conv128_down),i=ar(i,n.conv128_1),i=ar(i,n.conv128_2),i=Pd(i,n.conv256_down),i=ar(i,n.conv256_1),i=ar(i,n.conv256_2),i=Pd(i,n.conv256_down_out);let o=i.mean([1,2]);return Re(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=O(()=>mt(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 fA(t)}extractParams(t){return mA(t)}};function uce(e){let t=new Ho;return t.extractWeights(e),t}function Bg(e,t){return{...e,...{descriptor:t}}}function pce(e){return typeof e.age=="number"}function Vg(e,t){return{...e,...{age:t}}}function cce(e){return(e.gender==="male"||e.gender==="female")&&mp(e.genderProbability)}function Ug(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function dce(e,t){function n(l,u){let p=Fa(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=Fa(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"),b=s(512,512,"mobilenetv1/conv_9"),y=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:b,conv_10:y,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"),b=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),y=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"),N=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),_=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),$=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),A=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),M=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),D=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:b},box_predictor_1:{box_encoding_predictor:y,class_predictor:x},box_predictor_2:{box_encoding_predictor:w,class_predictor:I},box_predictor_3:{box_encoding_predictor:N,class_predictor:_},box_predictor_4:{box_encoding_predictor:$,class_predictor:A},box_predictor_5:{box_encoding_predictor:M,class_predictor:D}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function gA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=Rn(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=dce(n,t),i=r(),o=s(),u={extra_dim:Kc(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 hce(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`),b=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),y=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:b,batch_norm_variance:y},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 bA(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=hce(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!zr(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 Dn(e,t),{params:s,paramMappings:t}}function Ma(e,t,n){return O(()=>{let a=Dt(e,t.filters,n,"same");return a=Q(a,t.batch_norm_offset),tn(a,0,6)})}var mce=.0010000000474974513;function fce(e,t,n){return O(()=>{let a=Ns(e,t.filters,n,"same");return a=Ss(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,mce),tn(a,0,6)})}function gce(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function yA(e,t){return O(()=>{let n,a=Ma(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=gce(o);a=fce(a,s.depthwise_conv,l),a=Ma(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 bce(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),b=Math.min(o,d),y=Math.max(g-m,0)*Math.max(b-f,0);return y/(c+h-y)}function xA(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=bce(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 yce(e){let t=mt(Ae(e,[1,0])),n=[ce(t[2],t[0]),ce(t[3],t[1])],a=[Q(t[0],fe(n[0],2)),Q(t[1],fe(n[1],2))];return{sizes:n,centers:a}}function xce(e,t){let{sizes:n,centers:a}=yce(e),r=mt(Ae(t,[1,0])),s=fe(W(gn(fe(r[2],5)),n[0]),2),i=Q(W(fe(r[0],10),n[0]),a[0]),o=fe(W(gn(fe(r[3],5)),n[1]),2),l=Q(W(fe(r[1],10),n[1]),a[1]);return Ae(Rt([ce(i,s),ce(l,o),Q(i,s),Q(l,o)]),[1,0])}function vA(e,t,n){return O(()=>{let a=e.shape[0],r=xce(B(Wn(n.extra_dim,[a,1,1]),[-1,4]),B(e,[-1,4]));r=B(r,[a,r.shape[0]/a,4]);let s=ha(He(t,[0,0,1],[-1,-1,-1])),i=He(s,[0,0,0],[-1,-1,1]);i=B(i,[a,i.shape[1]]);let o=mt(r),l=mt(i);return{boxes:o,scores:l}})}function jo(e,t){return O(()=>{let n=e.shape[0],a=B(Vo(e,t.box_encoding_predictor),[n,-1,1,4]),r=B(Vo(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function wA(e,t,n){return O(()=>{let a=Ma(e,n.conv_0,[1,1]),r=Ma(a,n.conv_1,[2,2]),s=Ma(r,n.conv_2,[1,1]),i=Ma(s,n.conv_3,[2,2]),o=Ma(i,n.conv_4,[1,1]),l=Ma(o,n.conv_5,[2,2]),u=Ma(l,n.conv_6,[1,1]),p=Ma(u,n.conv_7,[2,2]),d=jo(t,n.box_predictor_0),c=jo(e,n.box_predictor_1),h=jo(r,n.box_predictor_2),m=jo(i,n.box_predictor_3),f=jo(l,n.box_predictor_4),g=jo(p,n.box_predictor_5),b=Qe([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),y=Qe([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:b,classPredictions:y}})}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 Rs=class extends on{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return O(()=>{let a=le(t.toBatchTensor(512,!1),"float32"),r=ce(fe(a,127.5),1),s=yA(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=wA(s.out,s.conv11,n.prediction_layer);return vA(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await vt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new wa(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,b[x][0]),Math.min(1,b[x][2])].map($=>$*g),[N,_]=[Math.max(0,b[x][1]),Math.min(1,b[x][3])].map($=>$*f);return new xt(p[x],new Po(N,w,_-N,I-w),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return bA(t)}extractParams(t){return gA(t)}};function kA(e){let t=new Rs;return t.extractWeights(e),t}function vce(e){return kA(e)}var ek=class extends Rs{};var IA=.4,TA=[new Pe(.738768,.874946),new Pe(2.42204,2.65704),new Pe(4.30971,7.04493),new Pe(10.246,4.59428),new Pe(12.6868,11.8741)],SA=[new Pe(1.603231,2.094468),new Pe(6.041143,7.080126),new Pe(2.882459,3.518061),new Pe(4.266906,5.178857),new Pe(9.041765,10.66308)],NA=[117.001,114.697,97.404],CA="tiny_yolov2_model",_A="tiny_yolov2_separable_conv_model";var Gg=e=>typeof e=="number";function tk(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(!Gg(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=>Gg(t.x)&&Gg(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(Gg)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Cp(e){return O(()=>{let t=W(e,ke(.10000000149011612));return Q(Xe(ce(e,t)),t)})}function Gr(e,t){return O(()=>{let n=ya(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Dt(n,t.conv.filters,[1,1],"valid"),n=ce(n,t.bn.sub),n=W(n,t.bn.truediv),n=Q(n,t.conv.bias),Cp(n)})}function Hr(e,t){return O(()=>{let n=ya(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Es(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=Q(n,t.bias),Cp(n)})}function wce(e,t){let n=vp(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=wp(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function EA(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=Rn(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=wce(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,b,y,x]=a,w=t.isFirstLayerConv2d?o(d,c,3,"conv0"):u(d,c,"conv0"),I=u(c,h,"conv1"),N=u(h,m,"conv2"),_=u(m,f,"conv3"),$=u(f,g,"conv4"),A=u(g,b,"conv5"),M=y?u(b,y,"conv6"):void 0,D=x?u(y,x,"conv7"):void 0,T=o(x||y||b,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:N,conv3:_,conv4:$,conv5:A,conv6:M,conv7:D,conv8:T}}else{let[d,c,h,m,f,g,b,y,x]=a,w=l(d,c,"conv0"),I=l(c,h,"conv1"),N=l(h,m,"conv2"),_=l(m,f,"conv3"),$=l(f,g,"conv4"),A=l(g,b,"conv5"),M=l(b,y,"conv6"),D=l(y,x,"conv7"),T=o(x,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:N,conv3:_,conv4:$,conv5:A,conv6:M,conv7:D,conv8:T}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function kce(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=kp(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function $A(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=kce(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 Dn(e,n),{params:i,paramMappings:n}}var rr=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 nk=class extends on{constructor(n){super("TinyYolov2");tk(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=Gr(n,a.conv0);return r=Mt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv1),r=Mt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv2),r=Mt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv3),r=Mt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv4),r=Mt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv5),r=Mt(r,[2,2],[1,1],"same"),r=Gr(r,a.conv6),r=Gr(r,a.conv7),Vo(r,a.conv8,"valid",!1)}runMobilenet(n,a){let r=this.config.isFirstLayerConv2d?Cp(Vo(n,a.conv0,"valid",!1)):Hr(n,a.conv0);return r=Mt(r,[2,2],[2,2],"same"),r=Hr(r,a.conv1),r=Mt(r,[2,2],[2,2],"same"),r=Hr(r,a.conv2),r=Mt(r,[2,2],[2,2],"same"),r=Hr(r,a.conv3),r=Mt(r,[2,2],[2,2],"same"),r=Hr(r,a.conv4),r=Mt(r,[2,2],[2,2],"same"),r=Hr(r,a.conv5),r=Mt(r,[2,2],[1,1],"same"),r=a.conv6?Hr(r,a.conv6):r,r=a.conv7?Hr(r,a.conv7):r,Vo(r,a.conv8,"valid",!1)}forwardInput(n,a){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return O(()=>{let s=le(n.toBatchTensor(a,!1),"float32");return s=this.config.meanRgb?nr(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 rr(a),i=await vt(n),o=await this.forwardInput(i,r),l=O(()=>mt(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(b=>b.box),c=p.map(b=>b.score),h=p.map(b=>b.classScore),m=p.map(b=>this.config.classes[b.label]);return A1(d.map(b=>b.rescale(r)),c,this.config.iouThreshold,!0).map(b=>new Wr(c[b],h[b],m[b],d[b],u))}getDefaultModelName(){return""}extractParamsFromWeightMap(n){return $A(n,this.config)}extractParams(n){let a=this.config.filterSizes||nk.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 EA(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]=O(()=>{let y=n.reshape([p,p,d,this.boxEncodingSize]),x=y.slice([0,0,0,0],[p,p,d,4]),w=y.slice([0,0,0,4],[p,p,d,1]),I=this.withClassScores?Qa(y.slice([0,0,0,5],[p,p,d,this.config.classes.length]),3):ke(0);return[x,w,I]}),f=[],g=await h.array(),b=await c.array();for(let y=0;yr){let N=(x+Sd(b[y][x][w][0]))/p*l,_=(y+Sd(b[y][x][w][1]))/p*u,$=Math.exp(b[y][x][w][2])*this.config.anchors[w].x/p*l,A=Math.exp(b[y][x][w][3])*this.config.anchors[w].y/p*u,M=N-$/2,D=_-A/2,T={row:y,col:x,anchor:w},{classScore:P,label:U}=this.withClassScores?await this.extractPredictedClass(m,T):{classScore:1,label:0};f.push({box:new Mo(M,D,M+$,D+A),score:I,classScore:I*P,label:U,...T})}}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)}},qo=nk;qo.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Ko=class extends qo{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:IA,classes:["face"],...t?{anchors:SA,meanRgb:NA}:{anchors:TA,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?_A:CA}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function Ice(e,t=!0){let n=new Ko(t);return n.extractWeights(e),n}var Od=class extends rr{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 Xo(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>Uo(l)?r(l):l.detection),i=a||(t instanceof $e?await xp(t,s):await yp(t,s)),o=await n(i);return i.forEach(l=>l instanceof $e&&l.dispose()),o}async function _p(e,t,n,a,r){return Xo([e],t,async s=>n(s[0]),a,r)}var AA=.4,FA=[new Pe(1.603231,2.094468),new Pe(6.041143,7.080126),new Pe(2.882459,3.518061),new Pe(4.266906,5.178857),new Pe(9.041765,10.66308)],DA=[117.001,114.697,97.404];var Yo=class extends qo{constructor(){let t={withSeparableConvs:!0,iouThreshold:AA,classes:["face"],anchors:FA,meanRgb:DA,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 Rs,tinyFaceDetector:new Yo,tinyYolov2:new Ko,faceLandmark68Net:new Go,faceLandmark68TinyNet:new Md,faceRecognitionNet:new Ho,faceExpressionNet:new Dd,ageGenderNet:new Rd},RA=(e,t)=>tt.ssdMobilenetv1.locateFaces(e,t),Tce=(e,t)=>tt.tinyFaceDetector.locateFaces(e,t),Sce=(e,t)=>tt.tinyYolov2.locateFaces(e,t),MA=e=>tt.faceLandmark68Net.detectLandmarks(e),Nce=e=>tt.faceLandmark68TinyNet.detectLandmarks(e),Cce=e=>tt.faceRecognitionNet.computeFaceDescriptor(e),_ce=e=>tt.faceExpressionNet.predictExpressions(e),Ece=e=>tt.ageGenderNet.predictAgeAndGender(e),PA=e=>tt.ssdMobilenetv1.load(e),$ce=e=>tt.tinyFaceDetector.load(e),Ace=e=>tt.tinyYolov2.load(e),Fce=e=>tt.faceLandmark68Net.load(e),Dce=e=>tt.faceLandmark68TinyNet.load(e),Rce=e=>tt.faceRecognitionNet.load(e),Mce=e=>tt.faceExpressionNet.load(e),Pce=e=>tt.ageGenderNet.load(e),Oce=PA,Lce=RA,zce=MA;var Hg=class extends ka{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Zo=class extends Hg{async run(){let t=await this.parentTask,n=await Xo(t,this.input,async a=>Promise.all(a.map(r=>tt.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>Rg(a,n[r]))}withAgeAndGender(){return new Qo(this,this.input)}},Jo=class extends Hg{async run(){let t=await this.parentTask;if(!t)return;let n=await _p(t,this.input,a=>tt.faceExpressionNet.predictExpressions(a),this.extractedFaces);return Rg(t,n)}withAgeAndGender(){return new el(this,this.input)}},Ms=class extends Zo{withAgeAndGender(){return new Os(this,this.input)}withFaceDescriptors(){return new jr(this,this.input)}},Ps=class extends Jo{withAgeAndGender(){return new Ls(this,this.input)}withFaceDescriptor(){return new qr(this,this.input)}};var jg=class extends ka{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Qo=class extends jg{async run(){let t=await this.parentTask,n=await Xo(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 Vg(Ug(a,i,o),s)})}withFaceExpressions(){return new Zo(this,this.input)}},el=class extends jg{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await _p(t,this.input,s=>tt.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Vg(Ug(t,a,r),n)}withFaceExpressions(){return new Jo(this,this.input)}},Os=class extends Qo{withFaceExpressions(){return new Ms(this,this.input)}withFaceDescriptors(){return new jr(this,this.input)}},Ls=class extends el{withFaceExpressions(){return new Ps(this,this.input)}withFaceDescriptor(){return new qr(this,this.input)}};var Ld=class extends ka{constructor(n,a){super();this.parentTask=n;this.input=a}},jr=class extends Ld{async run(){let t=await this.parentTask;return(await Xo(t,this.input,a=>Promise.all(a.map(r=>tt.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>Bg(t[r],a))}withFaceExpressions(){return new Ms(this,this.input)}withAgeAndGender(){return new Os(this,this.input)}},qr=class extends Ld{async run(){let t=await this.parentTask;if(!t)return;let n=await _p(t,this.input,a=>tt.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return Bg(t,n)}withFaceExpressions(){return new Ps(this,this.input)}withAgeAndGender(){return new Ls(this,this.input)}};var zd=class extends ka{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?tt.faceLandmark68TinyNet:tt.faceLandmark68Net}},Wd=class extends zd{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof $e?await xp(this.input,n):await yp(this.input,n),r=await Promise.all(a.map(i=>this.landmarkNet.detectLandmarks(i)));return a.forEach(i=>i instanceof $e&&i.dispose()),t.filter((i,o)=>r[o]).map((i,o)=>Sp(i,r[o]))}withFaceExpressions(){return new Ms(this,this.input)}withAgeAndGender(){return new Os(this,this.input)}withFaceDescriptors(){return new jr(this,this.input)}},Bd=class extends zd{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof $e?await xp(this.input,[n]):await yp(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof $e&&s.dispose()),Sp(t,r)}withFaceExpressions(){return new Ps(this,this.input)}withAgeAndGender(){return new Ls(this,this.input)}withFaceDescriptor(){return new qr(this,this.input)}};var Vd=class extends ka{constructor(n,a=new wa){super();this.input=n;this.options=a}},Ep=class extends Vd{async run(){let{input:t,options:n}=this,a;if(n instanceof Od)a=tt.tinyFaceDetector.locateFaces(t,n);else if(n instanceof wa)a=tt.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof rr)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=>Lo({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new Wd(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Zo(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Qo(this.runAndExtendWithFaceDetections(),this.input)}},Ud=class extends Vd{async run(){let t=await new Ep(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?Lo({},n):void 0)})}withFaceLandmarks(t=!1){return new Bd(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Jo(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new el(this.runAndExtendWithFaceDetection(),this.input)}};function Wce(e,t=new wa){return new Ud(e,t)}function qg(e,t=new wa){return new Ep(e,t)}async function OA(e,t){return qg(e,new wa(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function Bce(e,t={}){return qg(e,new rr(t)).withFaceLandmarks().withFaceDescriptors()}var Vce=OA;function ak(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 Gd=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 wr)return i;if(i instanceof Float32Array)return new wr(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new wr(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=>ak(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new fp(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>wr.fromJSON(a));return new Gd(n,t.distanceThreshold)}};function Uce(e){let t=new Yo;return t.extractWeights(e),t}function LA(e,t){let{width:n,height:a}=new bn(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=>LA(r,{width:n,height:a}));if(Uo(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return Sp(Lo(e,r),s)}return kr(e)?Lo(e,e.detection.forSize(n,a)):e instanceof ra||e instanceof xt?e.forSize(n,a):e}var Gce=rA;return OF(Hce);})(); + ${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;SA(i,o,l,u,c,m,g);let b=t.readSync(f.dataId),y;switch(b[0]){case 0:{y=N.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(b[1],b[2]);break}case 1:{y=N.getSparseReshapeNegativeOutputDimErrorMessage(b[1],b[2]);break}case 2:y=N.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();break;case 3:{let x=Array.from(t.readSync(r.dataId)),w=Array.from(t.readSync(h.dataId));y=N.getSparseReshapeInputOutputMultipleErrorMessage(x,w);break}case 4:{let x=Array.from(t.readSync(r.dataId)),w=Array.from(t.readSync(h.dataId));y=N.getSparseReshapeInputOutputMismatchErrorMessage(x,w);break}default:y=""}if(t.disposeData(f.dataId),y)throw t.disposeData(d.dataId),t.disposeData(h.dataId),new Error(y);return[d,h]}var lue={kernelName:_u,backendName:"wasm",setupFunc:iue,kernelFunc:oue},TA;function NA(e){TA=e.wasm.cwrap("SparseSegmentReduction",null,["number","number","number","number","number","number","number","number","number"])}function CA(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"),b=n.dataIdMap.get(g.dataId).id;TA(d,Et[r.dtype],r.shape[0],c,h,f,b,t,0);let y=n.readSync(g.dataId),x;switch(y[0]){case 0:{x=N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y[1],y[2]);break;case 3:x=N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(y[1],y[2],y[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function uue(e){return CA(e,!0)}var pue={kernelName:xc,backendName:"wasm",setupFunc:NA,kernelFunc:uue};function cue(e){return CA(e,!1)}var due={kernelName:vc,backendName:"wasm",setupFunc:NA,kernelFunc:cue};function hue(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 mue={kernelName:Cu,backendName:"wasm",kernelFunc:hue},fue=nn(so),gue=nn(wc),bue=!0,yue=cn(lo,bue),_A;function xue(e){_A=e.wasm.cwrap(ys,null,["number","number","number","number"])}function vue(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 _A(i,r,Et[s.dtype],l),o}var wue={kernelName:ys,backendName:"wasm",setupFunc:xue,kernelFunc:vue},EA;function kue(e){EA=e.wasm.cwrap(Eu,null,["number","array","number","array","array","array","array","array","number","number"])}function Iue(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:b,begin:y,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=zn({inputs:{x:r},backend:t,attrs:{shape:m}});else if(g||b){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=jt.computeOutShape(y,x,w),C=hi({inputs:{x:r},backend:t,attrs:{begin:y,size:T}});I=zn({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(y).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),W=t.dataIdMap.get(T.dataId).id;EA(C,E,r.shape.length,A,R,F,S,M,h.length,W),I=zn({inputs:{x:T},backend:t,attrs:{shape:m}}),t.disposeData(T.dataId)}return I}var Sue={kernelName:Eu,backendName:"wasm",setupFunc:kue,kernelFunc:Iue};function Tue(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]=L0(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),b=t.dataIdMap.get(g.dataId);b.stringBytes=m;let y=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(y).set(f),[g,y]}var Nue={kernelName:kc,backendName:"wasm",kernelFunc:Tue};function Cue(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]=z0(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 _ue={kernelName:Ic,backendName:"wasm",kernelFunc:Cue};function Eue(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=B0(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var Aue={kernelName:Sc,backendName:"wasm",kernelFunc:Eue},$ue=!0,Fue=cn(uo,$ue),AA;function Due(e){AA=e.wasm.cwrap(io,null,["number","number","number","number"])}function Rue(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),b=v.sizeFromShape(g),y=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(y.dataId).id;AA(l,b,Et[y.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(y.shape,c);y.shape=x}return y}var Mue={kernelName:io,backendName:"wasm",setupFunc:Due,kernelFunc:Rue},Pue=nn(po),Oue=nn(co),$A;function Lue(e){$A=e.wasm.cwrap(bs,null,["number","array","number","array","number","number"])}function zue(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 FA(i,o,a.shape.length,Et[a.dtype],r,s,p,c),[u,d]},Uue={kernelName:Au,backendName:"wasm",setupFunc:Wue,kernelFunc:Vue},DA;function Gue(e){DA=e.wasm.cwrap($u,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function Hue(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],b=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),y=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 DA(I,T,s.shape[0]>1,p,m,f,h,c,d,b,r.shape.length-1,y,g.length-1,C,E,l,w),x}var jue={kernelName:$u,backendName:"wasm",setupFunc:Gue,kernelFunc:Hue};function que(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 Kue={kernelName:Fu,backendName:"wasm",kernelFunc:que};function Xue(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var Yue={kernelName:Du,backendName:"wasm",kernelFunc:Xue},Zue=[Tse,Nse,_se,$se,zse,Vse,Hse,Kse,Jse,rie,sie,iie,uie,pie,hie,gie,bie,yie,wie,Sie,Cie,Aie,Die,Rie,Pie,Oie,Lie,zie,Vie,Uie,Hie,Kie,Zie,eoe,aoe,ioe,loe,poe,Fse,hoe,foe,boe,yoe,voe,woe,Ioe,Toe,_oe,Aoe,Doe,Poe,zoe,Woe,Goe,joe,qoe,Yoe,Qoe,nle,rle,ole,ule,cle,dA,fle,yle,wle,Ile,Tle,Nle,Cle,Xse,Ale,Dle,Ple,zle,Ble,Wle,Gle,qle,Yle,Zle,nie,eue,nue,sue,lue,pue,due,mue,fue,gue,yue,wue,Sue,Nue,_ue,Aue,Fue,Mue,Pue,Oue,Bue,Uue,jue,Pse,Kue,Yue];for(let e of Zue)Nc(e);var kx=H();kx.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}});kx.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(kx.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 EI=hs(NF()),Jue=hs(CF()),AI=hs(_F()),$I=EI.default||EI,Que=AI.default||AI,RA=class extends lc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(MA),Ix=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new im(this,er())}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 npe(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 epe(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 FI(e,t,n){if(rm!=null)return rm;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),Up!=null&&Up[a]!=null?Up[a]:n+a}async function tpe(){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=Jue.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?FI(e,t,Bp!=null?Bp:l):l+o},i1&&(r.instantiateWasm=epe(FI(e,t,Bp!=null?Bp:"")));let s=!1;r.onAbort=()=>{s||Gp||(Gp=!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&&rm==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+$I.toString()],{type:"text/javascript"}),i=$I(r)):i=Que(r),i.then(o=>{s=!0,Gp=!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 npe(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 ape=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],rm=null,Bp=null,Up={},Gp=!1,i1=!1;function rpe(e,t=!1){if(Bx("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),Gp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");rm=e,i1=t}function spe(e,t=!1){if(Gp)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")Bp=e;else{Up=e;let n=ape.filter(a=>Up[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.`)}i1=t}var MA=-1,Ix=-1;function ipe(e){MA=e}function ope(){if(Ix===-1)throw new Error("WASM backend not initialized.");return Ix}var lpe="3.21.0",upe=2;Vm("wasm",async()=>{let{wasm:e}=await tpe();return new RA(e)},upe);var ppe="3.21.0",cpe="3.21.0",dpe="3.21.0",hpe="3.21.0",mpe="3.21.0",fpe="3.21.0",gpe="3.21.0",bpe="3.21.0",ype={tfjs:ppe,"tfjs-core":cpe,"tfjs-data":dpe,"tfjs-layers":hpe,"tfjs-converter":mpe,"tfjs-backend-cpu":fpe,"tfjs-backend-webgl":gpe,"tfjs-backend-wasm":bpe};var $1={};ah($1,{AnchorPosition:()=>k1,DrawBox:()=>hd,DrawBoxOptions:()=>tg,DrawFaceLandmarks:()=>dg,DrawFaceLandmarksOptions:()=>cg,DrawTextField:()=>Lr,DrawTextFieldOptions:()=>sp,drawContour:()=>Mr,drawDetections:()=>Cpe,drawFaceExpressions:()=>Fpe,drawFaceLandmarks:()=>Rpe});function Mr(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 p1={};ah(p1,{computeReshapedDimensions:()=>u1,getCenterPoint:()=>To,isDimensions:()=>Qf,isEven:()=>Jf,isFloat:()=>l1,isTensor:()=>Io,isTensor1D:()=>xpe,isTensor2D:()=>o1,isTensor3D:()=>Pr,isTensor4D:()=>xa,isValidNumber:()=>Ka,isValidProbablitiy:()=>np,range:()=>mr,round:()=>So});var bn=class{constructor(t,n){if(!Ka(t)||!Ka(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 bn(1/this.width,1/this.height)}};function Io(e,t){return e instanceof Te&&e.shape.length===t}function xpe(e){return Io(e,1)}function o1(e){return Io(e,2)}function Pr(e){return Io(e,3)}function xa(e){return Io(e,4)}function l1(e){return e%1!==0}function Jf(e){return e%2===0}function So(e,t=2){let n=10**t;return Math.floor(e*n)/n}function Qf(e){return e&&e.width&&e.height}function u1({width:e,height:t},n){let a=n/Math.max(t,e);return new bn(Math.round(e*a),Math.round(t*a))}function To(e){return e.reduce((t,n)=>t.add(n),new Fe(0,0)).div(new Fe(e.length,e.length))}function mr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Ka(e){return!!e&&e!==1/0&&e!==-1/0&&!Number.isNaN(e)||e===0}function np(e){return Ka(e)&&e>=0&&e<=1}var Fe=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new Fe(this.x+t.x,this.y+t.y)}sub(t){return new Fe(this.x-t.x,this.y-t.y)}mul(t){return new Fe(this.x*t.x,this.y*t.y)}div(t){return new Fe(this.x/t.x,this.y/t.y)}abs(){return new Fe(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new Fe(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(Ka)}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(Ka),s=[a.x,a.y,a.width,a.height].every(Ka);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 Fe(this.left,this.top)}get topRight(){return new Fe(this.right,this.top)}get bottomLeft(){return new Fe(this.left,this.bottom)}get bottomRight(){return new Fe(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 No=class extends st{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var Or=class{constructor(t,n,a,r,s){this._imageDims=new bn(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 Or(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var bt=class extends Or{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 bt(a,r,s)}};function c1(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 d1(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 Xa(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 m1(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 vpe(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 cd(e){return 1/(1+Math.exp(-e))}function wpe(e){return Math.log(e/(1-e))}var Co=class extends st{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var kpe=.5,Ipe=.43,Spe=.45,aa=class{constructor(t,n,a=new Fe(0,0)){let{width:r,height:s}=n;this._imgDims=new bn(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new Fe(r,s)).add(a))}get shift(){return new Fe(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 Fe(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 Fe(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof bt?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/Spe),l=To(t),u=Math.floor(Math.max(0,l.x-kpe*o)),p=Math.floor(Math.max(0,l.y-Ipe*o));return new Co(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=d1(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var f1=class extends aa{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],To([t[3],t[4]])]}};var _o=class extends aa{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 ap=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 rp=class extends st{constructor(n,a){super(n);this._label=a}static assertIsValidLabeledBox(n,a){if(st.assertIsValidBox(n,a),!Ka(n.label))throw new Error(`${a} - expected property label (${n.label}) to be a number`)}get label(){return this._label}};var fr=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 fr(t.label,n)}};var g1=class extends rp{constructor(n,a,r,s){super(n,a);this._score=r,this._classScore=s}static assertIsValidPredictedBox(n,a){if(rp.assertIsValidLabeledBox(n,a),!np(n.score)||!np(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 gr(e){return e.detection instanceof bt}function Eo(e,t){return{...e,...{detection:t}}}function b1(){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 dd(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function eg(e){let t="";if(!e&&dd())try{e=Kr("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 y1(){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=eg();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 x1(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var an;function Tpe(){if(!an)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return an}function v1(e){an=e}function w1(){return x1()?v1(b1()):dd()?v1(y1()):null}function Npe(e){if(an||w1(),!an)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=an.Canvas,Image:n=an.Image}=e;an.Canvas=t,an.Image=n,an.createCanvasElement=e.createCanvasElement||(()=>new t),an.createImageElement=e.createImageElement||(()=>new n),an.ImageData=e.ImageData||an.ImageData,an.Video=e.Video||an.Video,an.fetch=e.fetch||an.fetch,an.readFile=e.readFile||an.readFile}var Je={getEnv:Tpe,setEnv:v1,initialize:w1,createBrowserEnv:b1,createFileSystem:eg,createNodejsEnv:y1,monkeyPatch:Npe,isBrowser:x1,isNodejs:dd};w1();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 k1=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(k1||{}),sp=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}},Lr=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof Lr?t.text:t,this.anchor=n,this.options=new sp(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 tg=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 sp({...i,...s})}},hd=class{constructor(t,n={}){this.box=new st(t),this.options=new tg(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 Lr([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function Cpe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof bt?a.score:gr(a)?a.detection.score:void 0,s=a instanceof bt?a.box:gr(a)?a.detection.box:new st(a),i=r?`${So(r)}`:void 0;new hd(s,{label:i}).draw(e)})}function md(e){let{Image:t,Video:n}=Je.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function I1(e){return new Promise((t,n)=>{(e instanceof Je.getEnv().Canvas||md(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 S1(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 $o(e){let{Image:t,Video:n}=Je.getEnv();return e instanceof t?new bn(e.naturalWidth,e.naturalHeight):e instanceof n?new bn(e.videoWidth,e.videoHeight):new bn(e.width,e.height)}function Fo({width:e,height:t}){let{createCanvasElement:n}=Je.getEnv(),a=n();return a.width=e,a.height=t,a}function fd(e,t){let{ImageData:n}=Je.getEnv();if(!(e instanceof n)&&!md(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||$o(e),s=Fo({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 T1(e,t){let n=t||Je.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(xa(e)?1:0),i=P(()=>e.as3D(a,r,s).toInt());return await ho.toPixels(i,n),i.dispose(),n}function ng(e){let{Image:t,Canvas:n,Video:a}=Je.getEnv();return e instanceof t||e instanceof n||e instanceof a}function N1(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 Fo({width:1,height:1});let s=$o(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=Fo({width:t,height:t}),p=e instanceof r?e:fd(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(Pr(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 Je.getEnv().Canvas?a:fd(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 mr(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 u1({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,P(()=>{let a=mr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Te){let o=xa(i)?i:hn(i);return o=m1(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Nr.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof Je.getEnv().Canvas)return ho.fromPixels(N1(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 yt(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(!ng(r)&&!Pr(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=>ng(r)&&I1(r))),new br(a,Array.isArray(e))}async function ip(e,t){let{Canvas:n}=Je.getEnv(),a=e;if(!(e instanceof n)){let i=await yt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await T1(o)}let r=Gn(a);return t.map(i=>i instanceof bt?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=Fo({width:l,height:u});return l>0&&u>0&&Gn(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function op(e,t){if(!Pr(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 bt?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 zr(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 _pe(e){let t=await zr(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 S1(n)}async function C1(e){return(await zr(e)).json()}async function Epe(e){return new Float32Array(await(await zr(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=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 Ape(e){let t=await zr(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 ag(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 _1(e,t){let{manifestUri:n,modelBaseUri:a}=ag(e,t),r=await C1(n);return Ut.loadWeights(r,a)}function $pe(e,t,n=!1){let{width:a,height:r}=n?$o(t):t;return e.width=a,e.height=r,{width:a,height:r}}var rn=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 ss)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof ss))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=On(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 _1(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}=ag(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 rg(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 gd(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 Do(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 _n(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function lp(e,t){return(n,a,r,s)=>{let i=Fa(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 sg(e,t){return(n,a,r)=>{let s=Ea(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 up(e,t){return(n,a,r)=>{let s=Fa(e(9*n),[3,3,n,1]),i=Fa(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 pp(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 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 En(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 ig(e,t){let n=lp(e,t),a=up(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 OA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=En(e),{extractDenseBlock4Params:r}=ig(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 og(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function lg(e,t){let n=ra(e,t),a=og(n),r=pp(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 LA(e){let t=[],{extractDenseBlock4Params:n}=lg(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 cp=class extends rn{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=Xa(a,[122.782,117.001,104.298]).div(255),i=gd(s,n.dense0,!0);return i=gd(i,n.dense1),i=gd(i,n.dense2),i=gd(i,n.dense3),i=ga(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await yt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return LA(t)}extractParams(t){return OA(t)}};function yd(e,t){return P(()=>Y(Ae(e,t.weights),t.bias))}function zA(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=En(e),o=sg(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 _n(e,t),{params:r,paramMappings:t}}function ug(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 dp=class extends rn{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 yd(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 zA(n,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=ug(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 E1=["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}`);E1.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return E1.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var xd=class extends dp{constructor(t=new cp){super("FaceExpressionNet",t)}forwardInput(t){return P(()=>ja(this.runNet(t)))}async forward(t){return this.forwardInput(await yt(t))}async predictExpressions(t){let n=await yt(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 A1(e){return e.expressions instanceof Br}function pg(e,t){return{...e,...{expressions:t}}}function Fpe(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Br?s:A1(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=gr(s)?s.detection.box.bottomLeft:a||new Fe(0,0);new Lr(l.map(d=>`${d.expression} (${So(d.probability)})`),u).draw(e)})}function Ro(e){return gr(e)&&e.landmarks instanceof aa&&e.unshiftedLandmarks instanceof aa&&e.alignedRect instanceof bt}function Dpe(e){let t=(o,l,u,p)=>Math.atan2(p-l,u-o)%Math.PI,n=o=>o*180/Math.PI,a={roll:void 0,pitch:void 0,yaw:void 0};if(!e||!e._positions||e._positions.length!==68)return a;let r=e._positions;a.roll=-t(r[36]._x,r[36]._y,r[45]._x,r[45]._y),a.pitch=t(0,Math.abs(r[0]._x-r[30]._x)/r[30]._x,Math.PI,Math.abs(r[16]._x-r[30]._x)/r[30]._x);let s=r.reduce((o,l)=>oo>l._y?o:l._y,-1/0);return a.yaw=Math.PI*(e._imgDims._height/(i-s)/1.4-1),a}function hp(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new bt(e.detection.score,r.rescale(s.reverse()),s),o=Dpe(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var cg=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)"}},dg=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new cg(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 _o&&(n.strokeStyle=i,n.lineWidth=s,Mr(n,this.faceLandmarks.getJawOutline()),Mr(n,this.faceLandmarks.getLeftEyeBrow()),Mr(n,this.faceLandmarks.getRightEyeBrow()),Mr(n,this.faceLandmarks.getNose()),Mr(n,this.faceLandmarks.getLeftEye(),!0),Mr(n,this.faceLandmarks.getRightEye(),!0),Mr(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 Rpe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof aa?a:Ro(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new dg(r).draw(e)})}var WA="1.7.4";function Ope(e,t){let n=lp(e,t),a=up(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 VA(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=En(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Ope(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={};mr(t,0,1).forEach(b=>{h[`main_block_${b}`]=l(128,`middle_flow/main_block_${b}`)});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 Lpe(e,t){let n=ra(e,t),a=og(n),r=pp(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 UA(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=Lpe(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={};mr(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 GA(e,t,n){return Y($t(e,t.filters,n,"same"),t.bias)}function F1(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,GA(e,t.expansion_conv,[2,2])),a}function zpe(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 hg=class extends rn{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=Xa(r,[122.782,117.001,104.298]).div(255),o=Xe(GA(i,a.entry_flow.conv_in,[2,2]));return o=F1(o,a.entry_flow.reduction_block_0,!1),o=F1(o,a.entry_flow.reduction_block_1),mr(this._numMainBlocks,0,1).forEach(l=>{o=zpe(o,a.middle_flow[`main_block_${l}`])}),o=F1(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 yt(n))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(n){return UA(n,this._numMainBlocks)}extractParams(n){return VA(n,this._numMainBlocks)}};function HA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=En(e),r=sg(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 jA(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 mg=(n=>(n.FEMALE="female",n.MALE="male",n))(mg||{});var vd=class extends rn{constructor(n=new hg(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=ga(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=yd(s,a.fc.age).as1D(),o=yd(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:ja(r)}})}async forward(n){return this.forwardInput(await yt(n))}async predictAgeAndGender(n){let a=await yt(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 HA(n)}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=ug(n);return this.faceFeatureExtractor.loadFromWeightMap(a),jA(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 mp=class extends dp{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 yt(t))}async detectLandmarks(t){let n=await yt(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)=>Jf(d)),u=o.filter((p,d)=>!Jf(d));return new _o(Array(68).fill(0).map((p,d)=>new Fe(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 Mo=class extends mp{constructor(t=new cp){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function qA(e){let t=[],{extractDenseBlock3Params:n}=lg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return _n(e,t),{params:a,paramMappings:t}}function KA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=En(e),{extractDenseBlock3Params:r}=ig(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 fg=class extends rn{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=Xa(a,[122.782,117.001,104.298]).div(255),i=rg(s,n.dense0,!0);return i=rg(i,n.dense1),i=rg(i,n.dense2),i=ga(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await yt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return qA(t)}extractParams(t){return KA(t)}};var wd=class extends mp{constructor(t=new fg){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var D1=class extends Mo{};function XA(e,t){return Y(z(e,t.weights),t.biases)}function R1(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=XA(o,t.scale),a?Xe(o):o}function YA(e,t){return R1(e,t,[1,1],!0)}function M1(e,t){return R1(e,t,[1,1],!1)}function gg(e,t){return R1(e,t,[2,2],!0,"valid")}function Bpe(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(l1(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return P(()=>Ce(Fa(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 ZA(e){let{extractWeights:t,getRemainingWeights:n}=En(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=Bpe(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"),b=s(589824,256,3,"conv256_down",!0),y=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),w=s(589824,256,3,"conv256_down_out"),I=P(()=>Ce(Ea(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:b,conv256_1:y,conv256_2:x,conv256_down_out:w,fc:I},paramMappings:a}}function Wpe(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 JA(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Wpe(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"),b=a("conv256_2"),y=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!o1(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:b,conv256_down_out:y,fc:x};return _n(e,t),{params:w,paramMappings:t}}function Ya(e,t){let n=YA(e,t.conv1);return n=M1(n,t.conv2),n=Y(n,e),n=Xe(n),n}function kd(e,t){let n=gg(e,t.conv1);n=M1(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 Po=class extends rn{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=Xa(a,[122.782,117.001,104.298]).div(255),i=gg(s,n.conv32_down);i=Dt(i,3,2,"valid"),i=Ya(i,n.conv32_1),i=Ya(i,n.conv32_2),i=Ya(i,n.conv32_3),i=kd(i,n.conv64_down),i=Ya(i,n.conv64_1),i=Ya(i,n.conv64_2),i=Ya(i,n.conv64_3),i=kd(i,n.conv128_down),i=Ya(i,n.conv128_1),i=Ya(i,n.conv128_2),i=kd(i,n.conv256_down),i=Ya(i,n.conv256_1),i=Ya(i,n.conv256_2),i=kd(i,n.conv256_down_out);let o=i.mean([1,2]);return Ae(o,n.fc)})}async forward(t){return this.forwardInput(await yt(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 yt(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 JA(t)}extractParams(t){return ZA(t)}};function Vpe(e){let t=new Po;return t.extractWeights(e),t}function bg(e,t){return{...e,...{descriptor:t}}}function Upe(e){return typeof e.age=="number"}function yg(e,t){return{...e,...{age:t}}}function Gpe(e){return(e.gender==="male"||e.gender==="female")&&np(e.genderProbability)}function xg(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function Hpe(e,t){function n(l,u){let p=Fa(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=Fa(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"),b=s(512,512,"mobilenetv1/conv_9"),y=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:b,conv_10:y,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"),b=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),y=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:b},box_predictor_1:{box_encoding_predictor:y,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 QA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=En(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=Hpe(n,t),i=r(),o=s(),u={extra_dim:Fc(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 jpe(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`),b=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),y=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:b,batch_norm_variance:y},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 e$(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=jpe(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Pr(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 Ma(e,t,n){return P(()=>{let a=$t(e,t.filters,n,"same");return a=Y(a,t.batch_norm_offset),Qt(a,0,6)})}var qpe=.0010000000474974513;function Kpe(e,t,n){return P(()=>{let a=ks(e,t.filters,n,"same");return a=ws(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,qpe),Qt(a,0,6)})}function Xpe(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function t$(e,t){return P(()=>{let n,a=Ma(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=Xpe(o);a=Kpe(a,s.depthwise_conv,l),a=Ma(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 Ype(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),b=Math.min(o,d),y=Math.max(g-m,0)*Math.max(b-f,0);return y/(c+h-y)}function n$(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=Ype(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 Zpe(e){let t=ct(Ce(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}=Zpe(e),r=ct(Ce(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 Ce(Ft([pe(i,s),pe(l,o),Y(i,s),Y(l,o)]),[1,0])}function a$(e,t,n){return P(()=>{let a=e.shape[0],r=Jpe(B(Pn(n.extra_dim,[a,1,1]),[-1,4]),B(e,[-1,4]));r=B(r,[a,r.shape[0]/a,4]);let s=ha(We(t,[0,0,1],[-1,-1,-1])),i=We(s,[0,0,0],[-1,-1,1]);i=B(i,[a,i.shape[1]]);let o=ct(r),l=ct(i);return{boxes:o,scores:l}})}function Oo(e,t){return P(()=>{let n=e.shape[0],a=B(Do(e,t.box_encoding_predictor),[n,-1,1,4]),r=B(Do(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function r$(e,t,n){return P(()=>{let a=Ma(e,n.conv_0,[1,1]),r=Ma(a,n.conv_1,[2,2]),s=Ma(r,n.conv_2,[1,1]),i=Ma(s,n.conv_3,[2,2]),o=Ma(i,n.conv_4,[1,1]),l=Ma(o,n.conv_5,[2,2]),u=Ma(l,n.conv_6,[1,1]),p=Ma(u,n.conv_7,[2,2]),d=Oo(t,n.box_predictor_0),c=Oo(e,n.box_predictor_1),h=Oo(r,n.box_predictor_2),m=Oo(i,n.box_predictor_3),f=Oo(l,n.box_predictor_4),g=Oo(p,n.box_predictor_5),b=Ze([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),y=Ze([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:b,classPredictions:y}})}var va=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 rn{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=t$(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=r$(s.out,s.conv11,n.prediction_layer);return a$(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await yt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new va(n),s=await yt(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,b[x][0]),Math.min(1,b[x][2])].map(E=>E*g),[T,C]=[Math.max(0,b[x][1]),Math.min(1,b[x][3])].map(E=>E*f);return new bt(p[x],new Co(T,w,C-T,I-w),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return e$(t)}extractParams(t){return QA(t)}};function s$(e){let t=new As;return t.extractWeights(e),t}function Qpe(e){return s$(e)}var P1=class extends As{};var i$=.4,o$=[new Fe(.738768,.874946),new Fe(2.42204,2.65704),new Fe(4.30971,7.04493),new Fe(10.246,4.59428),new Fe(12.6868,11.8741)],l$=[new Fe(1.603231,2.094468),new Fe(6.041143,7.080126),new Fe(2.882459,3.518061),new Fe(4.266906,5.178857),new Fe(9.041765,10.66308)],u$=[117.001,114.697,97.404],p$="tiny_yolov2_model",c$="tiny_yolov2_separable_conv_model";var vg=e=>typeof e=="number";function O1(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(!vg(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=>vg(t.x)&&vg(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(vg)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function fp(e){return P(()=>{let t=z(e,ye(.10000000149011612));return Y(Xe(pe(e,t)),t)})}function Wr(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),fp(n)})}function Vr(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),fp(n)})}function ece(e,t){let n=lp(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=up(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function d$(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=En(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=ece(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,b,y,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,b,"conv5"),R=y?u(b,y,"conv6"):void 0,F=x?u(y,x,"conv7"):void 0,S=o(x||y||b,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,b,y,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,b,"conv5"),R=l(b,y,"conv6"),F=l(y,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 tce(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=pp(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function h$(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=tce(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 Za=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 L1=class extends rn{constructor(n){super("TinyYolov2");O1(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=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=Wr(r,a.conv6),r=Wr(r,a.conv7),Do(r,a.conv8,"valid",!1)}runMobilenet(n,a){let r=this.config.isFirstLayerConv2d?fp(Do(n,a.conv0,"valid",!1)):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=a.conv6?Vr(r,a.conv6):r,r=a.conv7?Vr(r,a.conv7):r,Do(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?Xa(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 yt(n),a)}async detect(n,a={}){let{inputSize:r,scoreThreshold:s}=new Za(a),i=await yt(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(b=>b.box),c=p.map(b=>b.score),h=p.map(b=>b.classScore),m=p.map(b=>this.config.classes[b.label]);return h1(d.map(b=>b.rescale(r)),c,this.config.iouThreshold,!0).map(b=>new Or(c[b],h[b],m[b],d[b],u))}getDefaultModelName(){return""}extractParamsFromWeightMap(n){return h$(n,this.config)}extractParams(n){let a=this.config.filterSizes||L1.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 d$(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 y=n.reshape([p,p,d,this.boxEncodingSize]),x=y.slice([0,0,0,0],[p,p,d,4]),w=y.slice([0,0,0,4],[p,p,d,1]),I=this.withClassScores?ja(y.slice([0,0,0,5],[p,p,d,this.config.classes.length]),3):ye(0);return[x,w,I]}),f=[],g=await h.array(),b=await c.array();for(let y=0;yr){let T=(x+cd(b[y][x][w][0]))/p*l,C=(y+cd(b[y][x][w][1]))/p*u,E=Math.exp(b[y][x][w][2])*this.config.anchors[w].x/p*l,A=Math.exp(b[y][x][w][3])*this.config.anchors[w].y/p*u,R=T-E/2,F=C-A/2,S={row:y,col:x,anchor:w},{classScore:M,label:W}=this.withClassScores?await this.extractPredictedClass(m,S):{classScore:1,label:0};f.push({box:new No(R,F,R+E,F+A),score:I,classScore:I*M,label:W,...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)}},Lo=L1;Lo.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var zo=class extends Lo{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:i$,classes:["face"],...t?{anchors:l$,meanRgb:u$}:{anchors:o$,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 bt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?c$:p$}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function nce(e,t=!0){let n=new zo(t);return n.extractWeights(e),n}var Id=class extends Za{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var wa=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=>Ro(l)?r(l):l.detection),i=a||(t instanceof Te?await op(t,s):await ip(t,s)),o=await n(i);return i.forEach(l=>l instanceof Te&&l.dispose()),o}async function gp(e,t,n,a,r){return Bo([e],t,async s=>n(s[0]),a,r)}var m$=.4,f$=[new Fe(1.603231,2.094468),new Fe(6.041143,7.080126),new Fe(2.882459,3.518061),new Fe(4.266906,5.178857),new Fe(9.041765,10.66308)],g$=[117.001,114.697,97.404];var Wo=class extends Lo{constructor(){let t={withSeparableConvs:!0,iouThreshold:m$,classes:["face"],anchors:f$,meanRgb:g$,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 bt(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 Wo,tinyYolov2:new zo,faceLandmark68Net:new Mo,faceLandmark68TinyNet:new wd,faceRecognitionNet:new Po,faceExpressionNet:new xd,ageGenderNet:new vd},b$=(e,t)=>Qe.ssdMobilenetv1.locateFaces(e,t),ace=(e,t)=>Qe.tinyFaceDetector.locateFaces(e,t),rce=(e,t)=>Qe.tinyYolov2.locateFaces(e,t),y$=e=>Qe.faceLandmark68Net.detectLandmarks(e),sce=e=>Qe.faceLandmark68TinyNet.detectLandmarks(e),ice=e=>Qe.faceRecognitionNet.computeFaceDescriptor(e),oce=e=>Qe.faceExpressionNet.predictExpressions(e),lce=e=>Qe.ageGenderNet.predictAgeAndGender(e),x$=e=>Qe.ssdMobilenetv1.load(e),uce=e=>Qe.tinyFaceDetector.load(e),pce=e=>Qe.tinyYolov2.load(e),cce=e=>Qe.faceLandmark68Net.load(e),dce=e=>Qe.faceLandmark68TinyNet.load(e),hce=e=>Qe.faceRecognitionNet.load(e),mce=e=>Qe.faceExpressionNet.load(e),fce=e=>Qe.ageGenderNet.load(e),gce=x$,bce=b$,yce=y$;var wg=class extends wa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Vo=class extends wg{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)=>pg(a,n[r]))}withAgeAndGender(){return new Go(this,this.input)}},Uo=class extends wg{async run(){let t=await this.parentTask;if(!t)return;let n=await gp(t,this.input,a=>Qe.faceExpressionNet.predictExpressions(a),this.extractedFaces);return pg(t,n)}withAgeAndGender(){return new Ho(this,this.input)}},$s=class extends Vo{withAgeAndGender(){return new Ds(this,this.input)}withFaceDescriptors(){return new Ur(this,this.input)}},Fs=class extends Uo{withAgeAndGender(){return new Rs(this,this.input)}withFaceDescriptor(){return new Gr(this,this.input)}};var kg=class extends wa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Go=class extends kg{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 yg(xg(a,i,o),s)})}withFaceExpressions(){return new Vo(this,this.input)}},Ho=class extends kg{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await gp(t,this.input,s=>Qe.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return yg(xg(t,a,r),n)}withFaceExpressions(){return new Uo(this,this.input)}},Ds=class extends Go{withFaceExpressions(){return new $s(this,this.input)}withFaceDescriptors(){return new Ur(this,this.input)}},Rs=class extends Ho{withFaceExpressions(){return new Fs(this,this.input)}withFaceDescriptor(){return new Gr(this,this.input)}};var Sd=class extends wa{constructor(n,a){super();this.parentTask=n;this.input=a}},Ur=class extends Sd{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)=>bg(t[r],a))}withFaceExpressions(){return new $s(this,this.input)}withAgeAndGender(){return new Ds(this,this.input)}},Gr=class extends Sd{async run(){let t=await this.parentTask;if(!t)return;let n=await gp(t,this.input,a=>Qe.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return bg(t,n)}withFaceExpressions(){return new Fs(this,this.input)}withAgeAndGender(){return new Rs(this,this.input)}};var Td=class extends wa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?Qe.faceLandmark68TinyNet:Qe.faceLandmark68Net}},Nd=class extends Td{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Te?await op(this.input,n):await ip(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)=>hp(i,r[o]))}withFaceExpressions(){return new $s(this,this.input)}withAgeAndGender(){return new Ds(this,this.input)}withFaceDescriptors(){return new Ur(this,this.input)}},Cd=class extends Td{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Te?await op(this.input,[n]):await ip(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Te&&s.dispose()),hp(t,r)}withFaceExpressions(){return new Fs(this,this.input)}withAgeAndGender(){return new Rs(this,this.input)}withFaceDescriptor(){return new Gr(this,this.input)}};var _d=class extends wa{constructor(n,a=new va){super();this.input=n;this.options=a}},bp=class extends _d{async run(){let{input:t,options:n}=this,a;if(n instanceof Id)a=Qe.tinyFaceDetector.locateFaces(t,n);else if(n instanceof va)a=Qe.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof Za)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=>Eo({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new Nd(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Vo(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Go(this.runAndExtendWithFaceDetections(),this.input)}},Ed=class extends _d{async run(){let t=await new bp(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?Eo({},n):void 0)})}withFaceLandmarks(t=!1){return new Cd(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Uo(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Ho(this.runAndExtendWithFaceDetection(),this.input)}};function xce(e,t=new va){return new Ed(e,t)}function Ig(e,t=new va){return new bp(e,t)}async function v$(e,t){return Ig(e,new va(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function vce(e,t={}){return Ig(e,new Za(t)).withFaceLandmarks().withFaceDescriptors()}var wce=v$;function z1(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 fr)return i;if(i instanceof Float32Array)return new fr(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new fr(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=>z1(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new ap(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>fr.fromJSON(a));return new Ad(n,t.distanceThreshold)}};function kce(e){let t=new Wo;return t.extractWeights(e),t}function w$(e,t){let{width:n,height:a}=new bn(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=>w$(r,{width:n,height:a}));if(Ro(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return hp(Eo(e,r),s)}return gr(e)?Eo(e,e.detection.forSize(n,a)):e instanceof aa||e instanceof bt?e.forSize(n,a):e}var Ice=WA;return sF(Sce);})(); diff --git a/dist/tfjs.esm.js b/dist/tfjs.esm.js index 278e28a..e2d1580 100644 --- a/dist/tfjs.esm.js +++ b/dist/tfjs.esm.js @@ -4,64 +4,64 @@ author: ' */ -var ZU=Object.create;var p0=Object.defineProperty;var JU=Object.getOwnPropertyDescriptor;var QU=Object.getOwnPropertyNames;var t4=Object.getPrototypeOf,e4=Object.prototype.hasOwnProperty;var gr=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),jt=(r,t)=>{for(var e in t)p0(r,e,{get:t[e],enumerable:!0})},r4=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of QU(t))!e4.call(r,o)&&o!==e&&p0(r,o,{get:()=>t[o],enumerable:!(n=JU(t,o))||n.enumerable});return r};var Tl=(r,t,e)=>(e=r!=null?ZU(t4(r)):{},r4(t||!r||!r.__esModule?p0(e,"default",{value:r,enumerable:!0}):e,r));var V1=gr((Flt,B1)=>{B1.exports=Ke;var po=null;try{po=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 Ke(r,t,e){this.low=r|0,this.high=t|0,this.unsigned=!!e}Ke.prototype.__isLong__;Object.defineProperty(Ke.prototype,"__isLong__",{value:!0});function On(r){return(r&&r.__isLong__)===!0}Ke.isLong=On;var $1={},D1={};function Hu(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=D1[r],n)?n:(e=je(r,(r|0)<0?-1:0,!0),o&&(D1[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=$1[r],n)?n:(e=je(r,r<0?-1:0,!1),o&&($1[r]=e),e))}Ke.fromInt=Hu;function mo(r,t){if(isNaN(r))return t?Uu:fo;if(t){if(r<0)return Uu;if(r>=P1)return z1}else{if(r<=-F1)return Fn;if(r+1>=F1)return M1}return r<0?mo(-r,t).neg():je(r%tm|0,r/tm|0,t)}Ke.fromNumber=mo;function je(r,t,e){return new Ke(r,t,e)}Ke.fromBits=je;var ex=Math.pow;function S0(r,t,e){if(r.length===0)throw Error("empty string");if(r==="NaN"||r==="Infinity"||r==="+Infinity"||r==="-Infinity")return fo;if(typeof t=="number"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error("interior hyphen");if(n===0)return S0(r.substring(1),t,e).neg();for(var o=mo(ex(e,8)),s=fo,i=0;i>>0:this.low};yt.toNumber=function(){return this.unsigned?(this.high>>>0)*tm+(this.low>>>0):this.high*tm+(this.low>>>0)};yt.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}};yt.getHighBits=function(){return this.high};yt.getHighBitsUnsigned=function(){return this.high>>>0};yt.getLowBits=function(){return this.low};yt.getLowBitsUnsigned=function(){return this.low>>>0};yt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Fn)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,e=31;e>0&&(t&1<=0};yt.isOdd=function(){return(this.low&1)===1};yt.isEven=function(){return(this.low&1)===0};yt.equals=function(t){return On(t)||(t=Ws(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low};yt.eq=yt.equals;yt.notEquals=function(t){return!this.eq(t)};yt.neq=yt.notEquals;yt.ne=yt.notEquals;yt.lessThan=function(t){return this.comp(t)<0};yt.lt=yt.lessThan;yt.lessThanOrEqual=function(t){return this.comp(t)<=0};yt.lte=yt.lessThanOrEqual;yt.le=yt.lessThanOrEqual;yt.greaterThan=function(t){return this.comp(t)>0};yt.gt=yt.greaterThan;yt.greaterThanOrEqual=function(t){return this.comp(t)>=0};yt.gte=yt.greaterThanOrEqual;yt.ge=yt.greaterThanOrEqual;yt.compare=function(t){if(On(t)||(t=Ws(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};yt.comp=yt.compare;yt.negate=function(){return!this.unsigned&&this.eq(Fn)?Fn:this.not().add(Qp)};yt.neg=yt.negate;yt.add=function(t){On(t)||(t=Ws(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,je(m<<16|f,c<<16|p,this.unsigned)};yt.subtract=function(t){return On(t)||(t=Ws(t)),this.add(t.neg())};yt.sub=yt.subtract;yt.multiply=function(t){if(this.isZero())return fo;if(On(t)||(t=Ws(t)),po){var e=po.mul(this.low,this.high,t.low,t.high);return je(e,po.get_high(),this.unsigned)}if(t.isZero())return fo;if(this.eq(Fn))return t.isOdd()?Fn:fo;if(t.eq(Fn))return this.isOdd()?Fn:fo;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(O1)&&t.lt(O1))return mo(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,je(f<<16|d,p<<16|m,this.unsigned)};yt.mul=yt.multiply;yt.divide=function(t){if(On(t)||(t=Ws(t)),t.isZero())throw Error("division by zero");if(po){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?po.div_u:po.div_s)(this.low,this.high,t.low,t.high);return je(e,po.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Uu:fo;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Uu;if(t.gt(this.shru(1)))return L1;s=Uu}else{if(this.eq(Fn)){if(t.eq(Qp)||t.eq(I0))return Fn;if(t.eq(Fn))return Qp;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(fo)?t.isNegative()?Qp:I0:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(Fn))return this.unsigned?Uu:fo;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=fo}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:ex(2,a-48),l=mo(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=mo(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Qp),s=s.add(l),o=o.sub(c)}return s};yt.div=yt.divide;yt.modulo=function(t){if(On(t)||(t=Ws(t)),po){var e=(this.unsigned?po.rem_u:po.rem_s)(this.low,this.high,t.low,t.high);return je(e,po.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))};yt.mod=yt.modulo;yt.rem=yt.modulo;yt.not=function(){return je(~this.low,~this.high,this.unsigned)};yt.and=function(t){return On(t)||(t=Ws(t)),je(this.low&t.low,this.high&t.high,this.unsigned)};yt.or=function(t){return On(t)||(t=Ws(t)),je(this.low|t.low,this.high|t.high,this.unsigned)};yt.xor=function(t){return On(t)||(t=Ws(t)),je(this.low^t.low,this.high^t.high,this.unsigned)};yt.shiftLeft=function(t){return On(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?je(this.low<>>32-t,this.unsigned):je(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):je(this.high>>t-32,this.high>=0?0:-1,this.unsigned)};yt.shr=yt.shiftRight;yt.shiftRightUnsigned=function(t){if(On(t)&&(t=t.toInt()),t&=63,t===0)return this;var e=this.high;if(t<32){var n=this.low;return je(n>>>t|e<<32-t,e>>>t,this.unsigned)}else return t===32?je(e,0,this.unsigned):je(e>>>t-32,0,this.unsigned)};yt.shru=yt.shiftRightUnsigned;yt.shr_u=yt.shiftRightUnsigned;yt.toSigned=function(){return this.unsigned?je(this.low,this.high,!1):this};yt.toUnsigned=function(){return this.unsigned?this:je(this.low,this.high,!0)};yt.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()};yt.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]};yt.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]};Ke.fromBytes=function(t,e,n){return n?Ke.fromBytesLE(t,e):Ke.fromBytesBE(t,e)};Ke.fromBytesLE=function(t,e){return new Ke(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)};Ke.fromBytesBE=function(t,e){return new Ke(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}});var C_=gr(()=>{});var v_=gr(()=>{});var IE=gr((vE,fS)=>{(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})(vE,typeof fS=="object"&&fS,typeof define=="function"&&define)});var TE=gr((SE,dS)=>{(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})(SE,typeof dS=="object"&&dS,typeof define=="function"&&define)});var kE=gr((NE,hS)=>{(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})(NE,typeof hS=="object"&&hS,typeof define=="function"&&define)});var EE=gr((_E,gS)=>{(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})(_E,typeof gS=="object"&&gS,typeof define=="function"&&define)});var $E=gr((AE,xS)=>{(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})(AE,typeof xS=="object"&&xS,typeof define=="function"&&define)});var RE=gr((DE,yS)=>{(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})(DE,typeof yS=="object"&&yS,typeof define=="function"&&define)});var FE=gr(()=>{});var PE=gr((OE,cy)=>{(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,T){var E=[];C=C==!0?{entropy:!0}:C||{};var $=g(h(C.entropy?[w,b(t)]:w==null?x():w,3),E),D=new f(E),P=function(){for(var M=D.g(o),W=a,H=0;M=l;)M/=2,W/=2,H>>>=1;return(M+H)/W};return P.int32=function(){return D.g(4)|0},P.quick=function(){return D.g(4)/4294967296},P.double=P,g(b(D.S),t),(C.pass||T||function(M,W,H,q){return q&&(q.S&&d(q,D),M.state=function(){return d(D,{})}),H?(e[i]=M,W):M})(P,$,"global"in C?C.global:this==e,C.state)}function f(w){var C,T=w.length,E=this,$=0,D=E.i=E.j=0,P=E.S=[];for(T||(w=[T++]);${var Tj=IE(),Nj=TE(),kj=kE(),_j=EE(),Ej=$E(),Aj=RE(),sc=PE();sc.alea=Tj;sc.xor128=Nj;sc.xorwow=kj;sc.xorshift7=_j;sc.xor4096=Ej;sc.tychei=Aj;LE.exports=sc});var kT=gr(()=>{});var pw=gr(()=>{});var hg=gr(()=>{});var qW=gr(()=>{});var KW=gr(()=>{});var jW=gr(()=>{});var XW=gr((kv,qk)=>{var Hk=(()=>{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 Ft.buffer!=dr&&zo(Ft.buffer),op}function n(){return Ft.buffer!=dr&&zo(Ft.buffer),sp}function o(){return Ft.buffer!=dr&&zo(Ft.buffer),Vd}function s(){return Ft.buffer!=dr&&zo(Ft.buffer),wg}function i(){return Ft.buffer!=dr&&zo(Ft.buffer),Cg}function a(){return Ft.buffer!=dr&&zo(Ft.buffer),vg}function u(){return Ft.buffer!=dr&&zo(Ft.buffer),Ig}var l=typeof t!="undefined"?t:{},c,p;l.ready=new Promise(function(k,R){c=k,p=R});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=(k,R)=>{throw R},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,T="";function E(k){return l.locateFile?l.locateFile(k,T):T+k}var $,D,P,M;function W(k){if(k instanceof Zd)return;K("exiting due to exception: "+k)}var H,q,X;if(w){b?T=hg().dirname(T)+"/":T=__dirname+"/",X=()=>{q||(H=pw(),q=hg())},$=function(V,Y){return X(),V=q.normalize(V),H.readFileSync(V,Y?void 0:"utf8")},P=R=>{var V=$(R,!0);return V.buffer||(V=new Uint8Array(V)),V},D=(R,V,Y)=>{X(),R=q.normalize(R),H.readFile(R,function(ht,wt){ht?Y(ht):V(wt.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\/g,"/")),d=process.argv.slice(2),process.on("uncaughtException",function(R){if(!(R instanceof Zd))throw R}),process.on("unhandledRejection",function(R){throw R}),g=(R,V)=>{if(Pu())throw process.exitCode=R,V;W(V),process.exit(R)},l.inspect=function(){return"[Emscripten Module object]"};let k;try{k=qW()}catch(R){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),R}global.Worker=k.Worker}else(x||b)&&(b?T=self.location.href:typeof document!="undefined"&&document.currentScript&&(T=document.currentScript.src),typeof r!="undefined"&&r&&(T=r),T.indexOf("blob:")!==0?T=T.substr(0,T.replace(/[?#].*/,"").lastIndexOf("/")+1):T="",w||($=k=>{var R=new XMLHttpRequest;return R.open("GET",k,!1),R.send(null),R.responseText},b&&(P=k=>{var R=new XMLHttpRequest;return R.open("GET",k,!1),R.responseType="arraybuffer",R.send(null),new Uint8Array(R.response)}),D=(k,R,V)=>{var Y=new XMLHttpRequest;Y.open("GET",k,!0),Y.responseType="arraybuffer",Y.onload=()=>{if(Y.status==200||Y.status==0&&Y.response){R(Y.response);return}V()},Y.onerror=V,Y.send(null)}),M=k=>document.title=k);w&&typeof performance=="undefined"&&(global.performance=KW().performance);var j=console.log.bind(console),Z=console.warn.bind(console);w&&(X(),j=k=>H.writeSync(1,k+` -`),Z=k=>H.writeSync(2,k+` -`));var et=l.print||j,K=l.printErr||Z;Object.assign(l,f),f=null,l.arguments&&(d=l.arguments),l.thisProgram&&(h=l.thisProgram),l.quit&&(g=l.quit);var ot=4;function st(k){st.shown||(st.shown={}),st.shown[k]||(st.shown[k]=1,K(k))}function it(k,R){if(typeof WebAssembly.Function=="function"){for(var V={i:"i32",j:"i64",f:"f32",d:"f64"},Y={parameters:[],results:R[0]=="v"?[]:[V[R[0]]]},ht=1;ht{bt=k},At=Atomics.load,Rt=Atomics.store,qt=Atomics.compareExchange,Kt;l.wasmBinary&&(Kt=l.wasmBinary);var me=l.noExitRuntime||!0;typeof WebAssembly!="object"&&ap("no native wasm support detected");var Ft,Ae,Ie=!1,le;function qe(k,R){k||ap(R)}function Re(k){var R=l["_"+k];return R}function Jr(k,R,V,Y,ht){var wt={string:function(Dn){var xp=0;if(Dn!=null&&Dn!==0){var b1=(Dn.length<<2)+1;xp=gp(b1),$n(Dn,xp,b1)}return xp},array:function(Dn){var xp=gp(Dn.length);return Cl(Dn,xp),xp}};function kt(Dn){return R==="string"?qr(Dn):R==="boolean"?Boolean(Dn):Dn}var Vt=Re(k),nr=[],Wo=0;if(Y)for(var Uo=0;Uo(V.buffer instanceof SharedArrayBuffer&&(V=new Uint8Array(V)),R.decode.call(R,V))}var Qr=typeof TextDecoder!="undefined"?new Or("utf8"):void 0;function tn(k,R,V){for(var Y=R+V,ht=R;k[ht]&&!(ht>=Y);)++ht;if(ht-R>16&&k.subarray&&Qr)return Qr.decode(k.subarray(R,ht));for(var wt="";R>10,56320|Wo&1023)}}return wt}function qr(k,R){return k?tn(n(),k,R):""}function so(k,R,V,Y){if(!(Y>0))return 0;for(var ht=V,wt=V+Y-1,kt=0;kt=55296&&Vt<=57343){var nr=k.charCodeAt(++kt);Vt=65536+((Vt&1023)<<10)|nr&1023}if(Vt<=127){if(V>=wt)break;R[V++]=Vt}else if(Vt<=2047){if(V+1>=wt)break;R[V++]=192|Vt>>6,R[V++]=128|Vt&63}else if(Vt<=65535){if(V+2>=wt)break;R[V++]=224|Vt>>12,R[V++]=128|Vt>>6&63,R[V++]=128|Vt&63}else{if(V+3>=wt)break;R[V++]=240|Vt>>18,R[V++]=128|Vt>>12&63,R[V++]=128|Vt>>6&63,R[V++]=128|Vt&63}}return R[V]=0,V-ht}function $n(k,R,V){return so(k,n(),R,V)}function Mo(k){for(var R=0,V=0;V=55296&&Y<=57343&&(Y=65536+((Y&1023)<<10)|k.charCodeAt(++V)&1023),Y<=127?++R:Y<=2047?R+=2:Y<=65535?R+=3:R+=4}return R}var io=typeof TextDecoder!="undefined"?new Or("utf-16le"):void 0;function Cl(k,R){e().set(k,R)}function Fu(k,R,V){for(var Y=0;Y>0]=k.charCodeAt(Y);V||(e()[R>>0]=0)}function np(k,R){return k%R>0&&(k+=R-k%R),k}var dr,op,sp,Vd,wg,Cg,Qk,vg,Ig;C&&(dr=l.buffer);function zo(k){dr=k,l.HEAP8=op=new Int8Array(k),l.HEAP16=Vd=new Int16Array(k),l.HEAP32=Cg=new Int32Array(k),l.HEAPU8=sp=new Uint8Array(k),l.HEAPU16=wg=new Uint16Array(k),l.HEAPU32=Qk=new Uint32Array(k),l.HEAPF32=vg=new Float32Array(k),l.HEAPF64=Ig=new Float64Array(k)}var Sg=l.INITIAL_MEMORY||16777216;if(C)Ft=l.wasmMemory,dr=l.buffer;else if(l.wasmMemory)Ft=l.wasmMemory;else if(Ft=new WebAssembly.Memory({initial:Sg/65536,maximum:32768,shared:!0}),!(Ft.buffer instanceof SharedArrayBuffer))throw K("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");Ft&&(dr=Ft.buffer),Sg=dr.byteLength,zo(dr);var Hn,ip=[],vl=[],Av=[],Tg=[],Ou=!1,$v=!1,Ng=0;function Pu(){return me||Ng>0}function en(){if(l.preRun)for(typeof l.preRun=="function"&&(l.preRun=[l.preRun]);l.preRun.length;)t1(l.preRun.shift());Ag(ip)}function Gd(){Ou=!0,!C&&Ag(vl)}function Dv(){C||(Ut.terminateAllThreads(),$v=!0)}function Rv(){if(!C){if(l.postRun)for(typeof l.postRun=="function"&&(l.postRun=[l.postRun]);l.postRun.length;)Wd(l.postRun.shift());Ag(Tg)}}function t1(k){ip.unshift(k)}function e1(k){vl.unshift(k)}function Wd(k){Tg.unshift(k)}var Il=0,kg=null,Bo=null;function Ud(k){Il++,l.monitorRunDependencies&&l.monitorRunDependencies(Il)}function r1(k){if(Il--,l.monitorRunDependencies&&l.monitorRunDependencies(Il),Il==0&&(kg!==null&&(clearInterval(kg),kg=null),Bo)){var R=Bo;Bo=null,R()}}l.preloadedImages={},l.preloadedAudios={};function ap(k){C?postMessage({cmd:"onAbort",arg:k}):l.onAbort&&l.onAbort(k),k="Aborted("+k+")",K(k),Ie=!0,le=1,k+=". Build with -s ASSERTIONS=1 for more info.";var R=new WebAssembly.RuntimeError(k);throw p(R),R}var Fv="data:application/octet-stream;base64,";function Hd(k){return k.startsWith(Fv)}function _g(k){return k.startsWith("file://")}var rn;rn="tfjs-backend-wasm-threaded-simd.wasm",Hd(rn)||(rn=E(rn));function Eg(k){try{if(k==rn&&Kt)return new Uint8Array(Kt);if(P)return P(k);throw"both async and sync fetching of the wasm failed"}catch(R){ap(R)}}function lp(){if(!Kt&&(x||b)){if(typeof fetch=="function"&&!_g(rn))return fetch(rn,{credentials:"same-origin"}).then(function(k){if(!k.ok)throw"failed to load wasm binary file at '"+rn+"'";return k.arrayBuffer()}).catch(function(){return Eg(rn)});if(D)return new Promise(function(k,R){D(rn,function(V){k(new Uint8Array(V))},R)})}return Promise.resolve().then(function(){return Eg(rn)})}function Ov(){var k={env:Gg,wasi_snapshot_preview1:Gg};function R(kt,Vt){var nr=kt.exports;if(l.asm=nr,Gv(l.asm.emscripten_tls_init),Hn=l.asm.__indirect_function_table,e1(l.asm.__wasm_call_ctors),Ae=Vt,!C){var Wo=Ut.unusedWorkers.length;Ut.unusedWorkers.forEach(function(Uo){Ut.loadWasmModuleToWorker(Uo,function(){--Wo||r1("wasm-instantiate")})})}}C||Ud("wasm-instantiate");function V(kt){R(kt.instance,kt.module)}function Y(kt){return lp().then(function(Vt){return WebAssembly.instantiate(Vt,k)}).then(function(Vt){return Vt}).then(kt,function(Vt){K("failed to asynchronously prepare wasm: "+Vt),ap(Vt)})}function ht(){return!Kt&&typeof WebAssembly.instantiateStreaming=="function"&&!Hd(rn)&&!_g(rn)&&typeof fetch=="function"?fetch(rn,{credentials:"same-origin"}).then(function(kt){var Vt=WebAssembly.instantiateStreaming(kt,k);return Vt.then(V,function(nr){return K("wasm streaming compile failed: "+nr),K("falling back to ArrayBuffer instantiation"),Y(V)})}):Y(V)}if(l.instantiateWasm)try{var wt=l.instantiateWasm(k,R);return wt}catch(kt){return K("Module.instantiateWasm callback failed with error: "+kt),!1}return ht().catch(p),{}}var n1,o1,Pv={};function Ag(k){for(;k.length>0;){var R=k.shift();if(typeof R=="function"){R(l);continue}var V=R.func;typeof V=="number"?R.arg===void 0?cp(V)():cp(V)(R.arg):V(R.arg===void 0?null:R.arg)}}function up(k){var R=u0(),V=k();return Kg(R),V}function oU(k){return k}function s1(k){var R=/\b_Z[\w\d_]+/g;return k.replace(R,function(V){var Y=V;return V===Y?V:Y+" ["+V+"]"})}function Lv(k){i()[k>>2]=0;var R=Ut.pthreads[k];delete Ut.pthreads[k],R.worker.terminate(),l0(k),Ut.runningWorkers.splice(Ut.runningWorkers.indexOf(R.worker),1),R.worker.pthread=void 0}function Mv(k){var R=Ut.pthreads[k];R.worker.postMessage({cmd:"cancel"})}function $g(k){var R=Ut.pthreads[k];if(R){i()[k>>2]=0;var V=R.worker;Ut.returnWorkerToPool(V)}}function Dg(k){KU(k)}function zv(k){if(k instanceof Zd||k=="unwind")return le;g(1,k)}var Ut={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],init:function(){C?Ut.initWorker():Ut.initMainThread()},initMainThread:function(){for(var k=8,R=0;R>2]=0;try{k()}finally{i()[y1>>2]=1}},receiveObjectTransfer:function(k){},threadInit:function(){for(var k in Ut.tlsInitFunctions)Ut.tlsInitFunctions[k]()},loadWasmModuleToWorker:function(k,R){k.onmessage=V=>{var Y=V.data,ht=Y.cmd;if(k.pthread&&(Ut.currentProxiedOperationCallerThread=k.pthread.threadInfoStruct),Y.targetThread&&Y.targetThread!=qg()){var wt=Ut.pthreads[Y.targetThread];wt?wt.worker.postMessage(Y,Y.transferList):K('Internal error! Worker sent a message "'+ht+'" to target pthread '+Y.targetThread+", but that thread no longer exists!"),Ut.currentProxiedOperationCallerThread=void 0;return}ht==="processQueuedMainThreadWork"?f1():ht==="spawnThread"?Fg(Y):ht==="cleanupThread"?$g(Y.thread):ht==="killThread"?Lv(Y.thread):ht==="cancelThread"?Mv(Y.thread):ht==="loaded"?(k.loaded=!0,R&&R(k),k.runPthread&&(k.runPthread(),delete k.runPthread)):ht==="print"?et("Thread "+Y.threadId+": "+Y.text):ht==="printErr"?K("Thread "+Y.threadId+": "+Y.text):ht==="alert"?alert("Thread "+Y.threadId+": "+Y.text):Y.target==="setimmediate"?k.postMessage(Y):ht==="onAbort"?l.onAbort&&l.onAbort(Y.arg):K("worker sent an unknown command "+ht),Ut.currentProxiedOperationCallerThread=void 0},k.onerror=V=>{var Y="worker sent an error!";throw K(Y+" "+V.filename+":"+V.lineno+": "+V.message),V},w&&(k.on("message",function(V){k.onmessage({data:V})}),k.on("error",function(V){k.onerror(V)}),k.on("detachedExit",function(){})),k.postMessage({cmd:"load",urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:Ft,wasmModule:Ae})},allocateUnusedWorker:function(){var k=E("tfjs-backend-wasm-threaded-simd.worker.js");Ut.unusedWorkers.push(new Worker(k))},getNewWorker:function(){return Ut.unusedWorkers.length==0&&(Ut.allocateUnusedWorker(),Ut.loadWasmModuleToWorker(Ut.unusedWorkers[0])),Ut.unusedWorkers.pop()}};function Bv(){var k=qg(),R=i()[k+44>>2],V=i()[k+48>>2],Y=R-V;x1(R,Y),Kg(R)}l.establishStackSpace=Bv;function Rg(k){if(C)return zu(1,0,k);try{Dg(k)}catch(R){zv(R)}}var Lu=[];function cp(k){var R=Lu[k];return R||(k>=Lu.length&&(Lu.length=k+1),Lu[k]=R=Hn.get(k)),R}function Vv(k,R){return cp(k)(R)}l.invokeEntryPoint=Vv;function i1(){var k=new Error;if(!k.stack){try{throw new Error}catch(R){k=R}if(!k.stack)return"(no stack trace available)"}return k.stack.toString()}function Gv(k,R,V){Ut.tlsInitFunctions.push(k)}function a1(k,R){Hn.set(k,R),Lu[k]=R}var Mu;w?Mu=()=>{var k=process.hrtime();return k[0]*1e3+k[1]/1e6}:C?Mu=()=>performance.now()-l.__performance_now_clock_drift:Mu=()=>performance.now();var Wv=!0;function Uv(k){return i()[m1()>>2]=k,k}function Hv(k,R){var V;if(k===0)V=Date.now();else if((k===1||k===4)&&Wv)V=Mu();else return Uv(28),-1;return i()[R>>2]=V/1e3|0,i()[R+4>>2]=V%1e3*1e3*1e3|0,0}function qv(k,R){return Hv(k,R)}function Kv(k){d1(k,!b,1,!x),Ut.threadInit()}function jv(k){C?postMessage({cmd:"cleanupThread",thread:k}):$g(k)}function Fg(k){var R=Ut.getNewWorker();if(!R)return 6;Ut.runningWorkers.push(R);var V=Ut.pthreads[k.pthread_ptr]={worker:R,threadInfoStruct:k.pthread_ptr};R.pthread=V;var Y={cmd:"run",start_routine:k.startRoutine,arg:k.arg,threadInfoStruct:k.pthread_ptr};return R.runPthread=()=>{Y.time=performance.now(),R.postMessage(Y,k.transferList)},R.loaded&&(R.runPthread(),delete R.runPthread),0}function Xv(k,R,V,Y){if(typeof SharedArrayBuffer=="undefined")return K("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var ht=[],wt=0;if(C&&(ht.length===0||wt))return h1(687865856,k,R,V,Y);if(wt)return wt;var kt={startRoutine:V,pthread_ptr:k,arg:Y,transferList:ht};return C?(kt.cmd="spawnThread",postMessage(kt,ht),0):Fg(kt)}function Yv(){return 2097152}function Zv(k,R){if(k==R)postMessage({cmd:"processQueuedMainThreadWork"});else if(C)postMessage({targetThread:k,cmd:"processThreadQueue"});else{var V=Ut.pthreads[k],Y=V&&V.worker;if(!Y)return;Y.postMessage({cmd:"processThreadQueue"})}return 1}function Jv(){ap("")}function Qv(){w||b||st("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function Og(){return 2147483648}function tI(k,R,V){n().copyWithin(k,R,R+V)}function eI(){return w?jW().cpus().length:navigator.hardwareConcurrency}function zu(k,R){var V=arguments.length-2,Y=arguments;return up(function(){for(var ht=V,wt=gp(ht*8),kt=wt>>3,Vt=0;Vt>3,ht=0;ht>>16),zo(Ft.buffer),1}catch(R){}}function oI(k){var R=n().length;if(k=k>>>0,k<=R)return!1;var V=Og();if(k>V)return!1;for(var Y=1;Y<=4;Y*=2){var ht=R*(1+.2/Y);ht=Math.min(ht,k+100663296);var wt=Math.min(V,np(Math.max(k,ht),65536)),kt=nI(wt);if(kt)return!0}return!1}var ne={inEventHandler:0,removeAllEventListeners:function(){for(var k=ne.eventHandlers.length-1;k>=0;--k)ne._removeHandler(k);ne.eventHandlers=[],ne.deferredCalls=[]},registerRemoveEventListeners:function(){ne.removeEventListenersRegistered||(Av.push(ne.removeAllEventListeners),ne.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(k,R,V){function Y(kt,Vt){if(kt.length!=Vt.length)return!1;for(var nr in kt)if(kt[nr]!=Vt[nr])return!1;return!0}for(var ht in ne.deferredCalls){var wt=ne.deferredCalls[ht];if(wt.targetFunction==k&&Y(wt.argsList,V))return}ne.deferredCalls.push({targetFunction:k,precedence:R,argsList:V}),ne.deferredCalls.sort(function(kt,Vt){return kt.precedence>2]=V,i()[wt+4>>2]=Y,i()[wt+8>>2]=ht,a0(k,637534208,R,Y,wt)})},getTargetThreadForEventCallback:function(k){switch(k){case 1:return 0;case 2:return Ut.currentProxiedOperationCallerThread;default:return k}},getNodeNameForTarget:function(k){return k?k==window?"#window":k==screen?"#screen":k&&k.nodeName?k.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function sI(k){var R=Mo(k)+1,V=i0(R);return $n(k,V,R),V}function iI(k,R,V,Y){up(function(){var ht=gp(12),wt=0;R&&(wt=sI(R)),i()[ht>>2]=wt,i()[ht+4>>2]=V,i()[ht+8>>2]=Y,a0(k,657457152,0,wt,ht)})}function aI(k,R,V,Y){R=R?qr(R):"",iI(k,R,V,Y)}function lI(k){return k>2?qr(k):k}var uI=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function cI(k){k=lI(k);var R=uI[k]||(typeof document!="undefined"?document.querySelector(k):void 0);return R}function Kd(k){return cI(k)}function Pg(k,R,V){var Y=Kd(k);if(!Y)return-4;if(Y.canvasSharedPtr&&(i()[Y.canvasSharedPtr>>2]=R,i()[Y.canvasSharedPtr+4>>2]=V),Y.offscreenCanvas||!Y.controlTransferredOffscreen){Y.offscreenCanvas&&(Y=Y.offscreenCanvas);var ht=!1;if(Y.GLctxObject&&Y.GLctxObject.GLctx){var wt=Y.GLctxObject.GLctx.getParameter(2978);ht=wt[0]===0&&wt[1]===0&&wt[2]===Y.width&&wt[3]===Y.height}Y.width=R,Y.height=V,ht&&Y.GLctxObject.GLctx.viewport(0,0,R,V)}else if(Y.canvasSharedPtr){var kt=i()[Y.canvasSharedPtr+8>>2];return aI(kt,k,R,V),1}else return-4;return 0}function Lg(k,R,V){return C?zu(2,1,k,R,V):Pg(k,R,V)}function pI(k,R,V){var Y=Kd(k);return Y?Pg(k,R,V):Lg(k,R,V)}function mI(){throw"unwind"}function fI(k){var R=k.getExtension("ANGLE_instanced_arrays");if(R)return k.vertexAttribDivisor=function(V,Y){R.vertexAttribDivisorANGLE(V,Y)},k.drawArraysInstanced=function(V,Y,ht,wt){R.drawArraysInstancedANGLE(V,Y,ht,wt)},k.drawElementsInstanced=function(V,Y,ht,wt,kt){R.drawElementsInstancedANGLE(V,Y,ht,wt,kt)},1}function dI(k){var R=k.getExtension("OES_vertex_array_object");if(R)return k.createVertexArray=function(){return R.createVertexArrayOES()},k.deleteVertexArray=function(V){R.deleteVertexArrayOES(V)},k.bindVertexArray=function(V){R.bindVertexArrayOES(V)},k.isVertexArray=function(V){return R.isVertexArrayOES(V)},1}function hI(k){var R=k.getExtension("WEBGL_draw_buffers");if(R)return k.drawBuffers=function(V,Y){R.drawBuffersWEBGL(V,Y)},1}function gI(k){return!!(k.multiDrawWebgl=k.getExtension("WEBGL_multi_draw"))}var rr={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function(R){rr.lastError||(rr.lastError=R)},getNewId:function(k){for(var R=rr.counter++,V=k.length;V>2]:-1;ht+=qr(i()[V+wt*4>>2],kt<0?void 0:kt)}return ht},createContext:function(k,R){k.getContextSafariWebGL2Fixed||(k.getContextSafariWebGL2Fixed=k.getContext,k.getContext=function(ht,wt){var kt=k.getContextSafariWebGL2Fixed(ht,wt);return ht=="webgl"==kt instanceof WebGLRenderingContext?kt:null});var V=k.getContext("webgl",R);if(!V)return 0;var Y=rr.registerContext(V,R);return Y},registerContext:function(k,R){var V=i0(8);i()[V+4>>2]=qg();var Y={handle:V,attributes:R,version:R.majorVersion,GLctx:k};return k.canvas&&(k.canvas.GLctxObject=Y),rr.contexts[V]=Y,(typeof R.enableExtensionsByDefault=="undefined"||R.enableExtensionsByDefault)&&rr.initExtensions(Y),V},makeContextCurrent:function(k){return rr.currentContext=rr.contexts[k],l.ctx=Vg=rr.currentContext&&rr.currentContext.GLctx,!(k&&!Vg)},getContext:function(k){return rr.contexts[k]},deleteContext:function(k){rr.currentContext===rr.contexts[k]&&(rr.currentContext=null),typeof ne=="object"&&ne.removeAllHandlersOnTarget(rr.contexts[k].GLctx.canvas),rr.contexts[k]&&rr.contexts[k].GLctx.canvas&&(rr.contexts[k].GLctx.canvas.GLctxObject=void 0),p1(rr.contexts[k].handle),rr.contexts[k]=null},initExtensions:function(k){if(k||(k=rr.currentContext),!k.initExtensionsDone){k.initExtensionsDone=!0;var R=k.GLctx;fI(R),dI(R),hI(R),R.disjointTimerQueryExt=R.getExtension("EXT_disjoint_timer_query"),gI(R);var V=R.getSupportedExtensions()||[];V.forEach(function(Y){!Y.includes("lose_context")&&!Y.includes("debug")&&R.getExtension(Y)})}}},xI=["default","low-power","high-performance"];function yI(k,R){var V=R>>2,Y=i()[V+6],ht={alpha:!!i()[V+0],depth:!!i()[V+1],stencil:!!i()[V+2],antialias:!!i()[V+3],premultipliedAlpha:!!i()[V+4],preserveDrawingBuffer:!!i()[V+5],powerPreference:xI[Y],failIfMajorPerformanceCaveat:!!i()[V+7],majorVersion:i()[V+8],minorVersion:i()[V+9],enableExtensionsByDefault:i()[V+10],explicitSwapControl:i()[V+11],proxyContextToMainThread:i()[V+12],renderViaOffscreenBackBuffer:i()[V+13]},wt=Kd(k);if(!wt||ht.explicitSwapControl)return 0;var kt=rr.createContext(wt,ht);return kt}function bI(k,R){return yI(k,R)}var pp={mappings:{},buffers:[null,[],[]],printChar:function(k,R){var V=pp.buffers[k];R===0||R===10?((k===1?et:K)(tn(V,0)),V.length=0):V.push(R)},varargs:void 0,get:function(){pp.varargs+=4;var k=i()[pp.varargs-4>>2];return k},getStr:function(k){var R=qr(k);return R},get64:function(k,R){return k}};function Mg(k){return C?zu(3,1,k):0}function zg(k,R,V,Y,ht){if(C)return zu(4,1,k,R,V,Y,ht)}function Bg(k,R,V,Y){if(C)return zu(5,1,k,R,V,Y);for(var ht=0,wt=0;wt>2],Vt=i()[R+4>>2];R+=8;for(var nr=0;nr>2]=ht,0}function wI(k){Tt(k)}Ut.init();var Vg,CI=[null,Rg,Lg,Mg,zg,Bg],l1=!1,Gg={__clock_gettime:qv,__emscripten_init_main_thread_js:Kv,__emscripten_thread_cleanup:jv,__pthread_create_js:Xv,_emscripten_default_pthread_stack_size:Yv,_emscripten_notify_thread_queue:Zv,abort:Jv,emscripten_check_blocking_allowed:Qv,emscripten_get_heap_max:Og,emscripten_get_now:Mu,emscripten_memcpy_big:tI,emscripten_num_logical_cores:eI,emscripten_receive_on_main_thread_js:rI,emscripten_resize_heap:oI,emscripten_set_canvas_element_size:pI,emscripten_unwind_to_js_event_loop:mI,emscripten_webgl_create_context:bI,exit:Dg,fd_close:Mg,fd_seek:zg,fd_write:Bg,memory:Ft||l.wasmMemory,setTempRet0:wI},u1=Ov(),vI=l.___wasm_call_ctors=function(){return(vI=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},II=l._init=function(){return(II=l._init=l.asm.init).apply(null,arguments)},SI=l._init_with_threads_count=function(){return(SI=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},TI=l._get_threads_count=function(){return(TI=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},NI=l._register_tensor=function(){return(NI=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},kI=l._dispose_data=function(){return(kI=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},_I=l._dispose=function(){return(_I=l._dispose=l.asm.dispose).apply(null,arguments)},EI=l._Abs=function(){return(EI=l._Abs=l.asm.Abs).apply(null,arguments)},AI=l._Add=function(){return(AI=l._Add=l.asm.Add).apply(null,arguments)},$I=l._AddN=function(){return($I=l._AddN=l.asm.AddN).apply(null,arguments)},DI=l._All=function(){return(DI=l._All=l.asm.All).apply(null,arguments)},RI=l._Any=function(){return(RI=l._Any=l.asm.Any).apply(null,arguments)},FI=l._ArgMax=function(){return(FI=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},OI=l._AvgPool=function(){return(OI=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},PI=l._BatchMatMul=function(){return(PI=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},LI=l._Ceil=function(){return(LI=l._Ceil=l.asm.Ceil).apply(null,arguments)},MI=l._ClipByValue=function(){return(MI=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},zI=l._Conv2D=function(){return(zI=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},BI=l._Conv2DBackpropInput=function(){return(BI=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},VI=l._Cos=function(){return(VI=l._Cos=l.asm.Cos).apply(null,arguments)},GI=l._Cosh=function(){return(GI=l._Cosh=l.asm.Cosh).apply(null,arguments)},WI=l._CropAndResize=function(){return(WI=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},UI=l._Cumprod=function(){return(UI=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},HI=l._Cumsum=function(){return(HI=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},qI=l._DepthToSpace=function(){return(qI=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},KI=l._DepthwiseConv2dNative=function(){return(KI=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},jI=l._Elu=function(){return(jI=l._Elu=l.asm.Elu).apply(null,arguments)},XI=l._Equal=function(){return(XI=l._Equal=l.asm.Equal).apply(null,arguments)},YI=l._Exp=function(){return(YI=l._Exp=l.asm.Exp).apply(null,arguments)},ZI=l._FlipLeftRight=function(){return(ZI=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},JI=l._Floor=function(){return(JI=l._Floor=l.asm.Floor).apply(null,arguments)},QI=l._FloorDiv=function(){return(QI=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},t0=l._FusedBatchNorm=function(){return(t0=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},e0=l._FusedConv2D=function(){return(e0=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},Wg=l._FusedDepthwiseConv2D=function(){return(Wg=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},Ug=l._Gather=function(){return(Ug=l._Gather=l.asm.Gather).apply(null,arguments)},jd=l._GatherNd=function(){return(jd=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},r0=l._Greater=function(){return(r0=l._Greater=l.asm.Greater).apply(null,arguments)},n0=l._GreaterEqual=function(){return(n0=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},mp=l._LeakyRelu=function(){return(mp=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},Xd=l._Less=function(){return(Xd=l._Less=l.asm.Less).apply(null,arguments)},Yd=l._LessEqual=function(){return(Yd=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},c1=l._Log=function(){return(c1=l._Log=l.asm.Log).apply(null,arguments)},fp=l._LogicalAnd=function(){return(fp=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},dp=l._LogicalNot=function(){return(dp=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},o0=l._LogicalOr=function(){return(o0=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},U=l._LogicalXor=function(){return(U=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},Q=l._Max=function(){return(Q=l._Max=l.asm.Max).apply(null,arguments)},xt=l._MaxPool=function(){return(xt=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},$t=l._Maximum=function(){return($t=l._Maximum=l.asm.Maximum).apply(null,arguments)},he=l._Mean=function(){return(he=l._Mean=l.asm.Mean).apply(null,arguments)},xe=l._Min=function(){return(xe=l._Min=l.asm.Min).apply(null,arguments)},oe=l._Minimum=function(){return(oe=l._Minimum=l.asm.Minimum).apply(null,arguments)},ee=l._MirrorPad=function(){return(ee=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},hr=l._Multiply=function(){return(hr=l._Multiply=l.asm.Multiply).apply(null,arguments)},Vo=l._Neg=function(){return(Vo=l._Neg=l.asm.Neg).apply(null,arguments)},Go=l._NonMaxSuppressionV3=function(){return(Go=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},hp=l._NonMaxSuppressionV4=function(){return(hp=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},Bu=l._NonMaxSuppressionV5=function(){return(Bu=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},s0=l._NotEqual=function(){return(s0=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},nn=l._OneHot=function(){return(nn=l._OneHot=l.asm.OneHot).apply(null,arguments)},Sl=l._PadV2=function(){return(Sl=l._PadV2=l.asm.PadV2).apply(null,arguments)},Hg=l._Pow=function(){return(Hg=l._Pow=l.asm.Pow).apply(null,arguments)},sU=l._Prelu=function(){return(sU=l._Prelu=l.asm.Prelu).apply(null,arguments)},iU=l._Prod=function(){return(iU=l._Prod=l.asm.Prod).apply(null,arguments)},aU=l._RealDiv=function(){return(aU=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},lU=l._Relu=function(){return(lU=l._Relu=l.asm.Relu).apply(null,arguments)},uU=l._Relu6=function(){return(uU=l._Relu6=l.asm.Relu6).apply(null,arguments)},cU=l._ResizeBilinear=function(){return(cU=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},pU=l._ResizeNearestNeighbor=function(){return(pU=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},mU=l._Reverse=function(){return(mU=l._Reverse=l.asm.Reverse).apply(null,arguments)},fU=l._RotateWithOffset=function(){return(fU=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},dU=l._Round=function(){return(dU=l._Round=l.asm.Round).apply(null,arguments)},hU=l._Rsqrt=function(){return(hU=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},gU=l._ScatterNd=function(){return(gU=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},xU=l._SelectV2=function(){return(xU=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},yU=l._Sigmoid=function(){return(yU=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},bU=l._Sin=function(){return(bU=l._Sin=l.asm.Sin).apply(null,arguments)},wU=l._Softmax=function(){return(wU=l._Softmax=l.asm.Softmax).apply(null,arguments)},CU=l._SparseFillEmptyRows=function(){return(CU=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},vU=l._SparseReshape=function(){return(vU=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},IU=l._SparseSegmentReduction=function(){return(IU=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},SU=l._Sqrt=function(){return(SU=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},TU=l._Square=function(){return(TU=l._Square=l.asm.Square).apply(null,arguments)},NU=l._SquaredDifference=function(){return(NU=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},kU=l._Step=function(){return(kU=l._Step=l.asm.Step).apply(null,arguments)},_U=l._StridedSlice=function(){return(_U=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},EU=l._Sub=function(){return(EU=l._Sub=l.asm.Sub).apply(null,arguments)},AU=l._Sum=function(){return(AU=l._Sum=l.asm.Sum).apply(null,arguments)},$U=l._Tan=function(){return($U=l._Tan=l.asm.Tan).apply(null,arguments)},DU=l._Tanh=function(){return(DU=l._Tanh=l.asm.Tanh).apply(null,arguments)},RU=l._Tile=function(){return(RU=l._Tile=l.asm.Tile).apply(null,arguments)},FU=l._TopK=function(){return(FU=l._TopK=l.asm.TopK).apply(null,arguments)},OU=l._Transform=function(){return(OU=l._Transform=l.asm.Transform).apply(null,arguments)},PU=l._Transpose=function(){return(PU=l._Transpose=l.asm.Transpose).apply(null,arguments)},LU=l.__FusedMatMul=function(){return(LU=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},i0=l._malloc=function(){return(i0=l._malloc=l.asm.malloc).apply(null,arguments)},p1=l._free=function(){return(p1=l._free=l.asm.free).apply(null,arguments)},MU=l._emscripten_tls_init=function(){return(MU=l._emscripten_tls_init=l.asm.emscripten_tls_init).apply(null,arguments)},m1=l.___errno_location=function(){return(m1=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},qg=l._pthread_self=function(){return(qg=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},f1=l._emscripten_main_thread_process_queued_calls=function(){return(f1=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},zU=l.__emscripten_thread_crashed=function(){return(zU=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},d1=l.__emscripten_thread_init=function(){return(d1=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},BU=l._emscripten_current_thread_process_queued_calls=function(){return(BU=l._emscripten_current_thread_process_queued_calls=l.asm.emscripten_current_thread_process_queued_calls).apply(null,arguments)},VU=l._emscripten_main_browser_thread_id=function(){return(VU=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},GU=l._emscripten_sync_run_in_main_thread_2=function(){return(GU=l._emscripten_sync_run_in_main_thread_2=l.asm.emscripten_sync_run_in_main_thread_2).apply(null,arguments)},h1=l._emscripten_sync_run_in_main_thread_4=function(){return(h1=l._emscripten_sync_run_in_main_thread_4=l.asm.emscripten_sync_run_in_main_thread_4).apply(null,arguments)},g1=l._emscripten_run_in_main_runtime_thread_js=function(){return(g1=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},a0=l._emscripten_dispatch_to_thread_=function(){return(a0=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},l0=l.__emscripten_thread_free_data=function(){return(l0=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},WU=l.__emscripten_thread_exit=function(){return(WU=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},UU=l._memalign=function(){return(UU=l._memalign=l.asm.memalign).apply(null,arguments)},x1=l._emscripten_stack_set_limits=function(){return(x1=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},u0=l.stackSave=function(){return(u0=l.stackSave=l.asm.stackSave).apply(null,arguments)},Kg=l.stackRestore=function(){return(Kg=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},gp=l.stackAlloc=function(){return(gp=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},HU=l.dynCall_iijjiiii=function(){return(HU=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},qU=l.dynCall_jiji=function(){return(qU=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)},y1=l.__emscripten_allow_main_runtime_queued_calls=21672;l.cwrap=Me,l.keepRuntimeAlive=Pu,l.PThread=Ut,l.PThread=Ut,l.wasmMemory=Ft,l.ExitStatus=Zd;var jg;function Zd(k){this.name="ExitStatus",this.message="Program terminated with exit("+k+")",this.status=k}Bo=function k(){jg||c0(),jg||(Bo=k)};function c0(k){if(k=k||d,Il>0)return;if(C){c(l),Gd(),postMessage({cmd:"loaded"});return}if(en(),Il>0)return;function R(){jg||(jg=!0,l.calledRun=!0,!Ie&&(Gd(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),Rv()))}l.setStatus?(l.setStatus("Running..."),setTimeout(function(){setTimeout(function(){l.setStatus("")},1),R()},1)):R()}l.run=c0;function KU(k,R){if(le=k,!R&&C)throw Rg(k),"unwind";Pu()||Dv(),jU(k)}function jU(k){le=k,Pu()||(Ut.terminateAllThreads(),l.onExit&&l.onExit(k),Ie=!0),g(k,new Zd(k))}if(l.preInit)for(typeof l.preInit=="function"&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.pop()();c0();var Xg;m&&(Xg={uncaughtException:process.listeners("uncaughtException").filter(function(k){return!m.uncaughtException.indexOf(k)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(k){return!m.unhandledRejection.indexOf(k)>-1})});var Yg;if(typeof WasmBackendModule!="undefined")Yg=WasmBackendModule;else if(typeof t!="undefined")Yg=t;else throw new Error("Could not find wasm module in post.js");if(Xg){var XU=Yg._dispose;Yg._dispose=function(){XU(),Xg.uncaughtException.forEach(function(k){process.removeListener("uncaughtException",k)}),Xg.unhandledRejection.forEach(function(k){process.removeListener("unhandledRejection",k)})}}return t.ready}})();typeof kv=="object"&&typeof qk=="object"?qk.exports=Hk:typeof define=="function"&&define.amd?define([],function(){return Hk}):typeof kv=="object"&&(kv.WasmBackendModuleThreadedSimd=Hk)});var ZW=gr((B5e,YW)=>{YW.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",function(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()}}})}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.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.threadInfoStruct,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInit();try{var result=Module["invokeEntryPoint"](e.data.start_routine,e.data.arg);if(Module["keepRuntimeAlive"]()){Module["PThread"].setExitStatus(result)}else{Module["__emscripten_thread_exit"](result)}}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==="processThreadQueue"){if(Module["_pthread_self"]()){Module["_emscripten_current_thread_process_queued_calls"]()}}else if(e.data.cmd==="processProxyingQueue"){if(Module["_pthread_self"]()){Module["_emscripten_proxy_execute_queue"](e.data.queue)}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}});`});var JW=gr((_v,jk)=>{var Kk=(()=>{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(U,Q){n=U,o=Q});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=(U,Q)=>{throw Q},c=typeof window=="object",p=typeof importScripts=="function",m=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",f="";function d(U){return e.locateFile?e.locateFile(U,f):f+U}var h,g,x,b;function w(U){if(U instanceof Xd)return;D("exiting due to exception: "+U)}var C,T,E;m?(p?f=hg().dirname(f)+"/":f=__dirname+"/",E=()=>{T||(C=pw(),T=hg())},h=function(Q,xt){return E(),Q=T.normalize(Q),C.readFileSync(Q,xt?void 0:"utf8")},x=U=>{var Q=h(U,!0);return Q.buffer||(Q=new Uint8Array(Q)),Q},g=(U,Q,xt)=>{E(),U=T.normalize(U),C.readFile(U,function($t,he){$t?xt($t):Q(he.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),process.on("uncaughtException",function(U){if(!(U instanceof Xd))throw U}),process.on("unhandledRejection",function(U){throw U}),l=(U,Q)=>{if(Vd())throw process.exitCode=U,Q;w(Q),process.exit(U)},e.inspect=function(){return"[Emscripten Module object]"}):(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=U=>{var Q=new XMLHttpRequest;return Q.open("GET",U,!1),Q.send(null),Q.responseText},p&&(x=U=>{var Q=new XMLHttpRequest;return Q.open("GET",U,!1),Q.responseType="arraybuffer",Q.send(null),new Uint8Array(Q.response)}),g=(U,Q,xt)=>{var $t=new XMLHttpRequest;$t.open("GET",U,!0),$t.responseType="arraybuffer",$t.onload=()=>{if($t.status==200||$t.status==0&&$t.response){Q($t.response);return}xt()},$t.onerror=xt,$t.send(null)},b=U=>document.title=U);var $=e.print||console.log.bind(console),D=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 P=4;function M(U){M.shown||(M.shown={}),M.shown[U]||(M.shown[U]=1,D(U))}function W(U,Q){if(typeof WebAssembly.Function=="function"){for(var xt={i:"i32",j:"i64",f:"f32",d:"f64"},$t={parameters:[],results:Q[0]=="v"?[]:[xt[Q[0]]]},he=1;he{Z=U},K;e.wasmBinary&&(K=e.wasmBinary);var ot=e.noExitRuntime||!0;typeof WebAssembly!="object"&&Ou("no native wasm support detected");var st,it=!1,pt;function at(U,Q){U||Ou(Q)}function gt(U){var Q=e["_"+U];return Q}function dt(U,Q,xt,$t,he){var xe={string:function(nn){var Sl=0;if(nn!=null&&nn!==0){var Hg=(nn.length<<2)+1;Sl=jd(Hg),me(nn,Sl,Hg)}return Sl},array:function(nn){var Sl=jd(nn.length);return Ie(nn,Sl),Sl}};function oe(nn){return Q==="string"?qt(nn):Q==="boolean"?Boolean(nn):nn}var ee=gt(U),hr=[],Vo=0;if($t)for(var Go=0;Go<$t.length;Go++){var hp=xe[xt[Go]];hp?(Vo===0&&(Vo=Wg()),hr[Go]=hp($t[Go])):hr[Go]=$t[Go]}var Bu=ee.apply(null,hr);function s0(nn){return Vo!==0&&Ug(Vo),oe(nn)}return Bu=s0(Bu),Bu}function bt(U,Q,xt,$t){xt=xt||[];var he=xt.every(function(oe){return oe==="number"}),xe=Q!=="string";return xe&&he&&!$t?gt(U):function(){return dt(U,Q,xt,arguments,$t)}}var Tt=1,At=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Rt(U,Q,xt){for(var $t=Q+xt,he=Q;U[he]&&!(he>=$t);)++he;if(he-Q>16&&U.subarray&&At)return At.decode(U.subarray(Q,he));for(var xe="";Q>10,56320|Vo&1023)}}return xe}function qt(U,Q){return U?Rt(Me,U,Q):""}function Kt(U,Q,xt,$t){if(!($t>0))return 0;for(var he=xt,xe=xt+$t-1,oe=0;oe=55296&&ee<=57343){var hr=U.charCodeAt(++oe);ee=65536+((ee&1023)<<10)|hr&1023}if(ee<=127){if(xt>=xe)break;Q[xt++]=ee}else if(ee<=2047){if(xt+1>=xe)break;Q[xt++]=192|ee>>6,Q[xt++]=128|ee&63}else if(ee<=65535){if(xt+2>=xe)break;Q[xt++]=224|ee>>12,Q[xt++]=128|ee>>6&63,Q[xt++]=128|ee&63}else{if(xt+3>=xe)break;Q[xt++]=240|ee>>18,Q[xt++]=128|ee>>12&63,Q[xt++]=128|ee>>6&63,Q[xt++]=128|ee&63}}return Q[xt]=0,xt-he}function me(U,Q,xt){return Kt(U,Me,Q,xt)}function Ft(U){for(var Q=0,xt=0;xt=55296&&$t<=57343&&($t=65536+(($t&1023)<<10)|U.charCodeAt(++xt)&1023),$t<=127?++Q:$t<=2047?Q+=2:$t<=65535?Q+=3:Q+=4}return Q}var Ae=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function Ie(U,Q){Jr.set(U,Q)}function le(U,Q,xt){for(var $t=0;$t>0]=U.charCodeAt($t);xt||(Jr[Q>>0]=0)}function qe(U,Q){return U%Q>0&&(U+=Q-U%Q),U}var Re,Jr,Me,Lo,Or,Qr,tn,qr,so;function $n(U){Re=U,e.HEAP8=Jr=new Int8Array(U),e.HEAP16=Lo=new Int16Array(U),e.HEAP32=Qr=new Int32Array(U),e.HEAPU8=Me=new Uint8Array(U),e.HEAPU16=Or=new Uint16Array(U),e.HEAPU32=tn=new Uint32Array(U),e.HEAPF32=qr=new Float32Array(U),e.HEAPF64=so=new Float64Array(U)}var Mo=e.INITIAL_MEMORY||16777216,io,Cl=[],Fu=[],np=[],dr=!1,op=!1,sp=0;function Vd(){return ot||sp>0}function wg(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)Ig(e.preRun.shift());Wd(Cl)}function Cg(){dr=!0,Wd(Fu)}function Qk(){op=!0}function vg(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)Sg(e.postRun.shift());Wd(np)}function Ig(U){Cl.unshift(U)}function zo(U){Fu.unshift(U)}function Sg(U){np.unshift(U)}var Hn=0,ip=null,vl=null;function Av(U){Hn++,e.monitorRunDependencies&&e.monitorRunDependencies(Hn)}function Tg(U){if(Hn--,e.monitorRunDependencies&&e.monitorRunDependencies(Hn),Hn==0&&(ip!==null&&(clearInterval(ip),ip=null),vl)){var Q=vl;vl=null,Q()}}e.preloadedImages={},e.preloadedAudios={};function Ou(U){e.onAbort&&e.onAbort(U),U="Aborted("+U+")",D(U),it=!0,pt=1,U+=". Build with -s ASSERTIONS=1 for more info.";var Q=new WebAssembly.RuntimeError(U);throw o(Q),Q}var $v="data:application/octet-stream;base64,";function Ng(U){return U.startsWith($v)}function Pu(U){return U.startsWith("file://")}var en;en="tfjs-backend-wasm.wasm",Ng(en)||(en=d(en));function Gd(U){try{if(U==en&&K)return new Uint8Array(K);if(x)return x(U);throw"both async and sync fetching of the wasm failed"}catch(Q){Ou(Q)}}function Dv(){if(!K&&(c||p)){if(typeof fetch=="function"&&!Pu(en))return fetch(en,{credentials:"same-origin"}).then(function(U){if(!U.ok)throw"failed to load wasm binary file at '"+en+"'";return U.arrayBuffer()}).catch(function(){return Gd(en)});if(g)return new Promise(function(U,Q){g(en,function(xt){U(new Uint8Array(xt))},Q)})}return Promise.resolve().then(function(){return Gd(en)})}function Rv(){var U={env:up,wasi_snapshot_preview1:up};function Q(oe,ee){var hr=oe.exports;e.asm=hr,st=e.asm.memory,$n(st.buffer),io=e.asm.__indirect_function_table,zo(e.asm.__wasm_call_ctors),Tg("wasm-instantiate")}Av("wasm-instantiate");function xt(oe){Q(oe.instance)}function $t(oe){return Dv().then(function(ee){return WebAssembly.instantiate(ee,U)}).then(function(ee){return ee}).then(oe,function(ee){D("failed to asynchronously prepare wasm: "+ee),Ou(ee)})}function he(){return!K&&typeof WebAssembly.instantiateStreaming=="function"&&!Ng(en)&&!Pu(en)&&typeof fetch=="function"?fetch(en,{credentials:"same-origin"}).then(function(oe){var ee=WebAssembly.instantiateStreaming(oe,U);return ee.then(xt,function(hr){return D("wasm streaming compile failed: "+hr),D("falling back to ArrayBuffer instantiation"),$t(xt)})}):$t(xt)}if(e.instantiateWasm)try{var xe=e.instantiateWasm(U,Q);return xe}catch(oe){return D("Module.instantiateWasm callback failed with error: "+oe),!1}return he().catch(o),{}}var t1,e1;function Wd(U){for(;U.length>0;){var Q=U.shift();if(typeof Q=="function"){Q(e);continue}var xt=Q.func;typeof xt=="number"?Q.arg===void 0?Ud(xt)():Ud(xt)(Q.arg):xt(Q.arg===void 0?null:Q.arg)}}function Il(U){return U}function kg(U){var Q=/\b_Z[\w\d_]+/g;return U.replace(Q,function(xt){var $t=xt;return xt===$t?xt:$t+" ["+xt+"]"})}var Bo=[];function Ud(U){var Q=Bo[U];return Q||(U>=Bo.length&&(Bo.length=U+1),Bo[U]=Q=io.get(U)),Q}function r1(){var U=new Error;if(!U.stack){try{throw new Error}catch(Q){U=Q}if(!U.stack)return"(no stack trace available)"}return U.stack.toString()}function ap(U,Q){io.set(U,Q),Bo[U]=Q}function Fv(){Ou("")}function Hd(){return 2147483648}function _g(U,Q,xt){Me.copyWithin(U,Q,Q+xt)}function rn(U){try{return st.grow(U-Re.byteLength+65535>>>16),$n(st.buffer),1}catch(Q){}}function Eg(U){var Q=Me.length;U=U>>>0;var xt=Hd();if(U>xt)return!1;for(var $t=1;$t<=4;$t*=2){var he=Q*(1+.2/$t);he=Math.min(he,U+100663296);var xe=Math.min(xt,qe(Math.max(U,he),65536)),oe=rn(xe);if(oe)return!0}return!1}var lp={mappings:{},buffers:[null,[],[]],printChar:function(U,Q){var xt=lp.buffers[U];Q===0||Q===10?((U===1?$:D)(Rt(xt,0)),xt.length=0):xt.push(Q)},varargs:void 0,get:function(){lp.varargs+=4;var U=Qr[lp.varargs-4>>2];return U},getStr:function(U){var Q=qt(U);return Q},get64:function(U,Q){return U}};function Ov(U){return 0}function n1(U,Q,xt,$t,he){}function o1(U,Q,xt,$t){for(var he=0,xe=0;xe>2],ee=Qr[Q+4>>2];Q+=8;for(var hr=0;hr>2]=he,0}function Pv(U){et(U)}var Ag=!1,up={abort:Fv,emscripten_get_heap_max:Hd,emscripten_memcpy_big:_g,emscripten_resize_heap:Eg,fd_close:Ov,fd_seek:n1,fd_write:o1,setTempRet0:Pv},oU=Rv(),s1=e.___wasm_call_ctors=function(){return(s1=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},Lv=e._init=function(){return(Lv=e._init=e.asm.init).apply(null,arguments)},Mv=e._init_with_threads_count=function(){return(Mv=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},$g=e._get_threads_count=function(){return($g=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},Dg=e._register_tensor=function(){return(Dg=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},zv=e._dispose_data=function(){return(zv=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},Ut=e._dispose=function(){return(Ut=e._dispose=e.asm.dispose).apply(null,arguments)},Bv=e._Abs=function(){return(Bv=e._Abs=e.asm.Abs).apply(null,arguments)},Rg=e._Add=function(){return(Rg=e._Add=e.asm.Add).apply(null,arguments)},Lu=e._AddN=function(){return(Lu=e._AddN=e.asm.AddN).apply(null,arguments)},cp=e._All=function(){return(cp=e._All=e.asm.All).apply(null,arguments)},Vv=e._Any=function(){return(Vv=e._Any=e.asm.Any).apply(null,arguments)},i1=e._ArgMax=function(){return(i1=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},Gv=e._AvgPool=function(){return(Gv=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},a1=e._BatchMatMul=function(){return(a1=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},Mu=e._Ceil=function(){return(Mu=e._Ceil=e.asm.Ceil).apply(null,arguments)},Wv=e._ClipByValue=function(){return(Wv=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},Uv=e._Conv2D=function(){return(Uv=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},Hv=e._Conv2DBackpropInput=function(){return(Hv=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},qv=e._Cos=function(){return(qv=e._Cos=e.asm.Cos).apply(null,arguments)},Kv=e._Cosh=function(){return(Kv=e._Cosh=e.asm.Cosh).apply(null,arguments)},jv=e._CropAndResize=function(){return(jv=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},Fg=e._Cumprod=function(){return(Fg=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},Xv=e._Cumsum=function(){return(Xv=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},Yv=e._DepthToSpace=function(){return(Yv=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},Zv=e._DepthwiseConv2dNative=function(){return(Zv=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Jv=e._Elu=function(){return(Jv=e._Elu=e.asm.Elu).apply(null,arguments)},Qv=e._Equal=function(){return(Qv=e._Equal=e.asm.Equal).apply(null,arguments)},Og=e._Exp=function(){return(Og=e._Exp=e.asm.Exp).apply(null,arguments)},tI=e._FlipLeftRight=function(){return(tI=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},eI=e._Floor=function(){return(eI=e._Floor=e.asm.Floor).apply(null,arguments)},zu=e._FloorDiv=function(){return(zu=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},qd=e._FusedBatchNorm=function(){return(qd=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},rI=e._FusedConv2D=function(){return(rI=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},nI=e._FusedDepthwiseConv2D=function(){return(nI=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},oI=e._Gather=function(){return(oI=e._Gather=e.asm.Gather).apply(null,arguments)},ne=e._GatherNd=function(){return(ne=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},sI=e._Greater=function(){return(sI=e._Greater=e.asm.Greater).apply(null,arguments)},iI=e._GreaterEqual=function(){return(iI=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},aI=e._LeakyRelu=function(){return(aI=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},lI=e._Less=function(){return(lI=e._Less=e.asm.Less).apply(null,arguments)},uI=e._LessEqual=function(){return(uI=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},cI=e._Log=function(){return(cI=e._Log=e.asm.Log).apply(null,arguments)},Kd=e._LogicalAnd=function(){return(Kd=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},Pg=e._LogicalNot=function(){return(Pg=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},Lg=e._LogicalOr=function(){return(Lg=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},pI=e._LogicalXor=function(){return(pI=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},mI=e._Max=function(){return(mI=e._Max=e.asm.Max).apply(null,arguments)},fI=e._MaxPool=function(){return(fI=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},dI=e._Maximum=function(){return(dI=e._Maximum=e.asm.Maximum).apply(null,arguments)},hI=e._Mean=function(){return(hI=e._Mean=e.asm.Mean).apply(null,arguments)},gI=e._Min=function(){return(gI=e._Min=e.asm.Min).apply(null,arguments)},rr=e._Minimum=function(){return(rr=e._Minimum=e.asm.Minimum).apply(null,arguments)},xI=e._MirrorPad=function(){return(xI=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},yI=e._Multiply=function(){return(yI=e._Multiply=e.asm.Multiply).apply(null,arguments)},bI=e._Neg=function(){return(bI=e._Neg=e.asm.Neg).apply(null,arguments)},pp=e._NonMaxSuppressionV3=function(){return(pp=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},Mg=e._NonMaxSuppressionV4=function(){return(Mg=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},zg=e._NonMaxSuppressionV5=function(){return(zg=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},Bg=e._NotEqual=function(){return(Bg=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},wI=e._OneHot=function(){return(wI=e._OneHot=e.asm.OneHot).apply(null,arguments)},Vg=e._PadV2=function(){return(Vg=e._PadV2=e.asm.PadV2).apply(null,arguments)},CI=e._Pow=function(){return(CI=e._Pow=e.asm.Pow).apply(null,arguments)},l1=e._Prelu=function(){return(l1=e._Prelu=e.asm.Prelu).apply(null,arguments)},Gg=e._Prod=function(){return(Gg=e._Prod=e.asm.Prod).apply(null,arguments)},u1=e._RealDiv=function(){return(u1=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},vI=e._Relu=function(){return(vI=e._Relu=e.asm.Relu).apply(null,arguments)},II=e._Relu6=function(){return(II=e._Relu6=e.asm.Relu6).apply(null,arguments)},SI=e._ResizeBilinear=function(){return(SI=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},TI=e._ResizeNearestNeighbor=function(){return(TI=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},NI=e._Reverse=function(){return(NI=e._Reverse=e.asm.Reverse).apply(null,arguments)},kI=e._RotateWithOffset=function(){return(kI=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},_I=e._Round=function(){return(_I=e._Round=e.asm.Round).apply(null,arguments)},EI=e._Rsqrt=function(){return(EI=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},AI=e._ScatterNd=function(){return(AI=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},$I=e._SelectV2=function(){return($I=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},DI=e._Sigmoid=function(){return(DI=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},RI=e._Sin=function(){return(RI=e._Sin=e.asm.Sin).apply(null,arguments)},FI=e._Softmax=function(){return(FI=e._Softmax=e.asm.Softmax).apply(null,arguments)},OI=e._SparseFillEmptyRows=function(){return(OI=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},PI=e._SparseReshape=function(){return(PI=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},LI=e._SparseSegmentReduction=function(){return(LI=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},MI=e._Sqrt=function(){return(MI=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},zI=e._Square=function(){return(zI=e._Square=e.asm.Square).apply(null,arguments)},BI=e._SquaredDifference=function(){return(BI=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},VI=e._Step=function(){return(VI=e._Step=e.asm.Step).apply(null,arguments)},GI=e._StridedSlice=function(){return(GI=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},WI=e._Sub=function(){return(WI=e._Sub=e.asm.Sub).apply(null,arguments)},UI=e._Sum=function(){return(UI=e._Sum=e.asm.Sum).apply(null,arguments)},HI=e._Tan=function(){return(HI=e._Tan=e.asm.Tan).apply(null,arguments)},qI=e._Tanh=function(){return(qI=e._Tanh=e.asm.Tanh).apply(null,arguments)},KI=e._Tile=function(){return(KI=e._Tile=e.asm.Tile).apply(null,arguments)},jI=e._TopK=function(){return(jI=e._TopK=e.asm.TopK).apply(null,arguments)},XI=e._Transform=function(){return(XI=e._Transform=e.asm.Transform).apply(null,arguments)},YI=e._Transpose=function(){return(YI=e._Transpose=e.asm.Transpose).apply(null,arguments)},ZI=e.__FusedMatMul=function(){return(ZI=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},JI=e._malloc=function(){return(JI=e._malloc=e.asm.malloc).apply(null,arguments)},QI=e._free=function(){return(QI=e._free=e.asm.free).apply(null,arguments)},t0=e.___errno_location=function(){return(t0=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},e0=e._emscripten_main_thread_process_queued_calls=function(){return(e0=e._emscripten_main_thread_process_queued_calls=e.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},Wg=e.stackSave=function(){return(Wg=e.stackSave=e.asm.stackSave).apply(null,arguments)},Ug=e.stackRestore=function(){return(Ug=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},jd=e.stackAlloc=function(){return(jd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},r0=e.dynCall_iijjiiii=function(){return(r0=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},n0=e.dynCall_jiji=function(){return(n0=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=bt;var mp;function Xd(U){this.name="ExitStatus",this.message="Program terminated with exit("+U+")",this.status=U}vl=function U(){mp||Yd(),mp||(vl=U)};function Yd(U){if(U=U||a,Hn>0||(wg(),Hn>0))return;function Q(){mp||(mp=!0,e.calledRun=!0,!it&&(Cg(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),vg()))}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),Q()},1)):Q()}e.run=Yd;function c1(U){pt=U,Vd()||(e.onExit&&e.onExit(U),it=!0),l(U,new Xd(U))}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();Yd();var fp;s&&(fp={uncaughtException:process.listeners("uncaughtException").filter(function(U){return!s.uncaughtException.indexOf(U)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(U){return!s.unhandledRejection.indexOf(U)>-1})});var dp;if(typeof t!="undefined")dp=t;else if(typeof WasmBackendModuleThreadedSimd!="undefined")dp=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(fp){var o0=dp._dispose;dp._dispose=function(){o0(),fp.uncaughtException.forEach(function(U){process.removeListener("uncaughtException",U)}),fp.unhandledRejection.forEach(function(U){process.removeListener("unhandledRejection",U)})}}return t.ready}})();typeof _v=="object"&&typeof jk=="object"?jk.exports=Kk:typeof define=="function"&&define.amd?define([],function(){return Kk}):typeof _v=="object"&&(_v.WasmBackendModule=Kk)});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}},Ho=class{refCount(t){return qn("refCount")}incRef(t){return qn("incRef")}timerAvailable(){return!0}time(t){return qn("time")}read(t){return qn("read")}readSync(t){return qn("readSync")}readToGPU(t,e){return qn("readToGPU")}numDataIds(){return qn("numDataIds")}disposeData(t,e){return qn("disposeData")}write(t,e,n){return qn("write")}move(t,e,n,o,s){return qn("move")}memory(){return qn("memory")}floatPrecision(){return qn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return qn("dispose")}};function qn(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 w1(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Jg(r,t,e)}function n4(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--,Jg(r,e,n),Jg(t,e,n)}function yp(r,t,e){return Math.max(r,Math.min(t,e))}function o4(r){return r%2===0?r:r+1}function Jg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function s4(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function Kn(r){A(r!=null,()=>"The input to the tensor constructor must be a non-null value.")}function qo(r,t=[],e=!1){if(t==null&&(t=[]),Array.isArray(r)||xr(r)&&!e)for(let n=0;n0,e){return new Promise((n,o)=>{let s=0,i=()=>{if(r()){n();return}s++;let a=t(s);if(e!=null&&s>=e){o();return}setTimeout(i,a)};i()})}function f4(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 ur(r,t){let e=t.length;return r=r==null?t.map((n,o)=>o):[].concat(r),A(r.every(n=>n>=-e&&n`All values in axis param must be in range [-${e}, ${e}) but got axis ${r}`),A(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 m0(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:ur(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 f0(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 d0(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 h0(r,t){for(let e=0;et+=e.length),t}function Ko(r){return typeof r=="string"||r instanceof String}function C1(r){return typeof r=="boolean"}function v1(r){return typeof r=="number"}function bp(r){return Array.isArray(r)?bp(r[0]):r instanceof Float32Array?"float32":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?"int32":v1(r)?"float32":Ko(r)?"string":C1(r)?"bool":"float32"}function ui(r){return!!(r&&r.constructor&&r.call&&r.apply)}function wp(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function I1(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 I1(0,r,t,e)}function Qd(r,t){let e=Cp(r,t);for(let n=0;nn*o,1);if(t==null||t==="float32")return Vu(r,new Float32Array(e));if(t==="int32")return Vu(r,new Int32Array(e));if(t==="bool")return Vu(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function th(r){r.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function g4(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]=C4(o,s)})}};function b4(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(w4(t,n[0],n[1]),n.join("="))),t}function w4(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||"")}function C4(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 B(){return y0}var y0=null;function T1(r){y0=r}var b0;function w0(){if(b0==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");b0=r}return b0}function v4(){let r=w0();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function nh(r,t){let e=v4();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var pi="Abs",oa="Acos",sa="Acosh",jn="Add",jo="AddN",ia="All",aa="Any",Xo="ArgMax",Nl="ArgMin",la="Asin",ua="Asinh",ca="Atan",pa="Atanh",ma="Atan2",Yo="AvgPool",vp="AvgPoolGrad",kl="AvgPool3D",Ip="AvgPool3DGrad",Zo="BatchMatMul",mi="BatchToSpaceND",Sp="Bincount",N1="BroadcastTo",Tp="BroadcastArgs",ao="Cast",Jo="Ceil",lo="ClipByValue",Np="Complex",_l="ComplexAbs",fi="Concat",Qo="Conv2D",kp="Conv2DBackpropFilter",ts="Conv2DBackpropInput",El="Conv3D",_p="Conv3DBackpropFilterV2",Ep="Conv3DBackpropInputV2",es="Cos",rs="Cosh",fa="Cumprod",ns="Cumsum",da="CropAndResize",Ap="DenseBincount",ha="DepthToSpace",os="DepthwiseConv2dNative",$p="DepthwiseConv2dNativeBackpropFilter",Dp="DepthwiseConv2dNativeBackpropInput",Rp="Diag",Al="Dilation2D",oh="Dilation2DBackpropInput",sh="Dilation2DBackpropFilter",ss="RealDiv",Fp="Einsum",is="Elu",Op="EluGrad",ga="Erf",xa="Equal",as="Exp",di="ExpandDims",ya="Expm1",Pp="FFT",$l="Fill",ba="FlipLeftRight",ls="Floor",us="FloorDiv",cs="FusedBatchNorm",hi="GatherV2",wa="GatherNd",Ca="Greater",ps="GreaterEqual",uo="Identity",Lp="IFFT",Mp="Imag",va="IsFinite",Ia="IsInf",Sa="IsNan",ms="LeakyRelu",Ta="Less",Na="LessEqual",zp="LinSpace",fs="Log",ka="Log1p",_a="LogicalAnd",Ea="LogicalNot",Aa="LogicalOr",k1="LogicalXor",_1="LogSoftmax",Ilt="LowerBound",Dl="LRN",Bp="LRNGrad",ds="Max",hs="Maximum",gs="MaxPool",Vp="MaxPoolGrad",Rl="MaxPool3D",Gp="MaxPool3DGrad",Wp="MaxPoolWithArgmax",xs="Mean",ys="Min",bs="Minimum",ws="MirrorPad",$a="Mod",Up="Multinomial",Cs="Multiply",gi="Neg",Da="NotEqual",Ra="NonMaxSuppressionV3",Fa="NonMaxSuppressionV4",Oa="NonMaxSuppressionV5",xi="OnesLike",vs="OneHot",yi="Pack",Is="PadV2",Slt="Pool",Ss="Pow",Ts="Prelu",Ns="Prod",Hp="RaggedTensorToTensor",Fl="Range",qp="Real",Pa="Reciprocal",ks="Relu",bi="Reshape",_s="ResizeNearestNeighbor",Kp="ResizeNearestNeighborGrad",Es="ResizeBilinear",jp="ResizeBilinearGrad",As="Relu6",$s="Reverse",Ds="Round",Rs="Rsqrt",La="ScatterNd",Xp="SearchSorted",wi="Select",Ma="Selu",Ci="Slice",Fs="Sin",za="Sinh",Ba="Sign",Os="Sigmoid",Va="Softplus",Ps="Sqrt",Ls="Sum",vi="SpaceToBatchND",Ii="SplitV",Ms="Softmax",Ol="SparseFillEmptyRows",Ga="SparseReshape",Pl="SparseSegmentMean",Ll="SparseSegmentSum",Yp="SparseToDense",zs="SquaredDifference",Ml="Square",Wa="StridedSlice",zl="StringNGrams",Bl="StringSplit",Vl="StringToHashBucketFast",Bs="Sub",Vs="Tan",Gs="Tanh",Xn="Tile",Ua="TopK",Ha="Transform",Yn="Transpose",Zp="Unique",Si="Unpack",Gl="UnsortedSegmentSum",Tlt="UpperBound",Ti="ZerosLike",co="Step",ih="FromPixels",qa="RotateWithOffset",Ni="_FusedMatMul",ki="FusedConv2D",_i="FusedDepthwiseConv2D";function Ei(...r){B().getBool("IS_TEST")||B().getBool("PROD")||console.warn(...r)}function I4(...r){B().getBool("IS_TEST")||B().getBool("PROD")||console.log(...r)}var Jp=nh("kernelRegistry",()=>new Map),ah=nh("gradRegistry",()=>new Map);function lh(r,t){let e=v0(r,t);return Jp.get(e)}function C0(r){return ah.get(r)}function tx(r){let t=Jp.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 Wu(r){let{kernelName:t,backendName:e}=r,n=v0(t,e);Jp.has(n)&&Ei(`The kernel '${t}' for backend '${e}' is already registered`),Jp.set(n,r)}function A1(r){let{kernelName:t}=r;ah.has(t)&&B().getBool("DEBUG")&&Ei(`Overriding the gradient for '${t}'`),ah.set(t,r)}function Alt(r,t){let e=v0(r,t);if(!Jp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);Jp.delete(e)}function $lt(r){if(!ah.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);ah.delete(r)}function Dlt(r,t){tx(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});Wu(o)})}function v0(r,t){return`${t}_${r}`}var y={};jt(y,{arraysEqual:()=>Rn,assert:()=>A,assertNonNegativeIntegerDimensions:()=>th,assertNonNull:()=>Kn,assertShapesMatch:()=>Fe,bytesFromStringArray:()=>x0,bytesPerElement:()=>Qg,checkConversionForErrors:()=>h0,clamp:()=>yp,computeStrides:()=>ci,createScalarValue:()=>A4,createShuffledIndices:()=>p4,decodeString:()=>rm,distSquared:()=>a4,encodeString:()=>Ul,fetch:()=>D4,fingerPrint64:()=>E4,flatten:()=>qo,getArrayFromDType:()=>d0,getTypedArrayFromDType:()=>f0,hasEncodingLoss:()=>d4,hexToLong:()=>uh,indexToLoc:()=>x4,inferDtype:()=>bp,inferFromImplicitShape:()=>f4,isBoolean:()=>C1,isFunction:()=>ui,isInt:()=>na,isNumber:()=>v1,isPromise:()=>eh,isScalarShape:()=>l4,isString:()=>Ko,isTypedArray:()=>xr,isValidDtype:()=>g0,locToIndex:()=>g4,makeOnesTypedArray:()=>Qd,makeZerosNestedTypedArray:()=>h4,makeZerosTypedArray:()=>Cp,nearestDivisor:()=>wp,nearestLargerEven:()=>o4,now:()=>ju,parseAxisParam:()=>ur,randUniform:()=>i4,repeatedTry:()=>m4,rightPad:()=>Gu,shuffle:()=>w1,shuffleCombo:()=>n4,sizeFromShape:()=>Qt,sizeToSquarishShape:()=>c4,squeezeShape:()=>m0,sum:()=>s4,swap:()=>Jg,tanh:()=>u4,toNestedArray:()=>Vu,toTypedArray:()=>em});var N0=Tl(V1());var Ku=N0.default||N0;function uh(r){return Ku.fromString(r,!0,16)}var W1=uh("c3a5c85c97cb3127"),qu=uh("b492b66fbe98f273"),on=uh("9ae16a3b2f90404f");function T0(r){return r.xor(r.shru(47))}function U1(r,t,e){let n=r.slice(t,t+e);return Ku.fromBytes(Array.from(n),!0,!0)}function ze(r,t){return U1(r,t,8)}function G1(r,t){return U1(r,t,4)}function kr(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function Wl(r,t,e=uh("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 T4(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 rx(r,t,e,n){return T4(ze(r,t),ze(r,t+8),ze(r,t+16),ze(r,t+24),e,n)}function N4(r,t=r.length){if(t>=8){let e=on.add(t*2),n=ze(r,0).add(on),o=ze(r,t-8),s=kr(o,37).mul(e).add(n),i=kr(n,25).add(o).mul(e);return Wl(s,i,e)}if(t>=4){let e=on.add(t*2),n=G1(r,0);return Wl(n.shl(3).add(t),G1(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 T0(on.mul(s).xor(W1.mul(i))).mul(on)}return on}function k4(r,t=r.length){let e=on.add(t*2),n=ze(r,0).mul(qu),o=ze(r,8),s=ze(r,t-8).mul(e),i=ze(r,t-16).mul(on);return Wl(kr(n.add(o),43).add(kr(s,30)).add(i),n.add(kr(o.add(on),18)).add(s),e)}function _4(r,t=r.length){let e=on.add(t*2),n=ze(r,0).mul(on),o=ze(r,8),s=ze(r,t-8).mul(e),i=ze(r,t-16).mul(on),a=kr(n.add(o),43).add(kr(s,30)).add(i),u=Wl(a,n.add(kr(o.add(on),18)).add(s),e),l=ze(r,16).mul(e),c=ze(r,24),p=a.add(ze(r,t-32)).mul(e),m=u.add(ze(r,t-24)).mul(e);return Wl(kr(l.add(c),43).add(kr(p,30)).add(m),l.add(kr(c.add(n),18)).add(p),e)}function E4(r,t=r.length){let e=Ku.fromNumber(81,!0);if(t<=32)return t<=16?N4(r,t):k4(r,t);if(t<=64)return _4(r,t);let n=e,o=e.mul(qu).add(113),s=T0(o.mul(on).add(113)).mul(on),i=[Ku.UZERO,Ku.UZERO],a=[Ku.UZERO,Ku.UZERO];n=n.mul(on).add(ze(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(ze(r,u+8)),37).mul(qu),o=kr(o.add(i[1]).add(ze(r,u+48)),42).mul(qu),n=n.xor(a[1]),o=o.add(i[0]).add(ze(r,u+40)),s=kr(s.add(a[0]),33).mul(qu),i=rx(r,u,i[1].mul(qu),n.add(a[0])),a=rx(r,u+32,s.add(a[1]),o.add(ze(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=qu.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(ze(r,u+8)),37).mul(p),o=kr(o.add(i[1]).add(ze(r,u+48)),42).mul(p),n=n.xor(a[1].mul(9)),o=o.add(i[0].mul(9).add(ze(r,u+40))),s=kr(s.add(a[0]),33).mul(p),i=rx(r,u,i[1].mul(p),n.add(a[0])),a=rx(r,u+32,s.add(a[1]),o.add(ze(r,u+16))),[s,n]=[n,s],Wl(Wl(i[0],a[0],p).add(T0(o).mul(W1)).add(s),Wl(i[1],a[1],p).add(n),p)}function A4(r,t){return t==="string"?Ul(r):em([r],t)}function $4(r,t){return r instanceof Float32Array&&t==="float32"||r instanceof Int32Array&&t==="int32"||r instanceof Uint8Array&&t==="bool"}function em(r,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(r)&&(r=qo(r)),B().getBool("DEBUG")&&h0(r,t),$4(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=ju();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:ju()-a})}if(B().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let l=0;l{R4(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 R4(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 H1(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(!Rn(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 K1=20,ch=3,_0=7;function j1(r,t,e,n){let o=ci(t),s=F4(r,t,e,o),i=t.length,a=ox(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 wU=Object.create;var jv=Object.defineProperty;var CU=Object.getOwnPropertyDescriptor;var IU=Object.getOwnPropertyNames;var vU=Object.getPrototypeOf,SU=Object.prototype.hasOwnProperty;var $g=(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 dr=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Gt=(r,t)=>{for(var e in t)jv(r,e,{get:t[e],enumerable:!0})},NU=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of IU(t))!SU.call(r,o)&&o!==e&&jv(r,o,{get:()=>t[o],enumerable:!(n=CU(t,o))||n.enumerable});return r};var Sl=(r,t,e)=>(e=r!=null?wU(vU(r)):{},NU(t||!r||!r.__esModule?jv(e,"default",{value:r,enumerable:!0}):e,r));var C1=dr((flt,w1)=>{w1.exports=We;var co=null;try{co=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 We(r,t,e){this.low=r|0,this.high=t|0,this.unsigned=!!e}We.prototype.__isLong__;Object.defineProperty(We.prototype,"__isLong__",{value:!0});function Dn(r){return(r&&r.__isLong__)===!0}We.isLong=Dn;var p1={},m1={};function Mu(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=m1[r],n)?n:(e=Ue(r,(r|0)<0?-1:0,!0),o&&(m1[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=p1[r],n)?n:(e=Ue(r,r<0?-1:0,!1),o&&(p1[r]=e),e))}We.fromInt=Mu;function po(r,t){if(isNaN(r))return t?Lu:mo;if(t){if(r<0)return Lu;if(r>=g1)return b1}else{if(r<=-d1)return $n;if(r+1>=d1)return y1}return r<0?po(-r,t).neg():Ue(r%Bp|0,r/Bp|0,t)}We.fromNumber=po;function Ue(r,t,e){return new We(r,t,e)}We.fromBits=Ue;var Og=Math.pow;function aS(r,t,e){if(r.length===0)throw Error("empty string");if(r==="NaN"||r==="Infinity"||r==="+Infinity"||r==="-Infinity")return mo;if(typeof t=="number"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error("interior hyphen");if(n===0)return aS(r.substring(1),t,e).neg();for(var o=po(Og(e,8)),s=mo,i=0;i>>0:this.low};gt.toNumber=function(){return this.unsigned?(this.high>>>0)*Bp+(this.low>>>0):this.high*Bp+(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($n)?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 Dn(t)||(t=Ps(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(Dn(t)||(t=Ps(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($n)?$n:this.not().add(zp)};gt.neg=gt.negate;gt.add=function(t){Dn(t)||(t=Ps(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,Ue(m<<16|f,c<<16|p,this.unsigned)};gt.subtract=function(t){return Dn(t)||(t=Ps(t)),this.add(t.neg())};gt.sub=gt.subtract;gt.multiply=function(t){if(this.isZero())return mo;if(Dn(t)||(t=Ps(t)),co){var e=co.mul(this.low,this.high,t.low,t.high);return Ue(e,co.get_high(),this.unsigned)}if(t.isZero())return mo;if(this.eq($n))return t.isOdd()?$n:mo;if(t.eq($n))return this.isOdd()?$n:mo;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(h1)&&t.lt(h1))return po(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,Ue(f<<16|d,p<<16|m,this.unsigned)};gt.mul=gt.multiply;gt.divide=function(t){if(Dn(t)||(t=Ps(t)),t.isZero())throw Error("division by zero");if(co){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?co.div_u:co.div_s)(this.low,this.high,t.low,t.high);return Ue(e,co.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Lu:mo;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Lu;if(t.gt(this.shru(1)))return x1;s=Lu}else{if(this.eq($n)){if(t.eq(zp)||t.eq(iS))return $n;if(t.eq($n))return zp;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(mo)?t.isNegative()?zp:iS:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq($n))return this.unsigned?Lu:mo;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=mo}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:Og(2,a-48),l=po(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=po(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=zp),s=s.add(l),o=o.sub(c)}return s};gt.div=gt.divide;gt.modulo=function(t){if(Dn(t)||(t=Ps(t)),co){var e=(this.unsigned?co.rem_u:co.rem_s)(this.low,this.high,t.low,t.high);return Ue(e,co.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))};gt.mod=gt.modulo;gt.rem=gt.modulo;gt.not=function(){return Ue(~this.low,~this.high,this.unsigned)};gt.and=function(t){return Dn(t)||(t=Ps(t)),Ue(this.low&t.low,this.high&t.high,this.unsigned)};gt.or=function(t){return Dn(t)||(t=Ps(t)),Ue(this.low|t.low,this.high|t.high,this.unsigned)};gt.xor=function(t){return Dn(t)||(t=Ps(t)),Ue(this.low^t.low,this.high^t.high,this.unsigned)};gt.shiftLeft=function(t){return Dn(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?Ue(this.low<>>32-t,this.unsigned):Ue(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):Ue(this.high>>t-32,this.high>=0?0:-1,this.unsigned)};gt.shr=gt.shiftRight;gt.shiftRightUnsigned=function(t){if(Dn(t)&&(t=t.toInt()),t&=63,t===0)return this;var e=this.high;if(t<32){var n=this.low;return Ue(n>>>t|e<<32-t,e>>>t,this.unsigned)}else return t===32?Ue(e,0,this.unsigned):Ue(e>>>t-32,0,this.unsigned)};gt.shru=gt.shiftRightUnsigned;gt.shr_u=gt.shiftRightUnsigned;gt.toSigned=function(){return this.unsigned?Ue(this.low,this.high,!1):this};gt.toUnsigned=function(){return this.unsigned?this:Ue(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]};We.fromBytes=function(t,e,n){return n?We.fromBytesLE(t,e):We.fromBytesBE(t,e)};We.fromBytesLE=function(t,e){return new We(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)};We.fromBytesBE=function(t,e){return new We(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}});var eE=dr(()=>{});var rE=dr(()=>{});var o_=dr((n_,ZS)=>{(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})(n_,typeof ZS=="object"&&ZS,typeof define=="function"&&define)});var i_=dr((s_,JS)=>{(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})(s_,typeof JS=="object"&&JS,typeof define=="function"&&define)});var l_=dr((a_,QS)=>{(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})(a_,typeof QS=="object"&&QS,typeof define=="function"&&define)});var c_=dr((u_,t0)=>{(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})(u_,typeof t0=="object"&&t0,typeof define=="function"&&define)});var m_=dr((p_,e0)=>{(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})(p_,typeof e0=="object"&&e0,typeof define=="function"&&define)});var d_=dr((f_,r0)=>{(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})(f_,typeof r0=="object"&&r0,typeof define=="function"&&define)});var h_=dr(()=>{});var x_=dr((g_,Hx)=>{(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 XK=o_(),YK=i_(),ZK=l_(),JK=c_(),QK=m_(),tj=d_(),Ju=x_();Ju.alea=XK;Ju.xor128=YK;Ju.xorwow=ZK;Ju.xorshift7=JK;Ju.xor4096=QK;Ju.tychei=tj;y_.exports=Ju});var pN=dr(()=>{});var qb=dr(()=>{});var eg=dr(()=>{});var _W=dr(()=>{});var AW=dr(()=>{});var $W=dr(()=>{});var DW=dr((lI,AT)=>{var _T=(()=>{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!=Kt&&qe(it.buffer),Te}function n(){return it.buffer!=Kt&&qe(it.buffer),fe}function o(){return it.buffer!=Kt&&qe(it.buffer),Ae}function s(){return it.buffer!=Kt&&qe(it.buffer),En}function i(){return it.buffer!=Kt&&qe(it.buffer),nr}function a(){return it.buffer!=Kt&&qe(it.buffer),Wn}function u(){return it.buffer!=Kt&&qe(it.buffer),Or}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 Du)return;Y("exiting due to exception: "+L)}if(w){b?N=eg().dirname(N)+"/":N=__dirname+"/";var G,W;typeof $g=="function"&&(G=qb(),W=eg()),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($t,ie){$t?xt($t):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 Du))throw U}),process.on("unhandledRejection",function(U){throw U}),g=(U,ut)=>{if(Lo())throw process.exitCode=U,ut;V(ut),process.exit(U)},l.inspect=function(){return"[Emscripten Module object]"};let L;try{L=_W()}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=AW().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 Tt(L,U){L||Yc(U)}var _t=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Bt(L,U,ut){for(var xt=U+ut,$t=U;L[$t]&&!($t>=xt);)++$t;if($t-U>16&&L.buffer&&_t)return _t.decode(L.buffer instanceof SharedArrayBuffer?L.slice(U,$t):L.subarray(U,$t));for(var ie="";U<$t;){var Vt=L[U++];if(!(Vt&128)){ie+=String.fromCharCode(Vt);continue}var jt=L[U++]&63;if((Vt&224)==192){ie+=String.fromCharCode((Vt&31)<<6|jt);continue}var fr=L[U++]&63;if((Vt&240)==224?Vt=(Vt&15)<<12|jt<<6|fr:Vt=(Vt&7)<<18|jt<<12|fr<<6|L[U++]&63,Vt<65536)ie+=String.fromCharCode(Vt);else{var Kn=Vt-65536;ie+=String.fromCharCode(55296|Kn>>10,56320|Kn&1023)}}return ie}function Yt(L,U){return L?Bt(n(),L,U):""}function ce(L,U,ut,xt){if(!(xt>0))return 0;for(var $t=ut,ie=ut+xt-1,Vt=0;Vt=55296&&jt<=57343){var fr=L.charCodeAt(++Vt);jt=65536+((jt&1023)<<10)|fr&1023}if(jt<=127){if(ut>=ie)break;U[ut++]=jt}else if(jt<=2047){if(ut+1>=ie)break;U[ut++]=192|jt>>6,U[ut++]=128|jt&63}else if(jt<=65535){if(ut+2>=ie)break;U[ut++]=224|jt>>12,U[ut++]=128|jt>>6&63,U[ut++]=128|jt&63}else{if(ut+3>=ie)break;U[ut++]=240|jt>>18,U[ut++]=128|jt>>12&63,U[ut++]=128|jt>>6&63,U[ut++]=128|jt&63}}return U[ut]=0,ut-$t}function he(L,U,ut){return ce(L,n(),U,ut)}var Kt,Te,fe,Ae,Ge,En,nr,Wn,Or;C&&(Kt=l.buffer);function qe(L){Kt=L,l.HEAP8=Te=new Int8Array(L),l.HEAP16=Ae=new Int16Array(L),l.HEAP32=En=new Int32Array(L),l.HEAPU8=fe=new Uint8Array(L),l.HEAPU16=Ge=new Uint16Array(L),l.HEAPU32=nr=new Uint32Array(L),l.HEAPF32=Wn=new Float32Array(L),l.HEAPF64=Or=new Float64Array(L)}var Pr=l.INITIAL_MEMORY||16777216;if(C)it=l.wasmMemory,Kt=l.buffer;else if(l.wasmMemory)it=l.wasmMemory;else if(it=new WebAssembly.Memory({initial:Pr/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&&(Kt=it.buffer),Pr=Kt.byteLength,qe(Kt);var Lr,Un=[],Hn=[],jr=[],Xi=!1;function Lo(){return nt}function wl(){if(l.preRun)for(typeof l.preRun=="function"&&(l.preRun=[l.preRun]);l.preRun.length;)_d(l.preRun.shift());Fd(Un)}function Nr(){Xi=!0,!C&&Fd(Hn)}function Yi(){if(!C){if(l.postRun)for(typeof l.postRun=="function"&&(l.postRun=[l.postRun]);l.postRun.length;)LT(l.postRun.shift());Fd(jr)}}function _d(L){Un.unshift(L)}function Ad(L){Hn.unshift(L)}function LT(L){jr.unshift(L)}var Cl=0,Xc=null,Zi=null;function MT(L){Cl++,l.monitorRunDependencies&&l.monitorRunDependencies(Cl)}function zT(L){if(Cl--,l.monitorRunDependencies&&l.monitorRunDependencies(Cl),Cl==0&&(Xc!==null&&(clearInterval(Xc),Xc=null),Zi)){var U=Zi;Zi=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 pI="data:application/octet-stream;base64,";function ig(L){return L.startsWith(pI)}function $d(L){return L.startsWith("file://")}var en;en="tfjs-backend-wasm-threaded-simd.wasm",ig(en)||(en=_(en));function ag(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 mI(){if(!at&&(x||b)){if(typeof fetch=="function"&&!$d(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 ag(en)});if($)return new Promise(function(L,U){$(en,function(ut){L(new Uint8Array(ut))},U)})}return Promise.resolve().then(function(){return ag(en)})}function fI(){var L={env:bg,wasi_snapshot_preview1:bg};function U(Vt,jt){var fr=Vt.exports;if(l.asm=fr,vI(l.asm._emscripten_tls_init),Lr=l.asm.__indirect_function_table,Ad(l.asm.__wasm_call_ctors),dt=jt,!C){var Kn=qt.unusedWorkers.length;qt.unusedWorkers.forEach(function(Qi){qt.loadWasmModuleToWorker(Qi,function(){--Kn||zT("wasm-instantiate")})})}}C||MT("wasm-instantiate");function ut(Vt){U(Vt.instance,Vt.module)}function xt(Vt){return mI().then(function(jt){return WebAssembly.instantiate(jt,L)}).then(function(jt){return jt}).then(Vt,function(jt){Y("failed to asynchronously prepare wasm: "+jt),Yc(jt)})}function $t(){return!at&&typeof WebAssembly.instantiateStreaming=="function"&&!ig(en)&&!$d(en)&&!w&&typeof fetch=="function"?fetch(en,{credentials:"same-origin"}).then(function(Vt){var jt=WebAssembly.instantiateStreaming(Vt,L);return jt.then(ut,function(fr){return Y("wasm streaming compile failed: "+fr),Y("falling back to ArrayBuffer instantiation"),xt(ut)})}):xt(ut)}if(l.instantiateWasm)try{var ie=l.instantiateWasm(L,U);return ie}catch(Vt){Y("Module.instantiateWasm callback failed with error: "+Vt),p(Vt)}return $t().catch(p),{}}var dI,BT,hI={};function Du(L){this.name="ExitStatus",this.message="Program terminated with exit("+L+")",this.status=L}function gI(L){var U=qt.pthreads[L];delete qt.pthreads[L],U.terminate(),Hv(L),qt.runningWorkers.splice(qt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function xI(L){var U=qt.pthreads[L];U.postMessage({cmd:"cancel"})}function Dd(L){var U=qt.pthreads[L];Tt(U),qt.returnWorkerToPool(U)}function lg(L){var U=qt.getNewWorker();if(!U)return 6;qt.runningWorkers.push(U),qt.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 ug={varargs:void 0,get:function(){ug.varargs+=4;var L=s()[ug.varargs-4>>2];return L},getStr:function(L){var U=Yt(L);return U}};function Rd(L){if(C)return Il(1,1,L);bt=L,Lo()||(qt.terminateAllThreads(),l.onExit&&l.onExit(L),ht=!0),g(L,new Du(L))}function VT(L,U){if(bt=L,!U&&C)throw pg(L),"unwind";Rd(L)}var cg=VT;function yI(L){if(L instanceof Du||L=="unwind")return bt;g(1,L)}var qt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?qt.initWorker():qt.initMainThread()},initMainThread:function(){for(var L=8;L--;)qt.allocateUnusedWorker()},initWorker:function(){nt=!1},setExitStatus:function(L){bt=L},terminateAllThreads:function(){for(var L of Object.values(qt.pthreads))qt.returnWorkerToPool(L);for(var L of qt.unusedWorkers)L.terminate();qt.unusedWorkers=[]},returnWorkerToPool:function(L){var U=L.pthread_ptr;delete qt.pthreads[U],qt.unusedWorkers.push(L),qt.runningWorkers.splice(qt.runningWorkers.indexOf(L),1),L.pthread_ptr=0,Hv(U)},receiveObjectTransfer:function(L){},threadInitTLS:function(){qt.tlsInitFunctions.forEach(L=>L())},loadWasmModuleToWorker:function(L,U){L.onmessage=ut=>{var xt=ut.data,$t=xt.cmd;if(L.pthread_ptr&&(qt.currentProxiedOperationCallerThread=L.pthread_ptr),xt.targetThread&&xt.targetThread!=Ng()){var ie=qt.pthreads[xt.targetThread];ie?ie.postMessage(xt,xt.transferList):Y('Internal error! Worker sent a message "'+$t+'" to target pthread '+xt.targetThread+", but that thread no longer exists!"),qt.currentProxiedOperationCallerThread=void 0;return}$t==="processProxyingQueue"?Od(xt.queue):$t==="spawnThread"?lg(xt):$t==="cleanupThread"?Dd(xt.thread):$t==="killThread"?gI(xt.thread):$t==="cancelThread"?xI(xt.thread):$t==="loaded"?(L.loaded=!0,U&&U(L),L.runPthread&&(L.runPthread(),delete L.runPthread)):$t==="print"?j("Thread "+xt.threadId+": "+xt.text):$t==="printErr"?Y("Thread "+xt.threadId+": "+xt.text):$t==="alert"?alert("Thread "+xt.threadId+": "+xt.text):xt.target==="setimmediate"?L.postMessage(xt):$t==="onAbort"?l.onAbort&&l.onAbort(xt.arg):$t&&Y("worker sent an unknown command "+$t),qt.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");qt.unusedWorkers.push(new Worker(L))},getNewWorker:function(){return qt.unusedWorkers.length==0&&(qt.allocateUnusedWorker(),qt.loadWasmModuleToWorker(qt.unusedWorkers[0])),qt.unusedWorkers.pop()}};l.PThread=qt;function Fd(L){for(;L.length>0;)L.shift()(l)}function bI(L){var U=qv(),ut=L();return kg(U),ut}function GT(L){return L}function WT(L){var U=/\b_Z[\w\d_]+/g;return L.replace(U,function(ut){var xt=ut;return ut===xt?ut:xt+" ["+ut+"]"})}function wI(){var L=Ng(),U=s()[L+44>>2],ut=s()[L+48>>2],xt=U-ut;YT(U,xt),kg(U)}l.establishStackSpace=wI;function pg(L){if(C)return Il(2,0,L);try{cg(L)}catch(U){yI(U)}}var Zc=[];function CI(L){var U=Zc[L];return U||(L>=Zc.length&&(Zc.length=L+1),Zc[L]=U=Lr.get(L)),U}function II(L,U){var ut=CI(L)(U);Lo()?qt.setExitStatus(ut):XT(ut)}l.invokeEntryPoint=II;function UT(){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 vI(L){qt.tlsInitFunctions.push(L)}function SI(L,U){e().set(L,U)}function NI(L){qT(L,!b,1,!x),qt.threadInitTLS()}function kI(L){C?postMessage({cmd:"cleanupThread",thread:L}):Dd(L)}function mg(L,U,ut,xt){return C?Il(3,1,L,U,ut,xt):fg(L,U,ut,xt)}function fg(L,U,ut,xt){if(typeof SharedArrayBuffer=="undefined")return Y("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var $t=[],ie=0;if(C&&($t.length===0||ie))return mg(L,U,ut,xt);if(ie)return ie;var Vt={startRoutine:ut,pthread_ptr:L,arg:xt,transferList:$t};return C?(Vt.cmd="spawnThread",postMessage(Vt,$t),0):lg(Vt)}function TI(){return 2097152}var EI=!0;function _I(){return EI}function Od(L){Atomics.store(s(),L>>2,1),Ng()&&jT(L),Atomics.compareExchange(s(),L>>2,1,0)}l.executeNotifiedProxyingQueue=Od;function AI(L,U,ut,xt){if(L==U)setTimeout(()=>Od(xt));else if(C)postMessage({targetThread:L,cmd:"processProxyingQueue",queue:xt});else{var $t=qt.pthreads[L];if(!$t)return;$t.postMessage({cmd:"processProxyingQueue",queue:xt})}return 1}function $I(L,U,ut){return-1}function DI(){Yc("")}function Ru(L){Ru.shown||(Ru.shown={}),Ru.shown[L]||(Ru.shown[L]=1,w&&(L="warning: "+L),Y(L))}function RI(){w||b||Ru("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function FI(){return Date.now()}function dg(){return 2147483648}function OI(){return dg()}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 PI(L,U,ut){n().copyWithin(L,U,U+ut)}function LI(){return w?$W().cpus().length:navigator.hardwareConcurrency}function Il(L,U){var ut=arguments.length-2,xt=arguments;return bI(()=>{for(var $t=ut,ie=Tg($t*8),Vt=ie>>3,jt=0;jt>3,$t=0;$t>>16),qe(it.buffer),1}catch(U){}}function BI(L){var U=n().length;if(L=L>>>0,L<=U)return!1;var ut=dg();if(L>ut)return!1;let xt=(fr,Kn)=>fr+(Kn-fr%Kn)%Kn;for(var $t=1;$t<=4;$t*=2){var ie=U*(1+.2/$t);ie=Math.min(ie,L+100663296);var Vt=Math.min(ut,xt(Math.max(L,ie),65536)),jt=zI(Vt);if(jt)return!0}return!1}function VI(){throw"unwind"}function hg(L){return C?Il(4,1,L):52}function gg(L,U,ut,xt,$t){return C?Il(5,1,L,U,ut,xt,$t):70}var GI=[null,[],[]];function WI(L,U){var ut=GI[L];U===0||U===10?((L===1?j:Y)(Bt(ut,0)),ut.length=0):ut.push(U)}function xg(L,U,ut,xt){if(C)return Il(6,1,L,U,ut,xt);for(var $t=0,ie=0;ie>2],jt=i()[U+4>>2];U+=8;for(var fr=0;fr>2]=$t,0}function yg(L){var U=l["_"+L];return U}function UI(L,U,ut,xt,$t){var ie={string:_n=>{var rp=0;if(_n!=null&&_n!==0){var QT=(_n.length<<2)+1;rp=Tg(QT),he(_n,rp,QT)}return rp},array:_n=>{var rp=Tg(_n.length);return SI(_n,rp),rp}};function Vt(_n){return U==="string"?Yt(_n):U==="boolean"?Boolean(_n):_n}var jt=yg(L),fr=[],Kn=0;if(xt)for(var Qi=0;QiVt==="number"||Vt==="boolean"),ie=U!=="string";return ie&&$t&&!xt?yg(L):function(){return UI(L,U,ut,arguments,xt)}}qt.init();var qI=[null,Rd,pg,mg,hg,gg,xg],bg={__emscripten_init_main_thread_js:NI,__emscripten_thread_cleanup:kI,__pthread_create_js:fg,_emscripten_default_pthread_stack_size:TI,_emscripten_get_now_is_monotonic:_I,_emscripten_notify_task_queue:AI,_emscripten_set_offscreencanvas_size:$I,abort:DI,emscripten_check_blocking_allowed:RI,emscripten_date_now:FI,emscripten_get_heap_max:OI,emscripten_get_now:Jc,emscripten_memcpy_big:PI,emscripten_num_logical_cores:LI,emscripten_receive_on_main_thread_js:MI,emscripten_resize_heap:BI,emscripten_unwind_to_js_event_loop:VI,exit:cg,fd_close:hg,fd_seek:gg,fd_write:xg,memory:it||l.wasmMemory},HT=fI(),KI=l.___wasm_call_ctors=function(){return(KI=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},jI=l._init=function(){return(jI=l._init=l.asm.init).apply(null,arguments)},XI=l._init_with_threads_count=function(){return(XI=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},YI=l._get_threads_count=function(){return(YI=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},ZI=l._register_tensor=function(){return(ZI=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},JI=l._dispose_data=function(){return(JI=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},QI=l._dispose=function(){return(QI=l._dispose=l.asm.dispose).apply(null,arguments)},tv=l._Abs=function(){return(tv=l._Abs=l.asm.Abs).apply(null,arguments)},ev=l._Add=function(){return(ev=l._Add=l.asm.Add).apply(null,arguments)},rv=l._AddN=function(){return(rv=l._AddN=l.asm.AddN).apply(null,arguments)},nv=l._All=function(){return(nv=l._All=l.asm.All).apply(null,arguments)},ov=l._Any=function(){return(ov=l._Any=l.asm.Any).apply(null,arguments)},sv=l._ArgMax=function(){return(sv=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},iv=l._AvgPool=function(){return(iv=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},av=l._BatchMatMul=function(){return(av=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},lv=l._Ceil=function(){return(lv=l._Ceil=l.asm.Ceil).apply(null,arguments)},uv=l._ClipByValue=function(){return(uv=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},cv=l._Conv2D=function(){return(cv=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},pv=l._Conv2DBackpropInput=function(){return(pv=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},mv=l._Cos=function(){return(mv=l._Cos=l.asm.Cos).apply(null,arguments)},fv=l._Cosh=function(){return(fv=l._Cosh=l.asm.Cosh).apply(null,arguments)},dv=l._CropAndResize=function(){return(dv=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},hv=l._Cumprod=function(){return(hv=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},gv=l._Cumsum=function(){return(gv=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},xv=l._DepthToSpace=function(){return(xv=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},yv=l._DepthwiseConv2dNative=function(){return(yv=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},bv=l._Elu=function(){return(bv=l._Elu=l.asm.Elu).apply(null,arguments)},wv=l._Equal=function(){return(wv=l._Equal=l.asm.Equal).apply(null,arguments)},Cv=l._Exp=function(){return(Cv=l._Exp=l.asm.Exp).apply(null,arguments)},Iv=l._FlipLeftRight=function(){return(Iv=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},vv=l._Floor=function(){return(vv=l._Floor=l.asm.Floor).apply(null,arguments)},Sv=l._FloorDiv=function(){return(Sv=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},Nv=l._FusedBatchNorm=function(){return(Nv=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},kv=l._FusedConv2D=function(){return(kv=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},Tv=l._FusedDepthwiseConv2D=function(){return(Tv=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},Ev=l._Gather=function(){return(Ev=l._Gather=l.asm.Gather).apply(null,arguments)},_v=l._GatherNd=function(){return(_v=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},Av=l._Greater=function(){return(Av=l._Greater=l.asm.Greater).apply(null,arguments)},$v=l._GreaterEqual=function(){return($v=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},Dv=l._LeakyRelu=function(){return(Dv=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},Rv=l._Less=function(){return(Rv=l._Less=l.asm.Less).apply(null,arguments)},Fv=l._LessEqual=function(){return(Fv=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},Ov=l._Log=function(){return(Ov=l._Log=l.asm.Log).apply(null,arguments)},Pv=l._LogicalAnd=function(){return(Pv=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},Lv=l._LogicalNot=function(){return(Lv=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},Mv=l._LogicalOr=function(){return(Mv=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},zv=l._LogicalXor=function(){return(zv=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},Bv=l._Max=function(){return(Bv=l._Max=l.asm.Max).apply(null,arguments)},wg=l._MaxPool=function(){return(wg=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},Cg=l._Maximum=function(){return(Cg=l._Maximum=l.asm.Maximum).apply(null,arguments)},Ld=l._Mean=function(){return(Ld=l._Mean=l.asm.Mean).apply(null,arguments)},Vv=l._Min=function(){return(Vv=l._Min=l.asm.Min).apply(null,arguments)},Gv=l._Minimum=function(){return(Gv=l._Minimum=l.asm.Minimum).apply(null,arguments)},Qc=l._MirrorPad=function(){return(Qc=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},Ig=l._Multiply=function(){return(Ig=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)},Wv=l._NonMaxSuppressionV4=function(){return(Wv=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)},Et=l._OneHot=function(){return(Et=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)},mr=l._Relu=function(){return(mr=l._Relu=l.asm.Relu).apply(null,arguments)},qn=l._Relu6=function(){return(qn=l._Relu6=l.asm.Relu6).apply(null,arguments)},Ji=l._ResizeBilinear=function(){return(Ji=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},vg=l._ResizeNearestNeighbor=function(){return(vg=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Md=l._Reverse=function(){return(Md=l._Reverse=l.asm.Reverse).apply(null,arguments)},Uv=l._RotateWithOffset=function(){return(Uv=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},rn=l._Round=function(){return(rn=l._Round=l.asm.Round).apply(null,arguments)},vl=l._Rsqrt=function(){return(vl=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},Sg=l._ScatterNd=function(){return(Sg=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},VW=l._SelectV2=function(){return(VW=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},GW=l._Sigmoid=function(){return(GW=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},WW=l._Sin=function(){return(WW=l._Sin=l.asm.Sin).apply(null,arguments)},UW=l._Softmax=function(){return(UW=l._Softmax=l.asm.Softmax).apply(null,arguments)},HW=l._SparseFillEmptyRows=function(){return(HW=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},qW=l._SparseReshape=function(){return(qW=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},KW=l._SparseSegmentReduction=function(){return(KW=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},jW=l._Sqrt=function(){return(jW=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},XW=l._Square=function(){return(XW=l._Square=l.asm.Square).apply(null,arguments)},YW=l._SquaredDifference=function(){return(YW=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},ZW=l._Step=function(){return(ZW=l._Step=l.asm.Step).apply(null,arguments)},JW=l._StridedSlice=function(){return(JW=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},QW=l._Sub=function(){return(QW=l._Sub=l.asm.Sub).apply(null,arguments)},tU=l._Sum=function(){return(tU=l._Sum=l.asm.Sum).apply(null,arguments)},eU=l._Tan=function(){return(eU=l._Tan=l.asm.Tan).apply(null,arguments)},rU=l._Tanh=function(){return(rU=l._Tanh=l.asm.Tanh).apply(null,arguments)},nU=l._Tile=function(){return(nU=l._Tile=l.asm.Tile).apply(null,arguments)},oU=l._TopK=function(){return(oU=l._TopK=l.asm.TopK).apply(null,arguments)},sU=l._Transform=function(){return(sU=l._Transform=l.asm.Transform).apply(null,arguments)},iU=l._Transpose=function(){return(iU=l._Transpose=l.asm.Transpose).apply(null,arguments)},aU=l.__FusedMatMul=function(){return(aU=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},lU=l._malloc=function(){return(lU=l._malloc=l.asm.malloc).apply(null,arguments)},uU=l._free=function(){return(uU=l._free=l.asm.free).apply(null,arguments)},cU=l.__emscripten_tls_init=function(){return(cU=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},Ng=l._pthread_self=function(){return(Ng=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},pU=l.___errno_location=function(){return(pU=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},qT=l.__emscripten_thread_init=function(){return(qT=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},mU=l.__emscripten_thread_crashed=function(){return(mU=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},fU=l._emscripten_main_thread_process_queued_calls=function(){return(fU=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},dU=l._emscripten_main_browser_thread_id=function(){return(dU=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},KT=l._emscripten_run_in_main_runtime_thread_js=function(){return(KT=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},hU=l._emscripten_dispatch_to_thread_=function(){return(hU=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},jT=l.__emscripten_proxy_execute_task_queue=function(){return(jT=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},Hv=l.__emscripten_thread_free_data=function(){return(Hv=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},XT=l.__emscripten_thread_exit=function(){return(XT=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},YT=l._emscripten_stack_set_limits=function(){return(YT=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},qv=l.stackSave=function(){return(qv=l.stackSave=l.asm.stackSave).apply(null,arguments)},kg=l.stackRestore=function(){return(kg=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Tg=l.stackAlloc=function(){return(Tg=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},gU=l.dynCall_iijjiiii=function(){return(gU=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},xU=l.dynCall_jiji=function(){return(xU=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=Lo,l.wasmMemory=it,l.cwrap=HI,l.ExitStatus=Du,l.PThread=qt;var Eg;Zi=function L(){Eg||ZT(),Eg||(Zi=L)};function ZT(L){if(L=L||d,Cl>0)return;if(C){c(l),Nr(),postMessage({cmd:"loaded"});return}if(wl(),Cl>0)return;function U(){Eg||(Eg=!0,l.calledRun=!0,!ht&&(Nr(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),Yi()))}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()();ZT();var _g;m&&(_g={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 Ag;if(typeof WasmBackendModule!="undefined")Ag=WasmBackendModule;else if(typeof t!="undefined")Ag=t;else throw new Error("Could not find wasm module in post.js");if(_g){var yU=Ag._dispose;Ag._dispose=function(){yU(),_g.uncaughtException.forEach(function(L){process.removeListener("uncaughtException",L)}),_g.unhandledRejection.forEach(function(L){process.removeListener("unhandledRejection",L)})}}return t.ready}})();typeof lI=="object"&&typeof AT=="object"?AT.exports=_T:typeof define=="function"&&define.amd?define([],function(){return _T}):typeof lI=="object"&&(lI.WasmBackendModuleThreadedSimd=_T)});var FW=dr((HXe,RW)=>{RW.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 OW=dr((uI,DT)=>{var $T=(()=>{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=eg().dirname(f)+"/":f=__dirname+"/";var C,N;typeof $g=="function"&&(C=qb(),N=eg()),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,Et)=>{K=N.normalize(K),C.readFile(K,function(re,Ke){re?Et(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,Et)=>{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}Et()},re.onerror=Et,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"&&jr("no native wasm support detected");var V,G=!1,W;function q(K,lt){K||jr(lt)}var H=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function j(K,lt,Et){for(var re=lt+Et,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|qn&1023)}}return je}function Y(K,lt){return K?j(at,K,lt):""}function Z(K,lt,Et,re){if(!(re>0))return 0;for(var Ke=Et,je=Et+re-1,ee=0;ee=55296&&te<=57343){var mr=K.charCodeAt(++ee);te=65536+((te&1023)<<10)|mr&1023}if(te<=127){if(Et>=je)break;lt[Et++]=te}else if(te<=2047){if(Et+1>=je)break;lt[Et++]=192|te>>6,lt[Et++]=128|te&63}else if(te<=65535){if(Et+2>=je)break;lt[Et++]=224|te>>12,lt[Et++]=128|te>>6&63,lt[Et++]=128|te&63}else{if(Et+3>=je)break;lt[Et++]=240|te>>18,lt[Et++]=128|te>>12&63,lt[Et++]=128|te>>6&63,lt[Et++]=128|te&63}}return lt[Et]=0,Et-Ke}function et(K,lt,Et){return Z(K,at,lt,Et)}var rt,ot,at,nt,it,dt,ht,bt,Tt;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=it=new Uint16Array(K),e.HEAPU32=ht=new Uint32Array(K),e.HEAPF32=bt=new Float32Array(K),e.HEAPF64=Tt=new Float64Array(K)}var Bt=e.INITIAL_MEMORY||16777216,Yt,ce=[],he=[],Kt=[],Te=!1;function fe(){return P}function Ae(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)nr(e.preRun.shift());Zi(ce)}function Ge(){Te=!0,Zi(he)}function En(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)Or(e.postRun.shift());Zi(Kt)}function nr(K){ce.unshift(K)}function Wn(K){he.unshift(K)}function Or(K){Kt.unshift(K)}var qe=0,Pr=null,Lr=null;function Un(K){qe++,e.monitorRunDependencies&&e.monitorRunDependencies(qe)}function Hn(K){if(qe--,e.monitorRunDependencies&&e.monitorRunDependencies(qe),qe==0&&(Pr!==null&&(clearInterval(Pr),Pr=null),Lr)){var lt=Lr;Lr=null,lt()}}function jr(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 Xi="data:application/octet-stream;base64,";function Lo(K){return K.startsWith(Xi)}function wl(K){return K.startsWith("file://")}var Nr;Nr="tfjs-backend-wasm.wasm",Lo(Nr)||(Nr=d(Nr));function Yi(K){try{if(K==Nr&&F)return new Uint8Array(F);if(x)return x(K);throw"both async and sync fetching of the wasm failed"}catch(lt){jr(lt)}}function _d(){if(!F&&(c||p)){if(typeof fetch=="function"&&!wl(Nr))return fetch(Nr,{credentials:"same-origin"}).then(function(K){if(!K.ok)throw"failed to load wasm binary file at '"+Nr+"'";return K.arrayBuffer()}).catch(function(){return Yi(Nr)});if(g)return new Promise(function(K,lt){g(Nr,function(Et){K(new Uint8Array(Et))},lt)})}return Promise.resolve().then(function(){return Yi(Nr)})}function Ad(){var K={env:Rd,wasi_snapshot_preview1:Rd};function lt(ee,te){var mr=ee.exports;e.asm=mr,V=e.asm.memory,_t(V.buffer),Yt=e.asm.__indirect_function_table,Wn(e.asm.__wasm_call_ctors),Hn("wasm-instantiate")}Un("wasm-instantiate");function Et(ee){lt(ee.instance)}function re(ee){return _d().then(function(te){return WebAssembly.instantiate(te,K)}).then(function(te){return te}).then(ee,function(te){A("failed to asynchronously prepare wasm: "+te),jr(te)})}function Ke(){return!F&&typeof WebAssembly.instantiateStreaming=="function"&&!Lo(Nr)&&!wl(Nr)&&!m&&typeof fetch=="function"?fetch(Nr,{credentials:"same-origin"}).then(function(ee){var te=WebAssembly.instantiateStreaming(ee,K);return te.then(Et,function(mr){return A("wasm streaming compile failed: "+mr),A("falling back to ArrayBuffer instantiation"),re(Et)})}):re(Et)}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 LT,Cl;function Xc(K){this.name="ExitStatus",this.message="Program terminated with exit("+K+")",this.status=K}function Zi(K){for(;K.length>0;)K.shift()(e)}function MT(K){return K}function zT(K){var lt=/\b_Z[\w\d_]+/g;return K.replace(lt,function(Et){var re=Et;return Et===re?Et:re+" ["+Et+"]"})}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 pI(K,lt){ot.set(K,lt)}function ig(){jr("")}function $d(){return 2147483648}function en(){return $d()}function ag(K,lt,Et){at.copyWithin(K,lt,lt+Et)}function mI(K){try{return V.grow(K-rt.byteLength+65535>>>16),_t(V.buffer),1}catch(lt){}}function fI(K){var lt=at.length;K=K>>>0;var Et=$d();if(K>Et)return!1;let re=(mr,qn)=>mr+(qn-mr%qn)%qn;for(var Ke=1;Ke<=4;Ke*=2){var je=lt*(1+.2/Ke);je=Math.min(je,K+100663296);var ee=Math.min(Et,re(Math.max(K,je),65536)),te=mI(ee);if(te)return!0}return!1}var dI={varargs:void 0,get:function(){dI.varargs+=4;var K=dt[dI.varargs-4>>2];return K},getStr:function(K){var lt=Y(K);return lt}};function BT(K){return 52}function hI(K,lt,Et,re,Ke){return 70}var Du=[null,[],[]];function gI(K,lt){var Et=Du[K];lt===0||lt===10?((K===1?_:A)(j(Et,0)),Et.length=0):Et.push(lt)}function xI(K,lt,Et,re){for(var Ke=0,je=0;je>2],te=ht[lt+4>>2];lt+=8;for(var mr=0;mr>2]=Ke,0}function Dd(K){var lt=e["_"+K];return lt}function lg(K,lt,Et,re,Ke){var je={string:rn=>{var vl=0;if(rn!=null&&rn!==0){var Sg=(rn.length<<2)+1;vl=Ld(Sg),et(rn,vl,Sg)}return vl},array:rn=>{var vl=Ld(rn.length);return pI(rn,vl),vl}};function ee(rn){return lt==="string"?Y(rn):lt==="boolean"?Boolean(rn):rn}var te=Dd(K),mr=[],qn=0;if(re)for(var Ji=0;Jiee==="number"||ee==="boolean"),je=lt!=="string";return je&&Ke&&!re?Dd(K):function(){return lg(K,lt,Et,arguments,re)}}var Rd={abort:ig,emscripten_get_heap_max:en,emscripten_memcpy_big:ag,emscripten_resize_heap:fI,fd_close:BT,fd_seek:hI,fd_write:xI},VT=Ad(),cg=e.___wasm_call_ctors=function(){return(cg=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},yI=e._init=function(){return(yI=e._init=e.asm.init).apply(null,arguments)},qt=e._init_with_threads_count=function(){return(qt=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},Fd=e._get_threads_count=function(){return(Fd=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},bI=e._register_tensor=function(){return(bI=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},GT=e._dispose_data=function(){return(GT=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},WT=e._dispose=function(){return(WT=e._dispose=e.asm.dispose).apply(null,arguments)},wI=e._Abs=function(){return(wI=e._Abs=e.asm.Abs).apply(null,arguments)},pg=e._Add=function(){return(pg=e._Add=e.asm.Add).apply(null,arguments)},Zc=e._AddN=function(){return(Zc=e._AddN=e.asm.AddN).apply(null,arguments)},CI=e._All=function(){return(CI=e._All=e.asm.All).apply(null,arguments)},II=e._Any=function(){return(II=e._Any=e.asm.Any).apply(null,arguments)},UT=e._ArgMax=function(){return(UT=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},vI=e._AvgPool=function(){return(vI=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},SI=e._BatchMatMul=function(){return(SI=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},NI=e._Ceil=function(){return(NI=e._Ceil=e.asm.Ceil).apply(null,arguments)},kI=e._ClipByValue=function(){return(kI=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},mg=e._Conv2D=function(){return(mg=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},fg=e._Conv2DBackpropInput=function(){return(fg=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},TI=e._Cos=function(){return(TI=e._Cos=e.asm.Cos).apply(null,arguments)},EI=e._Cosh=function(){return(EI=e._Cosh=e.asm.Cosh).apply(null,arguments)},_I=e._CropAndResize=function(){return(_I=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},Od=e._Cumprod=function(){return(Od=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},AI=e._Cumsum=function(){return(AI=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},$I=e._DepthToSpace=function(){return($I=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},DI=e._DepthwiseConv2dNative=function(){return(DI=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Ru=e._Elu=function(){return(Ru=e._Elu=e.asm.Elu).apply(null,arguments)},RI=e._Equal=function(){return(RI=e._Equal=e.asm.Equal).apply(null,arguments)},FI=e._Exp=function(){return(FI=e._Exp=e.asm.Exp).apply(null,arguments)},dg=e._FlipLeftRight=function(){return(dg=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},OI=e._Floor=function(){return(OI=e._Floor=e.asm.Floor).apply(null,arguments)},Jc=e._FloorDiv=function(){return(Jc=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},PI=e._FusedBatchNorm=function(){return(PI=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},LI=e._FusedConv2D=function(){return(LI=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},Il=e._FusedDepthwiseConv2D=function(){return(Il=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},Pd=e._Gather=function(){return(Pd=e._Gather=e.asm.Gather).apply(null,arguments)},MI=e._GatherNd=function(){return(MI=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},zI=e._Greater=function(){return(zI=e._Greater=e.asm.Greater).apply(null,arguments)},BI=e._GreaterEqual=function(){return(BI=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},VI=e._LeakyRelu=function(){return(VI=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},hg=e._Less=function(){return(hg=e._Less=e.asm.Less).apply(null,arguments)},gg=e._LessEqual=function(){return(gg=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},GI=e._Log=function(){return(GI=e._Log=e.asm.Log).apply(null,arguments)},WI=e._LogicalAnd=function(){return(WI=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},xg=e._LogicalNot=function(){return(xg=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},yg=e._LogicalOr=function(){return(yg=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},UI=e._LogicalXor=function(){return(UI=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},HI=e._Max=function(){return(HI=e._Max=e.asm.Max).apply(null,arguments)},qI=e._MaxPool=function(){return(qI=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},bg=e._Maximum=function(){return(bg=e._Maximum=e.asm.Maximum).apply(null,arguments)},HT=e._Mean=function(){return(HT=e._Mean=e.asm.Mean).apply(null,arguments)},KI=e._Min=function(){return(KI=e._Min=e.asm.Min).apply(null,arguments)},jI=e._Minimum=function(){return(jI=e._Minimum=e.asm.Minimum).apply(null,arguments)},XI=e._MirrorPad=function(){return(XI=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},YI=e._Multiply=function(){return(YI=e._Multiply=e.asm.Multiply).apply(null,arguments)},ZI=e._Neg=function(){return(ZI=e._Neg=e.asm.Neg).apply(null,arguments)},JI=e._NonMaxSuppressionV3=function(){return(JI=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},QI=e._NonMaxSuppressionV4=function(){return(QI=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},tv=e._NonMaxSuppressionV5=function(){return(tv=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},ev=e._NotEqual=function(){return(ev=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},rv=e._OneHot=function(){return(rv=e._OneHot=e.asm.OneHot).apply(null,arguments)},nv=e._PadV2=function(){return(nv=e._PadV2=e.asm.PadV2).apply(null,arguments)},ov=e._Pow=function(){return(ov=e._Pow=e.asm.Pow).apply(null,arguments)},sv=e._Prelu=function(){return(sv=e._Prelu=e.asm.Prelu).apply(null,arguments)},iv=e._Prod=function(){return(iv=e._Prod=e.asm.Prod).apply(null,arguments)},av=e._RealDiv=function(){return(av=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},lv=e._Relu=function(){return(lv=e._Relu=e.asm.Relu).apply(null,arguments)},uv=e._Relu6=function(){return(uv=e._Relu6=e.asm.Relu6).apply(null,arguments)},cv=e._ResizeBilinear=function(){return(cv=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},pv=e._ResizeNearestNeighbor=function(){return(pv=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},mv=e._Reverse=function(){return(mv=e._Reverse=e.asm.Reverse).apply(null,arguments)},fv=e._RotateWithOffset=function(){return(fv=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},dv=e._Round=function(){return(dv=e._Round=e.asm.Round).apply(null,arguments)},hv=e._Rsqrt=function(){return(hv=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},gv=e._ScatterNd=function(){return(gv=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},xv=e._SelectV2=function(){return(xv=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},yv=e._Sigmoid=function(){return(yv=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},bv=e._Sin=function(){return(bv=e._Sin=e.asm.Sin).apply(null,arguments)},wv=e._Softmax=function(){return(wv=e._Softmax=e.asm.Softmax).apply(null,arguments)},Cv=e._SparseFillEmptyRows=function(){return(Cv=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},Iv=e._SparseReshape=function(){return(Iv=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},vv=e._SparseSegmentReduction=function(){return(vv=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},Sv=e._Sqrt=function(){return(Sv=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},Nv=e._Square=function(){return(Nv=e._Square=e.asm.Square).apply(null,arguments)},kv=e._SquaredDifference=function(){return(kv=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},Tv=e._Step=function(){return(Tv=e._Step=e.asm.Step).apply(null,arguments)},Ev=e._StridedSlice=function(){return(Ev=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},_v=e._Sub=function(){return(_v=e._Sub=e.asm.Sub).apply(null,arguments)},Av=e._Sum=function(){return(Av=e._Sum=e.asm.Sum).apply(null,arguments)},$v=e._Tan=function(){return($v=e._Tan=e.asm.Tan).apply(null,arguments)},Dv=e._Tanh=function(){return(Dv=e._Tanh=e.asm.Tanh).apply(null,arguments)},Rv=e._Tile=function(){return(Rv=e._Tile=e.asm.Tile).apply(null,arguments)},Fv=e._TopK=function(){return(Fv=e._TopK=e.asm.TopK).apply(null,arguments)},Ov=e._Transform=function(){return(Ov=e._Transform=e.asm.Transform).apply(null,arguments)},Pv=e._Transpose=function(){return(Pv=e._Transpose=e.asm.Transpose).apply(null,arguments)},Lv=e.__FusedMatMul=function(){return(Lv=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},Mv=e._malloc=function(){return(Mv=e._malloc=e.asm.malloc).apply(null,arguments)},zv=e._free=function(){return(zv=e._free=e.asm.free).apply(null,arguments)},Bv=e.___errno_location=function(){return(Bv=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},wg=e.stackSave=function(){return(wg=e.stackSave=e.asm.stackSave).apply(null,arguments)},Cg=e.stackRestore=function(){return(Cg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},Ld=e.stackAlloc=function(){return(Ld=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},Vv=e.dynCall_iijjiiii=function(){return(Vv=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},Gv=e.dynCall_jiji=function(){return(Gv=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=ug;var Qc;Lr=function K(){Qc||Ig(),Qc||(Lr=K)};function Ig(K){if(K=K||a,qe>0||(Ae(),qe>0))return;function lt(){Qc||(Qc=!0,e.calledRun=!0,!G&&(Ge(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),En()))}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()();Ig();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 Wv=ep._dispose;ep._dispose=function(){Wv(),tp.uncaughtException.forEach(function(K){process.removeListener("uncaughtException",K)}),tp.unhandledRejection.forEach(function(K){process.removeListener("unhandledRejection",K)})}}return t.ready}})();typeof uI=="object"&&typeof DT=="object"?DT.exports=$T:typeof define=="function"&&define.amd?define([],function(){return $T}):typeof uI=="object"&&(uI.WasmBackendModule=$T)});var ta=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}},Mo=class{refCount(t){return jn("refCount")}incRef(t){return jn("incRef")}timerAvailable(){return!0}time(t){return jn("time")}read(t){return jn("read")}readSync(t){return jn("readSync")}readToGPU(t,e){return jn("readToGPU")}numDataIds(){return jn("numDataIds")}disposeData(t,e){return jn("disposeData")}write(t,e,n){return jn("write")}move(t,e,n,o,s){return jn("move")}memory(){return jn("memory")}floatPrecision(){return jn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return jn("dispose")}};function jn(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 t1(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Dg(r,t,e)}function kU(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--,Dg(r,e,n),Dg(t,e,n)}function np(r,t,e){return Math.max(r,Math.min(t,e))}function TU(r){return r%2===0?r:r+1}function Dg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function EU(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function Xn(r){E(r!=null,()=>"The input to the tensor constructor must be a non-null value.")}function zo(r,t=[],e=!1){if(t==null&&(t=[]),Array.isArray(r)||hr(r)&&!e)for(let n=0;n0,e,n=setTimeout){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(a,u)};a()})}function PU(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 ar(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=>ea(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function Xv(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:ar(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 Yv(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 Zv(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 Jv(r,t){for(let e=0;et+=e.length),t}function Bo(r){return typeof r=="string"||r instanceof String}function e1(r){return typeof r=="boolean"}function r1(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":r1(r)?"float32":Bo(r)?"string":e1(r)?"bool":"float32"}function ri(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 n1(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 n1(0,r,t,e)}function zd(r,t){let e=ip(r,t);for(let n=0;nn*o,1);if(t==null||t==="float32")return Fu(r,new Float32Array(e));if(t==="int32")return Fu(r,new Int32Array(e));if(t==="bool")return Fu(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Bd(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]=UU(o,s)})}};function GU(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(WU(t,n[0],n[1]),n.join("="))),t}function WU(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||"")}function UU(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 M(){return eS}var eS=null;function s1(r){eS=r}var rS;function nS(){if(rS==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");rS=r}return rS}function HU(){let r=nS();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function Wd(r,t){let e=HU();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var oi="Abs",ra="Acos",na="Acosh",Yn="Add",Vo="AddN",oa="All",sa="Any",Go="ArgMax",Nl="ArgMin",ia="Asin",aa="Asinh",la="Atan",ua="Atanh",ca="Atan2",Wo="AvgPool",ap="AvgPoolGrad",kl="AvgPool3D",lp="AvgPool3DGrad",Uo="BatchMatMul",si="BatchToSpaceND",up="Bincount",i1="BroadcastTo",cp="BroadcastArgs",io="Cast",Ho="Ceil",ao="ClipByValue",pp="Complex",Tl="ComplexAbs",ii="Concat",qo="Conv2D",mp="Conv2DBackpropFilter",Ko="Conv2DBackpropInput",El="Conv3D",fp="Conv3DBackpropFilterV2",dp="Conv3DBackpropInputV2",jo="Cos",Xo="Cosh",pa="Cumprod",Yo="Cumsum",ma="CropAndResize",hp="DenseBincount",fa="DepthToSpace",Zo="DepthwiseConv2dNative",gp="DepthwiseConv2dNativeBackpropFilter",xp="DepthwiseConv2dNativeBackpropInput",yp="Diag",_l="Dilation2D",Ud="Dilation2DBackpropInput",Hd="Dilation2DBackpropFilter",Jo="RealDiv",bp="Einsum",Qo="Elu",wp="EluGrad",da="Erf",ha="Equal",ts="Exp",ai="ExpandDims",ga="Expm1",Cp="FFT",Al="Fill",xa="FlipLeftRight",es="Floor",rs="FloorDiv",ns="FusedBatchNorm",li="GatherV2",ya="GatherNd",ba="Greater",os="GreaterEqual",lo="Identity",Ip="IFFT",vp="Imag",wa="IsFinite",Ca="IsInf",Ia="IsNan",ss="LeakyRelu",va="Less",Sa="LessEqual",Sp="LinSpace",is="Log",Na="Log1p",ka="LogicalAnd",Ta="LogicalNot",Ea="LogicalOr",a1="LogicalXor",l1="LogSoftmax",rlt="LowerBound",$l="LRN",Np="LRNGrad",as="Max",ls="Maximum",us="MaxPool",kp="MaxPoolGrad",Dl="MaxPool3D",Tp="MaxPool3DGrad",Ep="MaxPoolWithArgmax",cs="Mean",ps="Min",ms="Minimum",fs="MirrorPad",_a="Mod",_p="Multinomial",ds="Multiply",ui="Neg",Aa="NotEqual",$a="NonMaxSuppressionV3",Da="NonMaxSuppressionV4",Ra="NonMaxSuppressionV5",ci="OnesLike",hs="OneHot",pi="Pack",gs="PadV2",nlt="Pool",xs="Pow",ys="Prelu",bs="Prod",Ap="RaggedGather",$p="RaggedTensorToTensor",Rl="Range",Dp="Real",Fa="Reciprocal",ws="Relu",mi="Reshape",Cs="ResizeNearestNeighbor",Rp="ResizeNearestNeighborGrad",Is="ResizeBilinear",Fp="ResizeBilinearGrad",vs="Relu6",Ss="Reverse",Ns="Round",ks="Rsqrt",Oa="ScatterNd",Op="SearchSorted",fi="Select",Pa="Selu",di="Slice",Ts="Sin",La="Sinh",Ma="Sign",Es="Sigmoid",za="Softplus",_s="Sqrt",As="Sum",hi="SpaceToBatchND",gi="SplitV",$s="Softmax",Fl="SparseFillEmptyRows",Ba="SparseReshape",Ol="SparseSegmentMean",Pl="SparseSegmentSum",Pp="SparseToDense",Ds="SquaredDifference",Ll="Square",Va="StridedSlice",Ml="StringNGrams",zl="StringSplit",Bl="StringToHashBucketFast",Rs="Sub",Fs="Tan",Os="Tanh",Zn="Tile",Ga="TopK",Wa="Transform",Jn="Transpose",Lp="Unique",xi="Unpack",Vl="UnsortedSegmentSum",olt="UpperBound",yi="ZerosLike",uo="Step",qd="FromPixels",Ua="RotateWithOffset",bi="_FusedMatMul",wi="FusedConv2D",Ci="FusedDepthwiseConv2D";function Ii(...r){M().getBool("IS_TEST")||M().getBool("PROD")||console.warn(...r)}function qU(...r){M().getBool("IS_TEST")||M().getBool("PROD")||console.log(...r)}var Mp=Wd("kernelRegistry",()=>new Map),Kd=Wd("gradRegistry",()=>new Map);function jd(r,t){let e=sS(r,t);return Mp.get(e)}function oS(r){return Kd.get(r)}function Fg(r){let t=Mp.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 Pu(r){let{kernelName:t,backendName:e}=r,n=sS(t,e);Mp.has(n)&&Ii(`The kernel '${t}' for backend '${e}' is already registered`),Mp.set(n,r)}function c1(r){let{kernelName:t}=r;Kd.has(t)&&M().getBool("DEBUG")&&Ii(`Overriding the gradient for '${t}'`),Kd.set(t,r)}function ult(r,t){let e=sS(r,t);if(!Mp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);Mp.delete(e)}function clt(r){if(!Kd.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);Kd.delete(r)}function plt(r,t){Fg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});Pu(o)})}function sS(r,t){return`${t}_${r}`}var y={};Gt(y,{arraysEqual:()=>An,assert:()=>E,assertNonNegativeIntegerDimensions:()=>Bd,assertNonNull:()=>Xn,assertShapesMatch:()=>$e,bytesFromStringArray:()=>tS,bytesPerElement:()=>Rg,checkConversionForErrors:()=>Jv,clamp:()=>np,computeStrides:()=>ni,createScalarValue:()=>QU,createShuffledIndices:()=>FU,decodeString:()=>Gp,distSquared:()=>AU,encodeString:()=>Wl,fetch:()=>e4,fingerPrint64:()=>JU,flatten:()=>zo,getArrayFromDType:()=>Zv,getTypedArrayFromDType:()=>Yv,hasEncodingLoss:()=>LU,hexToLong:()=>Xd,indexToLoc:()=>BU,inferDtype:()=>op,inferFromImplicitShape:()=>PU,isBoolean:()=>e1,isFunction:()=>ri,isInt:()=>ea,isNumber:()=>r1,isPromise:()=>Vd,isScalarShape:()=>$U,isString:()=>Bo,isTypedArray:()=>hr,isValidDtype:()=>Qv,locToIndex:()=>zU,makeOnesTypedArray:()=>zd,makeZerosNestedTypedArray:()=>MU,makeZerosTypedArray:()=>ip,nearestDivisor:()=>sp,nearestLargerEven:()=>TU,now:()=>Vu,parseAxisParam:()=>ar,randUniform:()=>_U,repeatedTry:()=>OU,rightPad:()=>Ou,shuffle:()=>t1,shuffleCombo:()=>kU,sizeFromShape:()=>Zt,sizeToSquarishShape:()=>RU,squeezeShape:()=>Xv,sum:()=>EU,swap:()=>Dg,tanh:()=>DU,toNestedArray:()=>Fu,toTypedArray:()=>Vp});var uS=Sl(C1());var Bu=uS.default||uS;function Xd(r){return Bu.fromString(r,!0,16)}var v1=Xd("c3a5c85c97cb3127"),zu=Xd("b492b66fbe98f273"),nn=Xd("9ae16a3b2f90404f");function lS(r){return r.xor(r.shru(47))}function S1(r,t,e){let n=r.slice(t,t+e);return Bu.fromBytes(Array.from(n),!0,!0)}function Oe(r,t){return S1(r,t,8)}function I1(r,t){return S1(r,t,4)}function kr(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function Gl(r,t,e=Xd("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 jU(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 Pg(r,t,e,n){return jU(Oe(r,t),Oe(r,t+8),Oe(r,t+16),Oe(r,t+24),e,n)}function XU(r,t=r.length){if(t>=8){let e=nn.add(t*2),n=Oe(r,0).add(nn),o=Oe(r,t-8),s=kr(o,37).mul(e).add(n),i=kr(n,25).add(o).mul(e);return Gl(s,i,e)}if(t>=4){let e=nn.add(t*2),n=I1(r,0);return Gl(n.shl(3).add(t),I1(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 lS(nn.mul(s).xor(v1.mul(i))).mul(nn)}return nn}function YU(r,t=r.length){let e=nn.add(t*2),n=Oe(r,0).mul(zu),o=Oe(r,8),s=Oe(r,t-8).mul(e),i=Oe(r,t-16).mul(nn);return Gl(kr(n.add(o),43).add(kr(s,30)).add(i),n.add(kr(o.add(nn),18)).add(s),e)}function ZU(r,t=r.length){let e=nn.add(t*2),n=Oe(r,0).mul(nn),o=Oe(r,8),s=Oe(r,t-8).mul(e),i=Oe(r,t-16).mul(nn),a=kr(n.add(o),43).add(kr(s,30)).add(i),u=Gl(a,n.add(kr(o.add(nn),18)).add(s),e),l=Oe(r,16).mul(e),c=Oe(r,24),p=a.add(Oe(r,t-32)).mul(e),m=u.add(Oe(r,t-24)).mul(e);return Gl(kr(l.add(c),43).add(kr(p,30)).add(m),l.add(kr(c.add(n),18)).add(p),e)}function JU(r,t=r.length){let e=Bu.fromNumber(81,!0);if(t<=32)return t<=16?XU(r,t):YU(r,t);if(t<=64)return ZU(r,t);let n=e,o=e.mul(zu).add(113),s=lS(o.mul(nn).add(113)).mul(nn),i=[Bu.UZERO,Bu.UZERO],a=[Bu.UZERO,Bu.UZERO];n=n.mul(nn).add(Oe(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(Oe(r,u+8)),37).mul(zu),o=kr(o.add(i[1]).add(Oe(r,u+48)),42).mul(zu),n=n.xor(a[1]),o=o.add(i[0]).add(Oe(r,u+40)),s=kr(s.add(a[0]),33).mul(zu),i=Pg(r,u,i[1].mul(zu),n.add(a[0])),a=Pg(r,u+32,s.add(a[1]),o.add(Oe(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=zu.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(Oe(r,u+8)),37).mul(p),o=kr(o.add(i[1]).add(Oe(r,u+48)),42).mul(p),n=n.xor(a[1].mul(9)),o=o.add(i[0].mul(9).add(Oe(r,u+40))),s=kr(s.add(a[0]),33).mul(p),i=Pg(r,u,i[1].mul(p),n.add(a[0])),a=Pg(r,u+32,s.add(a[1]),o.add(Oe(r,u+16))),[s,n]=[n,s],Gl(Gl(i[0],a[0],p).add(lS(o).mul(v1)).add(s),Gl(i[1],a[1],p).add(n),p)}function QU(r,t){return t==="string"?Wl(r):Vp([r],t)}function t4(r,t){return r instanceof Float32Array&&t==="float32"||r instanceof Int32Array&&t==="int32"||r instanceof Uint8Array&&t==="bool"}function Vp(r,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(r)&&(r=zo(r)),M().getBool("DEBUG")&&Jv(r,t),t4(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=Vu();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:Vu()-a})}if(M().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let l=0;l{r4(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 r4(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 N1(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(!An(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 T1=20,Yd=3,pS=7;function E1(r,t,e,n){let o=ni(t),s=n4(r,t,e,o),i=t.length,a=Mg(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 F4(r,t,e,n){let o=Qt(t),s=n[n.length-1],i=new Array(s).fill(0),a=t.length,u=e==="complex64"?mh(r):r;if(a>1)for(let l=0;lK1){let g=ch*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-ch)*i,a*i));return e==="complex64"&&(x=mh(x),b=mh(b)),["["+x.map((w,C)=>ph(w,o[C],e)).join(", ")+", ..., "+b.map((w,C)=>ph(w,o[a-ch+C],e)).join(", ")+"]"]}let h=e==="complex64"?mh(r):Array.from(r);return["["+h.map((g,x)=>ph(g,o[x],e)).join(", ")+"]"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>K1){for(let h=0;h1)for(let l=0;lT1){let g=Yd*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-Yd)*i,a*i));return e==="complex64"&&(x=Jd(x),b=Jd(b)),["["+x.map((w,C)=>Zd(w,o[C],e)).join(", ")+", ..., "+b.map((w,C)=>Zd(w,o[a-Yd+C],e)).join(", ")+"]"]}let h=e==="complex64"?Jd(r):Array.from(r);return["["+h.map((g,x)=>Zd(g,o[x],e)).join(", ")+"]"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>T1){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||d0(e,this.size),this.strides=ci(t)}set(t,...e){e.length===0&&(e=[0]),A(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;orm(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(),Us().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=Us().readSync(this.dataId);if(this.dtype==="string")try{return t.map(e=>rm(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 Us().read(this.dataId);return this.dtype==="string"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(Us().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(t=!1){return nm.print(this,t)}clone(){return this.throwIfDisposed(),nm.clone(this)}toString(t=!1){let e=this.dataSync();return j1(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),nm.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),Us().makeVariable(this,t,e,n)}};Object.defineProperty(Lt,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function L(){return nh("Tensor",()=>Lt)}L();var Ka=class extends Lt{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(!Rn(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);Us().disposeTensor(this),this.dataId=t.dataId,Us().incRef(this,null)}dispose(){Us().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Ka,Symbol.hasInstance,{value:r=>r instanceof Lt&&r.assign!=null&&r.assign instanceof Function});var ho={};jt(ho,{assertTypesMatch:()=>F0,getTensorsInContainer:()=>fh,isTensorInList:()=>L4,makeTypesMatch:()=>Xt});var E0;(function(r){r.R0="R0",r.R1="R1",r.R2="R2",r.R3="R3",r.R4="R4",r.R5="R5",r.R6="R6"})(E0||(E0={}));var A0;(function(r){r.float32="float32",r.int32="int32",r.bool="int32",r.complex64="complex64"})(A0||(A0={}));var $0;(function(r){r.float32="float32",r.int32="int32",r.bool="bool",r.complex64="complex64"})($0||($0={}));var D0;(function(r){r.float32="float32",r.int32="float32",r.bool="float32",r.complex64="complex64"})(D0||(D0={}));var R0;(function(r){r.float32="complex64",r.int32="complex64",r.bool="complex64",r.complex64="complex64"})(R0||(R0={}));var P4={float32:D0,int32:A0,bool:$0,complex64:R0};function ir(r,t){if(r==="string"||t==="string"){if(r==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${r} with ${t}`)}return P4[r][t]}function Xu(r){return ir(r,"int32")}function Xt(r,t){if(r.dtype===t.dtype)return[r,t];let e=ir(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function F0(r,t){A(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function L4(r,t){return t.some(e=>e.id===r.id)}function fh(r){let t=[];return Q1(r,t,new Set),t}function Q1(r,t,e){if(r==null)return;if(r instanceof Lt){t.push(r);return}if(!M4(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),Q1(s,t,e))}}function M4(r){return Array.isArray(r)||typeof r=="object"}function O0(r){return r.kernelName!=null}var sx=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()}},Hl=class{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new sx}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){tx(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 Ho)&&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 Hl.nextTensorId++}nextVariableId(){return Hl.nextVariableId++}clone(t){let e=_.runKernel(uo,{x:t}),n={x:t},o=i=>({x:()=>{let a="float32",u={x:i},l={dtype:a};return _.runKernel(ao,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,!(lh(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=O0(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(O0(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=lh(d,this.backendName);A(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(T=>T.rank!=null?T:this.makeTensorFromTensorInfo(T));if(o){let T=this.getTensorsForGradient(d,h,C);n=this.saveTensorsForBackwardMode(T)}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=O0(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=C0(t);if(o!=null){let s=o.inputsToSave||[],i=o.outputsToSave||[],a;o.saveAllInputs?(A(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"&&Ko(t[0])&&(s=t.map(u=>Ul(u)));let i=o.write(s,e,n),a=new Lt(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n==="string"){let u=this.state.tensorInfo.get(i),l=x0(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 Lt(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*Qg(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*Qg(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=C0(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=Cp(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=fh(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(A(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));A(s instanceof Lt,()=>"The result y returned by f() must be a tensor.");let i=H1(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?z4(s.shape):n,q1(a,i,l=>this.tidy(l),B4);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 A(ui(t),()=>"The f passed in customGrad(f) must be a function."),(...e)=>{A(e.every(a=>a instanceof Lt),()=>"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),A(n.value instanceof Lt,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),A(ui(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];A(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(...)."),A(c.every(m=>m instanceof Lt),()=>"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=ju(),n=await this.backend.time(t);return n.wallMs=ju()-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 sx;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}};Hl.nextTensorId=0;Hl.nextVariableId=0;function z4(r){let t=Qd(Qt(r),"float32");return _.makeTensor(t,r,"float32")}function P0(){let r=w0();if(r._tfengine==null){let t=new rh(r);r._tfengine=new Hl(t)}return T1(r._tfengine.ENV),Y1(()=>r._tfengine),r._tfengine}var _=P0();function B4(r,t){let e={a:r,b:t};return _.runKernel(jn,e)}var ql={};jt(ql,{isBrowser:()=>M0,isMobile:()=>W4,mockIsMobile:()=>G4});function V4(){return typeof navigator!="undefined"&&navigator!=null}var L0;function G4(r){L0=r}function W4(r){if(L0!==void 0)return L0;if(r||V4()){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 M0(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Zn=B();Zn.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.")});Zn.registerFlag("IS_BROWSER",()=>M0());Zn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Zn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Zn.registerFlag("PROD",()=>!1);Zn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Zn.getBool("DEBUG"));Zn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Zn.registerFlag("IS_TEST",()=>!1);Zn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);Zn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);Zn.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);Zn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);function Pr(r,t){let e=r;if(xr(r))return t==="string"?[]:[r.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)&&B().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&e_(r,n,[]),n}function e_(r,t,e){if(e=e||[],!Array.isArray(r)&&!xr(r)){A(t.length===0,()=>`Element arr[${e.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}A(t.length>0,()=>`Element arr[${e.join("][")}] should be a primitive, but is an array of ${r.length} elements`),A(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),t_(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=Pr(r,o);!xr(r)&&!Array.isArray(r)&&(r=[r]);let a=o!=="string"?em(r,o):qo(r,[],!0);return _.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)=>v(s,`${t}[${i}]`,e,n))}var z0="__op";function N(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+z0;let o=(...s)=>{_.startScope(e);try{let i=n(...s);return eh(i)&&console.error("Cannot return a Promise inside of tidy."),_.endScope(i),i}catch(i){throw _.endScope(null),i}};return Object.defineProperty(o,"name",{value:e,configurable:!0}),o}function U4(r,t){let e=v(r,"real","complex"),n=v(t,"imag","complex");Fe(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 _.runKernel(Np,o)}var Cn=N({complex_:U4});function sn(r,t,e,n){if(n==null&&(n=bp(r)),n==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");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){th(t);let o=Qt(t),s=Qt(e);A(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"?em(r,n):qo(r,[],!0),_.makeTensor(r,t,n)}function vr(r,t,e){let n=Pr(r,e);return sn(r,t,n,e)}var dh={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var ix=4;async function n_(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)+ix*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 B0=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function r_(r){return B0?Buffer.byteLength(r):new Blob([r]).size}function o_(r){if(B0)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 V0(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 lx(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.trainingConfig!=null&&(e.trainingConfig=r.trainingConfig),e}async function sm(r,t){let e={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy};if(r.trainingConfig!=null&&(e.trainingConfig=r.trainingConfig),r.weightsManifest!=null){let[n,o]=await t(r.weightsManifest);e.weightSpecs=n,e.weightData=o}return r.signature!=null&&(e.signature=r.signature),r.userDefinedMetadata!=null&&(e.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(e.modelInitializer=r.modelInitializer),e}function Ai(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:r_(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:r_(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function q4(){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 K4(){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 j4(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function X4(){let r=q4(),t=K4(),e=j4();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 Se=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Se.instance==null&&(Se.instance=new Se),Se.instance}static registerSaveRouter(t){Se.getInstance().saveRouters.push(t)}static registerLoadRouter(t){Se.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return Se.getHandlers(t,"save")}static getLoadHandlers(t,e){return Se.getHandlers(t,"load",e)}static getHandlers(t,e,n){let o=[];return(e==="load"?Se.getInstance().loadRouters:Se.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},i_=r=>Se.registerSaveRouter(r),a_=r=>Se.registerLoadRouter(r),l_=r=>Se.getSaveHandlers(r),u_=(r,t)=>Se.getLoadHandlers(r,t);var G0="tensorflowjs",W0=1,Yu="models_store",Kl="model_info_store";function c_(){if(!B().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 U0(r){let t=r.result;t.createObjectStore(Yu,{keyPath:"modelPath"}),t.createObjectStore(Kl,{keyPath:"modelPath"})}var $i=class{constructor(t){if(this.indexedDB=c_(),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(G0,W0);s.onupgradeneeded=()=>U0(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(Yu,"readonly"),l=a.objectStore(Yu).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=Ai(e),u=i.transaction(Kl,"readwrite"),l=u.objectStore(Kl),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a}),p;c.onsuccess=()=>{p=i.transaction(Yu,"readwrite");let f=p.objectStore(Yu).put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a});f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(Kl);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)})}};$i.URL_SCHEME="indexeddb://";var p_=r=>B().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith($i.URL_SCHEME)?Y4(r.slice($i.URL_SCHEME.length)):null;Se.registerSaveRouter(p_);Se.registerLoadRouter(p_);function Y4(r){return new $i(r)}function Z4(r){return r.startsWith($i.URL_SCHEME)?r.slice($i.URL_SCHEME.length):r}var ux=class{constructor(){this.indexedDB=c_()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open(G0,W0);n.onupgradeneeded=()=>U0(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(Kl,"readonly"),a=s.objectStore(Kl).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=Z4(t),new Promise((e,n)=>{let o=this.indexedDB.open(G0,W0);o.onupgradeneeded=()=>U0(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(Kl,"readwrite"),a=i.objectStore(Kl),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(Yu,"readwrite");let f=l.objectStore(Yu).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="/",im="tensorflowjs_models",m_="info",J4="model_topology",Q4="weight_specs",tH="weight_data",eH="model_metadata";function f_(r){return{info:[im,r,m_].join(Xa),topology:[im,r,J4].join(Xa),weightSpecs:[im,r,Q4].join(Xa),weightData:[im,r,tH].join(Xa),modelMetadata:[im,r,eH].join(Xa)}}function d_(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function rH(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 nH(r){return r.startsWith(Di.URL_SCHEME)?r.slice(Di.URL_SCHEME.length):r}var Di=class{constructor(t){if(!B().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=f_(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=Ai(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,o_(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,trainingConfig:t.trainingConfig!=null?t.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:o}}catch(s){throw d_(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.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=s_(i),e}};Di.URL_SCHEME="localstorage://";var h_=r=>B().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Di.URL_SCHEME)?oH(r.slice(Di.URL_SCHEME.length)):null;Se.registerSaveRouter(h_);Se.registerLoadRouter(h_);function oH(r){return new Di(r)}var cx=class{constructor(){A(B().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 t={},e=im+Xa,n=Xa+m_;for(let o=0;o"scheme must not be undefined or null."),t.endsWith(am)&&(t=t.slice(0,t.indexOf(am))),A(t.length>0,()=>"scheme must not be an empty string.");let n=_r.getInstance();A(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=_r.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(_r.getInstance().managers)}};function px(r){if(r.indexOf(am)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${_r.getSchemes().join(",")}`);return{scheme:r.split(am)[0],path:r.split(am)[1]}}async function g_(r,t,e=!1){A(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=Se.getLoadHandlers(r);A(n.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),A(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${r}.`);let o=n[0],s=Se.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 (${n.length}) save handlers for destination URL ${t}.`);let i=s[0],a=px(r).scheme,u=px(r).path,l=a===px(r).scheme,c=await o.load();e&&l&&await _r.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await _r.getManager(a).removeModel(u),p.modelArtifactsInfo}async function x_(){let r=_r.getSchemes(),t={};for(let e of r){let n=await _r.getManager(e).listModels();for(let o in n){let s=e+am+o;t[s]=n[o]}}return t}async function y_(r){let t=px(r);return _r.getManager(t.scheme).removeModel(t.path)}async function b_(r,t){return g_(r,t,!1)}async function w_(r,t){return g_(r,t,!0)}var H0=class{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)}};if(B().get("IS_BROWSER")){B().setPlatform("browser",new H0);try{_r.registerManager(Di.URL_SCHEME,new cx)}catch(r){}try{_r.registerManager($i.URL_SCHEME,new ux)}catch(r){}}var sH={importFetch:()=>C_()},q0;var K0=class{constructor(){this.util=v_(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return B().global.fetch!=null?B().global.fetch(t,e):(q0==null&&(q0=sH.importFetch()),q0(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)}};B().get("IS_NODE")&&!B().get("IS_BROWSER")&&B().setPlatform("node",new K0);function vt(r,t="float32",e){return t=t||"float32",th(r),new fe(r,t,e)}function iH(r,t){let e=v(r,"x","cast");if(!g0(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 _.runKernel(ao,n,o)}var tt=N({cast_:iH});function aH(r){let e={x:v(r,"x","clone","string_or_numeric")};return _.runKernel(uo,e)}var an=N({clone_:aH});function mx(r,t=!1){console.log(r.toString(t))}P0();var lH={buffer:vt,cast:tt,clone:an,print:mx};Z1(lH);var vn={};jt(vn,{browserFiles:()=>S_,browserHTTPRequest:()=>k_,concatenateArrayBuffers:()=>om,copyModel:()=>b_,decodeWeights:()=>ax,encodeWeights:()=>n_,fromMemory:()=>__,fromMemorySync:()=>Q0,getLoadHandlers:()=>u_,getModelArtifactsForJSON:()=>sm,getModelArtifactsInfoForJSON:()=>Ai,getSaveHandlers:()=>l_,http:()=>dx,isHTTPScheme:()=>fx,listModels:()=>x_,loadWeights:()=>T_,moveModel:()=>w_,registerLoadRouter:()=>a_,registerSaveRouter:()=>i_,removeModel:()=>y_,weightsLoaderFactory:()=>Z0,withSaveHandler:()=>E_,withSaveHandlerSync:()=>A_});var uH="model",cH=".json",pH=".weights.bin";function I_(r){return new Promise(t=>setTimeout(t)).then(r)}var Ya=class{constructor(t){if(!B().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=uH),this.modelJsonFileName=t+cH,this.weightDataFileName=t+pH}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=lx(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 I_(()=>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 I_(()=>a.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Ai(t)}}}};Ya.URL_SCHEME="downloads://";var j0=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=sm(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,om(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=>V0(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=V0(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}},mH=r=>B().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Ya.URL_SCHEME)?fH(r.slice(Ya.URL_SCHEME.length)):null;Se.registerSaveRouter(mH);function fH(r="model"){return new Ya(r)}function S_(r){return new j0(r)}function X0(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){A(u!=null&&Array.isArray(u)&&u.length>0,()=>"promises must be a none empty array")}function a(u,l){A(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${u}`),A(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),A(l>=u,()=>`startFraction must be no more than endFraction, but got startFraction ${u} and endFraction ${l}`)}return Promise.all(r.map(s))}async function Y0(r,t){t==null&&(t={});let e=t.fetchFunc==null?B().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 X0(n,t.onProgress,o,s)).map(p=>p.arrayBuffer()),u=.5,l=1;return t.onProgress==null?await Promise.all(a):await X0(a,t.onProgress,u,l)}async function T_(r,t="",e,n){return Z0(i=>Y0(i,{requestInit:n}))(r,t,e)}function Z0(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=dh[x]*Qt(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,T)=>{C===g.name&&(w(),i[T]=!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 T=g.slice(C.groupOffset,C.groupOffset+C.sizeBytes),E=ax(T,[C.manifestEntry]);for(let $ in E)p[$]=E[$]}),m+=d}),p}}var dH="application/octet-stream",hH="application/json",hh=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?(A(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=B().platform.fetch,A(t!=null&&t.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(t)&&A(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=lx(t,n);e.body.append("model.json",new Blob([JSON.stringify(o)],{type:hH}),"model.json"),t.weightData!=null&&e.body.append("model.weights.bin",new Blob([t.weightData],{type:dH}),"model.weights.bin");let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:Ai(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 sm(e,s=>this.loadWeights(s))}async loadWeights(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=gH(e),s=this.weightPathPrefix||n,i=[];for(let c of t)i.push(...c.weights);let 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 Y0(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,om(l)]}};hh.URL_SCHEME_REGEX=/^https?:\/\//;function gH(r){let t=r.lastIndexOf("/"),e=r.lastIndexOf("?"),n=r.substring(0,t),o=e>t?r.substring(e):"";return[n+"/",o]}function fx(r){return r.match(hh.URL_SCHEME_REGEX)!=null}var N_=(r,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>fx(n)):e=fx(r),e)return dx(r,t)}return null};Se.registerSaveRouter(N_);Se.registerLoadRouter(N_);function dx(r,t){return new hh(r,t)}function k_(r,t){return dx(r,t)}var gh=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},hx=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},J0=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function __(r,t,e,n){let o=arguments;return new J0(Q0(...o))}function Q0(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new gh(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 gh({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 gh({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function E_(r){return new hx(r)}function A_(r){return new hx(r)}var R_={};jt(R_,{confusionMatrix:()=>D_});function xH(r,t,e=!1,n=!1){let o=v(r,"a","matMul"),s=v(t,"b","matMul");[o,s]=Xt(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return _.runKernel(Zo,i,a)}var Gt=N({matMul_:xH});function yH(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:v(r,"indices","oneHot","int32")},a={dtype:o,depth:t,onValue:e,offValue:n};return _.runKernel(vs,i,a)}var Ri=N({oneHot_:yH});function wpt(){B().set("PROD",!0)}function Cpt(){B().set("DEBUG",!0)}function vpt(){B().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function tS(r){B().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(r+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}J1(tS);function Ipt(){_.disposeVariables()}function go(){return _}function xh(){return _.memory()}function Spt(r){return _.profile(r)}function G(r,t){return _.tidy(r,t)}function _t(r){fh(r).forEach(e=>e.dispose())}function Oe(r){return _.keep(r)}function Tpt(r){return _.time(r)}function bH(r){return _.setBackend(r)}function Npt(){return _.ready()}function kpt(){return _.backendName}function _pt(r){_.removeBackend(r)}function Ept(r){return _.findBackend(r)}function Apt(r){return _.findBackendFactory(r)}function lm(r,t,e=1){return _.registerBackend(r,t,e)}function $_(){return _.backend}function $pt(r,t){B().setPlatform(r,t)}function wH(r){let e={input:v(r,"input","imag")};return _.runKernel(Mp,e)}var jl=N({imag_:wH});function CH(r){let e={x:v(r,"x","neg")};return _.runKernel(gi,e)}var Yt=N({neg_:CH});function vH(r){let e={input:v(r,"input","real")};return _.runKernel(qp,e)}var Za=N({real_:vH});function IH(r,t,e){let n=v(r,"x","transpose");if(t==null&&(t=n.shape.map((i,a)=>a).reverse()),A(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(i=>{A(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"?G(()=>{let i=Za(n),a=jl(n);return i=_.runKernel(Yn,{x:i},s),a=_.runKernel(Yn,{x:a},s),e&&(a=Yt(a)),Cn(i,a)}):_.runKernel(Yn,o,s)}var Mt=N({transpose_:IH});function SH(r,t,e){let n=v(r,"labels","confusionMatrix"),o=v(t,"predictions","confusionMatrix");A(e==null||e>0&&Number.isInteger(e),()=>`If provided, numClasses must be a positive integer, but got ${e}`),A(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),A(o.rank===1,()=>`Expected the rank of predictions to be 1, but got ${o.rank}`),A(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.`),A(e>0&&Number.isInteger(e),()=>`numClasses is required to be a positive integer, but got ${e}`);let s=Ri(tt(n,"int32"),e),i=Ri(tt(o,"int32"),e),a=Mt(s),u=Gt(a,i);return tt(u,"int32")}var D_=N({confusionMatrix_:SH});var Lr={};jt(Lr,{assertAndGetBroadcastShape:()=>zt,getBroadcastDims:()=>F_,getReductionAxes:()=>ye});function F_(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function ye(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function zt(r,t){let e=[],n=Math.max(r.length,t.length);for(let o=0;o$H,fromPixelsAsync:()=>EH,toPixels:()=>AH});function gx(r,t,e){if(Kn(r),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let n=Pr(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 sn(r,t,n,e)}var Zu;function O_(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(lh(ih,_.backendName)!=null){let d={pixels:r},h={numChannels:t};return _.runKernel(ih,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(Zu==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Zu=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Zu=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Zu.canvas.width=l,Zu.canvas.height=c,Zu.drawImage(r,0,0,l,c),p=Zu.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 $H=N({fromPixels_:O_});var yx={};jt(yx,{prepareAndValidate:()=>P_});function P_(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(Qt(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 yh={};jt(yh,{calculateShapes:()=>L_,validateInput:()=>bx,validateUpdateShape:()=>eS});function eS(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;pRH,computeFlatOffset:()=>MH,computeOutShape:()=>OH,getNormalizedAxes:()=>PH,isSliceContinous:()=>LH,maskToAxes:()=>FH,parseSliceParams:()=>nS,sliceInfo:()=>zH,startForAxis:()=>H_,startIndicesWithElidedDims:()=>G_,stopForAxis:()=>q_,stopIndicesWithElidedDims:()=>W_,stridesForAxis:()=>U_,stridesWithElidedDims:()=>z_});var rS=-2,DH=-1;function RH(r,t,e){let n=r.shape.length;A(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),A(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 FH(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function OH(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=G_(i,f,d,n,r),p=W_(a,f,d,o,r),m=z_(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=B_(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=B_(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=yp(0,i,u-1),i}function q_(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=yp(0,i,u):i=yp(-1,i,u-1),i}function LH(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 MH(r,t){let e=r.length>0?r[r.length-1]:1;for(let n=0;n{A(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:(A(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 zH(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?T:T-1];if(C&&m.strides[w]<=0)throw Error("only stride 1 allowed on non-range indexing.");h=h&&m.strides[w]===1;let D=!!(m.beginMask&1<=T)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=M_(m.begin[w],0,m.strides[w],T,E,$),m.end[w]=M_(m.end[w],1,m.strides[w],T,E,$);let W=m.strides[w]===1&&m.begin[w]===0&&m.end[w]===T;f=f&&W,d=d&&(w===0&&m.strides[w]===1||W)}else f=f&&m.strides[w]===1&&D,d=d&&(w===0&&m.strides[w]===1||D);let P,M=!1;if(m.beginValid&&m.endValid?(P=m.end[w]-m.begin[w],M=!0):C?(P=1,M=!0):D&&T>=0&&(m.strides[w]<0?P=-T:P=T,M=!0),M){let W;P===0||P<0!=m.strides[w]<0?W=0:W=Math.trunc(P/m.strides[w])+(P%m.strides[w]!==0?1:0),g.push(W)}else g.push(-1)}for(let w=0;w=0?x.push(g[C]):C===rS&&x.push(1)}return{finalShapeSparse:x.filter((w,C)=>m.finalShapeGatherIndices[C]!==rS),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function BH(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 rt={};jt(rt,{Serializable:()=>bh,SerializationMap:()=>Fi,registerClass:()=>In});var bh=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},Fi=class{constructor(){this.classNameMap={}}static getMap(){return Fi.instance==null&&(Fi.instance=new Fi),Fi.instance}static register(t){Fi.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function In(r){A(r.className!=null,()=>"Class being registered does not have the static className property defined."),A(typeof r.className=="string",()=>"className is required to be a string, but got type "+typeof r.className),A(r.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Fi.register(r)}var Y_={};jt(Y_,{TEST_EPSILON_FLOAT16:()=>K_,createVideoElement:()=>KH,encodeStrings:()=>X_,expectArrayBuffersEqual:()=>qH,expectArraysClose:()=>GH,expectArraysEqual:()=>UH,expectNumbersClose:()=>j_,expectPromiseToFail:()=>WH,expectValuesInRange:()=>HH,play:()=>jH,testEpsilon:()=>wx});var VH=.001,K_=.1;function GH(r,t,e){return e==null&&(e=wx()),oS(r,t,(n,o)=>sS(n,o,e))}function wx(){return _.backend.floatPrecision()===32?VH:K_}function oS(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=Pr(r),a=Pr(t);if(!Rn(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=xr(r)?r:qo(r),s=xr(t)?t:qo(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 Jd(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||Zv(e,this.size),this.strides=ni(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;oGp(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(),Ls().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=Ls().readSync(this.dataId);if(this.dtype==="string")try{return t.map(e=>Gp(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 Ls().read(this.dataId);return this.dtype==="string"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(Ls().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(t=!1){return Wp.print(this,t)}clone(){return this.throwIfDisposed(),Wp.clone(this)}toString(t=!1){let e=this.dataSync();return E1(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),Wp.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),Ls().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 Wd("Tensor",()=>Ft)}O();var Ha=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(!An(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);Ls().disposeTensor(this),this.dataId=t.dataId,Ls().incRef(this,null)}dispose(){Ls().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Ha,Symbol.hasInstance,{value:r=>r instanceof Ft&&r.assign!=null&&r.assign instanceof Function});var fo={};Gt(fo,{assertTypesMatch:()=>xS,getTensorsInContainer:()=>Qd,isTensorInList:()=>i4,makeTypesMatch:()=>Wt});var mS;(function(r){r.R0="R0",r.R1="R1",r.R2="R2",r.R3="R3",r.R4="R4",r.R5="R5",r.R6="R6"})(mS||(mS={}));var fS;(function(r){r.float32="float32",r.int32="int32",r.bool="int32",r.complex64="complex64"})(fS||(fS={}));var dS;(function(r){r.float32="float32",r.int32="int32",r.bool="bool",r.complex64="complex64"})(dS||(dS={}));var hS;(function(r){r.float32="float32",r.int32="float32",r.bool="float32",r.complex64="complex64"})(hS||(hS={}));var gS;(function(r){r.float32="complex64",r.int32="complex64",r.bool="complex64",r.complex64="complex64"})(gS||(gS={}));var s4={float32:hS,int32:fS,bool:dS,complex64:gS};function or(r,t){if(r==="string"||t==="string"){if(r==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${r} with ${t}`)}return s4[r][t]}function Gu(r){return or(r,"int32")}function Wt(r,t){if(r.dtype===t.dtype)return[r,t];let e=or(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function xS(r,t){E(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function i4(r,t){return t.some(e=>e.id===r.id)}function Qd(r){let t=[];return R1(r,t,new Set),t}function R1(r,t,e){if(r==null)return;if(r instanceof Ft){t.push(r);return}if(!a4(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),R1(s,t,e))}}function a4(r){return Array.isArray(r)||typeof r=="object"}function yS(r){return r.kernelName!=null}var zg=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()}},Ul=class{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new zg}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){Fg(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 Mo)&&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 Ul.nextTensorId++}nextVariableId(){return Ul.nextVariableId++}clone(t){let e=T.runKernel(lo,{x:t}),n={x:t},o=i=>({x:()=>{let a="float32",u={x:i},l={dtype:a};return T.runKernel(io,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=yS(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(yS(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=yS(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=oS(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"&&Bo(t[0])&&(s=t.map(u=>Wl(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=tS(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 Ha(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*Rg(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 Ha||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*Rg(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=oS(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=Qd(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=N1(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?l4(s.shape):n,k1(a,i,l=>this.tidy(l),u4);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(ri(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(ri(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=Vu(),n=await this.backend.time(t);return n.wallMs=Vu()-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 zg;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}};Ul.nextTensorId=0;Ul.nextVariableId=0;function l4(r){let t=zd(Zt(r),"float32");return T.makeTensor(t,r,"float32")}function bS(){let r=nS();if(r._tfengine==null){let t=new Gd(r);r._tfengine=new Ul(t)}return s1(r._tfengine.ENV),A1(()=>r._tfengine),r._tfengine}var T=bS();function u4(r,t){let e={a:r,b:t};return T.runKernel(Yn,e)}var Hl={};Gt(Hl,{isBrowser:()=>CS,isMobile:()=>m4,mockIsMobile:()=>p4});function c4(){return typeof navigator!="undefined"&&navigator!=null}var wS;function p4(r){wS=r}function m4(r){if(wS!==void 0)return wS;if(r||c4()){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 CS(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Rn=M();Rn.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.")});Rn.registerFlag("IS_BROWSER",()=>CS());Rn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Rn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Rn.registerFlag("PROD",()=>!1);Rn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Rn.getBool("DEBUG"));Rn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Rn.registerFlag("IS_TEST",()=>!1);Rn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);Rn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);Rn.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);Rn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);Rn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function Mr(r,t){let e=r;if(hr(r))return t==="string"?[]:[r.length];if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||hr(e)&&t!=="string";)n.push(e.length),e=e[0];return Array.isArray(r)&&M().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&O1(r,n,[]),n}function O1(r,t,e){if(e=e||[],!Array.isArray(r)&&!hr(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),F1(n,o,t,e),r==null||!hr(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=Mr(r,o);!hr(r)&&!Array.isArray(r)&&(r=[r]);let a=o!=="string"?Vp(r,o):zo(r,[],!0);return T.makeTensor(a,s,o)}function qa(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 IS="__op";function k(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+IS;let o=(...s)=>{T.startScope(e);try{let i=n(...s);return Vd(i)&&console.error("Cannot return a Promise inside of tidy."),T.endScope(i),i}catch(i){throw T.endScope(null),i}};return Object.defineProperty(o,"name",{value:e,configurable:!0}),o}function f4(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 T.runKernel(pp,o)}var bn=k({complex_:f4});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(!hr(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){Bd(t);let o=Zt(t),s=Zt(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!hr(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!=="string"?Vp(r,n):zo(r,[],!0),T.makeTensor(r,t,n)}function wr(r,t,e){let n=Mr(r,e);return on(r,t,n,e)}var th={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var Bg=4;async function L1(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)+Bg*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 vS=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function P1(r){return vS?Buffer.byteLength(r):new Blob([r]).size}function M1(r){if(vS)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 SS(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 Gg(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.trainingConfig!=null&&(e.trainingConfig=r.trainingConfig),e}function NS(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),n}async function Hp(r,t){let e,n;return r.weightsManifest!=null&&([e,n]=await t(r.weightsManifest)),NS(r,e,n)}function vi(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:P1(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:P1(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function Wg(r){let t=[];for(let e of r)t.push(...e.weights);return t}function h4(){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 g4(){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 x4(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function y4(){let r=h4(),t=g4(),e=x4();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}},B1=r=>Ce.registerSaveRouter(r),V1=r=>Ce.registerLoadRouter(r),G1=r=>Ce.getSaveHandlers(r),W1=(r,t)=>Ce.getLoadHandlers(r,t);var kS="tensorflowjs",TS=1,Wu="models_store",ql="model_info_store";function U1(){if(!M().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 ES(r){let t=r.result;t.createObjectStore(Wu,{keyPath:"modelPath"}),t.createObjectStore(ql,{keyPath:"modelPath"})}var Si=class{constructor(t){if(this.indexedDB=U1(),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(kS,TS);s.onupgradeneeded=()=>ES(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(Wu,"readonly"),l=a.objectStore(Wu).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=vi(e),u=i.transaction(ql,"readwrite"),l=u.objectStore(ql),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a}),p;c.onsuccess=()=>{p=i.transaction(Wu,"readwrite");let f=p.objectStore(Wu).put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a});f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(ql);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)})}};Si.URL_SCHEME="indexeddb://";var H1=r=>M().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Si.URL_SCHEME)?b4(r.slice(Si.URL_SCHEME.length)):null;Ce.registerSaveRouter(H1);Ce.registerLoadRouter(H1);function b4(r){return new Si(r)}function w4(r){return r.startsWith(Si.URL_SCHEME)?r.slice(Si.URL_SCHEME.length):r}var Ug=class{constructor(){this.indexedDB=U1()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open(kS,TS);n.onupgradeneeded=()=>ES(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(ql,"readonly"),a=s.objectStore(ql).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=w4(t),new Promise((e,n)=>{let o=this.indexedDB.open(kS,TS);o.onupgradeneeded=()=>ES(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(ql,"readwrite"),a=i.objectStore(ql),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(Wu,"readwrite");let f=l.objectStore(Wu).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 Ka="/",qp="tensorflowjs_models",q1="info",C4="model_topology",I4="weight_specs",v4="weight_data",S4="model_metadata";function K1(r){return{info:[qp,r,q1].join(Ka),topology:[qp,r,C4].join(Ka),weightSpecs:[qp,r,I4].join(Ka),weightData:[qp,r,v4].join(Ka),modelMetadata:[qp,r,S4].join(Ka)}}function j1(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function N4(r){let t=r.split(Ka);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(Ka)}function k4(r){return r.startsWith(Ni.URL_SCHEME)?r.slice(Ni.URL_SCHEME.length):r}var Ni=class{constructor(t){if(!M().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=K1(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=vi(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,M1(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,trainingConfig:t.trainingConfig!=null?t.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:o}}catch(s){throw j1(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.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=z1(i),e}};Ni.URL_SCHEME="localstorage://";var X1=r=>M().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Ni.URL_SCHEME)?T4(r.slice(Ni.URL_SCHEME.length)):null;Ce.registerSaveRouter(X1);Ce.registerLoadRouter(X1);function T4(r){return new Ni(r)}var Hg=class{constructor(){E(M().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=qp+Ka,n=Ka+q1;for(let o=0;o"scheme must not be undefined or null."),t.endsWith(Kp)&&(t=t.slice(0,t.indexOf(Kp))),E(t.length>0,()=>"scheme must not be an empty string.");let n=Tr.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=Tr.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(Tr.getInstance().managers)}};function qg(r){if(r.indexOf(Kp)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Tr.getSchemes().join(",")}`);return{scheme:r.split(Kp)[0],path:r.split(Kp)[1]}}async function Y1(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=qg(r).scheme,u=qg(r).path,l=a===qg(r).scheme,c=await o.load();e&&l&&await Tr.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await Tr.getManager(a).removeModel(u),p.modelArtifactsInfo}async function Z1(){let r=Tr.getSchemes(),t={};for(let e of r){let n=await Tr.getManager(e).listModels();for(let o in n){let s=e+Kp+o;t[s]=n[o]}}return t}async function J1(r){let t=qg(r);return Tr.getManager(t.scheme).removeModel(t.path)}async function Q1(r,t){return Y1(r,t,!1)}async function tE(r,t){return Y1(r,t,!0)}var _S=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(!window||!M().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(M().get("IS_BROWSER")){M().setPlatform("browser",new _S);try{Tr.registerManager(Ni.URL_SCHEME,new Hg)}catch(r){}try{Tr.registerManager(Si.URL_SCHEME,new Ug)}catch(r){}}var E4={importFetch:()=>eE()},AS;var $S=class{constructor(){this.util=rE(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return M().global.fetch!=null?M().global.fetch(t,e):(AS==null&&(AS=E4.importFetch()),AS(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)}};M().get("IS_NODE")&&!M().get("IS_BROWSER")&&M().setPlatform("node",new $S);function wt(r,t="float32",e){return t=t||"float32",Bd(r),new pe(r,t,e)}function _4(r,t){let e=I(r,"x","cast");if(!Qv(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 T.runKernel(io,n,o)}var J=k({cast_:_4});function A4(r){let e={x:I(r,"x","clone","string_or_numeric")};return T.runKernel(lo,e)}var sn=k({clone_:A4});function Kg(r,t=!1){console.log(r.toString(t))}bS();var $4={buffer:wt,cast:J,clone:sn,print:Kg};$1($4);var Er={};Gt(Er,{browserFiles:()=>oE,browserHTTPRequest:()=>aE,concatenateArrayBuffers:()=>Up,copyModel:()=>Q1,decodeWeights:()=>Vg,encodeWeights:()=>L1,fromMemory:()=>lE,fromMemorySync:()=>LS,getLoadHandlers:()=>W1,getModelArtifactsForJSON:()=>Hp,getModelArtifactsForJSONSync:()=>NS,getModelArtifactsInfoForJSON:()=>vi,getSaveHandlers:()=>G1,getWeightSpecs:()=>Wg,http:()=>Xg,isHTTPScheme:()=>jg,listModels:()=>Z1,loadWeights:()=>sE,moveModel:()=>tE,registerLoadRouter:()=>V1,registerSaveRouter:()=>B1,removeModel:()=>J1,weightsLoaderFactory:()=>OS,withSaveHandler:()=>uE,withSaveHandlerSync:()=>cE});var D4="model",R4=".json",F4=".weights.bin";function nE(r){return new Promise(t=>setTimeout(t)).then(r)}var ja=class{constructor(t){if(!M().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");t.startsWith(ja.URL_SCHEME)&&(t=t.slice(ja.URL_SCHEME.length)),(t==null||t.length===0)&&(t=D4),this.modelJsonFileName=t+R4,this.weightDataFileName=t+F4}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=Gg(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 nE(()=>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 nE(()=>a.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:vi(t)}}}};ja.URL_SCHEME="downloads://";var DS=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=Hp(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,Up(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=>SS(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=SS(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}},O4=r=>M().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(ja.URL_SCHEME)?P4(r.slice(ja.URL_SCHEME.length)):null;Ce.registerSaveRouter(O4);function P4(r="model"){return new ja(r)}function oE(r){return new DS(r)}function RS(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 FS(r,t){t==null&&(t={});let e=t.fetchFunc==null?M().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 RS(n,t.onProgress,o,s)).map(p=>p.arrayBuffer()),u=.5,l=1;return t.onProgress==null?await Promise.all(a):await RS(a,t.onProgress,u,l)}async function sE(r,t="",e,n){return OS(i=>FS(i,{requestInit:n}))(r,t,e)}function OS(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=th[x]*Zt(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),_=Vg(N,[C.manifestEntry]);for(let A in _)p[A]=_[A]}),m+=d}),p}}var L4="application/octet-stream",M4="application/json",eh=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=M().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=Gg(t,n);e.body.append("model.json",new Blob([JSON.stringify(o)],{type:M4}),"model.json"),t.weightData!=null&&e.body.append("model.weights.bin",new Blob([t.weightData],{type:L4}),"model.weights.bin");let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:vi(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 Hp(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=Wg(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 FS(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,Up(l)]}};eh.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 jg(r){return r.match(eh.URL_SCHEME_REGEX)!=null}var iE=(r,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>jg(n)):e=jg(r),e)return Xg(r,t)}return null};Ce.registerSaveRouter(iE);Ce.registerLoadRouter(iE);function Xg(r,t){return new eh(r,t)}function aE(r,t){return Xg(r,t)}var rh=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},Yg=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},PS=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function lE(r,t,e,n){let o=arguments;return new PS(LS(...o))}function LS(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new rh(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 rh({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 rh({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function uE(r){return new Yg(r)}function cE(r){return new Yg(r)}var fE={};Gt(fE,{confusionMatrix:()=>mE});function B4(r,t,e=!1,n=!1){let o=I(r,"a","matMul"),s=I(t,"b","matMul");[o,s]=Wt(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return T.runKernel(Uo,i,a)}var Lt=k({matMul_:B4});function V4(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 T.runKernel(hs,i,a)}var ki=k({oneHot_:V4});function Qct(){M().set("PROD",!0)}function tpt(){M().set("DEBUG",!0)}function ept(){M().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function MS(r){M().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(r+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}D1(MS);function rpt(){T.disposeVariables()}function ho(){return T}function nh(){return T.memory()}function npt(r){return T.profile(r)}function B(r,t){return T.tidy(r,t)}function St(r){Qd(r).forEach(e=>e.dispose())}function De(r){return T.keep(r)}function opt(r){return T.time(r)}function G4(r){return T.setBackend(r)}function spt(){return T.ready()}function ipt(){return T.backendName}function apt(r){T.removeBackend(r)}function lpt(r){return T.findBackend(r)}function upt(r){return T.findBackendFactory(r)}function jp(r,t,e=1){return T.registerBackend(r,t,e)}function pE(){return T.backend}function cpt(r,t){M().setPlatform(r,t)}function W4(r){let e={input:I(r,"input","imag")};return T.runKernel(vp,e)}var Kl=k({imag_:W4});function U4(r){let e={x:I(r,"x","neg")};return T.runKernel(ui,e)}var Ut=k({neg_:U4});function H4(r){let e={input:I(r,"input","real")};return T.runKernel(Dp,e)}var Xa=k({real_:H4});function q4(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=Xa(n),a=Kl(n);return i=T.runKernel(Jn,{x:i},s),a=T.runKernel(Jn,{x:a},s),e&&(a=Ut(a)),bn(i,a)}):T.runKernel(Jn,o,s)}var Ot=k({transpose_:q4});function K4(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=ki(J(n,"int32"),e),i=ki(J(o,"int32"),e),a=Ot(s),u=Lt(a,i);return J(u,"int32")}var mE=k({confusionMatrix_:K4});var zr={};Gt(zr,{assertAndGetBroadcastShape:()=>Pt,getBroadcastDims:()=>dE,getReductionAxes:()=>ge});function dE(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;otH,fromPixelsAsync:()=>J4,toPixels:()=>Q4});function Zg(r,t,e){if(Xn(r),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let n=Mr(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 Uu;function hE(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(qd,T.backendName)!=null){let d={pixels:r},h={numChannels:t};return T.runKernel(qd,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(Uu==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Uu=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Uu=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Uu.canvas.width=l,Uu.canvas.height=c,Uu.drawImage(r,0,0,l,c),p=Uu.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 tH=k({fromPixels_:hE});var Qg={};Gt(Qg,{prepareAndValidate:()=>gE});function gE(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(Zt(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 oh={};Gt(oh,{calculateShapes:()=>xE,validateInput:()=>tx,validateUpdateShape:()=>zS});function zS(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;prH,computeFlatOffset:()=>aH,computeOutShape:()=>oH,getNormalizedAxes:()=>sH,isSliceContinous:()=>iH,maskToAxes:()=>nH,parseSliceParams:()=>VS,sliceInfo:()=>lH,startForAxis:()=>NE,startIndicesWithElidedDims:()=>IE,stopForAxis:()=>kE,stopIndicesWithElidedDims:()=>vE,stridesForAxis:()=>SE,stridesWithElidedDims:()=>bE});var BS=-2,eH=-1;function rH(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 nH(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function oH(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=IE(i,f,d,n,r),p=vE(a,f,d,o,r),m=bE(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=wE(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=wE(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 kE(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 iH(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 aH(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 lH(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]=yE(m.begin[w],0,m.strides[w],N,_,A),m.end[w]=yE(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===BS&&x.push(1)}return{finalShapeSparse:x.filter((w,C)=>m.finalShapeGatherIndices[C]!==BS),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function uH(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={};Gt(Q,{Serializable:()=>sh,SerializationMap:()=>Ti,registerClass:()=>wn});var sh=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},Ti=class{constructor(){this.classNameMap={}}static getMap(){return Ti.instance==null&&(Ti.instance=new Ti),Ti.instance}static register(t){Ti.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function wn(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."),Ti.register(r)}var AE={};Gt(AE,{TEST_EPSILON_FLOAT16:()=>TE,createVideoElement:()=>gH,encodeStrings:()=>_E,expectArrayBuffersEqual:()=>hH,expectArraysClose:()=>pH,expectArraysEqual:()=>fH,expectNumbersClose:()=>EE,expectPromiseToFail:()=>mH,expectValuesInRange:()=>dH,play:()=>xH,testEpsilon:()=>ex});var cH=.001,TE=.1;function pH(r,t,e){return e==null&&(e=ex()),GS(r,t,(n,o)=>WS(n,o,e))}function ex(){return T.backend.floatPrecision()===32?cH:TE}function GS(r,t,e){let n=!0;if((hr(r)||hr(t))&&(n=!1),hr(r)&&hr(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=Mr(r),a=Mr(t);if(!An(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=hr(r)?r:zo(r),s=hr(t)?t:zo(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 UH(r,t){let e=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Ko(r)||Ko(r[0])||Ko(t)||Ko(t[0])?oS(r,e,(n,o)=>n==o):oS(r,t,(n,o)=>sS(n,o,0))}function j_(r,t,e){if(e==null&&(e=wx()),!sS(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function sS(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function HH(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function qH(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 jH(r){await r.play(),"requestVideoFrameCallback"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var Z_="3.20.0";function XH(r,t){let e=v(r,"a","add"),n=v(t,"b","add");[e,n]=Xt(e,n);let o={a:e,b:n};return _.runKernel(jn,o)}var J=N({add_:XH});function YH(r,t){let e=v(r,"a","floorDiv"),n=v(t,"b","floorDiv");[e,n]=Xt(e,n);let o={a:e,b:n};return _.runKernel(us,o)}var um=N({floorDiv_:YH});function ZH(r,t){let e=v(r,"a","div"),n=v(t,"b","div");if([e,n]=Xt(e,n),e.dtype==="int32"&&n.dtype==="int32")return um(e,n);let o={a:e,b:n},s={};return _.runKernel(ss,o,s)}var ct=N({div_:ZH});function JH(r,t){let e=v(r,"a","mul"),n=v(t,"b","mul");[e,n]=Xt(e,n);let o={a:e,b:n};return _.runKernel(Cs,o)}var O=N({mul_:JH});function QH(r){let t=v(r,"x","abs");if(t.dtype==="complex64"){let e={x:t};return _.runKernel(_l,e)}else{let e={x:t};return _.runKernel(pi,e)}}var $e=N({abs_:QH});function tq(r){let e={x:v(r,"x","acos")};return _.runKernel(oa,e)}var Cx=N({acos_:tq});function eq(r){let e={x:v(r,"x","acosh")};return _.runKernel(sa,e)}var vx=N({acosh_:eq});function rq(r){A(Array.isArray(r),()=>"The argument passed to tf.addN() must be a list of tensors"),A(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let t=r.map((o,s)=>v(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(!Rn(o.shape,e.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let n=t;return _.runKernel(jo,n)}var J_=N({addN_:rq});function nq(r,t=null,e=!1){let o={x:v(r,"x","all","bool")},s={axis:t,keepDims:e};return _.runKernel(ia,o,s)}var cm=N({all_:nq});function oq(r,t=null,e=!1){let o={x:v(r,"x","any","bool")},s={axis:t,keepDims:e};return _.runKernel(aa,o,s)}var Ju=N({any_:oq});function sq(r,t=0){let n={x:v(r,"x","argMax")},o={axis:t};return _.runKernel(Xo,n,o)}var Oi=N({argMax_:sq});function iq(r,t=0){let n={x:v(r,"x","argMin")},o={axis:t};return _.runKernel(Nl,n,o)}var Ix=N({argMin_:iq});function aq(r){let e={x:v(r,"x","asin")};return _.runKernel(la,e)}var Sx=N({asin_:aq});function lq(r){let e={x:v(r,"x","asinh")};return _.runKernel(ua,e)}var Tx=N({asinh_:lq});function uq(r){let e={x:v(r,"x","atan")};return _.runKernel(ca,e)}var Nx=N({atan_:uq});function cq(r,t){let e=v(r,"a","atan2"),n=v(t,"b","atan2");[e,n]=Xt(e,n);let o={a:e,b:n};return _.runKernel(ma,o)}var kx=N({atan2_:cq});function pq(r){let e={x:v(r,"x","atanh")};return _.runKernel(pa,e)}var _x=N({atanh_:pq});function mq(r,t,e,n,o="NHWC",s){let i=r[3],a=[...t,i],u=tE(o);return tc(r,a,e,s,n,null,null,u)}function aS(r,t,e,n,o,s,i="channelsLast"){let[a,u]=Ex(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 tc(r,l,e,n,o,s,!1,i)}function fq(r,t,e,n,o,s,i="NDHWC"){let[a,u,l]=iS(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 Q_(r,c,e,n,o,!1,p,s)}function tc(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]=Ex(e),[x,b]=Ex(n),w=pm(m,x),C=pm(f,b),{padInfo:T,outHeight:E,outWidth:$}=gq(o,l,c,h,g,w,C,s,a),D=i?d*p:d,P;return a==="channelsFirst"?P=[u,D,E,$]:a==="channelsLast"&&(P=[u,E,$,D]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:E,outWidth:$,outChannels:D,padInfo:T,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:C,dilationHeight:x,dilationWidth:b,inShape:r,outShape:P,filterShape:t}}function Q_(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]=iS(e),[C,T,E]=iS(n),$=pm(f,C),D=pm(d,T),P=pm(h,E),{padInfo:M,outDepth:W,outHeight:H,outWidth:q}=xq(o,l,c,p,x,b,w,$,D,P,a),X=s?g*m:g,j;return i==="channelsFirst"?j=[u,X,W,H,q]:i==="channelsLast"&&(j=[u,W,H,q,X]),{batchSize:u,dataFormat:i,inDepth:l,inHeight:c,inWidth:p,inChannels:m,outDepth:W,outHeight:H,outWidth:q,outChannels:X,padInfo:M,strideDepth:x,strideHeight:b,strideWidth:w,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:$,effectiveFilterHeight:D,effectiveFilterWidth:P,dilationDepth:C,dilationHeight:T,dilationWidth:E,inShape:r,outShape:j,filterShape:t}}function dq(r,t,e,n,o){n==null&&(n=lS(r,t,e));let s=r[0],i=r[1],a=Qu((s-t+2*n)/e+1,o),u=Qu((i-t+2*n)/e+1,o);return[a,u]}function hq(r,t,e,n,o,s){o==null&&(o=lS(r,t,n));let i=r[0],a=r[1],u=r[2],l=Qu((i-t+2*o)/n+1,s),c=Qu((a-t+2*o)/n+1,s),p=Qu((u-t+2*o)/n+1,s);return[l,c,p,e]}function lS(r,t,e,n=1){let o=pm(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function Ex(r){return typeof r=="number"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function iS(r){return typeof r=="number"?[r,r,r]:r}function pm(r,t){return t<=1?r:r+(r-1)*(t-1)}function gq(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=dq([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=Qu((t-s+m+f)/n+1,a),p=Qu((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function xq(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=hq([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),T=g-C,E=Math.floor(x/2),$=x-E;p={top:C,bottom:T,left:E,right:$,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 Qu(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 Jn(r){let[t,e,n]=Ex(r);return t===1&&e===1&&n===1}function Er(r,t){return Jn(r)||Jn(t)}function tE(r){if(r==="NHWC")return"channelsLast";if(r==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${r}`)}function Te(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")A(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=>{A(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 yq(r,t){let n={x:v(r,"x","reshape","string_or_numeric")},o={shape:t};return _.runKernel(bi,n,o)}var F=N({reshape_:yq});function bq(r,t,e,n,o){let s=v(r,"x","avgPool","float32"),i=1;A(Er(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=F(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),Te("avgPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=_.runKernel(Yo,l,c);return p=tt(p,s.dtype),u?F(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Xl=N({avgPool_:bq});function wq(r,t,e,n,o,s="NDHWC"){let i=v(r,"x","avgPool3d","float32"),a=i,u=!1;i.rank===4&&(u=!0,a=F(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(a.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${a.rank}.`),A(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Te("avgPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=_.runKernel(kl,l,c);return p=tt(p,a.dtype),u?F(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Ax=N({avgPool3d_:wq});function Cq(r,t=0){A(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 an(e[0]);let n=e,o={axis:t};return _.runKernel(fi,n,o)}var se=N({concat_:Cq});function vq(r){let e={x:v(r,"x","sigmoid","float32")};return _.runKernel(Os,e)}var Kr=N({sigmoid_:vq});function Iq(r,t,e){let n=v(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 _.runKernel(Ci,o,s)}var Ot=N({slice_:Iq});function Sq(r){let e={x:v(r,"x","tanh","float32")};return _.runKernel(Gs,e)}var Pi=N({tanh_:Sq});function Tq(r,t,e,n,o,s){let i=v(r,"forgetBias","basicLSTMCell"),a=v(t,"lstmKernel","basicLSTMCell"),u=v(e,"lstmBias","basicLSTMCell"),l=v(n,"data","basicLSTMCell"),c=v(o,"c","basicLSTMCell"),p=v(s,"h","basicLSTMCell"),m=se([l,p],1),f=Gt(m,a),d=J(f,u),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Ot(d,[0,0],x),w=Ot(d,[0,g],x),C=Ot(d,[0,g*2],x),T=Ot(d,[0,g*3],x),E=J(O(Kr(b),Pi(w)),O(c,Kr(J(i,C)))),$=O(Pi(E),Kr(T));return[E,$]}var eE=N({basicLSTMCell_:Tq});function Nq(r,t,e){let n=v(r,"x","batchToSpaceND"),o=t.reduce((a,u)=>a*u);A(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),A(e.length===t.length,()=>`crops.length is ${e.length} but should be equal to blockShape.length ${t.length}`),A(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 _.runKernel(mi,s,i)}var Yl=N({batchToSpaceND_:Nq});function rE(r){let t;return r.rank===0||r.rank===1?t=F(r,[1,1,1,r.size]):r.rank===2?t=F(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?t=F(r,[1,r.shape[0],r.shape[1],r.shape[2]]):t=r,t}function kq(r,t,e,n,o,s){s==null&&(s=.001);let i=v(r,"x","batchNorm"),a=v(t,"mean","batchNorm"),u=v(e,"variance","batchNorm"),l;o!=null&&(l=v(o,"scale","batchNorm"));let c;n!=null&&(c=v(n,"offset","batchNorm")),A(a.rank===u.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),A(c==null||a.rank===c.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),A(l==null||a.rank===l.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let m={x:rE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=_.runKernel(cs,m,f);return F(d,i.shape)}var Li=N({batchNorm_:kq});function _q(r,t,e,n,o,s){let i=v(r,"x","batchNorm"),a=v(t,"mean","batchNorm"),u=v(e,"variance","batchNorm"),l;o!=null&&(l=v(o,"scale","batchNorm"));let c;return n!=null&&(c=v(n,"offset","batchNorm")),A(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),A(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),A(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${u.rank}.`),l!=null&&A(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`),Li(i,a,u,c,l,s)}var $x=N({batchNorm2d_:_q});function Eq(r,t,e,n,o,s){let i=v(r,"x","batchNorm"),a=v(t,"mean","batchNorm"),u=v(e,"variance","batchNorm"),l;o!=null&&(l=v(o,"scale","batchNorm"));let c;return n!=null&&(c=v(n,"offset","batchNorm")),A(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),A(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),A(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${u.rank}.`),l!=null&&A(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`),Li(i,a,u,c,l,s)}var Dx=N({batchNorm3d_:Eq});function Aq(r,t,e,n,o,s){let i=v(r,"x","batchNorm"),a=v(t,"mean","batchNorm"),u=v(e,"variance","batchNorm"),l;o!=null&&(l=v(o,"scale","batchNorm"));let c;return n!=null&&(c=v(n,"offset","batchNorm")),A(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),A(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),A(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${u.rank}.`),l!=null&&A(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`),Li(i,a,u,c,l,s)}var Rx=N({batchNorm4d_:Aq});function $q(r,t,e){let n=v(r,"x","bincount"),o=v(t,"weights","bincount");A(n.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`),A(e>=0,()=>`size must be non-negative, but got ${e}.`),A(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 _.runKernel(Sp,s,i)}var Fx=N({bincount_:$q});function Dq(r,t){let e=v(r,"s0","broadcastArgs","int32"),n=v(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 _.runKernel(Tp,o)}var nE=N({broadcastArgs_:Dq});function Rq(r,t){let e=v(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 an(e);let a={x:e},u={reps:s};return _.runKernel(Xn,a,u)}var Mi=N({broadcastTo_:Rq});function Fq(r){let e={x:v(r,"x","ceil","float32")};return _.runKernel(Jo,e)}var Ox=N({ceil_:Fq});function Oq(r,t,e){let n=v(r,"x","clipByValue");A(t<=e,()=>`Error in clip: min (${t}) must be less than or equal to max (${e}).`);let o={x:n},s={clipValueMin:t,clipValueMax:e};return _.runKernel(lo,o,s)}var Ir=N({clipByValue_:Oq});function Pq(r){return se(r,0)}var Px=N({concat1d_:Pq});function Lq(r,t){return se(r,t)}var Lx=N({concat2d_:Lq});function Mq(r,t){return se(r,t)}var Mx=N({concat3d_:Mq});function zq(r,t){return se(r,t)}var zx=N({concat4d_:zq});function Bq(r,t,e,n,o="NHWC",s=[1,1],i){let a=v(r,"x","conv2d","float32"),u=v(t,"filter","conv2d","float32"),l=a,c=!1;a.rank===3&&(c=!0,l=F(a,[1,a.shape[0],a.shape[1],a.shape[2]])),A(l.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${l.rank}.`),A(u.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${u.rank}.`),Te("conv2d",n,i);let p=o==="NHWC"?l.shape[3]:l.shape[1];A(p===u.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${u.shape[2]}.`),A(Er(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=_.runKernel(Qo,m,f);return c?F(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Sn=N({conv2d_:Bq});function Vq(r,t,e,n,o="NWC",s=1,i){let a=v(r,"x","conv1d"),u=v(t,"filter","conv1d"),l=a,c=!1;a.rank===2&&(c=!0,l=F(a,[1,a.shape[0],a.shape[1]])),A(l.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${l.rank}.`),A(u.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${u.rank}.`),Te("conv1d",n,i),A(l.shape[2]===u.shape[1],()=>`Error in conv1d: depth of input (${l.shape[2]}) must match input depth for filter ${u.shape[1]}.`),A(Er(e,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`),A(o==="NWC",()=>`Error in conv1d: got dataFormat of ${o} but only NWC is currently supported.`);let p=F(u,[1,u.shape[0],u.shape[1],u.shape[2]]),m=F(l,[l.shape[0],1,l.shape[1],l.shape[2]]),g=Sn(m,p,[1,e],n,"NHWC",[1,s],i);return c?F(g,[g.shape[2],g.shape[3]]):F(g,[g.shape[0],g.shape[2],g.shape[3]])}var mm=N({conv1d_:Vq});function Gq(r,t,e,n,o,s="NHWC",i){A(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=F(t,[1,t.shape[0],t.shape[1],t.shape[2]]),a=[1,r[0],r[1],r[2]]),A(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),A(u.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${u.rank}`),A(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];A(c===e.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${e.shape[2]}.`),A(p===e.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${e.shape[3]}.`),Te("conv2dDerInput",o,i);let m={dy:u,filter:e},f={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,inputShape:a},d=_.runKernel(ts,m,f);return l?F(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var fm=N({conv2DBackpropInput_:Gq});function Wq(r,t,e,n,o,s){let i=v(r,"x","conv2dTranspose"),a=v(t,"filter","conv2dTranspose");return fm(e,i,a,n,o,"NHWC",s)}var dm=N({conv2dTranspose_:Wq});function Uq(r,t,e,n,o="NDHWC",s=[1,1,1]){let i=v(r,"x","conv3d"),a=v(t,"filter","conv3d"),u=i,l=!1;i.rank===4&&(l=!0,u=F(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(u.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${u.rank}.`),A(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),A(u.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${u.shape[4]}) must match input depth for filter ${a.shape[3]}.`),A(Er(e,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),A(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=_.runKernel(El,c,p);return l?F(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Bx=N({conv3d_:Uq});function Hq(r,t,e,n,o){A(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=F(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];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(e.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${e.rank}`),A(u===e.shape[3],()=>`Error in conv3dDerInput: depth of input (${u}) must match input depth for filter ${e.shape[3]}.`),A(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=_.runKernel(Ep,c,p);return a?F(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Vx=N({conv3DBackpropInput_:Hq});function qq(r,t,e,n,o){let s=v(r,"x","conv3dTranspose"),i=v(t,"filter","conv3dTranspose");return Vx(e,s,i,n,o)}var Gx=N({conv3dTranspose_:qq});function Kq(r){let e={x:v(r,"x","cos","float32")};return _.runKernel(es,e)}var Zl=N({cos_:Kq});function jq(r){let e={x:v(r,"x","cosh","float32")};return _.runKernel(rs,e)}var hm=N({cosh_:jq});function Xq(r,t=0,e=!1,n=!1){let s={x:v(r,"x","cumprod")},i={axis:t,exclusive:e,reverse:n};return _.runKernel(fa,s,i)}var ec=N({cumprod_:Xq});function Yq(r,t=0,e=!1,n=!1){let s={x:v(r,"x","cumsum")},i={axis:t,exclusive:e,reverse:n};return _.runKernel(ns,s,i)}var gm=N({cumsum_:Yq});function Zq(r,t,e,n=!1){let o=v(r,"x","denseBincount"),s=v(t,"weights","denseBincount");A(o.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${o.dtype}`),A(o.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${o.rank}.`),A(e>=0,()=>`size must be non-negative, but got ${e}.`),A(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 _.runKernel(Ap,i,a)}var oE=N({denseBincount_:Zq});function Jq(r,t,e="NHWC"){let n=v(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];A(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),A(o*t>=0,()=>`Negative dimension size caused by overflow when multiplying +Expected: ${s}.`)}typeof expect!="undefined"&&expect().nothing()}function mH(r,t){r().then(()=>t.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function fH(r,t){let e=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Bo(r)||Bo(r[0])||Bo(t)||Bo(t[0])?GS(r,e,(n,o)=>n==o):GS(r,t,(n,o)=>WS(n,o,0))}function EE(r,t,e){if(e==null&&(e=ex()),!WS(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function WS(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function dH(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function hH(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 xH(r){await r.play(),"requestVideoFrameCallback"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var $E="3.21.0";function yH(r,t){let e=I(r,"a","add"),n=I(t,"b","add");[e,n]=Wt(e,n);let o={a:e,b:n};return T.runKernel(Yn,o)}var X=k({add_:yH});function bH(r,t){let e=I(r,"a","floorDiv"),n=I(t,"b","floorDiv");[e,n]=Wt(e,n);let o={a:e,b:n};return T.runKernel(rs,o)}var Xp=k({floorDiv_:bH});function wH(r,t){let e=I(r,"a","div"),n=I(t,"b","div");if([e,n]=Wt(e,n),e.dtype==="int32"&&n.dtype==="int32")return Xp(e,n);let o={a:e,b:n},s={};return T.runKernel(Jo,o,s)}var pt=k({div_:wH});function CH(r,t){let e=I(r,"a","mul"),n=I(t,"b","mul");[e,n]=Wt(e,n);let o={a:e,b:n};return T.runKernel(ds,o)}var R=k({mul_:CH});function IH(r){let t=I(r,"x","abs");if(t.dtype==="complex64"){let e={x:t};return T.runKernel(Tl,e)}else{let e={x:t};return T.runKernel(oi,e)}}var Ee=k({abs_:IH});function vH(r){let e={x:I(r,"x","acos")};return T.runKernel(ra,e)}var rx=k({acos_:vH});function SH(r){let e={x:I(r,"x","acosh")};return T.runKernel(na,e)}var nx=k({acosh_:SH});function NH(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(!An(o.shape,e.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let n=t;return T.runKernel(Vo,n)}var DE=k({addN_:NH});function kH(r,t=null,e=!1){let o={x:I(r,"x","all","bool")},s={axis:t,keepDims:e};return T.runKernel(oa,o,s)}var Yp=k({all_:kH});function TH(r,t=null,e=!1){let o={x:I(r,"x","any","bool")},s={axis:t,keepDims:e};return T.runKernel(sa,o,s)}var Hu=k({any_:TH});function EH(r,t=0){let n={x:I(r,"x","argMax")},o={axis:t};return T.runKernel(Go,n,o)}var Ei=k({argMax_:EH});function _H(r,t=0){let n={x:I(r,"x","argMin")},o={axis:t};return T.runKernel(Nl,n,o)}var ox=k({argMin_:_H});function AH(r){let e={x:I(r,"x","asin")};return T.runKernel(ia,e)}var sx=k({asin_:AH});function $H(r){let e={x:I(r,"x","asinh")};return T.runKernel(aa,e)}var ix=k({asinh_:$H});function DH(r){let e={x:I(r,"x","atan")};return T.runKernel(la,e)}var ax=k({atan_:DH});function RH(r,t){let e=I(r,"a","atan2"),n=I(t,"b","atan2");[e,n]=Wt(e,n);let o={a:e,b:n};return T.runKernel(ca,o)}var lx=k({atan2_:RH});function FH(r){let e={x:I(r,"x","atanh")};return T.runKernel(ua,e)}var ux=k({atanh_:FH});function OH(r,t,e,n,o="NHWC",s){let i=r[3],a=[...t,i],u=FE(o);return Ku(r,a,e,s,n,null,null,u)}function HS(r,t,e,n,o,s,i="channelsLast"){let[a,u]=cx(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 Ku(r,l,e,n,o,s,!1,i)}function PH(r,t,e,n,o,s,i="NDHWC"){let[a,u,l]=US(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 RE(r,c,e,n,o,!1,p,s)}function Ku(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]=cx(e),[x,b]=cx(n),w=Zp(m,x),C=Zp(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 RE(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]=US(e),[C,N,_]=US(n),A=Zp(f,C),$=Zp(d,N),F=Zp(h,_),{padInfo:P,outDepth:V,outHeight:G,outWidth:W}=BH(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 LH(r,t,e,n,o){n==null&&(n=qS(r,t,e));let s=r[0],i=r[1],a=qu((s-t+2*n)/e+1,o),u=qu((i-t+2*n)/e+1,o);return[a,u]}function MH(r,t,e,n,o,s){o==null&&(o=qS(r,t,n));let i=r[0],a=r[1],u=r[2],l=qu((i-t+2*o)/n+1,s),c=qu((a-t+2*o)/n+1,s),p=qu((u-t+2*o)/n+1,s);return[l,c,p,e]}function qS(r,t,e,n=1){let o=Zp(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function cx(r){return typeof r=="number"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function US(r){return typeof r=="number"?[r,r,r]:r}function Zp(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=LH([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=qu((t-s+m+f)/n+1,a),p=qu((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function BH(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=MH([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 qu(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 Qn(r){let[t,e,n]=cx(r);return t===1&&e===1&&n===1}function _r(r,t){return Qn(r)||Qn(t)}function FE(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(ea(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(ea(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 VH(r,t){let n={x:I(r,"x","reshape","string_or_numeric")},o={shape:t};return T.runKernel(mi,n,o)}var D=k({reshape_:VH});function GH(r,t,e,n,o){let s=I(r,"x","avgPool","float32"),i=1;E(_r(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=D(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=T.runKernel(Wo,l,c);return p=J(p,s.dtype),u?D(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var jl=k({avgPool_:GH});function WH(r,t,e,n,o,s="NDHWC"){let i=I(r,"x","avgPool3d","float32"),a=i,u=!1;i.rank===4&&(u=!0,a=D(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=T.runKernel(kl,l,c);return p=J(p,a.dtype),u?D(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var px=k({avgPool3d_:WH});function UH(r,t=0){E(r.length>=1,()=>"Pass at least one tensor to concat");let e=qa(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 T.runKernel(ii,n,o)}var ne=k({concat_:UH});function HH(r){let e={x:I(r,"x","sigmoid","float32")};return T.runKernel(Es,e)}var Xr=k({sigmoid_:HH});function qH(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 T.runKernel(di,o,s)}var Dt=k({slice_:qH});function KH(r){let e={x:I(r,"x","tanh","float32")};return T.runKernel(Os,e)}var _i=k({tanh_:KH});function jH(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=Dt(d,[0,0],x),w=Dt(d,[0,g],x),C=Dt(d,[0,g*2],x),N=Dt(d,[0,g*3],x),_=X(R(Xr(b),_i(w)),R(c,Xr(X(i,C)))),A=R(_i(_),Xr(N));return[_,A]}var OE=k({basicLSTMCell_:jH});function XH(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 T.runKernel(si,s,i)}var Xl=k({batchToSpaceND_:XH});function PE(r){let t;return r.rank===0||r.rank===1?t=D(r,[1,1,1,r.size]):r.rank===2?t=D(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?t=D(r,[1,r.shape[0],r.shape[1],r.shape[2]]):t=r,t}function YH(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:PE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=T.runKernel(ns,m,f);return D(d,i.shape)}var Ai=k({batchNorm_:YH});function ZH(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}.`),Ai(i,a,u,c,l,s)}var mx=k({batchNorm2d_:ZH});function JH(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}.`),Ai(i,a,u,c,l,s)}var fx=k({batchNorm3d_:JH});function QH(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}.`),Ai(i,a,u,c,l,s)}var dx=k({batchNorm4d_:QH});function tq(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 T.runKernel(up,s,i)}var hx=k({bincount_:tq});function eq(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 T.runKernel(cp,o)}var LE=k({broadcastArgs_:eq});function rq(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 T.runKernel(Zn,a,u)}var $i=k({broadcastTo_:rq});function nq(r){let e={x:I(r,"x","ceil","float32")};return T.runKernel(Ho,e)}var gx=k({ceil_:nq});function go(r,t,e){let n={shape:r,value:t,dtype:e};return T.runKernel(Al,{},n)}function oq(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 go(n.shape,t,n.dtype);let o={x:n},s={clipValueMin:t,clipValueMax:e};return T.runKernel(ao,o,s)}var Cr=k({clipByValue_:oq});function sq(r){return ne(r,0)}var xx=k({concat1d_:sq});function iq(r,t){return ne(r,t)}var yx=k({concat2d_:iq});function aq(r,t){return ne(r,t)}var bx=k({concat3d_:aq});function lq(r,t){return ne(r,t)}var wx=k({concat4d_:lq});function uq(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=D(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(_r(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=T.runKernel(qo,m,f);return c?D(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Cn=k({conv2d_:uq});function cq(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=D(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(_r(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=D(u,[1,u.shape[0],u.shape[1],u.shape[2]]),m=D(l,[l.shape[0],1,l.shape[1],l.shape[2]]),g=Cn(m,p,[1,e],n,"NHWC",[1,s],i);return c?D(g,[g.shape[2],g.shape[3]]):D(g,[g.shape[0],g.shape[2],g.shape[3]])}var Jp=k({conv1d_:cq});function pq(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=D(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=T.runKernel(Ko,m,f);return l?D(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Qp=k({conv2DBackpropInput_:pq});function mq(r,t,e,n,o,s){let i=I(r,"x","conv2dTranspose"),a=I(t,"filter","conv2dTranspose");return Qp(e,i,a,n,o,"NHWC",s)}var tm=k({conv2dTranspose_:mq});function fq(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=D(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(_r(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=T.runKernel(El,c,p);return l?D(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Cx=k({conv3d_:fq});function dq(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=D(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=T.runKernel(dp,c,p);return a?D(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Ix=k({conv3DBackpropInput_:dq});function hq(r,t,e,n,o){let s=I(r,"x","conv3dTranspose"),i=I(t,"filter","conv3dTranspose");return Ix(e,s,i,n,o)}var vx=k({conv3dTranspose_:hq});function gq(r){let e={x:I(r,"x","cos","float32")};return T.runKernel(jo,e)}var Yl=k({cos_:gq});function xq(r){let e={x:I(r,"x","cosh","float32")};return T.runKernel(Xo,e)}var em=k({cosh_:xq});function yq(r,t=0,e=!1,n=!1){let s={x:I(r,"x","cumprod")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(pa,s,i)}var ju=k({cumprod_:yq});function bq(r,t=0,e=!1,n=!1){let s={x:I(r,"x","cumsum")},i={axis:t,exclusive:e,reverse:n};return T.runKernel(Yo,s,i)}var rm=k({cumsum_:bq});function wq(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 T.runKernel(hp,i,a)}var ME=k({denseBincount_:wq});function Cq(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}`),A(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying + ${n.shape}`),E(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape - ${n.shape}`),A(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 _.runKernel(ha,a,u)}var Wx=N({depthToSpace_:Jq});function Qq(r,t,e,n,o="NHWC",s=[1,1],i){let a=v(r,"x","depthwiseConv2d","float32"),u=v(t,"filter","depthwiseConv2d","float32"),l=a,c=!1;a.rank===3&&(c=!0,l=F(a,[1,a.shape[0],a.shape[1],a.shape[2]])),A(l.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${l.rank}.`),A(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];A(p===u.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${p}) must match the inChannels dimension in filter ${u.shape[2]}.`),Te("depthwiseConv2d",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=_.runKernel(os,m,f);return c?F(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var zi=N({depthwiseConv2d_:Qq});function tK(r){let e={x:v(r,"x","diag")};return _.runKernel(Rp,e)}var sE=N({diag_:tK});function eK(r,t,e,n,o=[1,1],s="NHWC"){let i=v(r,"x","dilation2d"),a=v(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(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),A(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let u=i,l=!1;i.rank===3&&(u=F(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=_.runKernel(Al,c,p);return l?F(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ux=N({dilation2d_:eK});function rK(r,t){let e=v(r,"a","equal","string_or_numeric"),n=v(t,"b","equal","string_or_numeric");[e,n]=Xt(e,n),zt(e.shape,n.shape);let o={a:e,b:n};return _.runKernel(xa,o)}var Ar=N({equal_:rK});function nK(r,t,e){let n=v(t,"a","where"),o=v(e,"b","where"),s=v(r,"condition","where","bool"),i=zt(zt(s.shape,n.shape),o.shape),a=Mi(s,i),u=Mi(n,i),l=Mi(o,i),c={condition:a,t:u,e:l};return _.runKernel(wi,c)}var De=N({where_:nK});function oK(r){let e={x:v(r,"x","zerosLike")};return _.runKernel(Ti,e)}var St=N({zerosLike_:oK});function sK(r,t){let e=v(r,"a","div"),n=v(t,"b","div");[e,n]=Xt(e,n);let o=ct(e,n),s=St(o),i=Ar(n,s);return De(i,s,o)}var Hx=N({divNoNan_:sK});function iK(r,t){let e=v(r,"t1","dot"),n=v(t,"t2","dot");A((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(A(o===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${o} and ${s}.`),e.rank===1&&n.rank===1){let i=F(e,[1,-1]),a=F(n,[-1,1]),u=Gt(i,a);return F(u,[])}else if(e.rank===1&&n.rank===2){let i=F(e,[1,-1]),a=F(n,[n.shape[0],n.shape[1]]),u=Gt(i,a);return F(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=F(n,[-1,1]),a=Gt(e,i);return F(a,[a.size])}else{let i=F(n,[n.shape[0],n.shape[1]]);return Gt(e,i)}}var qx=N({dot_:iK});function aK(r,...t){let e=t.map((o,s)=>v(o,`tensors${s}`,"einsum")),n={equation:r};return _.runKernel(Fp,e,n)}var iE=N({einsum_:aK});function lK(r){let e={x:v(r,"x","elu","float32")};return _.runKernel(is,e)}var Bi=N({elu_:lK});function uK(r){let t=v(r,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=tt(t,"float32"));let e={x:t};return _.runKernel(ga,e)}var Kx=N({erf_:uK});function uS(r,t){for(let e=0;er[s]);return[e,o]}function xo(r,t){let e=t.map(n=>1);return aE(r,e,t)}function cK(r,t,e){A(uS(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function pS(r,t){if(uS(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function wh(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function pK(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 _.runKernel(di,n,o)}var yr=N({expandDims_:CK});function vK(r){let e={x:v(r,"x","expm1")};return _.runKernel(ya,e)}var Xx=N({expm1_:vK});function IK(r,t){let e=v(r,"x","tile","string_or_numeric");A(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 _.runKernel(Xn,n,o)}var $r=N({tile_:IK});function SK(r,t,e,n="float32"){t==null&&(t=r);let o=vt([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}.`),A(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=F(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=_.runKernel(Dl,u,l);return a?F(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Qx=N({localResponseNormalization_:OK});function PK(r){let e={x:v(r,"x","log","float32")};return _.runKernel(fs,e)}var Sr=N({log_:PK});function LK(r){let e={x:v(r,"x","log1p")};return _.runKernel(ka,e)}var Ql=N({log1p_:LK});function MK(r){return A(ui(r),()=>"The f passed in grad(f) must be a function"),(t,e)=>{let n=v(t,"x","tf.grad","string_or_numeric"),o=e!=null?v(e,"dy","tf.grad"):null;return _.tidy(()=>{let{value:s,grads:i}=_.gradients(()=>r(n),[n],o);return o!=null&&Fe(s.shape,o.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),ey(i),i[0]})}}function zK(r){return A(ui(r),()=>"The f passed in grads(f) must be a function"),(t,e)=>{A(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?v(e,"dy","tf.grads"):null;return _.tidy(()=>{let{value:s,grads:i}=_.gradients(()=>r(...n),n,o);return o!=null&&Fe(s.shape,o.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),ey(i),i})}}function BK(r){return A(ui(r),()=>"The f passed in valueAndGrad(f) must be a function"),(t,e)=>{A(t instanceof Lt,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(e==null||e instanceof Lt,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:n,value:o}=_.gradients(()=>r(t),[t],e);return ey(n),{grad:n[0],value:o}}}function VK(r){return A(ui(r),()=>"The f passed in valueAndGrads(f) must be a function"),(t,e)=>{A(Array.isArray(t)&&t.every(o=>o instanceof Lt),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(e==null||e instanceof Lt,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let n=_.gradients(()=>r(...t),t,e);return e!=null&&Fe(n.value.shape,e.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),ey(n.grads),n}}function ty(r,t){A(ui(r),()=>"The f passed in variableGrads(f) must be a function"),A(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 _.registeredVariables)t.push(_.registeredVariables[l])}let n=e?t.filter(l=>!l.trainable):null,o=t.length;t=t.filter(l=>l.trainable),A(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}=_.gradients(r,t,null,s);A(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()."),A(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 _.customGrad(r)}function ey(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 GK(r){let e={x:v(r,"x","softplus")};return _.runKernel(Va,e)}var Hs=N({softplus_:GK});function WK(r){let t=v(r,"x","logSigmoid");return un(n=>({value:Yt(Hs(Yt(n))),gradFunc:i=>O(i,Kr(Yt(n)))}))(t)}var ry=N({logSigmoid_:WK});function UK(r,t){let e=v(r,"a","sub"),n=v(t,"b","sub");[e,n]=Xt(e,n);let o={a:e,b:n};return _.runKernel(Bs,o)}var ut=N({sub_:UK});function HK(r,t=-1){let e=v(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=Mr(o,t,!0),u=ut(o,a),l=ut(tt(u,"float32"),Sr(ft(or(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=or(f);return ut(p,O(ft(p,t,d),h))}}})(e)}var ym=N({logSoftmax_:HK});function qK(r,t=null,e=!1){let n=v(r,"x","logSumExp"),o=ur(t,n.shape),s=Mr(n,o,!0),i=ut(n,s),a=or(i),u=ft(a,o),l=Sr(u),c=J(F(s,l.shape),l);if(e){let p=xo(c.shape,o);return F(c,p)}return c}var bm=N({logSumExp_:qK});function KK(r,t){let e=v(r,"a","logicalAnd","bool"),n=v(t,"b","logicalAnd","bool");zt(e.shape,n.shape);let o={a:e,b:n};return _.runKernel(_a,o)}var Dr=N({logicalAnd_:KK});function jK(r){let e={x:v(r,"x","logicalNot","bool")};return _.runKernel(Ea,e)}var tu=N({logicalNot_:jK});function XK(r,t){let e=v(r,"a","logicalOr","bool"),n=v(t,"b","logicalOr","bool");zt(e.shape,n.shape);let o={a:e,b:n};return _.runKernel(Aa,o)}var wm=N({logicalOr_:XK});function YK(r,t){let e=v(r,"a","logicalXor","bool"),n=v(t,"b","logicalXor","bool");return zt(e.shape,n.shape),Dr(wm(r,t),tu(Dr(r,t)))}var ny=N({logicalXor_:YK});var oy=2147483648;function ZK(r,t,e="left"){let n=v(r,"sortedSequence","searchSorted"),o=v(t,"values","searchSorted"),s=n.shape[n.shape.length-1],i=o.shape[o.shape.length-1],a=F(n,[-1,s]),u=F(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(Qt(u.shape)>=oy)throw new Error(`values tensor size must less than ${oy}`);if(a.shape[1]>=oy)throw new Error(`trailing dim_size must less than ${oy} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return _.runKernel(Xp,l,c)}var Ch=N({searchSorted_:ZK});function cE(r,t){return Ch(r,t,"left")}function JK(r,t,e,n,o){let s=v(r,"x","maxPool"),i=1,a=s,u=!1;s.rank===3&&(u=!0,a=F(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),A(Er(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),Te("maxPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=_.runKernel(gs,l,c);return u?F(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var eu=N({maxPool_:JK});function QK(r,t=[1,1,1],e,n,o,s="NDHWC"){let i=v(r,"x","maxPool3d"),a=i,u=!1;i.rank===4&&(u=!0,a=F(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(a.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${a.rank}.`),A(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Te("maxPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=_.runKernel(Rl,l,c);return u?F(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var sy=N({maxPool3d_:QK});function tj(r,t,e,n,o=!1){let i={x:v(r,"x","maxPoolWithArgmax")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=_.runKernel(Wp,i,a);return{result:u[0],indexes:u[1]}}var pE=N({maxPoolWithArgmax_:tj});function ej(r,t){let e=v(r,"a","maximum"),n=v(t,"b","maximum");[e,n]=Xt(e,n),e.dtype==="bool"&&(e=tt(e,"int32"),n=tt(n,"int32")),zt(e.shape,n.shape);let o={a:e,b:n};return _.runKernel(hs,o)}var Tn=N({maximum_:ej});function rj(r,t=null,e=!1){let o={x:v(r,"x","mean")},s={axis:t,keepDims:e};return _.runKernel(xs,o,s)}var ke=N({mean_:rj});function _e(r,t="float32"){if(t==="complex64"){let n=_e(r,"float32"),o=_e(r,"float32");return Cn(n,o)}let e=Cp(Qt(r),t);return _.makeTensor(e,r,t)}function cr(r,t="float32"){if(t==="complex64"){let n=cr(r,"float32"),o=_e(r,"float32");return Cn(n,o)}let e=Qd(Qt(r),t);return _.makeTensor(e,r,t)}function mE(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=v(r,"x","meshgrid",r instanceof Lt?r.dtype:"float32");if(t===void 0)return[n];let o=v(t,"y","meshgrid",t instanceof Lt?t.dtype:"float32"),s=Qt(n.shape),i=Qt(o.shape);return e==="xy"?(n=F(n,[1,-1]),o=F(o,[-1,1]),[Gt(cr([i,1],n.dtype),n),Gt(o,cr([1,s],o.dtype))]):(n=F(n,[-1,1]),o=F(o,[1,-1]),[Gt(n,cr([1,i],n.dtype)),Gt(cr([s,1],o.dtype),o)])}function nj(r,t){let e=v(r,"a","minimum"),n=v(t,"b","minimum");[e,n]=Xt(e,n),e.dtype==="bool"&&(e=tt(e,"int32"),n=tt(n,"int32")),zt(e.shape,n.shape);let o={a:e,b:n};return _.runKernel(bs,o)}var Ui=N({minimum_:nj});function oj(r,t,e){A(e==="reflect"||e==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${e}.`);let n=v(r,"x","mirrorPad");if(n.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");A(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."),A(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 _.runKernel(ws,i,s)}var iy=N({mirrorPad_:oj});function sj(r,t){let e=v(r,"a","mod"),n=v(t,"b","mod");[e,n]=Xt(e,n);let o={a:e,b:n};return _.runKernel($a,o)}var ay=N({mod_:sj});function ij(r,t=null,e=!1){r=v(r,"x","moments");let n=ur(t,r.shape),o=ke(r,n,e),s=o.shape;e||(s=xo(o.shape,n));let i=Ht(ut(tt(r,"float32"),F(o,s))),a=ke(i,n,e);return{mean:o,variance:a}}var oc=N({moments_:ij});function aj(r,t,e,n){let o=v(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?F(o,[1,-1]):o},l={numSamples:t,seed:e,normalized:n},c=_.runKernel(Up,u,l);return i===1?F(c,[c.size]):c}var dE=N({multinomial_:lj});function uj(r,t){let e=v(r,"a","notEqual","string_or_numeric"),n=v(t,"b","notEqual","string_or_numeric");[e,n]=Xt(e,n),zt(e.shape,n.shape);let o={a:e,b:n};return _.runKernel(Da,o)}var qs=N({notEqual_:uj});function cj(r){let e={x:v(r,"x","onesLike")};return _.runKernel(xi,e)}var br=N({onesLike_:cj});function pj(r,t){let e=v(r,"v1","outerProduct"),n=v(t,"v2","outerProduct");A(e.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${e.rank} and ${n.rank}.`);let o=F(e,[-1,1]),s=F(n,[1,-1]);return Gt(o,s)}var hE=N({outerProduct_:pj});function mj(r,t,e=0){let n=v(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 _.runKernel(Is,s,o)}var cn=N({pad_:mj});function fj(r,t,e=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),cn(r,[t],e)}var gE=N({pad1d_:fj});function dj(r,t,e=0){return A(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 xE=N({pad2d_:dj});function hj(r,t,e=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."),cn(r,t,e)}var yE=N({pad3d_:hj});function gj(r,t,e=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."),cn(r,t,e)}var bE=N({pad4d_:gj});function xj(r,t,e){let n=v(r,"x","spaceToBatchND");A(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),A(e.length===t.length,()=>`paddings.shape[0] ${e.length} must be equal to [blockShape] ${t.length}`),A(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 _.runKernel(vi,o,s)}var ru=N({spaceToBatchND_:xj});function yj(r,t,e,n,o,s,i){o==null&&(o=[1,1]),s==null&&(s=1),n===0&&(n="valid");let a=v(r,"x","maxPool"),u=a,l=!1;a.rank===3&&(l=!0,u=F(a,[1,a.shape[0],a.shape[1],a.shape[2]])),A(Er(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=aS(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n==="same"?m=wj([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=bj([c.inHeight,c.inWidth],p,m),g=f?n:"valid",x=f?u:ru(u,p,d),w=(e==="avg"?()=>Xl(x,t,s,g,i):()=>eu(x,t,s,g,i))(),C=f?w:Yl(w,p,h);return l?F(C,[C.shape[1],C.shape[2],C.shape[3]]):C}function bj(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 wj(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 ly=N({pool_:yj});function Cj(r,t){let e=v(r,"x","prelu"),n=v(t,"alpha","prelu"),o={x:e,alpha:n};return _.runKernel(Ts,o)}var nu=N({prelu_:Cj});function vj(r,t=null,e=!1){let n=v(r,"x","prod");n.dtype==="bool"&&(n=tt(n,"int32"));let o={x:n},s={axis:t,keepDims:e};return _.runKernel(Ns,o,s)}var uy=N({prod_:vj});function Ij(r,t,e,n,o){let s=v(r,"shape","raggedTensorToTensor","int32"),i=v(t,"values","raggedTensorToTensor"),a=v(e,"defaultValue","raggedTensorToTensor",i.dtype),u=n.map((p,m)=>v(p,`tensors${m}`,"raggedTensorToTensor","int32")),l={shape:s,values:i,defaultValue:a,rowPartitionTensors:u},c={rowPartitionTypes:o};return _.runKernel(Hp,l,c)}var wE=N({raggedTensorToTensor_:Ij});function Sj(r,t,e){let n=Qt(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}},py=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=fy.alea(s.toString()),this.randn=new ic(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=fy.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function $j(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 py(t,e,n,o),i=vt(r,n);for(let a=0;a`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),pr(t,0)}var BE=N({reverse1d_:zj});function Bj(r,t){let e=v(r,"x","reverse");return A(e.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${e.rank}.`),pr(e,t)}var VE=N({reverse2d_:Bj});function Vj(r,t){let e=v(r,"x","reverse");return A(e.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${e.rank}.`),pr(e,t)}var GE=N({reverse3d_:Vj});function Gj(r,t){let e=v(r,"x","reverse");return A(e.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${e.rank}.`),pr(e,t)}var WE=N({reverse4d_:Gj});function Wj(r){let e={x:v(r,"x","round")};return _.runKernel(Ds,e)}var vm=N({round_:Wj});function Uj(r){let e={x:v(r,"x","rsqrt","float32")};return _.runKernel(Rs,e)}var Im=N({rsqrt_:Uj});function Hj(r){let e={x:v(r,"x","selu")};return _.runKernel(Ma,e)}var Sm=N({selu_:Hj});function qj(r,t,e,n,o,s=[1,1],i="NHWC"){let a=v(r,"x","separableConv2d"),u=v(t,"depthwiseFilter","separableConv2d"),l=v(e,"pointwiseFilter","separableConv2d"),c=a,p=!1;if(a.rank===3&&(p=!0,c=F(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");A(c.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`),A(u.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${u.rank}.`),A(l.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${l.shape[0]}.`),A(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];A(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=zi(c,u,n,o,i,s),g=Sn(d,l,1,"valid",i);return p?F(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var Tm=N({separableConv2d_:qj});async function Kj(r,t){let e=v(r,"x","setdiff1d"),n=v(t,"y","setdiff1d");A(e.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${e.dtype}) and y (${n.dtype}).`),A(e.rank===1,()=>`x should be 1D tensor, but got x (${e.shape}).`),A(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`),Ot(n,[t],[e])}var _m=N({slice1d_:Zj});function Jj(r,t,e){let n=v(r,"x","slice2d");return A(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var Ih=N({slice2d_:Jj});function Qj(r,t,e){let n=v(r,"x","slice3d");return A(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var Em=N({slice3d_:Qj});function t6(r,t,e){let n=v(r,"x","slice4d");return A(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),Ot(n,t,e)}var lc=N({slice4d_:t6});function e6(r,t=-1){let e=v(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 _.runKernel(Ms,n,o)}var su=N({softmax_:e6});function r6(r){A(r.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return _.runKernel(Pp,t)}var iu=N({fft_:r6});function n6(r){A(r.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return _.runKernel(Lp,t)}var Qa=N({ifft_:n6});function o6(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=F(r,[e,t]);n=Qa(o)}else{let o=[e,2*(t-1)],s=F(Za(r),[e,t]),i=F(jl(r),[e,t]),a=pr(Ot(s,[0,1],[e,t-2]),1),u=O(pr(Ot(i,[0,1],[e,t-2]),1),mt(-1)),l=se([s,a],1),c=se([i,u],1),p=F(Cn(l,c),[o[0],o[1]]);n=Qa(p)}if(n=Za(n),r.rank===3&&r.shape[0]!==0){let o=n,s=r.shape[0];n=F(n,[s,n.shape[0]/s,n.shape[1]]),o.dispose()}return n}var Am=N({irfft_:o6});function s6(r,t,e=0){let o={x:v(r,"x","split")},s={numOrSizeSplits:t,axis:e};return _.runKernel(Ii,o,s)}var mr=N({split_:s6});function i6(r,t){A(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=Ot(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=se([r,_e(d)],r.shape.length-1),e=t}else o=r;let s=St(o),i=F(Cn(o,s),[n,e]),a=iu(i),u=Math.floor(e/2)+1,l=Za(a),c=jl(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,F(Cn(p[0],m[0]),f)}var au=N({rfft_:i6});function a6(r,t){let e=v(r,"a","squaredDifference"),n=v(t,"b","squaredDifference");[e,n]=Xt(e,n),zt(e.shape,n.shape);let o={a:e,b:n},s={};return _.runKernel(zs,o,s)}var $m=N({squaredDifference_:a6});function l6(r,t){let e=v(r,"x","squeeze","string_or_numeric");return F(e,m0(e.shape,t).newShape)}var Mn=N({squeeze_:l6});function u6(r,t=0){let e=ja(r,"tensors","stack","string_or_numeric");A(e.length>=1,()=>"Pass at least one tensor to tf.stack"),e.length>0&&A(t<=e[0].rank,()=>"Axis must be <= rank of the tensor");let n=e,o={axis:t};return _.runKernel(yi,n,o)}var sr=N({stack_:u6});function c6(r,t=0){let n={x:v(r,"x","step")},o={alpha:t};return _.runKernel(co,n,o)}var yo=N({step_:c6});function p6(r,t,e,n,o=0,s=0,i=0,a=0,u=0){let c={x:v(r,"x","stridedSlice","string_or_numeric")},p={begin:t,end:e,strides:n,beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};return _.runKernel(Wa,c,p)}var gy=N({stridedSlice_:p6});function m6(r){let e={x:v(r,"x","tan","float32")};return _.runKernel(Vs,e)}var xy=N({tan_:m6});function Ve(r,t){Kn(r);let e=Pr(r,t);if(e.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return sn(r,null,e,t)}function Ks(r,t,e){if(Kn(r),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let n=Pr(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 sn(r,t,n,e)}function HE(r,t,e){if(Kn(r),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let n=Pr(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 sn(r,t,n,e)}function qE(r,t,e){if(Kn(r),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let n=Pr(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 sn(r,t,n,e)}function KE(r,t,e){if(Kn(r),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let n=Pr(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,sn(r,t,n,e)}function f6(r,t=1,e=!0){let n=v(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]=_.runKernel(Ua,s,i);return{values:a,indices:u}}var yy=N({topk_:f6});function d6(r,t=0,e=1,n,o){if(n!=null&&n==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new ic(t,e,n,!0,o),i=vt(r,n);for(let a=0;a0,()=>"The input tensor must be at least 1D");let n={x:e},o={axis:t},[s,i]=_.runKernel(Zp,n,o);return{values:s,indices:i}}var by=N({unique_:h6});function g6(r,t,e){let n=v(r,"x","unsortedSegmentSum"),o=v(t,"segmentIds","unsortedSegmentSum","int32");A(na(e),()=>"numSegments must be of dtype int");let s={x:n,segmentIds:o},i={numSegments:e};return _.runKernel(Gl,s,i)}var Rm=N({unsortedSegmentSum_:g6});function x6(r,t=0){let e=v(r,"x","unstack","string_or_numeric");A(t>=-e.shape.length&&t`Axis = ${t} is not in [-${e.shape.length}, ${e.shape.length})`);let n={value:e},o={axis:t};return _.runKernel(Si,n,o)}var Tr=N({unstack_:x6});function jE(r,t){return Ch(r,t,"right")}function wy(r,t=!0,e,n){return _.makeVariable(r,t,e,n)}function Cy(r,t){let e=[];for(let s=0;s0,()=>"mask cannot be scalar"),Fe(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=ut(u,a),c=O(ut(i,s),l);if(o){A(n!=null,()=>"When using zeroDebias: true, step is required.");let p=v(n,"step","movingAverage");c=ct(c,ut(u,ln(a,p)))}return J(s,c)}var v6=N({movingAverage_:C6});function I6(r,t,e){let n=v(r,"indices","scatterND","int32"),o=v(t,"updates","scatterND");bx(o,n,e);let s={indices:n,updates:o},i={shape:e};return _.runKernel(La,s,i)}var S6=N({scatterND_:I6});function XE(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 N6(r,t,e,n=0){let o=v(r,"sparseIndices","sparseToDense","int32"),s=v(t,"sparseValues","sparseToDense","string_or_numeric"),i=v(n,"defaultValue","sparseToDense",s.dtype);XE(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return _.runKernel(Yp,a,u)}var k6=N({sparseToDense_:N6});function _6(r,t){let e=v(t,"indices","gatherND","int32"),o={params:v(r,"x","gatherND","string_or_numeric"),indices:e};return _.runKernel(wa,o)}var E6=N({gatherND_:_6});function YE(r,t){if(t==null)return r.shape.slice();if(Rn(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.`),A(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return r instanceof Lt?o.clone():o;let s=YE(o,e),i=1-t,a=ct(Gi(J(Hi(s,0,1,"float32",n),i)),i);return O(o,a)}var bS=N({dropout_:A6});function wS(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function Sh(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}`),A(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}`),Fe(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];A(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=f0("bool",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hZE,depthwiseConv2d:()=>JE,matMul:()=>QE});function R6(r,t,e,n,o,s="NHWC",i){let a=r;r.rank===3&&(a=F(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=F(t,[1,t.shape[0],t.shape[1],t.shape[2]])),A(a.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),A(u.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${u.shape}.`),A(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];A(l===e[2],()=>`Error in conv2dDerFilter: depth of input ${l}) must match input depth in filter (${e[2]}.`),A(c===e[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${e[3]}).`),Te("conv2dDerFilter",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return _.runKernel(kp,p,m)}var Fm=N({conv2DBackpropFilter_:R6});function uc(r,t,e){if(e==null||e==="linear")return r;if(e==="relu")return O(r,yo(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function cc(r,t){let e=t,n=ye(r.shape,t.shape);return n.length>0&&(e=ft(e,n)),F(e,r.shape)}function pc(r,t,e,n){if(t==="linear")return r;if(t==="relu")return Rr(r);if(t==="elu")return Bi(r);if(t==="relu6")return Cm(r);if(t==="prelu")return nu(r,e);if(t==="leakyrelu")return Jl(r,n);if(t==="sigmoid")return Kr(r);throw new Error(`Unknown fused activation ${t}.`)}var mc=(r,t)=>!(r>0)||t==="linear";function F6({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",mc(_.state.gradientDepth,u)===!1){A(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 E=Sn(r,t,e,n,o,s,i);return a!=null&&(E=J(E,a)),pc(E,u,l,c)}let p=v(r,"x","conv2d","float32"),m=v(t,"filter","conv2d","float32"),f=p,d=!1;p.rank===3&&(d=!0,f=F(p,[1,p.shape[0],p.shape[1],p.shape[2]])),A(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),A(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),Te("fused conv2d",n,i);let h=o==="NHWC"?f.shape[3]:f.shape[1];A(m.shape[2]===h,()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${m.shape[2]}.`),A(Er(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=tc(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=v(a,"bias","fused conv2d"),[x]=Xt(x,p),o==="NHWC"?zt(g.outShape,x.shape):(A(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}.`),A(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 E=l.shape;if(A(E.length<=1||E.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-${E.length}.`),E.length===1)A(E[0]===1||E[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the number of output channels (${g.outChannels}).`);else if(E.length===3)try{zt(E,g.outShape)}catch($){let D=`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(D)}b=v(l,"prelu weights","fused conv2d")}let w=(E,$)=>{A(o==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${o} but only NHWC is currently supported.`);let[D,P,M,W]=$,H=uc(E,M,u);A(Jn(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let q=fm(P.shape,H,D,e,n),X=Fm(P,H,D.shape,e,n),j=[q,X];if(W!=null){let Z=cc(W,H);j.push(Z)}return j},C={x:f,filter:m,bias:x,preluActivationWeights:b},T={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?un(($,D,P)=>{let M=_.runKernel(ki,C,T);return P([D,$,M]),d&&(M=F(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:w}})(f,m):un(($,D,P,M)=>{let W=_.runKernel(ki,C,T);return M([D,$,W,P]),d&&(W=F(W,[W.shape[1],W.shape[2],W.shape[3]])),{value:W,gradFunc:w}})(f,m,x)}var ZE=N({fusedConv2d_:F6});function O6(r,t,e,n,o,s=[1,1],i){let a=r;r.rank===3&&(a=F(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=F(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 _.runKernel($p,l,c)}var Iy=N({depthwiseConv2dNativeBackpropFilter_:O6});function P6(r,t,e,n,o,s=[1,1],i){let a=t,u=!1;t.rank===3&&(u=!0,a=F(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=_.runKernel(Dp,l,c);return u?F(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Sy=N({depthwiseConv2dNativeBackpropInput_:P6});function L6({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(mc(_.state.gradientDepth,u)===!1){let T=zi(r,t,e,n,o,s,i);return a!=null&&(T=J(T,a)),pc(T,u,l,c)}let p=v(r,"x","depthwiseConv2d","float32"),m=v(t,"filter","depthwiseConv2d","float32"),f=p,d=!1;p.rank===3&&(d=!0,f=F(p,[1,p.shape[0],p.shape[1],p.shape[2]])),A(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),A(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),A(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]),A(Er(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),Te("fused depthwiseConv2d",n,i);let h=tc(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=v(a,"bias","fused conv2d"),[g]=Xt(g,p),zt(h.outShape,g.shape));let x;l!=null&&(x=v(l,"prelu weights","fused depthwiseConv2d"));let b=(T,E)=>{A(Jn(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[$,D,P,M]=E,W=uc(T,P,u),H=Sy(D.shape,W,$,e,n,s,i),q=Iy(D,W,$.shape,e,n,s,i);if(M!=null){let X=cc(g,W);return[H,q,X]}return[H,q]},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((E,$,D)=>{let P=_.runKernel(_i,w,C);return D([$,E,P]),d&&(P=F(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m):un((E,$,D,P)=>{let M=_.runKernel(_i,w,C);return P([$,E,M,D]),d&&(M=F(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:b}})(f,m,g)}var JE=N({fusedDepthwiseConv2d_:L6});function M6({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(mc(_.state.gradientDepth,s)===!1){let W=Gt(r,t,e,n);return o!=null&&(W=J(W,o)),pc(W,s,i,a)}let u=v(r,"a","fused matMul"),l=v(t,"b","fused matMul");[u,l]=Xt(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=Qt(d),x=Qt(h);A(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=zt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),C=e?F(u,[g,c,m]):F(u,[g,m,c]),T=n?F(l,[x,f,p]):F(l,[x,p,f]),E;o!=null&&(E=v(o,"bias","fused matMul"),[E]=Xt(E,u),zt(w,E.shape));let $;i!=null&&($=v(i,"prelu weights","fused matMul"));let D=(W,H)=>{let[q,X,j,Z]=H,et=uc(F(W,j.shape),j,s),K,ot;if(!e&&!n?(K=Gt(et,X,!1,!0),ot=Gt(q,et,!0,!1)):!e&&n?(K=Gt(et,X,!1,!1),ot=Gt(et,q,!0,!1)):e&&!n?(K=Gt(X,et,!1,!0),ot=Gt(q,et,!1,!1)):(K=Gt(X,et,!0,!0),ot=Gt(et,q,!0,!0)),o!=null){let st=cc(Z,et);return[K,ot,st]}else return[K,ot]},P={a:C,b:T,bias:E,preluActivationWeights:$},M={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?un((H,q,X)=>{let j=_.runKernel(Ni,P,M);return X([H,q,j]),{value:F(j,w),gradFunc:D}})(C,T):un((H,q,X,j)=>{let Z=_.runKernel(Ni,P,M);return j([H,q,Z,X]),{value:F(Z,w),gradFunc:D}})(C,T,E)}var QE=N({fusedMatMul_:M6});function z6(r){return Sh(r,.54,.46)}var tA=N({hammingWindow_:z6});function B6(r){return Sh(r,.5,.5)}var Ty=N({hannWindow_:B6});function V6(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Ot(r,s,t)),s+=e;if(n)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),A(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${l},4] but had shape ${a.shape}.`),A(u.rank===1&&u.shape[0]===l,()=>`Error in cropAndResize: boxInd must be have size [${l}] but had shape ${a.shape}.`),A(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),A(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),A(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 _.runKernel(da,c,p)}var rA=N({cropAndResize_:W6});function U6(r){let t=v(r,"image","flipLeftRight","float32");A(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let e={image:t};return _.runKernel(ba,e,{})}var nA=N({flipLeftRight_:U6});function H6(r){let t=v(r,"image","grayscaleToRGB"),e=t.rank-1,n=t.shape[e];A(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),A(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,$r(t,o)}var oA=N({grayscaleToRGB_:H6});function q6(r,t,e=0,n=.5){let o=v(r,"image","rotateWithOffset","float32");A(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 _.runKernel(qa,s,i)}var sA=N({rotateWithOffset_:q6});function bo(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),A(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),A(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),A(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.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:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s}}function K6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=v(r,"boxes","nonMaxSuppression","float32"),i=v(t,"scores","nonMaxSuppression","float32"),a=bo(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return _.runKernel(Ra,{boxes:s,scores:i},u)}var iA=N({nonMaxSuppression_:K6});function aA(r,t,e){let n=j6(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function j6(r,t,e){return Y6(r,t,e||X6)}function X6(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 ky(r,t,e,n,o){return CS(r,t,e,n,o,0)}function _y(r,t,e,n,o,s){return CS(r,t,e,n,o,0,!1,s,!0)}function Ey(r,t,e,n,o,s){return CS(r,t,e,n,o,s,!0)}function CS(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(lA);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;--T){let E=Z6(r,b,p[T]);if(E>=n){C=!0;break}if(g.score=g.score*J6(n,c,E),g.score<=o)break}g.suppressBeginIndex=p.length,C||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&aA(l,g,lA))}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 Z6(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 J6(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function lA(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function Q6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=v(r,"boxes","nonMaxSuppressionAsync"),i=v(t,"scores","nonMaxSuppressionAsync"),a=bo(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}=ky(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Ve(p,"int32")}var uA=Q6;function t5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=v(r,"boxes","nonMaxSuppression"),a=v(t,"scores","nonMaxSuppression"),u=bo(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=_.runKernel(Oa,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var cA=N({nonMaxSuppressionWithScore_:t5});async function e5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=v(r,"boxes","nonMaxSuppressionAsync"),a=v(t,"scores","nonMaxSuppressionAsync"),u=bo(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}=Ey(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Ve(m,"int32"),selectedScores:Ve(f)}}var pA=e5;function r5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=v(r,"boxes","nonMaxSuppression"),a=v(t,"scores","nonMaxSuppression"),u=bo(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=_.runKernel(Fa,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var mA=N({nonMaxSuppressionPadded_:r5});async function n5(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=v(r,"boxes","nonMaxSuppressionAsync"),a=v(t,"scores","nonMaxSuppressionAsync"),u=bo(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}=_y(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Ve(d,"int32"),validOutputs:mt(h,"int32")}}var fA=n5;function o5(r,t,e=!1,n=!1){let o=v(r,"images","resizeBilinear");A(o.rank===3||o.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${o.rank}.`),A(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),A(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=F(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=_.runKernel(Es,a,u);return i?F(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var Ay=N({resizeBilinear_:o5});function s5(r,t,e=!1,n=!1){let o=v(r,"images","resizeNearestNeighbor");A(o.rank===3||o.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${o.rank}.`),A(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),A(o.dtype==="float32"||o.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),A(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=F(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=_.runKernel(_s,a,u);return i?F(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var $y=N({resizeNearestNeighbor_:s5});function i5(r,t="binary",e=!1,n=.5){let o=v(r,"image","threshold"),s=.2989,i=.587,a=.114,u=o.shape[0]*o.shape[1],l=O(Ve([n]),255),c,p,m,f;if(A(o.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${o.rank}.`),A(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]}.`),A(o.dtype==="int32"||o.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${o.dtype}.`),A(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=O(c,s),x=O(p,i),b=O(m,a);f=J(J(g,x),b)}else f=r;if(t==="otsu"){let g=Fx(tt(vm(f),"int32"),vr([]),256);l=a5(g,u)}let d=e?Ln(f,l):Xe(f,l);return tt(O(d,255),"int32")}function a5(r,t){let e=Ve([-1]),n=Ve([0]),o=Ve([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}.`),A(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"),A(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 _.runKernel(Ha,u,l)}var hA=N({transform_:l5});function u5(r,t,e){A(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`);let n=v(r,"a","bandPart");A(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=F(ou(0,s,1,"int32"),[-1,1]),u=ou(0,i,1,"int32"),l=ut(a,u),c=Dr(Ln(l,mt(+t,"int32")),Pn(l,mt(-e,"int32"))),p=_e([s,i],n.dtype);return F(sr(Tr(F(n,[-1,s,i])).map(m=>De(c,m,p))),o)}var gA=N({bandPart_:u5});function c5(r){let t;if(Array.isArray(r)){t=!1,A(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]));A(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 yA(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=Tr(F(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=yA(u,t);o.push(l),s.push(c)});let i=F(sr(o,0),r.shape),a=F(sr(s,0),r.shape);return[i,a]}}function yA(r,t=!1){return _.tidy(()=>{A(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=nc(e),s=an(r),i=Ks([[1]],[1,1]),a=an(i),u=e>=n?n:e;for(let l=0;l{let f=Ot(s,[l,l],[e-l,1]),d=Ja(f),h=Ot(s,[l,l],[1,1]),g=De(Xe(h,0),Ks([[-1]]),Ks([[1]])),x=ut(h,O(g,d)),b=ct(f,x);b.shape[0]===1?a=an(i):a=se([i,Ot(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Yt(ct(Gt(g,x),d)),C=Ot(s,[l,0],[e-l,n]),T=O(w,a),E=Mt(a);if(l===0)s=ut(C,Gt(T,Gt(E,C)));else{let P=ut(C,Gt(T,Gt(E,C)));s=se([Ot(s,[0,0],[l,n]),P],0)}let $=Mt(T),D=Ot(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=ut(D,Gt(Gt(D,a),$));else{let P=ut(D,Gt(Gt(D,a),$));o=se([Ot(o,[0,0],[e,l]),P],1)}return[a,s,o]}),_t([c,p,m])}return!t&&e>n&&(o=Ot(o,[0,0],[e,n]),s=Ot(s,[0,0],[n,n])),[o,s]})}var bA=N({qr_:p5});var Ye;(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"})(Ye||(Ye={}));function m5(r,t,e=Ye.SUM_BY_NONZERO_WEIGHTS){let n=v(r,"losses","computeWeightedLoss"),o=null;t!=null&&(o=v(t,"weights","computeWeightedLoss"));let s=o==null?n:O(n,o);if(e===Ye.NONE)return s;if(e===Ye.SUM)return ft(s);if(e===Ye.MEAN){if(o==null)return ke(s);{let i=n.size/o.size,a=ct(ft(s),ft(o));return i>1?ct(a,mt(i)):a}}if(e===Ye.SUM_BY_NONZERO_WEIGHTS){if(o==null)return ct(ft(s),mt(n.size));{let i=O(o,cr(n.shape)),a=tt(ft(qs(i,mt(0))),"float32");return ct(ft(s),a)}}throw Error(`Unknown reduction: ${e}`)}var zr=N({computeWeightedLoss_:m5});function f5(r,t,e,n=Ye.SUM_BY_NONZERO_WEIGHTS){let o=v(r,"labels","absoluteDifference"),s=v(t,"predictions","absoluteDifference"),i=null;e!=null&&(i=v(e,"weights","absoluteDifference")),Fe(o.shape,s.shape,"Error in absoluteDifference: ");let a=$e(ut(o,s));return zr(a,i,n)}var wA=N({absoluteDifference_:f5});function d5(r,t,e,n,o=Ye.SUM_BY_NONZERO_WEIGHTS){let s=v(r,"labels","cosineDistance"),i=v(t,"predictions","cosineDistance"),a=null;n!=null&&(a=v(n,"weights","cosineDistance")),Fe(s.shape,i.shape,"Error in cosineDistance: ");let u=mt(1),l=ut(u,ft(O(s,i),e,!0));return zr(l,a,o)}var CA=N({cosineDistance_:d5});function h5(r,t,e,n=Ye.SUM_BY_NONZERO_WEIGHTS){let o=v(r,"labels","hingeLoss"),s=v(t,"predictions","hingeLoss"),i=null;e!=null&&(i=v(e,"weights","hingeLoss")),Fe(o.shape,s.shape,"Error in hingeLoss: ");let a=mt(1);o=ut(O(mt(2),o),a);let u=Rr(ut(a,O(o,s)));return zr(u,i,n)}var vA=N({hingeLoss_:h5});function g5(r,t,e,n=1,o=Ye.SUM_BY_NONZERO_WEIGHTS){let s=v(r,"labels","huberLoss"),i=v(t,"predictions","huberLoss"),a=null;e!=null&&(a=v(e,"weights","huberLoss")),Fe(s.shape,i.shape,"Error in huberLoss: ");let u=mt(n),l=$e(ut(i,s)),c=Ui(l,u),p=ut(l,c),m=J(O(mt(.5),Ht(c)),O(u,p));return zr(m,a,o)}var IA=N({huberLoss_:g5});function x5(r,t,e,n=1e-7,o=Ye.SUM_BY_NONZERO_WEIGHTS){let s=v(r,"labels","logLoss"),i=v(t,"predictions","logLoss"),a=null;e!=null&&(a=v(e,"weights","logLoss")),Fe(s.shape,i.shape,"Error in logLoss: ");let u=mt(1),l=mt(n),c=Yt(O(s,Sr(J(i,l)))),p=O(ut(u,s),Sr(J(ut(u,i),l))),m=ut(c,p);return zr(m,a,o)}var SA=N({logLoss_:x5});function y5(r,t,e,n=Ye.SUM_BY_NONZERO_WEIGHTS){let o=v(r,"labels","meanSquaredError"),s=v(t,"predictions","meanSquaredError"),i=null;e!=null&&(i=v(e,"weights","meanSquaredError")),Fe(o.shape,s.shape,"Error in meanSquaredError: ");let a=$m(o,s);return zr(a,i,n)}var TA=N({meanSquaredError_:y5});function b5(r,t){let e=v(r,"labels","sigmoidCrossEntropyWithLogits"),n=v(t,"logits","sigmoidCrossEntropyWithLogits");Fe(e.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");let o=Rr(n),s=O(n,e),i=Ql(or(Yt($e(n))));return J(ut(o,s),i)}function w5(r,t,e,n=0,o=Ye.SUM_BY_NONZERO_WEIGHTS){let s=v(r,"multiClassLabels","sigmoidCrossEntropy"),i=v(t,"logits","sigmoidCrossEntropy"),a=null;if(e!=null&&(a=v(e,"weights","sigmoidCrossEntropy")),Fe(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),n>0){let l=mt(n),c=mt(1),p=mt(.5);s=J(O(s,ut(c,l)),O(p,l))}let u=b5(s,i);return zr(u,a,o)}var NA=N({sigmoidCrossEntropy_:w5});function C5(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=bm(s,[e],!0),l=ut(tt(s,"float32"),u);i([o,l]);let c=Yt(O(l,o));return{value:ft(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=xo(f.shape,[e]);return[O(F(f,x),ut(tt(h,"float32"),or(g))),O(F(f,x),ut(or(g),tt(h,"float32")))]}}})(r,t)}function v5(r,t,e,n=0,o=Ye.SUM_BY_NONZERO_WEIGHTS){let s=v(r,"onehotLabels","softmaxCrossEntropy"),i=v(t,"logits","softmaxCrossEntropy"),a=null;if(e!=null&&(a=v(e,"weights","softmaxCrossEntropy")),Fe(s.shape,i.shape,"Error in softmaxCrossEntropy: "),n>0){let l=mt(n),c=mt(1),p=mt(s.shape[1]);s=J(O(s,ut(c,l)),ct(l,p))}let u=C5(s,i);return zr(u,a,o)}var kA=N({softmaxCrossEntropy_:v5});function I5(r,t,e,n){let o=v(r,"indices","sparseFillEmptyRows","int32"),s=v(t,"values","sparseFillEmptyRows"),i=v(e,"denseShape","sparseFillEmptyRows","int32"),a=v(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=_.runKernel(Ol,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var _A=N({sparseFillEmptyRows_:I5});function S5(r,t,e){let n=v(r,"inputIndices","sparseReshape","int32"),o=v(t,"inputShape","sparseReshape","int32"),s=v(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=_.runKernel(Ga,i);return{outputIndices:a[0],outputShape:a[1]}}var EA=N({sparseReshape_:S5});function T5(r,t,e){let n=v(r,"data","sparseSegmentMean"),o=v(t,"indices","sparseSegmentMean","int32"),s=v(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.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 T.runKernel(fa,a,u)}var Sx=k({depthToSpace_:Cq});function Iq(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=D(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=T.runKernel(Zo,m,f);return c?D(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Di=k({depthwiseConv2d_:Iq});function vq(r){let e={x:I(r,"x","diag")};return T.runKernel(yp,e)}var zE=k({diag_:vq});function Sq(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=D(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=T.runKernel(_l,c,p);return l?D(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Nx=k({dilation2d_:Sq});function Nq(r,t){let e=I(r,"a","equal","string_or_numeric"),n=I(t,"b","equal","string_or_numeric");[e,n]=Wt(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(ha,o)}var Ar=k({equal_:Nq});function kq(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=$i(s,i),u=$i(n,i),l=$i(o,i),c={condition:a,t:u,e:l};return T.runKernel(fi,c)}var _e=k({where_:kq});function Tq(r){let e={x:I(r,"x","zerosLike")};return T.runKernel(yi,e)}var It=k({zerosLike_:Tq});function Eq(r,t){let e=I(r,"a","div"),n=I(t,"b","div");[e,n]=Wt(e,n);let o=pt(e,n),s=It(o),i=Ar(n,s);return _e(i,s,o)}var kx=k({divNoNan_:Eq});function _q(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=D(e,[1,-1]),a=D(n,[-1,1]),u=Lt(i,a);return D(u,[])}else if(e.rank===1&&n.rank===2){let i=D(e,[1,-1]),a=D(n,[n.shape[0],n.shape[1]]),u=Lt(i,a);return D(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=D(n,[-1,1]),a=Lt(e,i);return D(a,[a.size])}else{let i=D(n,[n.shape[0],n.shape[1]]);return Lt(e,i)}}var Tx=k({dot_:_q});function Aq(r,...t){let e=t.map((o,s)=>I(o,`tensors${s}`,"einsum")),n={equation:r};return T.runKernel(bp,e,n)}var BE=k({einsum_:Aq});function $q(r){let e={x:I(r,"x","elu","float32")};return T.runKernel(Qo,e)}var Ri=k({elu_:$q});function Dq(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 T.runKernel(da,e)}var Ex=k({erf_:Dq});function KS(r,t){for(let e=0;er[s]);return[e,o]}function xo(r,t){let e=t.map(n=>1);return VE(r,e,t)}function Rq(r,t,e){E(KS(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function XS(r,t){if(KS(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function ih(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function Fq(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 T.runKernel(ai,n,o)}var gr=k({expandDims_:Uq});function Hq(r){let e={x:I(r,"x","expm1")};return T.runKernel(ga,e)}var Ax=k({expm1_:Hq});function qq(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 T.runKernel(Zn,n,o)}var $r=k({tile_:qq});function Kq(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(ea(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,a=!1;s.rank===3&&(a=!0,i=D(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=T.runKernel($l,u,l);return a?D(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Fx=k({localResponseNormalization_:oK});function sK(r){let e={x:I(r,"x","log","float32")};return T.runKernel(is,e)}var Ir=k({log_:sK});function iK(r){let e={x:I(r,"x","log1p")};return T.runKernel(Na,e)}var Jl=k({log1p_:iK});function aK(r){return E(ri(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 T.tidy(()=>{let{value:s,grads:i}=T.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)"),Px(i),i[0]})}}function lK(r){return E(ri(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=qa(t,"args","tf.grads","string_or_numeric"),o=e!=null?I(e,"dy","tf.grads"):null;return T.tidy(()=>{let{value:s,grads:i}=T.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,...])"),Px(i),i})}}function uK(r){return E(ri(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}=T.gradients(()=>r(t),[t],e);return Px(n),{grad:n[0],value:o}}}function cK(r){return E(ri(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=T.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,...])"),Px(n.grads),n}}function Ox(r,t){E(ri(r),()=>"The f passed in variableGrads(f) must be a function"),E(t==null||Array.isArray(t)&&t.every(l=>l instanceof Ha),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let e=t!=null;if(!e){t=[];for(let l in T.registeredVariables)t.push(T.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}=T.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 ln(r){return T.customGrad(r)}function Px(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 pK(r){let e={x:I(r,"x","softplus")};return T.runKernel(za,e)}var Ms=k({softplus_:pK});function mK(r){let t=I(r,"x","logSigmoid");return ln(n=>({value:Ut(Ms(Ut(n))),gradFunc:i=>R(i,Xr(Ut(n)))}))(t)}var Lx=k({logSigmoid_:mK});function fK(r,t){let e=I(r,"a","sub"),n=I(t,"b","sub");[e,n]=Wt(e,n);let o={a:e,b:n};return T.runKernel(Rs,o)}var ct=k({sub_:fK});function dK(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 ln((o,s)=>{let a=Br(o,t,!0),u=ct(o,a),l=ct(J(u,"float32"),Ir(ft(er(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=er(f);return ct(p,R(ft(p,t,d),h))}}})(e)}var om=k({logSoftmax_:dK});function hK(r,t=null,e=!1){let n=I(r,"x","logSumExp"),o=ar(t,n.shape),s=Br(n,o,!0),i=ct(n,s),a=er(i),u=ft(a,o),l=Ir(u),c=X(D(s,l.shape),l);if(e){let p=xo(c.shape,o);return D(c,p)}return c}var sm=k({logSumExp_:hK});function gK(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 T.runKernel(ka,o)}var Dr=k({logicalAnd_:gK});function xK(r){let e={x:I(r,"x","logicalNot","bool")};return T.runKernel(Ta,e)}var Ql=k({logicalNot_:xK});function yK(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 T.runKernel(Ea,o)}var im=k({logicalOr_:yK});function bK(r,t){let e=I(r,"a","logicalXor","bool"),n=I(t,"b","logicalXor","bool");return Pt(e.shape,n.shape),Dr(im(r,t),Ql(Dr(r,t)))}var Mx=k({logicalXor_:bK});var zx=2147483648;function wK(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=D(n,[-1,s]),u=D(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(Zt(u.shape)>=zx)throw new Error(`values tensor size must less than ${zx}`);if(a.shape[1]>=zx)throw new Error(`trailing dim_size must less than ${zx} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return T.runKernel(Op,l,c)}var ah=k({searchSorted_:wK});function UE(r,t){return ah(r,t,"left")}function CK(r,t,e,n,o){let s=I(r,"x","maxPool"),i=1,a=s,u=!1;s.rank===3&&(u=!0,a=D(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(_r(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=T.runKernel(us,l,c);return u?D(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var tu=k({maxPool_:CK});function IK(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=D(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=T.runKernel(Dl,l,c);return u?D(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Bx=k({maxPool3d_:IK});function vK(r,t,e,n,o=!1){let i={x:I(r,"x","maxPoolWithArgmax")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=T.runKernel(Ep,i,a);return{result:u[0],indexes:u[1]}}var HE=k({maxPoolWithArgmax_:vK});function SK(r,t){let e=I(r,"a","maximum"),n=I(t,"b","maximum");[e,n]=Wt(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 T.runKernel(ls,o)}var In=k({maximum_:SK});function NK(r,t=null,e=!1){let o={x:I(r,"x","mean")},s={axis:t,keepDims:e};return T.runKernel(cs,o,s)}var Se=k({mean_:NK});function Ne(r,t="float32"){if(t==="complex64"){let n=Ne(r,"float32"),o=Ne(r,"float32");return bn(n,o)}let e=ip(Zt(r),t);return T.makeTensor(e,r,t)}function lr(r,t="float32"){if(t==="complex64"){let n=lr(r,"float32"),o=Ne(r,"float32");return bn(n,o)}let e=zd(Zt(r),t);return T.makeTensor(e,r,t)}function qE(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=Zt(n.shape),i=Zt(o.shape);return e==="xy"?(n=D(n,[1,-1]),o=D(o,[-1,1]),[Lt(lr([i,1],n.dtype),n),Lt(o,lr([1,s],o.dtype))]):(n=D(n,[-1,1]),o=D(o,[1,-1]),[Lt(n,lr([1,i],n.dtype)),Lt(lr([s,1],o.dtype),o)])}function kK(r,t){let e=I(r,"a","minimum"),n=I(t,"b","minimum");[e,n]=Wt(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 T.runKernel(ms,o)}var Pi=k({minimum_:kK});function TK(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 T.runKernel(fs,i,s)}var Vx=k({mirrorPad_:TK});function EK(r,t){let e=I(r,"a","mod"),n=I(t,"b","mod");[e,n]=Wt(e,n);let o={a:e,b:n};return T.runKernel(_a,o)}var Gx=k({mod_:EK});function _K(r,t=null,e=!1){r=I(r,"x","moments");let n=ar(t,r.shape),o=Se(r,n,e),s=o.shape;e||(s=xo(o.shape,n));let i=Mt(ct(J(r,"float32"),D(o,s))),a=Se(i,n,e);return{mean:o,variance:a}}var Zu=k({moments_:_K});function AK(r,t,e,n){let o=I(t,"data","multiRNNCell"),s=qa(e,"c","multiRNNCell"),i=qa(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?D(o,[1,-1]):o},l={numSamples:t,seed:e,normalized:n},c=T.runKernel(_p,u,l);return i===1?D(c,[c.size]):c}var jE=k({multinomial_:$K});function DK(r,t){let e=I(r,"a","notEqual","string_or_numeric"),n=I(t,"b","notEqual","string_or_numeric");[e,n]=Wt(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return T.runKernel(Aa,o)}var zs=k({notEqual_:DK});function RK(r){let e={x:I(r,"x","onesLike")};return T.runKernel(ci,e)}var xr=k({onesLike_:RK});function FK(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=D(e,[-1,1]),s=D(n,[1,-1]);return Lt(o,s)}var XE=k({outerProduct_:FK});function OK(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 T.runKernel(gs,s,o)}var un=k({pad_:OK});function PK(r,t,e=0){return E(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),un(r,[t],e)}var YE=k({pad1d_:PK});function LK(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."),un(r,t,e)}var ZE=k({pad2d_:LK});function MK(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."),un(r,t,e)}var JE=k({pad3d_:MK});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."),un(r,t,e)}var QE=k({pad4d_:zK});function BK(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 T.runKernel(hi,o,s)}var eu=k({spaceToBatchND_:BK});function VK(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=D(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(_r(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=HS(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n==="same"?m=WK([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=GK([c.inHeight,c.inWidth],p,m),g=f?n:"valid",x=f?u:eu(u,p,d),w=(e==="avg"?()=>jl(x,t,s,g,i):()=>tu(x,t,s,g,i))(),C=f?w:Xl(w,p,h);return l?D(C,[C.shape[1],C.shape[2],C.shape[3]]):C}function GK(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 WK(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 Wx=k({pool_:VK});function UK(r,t){let e=I(r,"x","prelu"),n=I(t,"alpha","prelu"),o={x:e,alpha:n};return T.runKernel(ys,o)}var ru=k({prelu_:UK});function HK(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 T.runKernel(bs,o,s)}var Ux=k({prod_:HK});function qK(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=T.runKernel(Ap,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var t_=k({raggedGather_:qK});function KK(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 T.runKernel($p,l,c)}var e_=k({raggedTensorToTensor_:KK});function jK(r,t,e){let n=Zt(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}},qx=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=jx.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=jx.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function ej(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 qx(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}.`),ur(t,0)}var C_=k({reverse1d_:uj});function cj(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}.`),ur(e,t)}var I_=k({reverse2d_:cj});function pj(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}.`),ur(e,t)}var v_=k({reverse3d_:pj});function mj(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}.`),ur(e,t)}var S_=k({reverse4d_:mj});function fj(r){let e={x:I(r,"x","round")};return T.runKernel(Ns,e)}var lm=k({round_:fj});function dj(r){let e={x:I(r,"x","rsqrt","float32")};return T.runKernel(ks,e)}var um=k({rsqrt_:dj});function hj(r){let e={x:I(r,"x","selu")};return T.runKernel(Pa,e)}var cm=k({selu_:hj});function gj(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=D(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=Di(c,u,n,o,i,s),g=Cn(d,l,1,"valid",i);return p?D(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var pm=k({separableConv2d_:gj});async function xj(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`),Dt(n,[t],[e])}var dm=k({slice1d_:Cj});function Ij(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`),Dt(n,t,e)}var uh=k({slice2d_:Ij});function vj(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`),Dt(n,t,e)}var hm=k({slice3d_:vj});function Sj(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`),Dt(n,t,e)}var ec=k({slice4d_:Sj});function Nj(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 T.runKernel($s,n,o)}var ou=k({softmax_:Nj});function kj(r){E(r.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Cp,t)}var su=k({fft_:kj});function Tj(r){E(r.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return T.runKernel(Ip,t)}var Za=k({ifft_:Tj});function Ej(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=D(r,[e,t]);n=Za(o)}else{let o=[e,2*(t-1)],s=D(Xa(r),[e,t]),i=D(Kl(r),[e,t]),a=ur(Dt(s,[0,1],[e,t-2]),1),u=R(ur(Dt(i,[0,1],[e,t-2]),1),mt(-1)),l=ne([s,a],1),c=ne([i,u],1),p=D(bn(l,c),[o[0],o[1]]);n=Za(p)}if(n=Xa(n),r.rank===3&&r.shape[0]!==0){let o=n,s=r.shape[0];n=D(n,[s,n.shape[0]/s,n.shape[1]]),o.dispose()}return n}var gm=k({irfft_:Ej});function _j(r,t,e=0){let o={x:I(r,"x","split")},s={numOrSizeSplits:t,axis:e};return T.runKernel(gi,o,s)}var cr=k({split_:_j});function Aj(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=Dt(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=D(bn(o,s),[n,e]),a=su(i),u=Math.floor(e/2)+1,l=Xa(a),c=Kl(a),p=cr(l,[u,e-u],l.shape.length-1),m=cr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,D(bn(p[0],m[0]),f)}var iu=k({rfft_:Aj});function $j(r,t){let e=I(r,"a","squaredDifference"),n=I(t,"b","squaredDifference");[e,n]=Wt(e,n),Pt(e.shape,n.shape);let o={a:e,b:n},s={};return T.runKernel(Ds,o,s)}var xm=k({squaredDifference_:$j});function Dj(r,t){let e=I(r,"x","squeeze","string_or_numeric");return D(e,Xv(e.shape,t).newShape)}var Pn=k({squeeze_:Dj});function Rj(r,t=0){let e=qa(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 T.runKernel(pi,n,o)}var rr=k({stack_:Rj});function Fj(r,t=0){let n={x:I(r,"x","step")},o={alpha:t};return T.runKernel(uo,n,o)}var yo=k({step_:Fj});function Oj(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 T.runKernel(Va,c,p)}var Zx=k({stridedSlice_:Oj});function Pj(r){let e={x:I(r,"x","tan","float32")};return T.runKernel(Fs,e)}var Jx=k({tan_:Pj});function Le(r,t){Xn(r);let e=Mr(r,t);if(e.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return on(r,null,e,t)}function Bs(r,t,e){if(Xn(r),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let n=Mr(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 k_(r,t,e){if(Xn(r),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let n=Mr(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 T_(r,t,e){if(Xn(r),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let n=Mr(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 E_(r,t,e){if(Xn(r),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let n=Mr(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 Lj(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]=T.runKernel(Ga,s,i);return{values:a,indices:u}}var Qx=k({topk_:Lj});function Mj(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]=T.runKernel(Lp,n,o);return{values:s,indices:i}}var ty=k({unique_:zj});function Bj(r,t,e){let n=I(r,"x","unsortedSegmentSum"),o=I(t,"segmentIds","unsortedSegmentSum","int32");E(ea(e),()=>"numSegments must be of dtype int");let s={x:n,segmentIds:o},i={numSegments:e};return T.runKernel(Vl,s,i)}var bm=k({unsortedSegmentSum_:Bj});function Vj(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 T.runKernel(xi,n,o)}var vr=k({unstack_:Vj});function __(r,t){return ah(r,t,"right")}function ey(r,t=!0,e,n){return T.makeVariable(r,t,e,n)}function ry(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=R(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 qj=k({movingAverage_:Hj});function Kj(r,t,e){let n=I(r,"indices","scatterND","int32"),o=I(t,"updates","scatterND");tx(o,n,e);let s={indices:n,updates:o},i={shape:e};return T.runKernel(Oa,s,i)}var jj=k({scatterND_:Kj});function A_(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 Yj(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);A_(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return T.runKernel(Pp,a,u)}var Zj=k({sparseToDense_:Yj});function Jj(r,t){let e=I(t,"indices","gatherND","int32"),o={params:I(r,"x","gatherND","string_or_numeric"),indices:e};return T.runKernel(ya,o)}var Qj=k({gatherND_:Jj});function $_(r,t){if(t==null)return r.shape.slice();if(An(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=$_(o,e),i=1-t,a=pt(Fi(X(Li(s,0,1,"float32",n),i)),i);return R(o,a)}var n0=k({dropout_:t6});function o0(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function ch(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=Yv("bool",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hD_,depthwiseConv2d:()=>R_,matMul:()=>F_});function n6(r,t,e,n,o,s="NHWC",i){let a=r;r.rank===3&&(a=D(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=D(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 T.runKernel(mp,p,m)}var wm=k({conv2DBackpropFilter_:n6});function rc(r,t,e){if(e==null||e==="linear")return r;if(e==="relu")return R(r,yo(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)),D(e,r.shape)}function oc(r,t,e,n){if(t==="linear")return r;if(t==="relu")return Rr(r);if(t==="elu")return Ri(r);if(t==="relu6")return am(r);if(t==="prelu")return ru(r,e);if(t==="leakyrelu")return Zl(r,n);if(t==="sigmoid")return Xr(r);throw new Error(`Unknown fused activation ${t}.`)}var sc=(r,t)=>!(r>0)||t==="linear";function o6({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(T.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 _=Cn(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=D(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(_r(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=Ku(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=I(a,"bias","fused conv2d"),[x]=Wt(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(Qn(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=Qp(F.shape,G,$,e,n),q=wm(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?ln((A,$,F)=>{let P=T.runKernel(wi,C,N);return F([$,A,P]),d&&(P=D(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:w}})(f,m):ln((A,$,F,P)=>{let V=T.runKernel(wi,C,N);return P([$,A,V,F]),d&&(V=D(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var D_=k({fusedConv2d_:o6});function s6(r,t,e,n,o,s=[1,1],i){let a=r;r.rank===3&&(a=D(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=D(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 T.runKernel(gp,l,c)}var oy=k({depthwiseConv2dNativeBackpropFilter_:s6});function i6(r,t,e,n,o,s=[1,1],i){let a=t,u=!1;t.rank===3&&(u=!0,a=D(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=T.runKernel(xp,l,c);return u?D(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var sy=k({depthwiseConv2dNativeBackpropInput_:i6});function a6({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(T.state.gradientDepth,u)===!1){let N=Di(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=D(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(_r(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=Ku(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=I(a,"bias","fused conv2d"),[g]=Wt(g,p),Pt(h.outShape,g.shape));let x;l!=null&&(x=I(l,"prelu weights","fused depthwiseConv2d"));let b=(N,_)=>{E(Qn(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=sy($.shape,V,A,e,n,s,i),W=oy($,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?ln((_,A,$)=>{let F=T.runKernel(Ci,w,C);return $([A,_,F]),d&&(F=D(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):ln((_,A,$,F)=>{let P=T.runKernel(Ci,w,C);return F([A,_,P,$]),d&&(P=D(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m,g)}var R_=k({fusedDepthwiseConv2d_:a6});function l6({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(sc(T.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]=Wt(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=Zt(d),x=Zt(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?D(u,[g,c,m]):D(u,[g,m,c]),N=n?D(l,[x,f,p]):D(l,[x,p,f]),_;o!=null&&(_=I(o,"bias","fused matMul"),[_]=Wt(_,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(D(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?ln((G,W,q)=>{let H=T.runKernel(bi,F,P);return q([G,W,H]),{value:D(H,w),gradFunc:$}})(C,N):ln((G,W,q,H)=>{let j=T.runKernel(bi,F,P);return H([G,W,j,q]),{value:D(j,w),gradFunc:$}})(C,N,_)}var F_=k({fusedMatMul_:l6});function u6(r){return ch(r,.54,.46)}var O_=k({hammingWindow_:u6});function c6(r){return ch(r,.5,.5)}var iy=k({hannWindow_:c6});function p6(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Dt(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 T.runKernel(ma,c,p)}var L_=k({cropAndResize_:f6});function d6(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 T.runKernel(xa,e,{})}var M_=k({flipLeftRight_:d6});function h6(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,$r(t,o)}var z_=k({grayscaleToRGB_:h6});function g6(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 T.runKernel(Ua,s,i)}var B_=k({rotateWithOffset_:g6});function bo(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 x6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=I(r,"boxes","nonMaxSuppression","float32"),i=I(t,"scores","nonMaxSuppression","float32"),a=bo(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return T.runKernel($a,{boxes:s,scores:i},u)}var V_=k({nonMaxSuppression_:x6});function G_(r,t,e){let n=y6(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function y6(r,t,e){return w6(r,t,e||b6)}function b6(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 ly(r,t,e,n,o){return s0(r,t,e,n,o,0)}function uy(r,t,e,n,o,s){return s0(r,t,e,n,o,0,!1,s,!0)}function cy(r,t,e,n,o,s){return s0(r,t,e,n,o,s,!0)}function s0(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(W_);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 _=C6(r,b,p[N]);if(_>=n){C=!0;break}if(g.score=g.score*I6(n,c,_),g.score<=o)break}g.suppressBeginIndex=p.length,C||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&G_(l,g,W_))}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 C6(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 I6(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function W_(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function v6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=I(r,"boxes","nonMaxSuppressionAsync"),i=I(t,"scores","nonMaxSuppressionAsync"),a=bo(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}=ly(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Le(p,"int32")}var U_=v6;function S6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=I(r,"boxes","nonMaxSuppression"),a=I(t,"scores","nonMaxSuppression"),u=bo(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=T.runKernel(Ra,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var H_=k({nonMaxSuppressionWithScore_:S6});async function N6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=I(r,"boxes","nonMaxSuppressionAsync"),a=I(t,"scores","nonMaxSuppressionAsync"),u=bo(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}=cy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Le(m,"int32"),selectedScores:Le(f)}}var q_=N6;function k6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=I(r,"boxes","nonMaxSuppression"),a=I(t,"scores","nonMaxSuppression"),u=bo(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=T.runKernel(Da,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var K_=k({nonMaxSuppressionPadded_:k6});async function T6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=I(r,"boxes","nonMaxSuppressionAsync"),a=I(t,"scores","nonMaxSuppressionAsync"),u=bo(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}=uy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Le(d,"int32"),validOutputs:mt(h,"int32")}}var j_=T6;function E6(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=D(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=T.runKernel(Is,a,u);return i?D(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var py=k({resizeBilinear_:E6});function _6(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=D(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=T.runKernel(Cs,a,u);return i?D(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var my=k({resizeNearestNeighbor_:_6});function A6(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=R(Le([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]=cr(o,[1,1,1],-1);let g=R(c,s),x=R(p,i),b=R(m,a);f=X(X(g,x),b)}else f=r;if(t==="otsu"){let g=hx(J(lm(f),"int32"),wr([]),256);l=$6(g,u)}let d=e?On(f,l):He(f,l);return J(R(d,255),"int32")}function $6(r,t){let e=Le([-1]),n=Le([0]),o=Le([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 T.runKernel(Wa,u,l)}var Y_=k({transform_:D6});function R6(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=D(nu(0,s,1,"int32"),[-1,1]),u=nu(0,i,1,"int32"),l=ct(a,u),c=Dr(On(l,mt(+t,"int32")),Fn(l,mt(-e,"int32"))),p=Ne([s,i],n.dtype);return D(rr(vr(D(n,[-1,s,i])).map(m=>_e(c,m,p))),o)}var Z_=k({bandPart_:R6});function F6(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=cr(r,r.shape[0],0).map(o=>Pn(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 Q_(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=vr(D(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=Q_(u,t);o.push(l),s.push(c)});let i=D(rr(o,0),r.shape),a=D(rr(s,0),r.shape);return[i,a]}}function Q_(r,t=!1){return T.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=Bs([[1]],[1,1]),a=sn(i),u=e>=n?n:e;for(let l=0;l{let f=Dt(s,[l,l],[e-l,1]),d=Ya(f),h=Dt(s,[l,l],[1,1]),g=_e(He(h,0),Bs([[-1]]),Bs([[1]])),x=ct(h,R(g,d)),b=pt(f,x);b.shape[0]===1?a=sn(i):a=ne([i,Dt(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ut(pt(Lt(g,x),d)),C=Dt(s,[l,0],[e-l,n]),N=R(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([Dt(s,[0,0],[l,n]),F],0)}let A=Ot(N),$=Dt(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([Dt(o,[0,0],[e,l]),F],1)}return[a,s,o]}),St([c,p,m])}return!t&&e>n&&(o=Dt(o,[0,0],[e,n]),s=Dt(s,[0,0],[n,n])),[o,s]})}var tA=k({qr_:O6});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 P6(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:R(n,o);if(e===Xe.NONE)return s;if(e===Xe.SUM)return ft(s);if(e===Xe.MEAN){if(o==null)return Se(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=R(o,lr(n.shape)),a=J(ft(zs(i,mt(0))),"float32");return pt(ft(s),a)}}throw Error(`Unknown reduction: ${e}`)}var Vr=k({computeWeightedLoss_:P6});function L6(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 Vr(a,i,n)}var eA=k({absoluteDifference_:L6});function M6(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(R(s,i),e,!0));return Vr(l,a,o)}var rA=k({cosineDistance_:M6});function z6(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(R(mt(2),o),a);let u=Rr(ct(a,R(o,s)));return Vr(u,i,n)}var nA=k({hingeLoss_:z6});function B6(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=Pi(l,u),p=ct(l,c),m=X(R(mt(.5),Mt(c)),R(u,p));return Vr(m,a,o)}var oA=k({huberLoss_:B6});function V6(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=Ut(R(s,Ir(X(i,l)))),p=R(ct(u,s),Ir(X(ct(u,i),l))),m=ct(c,p);return Vr(m,a,o)}var sA=k({logLoss_:V6});function G6(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=xm(o,s);return Vr(a,i,n)}var iA=k({meanSquaredError_:G6});function W6(r,t){let e=I(r,"labels","sigmoidCrossEntropyWithLogits"),n=I(t,"logits","sigmoidCrossEntropyWithLogits");$e(e.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");let o=Rr(n),s=R(n,e),i=Jl(er(Ut(Ee(n))));return X(ct(o,s),i)}function U6(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(R(s,ct(c,l)),R(p,l))}let u=W6(s,i);return Vr(u,a,o)}var aA=k({sigmoidCrossEntropy_:U6});function H6(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 ln((o,s,i)=>{let u=sm(s,[e],!0),l=ct(J(s,"float32"),u);i([o,l]);let c=Ut(R(l,o));return{value:ft(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=xo(f.shape,[e]);return[R(D(f,x),ct(J(h,"float32"),er(g))),R(D(f,x),ct(er(g),J(h,"float32")))]}}})(r,t)}function q6(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(R(s,ct(c,l)),pt(l,p))}let u=H6(s,i);return Vr(u,a,o)}var lA=k({softmaxCrossEntropy_:q6});function K6(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=T.runKernel(Fl,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var uA=k({sparseFillEmptyRows_:K6});function j6(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=T.runKernel(Ba,i);return{outputIndices:a[0],outputShape:a[1]}}var cA=k({sparseReshape_:j6});function X6(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 _.runKernel(Pl,i)}var AA=N({sparseSegmentMean_:T5});function N5(r,t,e){let n=v(r,"data","sparseSegmentSum"),o=v(t,"indices","sparseSegmentSum","int32"),s=v(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 + ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return T.runKernel(Ol,i)}var pA=k({sparseSegmentMean_:X6});function Y6(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 _.runKernel(Ll,i)}var $A=N({sparseSegmentSum_:N5});function k5(r,t,e,n,o,s,i,a){let u=v(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=v(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=_.runKernel(zl,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var DA=N({stringNGrams_:k5});function _5(r,t,e=!0){let n=v(r,"input","stringSplit","string"),o=v(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=_.runKernel(Bl,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var RA=N({stringSplit_:_5});function E5(r,t){let e=v(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 _.runKernel(Vl,o,n)}var FA=N({stringToHashBucketFast_:E5});var A5={fft:iu,ifft:Qa,rfft:au,irfft:Am},$5={hammingWindow:tA,hannWindow:Ty,frame:Ny,stft:eA},uu={flipLeftRight:nA,grayscaleToRGB:oA,resizeNearestNeighbor:$y,resizeBilinear:Ay,rotateWithOffset:sA,cropAndResize:rA,nonMaxSuppression:iA,nonMaxSuppressionAsync:uA,nonMaxSuppressionWithScore:cA,nonMaxSuppressionWithScoreAsync:pA,nonMaxSuppressionPadded:mA,nonMaxSuppressionPaddedAsync:fA,threshold:dA,transform:hA},vS={bandPart:gA,gramSchmidt:xA,qr:bA},D5={absoluteDifference:wA,computeWeightedLoss:zr,cosineDistance:CA,hingeLoss:vA,huberLoss:IA,logLoss:SA,meanSquaredError:TA,sigmoidCrossEntropy:NA,softmaxCrossEntropy:kA},R5={sparseFillEmptyRows:_A,sparseReshape:EA,sparseSegmentMean:AA,sparseSegmentSum:$A},F5={stringNGrams:DA,stringSplit:RA,stringToHashBucketFast:FA};var Br=class extends bh{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 _t(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 ty(t,e)}dispose(){this.iterations_!=null&&_t(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(Br,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var cu=class extends Br{constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=_.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=_.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:G(()=>St(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:G(()=>St(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;G(()=>{let c=J(O(u,this.rho),O(Ht(a),1-this.rho)),p=O(ct(Ne(J(l,this.epsilon)),Ne(J(u,this.epsilon))),a),m=J(O(l,this.rho),O(Ht(p),1-this.rho));u.assign(c),l.assign(m);let f=J(O(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(_t(this.accumulatedGrads.map(t=>t.variable)),_t(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";In(cu);var pu=class extends Br{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=_.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:G(()=>Vi(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;G(()=>{let u=J(a,Ht(i));a.assign(u);let l=J(O(ct(i,Ne(J(u,_.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&_t(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";In(pu);var mu=class extends Br{constructor(t,e,n,o=null){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],G(()=>{this.accBeta1=mt(e).variable(),this.accBeta2=mt(n).variable()}),o==null&&(this.epsilon=_.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);G(()=>{let n=ut(1,this.accBeta1),o=ut(1,this.accBeta2);e.forEach((s,i)=>{let a=_.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:G(()=>St(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:G(()=>St(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=J(O(c,this.beta1),O(l,1-this.beta1)),f=J(O(p,this.beta2),O(Ht(l),1-this.beta2)),d=ct(m,n),h=ct(f,o);c.assign(m),p.assign(f);let g=J(O(ct(d,J(Ne(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign(O(this.accBeta1,this.beta1)),this.accBeta2.assign(O(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&_t(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&_t(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),G(()=>{this.accBeta1.assign(ln(this.beta1,this.iterations_+1)),this.accBeta2.assign(ln(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";In(mu);var fu=class extends Br{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=[],G(()=>{this.iteration=mt(0).variable(),this.accBeta1=mt(e).variable()}),o==null&&(this.epsilon=_.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);G(()=>{let n=ut(1,this.accBeta1),o=ct(-this.learningRate,J(O(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=_.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:St(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:St(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=J(O(c,this.beta1),O(l,1-this.beta1)),f=O(p,this.beta2),d=$e(l),h=Tn(f,d);c.assign(m),p.assign(h);let g=J(O(ct(o,n),ct(m,J(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(J(this.iteration,1)),this.accBeta1.assign(O(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&_t(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&_t(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";In(fu);var qi=class extends Br{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=_.registeredVariables[n];G(()=>{let a=J(O(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=Oe(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)}};qi.className="SGD";In(qi);var du=class extends qi{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=_.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:G(()=>St(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&G(()=>{let u,l=J(O(this.m,i),a);this.useNesterov?u=J(O(this.c,J(a,O(l,this.m))),s):u=J(O(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&_t(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";In(du);var hu=class extends Br{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=_.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=_.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:G(()=>St(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:G(()=>St(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:G(()=>St(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;G(()=>{let c=J(O(u,this.decay),O(Ht(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=J(O(p,this.decay),O(a,1-this.decay)),f=ct(O(a,this.learningRate),Ne(ut(c,J(Ht(m),this.epsilon)))),d=J(O(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=ut(s,d);s.assign(h)}else{let p=J(O(u,this.decay),O(Ht(a),1-this.decay)),m=J(O(l,this.momentum),ct(O(a,this.learningRate),Ne(J(p,this.epsilon))));u.assign(p),l.assign(m);let f=ut(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&_t(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&_t(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&_t(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";In(hu);var js=class{static sgd(t){return new qi(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 fc={sgd:js.sgd,momentum:js.momentum,adadelta:js.adadelta,adagrad:js.adagrad,rmsprop:js.rmsprop,adamax:js.adamax,adam:js.adam};var O5=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:r=>r())();function Th(){return new Promise(r=>O5(()=>r()))}var S={};jt(S,{ERF_A1:()=>Y5,ERF_A2:()=>Z5,ERF_A3:()=>J5,ERF_A4:()=>Q5,ERF_A5:()=>tX,ERF_P:()=>X5,PARALLELIZE_THRESHOLD:()=>Dy,RowPartitionType:()=>Ki,SELU_SCALE:()=>SS,SELU_SCALEALPHA:()=>IS,applyActivation:()=>pc,assertAndGetBroadcastShape:()=>zt,assertAxesAreInnerMostDims:()=>cK,assertParamsConsistent:()=>P5,assignToTypedArray:()=>iX,axesAreInnerMostDims:()=>uS,calculateShapes:()=>L_,checkEinsumDimSizes:()=>mX,checkPadOnDimRoundingMode:()=>Te,combineLocations:()=>aE,combineRaggedTensorToTensorShapes:()=>M5,complexWithEvenIndex:()=>nX,complexWithOddIndex:()=>oX,computeConv2DInfo:()=>tc,computeConv3DInfo:()=>Q_,computeDefaultPad:()=>lS,computeDilation2DInfo:()=>mq,computeOptimalWindowSize:()=>G5,computeOutAndReduceShapes:()=>cS,computeOutShape:()=>L5,computePool2DInfo:()=>aS,computePool3DInfo:()=>fq,convertConv2DDataFormat:()=>tE,decodeEinsumEquation:()=>cX,eitherStridesOrDilationsAreOne:()=>Er,expandShapeToKeepDim:()=>xo,exponent:()=>lX,exponents:()=>aX,fromStringArrayToUint8:()=>RX,fromUint8ToStringArray:()=>DX,getAxesPermutation:()=>pS,getBroadcastDims:()=>F_,getComplexWithIndex:()=>sX,getEinsumComputePath:()=>fX,getEinsumPermutation:()=>pX,getFusedBiasGradient:()=>cc,getFusedDyActivation:()=>uc,getImageCenter:()=>W5,getInnerMostAxes:()=>pK,getPermuted:()=>H5,getRaggedRank:()=>B5,getReductionAxes:()=>ye,getReshaped:()=>U5,getReshapedPermuted:()=>q5,getRowPartitionTypesHelper:()=>z5,getSliceBeginCoords:()=>K5,getSliceSize:()=>j5,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>xX,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>yX,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>bX,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>vX,getSparseReshapeInputOutputMismatchErrorMessage:()=>SX,getSparseReshapeInputOutputMultipleErrorMessage:()=>IX,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>wX,getSparseReshapeNegativeOutputDimErrorMessage:()=>CX,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>_X,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>TX,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>NX,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>kX,getUndoAxesPermutation:()=>wh,isIdentityPermutation:()=>dX,log:()=>I4,mergeRealAndImagArrays:()=>eX,prepareAndValidate:()=>P_,prepareSplitSize:()=>gX,segment_util:()=>NS,shouldFuse:()=>mc,slice_util:()=>Be,splitRealAndImagArrays:()=>rX,tupleValuesAreOne:()=>Jn,upcastType:()=>ir,validateDefaultValueShape:()=>V5,validateInput:()=>bx,validateUpdateShape:()=>eS,warn:()=>Ei});function P5(r,t){let e=r[0].length;r.forEach((o,s)=>{A(o.length===e,()=>`Error in concat${e}D: rank of tensors[${s}] must be the same as the rank of the rest (${e})`)}),A(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 L5(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 z5(r){let t={FIRST_DIM_SIZE:Ki.FIRST_DIM_SIZE,VALUE_ROWIDS:Ki.VALUE_ROWIDS,ROW_LENGTHS:Ki.ROW_LENGTHS,ROW_SPLITS:Ki.ROW_SPLITS,ROW_LIMITS:Ki.ROW_LIMITS,ROW_STARTS:Ki.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function B5(r){return r.length===0?0:r[0]===Ki.FIRST_DIM_SIZE?r.length-1:r.length}function V5(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 Dy=30;function G5(r){return r<=Dy?r:wp(r,Math.floor(Math.sqrt(r)))}function W5(r,t,e){let n=e*(typeof r=="number"?r:r[0]),o=t*(typeof r=="number"?r:r[1]);return[n,o]}function U5(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 q5(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s/g,OA=",",PA="...";function cX(r,t){r=r.replace(/\s/g,"");let e=(r.length-r.replace(uX,"").length)/TS.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 ("${TS}").`);let[n,o]=r.split(TS);A(n.indexOf(PA)===-1,()=>`The ellipsis notation ("${PA}") is not supported yet.`);let s=n.split(OA),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 mX(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 fX(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 hX(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);A(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}A(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 xX(r){return`Received SparseTensor with denseShape[0] = 0 but - indices.shape[0] = ${r}`}function yX(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function bX(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function wX(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function CX(r,t){return`size ${r} must be non-negative, not ${t}`}function vX(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function IX(r,t){let e=Qt(r),n=Qt(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 SX(r,t){let e=Qt(r),n=Qt(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function TX(){return"segment ids must be >= 0"}function NX(){return"segment ids are not increasing"}function kX(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function _X(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var NS={};jt(NS,{collectGatherOpShapeInfo:()=>$X,computeOutShape:()=>AX,segOpComputeOptimalWindowSize:()=>EX});function EX(r,t){let e=!1,n;for(r<=Dy?(n=r,e=!0):n=wp(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=wp(r,n+1);return n}function AX(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(erm(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function RX(r){return r.map(t=>Ul(t))}var Vr={};jt(Vr,{nonMaxSuppressionV3Impl:()=>ky,nonMaxSuppressionV4Impl:()=>_y,nonMaxSuppressionV5Impl:()=>Ey,whereImpl:()=>Cy});var Ry={kernelName:pi,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(r,yo(tt(e,"float32"),-1))}}};var LA={kernelName:oa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Ht(tt(e,"float32")),o=Ne(ut(mt(1),n));return Yt(ct(r,o))}}}};var MA={kernelName:sa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Ne(ut(Ht(tt(e,"float32")),1));return ct(r,n)}}}};var zA={kernelName:jn,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=zt(e.shape,n.shape);return{a:()=>{let a=r,u=ye(e.shape,o);return u.length>0&&(a=ft(a,u)),F(a,e.shape)},b:()=>{let a=r,u=ye(n.shape,o);return u.length>0&&(a=ft(a,u)),F(a,n.shape)}}}};var BA={kernelName:jo,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var VA={kernelName:Xo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>St(e)}}};var GA={kernelName:Nl,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>St(e)}}};var WA={kernelName:la,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Ne(ut(mt(1),Ht(tt(e,"float32")))))}}};var UA={kernelName:ua,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Ne(J(mt(1),Ht(tt(e,"float32"))));return ct(r,n)}}}};var HA={kernelName:ma,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=zt(e.shape,n.shape);return{a:()=>{let a=J(Ht(e),Ht(n)),u=O(r,ct(n,a)),l=ye(e.shape,o);return l.length>0&&(u=ft(u,l)),F(u,e.shape)},b:()=>{let a=J(Ht(e),Ht(n)),u=Yt(O(r,ct(e,a))),l=ye(n.shape,o);return l.length>0&&(u=ft(u,l)),F(u,n.shape)}}}};var qA={kernelName:ca,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,J(Ht(tt(e,"float32")),1))}}};var KA={kernelName:pa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,ut(mt(1),Ht(tt(e,"float32"))))}}};function FX(r,t,e,n,o,s){let i=v(r,"dy","avgPool3dGrad"),a=v(t,"input","avgPool3dGrad"),u=i,l=a,c=!1;a.rank===4&&(c=!0,u=F(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),l=F(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),A(u.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),A(l.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${l.rank}.`),Te("avgPool3dGrad",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=_.runKernel(Ip,p,m);return c?F(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var jA=N({avgPool3dGrad_:FX});var XA={kernelName:kl,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>jA(r,n,o,s,i,a)}}};function OX(r,t,e,n,o){let s=v(r,"dy","avgPoolGrad"),i=v(t,"input","avgPoolGrad");A(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=F(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=F(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(u.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${u.rank}.`),A(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=_.runKernel(vp,c,p);return l?F(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var YA=N({avgPoolGrad_:OX});var ZA={kernelName:Yo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>YA(r,n,o,s,i)}}};var JA={kernelName:Zo,inputsToSave:["a","b"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Gt(r,o,!1,!0),b:()=>Gt(n,r,!0,!1)}:!s&&i?{a:()=>Gt(r,o,!1,!1),b:()=>Gt(r,n,!0,!1)}:s&&!i?{a:()=>Gt(o,r,!1,!0),b:()=>Gt(n,r,!1,!1)}:{a:()=>Gt(o,r,!0,!0),b:()=>Gt(r,n,!0,!0)}}};var QA={kernelName:mi,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>ru(r,n,o)}}};var t2={kernelName:N1,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 e2={kernelName:ao,gradFunc:r=>({x:()=>r.clone()})};var r2={kernelName:Jo,gradFunc:r=>({x:()=>St(r)})};var n2={kernelName:lo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>De(Dr(Pn(n,o),Ln(n,s)),r,St(r))}}};var o2={kernelName:_l,inputsToSave:["x"],gradFunc:Ry.gradFunc};var s2={kernelName:fi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=ur(o,t[0].shape)[0],i=n.map(u=>u[s]);return mr(r,i,s).map(u=>()=>u)}};var i2={kernelName:Qo,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return A(Jn(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>fm(n.shape,r,o,i,a,u),filter:()=>Fm(n,r,o.shape,i,a,u)}}};var a2={kernelName:ts,inputsToSave:["dy","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>Sn(r,o,s,i,a,1,u),filter:()=>Fm(r,n,o.shape,s,i,a,u)}}};function PX(r,t,e,n,o){let s=r;r.rank===4&&(s=F(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let i=t;i.rank===4&&(i=F(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(e.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${e}.`),A(s.shape[4]===e[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${e[3]}.`),A(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 _.runKernel(_p,a,u)}var l2=N({conv3DBackpropFilter_:PX});var u2={kernelName:El,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;A(Jn(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:()=>Vx(i.shape,r,a,o,s),filter:()=>l2(i,r,a.shape,o,s)}}};var c2={kernelName:es,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(Yt(Nm(tt(e,"float32"))),r)}}};var p2={kernelName:rs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(km(tt(e,"float32")),r)}}};var m2={kernelName:ns,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=pS([o],n.rank),u=gm(r,o,s,!i);return a!=null&&(u=Mt(u,a)),u}}}};var f2={kernelName:os,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;A(Jn(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);let[u,l]=t;return A(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${l.rank}.`),A(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]}.`),A(Er(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),Te("depthwiseConv2d",s,i),{x:()=>Sy(u.shape,r,l,o,s,a,i),filter:()=>Iy(u,r,l.shape,o,s,a,i)}}};var d2={kernelName:Al,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:()=>_.runKernel(oh,s,e),filter:()=>_.runKernel(sh,i,e)}}};var h2={kernelName:is,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>_.runKernel(Op,n)}}};var g2={kernelName:ga,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=O(or(Yt(Ht(e))),2/Math.sqrt(Math.PI));return{x:()=>O(r,n)}}};var x2={kernelName:as,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(r,e)}}};var y2={kernelName:di,inputsToSave:["input"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>F(r,e.shape)}}};var b2={kernelName:ya,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(r,or(e))}}};var w2={kernelName:ls,gradFunc:r=>({x:()=>St(r)})};var C2={kernelName:us,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=zt(e.shape,n.shape);return{a:()=>{let a=ct(r,tt(n,"float32")),u=ye(e.shape,o);return u.length>0?F(ft(a,u),e.shape):a},b:()=>{let a=O(r,tt(e,"float32")),u=ye(n.shape,o);u.length>0&&(a=F(ft(a,u),n.shape));let l=Ht(n);return Yt(ct(a,tt(l,"float32")))}}}};var v2={kernelName:cs,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=ye(s.shape,o.shape),c=[];if(s.rank===1){for(let C=0;Cs.rank===1?F(O(O(r,$r(F(f,[1,1,1,s.shape[0]]),c)),u),o.shape):F(O(O(r,f),u),o.shape),mean:()=>{let C=O(O(f,mt(-1)),m);return s.rank===1&&(C=ft(C,l)),F(C,s.shape)},variance:()=>{let C=O(O(d,p),m);return s.rank===1&&(C=ft(C,l)),F(C,s.shape)},scale:()=>{let C=O(p,f),T=O(r,C);return s.rank===1&&(T=ft(T,l)),F(T,s.shape)},offset:()=>{let C=r;return s.rank===1&&(C=ft(C,l)),F(C,s.shape)}}}};var T2={kernelName:hi,inputsToSave:["x","indices"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s}=e,i=ur(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=I2(0,p),h=I2(p+1,p+1+f),g=S2([c,[l],m]),x=F(r,g),b=F(o,[l]),w=S2([[p],d,h]),C=Mt(x,w),T=Rm(C,b,n.shape[i]),E=wh(w);return T=Mt(T,E),T},indices:()=>o}}};function I2(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>St(e),b:()=>St(n)}}};var k2={kernelName:uo,gradFunc:r=>({x:()=>tt(r,"float32")})};var _2={kernelName:va,gradFunc:r=>({x:()=>St(r)})};var E2={kernelName:Ia,gradFunc:r=>({x:()=>St(r)})};var A2={kernelName:Sa,gradFunc:r=>({x:()=>St(r)})};var $2={kernelName:ms,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Xe(n,0);return{x:()=>De(s,r,O(r,o))}}};var D2={kernelName:ka,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,J(e,1))}}};var R2={kernelName:fs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,tt(e,"float32"))}}};var F2={kernelName:_1,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=or(n);return ut(r,O(ft(r,o,!0),i))}}}};function LX(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 _.runKernel(Bp,a,u)}var O2=N({localResponseNormalizationBackprop_:LX});var P2={kernelName:Dl,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>O2(n,o,r,s,i,a,u)}}};function Fy(r,t,e,n){return t.rankO(r,tt(Ar(e,t),r.dtype))}}var kS={kernelName:ds,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=ur(o,s.shape),u=Fy(r,i,s,a);return{x:()=>u.x()}}};var L2={kernelName:hs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>O(r,tt(Pn(e,n),"float32")),b:()=>O(r,tt(xm(e,n),"float32"))}}};function MX(r,t,e,n,o,s,i){let a=v(r,"dy","maxPool3dGrad"),u=v(t,"input","maxPool3dGrad"),l=v(e,"output","maxPool3dGrad"),c=a,p=u,m=l,f=!1;u.rank===4&&(f=!0,c=F(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=F(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),m=F(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]])),A(c.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`),A(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),A(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),Te("maxPool3dGrad",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=_.runKernel(Gp,d,h);return f?F(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var M2=N({maxPool3dGrad_:MX});var z2={kernelName:Rl,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>M2(r,n,o,s,i,a,u)}}};function zX(r,t,e,n,o,s,i){let a=v(r,"dy","maxPoolGrad"),u=v(t,"input","maxPoolGrad"),l=v(e,"output","maxPoolGrad");A(u.rank===a.rank,()=>`Rank of input (${u.rank}) does not match rank of dy (${a.rank})`),A(a.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${a.rank}.`),A(u.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${u.rank}.`),Te("maxPoolGrad",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return _.runKernel(Vp,c,p)}var B2=N({maxPoolGrad_:zX});var V2={kernelName:gs,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>B2(r,n,o,s,i,a)}}};var G2={kernelName:xs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=ur(o,n.shape),a=cS(n.shape,s)[1],u=Qt(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=F(r,c);return ct(O(p,cr(n.shape,"float32")),u)}}}};var W2={kernelName:ys,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=ur(o,s.shape),u=Fy(r,i,s,a);return{x:()=>u.x()}}};var U2={kernelName:bs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>O(r,tt(Ln(e,n),"float32")),b:()=>O(r,tt(Xe(e,n),"float32"))}}};var H2={kernelName:ws,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Ot(r,s,n.shape)}}};var q2={kernelName:$a,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=zt(e.shape,n.shape);return{a:()=>{let a=ye(e.shape,o);return a.length>0?F(ft(r,a),e.shape):r},b:()=>{let a=O(r,Yt(Gi(ct(e,n)))),u=ye(n.shape,o);return u.length>0?F(ft(a,u),n.shape):a}}}};var K2={kernelName:Cs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=zt(e.shape,n.shape);return{a:()=>{let a=O(r,tt(n,"float32")),u=ye(e.shape,o);return u.length>0?F(ft(a,u),e.shape):a},b:()=>{let a=O(r,tt(e,"float32")),u=ye(n.shape,o);return u.length>0?F(ft(a,u),n.shape):a}}}};var j2={kernelName:gi,gradFunc:r=>({x:()=>Yt(r)})};var X2={kernelName:vs,inputsToSave:["indices"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>_e(e.shape,"float32")}}};var Y2={kernelName:xi,gradFunc:r=>({x:()=>St(r)})};var Z2={kernelName:yi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return Tr(r,n).map(s=>()=>s)}};var _S={kernelName:Is,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Ot(r,s,n.shape)}}};var J2={kernelName:Ss,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=zt(s.shape,i.shape);return{a:()=>{let c=tt(i,"float32"),p=O(r,O(c,ln(s,ut(c,mt(1))))),m=ye(s.shape,a);return m.length>0&&(p=ft(p,m)),F(p,s.shape)},b:()=>{let c=Xe(s,0),p=De(c,Sr(s),St(s)),m=O(r,O(o,p)),f=ye(i.shape,a);return f.length>0&&(m=ft(m,f)),F(m,i.shape)}}}};var Q2={kernelName:Ts,inputsToSave:["x","alpha"],gradFunc:(r,t)=>{let[e,n]=t,o=Xe(e,0);return{x:()=>De(o,r,O(r,n)),alpha:()=>{let s=De(o,St(r),O(r,e)),i=ye(n.shape,r.shape);return i.length>0&&(s=ft(s,i)),F(s,n.shape)}}}};function BX(r,t,e){let n=r.shape.slice();n[e]=1;let o=F(t,n),s=ec(r,e,!0,!1),i=ec(r,e,!0,!0),a=O(s,i);return O(o,a)}function VX(r,t,e){let n=r.shape.length,o=n-e.length,s=S.getAxesPermutation(e,n),i=r;s!=null&&(i=Mt(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=BX(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=S.getUndoAxesPermutation(s);p=Mt(p,m)}return p}var t$={kernelName:Ns,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:()=>VX(n,r,s)}}};var e$={kernelName:ss,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=zt(e.shape,n.shape);return{a:()=>{let a=ct(r,tt(n,"float32")),u=ye(e.shape,o);return u.length>0?F(ft(a,u),e.shape):a},b:()=>{let a=O(r,tt(e,"float32")),u=ye(n.shape,o);u.length>0&&(a=F(ft(a,u),n.shape));let l=Ht(n);return Yt(ct(a,tt(l,"float32")))}}}};var r$={kernelName:Pa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Yt(Ht(e)))}}};var n$={kernelName:As,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=O(Ln(e,6),yo(e));return{x:()=>O(r,tt(n,"float32"))}}};var o$={kernelName:ks,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(r,tt(yo(e),"float32"))}}};var s$={kernelName:bi,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>F(r,e.shape)}}};var i$={kernelName:Es,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>_.runKernel(jp,o,e)}}};var a$={kernelName:_s,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>_.runKernel(Kp,o,e)}}};var l$={kernelName:$s,gradFunc:(r,t,e)=>{let{dims:n}=e,o=ur(n,r.shape);return{x:()=>pr(r,o)}}};var u$={kernelName:Ds,gradFunc:r=>({x:()=>St(r)})};var c$={kernelName:Rs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Yt(ct(r,O(ln(e,1.5),2)))}}};var p$={kernelName:wi,inputsToSave:["condition"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>tt(St(e),"float32"),t:()=>O(r,tt(e,r.dtype)),e:()=>O(r,tt(tu(e),r.dtype))}}};var m$={kernelName:Ma,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Xe(e,mt(0)),o=mt(IS),s=mt(SS),i=O(r,s),a=O(O(r,o),or(tt(e,"float32")));return De(n,i,a)}}}};var f$={kernelName:Os,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(r,O(e,ut(mt(1),e)))}}};var d$={kernelName:Ba,gradFunc:r=>({x:()=>St(r)})};var h$={kernelName:Fs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(Zl(tt(e,"float32")),r)}}};var g$={kernelName:za,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(hm(tt(e,"float32")),r)}}};var x$={kernelName:Ci,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=nS(n,o,s),l=[];for(let c=0;ccn(r,l)}}};var y$={kernelName:Ms,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=O(r,n);return{logits:()=>ut(i,O(ft(i,[o],s),n))}}};var b$={kernelName:Va,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(r,Kr(e))}}};var ES={kernelName:vi,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>Yl(r,n,o)}}};var AS={kernelName:Ii,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>se(r,n)}}};var w$={kernelName:Ps,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,O(Ne(tt(e,"float32")),2))}}};var C$={kernelName:Ml,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(r,O(tt(e,"float32"),2))}}};var v$={kernelName:zs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=mt(2);return{a:()=>O(r,O(o,ut(e,n))),b:()=>O(r,O(o,ut(n,e)))}}};var I$={kernelName:co,gradFunc:r=>({x:()=>St(r)})};var S$={kernelName:Bs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=zt(e.shape,n.shape);return{a:()=>{let a=r,u=ye(e.shape,o);return u.length>0&&(a=ft(a,u)),F(a,e.shape)},b:()=>{let a=r,u=ye(n.shape,o);return u.length>0&&(a=ft(a,u)),F(Yt(a),n.shape)}}}};var T$={kernelName:Ls,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;ur(s,n.shape).forEach(l=>{o[l]=1});let a=F(r,o),u=O(a,cr(n.shape,"float32"));return{x:()=>u}}};var N$={kernelName:Vs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>ct(r,Ht(Zl(e)))}}};var k$={kernelName:Gs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>O(ut(mt(1),Ht(e)),r)}}};var _$={kernelName:Xn,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=St(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=wh(o);return{x:()=>Mt(r,s)}}};var A$={kernelName:Si,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>sr(r,o)}}};var $$={kernelName:Gl,inputsToSave:["segmentIds"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>GX(r,e)}}};function GX(r,t){let e=Tn(t,St(t)),n=Wi(r,e),o=Pn(t,mt(0,"int32")),s=n.rank-o.rank;for(let a=0;a({x:()=>St(r)})};var WX=[Ry,LA,MA,zA,BA,VA,GA,WA,UA,HA,qA,KA,XA,ZA,JA,QA,t2,e2,r2,n2,o2,s2,a2,i2,u2,c2,p2,m2,f2,d2,e$,h2,g2,x2,y2,b2,C2,w2,v2,T2,N2,k2,_2,E2,A2,$2,D2,R2,F2,P2,kS,kS,L2,z2,V2,G2,W2,U2,H2,q2,K2,j2,X2,Y2,Z2,_S,_S,J2,Q2,t$,r$,n$,o$,s$,i$,a$,l$,u$,c$,p$,m$,f$,d$,h$,g$,x$,y$,b$,ES,ES,AS,AS,w$,v$,C$,I$,S$,T$,N$,k$,_$,E$,A$,$$,D$];for(let r of WX)A1(r);L().prototype.abs=function(){return this.throwIfDisposed(),$e(this)};L().prototype.acos=function(){return this.throwIfDisposed(),Cx(this)};L().prototype.acosh=function(){return this.throwIfDisposed(),vx(this)};L().prototype.add=function(r){return this.throwIfDisposed(),J(this,r)};L().prototype.all=function(r,t){return this.throwIfDisposed(),cm(this,r,t)};L().prototype.any=function(r,t){return this.throwIfDisposed(),Ju(this,r,t)};L().prototype.argMax=function(r){return this.throwIfDisposed(),Oi(this,r)};L().prototype.argMin=function(r){return this.throwIfDisposed(),Ix(this,r)};L().prototype.asScalar=function(){return this.throwIfDisposed(),A(this.size===1,()=>"The array must have only 1 element."),F(this,[])};L().prototype.asType=function(r){return this.throwIfDisposed(),tt(this,r)};L().prototype.as1D=function(){return this.throwIfDisposed(),F(this,[this.size])};L().prototype.as2D=function(r,t){return this.throwIfDisposed(),F(this,[r,t])};L().prototype.as3D=function(r,t,e){return this.throwIfDisposed(),F(this,[r,t,e])};L().prototype.as4D=function(r,t,e,n){return this.throwIfDisposed(),F(this,[r,t,e,n])};L().prototype.as5D=function(r,t,e,n,o){return this.throwIfDisposed(),F(this,[r,t,e,n,o])};L().prototype.asin=function(){return this.throwIfDisposed(),Sx(this)};L().prototype.asinh=function(){return this.throwIfDisposed(),Tx(this)};L().prototype.atan=function(){return this.throwIfDisposed(),Nx(this)};L().prototype.atan2=function(r){return this.throwIfDisposed(),kx(this,r)};L().prototype.atanh=function(){return this.throwIfDisposed(),_x(this)};L().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),Xl(this,r,t,e,n)};L().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),Yl(this,r,t)};L().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),Li(this,r,t,e,n,o)};L().prototype.broadcastTo=function(r){return this.throwIfDisposed(),Mi(this,r)};L().prototype.cast=function(r){return this.throwIfDisposed(),tt(this,r)};L().prototype.ceil=function(){return this.throwIfDisposed(),Ox(this)};L().prototype.clipByValue=function(r,t){return this.throwIfDisposed(),Ir(this,r,t)};L().prototype.concat=function(r,t){return this.throwIfDisposed(),r instanceof Lt&&(r=[r]),se([this,...r],t)};L().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),mm(this,r,t,e,n,o,s)};L().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),dm(this,r,t,e,n,o)};L().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Sn(this,r,t,e,n,o,s)};L().prototype.cos=function(){return this.throwIfDisposed(),Zl(this)};L().prototype.cosh=function(){return this.throwIfDisposed(),hm(this)};L().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),ec(this,r,t,e)};L().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),gm(this,r,t,e)};L().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),Wx(this,r,t)};L().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),zi(this,r,t,e,n,o,s)};L().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Ux(this,r,t,e,n,o)};L().prototype.divNoNan=function(r){return this.throwIfDisposed(),Hx(this,r)};L().prototype.div=function(r){return this.throwIfDisposed(),ct(this,r)};L().prototype.dot=function(r){return this.throwIfDisposed(),qx(this,r)};L().prototype.elu=function(){return this.throwIfDisposed(),Bi(this)};L().prototype.equal=function(r){return this.throwIfDisposed(),Ar(this,r)};L().prototype.erf=function(){return this.throwIfDisposed(),Kx(this)};L().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),jx(this,r,t)};L().prototype.exp=function(){return this.throwIfDisposed(),or(this)};L().prototype.expandDims=function(r){return this.throwIfDisposed(),yr(this,r)};L().prototype.expm1=function(){return this.throwIfDisposed(),Xx(this)};L().prototype.fft=function(){return this.throwIfDisposed(),iu(this)};L().prototype.flatten=function(){return this.throwIfDisposed(),F(this,[this.size])};L().prototype.floor=function(){return this.throwIfDisposed(),Gi(this)};L().prototype.floorDiv=function(r){return this.throwIfDisposed(),um(this,r)};L().prototype.gather=function(r,t){return this.throwIfDisposed(),Wi(this,r,t)};L().prototype.greaterEqual=function(r){return this.throwIfDisposed(),Pn(this,r)};L().prototype.greater=function(r){return this.throwIfDisposed(),Xe(this,r)};L().prototype.ifft=function(){return this.throwIfDisposed(),Qa(this)};L().prototype.irfft=function(){return this.throwIfDisposed(),Am(this)};L().prototype.isFinite=function(){return this.throwIfDisposed(),Yx(this)};L().prototype.isInf=function(){return this.throwIfDisposed(),Zx(this)};L().prototype.isNaN=function(){return this.throwIfDisposed(),Jx(this)};L().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Jl(this,r)};L().prototype.lessEqual=function(r){return this.throwIfDisposed(),Ln(this,r)};L().prototype.less=function(r){return this.throwIfDisposed(),xm(this,r)};L().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),Qx(this,r,t,e,n)};L().prototype.logSigmoid=function(){return this.throwIfDisposed(),ry(this)};L().prototype.logSoftmax=function(r){return this.throwIfDisposed(),ym(this,r)};L().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),bm(this,r,t)};L().prototype.log=function(){return this.throwIfDisposed(),Sr(this)};L().prototype.log1p=function(){return this.throwIfDisposed(),Ql(this)};L().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Dr(this,r)};L().prototype.logicalNot=function(){return this.throwIfDisposed(),tu(this)};L().prototype.logicalOr=function(r){return this.throwIfDisposed(),wm(this,r)};L().prototype.logicalXor=function(r){return this.throwIfDisposed(),ny(this,r)};L().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Gt(this,r,t,e)};L().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),eu(this,r,t,e,n)};L().prototype.max=function(r,t){return this.throwIfDisposed(),Mr(this,r,t)};L().prototype.maximum=function(r){return this.throwIfDisposed(),Tn(this,r)};L().prototype.mean=function(r,t){return this.throwIfDisposed(),ke(this,r,t)};L().prototype.min=function(r,t){return this.throwIfDisposed(),rc(this,r,t)};L().prototype.minimum=function(r){return this.throwIfDisposed(),Ui(this,r)};L().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),iy(this,r,t)};L().prototype.mod=function(r){return this.throwIfDisposed(),ay(this,r)};L().prototype.mul=function(r){return this.throwIfDisposed(),O(this,r)};L().prototype.neg=function(){return this.throwIfDisposed(),Yt(this)};L().prototype.norm=function(r,t,e){return this.throwIfDisposed(),Ja(this,r,t,e)};L().prototype.notEqual=function(r){return this.throwIfDisposed(),qs(this,r)};L().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),Ri(this,r,t,e)};L().prototype.onesLike=function(){return this.throwIfDisposed(),br(this)};L().prototype.pad=function(r,t){return this.throwIfDisposed(),cn(this,r,t)};L().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),ly(this,r,t,e,n,o,s)};L().prototype.pow=function(r){return this.throwIfDisposed(),ln(this,r)};L().prototype.prelu=function(r){return this.throwIfDisposed(),nu(this,r)};L().prototype.prod=function(r,t){return this.throwIfDisposed(),uy(this,r,t)};L().prototype.reciprocal=function(){return this.throwIfDisposed(),dy(this)};L().prototype.relu=function(){return this.throwIfDisposed(),Rr(this)};L().prototype.relu6=function(){return this.throwIfDisposed(),Cm(this)};L().prototype.reshapeAs=function(r){return this.throwIfDisposed(),F(this,r.shape)};L().prototype.reshape=function(r){return this.throwIfDisposed(),F(this,r)};L().prototype.resizeBilinear=function(r,t,e){return this.throwIfDisposed(),Ay(this,r,t,e)};L().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),$y(this,r,t,e)};L().prototype.reverse=function(r){return this.throwIfDisposed(),pr(this,r)};L().prototype.rfft=function(){return this.throwIfDisposed(),au(this)};L().prototype.round=function(){return this.throwIfDisposed(),vm(this)};L().prototype.rsqrt=function(){return this.throwIfDisposed(),Im(this)};L().prototype.selu=function(){return this.throwIfDisposed(),Sm(this)};L().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Tm(this,r,t,e,n,o,s)};L().prototype.sigmoid=function(){return this.throwIfDisposed(),Kr(this)};L().prototype.sign=function(){return this.throwIfDisposed(),hy(this)};L().prototype.sin=function(){return this.throwIfDisposed(),Nm(this)};L().prototype.sinh=function(){return this.throwIfDisposed(),km(this)};L().prototype.slice=function(r,t){return this.throwIfDisposed(),Ot(this,r,t)};L().prototype.softmax=function(r){return this.throwIfDisposed(),su(this,r)};L().prototype.softplus=function(){return this.throwIfDisposed(),Hs(this)};L().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),ru(this,r,t)};L().prototype.split=function(r,t){return this.throwIfDisposed(),mr(this,r,t)};L().prototype.sqrt=function(){return this.throwIfDisposed(),Ne(this)};L().prototype.square=function(){return this.throwIfDisposed(),Ht(this)};L().prototype.squaredDifference=function(r){return this.throwIfDisposed(),$m(this,r)};L().prototype.squeeze=function(r){return this.throwIfDisposed(),Mn(this,r)};L().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Lt?[this,r]:[this,...r];return sr(e,t)};L().prototype.step=function(r){return this.throwIfDisposed(),yo(this,r)};L().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),gy(this,r,t,e,n,o,s,i,a)};L().prototype.sub=function(r){return this.throwIfDisposed(),ut(this,r)};L().prototype.sum=function(r,t){return this.throwIfDisposed(),ft(this,r,t)};L().prototype.tan=function(){return this.throwIfDisposed(),xy(this)};L().prototype.tanh=function(){return this.throwIfDisposed(),Pi(this)};L().prototype.tile=function(r){return this.throwIfDisposed(),$r(this,r)};L().prototype.toBool=function(){return this.throwIfDisposed(),tt(this,"bool")};L().prototype.toFloat=function(){return this.throwIfDisposed(),tt(this,"float32")};L().prototype.toInt=function(){return this.throwIfDisposed(),tt(this,"int32")};L().prototype.topk=function(r,t){return this.throwIfDisposed(),yy(this,r,t)};L().prototype.transpose=function(r){return this.throwIfDisposed(),Mt(this,r)};L().prototype.unique=function(r){return this.throwIfDisposed(),by(this,r)};L().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),Rm(this,r,t)};L().prototype.unstack=function(r){return this.throwIfDisposed(),Tr(this,r)};L().prototype.where=function(r,t){return this.throwIfDisposed(),De(r,this,t)};L().prototype.zerosLike=function(){return this.throwIfDisposed(),St(this)};var Nn=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Nn.prototype)}},Gr=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Gr.prototype)}},z=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,z.prototype)}},Nt=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Nt.prototype)}},Om=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Om.prototype)}};var Nh=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 wo={};function Pm(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function $S(r){if(!(r==null||typeof r!="object"))if(Array.isArray(r))r.forEach(t=>$S(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:$S(n))}}}function ji(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 wo)i=wo[s];else if(i=t[s],i==null)throw new z(`Unknown ${n}: ${r}. This may be due to one of the following reasons: + ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return T.runKernel(Pl,i)}var mA=k({sparseSegmentSum_:Y6});function Z6(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=T.runKernel(Ml,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var fA=k({stringNGrams_:Z6});function J6(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=T.runKernel(zl,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var dA=k({stringSplit_:J6});function Q6(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 T.runKernel(Bl,o,n)}var hA=k({stringToHashBucketFast_:Q6});var tX={fft:su,ifft:Za,rfft:iu,irfft:gm},eX={hammingWindow:O_,hannWindow:iy,frame:ay,stft:P_},lu={flipLeftRight:M_,grayscaleToRGB:z_,resizeNearestNeighbor:my,resizeBilinear:py,rotateWithOffset:B_,cropAndResize:L_,nonMaxSuppression:V_,nonMaxSuppressionAsync:U_,nonMaxSuppressionWithScore:H_,nonMaxSuppressionWithScoreAsync:q_,nonMaxSuppressionPadded:K_,nonMaxSuppressionPaddedAsync:j_,threshold:X_,transform:Y_},i0={bandPart:Z_,gramSchmidt:J_,qr:tA},rX={absoluteDifference:eA,computeWeightedLoss:Vr,cosineDistance:rA,hingeLoss:nA,huberLoss:oA,logLoss:sA,meanSquaredError:iA,sigmoidCrossEntropy:aA,softmaxCrossEntropy:lA},nX={sparseFillEmptyRows:uA,sparseReshape:cA,sparseSegmentMean:pA,sparseSegmentSum:mA},oX={stringNGrams:fA,stringSplit:dA,stringToHashBucketFast:hA};var Gr=class extends sh{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 St(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 Ox(t,e)}dispose(){this.iterations_!=null&&St(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(Gr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var uu=class extends Gr{constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=T.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=T.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(R(u,this.rho),R(Mt(a),1-this.rho)),p=R(pt(ve(X(l,this.epsilon)),ve(X(u,this.epsilon))),a),m=X(R(l,this.rho),R(Mt(p),1-this.rho));u.assign(c),l.assign(m);let f=X(R(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(St(this.accumulatedGrads.map(t=>t.variable)),St(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)}};uu.className="Adadelta";wn(uu);var cu=class extends Gr{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=T.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>go(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(R(pt(i,ve(X(u,T.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&St(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)}};cu.className="Adagrad";wn(cu);var pu=class extends Gr{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=T.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=T.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(R(c,this.beta1),R(l,1-this.beta1)),f=X(R(p,this.beta2),R(Mt(l),1-this.beta2)),d=pt(m,n),h=pt(f,o);c.assign(m),p.assign(f);let g=X(R(pt(d,X(ve(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign(R(this.accBeta1,this.beta1)),this.accBeta2.assign(R(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&St(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&St(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)}};pu.className="Adam";wn(pu);var mu=class extends Gr{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=T.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(R(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=T.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(R(c,this.beta1),R(l,1-this.beta1)),f=R(p,this.beta2),d=Ee(l),h=In(f,d);c.assign(m),p.assign(h);let g=X(R(pt(o,n),pt(m,X(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(X(this.iteration,1)),this.accBeta1.assign(R(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&St(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&St(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)}};mu.className="Adamax";wn(mu);var Mi=class extends Gr{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=T.registeredVariables[n];B(()=>{let a=X(R(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)}};Mi.className="SGD";wn(Mi);var fu=class extends Mi{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=T.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(R(this.m,i),a);this.useNesterov?u=X(R(this.c,X(a,R(l,this.m))),s):u=X(R(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&St(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)}};fu.className="Momentum";wn(fu);var du=class extends Gr{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=T.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=T.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(R(u,this.decay),R(Mt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=X(R(p,this.decay),R(a,1-this.decay)),f=pt(R(a,this.learningRate),ve(ct(c,X(Mt(m),this.epsilon)))),d=X(R(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(R(u,this.decay),R(Mt(a),1-this.decay)),m=X(R(l,this.momentum),pt(R(a,this.learningRate),ve(X(p,this.epsilon))));u.assign(p),l.assign(m);let f=ct(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&St(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&St(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&St(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)}};du.className="RMSProp";wn(du);var Vs=class{static sgd(t){return new Mi(t)}static momentum(t,e,n=!1){return new fu(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new du(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new pu(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new uu(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new mu(t,e,n,o,s)}static adagrad(t,e=.1){return new cu(t,e)}};var ic={sgd:Vs.sgd,momentum:Vs.momentum,adadelta:Vs.adadelta,adagrad:Vs.adagrad,rmsprop:Vs.rmsprop,adamax:Vs.adamax,adam:Vs.adam};var sX=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:r=>r())();function ph(){return new Promise(r=>sX(()=>r()))}var S={};Gt(S,{ERF_A1:()=>wX,ERF_A2:()=>CX,ERF_A3:()=>IX,ERF_A4:()=>vX,ERF_A5:()=>SX,ERF_P:()=>bX,PARALLELIZE_THRESHOLD:()=>fy,RowPartitionType:()=>zi,SELU_SCALE:()=>l0,SELU_SCALEALPHA:()=>a0,applyActivation:()=>oc,assertAndGetBroadcastShape:()=>Pt,assertAxesAreInnerMostDims:()=>Rq,assertParamsConsistent:()=>iX,assignToTypedArray:()=>AX,axesAreInnerMostDims:()=>KS,calculateShapes:()=>xE,checkEinsumDimSizes:()=>PX,checkPadOnDimRoundingMode:()=>Ie,combineLocations:()=>VE,combineRaggedTensorToTensorShapes:()=>lX,complexWithEvenIndex:()=>TX,complexWithOddIndex:()=>EX,computeConv2DInfo:()=>Ku,computeConv3DInfo:()=>RE,computeDefaultPad:()=>qS,computeDilation2DInfo:()=>OH,computeOptimalWindowSize:()=>mX,computeOutAndReduceShapes:()=>jS,computeOutShape:()=>aX,computePool2DInfo:()=>HS,computePool3DInfo:()=>PH,convertConv2DDataFormat:()=>FE,decodeEinsumEquation:()=>FX,eitherStridesOrDilationsAreOne:()=>_r,expandShapeToKeepDim:()=>xo,exponent:()=>DX,exponents:()=>$X,fromStringArrayToUint8:()=>n5,fromUint8ToStringArray:()=>r5,getAxesPermutation:()=>XS,getBroadcastDims:()=>dE,getComplexWithIndex:()=>_X,getEinsumComputePath:()=>LX,getEinsumPermutation:()=>OX,getFusedBiasGradient:()=>nc,getFusedDyActivation:()=>rc,getImageCenter:()=>fX,getInnerMostAxes:()=>Fq,getPermuted:()=>hX,getRaggedRank:()=>cX,getReductionAxes:()=>ge,getReshaped:()=>dX,getReshapedPermuted:()=>gX,getRowPartitionTypesHelper:()=>uX,getSliceBeginCoords:()=>xX,getSliceSize:()=>yX,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>VX,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>GX,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>WX,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>qX,getSparseReshapeInputOutputMismatchErrorMessage:()=>jX,getSparseReshapeInputOutputMultipleErrorMessage:()=>KX,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>UX,getSparseReshapeNegativeOutputDimErrorMessage:()=>HX,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>JX,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>XX,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>YX,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>ZX,getUndoAxesPermutation:()=>ih,isIdentityPermutation:()=>MX,log:()=>qU,mergeRealAndImagArrays:()=>NX,prepareAndValidate:()=>gE,prepareSplitSize:()=>BX,segment_util:()=>c0,shouldFuse:()=>sc,slice_util:()=>Pe,splitRealAndImagArrays:()=>kX,tupleValuesAreOne:()=>Qn,upcastType:()=>or,validateDefaultValueShape:()=>pX,validateInput:()=>tx,validateUpdateShape:()=>zS,warn:()=>Ii});function iX(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 aX(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 uX(r){let t={FIRST_DIM_SIZE:zi.FIRST_DIM_SIZE,VALUE_ROWIDS:zi.VALUE_ROWIDS,ROW_LENGTHS:zi.ROW_LENGTHS,ROW_SPLITS:zi.ROW_SPLITS,ROW_LIMITS:zi.ROW_LIMITS,ROW_STARTS:zi.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function cX(r){return r.length===0?0:r[0]===zi.FIRST_DIM_SIZE?r.length-1:r.length}function pX(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 fy=30;function mX(r){return r<=fy?r:sp(r,Math.floor(Math.sqrt(r)))}function fX(r,t,e){let n=e*(typeof r=="number"?r:r[0]),o=t*(typeof r=="number"?r:r[1]);return[n,o]}function dX(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 gX(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s/g,gA=",",xA="...";function FX(r,t){r=r.replace(/\s/g,"");let e=(r.length-r.replace(RX,"").length)/u0.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 ("${u0}").`);let[n,o]=r.split(u0);E(n.indexOf(xA)===-1,()=>`The ellipsis notation ("${xA}") is not supported yet.`);let s=n.split(gA),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 PX(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 LX(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 zX(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 VX(r){return`Received SparseTensor with denseShape[0] = 0 but + indices.shape[0] = ${r}`}function GX(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function WX(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function UX(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function HX(r,t){return`size ${r} must be non-negative, not ${t}`}function qX(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function KX(r,t){let e=Zt(r),n=Zt(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 jX(r,t){let e=Zt(r),n=Zt(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function XX(){return"segment ids must be >= 0"}function YX(){return"segment ids are not increasing"}function ZX(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function JX(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var c0={};Gt(c0,{collectGatherOpShapeInfo:()=>e5,computeOutShape:()=>t5,segOpComputeOptimalWindowSize:()=>QX});function QX(r,t){let e=!1,n;for(r<=fy?(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 t5(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(eGp(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function n5(r){return r.map(t=>Wl(t))}var Wr={};Gt(Wr,{nonMaxSuppressionV3Impl:()=>ly,nonMaxSuppressionV4Impl:()=>uy,nonMaxSuppressionV5Impl:()=>cy,whereImpl:()=>ry});var dy={kernelName:oi,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,yo(J(e,"float32"),-1))}}};var yA={kernelName:ra,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Mt(J(e,"float32")),o=ve(ct(mt(1),n));return Ut(pt(r,o))}}}};var bA={kernelName:na,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=ve(ct(Mt(J(e,"float32")),1));return pt(r,n)}}}};var wA={kernelName:Yn,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)),D(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),D(a,n.shape)}}}};var CA={kernelName:Vo,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var IA={kernelName:Go,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var vA={kernelName:Nl,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var SA={kernelName:ia,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,ve(ct(mt(1),Mt(J(e,"float32")))))}}};var NA={kernelName:aa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=ve(X(mt(1),Mt(J(e,"float32"))));return pt(r,n)}}}};var kA={kernelName:ca,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=R(r,pt(n,a)),l=ge(e.shape,o);return l.length>0&&(u=ft(u,l)),D(u,e.shape)},b:()=>{let a=X(Mt(e),Mt(n)),u=Ut(R(r,pt(e,a))),l=ge(n.shape,o);return l.length>0&&(u=ft(u,l)),D(u,n.shape)}}}};var TA={kernelName:la,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(Mt(J(e,"float32")),1))}}};var EA={kernelName:ua,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,ct(mt(1),Mt(J(e,"float32"))))}}};function o5(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=D(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),l=D(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=T.runKernel(lp,p,m);return c?D(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var _A=k({avgPool3dGrad_:o5});var AA={kernelName:kl,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>_A(r,n,o,s,i,a)}}};function s5(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=D(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=D(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=T.runKernel(ap,c,p);return l?D(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var $A=k({avgPoolGrad_:s5});var DA={kernelName:Wo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>$A(r,n,o,s,i)}}};var RA={kernelName:Uo,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 FA={kernelName:si,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>eu(r,n,o)}}};var OA={kernelName:i1,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 PA={kernelName:io,gradFunc:r=>({x:()=>r.clone()})};var LA={kernelName:Ho,gradFunc:r=>({x:()=>It(r)})};var MA={kernelName:ao,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>_e(Dr(Fn(n,o),On(n,s)),r,It(r))}}};var zA={kernelName:Tl,inputsToSave:["x"],gradFunc:dy.gradFunc};var BA={kernelName:ii,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=ar(o,t[0].shape)[0],i=n.map(u=>u[s]);return cr(r,i,s).map(u=>()=>u)}};var VA={kernelName:qo,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return E(Qn(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>Qp(n.shape,r,o,i,a,u),filter:()=>wm(n,r,o.shape,i,a,u)}}};var GA={kernelName:Ko,inputsToSave:["dy","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>Cn(r,o,s,i,a,1,u),filter:()=>wm(r,n,o.shape,s,i,a,u)}}};function i5(r,t,e,n,o){let s=r;r.rank===4&&(s=D(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let i=t;i.rank===4&&(i=D(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 T.runKernel(fp,a,u)}var WA=k({conv3DBackpropFilter_:i5});var UA={kernelName:El,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;E(Qn(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:()=>Ix(i.shape,r,a,o,s),filter:()=>WA(i,r,a.shape,o,s)}}};var HA={kernelName:jo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(Ut(mm(J(e,"float32"))),r)}}};var qA={kernelName:Xo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(fm(J(e,"float32")),r)}}};var KA={kernelName:Yo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=XS([o],n.rank),u=rm(r,o,s,!i);return a!=null&&(u=Ot(u,a)),u}}}};var jA={kernelName:Zo,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;E(Qn(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(_r(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:()=>sy(u.shape,r,l,o,s,a,i),filter:()=>oy(u,r,l.shape,o,s,a,i)}}};var XA={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:()=>T.runKernel(Ud,s,e),filter:()=>T.runKernel(Hd,i,e)}}};var YA={kernelName:Qo,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>T.runKernel(wp,n)}}};var ZA={kernelName:da,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=R(er(Ut(Mt(e))),2/Math.sqrt(Math.PI));return{x:()=>R(r,n)}}};var JA={kernelName:ts,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e)}}};var QA={kernelName:ai,inputsToSave:["input"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>D(r,e.shape)}}};var t2={kernelName:ga,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,er(e))}}};var e2={kernelName:es,gradFunc:r=>({x:()=>It(r)})};var r2={kernelName:rs,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?D(ft(a,u),e.shape):a},b:()=>{let a=R(r,J(e,"float32")),u=ge(n.shape,o);u.length>0&&(a=D(ft(a,u),n.shape));let l=Mt(n);return Ut(pt(a,J(l,"float32")))}}}};var n2={kernelName:ns,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?D(R(R(r,$r(D(f,[1,1,1,s.shape[0]]),c)),u),o.shape):D(R(R(r,f),u),o.shape),mean:()=>{let C=R(R(f,mt(-1)),m);return s.rank===1&&(C=ft(C,l)),D(C,s.shape)},variance:()=>{let C=R(R(d,p),m);return s.rank===1&&(C=ft(C,l)),D(C,s.shape)},scale:()=>{let C=R(p,f),N=R(r,C);return s.rank===1&&(N=ft(N,l)),D(N,s.shape)},offset:()=>{let C=r;return s.rank===1&&(C=ft(C,l)),D(C,s.shape)}}}};var i2={kernelName:li,inputsToSave:["x","indices"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s}=e,i=ar(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=o2(0,p),h=o2(p+1,p+1+f),g=s2([c,[l],m]),x=D(r,g),b=D(o,[l]),w=s2([[p],d,h]),C=Ot(x,w),N=bm(C,b,n.shape[i]),_=ih(w);return N=Ot(N,_),N},indices:()=>o}}};function o2(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>It(e),b:()=>It(n)}}};var l2={kernelName:lo,gradFunc:r=>({x:()=>J(r,"float32")})};var u2={kernelName:wa,gradFunc:r=>({x:()=>It(r)})};var c2={kernelName:Ca,gradFunc:r=>({x:()=>It(r)})};var p2={kernelName:Ia,gradFunc:r=>({x:()=>It(r)})};var m2={kernelName:ss,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=He(n,0);return{x:()=>_e(s,r,R(r,o))}}};var f2={kernelName:Na,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(e,1))}}};var d2={kernelName:is,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,J(e,"float32"))}}};var h2={kernelName:l1,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=er(n);return ct(r,R(ft(r,o,!0),i))}}}};function a5(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 T.runKernel(Np,a,u)}var g2=k({localResponseNormalizationBackprop_:a5});var x2={kernelName:$l,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>g2(n,o,r,s,i,a,u)}}};function hy(r,t,e,n){return t.rankR(r,J(Ar(e,t),r.dtype))}}var p0={kernelName:as,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=ar(o,s.shape),u=hy(r,i,s,a);return{x:()=>u.x()}}};var y2={kernelName:ls,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>R(r,J(Fn(e,n),"float32")),b:()=>R(r,J(nm(e,n),"float32"))}}};function l5(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=D(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=D(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),m=D(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=T.runKernel(Tp,d,h);return f?D(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var b2=k({maxPool3dGrad_:l5});var w2={kernelName:Dl,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>b2(r,n,o,s,i,a,u)}}};function u5(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 T.runKernel(kp,c,p)}var C2=k({maxPoolGrad_:u5});var I2={kernelName:us,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>C2(r,n,o,s,i,a)}}};var v2={kernelName:cs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=ar(o,n.shape),a=jS(n.shape,s)[1],u=Zt(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=D(r,c);return pt(R(p,lr(n.shape,"float32")),u)}}}};var S2={kernelName:ps,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=ar(o,s.shape),u=hy(r,i,s,a);return{x:()=>u.x()}}};var N2={kernelName:ms,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>R(r,J(On(e,n),"float32")),b:()=>R(r,J(He(e,n),"float32"))}}};var k2={kernelName:fs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Dt(r,s,n.shape)}}};var T2={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?D(ft(r,a),e.shape):r},b:()=>{let a=R(r,Ut(Fi(pt(e,n)))),u=ge(n.shape,o);return u.length>0?D(ft(a,u),n.shape):a}}}};var E2={kernelName:ds,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=R(r,J(n,"float32")),u=ge(e.shape,o);return u.length>0?D(ft(a,u),e.shape):a},b:()=>{let a=R(r,J(e,"float32")),u=ge(n.shape,o);return u.length>0?D(ft(a,u),n.shape):a}}}};var _2={kernelName:ui,gradFunc:r=>({x:()=>Ut(r)})};var A2={kernelName:hs,inputsToSave:["indices"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>Ne(e.shape,"float32")}}};var $2={kernelName:ci,gradFunc:r=>({x:()=>It(r)})};var D2={kernelName:pi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return vr(r,n).map(s=>()=>s)}};var m0={kernelName:gs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Dt(r,s,n.shape)}}};var R2={kernelName:xs,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=R(r,R(c,an(s,ct(c,mt(1))))),m=ge(s.shape,a);return m.length>0&&(p=ft(p,m)),D(p,s.shape)},b:()=>{let c=He(s,0),p=_e(c,Ir(s),It(s)),m=R(r,R(o,p)),f=ge(i.shape,a);return f.length>0&&(m=ft(m,f)),D(m,i.shape)}}}};var F2={kernelName:ys,inputsToSave:["x","alpha"],gradFunc:(r,t)=>{let[e,n]=t,o=He(e,0);return{x:()=>_e(o,r,R(r,n)),alpha:()=>{let s=_e(o,It(r),R(r,e)),i=ge(n.shape,r.shape);return i.length>0&&(s=ft(s,i)),D(s,n.shape)}}}};function c5(r,t,e){let n=r.shape.slice();n[e]=1;let o=D(t,n),s=ju(r,e,!0,!1),i=ju(r,e,!0,!0),a=R(s,i);return R(o,a)}function p5(r,t,e){let n=r.shape.length,o=n-e.length,s=S.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=c5(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=S.getUndoAxesPermutation(s);p=Ot(p,m)}return p}var O2={kernelName:bs,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:()=>p5(n,r,s)}}};var P2={kernelName:Jo,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?D(ft(a,u),e.shape):a},b:()=>{let a=R(r,J(e,"float32")),u=ge(n.shape,o);u.length>0&&(a=D(ft(a,u),n.shape));let l=Mt(n);return Ut(pt(a,J(l,"float32")))}}}};var L2={kernelName:Fa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Ut(Mt(e)))}}};var M2={kernelName:vs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=R(On(e,6),yo(e));return{x:()=>R(r,J(n,"float32"))}}};var z2={kernelName:ws,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,J(yo(e),"float32"))}}};var B2={kernelName:mi,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,e.shape)}}};var V2={kernelName:Is,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(Fp,o,e)}}};var G2={kernelName:Cs,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>T.runKernel(Rp,o,e)}}};var W2={kernelName:Ss,gradFunc:(r,t,e)=>{let{dims:n}=e,o=ar(n,r.shape);return{x:()=>ur(r,o)}}};var U2={kernelName:Ns,gradFunc:r=>({x:()=>It(r)})};var H2={kernelName:ks,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ut(pt(r,R(an(e,1.5),2)))}}};var q2={kernelName:fi,inputsToSave:["condition"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>J(It(e),"float32"),t:()=>R(r,J(e,r.dtype)),e:()=>R(r,J(Ql(e),r.dtype))}}};var K2={kernelName:Pa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=He(e,mt(0)),o=mt(a0),s=mt(l0),i=R(r,s),a=R(R(r,o),er(J(e,"float32")));return _e(n,i,a)}}}};var j2={kernelName:Es,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,R(e,ct(mt(1),e)))}}};var X2={kernelName:Ma,gradFunc:r=>({x:()=>It(r)})};var Y2={kernelName:Ts,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(Yl(J(e,"float32")),r)}}};var Z2={kernelName:La,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(em(J(e,"float32")),r)}}};var J2={kernelName:di,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=VS(n,o,s),l=[];for(let c=0;cun(r,l)}}};var Q2={kernelName:$s,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=R(r,n);return{logits:()=>ct(i,R(ft(i,[o],s),n))}}};var t$={kernelName:za,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,Xr(e))}}};var f0={kernelName:hi,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>Xl(r,n,o)}}};var d0={kernelName:gi,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>ne(r,n)}}};var e$={kernelName:_s,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,R(ve(J(e,"float32")),2))}}};var r$={kernelName:Ll,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,R(J(e,"float32"),2))}}};var n$={kernelName:Ds,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=mt(2);return{a:()=>R(r,R(o,ct(e,n))),b:()=>R(r,R(o,ct(n,e)))}}};var o$={kernelName:uo,gradFunc:r=>({x:()=>It(r)})};var s$={kernelName:Rs,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)),D(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),D(Ut(a),n.shape)}}}};var i$={kernelName:As,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;ar(s,n.shape).forEach(l=>{o[l]=1});let a=D(r,o),u=R(a,lr(n.shape,"float32"));return{x:()=>u}}};var a$={kernelName:Fs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Mt(Yl(e)))}}};var l$={kernelName:Os,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(ct(mt(1),Mt(e)),r)}}};var u$={kernelName:Zn,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=ih(o);return{x:()=>Ot(r,s)}}};var p$={kernelName:xi,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>rr(r,o)}}};var m$={kernelName:Vl,inputsToSave:["segmentIds"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>m5(r,e)}}};function m5(r,t){let e=In(t,It(t)),n=Oi(r,e),o=Fn(t,mt(0,"int32")),s=n.rank-o.rank;for(let a=0;a({x:()=>It(r)})};var f5=[dy,yA,bA,wA,CA,IA,vA,SA,NA,kA,TA,EA,AA,DA,RA,FA,OA,PA,LA,MA,zA,BA,GA,VA,UA,HA,qA,KA,jA,XA,P2,YA,ZA,JA,QA,t2,r2,e2,n2,i2,a2,l2,u2,c2,p2,m2,f2,d2,h2,x2,p0,p0,y2,w2,I2,v2,S2,N2,k2,T2,E2,_2,A2,$2,D2,m0,m0,R2,F2,O2,L2,M2,z2,B2,V2,G2,W2,U2,H2,q2,K2,j2,X2,Y2,Z2,J2,Q2,t$,f0,f0,d0,d0,e$,n$,r$,o$,s$,i$,a$,l$,u$,c$,p$,m$,f$];for(let r of f5)c1(r);O().prototype.abs=function(){return this.throwIfDisposed(),Ee(this)};O().prototype.acos=function(){return this.throwIfDisposed(),rx(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),nx(this)};O().prototype.add=function(r){return this.throwIfDisposed(),X(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),Yp(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),Hu(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),Ei(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),ox(this,r)};O().prototype.asScalar=function(){return this.throwIfDisposed(),E(this.size===1,()=>"The array must have only 1 element."),D(this,[])};O().prototype.asType=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.as1D=function(){return this.throwIfDisposed(),D(this,[this.size])};O().prototype.as2D=function(r,t){return this.throwIfDisposed(),D(this,[r,t])};O().prototype.as3D=function(r,t,e){return this.throwIfDisposed(),D(this,[r,t,e])};O().prototype.as4D=function(r,t,e,n){return this.throwIfDisposed(),D(this,[r,t,e,n])};O().prototype.as5D=function(r,t,e,n,o){return this.throwIfDisposed(),D(this,[r,t,e,n,o])};O().prototype.asin=function(){return this.throwIfDisposed(),sx(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),ix(this)};O().prototype.atan=function(){return this.throwIfDisposed(),ax(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),lx(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),ux(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),jl(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),Xl(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),Ai(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),$i(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),gx(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(),Jp(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),tm(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Cn(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),Yl(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),em(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),ju(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),rm(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),Sx(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Di(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Nx(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),kx(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),pt(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),Tx(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),Ri(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),Ar(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),Ex(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),_x(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),er(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),gr(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),Ax(this)};O().prototype.fft=function(){return this.throwIfDisposed(),su(this)};O().prototype.flatten=function(){return this.throwIfDisposed(),D(this,[this.size])};O().prototype.floor=function(){return this.throwIfDisposed(),Fi(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),Xp(this,r)};O().prototype.gather=function(r,t){return this.throwIfDisposed(),Oi(this,r,t)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),Fn(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),He(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),Za(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),gm(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),$x(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Dx(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),Rx(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Zl(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),On(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),nm(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),Fx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),Lx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),om(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),sm(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),Ir(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),Jl(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Dr(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),Ql(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),im(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Mx(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(),tu(this,r,t,e,n)};O().prototype.max=function(r,t){return this.throwIfDisposed(),Br(this,r,t)};O().prototype.maximum=function(r){return this.throwIfDisposed(),In(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),Se(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),Xu(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),Pi(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),Vx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),Gx(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),R(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ut(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),Ya(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),zs(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),ki(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),xr(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),un(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),Wx(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(),ru(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),Ux(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),Xx(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Rr(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),am(this)};O().prototype.reshapeAs=function(r){return this.throwIfDisposed(),D(this,r.shape)};O().prototype.reshape=function(r){return this.throwIfDisposed(),D(this,r)};O().prototype.resizeBilinear=function(r,t,e){return this.throwIfDisposed(),py(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),my(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),ur(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),iu(this)};O().prototype.round=function(){return this.throwIfDisposed(),lm(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),um(this)};O().prototype.selu=function(){return this.throwIfDisposed(),cm(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),pm(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),Xr(this)};O().prototype.sign=function(){return this.throwIfDisposed(),Yx(this)};O().prototype.sin=function(){return this.throwIfDisposed(),mm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),fm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Dt(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),ou(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),Ms(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),eu(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),cr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),ve(this)};O().prototype.square=function(){return this.throwIfDisposed(),Mt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),xm(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),Pn(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Ft?[this,r]:[this,...r];return rr(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),yo(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),Zx(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(),Jx(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),_i(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),$r(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(),Qx(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Ot(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),ty(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),bm(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)}},Ur=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Ur.prototype)}},z=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,z.prototype)}},vt=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,vt.prototype)}},Cm=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Cm.prototype)}};var mh=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 wo={};function Im(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function h0(r){if(!(r==null||typeof r!="object"))if(Array.isArray(r))r.forEach(t=>h0(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:h0(n))}}}function Bi(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 wo)i=wo[s];else if(i=t[s],i==null)throw new z(`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 z(`${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 wo?[a,u]=wo.className:i in t&&([a,u]=t[i]),a==null)throw new z(`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(wo))l[f]=wo[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},wo);for(let f of Object.keys(e))wo[f]=e[f];$S(s.config);let m=u(a,s.config,e,o);return wo=Object.assign({},p),m}else{let l=Object.assign({},wo);for(let p of Object.keys(e))wo[p]=e[p];let c=new a(s.config);return wo=Object.assign({},l),c}}}function UX(r,t){return rt?1:0}function kh(r,t){return-1*UX(r,t)}function Io(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function R$(r){if(r==null)throw new z(`Invalid value in obj: ${JSON.stringify(r)}`);for(let t in r)if(r.hasOwnProperty(t))return!1;return!0}function Xi(r,t,e){if(e!=null&&r.indexOf(e)<0)throw new z(`${e} is not a valid ${t}. Valid values are ${r} or null/undefined.`)}function Oy(r,t,e=0,n=1/0){return to(e>=0),to(n>=e),Array.isArray(r)&&r.length>=e&&r.length<=n&&r.every(o=>typeof o===t)}function Je(r,t){Array.isArray(r)?(y.assert(r.length>0,()=>`${t} is unexpectedly an empty array.`),r.forEach((e,n)=>Je(e,`element ${n+1} of ${t}`))):y.assert(Number.isInteger(r)&&r>0,()=>`Expected ${t} to be a positive integer, but got ${F$(r)}.`)}function F$(r){return r===null?"null":Array.isArray(r)?"["+r.map(t=>F$(t)).join(",")+"]":typeof r=="string"?`"${r}"`:`${r}`}function O$(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 Lm.set(e,1),e}else return r}var KX=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function W$(r){return!!r.match(KX)}function U$(r){return r===parseInt(r.toString(),10)}function So(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 jr(r,t){if(t{if(r.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let e=rl(r,1);return Gy(e,[1,t,1])})}function q$(r){let t=[So(r.shape)];return F(r,t)}function K$(r){if(r.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],So(r.shape,1)];return F(r,t)}function el(r,t,e){return G(()=>{switch(r.rank){case 1:return _m(r,t,e);case 2:return Ih(r,[t,0],[e,r.shape[1]]);case 3:return Em(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return lc(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Ot(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Ot(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 z(`sliceAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}})}function OS(r,t,e){return G(()=>{switch(r.rank){case 1:return _m(r,t,e);case 2:return Ih(r,[0,t],[r.shape[0],e]);case 3:return Em(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return lc(r,[0,0,0,t],[r.shape[0],r.shape[1],r.shape[2],e]);default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Eh(r,t,e,n){return G(()=>{switch(r.rank){case 1:return _m(r,t,e);case 2:switch(n){case 1:return el(r,t,e);case 2:return OS(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return el(r,t,e);case 2:return Em(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return OS(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return el(r,t,e);case 2:return lc(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return lc(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return OS(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Mm(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),se(r,t)}function LS(r,t){switch(r.rank){case 1:return Px([r,t]);case 2:return Lx([r,t],0);case 3:return Mx([r,t],0);case 4:return zx([r,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Gy(r,t){if(Array.isArray(t)||(t=[t]),r.rank!==t.length)throw new z(`The length of input n (${t.length}) does not match the number of dimensions in input x (${r.rank})`);return $r(r,t)}function zm(r,t=0,e=1,n,o){return ac(r,t,e,n,o)}function To(r,t,e,n){if(r.rank<2||t.rank<2)throw new Nt(`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 Nt(`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 lu.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?PS(r.rank,n,mn()):null,activation:e});{let o=r.shape.slice(),s=o.pop();r=F(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=F(Mt(t,c),[u,-1]);let p=[...o,...l],m=!1,f=!1;return F(lu.matMul({a:r,b:t,transposeA:m,transposeB:f,bias:n?PS(r.rank,n,mn()):null,activation:e}),p)}}function Wy(r,t,e){return G(()=>(Array.isArray(t)?t=Ve(t,"int32"):t=tt(t,"int32"),Wi(r,t,e)))}function gc(r){return O(r,r)}function PS(r,t,e){let n=t.shape;if(t.rank!==1&&t.rank!==r)throw new z(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${r}`);if(r===5){if(e==="channelsFirst")return n.length===1?F(t,[1,n[0],1,1,1]):F(t,[1,n[3],n[0],n[1],n[2]]);if(e==="channelsLast")return n.length===1?F(t,[1,1,1,1,n[0]]):F(t,[1].concat(n))}else if(r===4){if(e==="channelsFirst")return n.length===1?F(t,[1,n[0],1,1]):F(t,[1,n[2],n[0],n[1]]);if(e==="channelsLast")return n.length===1?F(t,[1,1,1,n[0]]):F(t,[1].concat(n))}else if(r===3){if(e==="channelsFirst")return n.length===1?F(t,[1,n[0],1]):F(t,[1,n[1],n[0]]);if(e==="channelsLast")return n.length===1?F(t,[1,1,n[0]]):F(t,[1].concat(n))}else if(r<3)return t;throw new z(`Unsupported input rank by biasAdd: ${t.rank}`)}function fn(r,t,e){return G(()=>(e==null&&(e=mn()),Pe(e),J(r,PS(r.rank,t,e))))}function j$(r,t=1){if(t!==1)throw new Nt(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Bi(r)}function X$(r){return G(()=>ct(r,J($e(r),1)))}function Uy(r,t,e,n){return G(()=>bS(r,t,e,n))}function Y$(r){return G(()=>{let t=J(.5,O(.2,r));return Ir(t,0,1)})}function xu(r,t,e=!1){return e?r():t()}var Z$=["fanIn","fanOut","fanAvg"],J$=["normal","uniform","truncatedNormal"];function jX(r){Xi(Z$,"FanMode",r)}function XX(r){Xi(J$,"Distribution",r)}var hn=class extends rt.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Bm=class extends hn{apply(t,e){return _e(t,e)}};Bm.className="Zeros";rt.registerClass(Bm);var yu=class extends hn{apply(t,e){return cr(t,e)}};yu.className="Ones";rt.registerClass(yu);var Vm=class extends hn{constructor(t){if(super(),typeof t!="object")throw new z(`Expected argument of type ConstantConfig but got ${t}`);if(t.value===void 0)throw new z(`config must have value set but got ${t}`);this.value=t.value}apply(t,e){return G(()=>O(mt(this.value),cr(t,e)))}getConfig(){return{value:this.value}}};Vm.className="Constant";rt.registerClass(Vm);var Gm=class extends hn{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 Hi(t,this.minval,this.maxval,e)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Gm.className="RandomUniform";rt.registerClass(Gm);var Wm=class extends hn{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 Nt(`randomNormal does not support dType ${e}.`);return zm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Wm.className="RandomNormal";rt.registerClass(Wm);var Um=class extends hn{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 Nt(`truncatedNormal does not support dType ${e}.`);return Dm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Um.className="TruncatedNormal";rt.registerClass(Um);var Hm=class extends hn{constructor(t){super(),this.gain=t.gain!=null?t.gain:1}apply(t,e){return G(()=>{if(t.length!==2||t[0]!==t[1])throw new z("Identity matrix initializer can only be used for 2D square matrices.");return O(this.gain,nc(t[0]))})}getConfig(){return{gain:this.gain}}};Hm.className="Identity";rt.registerClass(Hm);function YX(r,t="channelsLast"){let e,n;if(Pe(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t==="channelsFirst"){let o=So(r,2);e=r[1]*o,n=r[0]*o}else if(t==="channelsLast"){let o=So(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=So(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var Wr=class extends hn{constructor(t){if(super(),t.scale<0)throw new z(`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,jX(this.mode),this.distribution=t.distribution==null?"normal":t.distribution,XX(this.distribution),this.seed=t.seed}apply(t,e){let n=YX(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 Nt(`${this.getClassName()} does not support dType ${e}.`);return Dm(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return Hi(t,-a,a,e)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Wr.className="VarianceScaling";rt.registerClass(Wr);var xc=class extends Wr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return Wr.className}};xc.className="GlorotUniform";rt.registerClass(xc);var yc=class extends Wr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return Wr.className}};yc.className="GlorotNormal";rt.registerClass(yc);var bc=class extends Wr{constructor(t){super({scale:2,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return Wr.className}};bc.className="HeNormal";rt.registerClass(bc);var wc=class extends Wr{constructor(t){super({scale:2,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return Wr.className}};wc.className="HeUniform";rt.registerClass(wc);var Cc=class extends Wr{constructor(t){super({scale:1,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return Wr.className}};Cc.className="LeCunNormal";rt.registerClass(Cc);var vc=class extends Wr{constructor(t){super({scale:1,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return Wr.className}};vc.className="LeCunNormal";rt.registerClass(vc);var qm=class extends hn{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 Nt("Random seed is not implemented for Orthogonal Initializer yet.")}apply(t,e){return G(()=>{if(t.length<2)throw new Nt("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=zm(n,0,1,"float32"),s=vS.gramSchmidt(o);return t[0]>t[1]&&(s=Mt(s)),O(this.gain,s)})}getConfig(){return{gain:this.gain,seed:this.seed}}};qm.className="Orthogonal";rt.registerClass(qm);var Q$={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 tD(r,t={}){return ji(r,rt.SerializationMap.getMap().classNameMap,t,"initializer")}function Ee(r){return Pm(r)}function ge(r){if(typeof r=="string"){let t=r in Q$?Q$[r]:r;if(t==="GlorotNormal")return new yc;if(t==="GlorotUniform")return new xc;if(t==="HeNormal")return new bc;if(t==="HeUniform")return new wc;if(t==="LeCunNormal")return new Cc;if(t==="LeCunUniform")return new vc;{let e={};return e.className=t,e.config={},tD(e)}}else return r instanceof hn?r:tD(r)}function Hy(r){return Array.isArray(r)&&Array.isArray(r[0])}function Km(r){return r.length===0?[]:Array.isArray(r[0])?r:[r]}function Pt(r){let t;if(Array.isArray(r)){if(r.length!==1)throw new z(`Expected Tensor length to be 1; got ${r.length}`);t=r[0]}else t=r;return t}function te(r){if(Array.isArray(r)&&Array.isArray(r[0])){if(r.length===1)return r=r,r[0];throw new z(`Expected exactly 1 Shape; got ${r.length}`)}else return r}function jm(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 rD="Variable",Ah=class{constructor(t,e="float32",n=rD,o=!0,s=null){this.dtype=e==null?"float32":e,this.shape=t.shape,this.id=My(),n=n==null?rD:n,this.originalName=zy(n),this.name=By(this.originalName),this.trainable_=o,this.constraint=s,this.val=wy(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),JX(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 JX(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(r.shape)+" vs. "+JSON.stringify(t.shape))}function $h(r){return r.map(t=>t.read())}function Xm(r){r.forEach(t=>{t[0].write(t[1])})}var we=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||{}}},Xr=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=My(),i!=null&&(this.originalName=zy(i),this.name=By(this.originalName)),this.rank=e.length}},QX=0,nl=class{constructor(t,e){this.callArgs=e,this.id=QX++,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}}},t8=0,Bt=class extends rt.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=t8++,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=vo(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 Gr(`The layer has never been called and thus has no defined ${e}.`);if(this.inboundNodes.length<=t)throw new z(`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 Nn(`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 Nn(`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 Nn(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Nn(`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=be(t),this.inputSpec==null||this.inputSpec.length===0)return;let e=be(this.inputSpec);if(t.length!==e.length)throw new z(`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 z(`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 z(`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 be(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=be(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 Nt("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return i}else{let i=e8(t),a=this.computeOutputShape(i),u,l=r8(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 Xr(l,c,this,be(t),e,this.name,p)):u=new Xr(l,a,this,be(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new Nt("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 Nn(`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 Nn(`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 Gr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return jm(this.weights)}build(t){this.built=!0}getWeights(t=!1){return $h(t?this.trainableWeights:this.weights)}setWeights(t){G(()=>{let e=this.weights;if(e.length!==t.length)throw new z(`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=$h(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=be(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=be(t);e=be(e),n=be(n),o=be(o),s=Km(s),i=Km(i);let l=[],c=[],p=[];for(let m of u)l.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new nl({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 e8(r){r=be(r);let t=[];for(let e of r)t.push(e.shape);return Nr(t)}function r8(r){return"float32"}function MS(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=Ky.get(c),m;if(p==null){let d=o8(i,t);p=d.sorted,m=d.recipientCounts,Ky.put(c,p),jy.put(c,m)}m={},o||Object.assign(m,jy.get(c));let f=new No(t);for(let d=0;dn.maxNumTensors&&(n.maxNumTensors=P),P0,()=>"Expected at least one fetch, got none");let e=[],n={};if(r.length===1){let o=nD(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=nD(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:s8(n)}}function s8(r){let t={};for(let e in r)t[e]=r[e].size;return t}function nD(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 i8(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,oD);var aD={};jt(aD,{maxNorm:()=>l8,minMaxNorm:()=>p8,nonNeg:()=>c8,unitNorm:()=>u8});function zS(r,t){return G(()=>Ne(ft(O(r,r),t,!0)))}var Sc=class extends rt.Serializable{getConfig(){return{}}},Ym=class extends Sc{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 G(()=>{let e=zS(t,this.axis),n=Ir(e,0,this.maxValue);return O(t,ct(n,J(ar(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Ym.className="MaxNorm";rt.registerClass(Ym);var Zm=class extends Sc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return G(()=>ct(t,J(ar(),zS(t,this.axis))))}getConfig(){return{axis:this.axis}}};Zm.className="UnitNorm";rt.registerClass(Zm);var Jm=class extends Sc{apply(t){return Rr(t)}};Jm.className="NonNeg";rt.registerClass(Jm);var Qm=class extends Sc{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 G(()=>{let e=zS(t,this.axis),n=J(O(this.rate,Ir(e,this.minValue,this.maxValue)),O(1-this.rate,e));return O(t,ct(n,J(ar(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Qm.className="MinMaxNorm";rt.registerClass(Qm);var sD={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Ge(r){return Pm(r)}function iD(r,t={}){return ji(r,rt.SerializationMap.getMap().classNameMap,t,"constraint")}function We(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in sD?sD[r]:r,config:{}};return iD(e)}else return r instanceof Sc?r:iD(r)}function l8(r){return new Ym(r)}function u8(r){return new Zm(r)}function c8(){return new Jm}function p8(r){return new Qm(r)}var lD={};jt(lD,{constant:()=>d8,glorotNormal:()=>C8,glorotUniform:()=>w8,heNormal:()=>v8,heUniform:()=>I8,identity:()=>y8,leCunNormal:()=>S8,leCunUniform:()=>T8,ones:()=>f8,orthogonal:()=>N8,randomNormal:()=>g8,randomUniform:()=>h8,truncatedNormal:()=>x8,varianceScaling:()=>b8,zeros:()=>m8});function m8(){return new Bm}function f8(){return new yu}function d8(r){return new Vm(r)}function h8(r){return new Gm(r)}function g8(r){return new Wm(r)}function x8(r){return new Um(r)}function y8(r){return new Hm(r)}function b8(r){return new Wr(r)}function w8(r){return new xc(r)}function C8(r){return new yc(r)}function v8(r){return new bc(r)}function I8(r){return new wc(r)}function S8(r){return new Cc(r)}function T8(r){return new vc(r)}function N8(r){return new qm(r)}var BD={};jt(BD,{Layer:()=>Bt,RNN:()=>_n,RNNCell:()=>al,activation:()=>VY,add:()=>YY,alphaDropout:()=>R7,average:()=>ZY,averagePooling1d:()=>QS,averagePooling2d:()=>tT,averagePooling3d:()=>eT,avgPool1d:()=>i7,avgPool2d:()=>l7,avgPool3d:()=>c7,avgPooling1d:()=>a7,avgPooling2d:()=>u7,avgPooling3d:()=>p7,batchNormalization:()=>n7,bidirectional:()=>T7,concatenate:()=>JY,conv1d:()=>DY,conv2d:()=>RY,conv2dTranspose:()=>FY,conv3d:()=>OY,conv3dTranspose:()=>PY,convLstm2d:()=>C7,convLstm2dCell:()=>v7,cropping2D:()=>MY,dense:()=>GY,depthwiseConv2d:()=>BY,dot:()=>r7,dropout:()=>WY,elu:()=>NY,embedding:()=>XY,flatten:()=>HY,gaussianDropout:()=>D7,gaussianNoise:()=>$7,globalAveragePooling1d:()=>m7,globalAveragePooling2d:()=>f7,globalMaxPool1d:()=>k7,globalMaxPool2d:()=>_7,globalMaxPooling1d:()=>PD,globalMaxPooling2d:()=>LD,gru:()=>h7,gruCell:()=>g7,input:()=>KS,inputLayer:()=>TY,layerNormalization:()=>o7,leakyReLU:()=>_Y,lstm:()=>x7,lstmCell:()=>y7,masking:()=>F7,maxPool1d:()=>E7,maxPool2d:()=>A7,maxPooling1d:()=>MD,maxPooling2d:()=>zD,maxPooling3d:()=>d7,maximum:()=>QY,minimum:()=>t7,multiply:()=>e7,permute:()=>jY,prelu:()=>EY,reLU:()=>kY,repeatVector:()=>qY,reshape:()=>KY,rnn:()=>I7,separableConv2d:()=>LY,simpleRNN:()=>b7,simpleRNNCell:()=>w7,softmax:()=>AY,spatialDropout1d:()=>UY,stackedRNNCells:()=>S7,thresholdedReLU:()=>$Y,timeDistributed:()=>N7,upSampling2d:()=>zY,zeroPadding2d:()=>s7});async function Yi(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;sJ(this.totals[o],O(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:G(()=>{let o=O(ct(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),Oe(e[n])}))}},Zy=class extends ol{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 Jy(n,t))}var gn=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}`),gn.checkForDuplicate(e),gn.constructors[t]==null&&(gn.constructors[t]=[]),gn.constructors[t].push(e)}static checkForDuplicate(t){for(let e in gn.constructors)gn.constructors[+e].forEach(o=>{if(o===t)throw new z("Duplicate callback constructor.")})}static clear(){gn.constructors={}}static createCallbacks(t){let e=[];for(let n in gn.constructors){let o=+n;t>=o&&e.push(...gn.constructors[o])}return e.map(n=>new n)}};gn.constructors={};function tb(r,t,e,n,o,s,i,a,u){let l=new Zy,c=[new BS,...gn.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Yy(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 xn(r,t={},e=!1){return ji(r,rt.SerializationMap.getMap().classNameMap,t,"layer",e)}function Dh(r,t){return G(()=>{r.dtype!=="float32"&&(r=tt(r,"float32"));let e=ft(gc(r),t,!0),n=Vi(e.shape,ar()),o=Ne(Tn(e,n));return ct(r,o)})}function Zi(r,t){return G(()=>ke(gc(ut(t,r)),-1))}function tf(r,t){return G(()=>ke($e(ut(t,r)),-1))}function bu(r,t){return G(()=>{let e=ut(r,t),n=Ir($e(r),ar(),Number.MAX_VALUE),o=$e(ct(e,n));return O(100,ke(o,-1))})}function _8(r,t){return G(()=>{let e=Ir(t,ar(),Number.MAX_VALUE),n=Sr(J(1,e)),o=Ir(r,ar(),Number.MAX_VALUE),s=Sr(J(1,o));return ke(gc(ut(n,s)),-1)})}function E8(r,t){return G(()=>{let e=Tn(0,ut(1,O(r,t)));return ke(gc(e),-1)})}function A8(r,t){return G(()=>{let e=Tn(0,ut(1,O(r,t)));return ke(e,-1)})}function $8(r,t){return G(()=>{let e=ft(O(r,t),-1),n=Mr(O(ut(1,r),t),-1);return Tn(0,J(1,ut(n,e)))})}function D8(r,t){return G(()=>{let e=Math.log(2),n=ut(t,r),o=ut(J(n,Hs(O(-2,n))),e);return ke(o,-1)})}function Tc(r,t,e=!1){return G(()=>{if(e)t=su(t);else{let n=ft(t,t.shape.length-1,!0);t=ct(t,n)}return t=Ir(t,ar(),1-ar()),Yt(ft(O(tt(r,"float32"),Sr(t)),t.shape.length-1))})}function ef(r,t,e=!1){return G(()=>{let n=tt(Gi(q$(r)),"int32");t=Ir(t,ar(),1-ar());let o=t.shape,s=F(Ri(n,o[o.length-1]),o);return Tc(s,t,e)})}function R8(r,t){if(!y.arraysEqual(r.shape,t.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);return G(()=>{let e=Rr(t),n=Yt($e(t));return J(ut(e,O(t,r)),Ql(or(n)))})}function rf(r,t){return G(()=>{let e;return e=Ir(t,ar(),1-ar()),e=Sr(ct(e,ut(1,e))),ke(R8(r,e),-1)})}function F8(r,t){return G(()=>{let e=Ir(r,ar(),1),n=Ir(t,ar(),1);return ft(O(r,Sr(ct(e,n))),-1)})}function O8(r,t){return G(()=>{let e=Sr(J(ar(),t));return ke(ut(t,O(r,e)),-1)})}function Fh(r,t){return G(()=>{let e=Dh(r,-1),n=Dh(t,-1),o=O(e,n);return Yt(ft(o,-1))})}var Rh={meanSquaredError:Zi,meanAbsoluteError:tf,meanAbsolutePercentageError:bu,meanSquaredLogarithmicError:_8,squaredHinge:E8,hinge:A8,categoricalHinge:$8,logcosh:D8,categoricalCrossentropy:Tc,sparseCategoricalCrossentropy:ef,binaryCrossentropy:rf,kullbackLeiblerDivergence:F8,poisson:O8,cosineProximity:Fh};function eb(r){if(typeof r=="string"){if(r in Rh)return Rh[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 z(t)}else return r}function Oh(r,t){return G(()=>{let e=O(.5,br(t)),n=hc(Xe(t,e),r.dtype);return ke(Ar(r,n),-1)})}function Ph(r,t){return G(()=>hc(Ar(Oi(r,-1),Oi(t,-1)),"float32"))}function pD(r,t){return G(()=>tt(ft(Dr(Ar(r,1),Ar(t,1))),"float32"))}function P8(r,t){return G(()=>tt(ft(Dr(Ar(r,1),Ar(t,0))),"float32"))}function L8(r,t){return G(()=>tt(ft(Dr(Ar(r,0),Ar(t,1))),"float32"))}function VS(r,t){return G(()=>{let e=pD(r,t),n=L8(r,t),o=J(e,n);return tt(De(Xe(o,0),ct(e,o),0),"float32")})}function mD(r,t){return G(()=>{let e=pD(r,t),n=P8(r,t),o=J(e,n);return tt(De(Xe(o,0),ct(e,o),0),"float32")})}function nb(r,t){return rf(r,t)}function ob(r,t){return r.rank===t.rank&&(r=Mn(r,[r.rank-1])),t=Oi(t,-1),t.dtype!==r.dtype&&(t=tt(t,r.dtype)),tt(Ar(r,t),"float32")}var M8=Zi,z8=Zi,B8=tf,V8=tf,G8=bu,W8=bu,Lh=Tc,U8=Fh,GS=ef,rb={binaryAccuracy:Oh,categoricalAccuracy:Ph,precision:VS,categoricalCrossentropy:Lh,sparseCategoricalCrossentropy:GS,mse:M8,MSE:z8,mae:B8,MAE:V8,mape:G8,MAPE:W8,cosine:U8};function fD(r){if(typeof r=="string"&&r in rb)return rb[r];if(typeof r!="string"&&r!=null)return r;throw new z(`Unknown metric ${r}`)}function Mh(r){if(to(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r=="string")return r;{let t;for(let e of Object.keys(Rh))if(Rh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(rb))if(rb[e]===r){t=e;break}return t!==void 0?t:r.name}}function hD(r){let t={Adagrad:()=>fc.adagrad(.01),Adadelta:()=>fc.adadelta(1,.95,ar()),Adam:()=>fc.adam(.001,.9,.999,ar()),Adamax:()=>fc.adamax(.002,.9,.999,ar(),0),RMSProp:()=>fc.rmsprop(.001,.9,0,ar()),SGD:()=>fc.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 z(`Unknown Optimizer ${r}`)}function US(r,t,e=!1){if(r==null||typeof r!="object"||Object.getPrototypeOf(r)!==Object.prototype||!WS(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 WS(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"||!WS(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!WS(t))return!1;return!0}else return!1;else{let t=typeof r;return t==="string"||t==="number"||t==="boolean"}}function gD(r,t,e,n=console.log){let o=K8(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)),sb(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 sb(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 j8(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()];sb(a,t,e)}function X8(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)}`);Io(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,T=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(C),this.outputLayersTensorIndices.push(T)}for(let b of this.inputs){let w=b.sourceLayer,C=b.nodeIndex,T=b.tensorIndex;to(C===0,"input layer has >1 nodes"),to(T===0,"input layer has >1 tensors"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(C),this.inputLayersTensorIndices.push(T)}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,T,E,$)=>{(T==null||E==null||$==null)&&(T=b.sourceLayer,E=b.nodeIndex,$=b.tensorIndex);let D=T.inboundNodes[E];if(C.indexOf(D)!==-1)throw new Gr(`The tensor ${b.name} at layer "${T.name}" is part of a cycle.`);if(w.indexOf(D)!==-1)return;this.containerNodes.add(zn.nodeKey(T,E)),T.id in i||(i[T.id]=Object.keys(i).length),C.indexOf(D)===-1&&C.push(D);let P=D.inboundLayers.length;for(let M=0;M=0;)C.splice(C.indexOf(D),1);a.push(D)},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 T=0;TparseInt(b,10)).sort(kh);this.layers=[];for(let b of d){let w=f[b];w.sort((C,T)=>{let E=i[C.id],$=i[T.id];return E<$?-1:E>$?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(kh);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 T of w.inputTensors)if(h.indexOf(T)===-1)throw new Gr(`Graph disconnected: cannot obtain value for tensor ${T} at layer "${C.name}". The following previous layers were accessed without issue: ${g}`);for(let T of w.outputTensors)h.push(T);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 Gr(`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 nl({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 z("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 z(`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 z(`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 z(`${i.length} of ${o} weights are not set: ${i}`)}Xm(s)}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${nf}`,e.backend="TensorFlow.js",e}toJSON(t,e=!0){let n=ib(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return G(()=>{t=be(t);let n=new No;for(let o=0;o{t=be(t);let n;return e==null?n=Co(null,t.length):n=be(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Km(t);if(e.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let a=0;aparseInt(a,10)).sort(kh);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(kh);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,T]=d[0];h.mask==null&&(h.mask=T),b=be(p.call(C,h)),w=be(p.computeMask(C,T)),g=[C],x=[T]}else g=d.map(C=>C[0]),x=d.map(C=>C[1]),h.mask==null&&(h.mask=x),b=be(p.call(g,h)),w=be(p.computeMask(g,x));if(p.activityRegularizer)throw new Nt("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=xn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(C=>{if(!(C instanceof Array))throw new z(`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(;!R$(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];to(x in s);let T=s[x].inboundNodes[b].outputTensors;m.push(T[w])}let h=e.outputLayers;for(let g of h){let x=g[0],b=g[1],w=g[2];to(x in s);let T=s[x].inboundNodes[b].outputTensors;f.push(T[w])}return new t({inputs:m,outputs:f,name:c})}get stateful(){if(this._stateful)throw new z("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(){G(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function Y8(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 ab(r,t){return Y8(r,t,"classWeight")}async function lb(r,t,e,n){if(t!=null||n!=null)throw new Error("Support sampleWeight is not implemented yet");if(e!=null){let o=G(()=>{if(r.shape.length===1)return an(r);if(r.shape.length===2){if(r.shape[1]>1)return Oi(r,1);if(r.shape[1]===1)return F(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());_t(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])}),Ve(i,"float32")}else return null}function yD(r,t){return O(r,t)}var Z8=32;function CD(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=bD("input",r.inputNames,e),i=bD("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 bD(r,t,e){if(e instanceof Lt)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 z(`The feature data generated by the dataset lacks the required ${r} key '${o}'.`);n.push(e[o])}return n}}function J8(r){if(r.length===3)throw new Nt("Validation with sample weights is not implemented yet.");return{xs:r[0],ys:r[1]}}async function vD(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(wD(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=J8(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=Qy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=tb(c,p,e.epochs,null,null,Q8(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;wD(e.validationData)?C=be(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):C=be(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?Z8:e.validationBatchSize,verbose:0}));for(let T=0;T0)throw new Nt("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=tY(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=CD(r,l.value),m=c.concat(p),f=G(()=>o(m));if(_t(m),u===0)for(let h=0;hJ(s[h],O(d,g))),u>0&&_t(x)}_t(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 of(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>el(n,t,e-t)):el(r,t,e-t)}function cb(r,t){return G(()=>r==null?null:Array.isArray(r)?r.map(e=>cb(e,t)):Wy(r,t.dtype==="int32"?t:tt(t,"int32")))}function pb(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}async function eY(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 z("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=jr(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=tb(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 M=$[D][0],W=$[D][1],H=el(E,M,W-M);P.batch=D,P.size=W-M;let q=cb(e,H),X=t(q);for(let j=0;j0){if(g=!0,n.validationData.length===2)u=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new Nt("validationData including sample weights is not supported yet."):new z(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);let P=!0,M=await r.standardizeUserData(u,l,null,null,P,f);c=M[0],p=M[1],x=c.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){g=!0;let P=Math.floor(o[0].shape[0]*(1-n.validationSplit)),M=o[0].shape[0];c=of(o,P,M),i=o,o=of(o,0,P),p=of(s,P,M),a=s,s=of(s,0,P),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(),T,E;g?(r.makeTestFunction(),T=r.testFunction,E=C.slice().concat(C.map(P=>"val_"+P))):(T=null,x=[],E=C.slice());let $=Qy(n.callbacks,n.yieldEvery);return await eY(r,w,b,C,f,n.epochs,n.verbose,$,T,x,n.shuffle,E,n.initialEpoch,null,null)}finally{r.isTraining=!1,ko(o,t),ko(s,e),ko(i,t),ko(a,e),ko(c,u),ko(p,l),m!=null&&_t(m)}}function HS(r){let t=[];r instanceof Lt&&(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 Lt)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 rY(r){return r instanceof Lt}function qS(r){return Array.isArray(r)}function TD(r){return!rY(r)&&!qS(r)}function ND(r,t,e,n=!0,o=""){if(t==null||t.length===0){if(r!=null){let i=!1;if(qS(r)&&r.length>0)i=!0;else if(TD(r)){for(let a in r)if(r.hasOwnProperty(a)){i=!0;break}}else i=!0;if(i)throw new z(`Error when checking model ${o} expected no data, but got ${r}`)}return[]}if(r==null)return t.map(i=>null);let s;if(TD(r)){r=r,s=[];for(let i of t){if(r[i]==null)throw new z(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(r[i])}}else if(qS(r)){if(r=r,r.length!==t.length)throw new z(`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 z(`The model ${o} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=HS(s),e!=null)for(let i=0;i=0&&l!==c)throw new z(`${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 nY(r,t,e){let n=Io(r.map(s=>s.shape[0]));n.sort();let o=Io(t.map(s=>s.shape[0]));if(o.sort(),n.length>1)throw new z(`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 z(`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 z(`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 oY(r,t,e){let n=[Zi,rf,Tc];for(let o=0;o1)throw new z(`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 iY="layers-model",Bn=class extends zn{constructor(t){super(t),this.isTraining=!1}summary(t,e,n=console.log){if(!this.built)throw new z("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).");gD(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer=="string")this.optimizer_=hD(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof Br))throw new z("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 z(`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(eb(t.loss[i]))}else if(Array.isArray(t.loss)){if(t.loss.length!==this.outputs.length)throw new z(`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=>eb(a))}else{let i=eb(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=sY(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])};Ys("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]===rf?["accuracy","acc"].indexOf(d)!==-1?m=Oh:["crossentropy","ce"].indexOf(d)!==-1&&(m=nb):this.lossFunctions[i]===ef?["accuracy","acc"].indexOf(d)!==-1?m=ob:["crossentropy","ce"].indexOf(d)!==-1&&(m=GS):["accuracy","acc"].indexOf(d)!==-1?m=Ph:["crossentropy","ce"].indexOf(d)!==-1&&(m=Lh);let x;["accuracy","acc"].indexOf(d)!==-1?x="acc":["crossentropy","ce"].indexOf(d)!==-1&&(x="ce"),f=m,p=c+x}else f=fD(d),p=c+Mh(d);let h;Ys(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;ub(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{ko(i[0],t),ko(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),ID(this,t,e)}checkNumSamples(t,e,n,o="steps"){let s;if(n!=null){if(s=null,e!=null)throw new z(`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 z(`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 z("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(e),o=n?e:[e],s=this.retrieveSymbolicTensors(o),i=new No;if(t instanceof Lt&&(t=[t]),Array.isArray(t)){if(t.length!==this.inputs.length)throw new z(`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 z(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(o)}`)}return e}predictLoop(t,e=32,n=!1){return G(()=>{let o=this.checkNumSamples(t);if(n)throw new Nt("Verbose predictLoop() is not implemented yet.");let s=pb(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=of(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return Nr(i.map(a=>se(a,0)))})}predict(t,e={}){let n=HS(t);kD(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return ub(o),this.predictLoop(n,o)}finally{ko(n,t)}}predictOnBatch(t){kD(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 Gr("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 z(`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=ab(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,"steps"),a=[];if(o>0)throw new Nt("Verbose mode is not implemented yet.");if(s!=null)throw new Nt("steps mode in testLoop() is not implemented yet");{let u=pb(i,n),l=Ve(jr(0,i));for(let c=0;c1&&(s+=`_${DS(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=J(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=>G(()=>{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;lvo(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]=vo(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[vo(Mh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>vo(Mh(t)));{let t={};for(let e in this.metrics)t[e]=vo(Mh(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=Nc(t.optimizer_config),n=xn(e),o;if(typeof t.loss=="string")o=tl(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>tl(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=tl(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>tl(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=tl(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t=="string"){let l=vn.getSaveHandlers(t);if(l.length===0)throw new z(`Cannot find any save handlers for URL '${t}'`);if(l.length>1)throw new z(`Found more than one (${l.length}) save handlers for URL '${t}'`);t=l[0]}if(t.save==null)throw new z("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await vn.encodeWeights(this.getNamedWeights(e)),o=!1,s=null,a={modelTopology:this.toJSON(s,o),format:iY,generatedBy:`TensorFlow.js tfjs-layers v${nf}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l="optimizer",{data:c,specs:p}=await vn.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=vn.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(US(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){US(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};Bn.className="Model";rt.registerClass(Bn);var mb=class extends Bn{};mb.className="Functional";rt.registerClass(mb);async function _D(r,t){"modelTopology"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=Nc(e),o=xn(n,t);if(r.weightsManifest!=null){let s=await vn.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),_t(s)}return o}async function ED(r,t){if(t==null&&(t={}),typeof r=="string"){let e=vn.getLoadHandlers(r,t);if(e.length===0)e.push(vn.browserHTTPRequest(r,t));else if(e.length>1)throw new z(`Found more than one (${e.length}) load handlers for URL '${r}'`);r=e[0]}return aY(r,void 0,t)}async function aY(r,t,e){if(e==null&&(e={}),r.load==null)throw new z("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=xn(Nc(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 z("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:l,optimizerWeights:c}=lY(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),_t(l),_t(c.map(p=>p.tensor))}return a}function lY(r,t){let e=vn.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 Ji=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 z(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let e=t instanceof Ji||t instanceof Bn,n;if(e){if(n=t,n.outputs.length!==1)throw new z("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 z("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 z("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let o=qy({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 z(`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 z("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=MS(this.outputs[0])}this.inboundNodes=[],new nl({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Co(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(te(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 Gr("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 Gr("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 Gr("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 Gr("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 z("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 Ji))throw new Nt(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=xn(u,void 0,o);o&&c.setFastWeightInitDuringBuild(!0),a.add(c)}return a}set stopTraining(t){if(this.model==null)throw new z("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 z("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}}};Ji.className="Sequential";rt.registerClass(Ji);function uY(r){return new Bn(r)}function cY(r){return new Ji(r)}function pY(r,t){return t==null&&(t={}),ED(r,t)}function KS(r){return qy(r)}function mY(r,t){gn.registerCallbackConstructor(r,t)}var Yr=class extends rt.Serializable{getConfig(){return{}}},fb=class extends Yr{apply(t,e=1){return j$(t,e)}};fb.className="elu";rt.registerClass(fb);var db=class extends Yr{apply(t){return Sm(t)}};db.className="selu";rt.registerClass(db);var hb=class extends Yr{apply(t){return Rr(t)}};hb.className="relu";rt.registerClass(hb);var gb=class extends Yr{apply(t){return G(()=>Ui(6,Rr(t)))}};gb.className="relu6";rt.registerClass(gb);var xb=class extends Yr{apply(t){return t}};xb.className="linear";rt.registerClass(xb);var yb=class extends Yr{apply(t){return Kr(t)}};yb.className="sigmoid";rt.registerClass(yb);var bb=class extends Yr{apply(t){return Y$(t)}};bb.className="hardSigmoid";rt.registerClass(bb);var wb=class extends Yr{apply(t){return Hs(t)}};wb.className="softplus";rt.registerClass(wb);var Cb=class extends Yr{apply(t){return X$(t)}};Cb.className="softsign";rt.registerClass(Cb);var vb=class extends Yr{apply(t){return Pi(t)}};vb.className="tanh";rt.registerClass(vb);var sf=class extends Yr{apply(t,e=-1){return su(t,e)}};sf.className="softmax";rt.registerClass(sf);var Ib=class extends Yr{apply(t,e=-1){return ym(t,e)}};Ib.className="logSoftmax";rt.registerClass(Ib);var Sb=class extends Yr{apply(t,e=1){return G(()=>O(Kr(O(t,e)),t))}};Sb.className="swish";rt.registerClass(Sb);var Tb=class extends Yr{apply(t){return G(()=>O(t,Pi(Hs(t))))}};Tb.className="mish";rt.registerClass(Tb);function Qs(r){return r.getClassName()}function jS(r,t={}){return ji(r,rt.SerializationMap.getMap().classNameMap,t,"activation")}function ti(r){if(r==null){let t={};return t.className="linear",t.config={},jS(t)}if(typeof r=="string"){let t={};return t.className=r,t.config={},jS(t)}else return r instanceof Yr?r:jS(r)}function XS(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 Nb=class extends rt.Serializable{},wu=class extends Nb{constructor(t){super(),XS(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 G(()=>{let e=_e([1]);return this.hasL1&&(e=J(e,ft(O(this.l1,$e(t))))),this.hasL2&&(e=J(e,ft(O(this.l2,gc(t))))),F(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";rt.registerClass(wu);function DD(r){return XS(r),new wu({l1:r!=null?r.l1:null,l2:0})}function RD(r){return XS(r),new wu({l2:r!=null?r.l2:null,l1:0})}var AD={l1l2:"L1L2"};function de(r){return Pm(r)}function $D(r,t={}){return ji(r,rt.SerializationMap.getMap().classNameMap,t,"regularizer")}function Ce(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in AD?AD[r]:r,config:{}};return $D(e)}else return r instanceof Nb?r:$D(r)}var af=class extends Bt{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=Pt(t);let n=Rr(t);return this.maxValue!=null&&(n=Ir(n,0,this.maxValue)),n}computeOutputShape(t){return t}getConfig(){let t={maxValue:this.maxValue},e=super.getConfig();return Object.assign(t,e),t}};af.className="ReLU";rt.registerClass(af);var lf=class extends Bt{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=Pt(t);return Jl(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};lf.className="LeakyReLU";rt.registerClass(lf);var uf=class extends Bt{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER="zeros",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=ge(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Ce(t.alphaRegularizer),this.alphaConstraint=We(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 z(`Expected sharedAxes to be a number or an array of numbers, but got ${t.sharedAxes}`)}build(t){t=te(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(Pe(t),t==="channelsFirst"?Mt(r,[0,2,3,1]):r))}function YS(r,t){return G(()=>(Pe(t),t==="channelsFirst"?Mt(r,[0,2,3,4,1]):r))}function dY(r,t,e,n=1,o="valid",s,i=1){return G(()=>{if(s==null&&(s=mn()),Pe(s),r.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${r.shape.length} instead.`);if(t.shape.length!==3)throw new z(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(e!=null&&e.shape.length!==1)throw new z(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(r=Mt(r,[0,2,1])),o==="causal")throw new Nt("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let a=mm(r,t,n,o==="same"?"same":"valid","NWC",i);return e!=null&&(a=fn(a,e)),a})}function FD(r,t,e,n=[1,1],o="valid",s,i,a=null){return G(()=>{if(s==null&&(s=mn()),Pe(s),r.rank!==3&&r.rank!==4)throw new z(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${r.rank}.`);if(t.rank!==3&&t.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let u=zh(r,s);if(o==="causal")throw new Nt("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return u=lu.conv2d({x:u,filter:t,strides:n,pad:o==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:e,activation:a}),s==="channelsFirst"&&(u=Mt(u,[0,3,1,2])),u})}function hY(r,t,e,n=[1,1,1],o="valid",s,i){return G(()=>{if(s==null&&(s=mn()),Pe(s),r.rank!==4&&r.rank!==5)throw new z(`conv3dWithBias expects input to be of rank 4 or 5, but received ${r.rank}.`);if(t.rank!==4&&t.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let a=YS(r,s);if(o==="causal")throw new Nt("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return a=Bx(a,t,n,o==="same"?"same":"valid","NDHWC",i),e!=null&&(a=fn(a,e)),s==="channelsFirst"&&(a=Mt(a,[0,4,1,2,3])),a})}var kc=class extends Bt{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",kc.verifyArgs(e),this.rank=t,Je(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Nt(`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,Pe(this.dataFormat),this.activation=ti(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=ge(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=We(e.biasConstraint),this.biasRegularizer=Ce(e.biasRegularizer),this.activityRegularizer=Ce(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 z(`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 z(`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 z(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(t){if(to("kernelSize"in t,"required key 'kernelSize' not in config"),typeof t.kernelSize!="number"&&!Oy(t.kernelSize,"number",1,3))throw new z(`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:Qs(this.activation),useBias:this.useBias,biasInitializer:Ee(this.biasInitializer),biasRegularizer:de(this.biasRegularizer),activityRegularizer:de(this.activityRegularizer),biasConstraint:Ge(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},vu=class extends kc{constructor(t,e){super(t,e),this.kernel=null,vu.verifyArgs(e),this.filters=e.filters,Je(this.filters,"filters"),this.kernelInitializer=ge(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=We(e.kernelConstraint),this.kernelRegularizer=Ce(e.kernelRegularizer)}build(t){t=te(t);let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new z(`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 G(()=>{t=Pt(t);let n,o=this.bias==null?null:this.bias.read(),s=Py(this.activation.getClassName());if(s!=null&&this.rank===2)n=FD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=dY(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=FD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=hY(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Nt("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=te(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)}`)}},sl=class extends vu{constructor(t){super(2,t),sl.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!Oy(t.kernelSize,"number",1,2))throw new z(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(t.kernelSize)}.`)}};sl.className="Conv2D";rt.registerClass(sl);var il=class extends vu{constructor(t){super(3,t),il.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 z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};il.className="Conv3D";rt.registerClass(il);var ff=class extends sl{constructor(t){if(super(t),this.inputSpec=[new we({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new z(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=te(t),t.length!==4)throw new z("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 z("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 we({ndim:4,axes:{[e]:n}})],this.built=!0}call(t,e){return G(()=>{let n=Pt(t);if(n.shape.length!==4)throw new z(`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=ei(u,m,c,this.padding),h=ei(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!=="channelsLast"&&(n=Mt(n,[0,2,3,1]));let x=dm(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(x=Mt(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=te(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]=ei(e[o],u,i,this.padding),e[s]=ei(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};ff.className="Conv2DTranspose";rt.registerClass(ff);var df=class extends il{constructor(t){if(super(t),this.inputSpec=[new we({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new z(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=te(t),t.length!==5)throw new z("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 z("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 we({ndim:5,axes:{[e]:n}})],this.built=!0}call(t,e){return G(()=>{let n=Pt(t);if(n.shape.length!==5)throw new z(`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=ei(l,h,m,this.padding),w=ei(c,g,f,this.padding),C=ei(p,x,d,this.padding),T=[s,b,w,C,this.filters];this.dataFormat!=="channelsLast"&&(n=Mt(n,[0,2,3,4,1]));let E=Gx(n,this.kernel.read(),T,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(E=Mt(E,[0,4,1,2,3])),this.bias!==null&&(E=fn(E,this.bias.read(),this.dataFormat)),this.activation!==null&&(E=this.activation.apply(E)),E})}computeOutputShape(t){t=te(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]=ei(e[o],c,a,this.padding),e[s]=ei(e[s],p,u,this.padding),e[i]=ei(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};df.className="Conv3DTranspose";rt.registerClass(df);var kb=class extends vu{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 z("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(e.kernelInitializer!=null||e.kernelRegularizer!=null||e.kernelConstraint!=null)throw new z("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 z(`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=ge(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Ce(e.depthwiseRegularizer),this.depthwiseConstraint=We(e.depthwiseConstraint),this.pointwiseInitializer=ge(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Ce(e.pointwiseRegularizer),this.pointwiseConstraint=We(e.pointwiseConstraint)}build(t){if(t=te(t),t.length{t=Pt(t);let n;if(this.rank===1)throw new Nt("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(t=Mt(t,[0,2,3,1])),n=Tm(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=Mt(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=Ee(this.depthwiseInitializer),t.pointwiseInitializer=Ee(this.pointwiseInitializer),t.depthwiseRegularizer=de(this.depthwiseRegularizer),t.pointwiseRegularizer=de(this.pointwiseRegularizer),t.depthwiseConstraint=Ge(this.depthwiseConstraint),t.pointwiseConstraint=Ge(this.pointwiseConstraint),t}};kb.className="SeparableConv";var hf=class extends kb{constructor(t){super(2,t)}};hf.className="SeparableConv2D";rt.registerClass(hf);var Iu=class extends vu{constructor(t){super(1,t),Iu.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"&&!Oy(t.kernelSize,"number",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};Iu.className="Conv1D";rt.registerClass(Iu);var gf=class extends Bt{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 G(()=>{if(t=Pt(t),this.dataFormat==="channelsLast"){let n=Eh(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Eh(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Eh(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Eh(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}};gf.className="Cropping2D";rt.registerClass(gf);var xf=class extends Bt{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,Pe(this.dataFormat),this.interpolation=t.interpolation==null?"nearest":t.interpolation,G$(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 G(()=>{let n=Pt(t),o=n.shape;if(this.dataFormat==="channelsFirst"){n=Mt(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation==="nearest"?uu.resizeNearestNeighbor(n,[s,i]):uu.resizeBilinear(n,[s,i]);return Mt(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation==="nearest"?uu.resizeNearestNeighbor(n,[s,i]):uu.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}};xf.className="UpSampling2D";rt.registerClass(xf);function gY(r,t,e=[1,1],n="valid",o,s){return G(()=>{o==null&&(o=mn()),Pe(o);let i=zh(r,o);if(r.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(t.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=zi(i,t,e,n==="same"?"same":"valid","NHWC",s),o==="channelsFirst"&&(i=Mt(i,[0,3,1,2])),i})}var yf=class extends kc{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=ge(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=We(t.depthwiseConstraint),this.depthwiseRegularizer=Ce(t.depthwiseRegularizer)}build(t){if(t=te(t),t.length<4)throw new z(`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 z(`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 G(()=>{t=Pt(t);let n=gY(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=te(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=kn(e,this.kernelSize[0],this.padding,this.strides[0]),i=kn(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=Ee(this.depthwiseInitializer),t.depthwiseRegularizer=de(this.depthwiseRegularizer),t.depthwiseConstraint=Ge(this.depthwiseRegularizer),t}};yf.className="DepthwiseConv2D";rt.registerClass(yf);function ZS(r,t,e,n){if(Array.isArray(r)){if(t!=null||e!=null)throw new z("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 JS(r,t,e,n=!1,o,s,i=!1,a=!1){return G(()=>{let u=t.shape.length;if(u<3)throw new z(`Input should be at least 3D, but is ${u}D.`);let l=[1,0].concat(jr(2,u));if(t=Mt(t,l),s!=null)throw new Nt("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=tt(tt(o,"bool"),"float32"),o.rank===u-1&&(o=yr(o,-1)),o=Mt(o,l)),n&&(t=pr(t,0),o!=null&&(o=pr(o,0)));let c=[],p,m=e,f=t.shape[0],d=Tr(t),h;o!=null&&(h=Tr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let C=G(()=>{let T=h[x],E=ut(br(T),T),$=J(O(w[0],T),O(m[0],E)),D=m.map((P,M)=>J(O(w[1][M],T),O(P,E)));return{output:$,newStates:D}});p=C.output,m=C.newStates}a&&c.push(p)}let g;return a&&(g=sr(c,1)),[p,g,m]})}var _n=class extends Bt{constructor(t){super(t);let e;if(t.cell==null)throw new z("cell property is missing for the constructor of RNN.");if(Array.isArray(t.cell)?e=new Ac({cells:t.cell}):e=t.cell,e.stateSize==null)throw new z("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 we({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 jr(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){Hy(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 G(()=>{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 z(`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 we({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){G(()=>{if(!this.stateful)throw new Nn("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new z("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=>_e([n,o])):this.states_=[_e([n,this.cell.stateSize])];else if(t==null)_t(this.states_),this.keptStates!=null&&(_t(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>_e([n,o])):this.states_[0]=_e([n,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new z(`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()):_t(this.states_);for(let o=0;oOe(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=ZS(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 we({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 Xr){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 G(()=>{let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;t=Pt(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 z(`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=JS((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 G(()=>{let e=_e(t.shape);return e=ft(e,[1,2]),e=rl(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Gy(e,[1,n]):e):this.cell.stateSize>1?[Gy(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()===_n.className&&(e.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,t,e)}static fromConfig(t,e,n={}){let o=e.cell,s=xn(o,n);return new t(Object.assign(e,{cell:s}))}};_n.className="RNN";rt.registerClass(_n);var al=class extends Bt{},_c=class extends al{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,Je(this.units,"units"),this.activation=ti(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=ge(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=ge(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=ge(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=We(t.kernelConstraint),this.recurrentConstraint=We(t.recurrentConstraint),this.biasConstraint=We(t.biasConstraint),this.dropout=dc([1,Zs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=dc([1,Zs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=te(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 G(()=>{if(t=t,t.length!==2)throw new z(`SimpleRNNCell expects 2 input Tensors, got ${t.length}.`);let n=t[1];t=t[0];let o=e.training==null?!1:e.training;0br(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0br(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=To(O(t,i),this.kernel.read()):s=To(t,this.kernel.read()),this.bias!=null&&(s=fn(s,this.bias.read())),a!=null&&(n=O(n,a));let u=J(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:Qs(this.activation),useBias:this.useBias,kernelInitializer:Ee(this.kernelInitializer),recurrentInitializer:Ee(this.recurrentInitializer),biasInitializer:Ee(this.biasInitializer),kernelRegularizer:de(this.kernelRegularizer),recurrentRegularizer:de(this.recurrentRegularizer),biasRegularizer:de(this.biasRegularizer),activityRegularizer:de(this.activityRegularizer),kernelConstraint:Ge(this.kernelConstraint),recurrentConstraint:Ge(this.recurrentConstraint),biasConstraint:Ge(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},t,e)}};_c.className="SimpleRNNCell";rt.registerClass(_c);var bf=class extends _n{constructor(t){t.cell=new _c(t),super(t)}call(t,e){return G(()=>{this.cell.dropoutMask!=null&&(_t(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_t(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)}};bf.className="SimpleRNN";rt.registerClass(bf);var Ec=class extends al{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 z("GRUCell does not support reset_after parameter set to true.");this.units=t.units,Je(this.units,"units"),this.activation=ti(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=ti(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=ge(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=ge(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=ge(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=We(t.kernelConstraint),this.recurrentConstraint=We(t.recurrentConstraint),this.biasConstraint=We(t.biasConstraint),this.dropout=dc([1,Zs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=dc([1,Zs([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=te(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 G(()=>{if(t=t,t.length!==2)throw new z(`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],0br(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0br(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&&(_t(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_t(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)}};wf.className="GRU";rt.registerClass(wf);var ll=class extends al{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,Je(this.units,"units"),this.activation=ti(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=ti(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=ge(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=ge(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=ge(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=Ce(t.kernelRegularizer),this.recurrentRegularizer=Ce(t.recurrentRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.kernelConstraint=We(t.kernelConstraint),this.recurrentConstraint=We(t.recurrentConstraint),this.biasConstraint=We(t.biasConstraint),this.dropout=dc([1,Zs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=dc([1,Zs([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=te(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 hn{apply(u,l){let c=s.apply([i]),p=new yu().apply([i]),m=s.apply([i*2]);return LS(LS(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 G(()=>{let n=e.training==null?!1:e.training;if(t=t,t.length!==3)throw new z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let o=t[1],s=t[2];t=t[0],0br(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0br(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&&(_t(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_t(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)}};Cf.className="LSTM";rt.registerClass(Cf);var Ac=class extends al{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 G(()=>{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{Ys(`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({},t,o)}static fromConfig(t,e,n={}){let o=[];for(let s of e.cells)o.push(xn(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 $h(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):Uy(t(),e),a=()=>xu(i,t,n);return!o||o<=1?Oe(a().clone()):Array(o).fill(void 0).map(a).map(l=>Oe(l.clone()))}var xY=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&&(_t(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_t(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),e&&e.constants)throw new z("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 G(()=>{let{stateSize:e}=this.cell,n=t.shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)],i=_e(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){G(()=>{if(!this.stateful)throw new Nn("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 z("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(()=>_e(s)):this.states_=[_e(s)];else if(t==null)_t(this.states_),this.keptStates!=null&&(_t(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>_e(s)):this.states_[0]=_e(s);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new z(`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()):_t(this.states_);for(let a=0;aOe(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=kn(l,o[0],s,i[0],a[0]),m=kn(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};_b.className="ConvRNN2D";var $c=class extends ll{constructor(t){let{filters:e,kernelSize:n,strides:o,padding:s,dataFormat:i,dilationRate:a}=t;super(Object.assign({},t,{units:e})),this.filters=e,Je(this.filters,"filters"),this.kernelSize=Cu(n,2,"kernelSize"),this.kernelSize.forEach(u=>Je(u,"kernelSize")),this.strides=Cu(o||1,2,"strides"),this.strides.forEach(u=>Je(u,"strides")),this.padding=s||"valid",pn(this.padding),this.dataFormat=i||"channelsLast",Pe(this.dataFormat),this.dilationRate=Cu(a||1,2,"dilationRate"),this.dilationRate.forEach(u=>Je(u,"dilationRate"))}build(t){var e;t=te(t);let n=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[n]==null)throw new z(`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 hn{apply(m,f){let d=l.apply([c]),h=cr([c]),g=l.apply([c*2]);return Mm([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 G(()=>{if(t.length!==3)throw new z(`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;0br(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(st,it,pt)=>!it||!it[pt]?st:O(it[pt],st),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0br(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,T,E,$]=mr(this.kernel.read(),a,w),[D,P,M,W]=this.useBias?mr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,C,D,this.padding),p=this.inputConv(p,T,P,this.padding),m=this.inputConv(m,E,M,this.padding),f=this.inputConv(f,$,W,this.padding);let[H,q,X,j]=mr(this.recurrentKernel.read(),a,w);h=this.recurrentConv(h,H),g=this.recurrentConv(g,q),x=this.recurrentConv(x,X),b=this.recurrentConv(b,j);let Z=this.recurrentActivation.apply(J(c,h)),et=this.recurrentActivation.apply(J(p,g)),K=J(O(et,i),O(Z,this.activation.apply(J(m,x)))),ot=O(this.recurrentActivation.apply(J(f,b)),this.activation.apply(K));return[ot,ot,K]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=xY(t,["units"]),o={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},n,o)}inputConv(t,e,n,o){let s=Sn(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 Sn(t,e,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};$c.className="ConvLSTM2DCell";rt.registerClass($c);var vf=class extends _b{constructor(t){let e=new $c(t);super(Object.assign({},t,{cell:e}))}static fromConfig(t,e){return new t(e)}};vf.className="ConvLSTM2D";rt.registerClass(vf);var Dc=class extends Bt{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=Pt(t);if(0Uy(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()}};Dc.className="Dropout";rt.registerClass(Dc);var If=class extends Dc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};If.className="SpatialDropout1D";rt.registerClass(If);var Sf=class extends Bt{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,Je(this.units,"units"),this.activation=ti(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=ge(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=ge(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=We(t.kernelConstraint),this.biasConstraint=We(t.biasConstraint),this.kernelRegularizer=Ce(t.kernelRegularizer),this.biasRegularizer=Ce(t.biasRegularizer),this.activityRegularizer=Ce(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=te(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=te(t);let e=t.slice();return e[e.length-1]=this.units,e}call(t,e){return G(()=>{this.invokeCallHook(t,e);let n=Pt(t),o=Py(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:Qs(this.activation),useBias:this.useBias,kernelInitializer:Ee(this.kernelInitializer),biasInitializer:Ee(this.biasInitializer),kernelRegularizer:de(this.kernelRegularizer),biasRegularizer:de(this.biasRegularizer),activityRegularizer:de(this.activityRegularizer),kernelConstraint:Ge(this.kernelConstraint),biasConstraint:Ge(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};Sf.className="Dense";rt.registerClass(Sf);var Tf=class extends Bt{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=te(t);for(let e of t.slice(1))if(e==null)throw new z(`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],So(t,1)]}call(t,e){return G(()=>{this.invokeCallHook(t,e);let n=Pt(t);if(this.dataFormat==="channelsFirst"&&n.rank>1){let o=[0];for(let s=2;s{this.invokeCallHook(t,e);let n=Pt(t);return this.activation.apply(n)})}getConfig(){let t={activation:Qs(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};Nf.className="Activation";rt.registerClass(Nf);var kf=class extends Bt{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 G(()=>(t=Pt(t),H$(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};kf.className="RepeatVector";rt.registerClass(kf);var _f=class extends Bt{constructor(t){super(t),this.targetShape=t.targetShape;for(let e=0;e{this.invokeCallHook(t,e);let n=Pt(t),o=n.shape,s=o.slice(0,1).concat(this.fixUnknownDimension(o.slice(1),this.targetShape));return F(n,s)})}getConfig(){let t={targetShape:this.targetShape},e=super.getConfig();return Object.assign(t,e),t}};_f.className="Reshape";rt.registerClass(_f);var Ef=class extends Bt{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=jr(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 we({ndim:this.dims.length+1})]}computeOutputShape(t){t=te(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Mt(Pt(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};Ef.className="Permute";rt.registerClass(Ef);var Af=class extends Bt{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=Pt(t),o=-1;return Ju(qs(n,this.maskValue),o)}call(t,e){return G(()=>{this.invokeCallHook(t,e);let n=Pt(t),o=-1,s=!0,i=Ju(qs(n,this.maskValue),o,s);return O(n,tt(i,n.dtype))})}};Af.className="Masking";rt.registerClass(Af);var $f=class extends Bt{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(be(t.inputLength))}this.inputDim=t.inputDim,Je(this.inputDim,"inputDim"),this.outputDim=t.outputDim,Je(this.outputDim,"outputDim"),this.embeddingsInitializer=ge(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Ce(t.embeddingsRegularizer),this.activityRegularizer=Ce(t.activityRegularizer),this.embeddingsConstraint=We(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 G(()=>this.maskZero?(t=Pt(t),qs(t,St(t))):null)}computeOutputShape(t){if(t=te(t),this.inputLength==null)return[...t,this.outputDim];let e=be(this.inputLength);if(e.length!==t.length-1)throw new z(`"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=Pt(t);n.dtype!=="int32"&&(n=hc(n,"int32"));let o=Wy(this.embeddings.read(),F(n,[n.size]));return F(o,te(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ee(this.embeddingsInitializer),embeddingsRegularizer:de(this.embeddingsRegularizer),activityRegularizer:de(this.activityRegularizer),embeddingsConstraint:Ge(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};$f.className="Embedding";rt.registerClass($f);var cl=class extends Bt{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new Nt}computeElementwiseOpOutputShape(t,e){if(t==null||e==null)return null;if(t.length1)throw new z(`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&&Io(o).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(t,e){return G(()=>{if(t=t,this.reshapeRequired){let n=[],o=t.map(s=>s.rank);if(o.indexOf(null)===-1){let s=Zs(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=jr(1,l).concat([0]);n.push(Mt(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=F(Mt(F(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(jr(0,a-1));i=Mt(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 z("`mask` should be an Array");if(!Array.isArray(t))throw new z("`inputs` should be an Array");if(e.length!==t.length)throw new z(`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:yr(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 z("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(t))}mergeFunction(t){return G(()=>Mm(t,this.axis))}computeOutputShape(t){if(!(Array.isArray(t)&&Array.isArray(t[0])))throw new z("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 z("`mask` should be an array for Concatenate");if(!Array.isArray(t))throw new z("`inputs` should be an array for Concatenate");if(e.length!==t.length)throw new z(`Mismatch in the length of mask (${e.length}) and the legnth of inputs (${t.length})`);return G(()=>{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 Nt("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 Nt("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 G(()=>{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 Nt("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 z(`Dimension incompatibility: ${e[o[0]]} !== ${n[o[1]]}`)}mergeFunction(t){if(t.length!==2)throw new z(`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)=>Bh(s,t[i].shape.length)):o=[Bh(this.axes,e.shape.length),Bh(this.axes,n.shape.length)],this.normalize&&(e=Dh(e,o[0]),n=Dh(n,o[1])),yY(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[Bh(this.axes,t.length),Bh(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 Nt("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}};Mf.className="Dot";rt.registerClass(Mf);var zf=class extends Bt{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 G(()=>{this.invokeCallHook(t,e);let n=Pt(t);return xu(()=>J(zm(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};zf.className="GaussianNoise";rt.registerClass(zf);var Bf=class extends Bt{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 G(()=>{this.invokeCallHook(t,e);let n=Pt(t);return this.rate>0&&this.rate<1?xu(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return O(n,zm(n.shape,1,s))},()=>n,e.training||!1):n})}};Bf.className="GaussianDropout";rt.registerClass(Bf);var Vf=class extends Bt{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate,this.noiseShape=t.noiseShape}_getNoiseShape(t){return this.noiseShape||Pt(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 G(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(t);return xu(()=>{let s=Pt(t),i=1.6732632423543772,a=1.0507009873554805,u=-i*a,l=Pn(Hi(n),this.rate);l=hc(l,"float32");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=J(O(s,l),O(J(l,-1),u));return J(O(m,c),p)},()=>Pt(t),e.training||!1)}return t})}};Vf.className="AlphaDropout";rt.registerClass(Vf);function Vh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=$x(r,t,e,n,o,s);else if(r.rank===3)i=Dx(r,t,e,n,o,s);else if(r.rank===4)i=Rx(r,t,e,n,o,s);else throw new Nt(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function bY(r,t,e,n,o=.001){return G(()=>{let s=oc(r,n),i=s.mean,a=s.variance;return[Vh(r,i,a,e,t,o),i,a]})}function wY(r,t,e,n,o=.001){return G(()=>{let s=oc(r,n),i=s.mean,a=s.variance,u=[];for(let d of jr(0,r.rank))n.indexOf(d)!==-1?u.push(1):u.push(r.shape[d]);let l=F(i,u),c=F(a,u),p=t==null?null:F(t,u),m=e==null?null:F(e,u);return[Vh(r,l,c,m,p,o),i,a]})}function CY(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),jr(0,r.rank-1))?bY(r,t,e,n,o):wY(r,t,e,n,o)}var Gf=class extends Bt{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=ge(t.betaInitializer||"zeros"),this.gammaInitializer=ge(t.gammaInitializer||"ones"),this.movingMeanInitializer=ge(t.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=ge(t.movingVarianceInitializer||"ones"),this.betaConstraint=We(t.betaConstraint),this.gammaConstraint=We(t.gammaConstraint),this.betaRegularizer=Ce(t.betaRegularizer),this.gammaRegularizer=Ce(t.gammaRegularizer)}build(t){t=te(t);let e=this.axis>=0?this.axis:this.axis+t.length,n=t[e];if(n==null)throw new z(`Axis ${e} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(t)}.`);this.inputSpec=[new we({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 G(()=>{let n=e.training==null?!1:e.training,o=Pt(t),s=o.shape,i=s.length,a=jr(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=Co(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,jr(0,i).slice(0,i-1)),m=()=>{if(p){let b=F(this.movingMean.read(),l),w=F(this.movingVariance.read(),l),C=this.center?F(this.beta.read(),l):null,T=this.scale?F(this.gamma.read(),l):null;return Vh(o,b,w,C,T,this.epsilon)}else return Vh(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]=CY(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,C)=>{G(()=>{let T=1-C,E=b.read(),$=O(ut(E,w),T);b.write(ut(E,$))})};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:Ee(this.betaInitializer),gammaInitializer:Ee(this.gammaInitializer),movingMeanInitializer:Ee(this.movingMeanInitializer),movingVarianceInitializer:Ee(this.movingVarianceInitializer),betaRegularizer:de(this.betaRegularizer),gammaRegularizer:de(this.gammaRegularizer),betaConstraint:Ge(this.betaConstraint),gammaConstraint:Ge(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};Gf.className="BatchNormalization";rt.registerClass(Gf);var Wf=class extends Bt{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=ge(t.betaInitializer||"zeros"),this.gammaInitializer=ge(t.gammaInitializer||"ones"),this.betaRegularizer=Ce(t.betaRegularizer),this.gammaRegularizer=Ce(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=te(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!==Io(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=Pt(t),o=n.shape,s=o.length;return G(()=>{let{mean:a,variance:u}=oc(n,this.axis,!0),l=Co(1,s);for(let h of this.axis)l[h]=o[h];let c=h=>h!=null&&h.shape.length!==s?F(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 z(`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 z("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 z(`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 Uf=class extends Bt{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 z(`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 z(`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 z(`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 we({ndim:4})]}computeOutputShape(t){t=te(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 G(()=>vY(Pt(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};Uf.className="ZeroPadding2D";rt.registerClass(Uf);function Fb(r,t,e,n,o,s){return G(()=>{Pe(o),RS(s),pn(n),e==null&&(e=[1,1]),n==null&&(n="valid"),o==null&&(o=mn()),s==null&&(s="max"),r=zh(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=eu(r,t,e,a):i=Xl(r,t,e,a),o==="channelsFirst"&&(i=Mt(i,[0,3,1,2])),i})}function OD(r,t,e,n,o,s){return G(()=>{Pe(o),RS(s),pn(n),e==null&&(e=[1,1,1]),n==null&&(n="valid"),o==null&&(o=mn()),s==null&&(s="max"),r=YS(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=sy(r,t,e,a):i=Ax(r,t,e,a),o==="channelsFirst"&&(i=Mt(i,[0,4,1,2,3])),i})}var Eb=class extends Bt{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 z(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.poolSize)}`);if(Je(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 z(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.strides)}`);Je(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,pn(this.padding),this.inputSpec=[new we({ndim:3})]}computeOutputShape(t){t=te(t);let e=kn(t[1],this.poolSize[0],this.padding,this.strides[0]);return[t[0],e,t[2]]}call(t,e){return G(()=>{this.invokeCallHook(t,e),t=rl(Pt(t),2);let n=this.poolingFunction(Pt(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}},Hf=class extends Eb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Pe(s),pn(o),Fb(t,e,n,o,s,"max")}};Hf.className="MaxPooling1D";rt.registerClass(Hf);var qf=class extends Eb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Pe(s),pn(o),Fb(t,e,n,o,s,"avg")}};qf.className="AveragePooling1D";rt.registerClass(qf);var Ab=class extends Bt{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 z(`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];Je(this.poolSize,"poolSize"),Je(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Pe(this.dataFormat),pn(this.padding),this.inputSpec=[new we({ndim:4})]}computeOutputShape(t){t=te(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2];return e=kn(e,this.poolSize[0],this.padding,this.strides[0]),n=kn(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 G(()=>(this.invokeCallHook(t,e),this.poolingFunction(Pt(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}},Kf=class extends Ab{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Pe(s),pn(o),Fb(t,e,n,o,s,"max")}};Kf.className="MaxPooling2D";rt.registerClass(Kf);var jf=class extends Ab{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Pe(s),pn(o),Fb(t,e,n,o,s,"avg")}};jf.className="AveragePooling2D";rt.registerClass(jf);var $b=class extends Bt{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 z(`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];Je(this.poolSize,"poolSize"),Je(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Pe(this.dataFormat),pn(this.padding),this.inputSpec=[new we({ndim:5})]}computeOutputShape(t){t=te(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=kn(e,this.poolSize[0],this.padding,this.strides[0]),n=kn(n,this.poolSize[1],this.padding,this.strides[1]),o=kn(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 G(()=>(this.invokeCallHook(t,e),this.poolingFunction(Pt(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}},Xf=class extends $b{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Pe(s),pn(o),OD(t,e,n,o,s,"max")}};Xf.className="MaxPooling3D";rt.registerClass(Xf);var Yf=class extends $b{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Pe(s),pn(o),OD(t,e,n,o,s,"avg")}};Yf.className="AveragePooling3D";rt.registerClass(Yf);var Db=class extends Bt{constructor(t){super(t),this.inputSpec=[new we({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new Nt}},Zf=class extends Db{constructor(t){super(t||{})}call(t,e){return G(()=>{let n=Pt(t);return ke(n,1)})}};Zf.className="GlobalAveragePooling1D";rt.registerClass(Zf);var Jf=class extends Db{constructor(t){super(t||{})}call(t,e){return G(()=>{let n=Pt(t);return Mr(n,1)})}};Jf.className="GlobalMaxPooling1D";rt.registerClass(Jf);var Rb=class extends Bt{constructor(t){super(t),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Pe(this.dataFormat),this.inputSpec=[new we({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat==="channelsLast"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new Nt}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Qf=class extends Rb{call(t,e){return G(()=>{let n=Pt(t);return this.dataFormat==="channelsLast"?ke(n,[1,2]):ke(n,[2,3])})}};Qf.className="GlobalAveragePooling2D";rt.registerClass(Qf);var td=class extends Rb{call(t,e){return G(()=>{let n=Pt(t);return this.dataFormat==="channelsLast"?Mr(n,[1,2]):Mr(n,[2,3])})}};td.className="GlobalMaxPooling2D";rt.registerClass(td);var Ob=class extends Bt{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=xn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},ed=class extends Ob{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=te(t),t.length<3)throw new z(`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=te(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 G(()=>(t=Pt(t),JS((i,a)=>[Pt(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};ed.className="TimeDistributed";rt.registerClass(ed);function IY(r){Xi(B$,"BidirectionalMergeMode",r)}var SY="concat",rd=class extends Ob{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=xn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=xn(o),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?SY:t.mergeMode,IY(this.mergeMode),t.weights)throw new Nt("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=ZS(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 z("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 we({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 Nt("Support for constants in Bidirectional layers is not implemented yet.");let u=i[0]instanceof Xr;for(let l of i)if(l instanceof Xr!==u)throw new z("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 G(()=>{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=Mm([o,s]):this.mergeMode==="sum"?a=J(o,s):this.mergeMode==="ave"?a=O(.5,J(o,s)):this.mergeMode==="mul"?a=O(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){Ys(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),Ys(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=xn(e.layer);if(delete e.layer,e.numConstants!=null)throw new Nt("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let o=e;return o.layer=n,new t(o)}};rd.className="Bidirectional";rt.registerClass(rd);function TY(r){return new Js(r)}function NY(r){return new cf(r)}function kY(r){return new af(r)}function _Y(r){return new lf(r)}function EY(r){return new uf(r)}function AY(r){return new mf(r)}function $Y(r){return new pf(r)}function DY(r){return new Iu(r)}function RY(r){return new sl(r)}function FY(r){return new ff(r)}function OY(r){return new il(r)}function PY(r){return new df(r)}function LY(r){return new hf(r)}function MY(r){return new gf(r)}function zY(r){return new xf(r)}function BY(r){return new yf(r)}function VY(r){return new Nf(r)}function GY(r){return new Sf(r)}function WY(r){return new Dc(r)}function UY(r){return new If(r)}function HY(r){return new Tf(r)}function qY(r){return new kf(r)}function KY(r){return new _f(r)}function jY(r){return new Ef(r)}function XY(r){return new $f(r)}function YY(r){return new Df(r)}function ZY(r){return new Ff(r)}function JY(r){return new Lf(r)}function QY(r){return new Of(r)}function t7(r){return new Pf(r)}function e7(r){return new Rf(r)}function r7(r){return new Mf(r)}function n7(r){return new Gf(r)}function o7(r){return new Wf(r)}function s7(r){return new Uf(r)}function QS(r){return new qf(r)}function i7(r){return QS(r)}function a7(r){return QS(r)}function tT(r){return new jf(r)}function l7(r){return tT(r)}function u7(r){return tT(r)}function eT(r){return new Yf(r)}function c7(r){return eT(r)}function p7(r){return eT(r)}function m7(r){return new Zf(r)}function f7(r){return new Qf(r)}function PD(r){return new Jf(r)}function LD(r){return new td(r)}function MD(r){return new Hf(r)}function zD(r){return new Kf(r)}function d7(r){return new Xf(r)}function h7(r){return new wf(r)}function g7(r){return new Ec(r)}function x7(r){return new Cf(r)}function y7(r){return new ll(r)}function b7(r){return new bf(r)}function w7(r){return new _c(r)}function C7(r){return new vf(r)}function v7(r){return new $c(r)}function I7(r){return new _n(r)}function S7(r){return new Ac(r)}function T7(r){return new rd(r)}function N7(r){return new ed(r)}var k7=PD,_7=LD,E7=MD,A7=zD;function $7(r){return new zf(r)}function D7(r){return new Bf(r)}function R7(r){return new Vf(r)}function F7(r){return new Af(r)}var VD={};jt(VD,{MAPE:()=>H7,MSE:()=>j7,binaryAccuracy:()=>O7,binaryCrossentropy:()=>P7,categoricalAccuracy:()=>M7,categoricalCrossentropy:()=>z7,cosineProximity:()=>G7,mape:()=>q7,meanAbsoluteError:()=>W7,meanAbsolutePercentageError:()=>U7,meanSquaredError:()=>K7,mse:()=>X7,precision:()=>B7,recall:()=>V7,sparseCategoricalAccuracy:()=>L7});function O7(r,t){return Oh(r,t)}function P7(r,t){return nb(r,t)}function L7(r,t){return ob(r,t)}function M7(r,t){return Ph(r,t)}function z7(r,t){return Lh(r,t)}function B7(r,t){return VS(r,t)}function V7(r,t){return mD(r,t)}function G7(r,t){return Fh(r,t)}function W7(r,t){return tf(r,t)}function U7(r,t){return bu(r,t)}function H7(r,t){return bu(r,t)}function q7(r,t){return bu(r,t)}function K7(r,t){return Zi(r,t)}function j7(r,t){return Zi(r,t)}function X7(r,t){return Zi(r,t)}var GD={};jt(GD,{modelFromJSON:()=>_D});var WD={};jt(WD,{l1:()=>Z7,l1l2:()=>Y7,l2:()=>J7});function Y7(r){return new wu(r)}function Z7(r){return DD(r)}function J7(r){return RD(r)}var Lb=class extends ol{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 Pb(r,t){return rt}var Mb=class extends Lb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new Nt("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=Pb:this.mode==="max"?this.monitorFunc=UD:this.monitor.indexOf("acc")!==-1?this.monitorFunc=UD:this.monitorFunc=Pb,this.monitorFunc===Pb&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Pb?1/0:-1/0}async onEpochEnd(t,e){await Yi(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 Q7(r){return new Mb(r)}var tZ={earlyStopping:Q7};var eZ=B();eZ.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 eo;(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"})(eo||(eo={}));var HD;(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={}))})(HD||(HD={}));var rT={};function nZ(r,t){let e={tfOpName:r,category:"custom",inputs:[],attrs:[],customExecutor:t};rT[r]=e}function zb(r){return rT[r]}function oZ(r){delete rT[r]}function I(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 wr(t.inputNames[s.inputIndexStart],e,n,o);if(s.type==="tensors")return t.inputNames.slice(a,u).map(m=>wr(m,e,n,o));let l=wr(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 wr(r,t,e,n){let[o,s]=yn(r);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Bb(o,a)]);return i!==void 0?t[Bb(o,i)][s]:void 0}function qD(r,t,e){return t[Bb(r,e.currentContextId)]}function _o(r,t){let[e,n,o]=yn(r);return[Bb(e,t&&t.currentContextId),n,o]}function Bb(r,t){return t?`${r}-${t}`:r}function yn(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 Gh(r,t,e){let n=I("pad",r,t,e);if(n==="explicit"){n=I("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 ri(r){return r.kept?r:an(r)}var nT={};jt(nT,{json:()=>sZ});var sZ=[{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 oT={};jt(oT,{json:()=>iZ});var iZ=[{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 sT={};jt(sT,{json:()=>aZ});var aZ=[{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 iT={};jt(iT,{json:()=>lZ});var lZ=[{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 aT={};jt(aT,{json:()=>uZ});var uZ=[{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 lT={};jt(lT,{json:()=>cZ});var cZ=[{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 uT={};jt(uT,{json:()=>pZ});var pZ=[{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 cT={};jt(cT,{json:()=>mZ});var mZ=[{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 pT={};jt(pT,{json:()=>fZ});var fZ=[{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 mT={};jt(mT,{json:()=>dZ});var dZ=[{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 fT={};jt(fT,{json:()=>hZ});var hZ=[{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 dT={};jt(dT,{json:()=>gZ});var gZ=[{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 hT={};jt(hT,{json:()=>xZ});var xZ=[{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 gT={};jt(gT,{json:()=>yZ});var yZ=[{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 xT={};jt(xT,{json:()=>bZ});var bZ=[{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 yT={};jt(yT,{json:()=>wZ});var wZ=[{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 bT={};jt(bT,{json:()=>CZ});var CZ=[{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 wT={};jt(wT,{json:()=>vZ});var vZ=[{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 CT={};jt(CT,{json:()=>IZ});var IZ=[{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 Wh=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let t=[nT,oT,sT,iT,aT,lT,uT,cT,pT,mT,fT,dT,hT,gT,xT,yT,bT,wT,CT],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}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),T=a[w];if(T.outputs!=null){let E=T.outputs.indexOf(C);if(E!==-1){let $=`${w}:${E}`;g.inputNames[b]=$}}g.inputs.push(T),T.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=zb(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=Vb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Vb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"string[]":a=jb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=jb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number":a=Wb(t.attr,s.tfName,s.defaultValue||0),a===void 0&&!!s.tfDeprecatedName&&(a=Wb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number[]":a=Kb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool":a=Gb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Gb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool[]":a=Yb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Yb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape":a=qb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=qb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape[]":a=Xb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Xb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype":a=Ub(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ub(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype[]":a=Hb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Hb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"func":a=KD(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=KD(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:vT(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 SZ(r){let t=B().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 jD(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):SZ(r);return t?e:e.toLowerCase()}function Vb(r,t,e,n=!1){let o=r[t];return o!=null?jD(o.s,n):e}function Gb(r,t,e){let n=r[t];return n?n.b:e}function Wb(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 vT(r){switch(typeof r=="string"&&(r=eo[r]),r){case eo.DT_FLOAT:case eo.DT_HALF:return"float32";case eo.DT_INT32:case eo.DT_INT64:case eo.DT_INT8:case eo.DT_UINT8:return"int32";case eo.DT_BOOL:return"bool";case eo.DT_DOUBLE:return"float32";case eo.DT_STRING:return"string";default:return null}}function KD(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function Ub(r,t,e){let n=r[t];return n&&n.type?vT(n.type):e}function Hb(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>vT(o)):e}function XD(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function qb(r,t,e){let n=r[t];return n&&n.shape?XD(n.shape):e}function Kb(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 jb(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>jD(s,n)):e}function Xb(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>XD(o)):e}function Yb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Zb=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 wr(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return wr(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Wb(this.node.rawAttrs,t,e);if(n.s!=null)return Vb(this.node.rawAttrs,t,e);if(n.b!=null)return Gb(this.node.rawAttrs,t,e);if(n.shape!=null)return qb(this.node.rawAttrs,t,e);if(n.type!=null)return Ub(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Kb(this.node.rawAttrs,t,e);if(n.list.s!=null)return jb(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Xb(this.node.rawAttrs,t,e);if(n.list.b!=null)return Yb(this.node.rawAttrs,t,e);if(n.list.type!=null)return Hb(this.node.rawAttrs,t,e)}return e}};var ue={};jt(ue,{OP_SCOPE_SUFFIX:()=>z0,abs:()=>$e,acos:()=>Cx,acosh:()=>vx,add:()=>J,addN:()=>J_,all:()=>cm,any:()=>Ju,argMax:()=>Oi,argMin:()=>Ix,asin:()=>Sx,asinh:()=>Tx,atan:()=>Nx,atan2:()=>kx,atanh:()=>_x,avgPool:()=>Xl,avgPool3d:()=>Ax,basicLSTMCell:()=>eE,batchNorm:()=>Li,batchNorm2d:()=>$x,batchNorm3d:()=>Dx,batchNorm4d:()=>Rx,batchToSpaceND:()=>Yl,bincount:()=>Fx,booleanMaskAsync:()=>w6,broadcastArgs:()=>nE,broadcastTo:()=>Mi,buffer:()=>vt,cast:()=>tt,ceil:()=>Ox,clipByValue:()=>Ir,clone:()=>an,complex:()=>Cn,concat:()=>se,concat1d:()=>Px,concat2d:()=>Lx,concat3d:()=>Mx,concat4d:()=>zx,conv1d:()=>mm,conv2d:()=>Sn,conv2dTranspose:()=>dm,conv3d:()=>Bx,conv3dTranspose:()=>Gx,cos:()=>Zl,cosh:()=>hm,cosineWindow:()=>Sh,cumprod:()=>ec,cumsum:()=>gm,denseBincount:()=>oE,depthToSpace:()=>Wx,depthwiseConv2d:()=>zi,diag:()=>sE,dilation2d:()=>Ux,div:()=>ct,divNoNan:()=>Hx,dot:()=>qx,dropout:()=>bS,einsum:()=>iE,elu:()=>Bi,enclosingPowerOfTwo:()=>wS,equal:()=>Ar,erf:()=>Kx,euclideanNorm:()=>jx,exp:()=>or,expandDims:()=>yr,expm1:()=>Xx,eye:()=>nc,fft:()=>iu,fill:()=>Vi,floor:()=>Gi,floorDiv:()=>um,fused:()=>lu,gather:()=>Wi,gatherND:()=>E6,greater:()=>Xe,greaterEqual:()=>Pn,ifft:()=>Qa,imag:()=>jl,image:()=>uu,inTopKAsync:()=>D6,irfft:()=>Am,isFinite:()=>Yx,isInf:()=>Zx,isNaN:()=>Jx,leakyRelu:()=>Jl,less:()=>xm,lessEqual:()=>Ln,linalg:()=>vS,linspace:()=>uE,localResponseNormalization:()=>Qx,log:()=>Sr,log1p:()=>Ql,logSigmoid:()=>ry,logSoftmax:()=>ym,logSumExp:()=>bm,logicalAnd:()=>Dr,logicalNot:()=>tu,logicalOr:()=>wm,logicalXor:()=>ny,losses:()=>D5,lowerBound:()=>cE,matMul:()=>Gt,max:()=>Mr,maxPool:()=>eu,maxPool3d:()=>sy,maxPoolWithArgmax:()=>pE,maximum:()=>Tn,mean:()=>ke,meshgrid:()=>mE,min:()=>rc,minimum:()=>Ui,mirrorPad:()=>iy,mod:()=>ay,moments:()=>oc,movingAverage:()=>v6,mul:()=>O,multiRNNCell:()=>fE,multinomial:()=>dE,neg:()=>Yt,norm:()=>Ja,notEqual:()=>qs,oneHot:()=>Ri,ones:()=>cr,onesLike:()=>br,op:()=>N,outerProduct:()=>hE,pad:()=>cn,pad1d:()=>gE,pad2d:()=>xE,pad3d:()=>yE,pad4d:()=>bE,pool:()=>ly,pow:()=>ln,prelu:()=>nu,print:()=>mx,prod:()=>uy,raggedTensorToTensor:()=>wE,rand:()=>CE,randomGamma:()=>ME,randomNormal:()=>ac,randomStandardNormal:()=>zE,randomUniform:()=>Hi,range:()=>ou,real:()=>Za,reciprocal:()=>dy,relu:()=>Rr,relu6:()=>Cm,reshape:()=>F,reverse:()=>pr,reverse1d:()=>BE,reverse2d:()=>VE,reverse3d:()=>GE,reverse4d:()=>WE,rfft:()=>au,round:()=>vm,rsqrt:()=>Im,scalar:()=>mt,scatterND:()=>S6,searchSorted:()=>Ch,selu:()=>Sm,separableConv2d:()=>Tm,setdiff1dAsync:()=>UE,sigmoid:()=>Kr,sign:()=>hy,signal:()=>$5,sin:()=>Nm,sinh:()=>km,slice:()=>Ot,slice1d:()=>_m,slice2d:()=>Ih,slice3d:()=>Em,slice4d:()=>lc,softmax:()=>su,softplus:()=>Hs,spaceToBatchND:()=>ru,sparse:()=>R5,sparseToDense:()=>k6,spectral:()=>A5,split:()=>mr,sqrt:()=>Ne,square:()=>Ht,squaredDifference:()=>$m,squeeze:()=>Mn,stack:()=>sr,step:()=>yo,stridedSlice:()=>gy,string:()=>F5,sub:()=>ut,sum:()=>ft,tan:()=>xy,tanh:()=>Pi,tensor:()=>vr,tensor1d:()=>Ve,tensor2d:()=>Ks,tensor3d:()=>gx,tensor4d:()=>HE,tensor5d:()=>qE,tensor6d:()=>KE,tile:()=>$r,topk:()=>yy,transpose:()=>Mt,truncatedNormal:()=>Dm,unique:()=>by,unsortedSegmentSum:()=>Rm,unstack:()=>Tr,upperBound:()=>jE,variable:()=>wy,where:()=>De,whereAsync:()=>vy,zeros:()=>_e,zerosLike:()=>St});var YD=(r,t,e,n=ue)=>{switch(r.op){case"BiasAdd":case"AddV2":case"Add":return[n.add(I("a",r,t,e),I("b",r,t,e))];case"AddN":return[n.addN(I("tensors",r,t,e))];case"FloorMod":case"Mod":return[n.mod(I("a",r,t,e),I("b",r,t,e))];case"Mul":return[n.mul(I("a",r,t,e),I("b",r,t,e))];case"RealDiv":case"Div":return[n.div(I("a",r,t,e),I("b",r,t,e))];case"DivNoNan":return[n.divNoNan(I("a",r,t,e),I("b",r,t,e))];case"FloorDiv":return[n.floorDiv(I("a",r,t,e),I("b",r,t,e))];case"Sub":return[n.sub(I("a",r,t,e),I("b",r,t,e))];case"Minimum":return[n.minimum(I("a",r,t,e),I("b",r,t,e))];case"Maximum":return[n.maximum(I("a",r,t,e),I("b",r,t,e))];case"Pow":return[n.pow(I("a",r,t,e),I("b",r,t,e))];case"SquaredDifference":return[n.squaredDifference(I("a",r,t,e),I("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var ZD=(r,t,e,n=ue)=>{switch(r.op){case"Abs":case"ComplexAbs":return[n.abs(I("x",r,t,e))];case"Acos":return[n.acos(I("x",r,t,e))];case"Acosh":return[n.acosh(I("x",r,t,e))];case"Asin":return[n.asin(I("x",r,t,e))];case"Asinh":return[n.asinh(I("x",r,t,e))];case"Atan":return[n.atan(I("x",r,t,e))];case"Atan2":return[n.atan2(I("x",r,t,e),I("y",r,t,e))];case"Atanh":return[n.atanh(I("x",r,t,e))];case"Ceil":return[n.ceil(I("x",r,t,e))];case"Complex":return[n.complex(I("real",r,t,e),I("imag",r,t,e))];case"Cos":return[n.cos(I("x",r,t,e))];case"Cosh":return[n.cosh(I("x",r,t,e))];case"Elu":return[n.elu(I("x",r,t,e))];case"Erf":return[n.erf(I("x",r,t,e))];case"Exp":return[n.exp(I("x",r,t,e))];case"Expm1":return[n.expm1(I("x",r,t,e))];case"Floor":return[n.floor(I("x",r,t,e))];case"Log":return[n.log(I("x",r,t,e))];case"Log1p":return[n.log1p(I("x",r,t,e))];case"Imag":return[n.imag(I("x",r,t,e))];case"Neg":return[n.neg(I("x",r,t,e))];case"Reciprocal":return[n.reciprocal(I("x",r,t,e))];case"Real":return[n.real(I("x",r,t,e))];case"Relu":return[n.relu(I("x",r,t,e))];case"Round":return[n.round(I("x",r,t,e))];case"Selu":return[n.selu(I("x",r,t,e))];case"Sigmoid":return[n.sigmoid(I("x",r,t,e))];case"Sin":return[n.sin(I("x",r,t,e))];case"Sign":return[n.sign(I("x",r,t,e))];case"Sinh":return[n.sinh(I("x",r,t,e))];case"Softplus":return[n.softplus(I("x",r,t,e))];case"Sqrt":return[n.sqrt(I("x",r,t,e))];case"Square":return[n.square(I("x",r,t,e))];case"Tanh":return[n.tanh(I("x",r,t,e))];case"Tan":return[n.tan(I("x",r,t,e))];case"ClipByValue":return[n.clipByValue(I("x",r,t,e),I("clipValueMin",r,t,e),I("clipValueMax",r,t,e))];case"Relu6":return[n.relu6(I("x",r,t,e))];case"Rsqrt":return[n.rsqrt(wr(r.inputNames[0],t,e))];case"Prod":return[n.prod(I("x",r,t,e),I("axes",r,t,e))];case"LeakyRelu":return[n.leakyRelu(I("x",r,t,e),I("alpha",r,t,e))];case"Prelu":return[n.prelu(I("x",r,t,e),I("alpha",r,t,e))];case"IsNan":return[n.isNaN(wr(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 JD(r){return!(typeof r=="number"||r.some(t=>t<0))}function nd(r,t,e){let n=Jb(r,e),o=!JD(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=Jb(s.shape,n)}),!JD(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function Jb(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 Qb=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),Oe(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,Oe(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,Tr(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 +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(wo))l[f]=wo[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},wo);for(let f of Object.keys(e))wo[f]=e[f];h0(s.config);let m=u(a,s.config,e,o);return wo=Object.assign({},p),m}else{let l=Object.assign({},wo);for(let p of Object.keys(e))wo[p]=e[p];let c=new a(s.config);return wo=Object.assign({},l),c}}}function d5(r,t){return rt?1:0}function fh(r,t){return-1*d5(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 d$(r){if(r==null)throw new z(`Invalid value in obj: ${JSON.stringify(r)}`);for(let t in r)if(r.hasOwnProperty(t))return!1;return!0}function Vi(r,t,e){if(e!=null&&r.indexOf(e)<0)throw new z(`${e} is not a valid ${t}. Valid values are ${r} or null/undefined.`)}function gy(r,t,e=0,n=1/0){return eo(e>=0),eo(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 ${h$(r)}.`)}function h$(r){return r===null?"null":Array.isArray(r)?"["+r.map(t=>h$(t)).join(",")+"]":typeof r=="string"?`"${r}"`:`${r}`}function g$(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 x5=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function S$(r){return!!r.match(x5)}function N$(r){return r===parseInt(r.toString(),10)}function So(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 Yr(r,t){if(t{if(r.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let e=el(r,1);return vy(e,[1,t,1])})}function T$(r){let t=[So(r.shape)];return D(r,t)}function E$(r){if(r.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],So(r.shape,1)];return D(r,t)}function Qa(r,t,e){return B(()=>{switch(r.rank){case 1:return dm(r,t,e);case 2:return uh(r,[t,0],[e,r.shape[1]]);case 3:return hm(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 Dt(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Dt(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 z(`sliceAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}})}function b0(r,t,e){return B(()=>{switch(r.rank){case 1:return dm(r,t,e);case 2:return uh(r,[0,t],[r.shape[0],e]);case 3:return hm(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 z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function hh(r,t,e,n){return B(()=>{switch(r.rank){case 1:return dm(r,t,e);case 2:switch(n){case 1:return Qa(r,t,e);case 2:return b0(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return Qa(r,t,e);case 2:return hm(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return b0(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return Qa(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 b0(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Sm(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 C0(r,t){switch(r.rank){case 1:return xx([r,t]);case 2:return yx([r,t],0);case 3:return bx([r,t],0);case 4:return wx([r,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function vy(r,t){if(Array.isArray(t)||(t=[t]),r.rank!==t.length)throw new z(`The length of input n (${t.length}) does not match the number of dimensions in input x (${r.rank})`);return $r(r,t)}function Nm(r,t=0,e=1,n,o){return tc(r,t,e,n,o)}function No(r,t,e,n){if(r.rank<2||t.rank<2)throw new vt(`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 vt(`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 au.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?w0(r.rank,n,pn()):null,activation:e});{let o=r.shape.slice(),s=o.pop();r=D(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=D(Ot(t,c),[u,-1]);let p=[...o,...l],m=!1,f=!1;return D(au.matMul({a:r,b:t,transposeA:m,transposeB:f,bias:n?w0(r.rank,n,pn()):null,activation:e}),p)}}function Sy(r,t,e){return B(()=>(Array.isArray(t)?t=Le(t,"int32"):t=J(t,"int32"),Oi(r,t,e)))}function lc(r){return R(r,r)}function w0(r,t,e){let n=t.shape;if(t.rank!==1&&t.rank!==r)throw new z(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${r}`);if(r===5){if(e==="channelsFirst")return n.length===1?D(t,[1,n[0],1,1,1]):D(t,[1,n[3],n[0],n[1],n[2]]);if(e==="channelsLast")return n.length===1?D(t,[1,1,1,1,n[0]]):D(t,[1].concat(n))}else if(r===4){if(e==="channelsFirst")return n.length===1?D(t,[1,n[0],1,1]):D(t,[1,n[2],n[0],n[1]]);if(e==="channelsLast")return n.length===1?D(t,[1,1,1,n[0]]):D(t,[1].concat(n))}else if(r===3){if(e==="channelsFirst")return n.length===1?D(t,[1,n[0],1]):D(t,[1,n[1],n[0]]);if(e==="channelsLast")return n.length===1?D(t,[1,1,n[0]]):D(t,[1].concat(n))}else if(r<3)return t;throw new z(`Unsupported input rank by biasAdd: ${t.rank}`)}function mn(r,t,e){return B(()=>(e==null&&(e=pn()),Re(e),X(r,w0(r.rank,t,e))))}function _$(r,t=1){if(t!==1)throw new vt(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Ri(r)}function A$(r){return B(()=>pt(r,X(Ee(r),1)))}function Ny(r,t,e,n){return B(()=>n0(r,t,e,n))}function $$(r){return B(()=>{let t=X(.5,R(.2,r));return Cr(t,0,1)})}function gu(r,t,e=!1){return e?r():t()}var D$=["fanIn","fanOut","fanAvg"],R$=["normal","uniform","truncatedNormal"];function y5(r){Vi(D$,"FanMode",r)}function b5(r){Vi(R$,"Distribution",r)}var fn=class extends Q.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},km=class extends fn{apply(t,e){return Ne(t,e)}};km.className="Zeros";Q.registerClass(km);var xu=class extends fn{apply(t,e){return lr(t,e)}};xu.className="Ones";Q.registerClass(xu);var Tm=class extends fn{constructor(t){if(super(),typeof t!="object")throw new z(`Expected argument of type ConstantConfig but got ${t}`);if(t.value===void 0)throw new z(`config must have value set but got ${t}`);this.value=t.value}apply(t,e){return B(()=>R(mt(this.value),lr(t,e)))}getConfig(){return{value:this.value}}};Tm.className="Constant";Q.registerClass(Tm);var Em=class extends fn{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 Li(t,this.minval,this.maxval,e)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Em.className="RandomUniform";Q.registerClass(Em);var _m=class extends fn{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 vt(`randomNormal does not support dType ${e}.`);return Nm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};_m.className="RandomNormal";Q.registerClass(_m);var Am=class extends fn{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 vt(`truncatedNormal does not support dType ${e}.`);return ym(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Am.className="TruncatedNormal";Q.registerClass(Am);var $m=class extends fn{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 z("Identity matrix initializer can only be used for 2D square matrices.");return R(this.gain,Yu(t[0]))})}getConfig(){return{gain:this.gain}}};$m.className="Identity";Q.registerClass($m);function w5(r,t="channelsLast"){let e,n;if(Re(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t==="channelsFirst"){let o=So(r,2);e=r[1]*o,n=r[0]*o}else if(t==="channelsLast"){let o=So(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=So(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var Hr=class extends fn{constructor(t){if(super(),t.scale<0)throw new z(`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,y5(this.mode),this.distribution=t.distribution==null?"normal":t.distribution,b5(this.distribution),this.seed=t.seed}apply(t,e){let n=w5(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 vt(`${this.getClassName()} does not support dType ${e}.`);return ym(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return Li(t,-a,a,e)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Hr.className="VarianceScaling";Q.registerClass(Hr);var uc=class extends Hr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return Hr.className}};uc.className="GlorotUniform";Q.registerClass(uc);var cc=class extends Hr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return Hr.className}};cc.className="GlorotNormal";Q.registerClass(cc);var pc=class extends Hr{constructor(t){super({scale:2,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return Hr.className}};pc.className="HeNormal";Q.registerClass(pc);var mc=class extends Hr{constructor(t){super({scale:2,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return Hr.className}};mc.className="HeUniform";Q.registerClass(mc);var fc=class extends Hr{constructor(t){super({scale:1,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return Hr.className}};fc.className="LeCunNormal";Q.registerClass(fc);var dc=class extends Hr{constructor(t){super({scale:1,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return Hr.className}};dc.className="LeCunNormal";Q.registerClass(dc);var Dm=class extends fn{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 vt("Random seed is not implemented for Orthogonal Initializer yet.")}apply(t,e){return B(()=>{if(t.length<2)throw new vt("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=Nm(n,0,1,"float32"),s=i0.gramSchmidt(o);return t[0]>t[1]&&(s=Ot(s)),R(this.gain,s)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Dm.className="Orthogonal";Q.registerClass(Dm);var F$={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 O$(r,t={}){return Bi(r,Q.SerializationMap.getMap().classNameMap,t,"initializer")}function ke(r){return Im(r)}function de(r){if(typeof r=="string"){let t=r in F$?F$[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={},O$(e)}}else return r instanceof fn?r:O$(r)}function ky(r){return Array.isArray(r)&&Array.isArray(r[0])}function Rm(r){return r.length===0?[]:Array.isArray(r[0])?r:[r]}function At(r){let t;if(Array.isArray(r)){if(r.length!==1)throw new z(`Expected Tensor length to be 1; got ${r.length}`);t=r[0]}else t=r;return t}function Jt(r){if(Array.isArray(r)&&Array.isArray(r[0])){if(r.length===1)return r=r,r[0];throw new z(`Expected exactly 1 Shape; got ${r.length}`)}else return r}function Fm(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 L$="Variable",gh=class{constructor(t,e="float32",n=L$,o=!0,s=null){this.dtype=e==null?"float32":e,this.shape=t.shape,this.id=by(),n=n==null?L$:n,this.originalName=wy(n),this.name=Cy(this.originalName),this.trainable_=o,this.constraint=s,this.val=ey(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),I5(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 I5(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(r.shape)+" vs. "+JSON.stringify(t.shape))}function xh(r){return r.map(t=>t.read())}function Om(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=by(),i!=null&&(this.originalName=wy(i),this.name=Cy(this.originalName)),this.rank=e.length}},v5=0,rl=class{constructor(t,e){this.callArgs=e,this.id=v5++,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}}},S5=0,Rt=class extends Q.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=S5++,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=Io(n)+"_"+hu(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 Ur(`The layer has never been called and thus has no defined ${e}.`);if(this.inboundNodes.length<=t)throw new z(`Asked to get ${e} at node ${t}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[t]}getInputAt(t){return Sr(this.getNodeAtIndex(t,"input").inputTensors)}getOutputAt(t){return Sr(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 Sr(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 Sr(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 z(`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 z(`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 z(`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(Sr(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=Sr(u),this.activityRegularizer!=null)throw new vt("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return i}else{let i=N5(t),a=this.computeOutputShape(i),u,l=k5(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 vt("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 Ur(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Fm(this.weights)}build(t){this.built=!0}getWeights(t=!1){return xh(t?this.trainableWeights:this.weights)}setWeights(t){B(()=>{let e=this.weights;if(e.length!==t.length)throw new z(`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=xh(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=Rm(s),i=Rm(i);let l=[],c=[],p=[];for(let m of u)l.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new rl({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 N5(r){r=xe(r);let t=[];for(let e of r)t.push(e.shape);return Sr(t)}function k5(r){return"float32"}function I0(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=Ey.get(c),m;if(p==null){let d=E5(i,t);p=d.sorted,m=d.recipientCounts,Ey.put(c,p),_y.put(c,m)}m={},o||Object.assign(m,_y.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=M$(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=M$(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:_5(n)}}function _5(r){let t={};for(let e in r)t[e]=r[e].size;return t}function M$(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 A5(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,z$);var G$={};Gt(G$,{maxNorm:()=>D5,minMaxNorm:()=>O5,nonNeg:()=>F5,unitNorm:()=>R5});function v0(r,t){return B(()=>ve(ft(R(r,r),t,!0)))}var gc=class extends Q.Serializable{getConfig(){return{}}},Pm=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=v0(t,this.axis),n=Cr(e,0,this.maxValue);return R(t,pt(n,X(sr(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Pm.className="MaxNorm";Q.registerClass(Pm);var Lm=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(sr(),v0(t,this.axis))))}getConfig(){return{axis:this.axis}}};Lm.className="UnitNorm";Q.registerClass(Lm);var Mm=class extends gc{apply(t){return Rr(t)}};Mm.className="NonNeg";Q.registerClass(Mm);var zm=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=v0(t,this.axis),n=X(R(this.rate,Cr(e,this.minValue,this.maxValue)),R(1-this.rate,e));return R(t,pt(n,X(sr(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};zm.className="MinMaxNorm";Q.registerClass(zm);var B$={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Me(r){return Im(r)}function V$(r,t={}){return Bi(r,Q.SerializationMap.getMap().classNameMap,t,"constraint")}function ze(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in B$?B$[r]:r,config:{}};return V$(e)}else return r instanceof gc?r:V$(r)}function D5(r){return new Pm(r)}function R5(r){return new Lm(r)}function F5(){return new Mm}function O5(r){return new zm(r)}var W$={};Gt(W$,{constant:()=>M5,glorotNormal:()=>H5,glorotUniform:()=>U5,heNormal:()=>q5,heUniform:()=>K5,identity:()=>G5,leCunNormal:()=>j5,leCunUniform:()=>X5,ones:()=>L5,orthogonal:()=>Y5,randomNormal:()=>B5,randomUniform:()=>z5,truncatedNormal:()=>V5,varianceScaling:()=>W5,zeros:()=>P5});function P5(){return new km}function L5(){return new xu}function M5(r){return new Tm(r)}function z5(r){return new Em(r)}function B5(r){return new _m(r)}function V5(r){return new Am(r)}function G5(r){return new $m(r)}function W5(r){return new Hr(r)}function U5(r){return new uc(r)}function H5(r){return new cc(r)}function q5(r){return new pc(r)}function K5(r){return new mc(r)}function j5(r){return new fc(r)}function X5(r){return new dc(r)}function Y5(r){return new Dm(r)}var CD={};Gt(CD,{Layer:()=>Rt,RNN:()=>Nn,RNNCell:()=>il,activation:()=>pY,add:()=>wY,alphaDropout:()=>nZ,average:()=>CY,averagePooling1d:()=>L0,averagePooling2d:()=>M0,averagePooling3d:()=>z0,avgPool1d:()=>AY,avgPool2d:()=>DY,avgPool3d:()=>FY,avgPooling1d:()=>$Y,avgPooling2d:()=>RY,avgPooling3d:()=>OY,batchNormalization:()=>TY,bidirectional:()=>XY,concatenate:()=>IY,conv1d:()=>rY,conv2d:()=>nY,conv2dTranspose:()=>oY,conv3d:()=>sY,conv3dTranspose:()=>iY,convLstm2d:()=>HY,convLstm2dCell:()=>qY,cropping2D:()=>lY,dense:()=>mY,depthwiseConv2d:()=>cY,dot:()=>kY,dropout:()=>fY,elu:()=>Y8,embedding:()=>bY,flatten:()=>hY,gaussianDropout:()=>rZ,gaussianNoise:()=>eZ,globalAveragePooling1d:()=>PY,globalAveragePooling2d:()=>LY,globalMaxPool1d:()=>ZY,globalMaxPool2d:()=>JY,globalMaxPooling1d:()=>xD,globalMaxPooling2d:()=>yD,gru:()=>zY,gruCell:()=>BY,input:()=>$0,inputLayer:()=>X8,layerNormalization:()=>EY,leakyReLU:()=>J8,lstm:()=>VY,lstmCell:()=>GY,masking:()=>oZ,maxPool1d:()=>QY,maxPool2d:()=>tZ,maxPooling1d:()=>bD,maxPooling2d:()=>wD,maxPooling3d:()=>MY,maximum:()=>vY,minimum:()=>SY,multiply:()=>NY,permute:()=>yY,prelu:()=>Q8,reLU:()=>Z8,repeatVector:()=>gY,rescaling:()=>sZ,reshape:()=>xY,rnn:()=>KY,separableConv2d:()=>aY,simpleRNN:()=>WY,simpleRNNCell:()=>UY,softmax:()=>tY,spatialDropout1d:()=>dY,stackedRNNCells:()=>jY,thresholdedReLU:()=>eY,timeDistributed:()=>YY,upSampling2d:()=>uY,zeroPadding2d:()=>_Y});async function Gi(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],R(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=R(pt(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),De(e[n])}))}},Dy=class extends nl{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 Ry(n,t))}var dn=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}`),dn.checkForDuplicate(e),dn.constructors[t]==null&&(dn.constructors[t]=[]),dn.constructors[t].push(e)}static checkForDuplicate(t){for(let e in dn.constructors)dn.constructors[+e].forEach(o=>{if(o===t)throw new z("Duplicate callback constructor.")})}static clear(){dn.constructors={}}static createCallbacks(t){let e=[];for(let n in dn.constructors){let o=+n;t>=o&&e.push(...dn.constructors[o])}return e.map(n=>new n)}};dn.constructors={};function Oy(r,t,e,n,o,s,i,a,u){let l=new Dy,c=[new S0,...dn.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new $y(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 hn(r,t={},e=!1){return Bi(r,Q.SerializationMap.getMap().classNameMap,t,"layer",e)}function yh(r,t){return B(()=>{r.dtype!=="float32"&&(r=J(r,"float32"));let e=ft(lc(r),t,!0),n=go(e.shape,sr()),o=ve(In(e,n));return pt(r,o)})}function Wi(r,t){return B(()=>Se(lc(ct(t,r)),-1))}function Bm(r,t){return B(()=>Se(Ee(ct(t,r)),-1))}function yu(r,t){return B(()=>{let e=ct(r,t),n=Cr(Ee(r),sr(),Number.MAX_VALUE),o=Ee(pt(e,n));return R(100,Se(o,-1))})}function J5(r,t){return B(()=>{let e=Cr(t,sr(),Number.MAX_VALUE),n=Ir(X(1,e)),o=Cr(r,sr(),Number.MAX_VALUE),s=Ir(X(1,o));return Se(lc(ct(n,s)),-1)})}function Q5(r,t){return B(()=>{let e=In(0,ct(1,R(r,t)));return Se(lc(e),-1)})}function t8(r,t){return B(()=>{let e=In(0,ct(1,R(r,t)));return Se(e,-1)})}function e8(r,t){return B(()=>{let e=ft(R(r,t),-1),n=Br(R(ct(1,r),t),-1);return In(0,X(1,ct(n,e)))})}function r8(r,t){return B(()=>{let e=Math.log(2),n=ct(t,r),o=ct(X(n,Ms(R(-2,n))),e);return Se(o,-1)})}function xc(r,t,e=!1){return B(()=>{if(e)t=ou(t);else{let n=ft(t,t.shape.length-1,!0);t=pt(t,n)}return t=Cr(t,sr(),1-sr()),Ut(ft(R(J(r,"float32"),Ir(t)),t.shape.length-1))})}function Vm(r,t,e=!1){return B(()=>{let n=J(Fi(T$(r)),"int32");t=Cr(t,sr(),1-sr());let o=t.shape,s=D(ki(n,o[o.length-1]),o);return xc(s,t,e)})}function n8(r,t){if(!y.arraysEqual(r.shape,t.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);return B(()=>{let e=Rr(t),n=Ut(Ee(t));return X(ct(e,R(t,r)),Jl(er(n)))})}function Gm(r,t){return B(()=>{let e;return e=Cr(t,sr(),1-sr()),e=Ir(pt(e,ct(1,e))),Se(n8(r,e),-1)})}function o8(r,t){return B(()=>{let e=Cr(r,sr(),1),n=Cr(t,sr(),1);return ft(R(r,Ir(pt(e,n))),-1)})}function s8(r,t){return B(()=>{let e=Ir(X(sr(),t));return Se(ct(t,R(r,e)),-1)})}function wh(r,t){return B(()=>{let e=yh(r,-1),n=yh(t,-1),o=R(e,n);return Ut(ft(o,-1))})}var bh={meanSquaredError:Wi,meanAbsoluteError:Bm,meanAbsolutePercentageError:yu,meanSquaredLogarithmicError:J5,squaredHinge:Q5,hinge:t8,categoricalHinge:e8,logcosh:r8,categoricalCrossentropy:xc,sparseCategoricalCrossentropy:Vm,binaryCrossentropy:Gm,kullbackLeiblerDivergence:o8,poisson:s8,cosineProximity:wh};function Py(r){if(typeof r=="string"){if(r in bh)return bh[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 z(t)}else return r}function Ch(r,t){return B(()=>{let e=R(.5,xr(t)),n=tl(He(t,e),r.dtype);return Se(Ar(r,n),-1)})}function Ih(r,t){return B(()=>tl(Ar(Ei(r,-1),Ei(t,-1)),"float32"))}function q$(r,t){return B(()=>J(ft(Dr(Ar(r,1),Ar(t,1))),"float32"))}function i8(r,t){return B(()=>J(ft(Dr(Ar(r,1),Ar(t,0))),"float32"))}function a8(r,t){return B(()=>J(ft(Dr(Ar(r,0),Ar(t,1))),"float32"))}function N0(r,t){return B(()=>{let e=q$(r,t),n=a8(r,t),o=X(e,n);return J(_e(He(o,0),pt(e,o),0),"float32")})}function K$(r,t){return B(()=>{let e=q$(r,t),n=i8(r,t),o=X(e,n);return J(_e(He(o,0),pt(e,o),0),"float32")})}function My(r,t){return Gm(r,t)}function zy(r,t){return r.rank===t.rank&&(r=Pn(r,[r.rank-1])),t=Ei(t,-1),t.dtype!==r.dtype&&(t=J(t,r.dtype)),J(Ar(r,t),"float32")}var l8=Wi,u8=Wi,c8=Bm,p8=Bm,m8=yu,f8=yu,vh=xc,d8=wh,k0=Vm,Ly={binaryAccuracy:Ch,categoricalAccuracy:Ih,precision:N0,categoricalCrossentropy:vh,sparseCategoricalCrossentropy:k0,mse:l8,MSE:u8,mae:c8,MAE:p8,mape:m8,MAPE:f8,cosine:d8};function j$(r){if(typeof r=="string"&&r in Ly)return Ly[r];if(typeof r!="string"&&r!=null)return r;throw new z(`Unknown metric ${r}`)}function Sh(r){if(eo(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r=="string")return r;{let t;for(let e of Object.keys(bh))if(bh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(Ly))if(Ly[e]===r){t=e;break}return t!==void 0?t:r.name}}function Y$(r){let t={Adagrad:()=>ic.adagrad(.01),Adadelta:()=>ic.adadelta(1,.95,sr()),Adam:()=>ic.adam(.001,.9,.999,sr()),Adamax:()=>ic.adamax(.002,.9,.999,sr(),0),RMSProp:()=>ic.rmsprop(.001,.9,0,sr()),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 z(`Unknown Optimizer ${r}`)}function E0(r,t,e=!1){if(r==null||typeof r!="object"||Object.getPrototypeOf(r)!==Object.prototype||!T0(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 T0(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"||!T0(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!T0(t))return!1;return!0}else return!1;else{let t=typeof r;return t==="string"||t==="number"||t==="boolean"}}function Z$(r,t,e,n=console.log){let o=x8(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)),By(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 By(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 y8(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()];By(a,t,e)}function b8(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;eo(C===0,"input layer has >1 nodes"),eo(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 Ur(`The tensor ${b.name} at layer "${N.name}" is part of a cycle.`);if(w.indexOf($)!==-1)return;this.containerNodes.add(Ln.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(fh);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 Ln&&this.internalContainerRefs.push(C),this.layers.push(C)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(fh);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 Ur(`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 Ur(`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 rl({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 z("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 z(`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 z(`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 z(`${i.length} of ${o} weights are not set: ${i}`)}Om(s)}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${Wm}`,e.backend="TensorFlow.js",e}toJSON(t,e=!0){let n=Vy(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=Co(null,t.length):n=xe(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Rm(t);if(e.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let a=0;aparseInt(a,10)).sort(fh);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(fh);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 vt("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(Sr(b),w)}function l(g){let x=g.name,b=hn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(C=>{if(!(C instanceof Array))throw new z(`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(;!d$(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];eo(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];eo(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 z("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 w8(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 Gy(r,t){return w8(r,t,"classWeight")}async function Wy(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 Ei(r,1);if(r.shape[1]===1)return D(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());St(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])}),Le(i,"float32")}else return null}function Q$(r,t){return R(r,t)}var C8=32;function rD(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=tD("input",r.inputNames,e),i=tD("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 tD(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 z(`The feature data generated by the dataset lacks the required ${r} key '${o}'.`);n.push(e[o])}return n}}function I8(r){if(r.length===3)throw new vt("Validation with sample weights is not implemented yet.");return{xs:r[0],ys:r[1]}}async function nD(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(eD(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=I8(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=Fy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=Oy(c,p,e.epochs,null,null,v8(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;eD(e.validationData)?C=xe(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):C=xe(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?C8:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new vt("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=S8(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=rD(r,l.value),m=c.concat(p),f=B(()=>o(m));if(St(m),u===0)for(let h=0;hX(s[h],R(d,g))),u>0&&St(x)}St(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 Um(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>Qa(n,t,e-t)):Qa(r,t,e-t)}function Hy(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>Hy(e,t)):Sy(r,t.dtype==="int32"?t:J(t,"int32")))}function qy(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}async function N8(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 z("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=Yr(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=Oy(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=Qa(_,P,V-P);F.batch=$,F.size=V-P;let W=Hy(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 vt("validationData including sample weights is not supported yet."):new z(`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=Um(o,F,P),i=o,o=Um(o,0,F),p=Um(s,F,P),a=s,s=Um(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=Fy(n.callbacks,n.yieldEvery);return await N8(r,w,b,C,f,n.epochs,n.verbose,A,N,x,n.shuffle,_,n.initialEpoch,null,null)}finally{r.isTraining=!1,To(o,t),To(s,e),To(i,t),To(a,e),To(c,u),To(p,l),m!=null&&St(m)}}function _0(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 k8(r){return r instanceof Ft}function A0(r){return Array.isArray(r)}function iD(r){return!k8(r)&&!A0(r)}function aD(r,t,e,n=!0,o=""){if(t==null||t.length===0){if(r!=null){let i=!1;if(A0(r)&&r.length>0)i=!0;else if(iD(r)){for(let a in r)if(r.hasOwnProperty(a)){i=!0;break}}else i=!0;if(i)throw new z(`Error when checking model ${o} expected no data, but got ${r}`)}return[]}if(r==null)return t.map(i=>null);let s;if(iD(r)){r=r,s=[];for(let i of t){if(r[i]==null)throw new z(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(r[i])}}else if(A0(r)){if(r=r,r.length!==t.length)throw new z(`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 z(`The model ${o} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=_0(s),e!=null)for(let i=0;i=0&&l!==c)throw new z(`${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 T8(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 z(`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 z(`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 z(`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 E8(r,t,e){let n=[Wi,Gm,xc];for(let o=0;o1)throw new z(`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 A8="layers-model",Mn=class extends Ln{constructor(t){super(t),this.isTraining=!1}summary(t,e,n=console.log){if(!this.built)throw new z("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).");Z$(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer=="string")this.optimizer_=Y$(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof Gr))throw new z("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 z(`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(Py(t.loss[i]))}else if(Array.isArray(t.loss)){if(t.loss.length!==this.outputs.length)throw new z(`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=>Py(a))}else{let i=Py(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=_8(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])};Ws("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]===Gm?["accuracy","acc"].indexOf(d)!==-1?m=Ch:["crossentropy","ce"].indexOf(d)!==-1&&(m=My):this.lossFunctions[i]===Vm?["accuracy","acc"].indexOf(d)!==-1?m=zy:["crossentropy","ce"].indexOf(d)!==-1&&(m=k0):["accuracy","acc"].indexOf(d)!==-1?m=Ih:["crossentropy","ce"].indexOf(d)!==-1&&(m=vh);let x;["accuracy","acc"].indexOf(d)!==-1?x="acc":["crossentropy","ce"].indexOf(d)!==-1&&(x="ce"),f=m,p=c+x}else f=j$(d),p=c+Sh(d);let h;Ws(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;Uy(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 Sr(l)}finally{To(i[0],t),To(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),oD(this,t,e)}checkNumSamples(t,e,n,o="steps"){let s;if(n!=null){if(s=null,e!=null)throw new z(`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 z(`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 z("`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 z(`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 z(`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 vt("Verbose predictLoop() is not implemented yet.");let s=qy(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=Um(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return Sr(i.map(a=>ne(a,0)))})}predict(t,e={}){let n=_0(t);lD(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return Uy(o),this.predictLoop(n,o)}finally{To(n,t)}}predictOnBatch(t){lD(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 Ur("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 z(`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=Gy(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,"steps"),a=[];if(o>0)throw new vt("Verbose mode is not implemented yet.");if(s!=null)throw new vt("steps mode in testLoop() is not implemented yet");{let u=qy(i,n),l=Le(Yr(0,i));for(let c=0;c1&&(s+=`_${g0(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;lIo(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]=Io(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[Io(Sh(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>Io(Sh(t)));{let t={};for(let e in this.metrics)t[e]=Io(Sh(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=hn(e),o;if(typeof t.loss=="string")o=Ja(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>Ja(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=Ja(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>Ja(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=Ja(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t=="string"){let l=Er.getSaveHandlers(t);if(l.length===0)throw new z(`Cannot find any save handlers for URL '${t}'`);if(l.length>1)throw new z(`Found more than one (${l.length}) save handlers for URL '${t}'`);t=l[0]}if(t.save==null)throw new z("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Er.encodeWeights(this.getNamedWeights(e)),o=!1,s=null,a={modelTopology:this.toJSON(s,o),format:A8,generatedBy:`TensorFlow.js tfjs-layers v${Wm}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l="optimizer",{data:c,specs:p}=await Er.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=Er.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(E0(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){E0(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};Mn.className="Model";Q.registerClass(Mn);var Ky=class extends Mn{};Ky.className="Functional";Q.registerClass(Ky);async function uD(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=hn(n,t);if(r.weightsManifest!=null){let s=await Er.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),St(s)}return o}async function cD(r,t){if(t==null&&(t={}),typeof r=="string"){let e=Er.getLoadHandlers(r,t);if(e.length===0)e.push(Er.browserHTTPRequest(r,t));else if(e.length>1)throw new z(`Found more than one (${e.length}) load handlers for URL '${r}'`);r=e[0]}return $8(r,void 0,t)}async function $8(r,t,e){if(e==null&&(e={}),r.load==null)throw new z("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=hn(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 z("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:l,optimizerWeights:c}=D8(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),St(l),St(c.map(p=>p.tensor))}return a}function D8(r,t){let e=Er.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 Ui=class extends Mn{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:hu("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 z(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let e=t instanceof Ui||t instanceof Mn,n;if(e){if(n=t,n.outputs.length!==1)throw new z("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 z("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 z("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let o=Ty({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 z(`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 z("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=I0(this.outputs[0])}this.inboundNodes=[],new rl({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Co(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(Jt(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 Mn({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 Ur("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 Ur("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 Ur("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 Ur("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 z("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 Ui))throw new vt(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=hn(u,void 0,o);o&&c.setFastWeightInitDuringBuild(!0),a.add(c)}return a}set stopTraining(t){if(this.model==null)throw new z("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 z("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}}};Ui.className="Sequential";Q.registerClass(Ui);function R8(r){return new Mn(r)}function F8(r){return new Ui(r)}function O8(r,t){return t==null&&(t={}),cD(r,t)}function $0(r){return Ty(r)}function P8(r,t){dn.registerCallbackConstructor(r,t)}var Qr=class extends Q.Serializable{getConfig(){return{}}},jy=class extends Qr{apply(t,e=1){return _$(t,e)}};jy.className="elu";Q.registerClass(jy);var Xy=class extends Qr{apply(t){return cm(t)}};Xy.className="selu";Q.registerClass(Xy);var Yy=class extends Qr{apply(t){return Rr(t)}};Yy.className="relu";Q.registerClass(Yy);var Zy=class extends Qr{apply(t){return B(()=>Pi(6,Rr(t)))}};Zy.className="relu6";Q.registerClass(Zy);var Jy=class extends Qr{apply(t){return t}};Jy.className="linear";Q.registerClass(Jy);var Qy=class extends Qr{apply(t){return Xr(t)}};Qy.className="sigmoid";Q.registerClass(Qy);var tb=class extends Qr{apply(t){return $$(t)}};tb.className="hardSigmoid";Q.registerClass(tb);var eb=class extends Qr{apply(t){return Ms(t)}};eb.className="softplus";Q.registerClass(eb);var rb=class extends Qr{apply(t){return A$(t)}};rb.className="softsign";Q.registerClass(rb);var nb=class extends Qr{apply(t){return _i(t)}};nb.className="tanh";Q.registerClass(nb);var Hm=class extends Qr{apply(t,e=-1){return ou(t,e)}};Hm.className="softmax";Q.registerClass(Hm);var ob=class extends Qr{apply(t,e=-1){return om(t,e)}};ob.className="logSoftmax";Q.registerClass(ob);var sb=class extends Qr{apply(t,e=1){return B(()=>R(Xr(R(t,e)),t))}};sb.className="swish";Q.registerClass(sb);var ib=class extends Qr{apply(t){return B(()=>R(t,_i(Ms(t))))}};ib.className="mish";Q.registerClass(ib);function qs(r){return r.getClassName()}function D0(r,t={}){return Bi(r,Q.SerializationMap.getMap().classNameMap,t,"activation")}function Ks(r){if(r==null){let t={};return t.className="linear",t.config={},D0(t)}if(typeof r=="string"){let t={};return t.className=r,t.config={},D0(t)}else return r instanceof Qr?r:D0(r)}function R0(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 ab=class extends Q.Serializable{},bu=class extends ab{constructor(t){super(),R0(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(R(this.l1,Ee(t))))),this.hasL2&&(e=X(e,ft(R(this.l2,lc(t))))),D(e,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(t,e){return new t({l1:e.l1,l2:e.l2})}};bu.className="L1L2";Q.registerClass(bu);function fD(r){return R0(r),new bu({l1:r!=null?r.l1:null,l2:0})}function dD(r){return R0(r),new bu({l2:r!=null?r.l2:null,l1:0})}var pD={l1l2:"L1L2"};function me(r){return Im(r)}function mD(r,t={}){return Bi(r,Q.SerializationMap.getMap().classNameMap,t,"regularizer")}function be(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in pD?pD[r]:r,config:{}};return mD(e)}else return r instanceof ab?r:mD(r)}var qm=class extends Rt{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=At(t);let n=Rr(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}};qm.className="ReLU";Q.registerClass(qm);var Km=class extends Rt{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=At(t);return Zl(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};Km.className="LeakyReLU";Q.registerClass(Km);var jm=class extends Rt{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=ze(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 z(`Expected sharedAxes to be a number or an array of numbers, but got ${t.sharedAxes}`)}build(t){t=Jt(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(Re(t),t==="channelsFirst"?Ot(r,[0,2,3,1]):r))}function F0(r,t){return B(()=>(Re(t),t==="channelsFirst"?Ot(r,[0,2,3,4,1]):r))}function M8(r,t,e,n=1,o="valid",s,i=1){return B(()=>{if(s==null&&(s=pn()),Re(s),r.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${r.shape.length} instead.`);if(t.shape.length!==3)throw new z(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(e!=null&&e.shape.length!==1)throw new z(`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 vt("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let a=Jp(r,t,n,o==="same"?"same":"valid","NWC",i);return e!=null&&(a=mn(a,e)),a})}function hD(r,t,e,n=[1,1],o="valid",s,i,a=null){return B(()=>{if(s==null&&(s=pn()),Re(s),r.rank!==3&&r.rank!==4)throw new z(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${r.rank}.`);if(t.rank!==3&&t.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let u=Nh(r,s);if(o==="causal")throw new vt("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return u=au.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=pn()),Re(s),r.rank!==4&&r.rank!==5)throw new z(`conv3dWithBias expects input to be of rank 4 or 5, but received ${r.rank}.`);if(t.rank!==4&&t.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let a=F0(r,s);if(o==="causal")throw new vt("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return a=Cx(a,t,n,o==="same"?"same":"valid","NDHWC",i),e!=null&&(a=mn(a,e)),s==="channelsFirst"&&(a=Ot(a,[0,4,1,2,3])),a})}var bc=class extends Rt{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 vt(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=wu(e.kernelSize,t,"kernelSize"),this.strides=wu(e.strides==null?1:e.strides,t,"strides"),this.padding=e.padding==null?"valid":e.padding,cn(this.padding),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Re(this.dataFormat),this.activation=Ks(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=de(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=ze(e.biasConstraint),this.biasRegularizer=be(e.biasRegularizer),this.activityRegularizer=be(e.activityRegularizer),this.dilationRate=wu(e.dilationRate==null?1:e.dilationRate,t,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new z(`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 z(`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 z(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(t){if(eo("kernelSize"in t,"required key 'kernelSize' not in config"),typeof t.kernelSize!="number"&&!gy(t.kernelSize,"number",1,3))throw new z(`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:qs(this.activation),useBias:this.useBias,biasInitializer:ke(this.biasInitializer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),biasConstraint:Me(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},Cu=class extends bc{constructor(t,e){super(t,e),this.kernel=null,Cu.verifyArgs(e),this.filters=e.filters,Ze(this.filters,"filters"),this.kernelInitializer=de(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=ze(e.kernelConstraint),this.kernelRegularizer=be(e.kernelRegularizer)}build(t){t=Jt(t);let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new z(`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=At(t);let n,o=this.bias==null?null:this.bias.read(),s=xy(this.activation.getClassName());if(s!=null&&this.rank===2)n=hD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=M8(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=hD(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 vt("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=Jt(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)}`)}},ol=class extends Cu{constructor(t){super(2,t),ol.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!gy(t.kernelSize,"number",1,2))throw new z(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(t.kernelSize)}.`)}};ol.className="Conv2D";Q.registerClass(ol);var sl=class extends Cu{constructor(t){super(3,t),sl.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 z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};sl.className="Conv3D";Q.registerClass(sl);var Jm=class extends ol{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new z(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Jt(t),t.length!==4)throw new z("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 z("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=At(t);if(n.shape.length!==4)throw new z(`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=js(u,m,c,this.padding),h=js(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!=="channelsLast"&&(n=Ot(n,[0,2,3,1]));let x=tm(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(x=Ot(x,[0,3,1,2])),this.bias!=null&&(x=mn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=Jt(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]=js(e[o],u,i,this.padding),e[s]=js(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};Jm.className="Conv2DTranspose";Q.registerClass(Jm);var Qm=class extends sl{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new z(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Jt(t),t.length!==5)throw new z("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 z("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=At(t);if(n.shape.length!==5)throw new z(`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=js(l,h,m,this.padding),w=js(c,g,f,this.padding),C=js(p,x,d,this.padding),N=[s,b,w,C,this.filters];this.dataFormat!=="channelsLast"&&(n=Ot(n,[0,2,3,4,1]));let _=vx(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(_=Ot(_,[0,4,1,2,3])),this.bias!==null&&(_=mn(_,this.bias.read(),this.dataFormat)),this.activation!==null&&(_=this.activation.apply(_)),_})}computeOutputShape(t){t=Jt(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]=js(e[o],c,a,this.padding),e[s]=js(e[s],p,u,this.padding),e[i]=js(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};Qm.className="Conv3DTranspose";Q.registerClass(Qm);var lb=class extends Cu{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 z("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(e.kernelInitializer!=null||e.kernelRegularizer!=null||e.kernelConstraint!=null)throw new z("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 z(`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=ze(e.depthwiseConstraint),this.pointwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=be(e.pointwiseRegularizer),this.pointwiseConstraint=ze(e.pointwiseConstraint)}build(t){if(t=Jt(t),t.length{t=At(t);let n;if(this.rank===1)throw new vt("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(t=Ot(t,[0,2,3,1])),n=pm(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=mn(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=ke(this.depthwiseInitializer),t.pointwiseInitializer=ke(this.pointwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.pointwiseRegularizer=me(this.pointwiseRegularizer),t.depthwiseConstraint=Me(this.depthwiseConstraint),t.pointwiseConstraint=Me(this.pointwiseConstraint),t}};lb.className="SeparableConv";var tf=class extends lb{constructor(t){super(2,t)}};tf.className="SeparableConv2D";Q.registerClass(tf);var Iu=class extends Cu{constructor(t){super(1,t),Iu.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"&&!gy(t.kernelSize,"number",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};Iu.className="Conv1D";Q.registerClass(Iu);var ef=class extends Rt{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=At(t),this.dataFormat==="channelsLast"){let n=hh(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return hh(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=hh(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return hh(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}};ef.className="Cropping2D";Q.registerClass(ef);var rf=class extends Rt{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,Re(this.dataFormat),this.interpolation=t.interpolation==null?"nearest":t.interpolation,v$(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=At(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"?lu.resizeNearestNeighbor(n,[s,i]):lu.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"?lu.resizeNearestNeighbor(n,[s,i]):lu.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}};rf.className="UpSampling2D";Q.registerClass(rf);function B8(r,t,e=[1,1],n="valid",o,s){return B(()=>{o==null&&(o=pn()),Re(o);let i=Nh(r,o);if(r.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(t.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Di(i,t,e,n==="same"?"same":"valid","NHWC",s),o==="channelsFirst"&&(i=Ot(i,[0,3,1,2])),i})}var nf=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=ze(t.depthwiseConstraint),this.depthwiseRegularizer=be(t.depthwiseRegularizer)}build(t){if(t=Jt(t),t.length<4)throw new z(`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 z(`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=At(t);let n=B8(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=mn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=Jt(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=Sn(e,this.kernelSize[0],this.padding,this.strides[0]),i=Sn(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=ke(this.depthwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.depthwiseConstraint=Me(this.depthwiseRegularizer),t}};nf.className="DepthwiseConv2D";Q.registerClass(nf);function O0(r,t,e,n){if(Array.isArray(r)){if(t!=null||e!=null)throw new z("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 P0(r,t,e,n=!1,o,s,i=!1,a=!1){return B(()=>{let u=t.shape.length;if(u<3)throw new z(`Input should be at least 3D, but is ${u}D.`);let l=[1,0].concat(Yr(2,u));if(t=Ot(t,l),s!=null)throw new vt("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=gr(o,-1)),o=Ot(o,l)),n&&(t=ur(t,0),o!=null&&(o=ur(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(xr(N),N),A=X(R(w[0],N),R(m[0],_)),$=m.map((F,P)=>X(R(w[1][P],N),R(F,_)));return{output:A,newStates:$}});p=C.output,m=C.newStates}a&&c.push(p)}let g;return a&&(g=rr(c,1)),[p,g,m]})}var Nn=class extends Rt{constructor(t){super(t);let e;if(t.cell==null)throw new z("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 z("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 Yr(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){ky(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 z(`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 z("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)St(this.states_),this.keptStates!=null&&(St(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 z(`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()):St(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=O0(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=At(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 z(`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=P0((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=el(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?vy(e,[1,n]):e):this.cell.stateSize>1?[vy(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()===Nn.className&&(e.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,t,e)}static fromConfig(t,e,n={}){let o=e.cell,s=hn(o,n);return new t(Object.assign(e,{cell:s}))}};Nn.className="RNN";Q.registerClass(Nn);var il=class extends Rt{},wc=class extends il{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=Ks(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=ze(t.kernelConstraint),this.recurrentConstraint=ze(t.recurrentConstraint),this.biasConstraint=ze(t.biasConstraint),this.dropout=ac([1,Us([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,Us([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Jt(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 z(`SimpleRNNCell expects 2 input Tensors, got ${t.length}.`);let n=t[1];t=t[0];let o=e.training==null?!1:e.training;0xr(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0xr(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=No(R(t,i),this.kernel.read()):s=No(t,this.kernel.read()),this.bias!=null&&(s=mn(s,this.bias.read())),a!=null&&(n=R(n,a));let u=X(s,No(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:qs(this.activation),useBias:this.useBias,kernelInitializer:ke(this.kernelInitializer),recurrentInitializer:ke(this.recurrentInitializer),biasInitializer:ke(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),recurrentRegularizer:me(this.recurrentRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:Me(this.kernelConstraint),recurrentConstraint:Me(this.recurrentConstraint),biasConstraint:Me(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},t,e)}};wc.className="SimpleRNNCell";Q.registerClass(wc);var of=class extends Nn{constructor(t){t.cell=new wc(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(St(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(St(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)}};of.className="SimpleRNN";Q.registerClass(of);var Cc=class extends il{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 z("GRUCell does not support reset_after parameter set to true.");this.units=t.units,Ze(this.units,"units"),this.activation=Ks(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Ks(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=ze(t.kernelConstraint),this.recurrentConstraint=ze(t.recurrentConstraint),this.biasConstraint=ze(t.biasConstraint),this.dropout=ac([1,Us([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,Us([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=Jt(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 z(`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],0xr(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0xr(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&&(St(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(St(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)}};sf.className="GRU";Q.registerClass(sf);var al=class extends il{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=Ks(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Ks(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=ze(t.kernelConstraint),this.recurrentConstraint=ze(t.recurrentConstraint),this.biasConstraint=ze(t.biasConstraint),this.dropout=ac([1,Us([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,Us([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=Jt(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 fn{apply(u,l){let c=s.apply([i]),p=new xu().apply([i]),m=s.apply([i*2]);return C0(C0(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 z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let o=t[1],s=t[2];t=t[0],0xr(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0xr(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&&(St(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(St(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="LSTM";Q.registerClass(af);var Ic=class extends il{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{Ws(`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({},t,o)}static fromConfig(t,e,n={}){let o=[];for(let s of e.cells)o.push(hn(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 xh(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):Ny(t(),e),a=()=>gu(i,t,n);return!o||o<=1?De(a().clone()):Array(o).fill(void 0).map(a).map(l=>De(l.clone()))}var V8=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&&(St(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(St(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),e&&e.constants)throw new z("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 z("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)St(this.states_),this.keptStates!=null&&(St(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 z(`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()):St(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=Sn(l,o[0],s,i[0],a[0]),m=Sn(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};ub.className="ConvRNN2D";var vc=class extends al{constructor(t){let{filters:e,kernelSize:n,strides:o,padding:s,dataFormat:i,dilationRate:a}=t;super(Object.assign({},t,{units:e})),this.filters=e,Ze(this.filters,"filters"),this.kernelSize=wu(n,2,"kernelSize"),this.kernelSize.forEach(u=>Ze(u,"kernelSize")),this.strides=wu(o||1,2,"strides"),this.strides.forEach(u=>Ze(u,"strides")),this.padding=s||"valid",cn(this.padding),this.dataFormat=i||"channelsLast",Re(this.dataFormat),this.dilationRate=wu(a||1,2,"dilationRate"),this.dilationRate.forEach(u=>Ze(u,"dilationRate"))}build(t){var e;t=Jt(t);let n=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[n]==null)throw new z(`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 fn{apply(m,f){let d=l.apply([c]),h=lr([c]),g=l.apply([c*2]);return Sm([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 z(`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;0xr(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(rt,ot,at)=>!ot||!ot[at]?rt:R(ot[at],rt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0xr(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]=cr(this.kernel.read(),a,w),[$,F,P,V]=this.useBias?cr(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]=cr(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(R(Y,i),R(j,this.activation.apply(X(m,x)))),et=R(this.recurrentActivation.apply(X(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=V8(t,["units"]),o={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},n,o)}inputConv(t,e,n,o){let s=Cn(t,e,this.strides,o||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?mn(s,n,this.dataFormat):s}recurrentConv(t,e){return Cn(t,e,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};vc.className="ConvLSTM2DCell";Q.registerClass(vc);var lf=class extends ub{constructor(t){let e=new vc(t);super(Object.assign({},t,{cell:e}))}static fromConfig(t,e){return new t(e)}};lf.className="ConvLSTM2D";Q.registerClass(lf);var Sc=class extends Rt{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=At(t);if(0Ny(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()}};Sc.className="Dropout";Q.registerClass(Sc);var uf=class extends Sc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};uf.className="SpatialDropout1D";Q.registerClass(uf);var cf=class extends Rt{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=Ks(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=ze(t.kernelConstraint),this.biasConstraint=ze(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=Jt(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=Jt(t);let e=t.slice();return e[e.length-1]=this.units,e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=At(t),o=xy(this.activation.getClassName()),s;return o!=null?s=No(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=No(n,this.kernel.read()),this.bias!=null&&(s=mn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:qs(this.activation),useBias:this.useBias,kernelInitializer:ke(this.kernelInitializer),biasInitializer:ke(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:Me(this.kernelConstraint),biasConstraint:Me(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};cf.className="Dense";Q.registerClass(cf);var pf=class extends Rt{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=Jt(t);for(let e of t.slice(1))if(e==null)throw new z(`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],So(t,1)]}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=At(t);if(this.dataFormat==="channelsFirst"&&n.rank>1){let o=[0];for(let s=2;s{this.invokeCallHook(t,e);let n=At(t);return this.activation.apply(n)})}getConfig(){let t={activation:qs(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};mf.className="Activation";Q.registerClass(mf);var ff=class extends Rt{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=At(t),k$(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};ff.className="RepeatVector";Q.registerClass(ff);var df=class extends Rt{constructor(t){super(t),this.targetShape=t.targetShape;for(let e=0;e{this.invokeCallHook(t,e);let n=At(t),o=n.shape,s=o.slice(0,1).concat(this.fixUnknownDimension(o.slice(1),this.targetShape));return D(n,s)})}getConfig(){let t={targetShape:this.targetShape},e=super.getConfig();return Object.assign(t,e),t}};df.className="Reshape";Q.registerClass(df);var hf=class extends Rt{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=Yr(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=Jt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Ot(At(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};hf.className="Permute";Q.registerClass(hf);var gf=class extends Rt{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=At(t),o=-1;return Hu(zs(n,this.maskValue),o)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=At(t),o=-1,s=!0,i=Hu(zs(n,this.maskValue),o,s);return R(n,J(i,n.dtype))})}};gf.className="Masking";Q.registerClass(gf);var xf=class extends Rt{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=ze(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=At(t),zs(t,It(t))):null)}computeOutputShape(t){if(t=Jt(t),this.inputLength==null)return[...t,this.outputDim];let e=xe(this.inputLength);if(e.length!==t.length-1)throw new z(`"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=At(t);n.dtype!=="int32"&&(n=tl(n,"int32"));let o=Sy(this.embeddings.read(),D(n,[n.size]));return D(o,Jt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:ke(this.embeddingsInitializer),embeddingsRegularizer:me(this.embeddingsRegularizer),activityRegularizer:me(this.activityRegularizer),embeddingsConstraint:Me(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};xf.className="Embedding";Q.registerClass(xf);var ul=class extends Rt{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new vt}computeElementwiseOpOutputShape(t,e){if(t==null||e==null)return null;if(t.length1)throw new z(`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=Us(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=Yr(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=D(Ot(D(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(Yr(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 z("`mask` should be an Array");if(!Array.isArray(t))throw new z("`inputs` should be an Array");if(e.length!==t.length)throw new z(`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:gr(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 z("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(t))}mergeFunction(t){return B(()=>Sm(t,this.axis))}computeOutputShape(t){if(!(Array.isArray(t)&&Array.isArray(t[0])))throw new z("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 z("`mask` should be an array for Concatenate");if(!Array.isArray(t))throw new z("`inputs` should be an array for Concatenate");if(e.length!==t.length)throw new z(`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 vt("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 vt("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 vt("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 z(`Dimension incompatibility: ${e[o[0]]} !== ${n[o[1]]}`)}mergeFunction(t){if(t.length!==2)throw new z(`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)=>kh(s,t[i].shape.length)):o=[kh(this.axes,e.shape.length),kh(this.axes,n.shape.length)],this.normalize&&(e=yh(e,o[0]),n=yh(n,o[1])),G8(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[kh(this.axes,t.length),kh(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 vt("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}};Sf.className="Dot";Q.registerClass(Sf);var Nf=class extends Rt{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=At(t);return gu(()=>X(Nm(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};Nf.className="GaussianNoise";Q.registerClass(Nf);var kf=class extends Rt{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=At(t);return this.rate>0&&this.rate<1?gu(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return R(n,Nm(n.shape,1,s))},()=>n,e.training||!1):n})}};kf.className="GaussianDropout";Q.registerClass(kf);var Tf=class extends Rt{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate,this.noiseShape=t.noiseShape}_getNoiseShape(t){return this.noiseShape||At(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 gu(()=>{let s=At(t),i=1.6732632423543772,a=1.0507009873554805,u=-i*a,l=Fn(Li(n),this.rate);l=tl(l,"float32");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=X(R(s,l),R(X(l,-1),u));return X(R(m,c),p)},()=>At(t),e.training||!1)}return t})}};Tf.className="AlphaDropout";Q.registerClass(Tf);function Th(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=mx(r,t,e,n,o,s);else if(r.rank===3)i=fx(r,t,e,n,o,s);else if(r.rank===4)i=dx(r,t,e,n,o,s);else throw new vt(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function W8(r,t,e,n,o=.001){return B(()=>{let s=Zu(r,n),i=s.mean,a=s.variance;return[Th(r,i,a,e,t,o),i,a]})}function U8(r,t,e,n,o=.001){return B(()=>{let s=Zu(r,n),i=s.mean,a=s.variance,u=[];for(let d of Yr(0,r.rank))n.indexOf(d)!==-1?u.push(1):u.push(r.shape[d]);let l=D(i,u),c=D(a,u),p=t==null?null:D(t,u),m=e==null?null:D(e,u);return[Th(r,l,c,m,p,o),i,a]})}function H8(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),Yr(0,r.rank-1))?W8(r,t,e,n,o):U8(r,t,e,n,o)}var Ef=class extends Rt{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=ze(t.betaConstraint),this.gammaConstraint=ze(t.gammaConstraint),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer)}build(t){t=Jt(t);let e=this.axis>=0?this.axis:this.axis+t.length,n=t[e];if(n==null)throw new z(`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=At(t),s=o.shape,i=s.length,a=Yr(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=Co(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,Yr(0,i).slice(0,i-1)),m=()=>{if(p){let b=D(this.movingMean.read(),l),w=D(this.movingVariance.read(),l),C=this.center?D(this.beta.read(),l):null,N=this.scale?D(this.gamma.read(),l):null;return Th(o,b,w,C,N,this.epsilon)}else return Th(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]=H8(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,C)=>{B(()=>{let N=1-C,_=b.read(),A=R(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:ke(this.betaInitializer),gammaInitializer:ke(this.gammaInitializer),movingMeanInitializer:ke(this.movingMeanInitializer),movingVarianceInitializer:ke(this.movingVarianceInitializer),betaRegularizer:me(this.betaRegularizer),gammaRegularizer:me(this.gammaRegularizer),betaConstraint:Me(this.betaConstraint),gammaConstraint:Me(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};Ef.className="BatchNormalization";Q.registerClass(Ef);var _f=class extends Rt{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=Jt(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=At(t),o=n.shape,s=o.length;return B(()=>{let{mean:a,variance:u}=Zu(n,this.axis,!0),l=Co(1,s);for(let h of this.axis)l[h]=o[h];let c=h=>h!=null&&h.shape.length!==s?D(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 z(`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 z("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(e==null&&(e=pn()),e!=="channelsLast"&&e!=="channelsFirst")throw new z(`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]],un(r,n)})}var Af=class extends Rt{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?pn():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 z(`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 z(`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 z(`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=Jt(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(()=>q8(At(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};Af.className="ZeroPadding2D";Q.registerClass(Af);function hb(r,t,e,n,o,s){return B(()=>{Re(o),x0(s),cn(n),e==null&&(e=[1,1]),n==null&&(n="valid"),o==null&&(o=pn()),s==null&&(s="max"),r=Nh(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=tu(r,t,e,a):i=jl(r,t,e,a),o==="channelsFirst"&&(i=Ot(i,[0,3,1,2])),i})}function gD(r,t,e,n,o,s){return B(()=>{Re(o),x0(s),cn(n),e==null&&(e=[1,1,1]),n==null&&(n="valid"),o==null&&(o=pn()),s==null&&(s="max"),r=F0(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=Bx(r,t,e,a):i=px(r,t,e,a),o==="channelsFirst"&&(i=Ot(i,[0,4,1,2,3])),i})}var cb=class extends Rt{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 z(`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 z(`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,cn(this.padding),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){t=Jt(t);let e=Sn(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=el(At(t),2);let n=this.poolingFunction(At(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Pn(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},$f=class extends cb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Re(s),cn(o),hb(t,e,n,o,s,"max")}};$f.className="MaxPooling1D";Q.registerClass($f);var Df=class extends cb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Re(s),cn(o),hb(t,e,n,o,s,"avg")}};Df.className="AveragePooling1D";Q.registerClass(Df);var pb=class extends Rt{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 z(`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,Re(this.dataFormat),cn(this.padding),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=Jt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2];return e=Sn(e,this.poolSize[0],this.padding,this.strides[0]),n=Sn(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(At(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}},Rf=class extends pb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Re(s),cn(o),hb(t,e,n,o,s,"max")}};Rf.className="MaxPooling2D";Q.registerClass(Rf);var Ff=class extends pb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Re(s),cn(o),hb(t,e,n,o,s,"avg")}};Ff.className="AveragePooling2D";Q.registerClass(Ff);var mb=class extends Rt{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 z(`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,Re(this.dataFormat),cn(this.padding),this.inputSpec=[new ye({ndim:5})]}computeOutputShape(t){t=Jt(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=Sn(e,this.poolSize[0],this.padding,this.strides[0]),n=Sn(n,this.poolSize[1],this.padding,this.strides[1]),o=Sn(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(At(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}},Of=class extends mb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Re(s),cn(o),gD(t,e,n,o,s,"max")}};Of.className="MaxPooling3D";Q.registerClass(Of);var Pf=class extends mb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Re(s),cn(o),gD(t,e,n,o,s,"avg")}};Pf.className="AveragePooling3D";Q.registerClass(Pf);var fb=class extends Rt{constructor(t){super(t),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new vt}},Lf=class extends fb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=At(t);return Se(n,1)})}};Lf.className="GlobalAveragePooling1D";Q.registerClass(Lf);var Mf=class extends fb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=At(t);return Br(n,1)})}};Mf.className="GlobalMaxPooling1D";Q.registerClass(Mf);var db=class extends Rt{constructor(t){super(t),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Re(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 vt}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},zf=class extends db{call(t,e){return B(()=>{let n=At(t);return this.dataFormat==="channelsLast"?Se(n,[1,2]):Se(n,[2,3])})}};zf.className="GlobalAveragePooling2D";Q.registerClass(zf);var Bf=class extends db{call(t,e){return B(()=>{let n=At(t);return this.dataFormat==="channelsLast"?Br(n,[1,2]):Br(n,[2,3])})}};Bf.className="GlobalMaxPooling2D";Q.registerClass(Bf);var gb=class extends Rt{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=hn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},Vf=class extends gb{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=Jt(t),t.length<3)throw new z(`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=Jt(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=At(t),P0((i,a)=>[At(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};Vf.className="TimeDistributed";Q.registerClass(Vf);function K8(r){Vi(C$,"BidirectionalMergeMode",r)}var j8="concat",Gf=class extends gb{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=hn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=hn(o),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?j8:t.mergeMode,K8(this.mergeMode),t.weights)throw new vt("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()):Sr(o)}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=O0(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 z("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 vt("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 z("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=ur(s,1));let a;return this.mergeMode==="concat"?a=Sm([o,s]):this.mergeMode==="sum"?a=X(o,s):this.mergeMode==="ave"?a=R(.5,X(o,s)):this.mergeMode==="mul"?a=R(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){Ws(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),Ws(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=hn(e.layer);if(delete e.layer,e.numConstants!=null)throw new vt("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let o=e;return o.layer=n,new t(o)}};Gf.className="Bidirectional";Q.registerClass(Gf);var Wf=class extends Rt{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=At(t),t.dtype!=="float32"&&(t=tl(t,"float32")),X(R(t,this.scale),this.offset)))}};Wf.className="Rescaling";Q.registerClass(Wf);function X8(r){return new Hs(r)}function Y8(r){return new Xm(r)}function Z8(r){return new qm(r)}function J8(r){return new Km(r)}function Q8(r){return new jm(r)}function tY(r){return new Zm(r)}function eY(r){return new Ym(r)}function rY(r){return new Iu(r)}function nY(r){return new ol(r)}function oY(r){return new Jm(r)}function sY(r){return new sl(r)}function iY(r){return new Qm(r)}function aY(r){return new tf(r)}function lY(r){return new ef(r)}function uY(r){return new rf(r)}function cY(r){return new nf(r)}function pY(r){return new mf(r)}function mY(r){return new cf(r)}function fY(r){return new Sc(r)}function dY(r){return new uf(r)}function hY(r){return new pf(r)}function gY(r){return new ff(r)}function xY(r){return new df(r)}function yY(r){return new hf(r)}function bY(r){return new xf(r)}function wY(r){return new yf(r)}function CY(r){return new wf(r)}function IY(r){return new vf(r)}function vY(r){return new Cf(r)}function SY(r){return new If(r)}function NY(r){return new bf(r)}function kY(r){return new Sf(r)}function TY(r){return new Ef(r)}function EY(r){return new _f(r)}function _Y(r){return new Af(r)}function L0(r){return new Df(r)}function AY(r){return L0(r)}function $Y(r){return L0(r)}function M0(r){return new Ff(r)}function DY(r){return M0(r)}function RY(r){return M0(r)}function z0(r){return new Pf(r)}function FY(r){return z0(r)}function OY(r){return z0(r)}function PY(r){return new Lf(r)}function LY(r){return new zf(r)}function xD(r){return new Mf(r)}function yD(r){return new Bf(r)}function bD(r){return new $f(r)}function wD(r){return new Rf(r)}function MY(r){return new Of(r)}function zY(r){return new sf(r)}function BY(r){return new Cc(r)}function VY(r){return new af(r)}function GY(r){return new al(r)}function WY(r){return new of(r)}function UY(r){return new wc(r)}function HY(r){return new lf(r)}function qY(r){return new vc(r)}function KY(r){return new Nn(r)}function jY(r){return new Ic(r)}function XY(r){return new Gf(r)}function YY(r){return new Vf(r)}var ZY=xD,JY=yD,QY=bD,tZ=wD;function eZ(r){return new Nf(r)}function rZ(r){return new kf(r)}function nZ(r){return new Tf(r)}function oZ(r){return new gf(r)}function sZ(r){return new Wf(r)}var ID={};Gt(ID,{MAPE:()=>gZ,MSE:()=>bZ,binaryAccuracy:()=>iZ,binaryCrossentropy:()=>aZ,categoricalAccuracy:()=>uZ,categoricalCrossentropy:()=>cZ,cosineProximity:()=>fZ,mape:()=>xZ,meanAbsoluteError:()=>dZ,meanAbsolutePercentageError:()=>hZ,meanSquaredError:()=>yZ,mse:()=>wZ,precision:()=>pZ,recall:()=>mZ,sparseCategoricalAccuracy:()=>lZ});function iZ(r,t){return Ch(r,t)}function aZ(r,t){return My(r,t)}function lZ(r,t){return zy(r,t)}function uZ(r,t){return Ih(r,t)}function cZ(r,t){return vh(r,t)}function pZ(r,t){return N0(r,t)}function mZ(r,t){return K$(r,t)}function fZ(r,t){return wh(r,t)}function dZ(r,t){return Bm(r,t)}function hZ(r,t){return yu(r,t)}function gZ(r,t){return yu(r,t)}function xZ(r,t){return yu(r,t)}function yZ(r,t){return Wi(r,t)}function bZ(r,t){return Wi(r,t)}function wZ(r,t){return Wi(r,t)}var vD={};Gt(vD,{modelFromJSON:()=>uD});var SD={};Gt(SD,{l1:()=>IZ,l1l2:()=>CZ,l2:()=>vZ});function CZ(r){return new bu(r)}function IZ(r){return fD(r)}function vZ(r){return dD(r)}var yb=class extends nl{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof Mn))throw new Error("model must be a LayersModel, not some other Container");this.model=t}};function xb(r,t){return rt}var bb=class extends yb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new vt("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=xb:this.mode==="max"?this.monitorFunc=ND:this.monitor.indexOf("acc")!==-1?this.monitorFunc=ND:this.monitorFunc=xb,this.monitorFunc===xb&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===xb?1/0:-1/0}async onEpochEnd(t,e){await Gi(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 SZ(r){return new bb(r)}var NZ={earlyStopping:SZ};var kZ=M();kZ.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 ro;(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"})(ro||(ro={}));var kD;(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={}))})(kD||(kD={}));var B0={};function EZ(r,t){let e={tfOpName:r,category:"custom",inputs:[],attrs:[],customExecutor:t};B0[r]=e}function wb(r){return B0[r]}function _Z(r){delete B0[r]}function v(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 yr(t.inputNames[s.inputIndexStart],e,n,o);if(s.type==="tensors")return t.inputNames.slice(a,u).map(m=>yr(m,e,n,o));let l=yr(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 yr(r,t,e,n){let[o,s]=gn(r);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Cb(o,a)]);return i!==void 0?t[Cb(o,i)][s]:void 0}function TD(r,t,e){return t[Cb(r,e.currentContextId)]}function Eo(r,t){let[e,n,o]=gn(r);return[Cb(e,t&&t.currentContextId),n,o]}function Cb(r,t){return t?`${r}-${t}`:r}function gn(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 Eh(r,t,e){let n=v("pad",r,t,e);if(n==="explicit"){n=v("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 Xs(r){return r.kept?r:sn(r)}var V0={};Gt(V0,{json:()=>AZ});var AZ=[{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 G0={};Gt(G0,{json:()=>$Z});var $Z=[{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 W0={};Gt(W0,{json:()=>DZ});var DZ=[{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 U0={};Gt(U0,{json:()=>RZ});var RZ=[{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 H0={};Gt(H0,{json:()=>FZ});var FZ=[{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 q0={};Gt(q0,{json:()=>OZ});var OZ=[{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 K0={};Gt(K0,{json:()=>PZ});var PZ=[{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 j0={};Gt(j0,{json:()=>LZ});var LZ=[{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 X0={};Gt(X0,{json:()=>MZ});var MZ=[{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 Y0={};Gt(Y0,{json:()=>zZ});var zZ=[{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 Z0={};Gt(Z0,{json:()=>BZ});var BZ=[{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 J0={};Gt(J0,{json:()=>VZ});var VZ=[{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 Q0={};Gt(Q0,{json:()=>GZ});var GZ=[{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 tN={};Gt(tN,{json:()=>WZ});var WZ=[{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 eN={};Gt(eN,{json:()=>UZ});var UZ=[{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 rN={};Gt(rN,{json:()=>HZ});var HZ=[{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 nN={};Gt(nN,{json:()=>qZ});var qZ=[{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 oN={};Gt(oN,{json:()=>KZ});var KZ=[{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 sN={};Gt(sN,{json:()=>jZ});var jZ=[{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 _h=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let t=[V0,G0,W0,U0,H0,q0,K0,j0,X0,Y0,Z0,J0,Q0,tN,eN,rN,nN,oN,sN],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}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]=Eo(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]=Eo(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]=Eo(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=wb(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=Ib(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ib(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"string[]":a=_b(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=_b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number":a=Sb(t.attr,s.tfName,s.defaultValue||0),a===void 0&&!!s.tfDeprecatedName&&(a=Sb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number[]":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=vb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=vb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool[]":a=$b(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=$b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape":a=Tb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Tb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape[]":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=Nb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Nb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype[]":a=kb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"func":a=ED(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=ED(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]=Eo(p.name),f={name:m,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:iN(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]=Eo(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]=Eo(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 XZ(r){let t=M().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 _D(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):XZ(r);return t?e:e.toLowerCase()}function Ib(r,t,e,n=!1){let o=r[t];return o!=null?_D(o.s,n):e}function vb(r,t,e){let n=r[t];return n?n.b:e}function Sb(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 iN(r){switch(typeof r=="string"&&(r=ro[r]),r){case ro.DT_FLOAT:case ro.DT_HALF:return"float32";case ro.DT_INT32:case ro.DT_INT64:case ro.DT_INT8:case ro.DT_UINT8:return"int32";case ro.DT_BOOL:return"bool";case ro.DT_DOUBLE:return"float32";case ro.DT_STRING:return"string";default:return null}}function ED(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function Nb(r,t,e){let n=r[t];return n&&n.type?iN(n.type):e}function kb(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>iN(o)):e}function AD(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function Tb(r,t,e){let n=r[t];return n&&n.shape?AD(n.shape):e}function Eb(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 _b(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>_D(s,n)):e}function Ab(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>AD(o)):e}function $b(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Db=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 yr(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return yr(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Sb(this.node.rawAttrs,t,e);if(n.s!=null)return Ib(this.node.rawAttrs,t,e);if(n.b!=null)return vb(this.node.rawAttrs,t,e);if(n.shape!=null)return Tb(this.node.rawAttrs,t,e);if(n.type!=null)return Nb(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Eb(this.node.rawAttrs,t,e);if(n.list.s!=null)return _b(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Ab(this.node.rawAttrs,t,e);if(n.list.b!=null)return $b(this.node.rawAttrs,t,e);if(n.list.type!=null)return kb(this.node.rawAttrs,t,e)}return e}};var ae={};Gt(ae,{OP_SCOPE_SUFFIX:()=>IS,abs:()=>Ee,acos:()=>rx,acosh:()=>nx,add:()=>X,addN:()=>DE,all:()=>Yp,any:()=>Hu,argMax:()=>Ei,argMin:()=>ox,asin:()=>sx,asinh:()=>ix,atan:()=>ax,atan2:()=>lx,atanh:()=>ux,avgPool:()=>jl,avgPool3d:()=>px,basicLSTMCell:()=>OE,batchNorm:()=>Ai,batchNorm2d:()=>mx,batchNorm3d:()=>fx,batchNorm4d:()=>dx,batchToSpaceND:()=>Xl,bincount:()=>hx,booleanMaskAsync:()=>Uj,broadcastArgs:()=>LE,broadcastTo:()=>$i,buffer:()=>wt,cast:()=>J,ceil:()=>gx,clipByValue:()=>Cr,clone:()=>sn,complex:()=>bn,concat:()=>ne,concat1d:()=>xx,concat2d:()=>yx,concat3d:()=>bx,concat4d:()=>wx,conv1d:()=>Jp,conv2d:()=>Cn,conv2dTranspose:()=>tm,conv3d:()=>Cx,conv3dTranspose:()=>vx,cos:()=>Yl,cosh:()=>em,cosineWindow:()=>ch,cumprod:()=>ju,cumsum:()=>rm,denseBincount:()=>ME,depthToSpace:()=>Sx,depthwiseConv2d:()=>Di,diag:()=>zE,dilation2d:()=>Nx,div:()=>pt,divNoNan:()=>kx,dot:()=>Tx,dropout:()=>n0,einsum:()=>BE,elu:()=>Ri,enclosingPowerOfTwo:()=>o0,equal:()=>Ar,erf:()=>Ex,euclideanNorm:()=>_x,exp:()=>er,expandDims:()=>gr,expm1:()=>Ax,eye:()=>Yu,fft:()=>su,fill:()=>go,floor:()=>Fi,floorDiv:()=>Xp,fused:()=>au,gather:()=>Oi,gatherND:()=>Qj,greater:()=>He,greaterEqual:()=>Fn,ifft:()=>Za,imag:()=>Kl,image:()=>lu,inTopKAsync:()=>r6,irfft:()=>gm,isFinite:()=>$x,isInf:()=>Dx,isNaN:()=>Rx,leakyRelu:()=>Zl,less:()=>nm,lessEqual:()=>On,linalg:()=>i0,linspace:()=>WE,localResponseNormalization:()=>Fx,log:()=>Ir,log1p:()=>Jl,logSigmoid:()=>Lx,logSoftmax:()=>om,logSumExp:()=>sm,logicalAnd:()=>Dr,logicalNot:()=>Ql,logicalOr:()=>im,logicalXor:()=>Mx,losses:()=>rX,lowerBound:()=>UE,matMul:()=>Lt,max:()=>Br,maxPool:()=>tu,maxPool3d:()=>Bx,maxPoolWithArgmax:()=>HE,maximum:()=>In,mean:()=>Se,meshgrid:()=>qE,min:()=>Xu,minimum:()=>Pi,mirrorPad:()=>Vx,mod:()=>Gx,moments:()=>Zu,movingAverage:()=>qj,mul:()=>R,multiRNNCell:()=>KE,multinomial:()=>jE,neg:()=>Ut,norm:()=>Ya,notEqual:()=>zs,oneHot:()=>ki,ones:()=>lr,onesLike:()=>xr,op:()=>k,outerProduct:()=>XE,pad:()=>un,pad1d:()=>YE,pad2d:()=>ZE,pad3d:()=>JE,pad4d:()=>QE,pool:()=>Wx,pow:()=>an,prelu:()=>ru,print:()=>Kg,prod:()=>Ux,raggedGather:()=>t_,raggedTensorToTensor:()=>e_,rand:()=>r_,randomGamma:()=>b_,randomNormal:()=>tc,randomStandardNormal:()=>w_,randomUniform:()=>Li,range:()=>nu,real:()=>Xa,reciprocal:()=>Xx,relu:()=>Rr,relu6:()=>am,reshape:()=>D,reverse:()=>ur,reverse1d:()=>C_,reverse2d:()=>I_,reverse3d:()=>v_,reverse4d:()=>S_,rfft:()=>iu,round:()=>lm,rsqrt:()=>um,scalar:()=>mt,scatterND:()=>jj,searchSorted:()=>ah,selu:()=>cm,separableConv2d:()=>pm,setdiff1dAsync:()=>N_,sigmoid:()=>Xr,sign:()=>Yx,signal:()=>eX,sin:()=>mm,sinh:()=>fm,slice:()=>Dt,slice1d:()=>dm,slice2d:()=>uh,slice3d:()=>hm,slice4d:()=>ec,softmax:()=>ou,softplus:()=>Ms,spaceToBatchND:()=>eu,sparse:()=>nX,sparseToDense:()=>Zj,spectral:()=>tX,split:()=>cr,sqrt:()=>ve,square:()=>Mt,squaredDifference:()=>xm,squeeze:()=>Pn,stack:()=>rr,step:()=>yo,stridedSlice:()=>Zx,string:()=>oX,sub:()=>ct,sum:()=>ft,tan:()=>Jx,tanh:()=>_i,tensor:()=>wr,tensor1d:()=>Le,tensor2d:()=>Bs,tensor3d:()=>Zg,tensor4d:()=>k_,tensor5d:()=>T_,tensor6d:()=>E_,tile:()=>$r,topk:()=>Qx,transpose:()=>Ot,truncatedNormal:()=>ym,unique:()=>ty,unsortedSegmentSum:()=>bm,unstack:()=>vr,upperBound:()=>__,variable:()=>ey,where:()=>_e,whereAsync:()=>ny,zeros:()=>Ne,zerosLike:()=>It});var $D=(r,t,e,n=ae)=>{switch(r.op){case"BiasAdd":case"AddV2":case"Add":return[n.add(v("a",r,t,e),v("b",r,t,e))];case"AddN":return[n.addN(v("tensors",r,t,e))];case"FloorMod":case"Mod":return[n.mod(v("a",r,t,e),v("b",r,t,e))];case"Mul":return[n.mul(v("a",r,t,e),v("b",r,t,e))];case"RealDiv":case"Div":return[n.div(v("a",r,t,e),v("b",r,t,e))];case"DivNoNan":return[n.divNoNan(v("a",r,t,e),v("b",r,t,e))];case"FloorDiv":return[n.floorDiv(v("a",r,t,e),v("b",r,t,e))];case"Sub":return[n.sub(v("a",r,t,e),v("b",r,t,e))];case"Minimum":return[n.minimum(v("a",r,t,e),v("b",r,t,e))];case"Maximum":return[n.maximum(v("a",r,t,e),v("b",r,t,e))];case"Pow":return[n.pow(v("a",r,t,e),v("b",r,t,e))];case"SquaredDifference":return[n.squaredDifference(v("a",r,t,e),v("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var DD=(r,t,e,n=ae)=>{switch(r.op){case"Abs":case"ComplexAbs":return[n.abs(v("x",r,t,e))];case"Acos":return[n.acos(v("x",r,t,e))];case"Acosh":return[n.acosh(v("x",r,t,e))];case"Asin":return[n.asin(v("x",r,t,e))];case"Asinh":return[n.asinh(v("x",r,t,e))];case"Atan":return[n.atan(v("x",r,t,e))];case"Atan2":return[n.atan2(v("x",r,t,e),v("y",r,t,e))];case"Atanh":return[n.atanh(v("x",r,t,e))];case"Ceil":return[n.ceil(v("x",r,t,e))];case"Complex":return[n.complex(v("real",r,t,e),v("imag",r,t,e))];case"Cos":return[n.cos(v("x",r,t,e))];case"Cosh":return[n.cosh(v("x",r,t,e))];case"Elu":return[n.elu(v("x",r,t,e))];case"Erf":return[n.erf(v("x",r,t,e))];case"Exp":return[n.exp(v("x",r,t,e))];case"Expm1":return[n.expm1(v("x",r,t,e))];case"Floor":return[n.floor(v("x",r,t,e))];case"Log":return[n.log(v("x",r,t,e))];case"Log1p":return[n.log1p(v("x",r,t,e))];case"Imag":return[n.imag(v("x",r,t,e))];case"Neg":return[n.neg(v("x",r,t,e))];case"Reciprocal":return[n.reciprocal(v("x",r,t,e))];case"Real":return[n.real(v("x",r,t,e))];case"Relu":return[n.relu(v("x",r,t,e))];case"Round":return[n.round(v("x",r,t,e))];case"Selu":return[n.selu(v("x",r,t,e))];case"Sigmoid":return[n.sigmoid(v("x",r,t,e))];case"Sin":return[n.sin(v("x",r,t,e))];case"Sign":return[n.sign(v("x",r,t,e))];case"Sinh":return[n.sinh(v("x",r,t,e))];case"Softplus":return[n.softplus(v("x",r,t,e))];case"Sqrt":return[n.sqrt(v("x",r,t,e))];case"Square":return[n.square(v("x",r,t,e))];case"Tanh":return[n.tanh(v("x",r,t,e))];case"Tan":return[n.tan(v("x",r,t,e))];case"ClipByValue":return[n.clipByValue(v("x",r,t,e),v("clipValueMin",r,t,e),v("clipValueMax",r,t,e))];case"Relu6":return[n.relu6(v("x",r,t,e))];case"Rsqrt":return[n.rsqrt(yr(r.inputNames[0],t,e))];case"Prod":return[n.prod(v("x",r,t,e),v("axes",r,t,e))];case"LeakyRelu":return[n.leakyRelu(v("x",r,t,e),v("alpha",r,t,e))];case"Prelu":return[n.prelu(v("x",r,t,e),v("alpha",r,t,e))];case"IsNan":return[n.isNaN(yr(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function zn(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 RD(r){return!(typeof r=="number"||r.some(t=>t<0))}function Uf(r,t,e){let n=Rb(r,e),o=!RD(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=Rb(s.shape,n)}),!RD(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function Rb(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 Fb=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),zn(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=[];G(()=>{e=F(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: "),Oe(s)}),this.idTensor=mt(0),this.maxNumElements=o,Oe(this.idTensor)}get id(){return this.idTensor.id}copy(){return new pl([...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=nd(this.elementShape,this.tensors,t);return G(()=>{let s=this.tensors.map(i=>F(i,o));return sr(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=nd(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Vn(o.shape,t,"TensorList shape mismatch: "),F(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.");Oe(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 pl([],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=nd(this.elementShape,this.tensors,e);return F(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: "),Oe(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=nd(this.elementShape,this.tensors,n);return t.length===0?vr([],[0].concat(o)):G(()=>{let s=t.map(i=>F(this.tensors[i],o));return sr(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=nd(this.elementShape,this.tensors,e);return this.size()===0?vr([],[0].concat(n)):G(()=>{let o=this.tensors.map(s=>F(s,n));return se(o,0)})}};function QD(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=Tr(r);return new pl(s,t,n)}function tR(r,t,e,n){return new pl([],r,t,n)}function eR(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 pl([],e,r.dtype,n),i=Tr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function rR(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=D(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}`);zn(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 cl([...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.`);zn(t,this.elementShape,"TensorList shape mismatch: ");let o=Uf(this.elementShape,this.tensors,t);return B(()=>{let s=this.tensors.map(i=>D(i,o));return rr(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=Uf(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,zn(o.shape,t,"TensorList shape mismatch: "),D(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(zn(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 cl([],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.`);zn(this.tensors[t].shape,e,"TensorList shape mismatch: ");let o=Uf(this.elementShape,this.tensors,e);return D(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.`);zn(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}`);zn(this.elementShape,n,"TensorList shape mismatch: "),t=t.slice(0,this.size());let o=Uf(this.elementShape,this.tensors,n);return t.length===0?wr([],[0].concat(o)):B(()=>{let s=t.map(i=>D(this.tensors[i],o));return rr(s,0)})}concat(t,e){if(!!t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);zn(this.elementShape,e,"TensorList shape mismatch: ");let n=Uf(this.elementShape,this.tensors,e);return this.size()===0?wr([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>D(s,n));return ne(o,0)})}};function FD(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);zn(o,t,"TensorList shape mismatch: ");let s=vr(r);return new cl(s,t,n)}function OD(r,t,e,n){return new cl([],r,t,n)}function PD(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 cl([],e,r.dtype,n),i=vr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function LD(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=Jb(s,e),a=n===0?0:r.size/n,u=G(()=>{let c=[];r=F(r,[1,n,a]);for(let p=0;p{switch(r.op){case"If":case"StatelessIf":{let n=I("thenBranch",r,t,e),o=I("elseBranch",r,t,e),s=I("cond",r,t,e),i=I("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=I("body",r,t,e),o=I("cond",r,t,e),s=I("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=I("pred",r,t,e);return[ri(n)]}case"Switch":{let n=I("pred",r,t,e),o=I("data",r,t,e);return o.kept||(o=ri(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case"Merge":{let n=r.inputNames.find(o=>wr(o,t,e)!==void 0);if(n){let o=wr(n,t,e);return[ri(o)]}return}case"Enter":{let n=I("frameName",r,t,e),o=I("tensor",r,t,e);return e.enterFrame(n),[ri(o)]}case"Exit":{let n=I("tensor",r,t,e);return e.exitFrame(),[ri(n)]}case"NextIteration":{let n=I("tensor",r,t,e);return e.nextIteration(),[ri(n)]}case"TensorArrayV3":{let n=I("size",r,t,e),o=I("dtype",r,t,e),s=I("elementShape",r,t,e),i=I("dynamicSize",r,t,e),a=I("clearAfterRead",r,t,e),u=I("identicalElementShapes",r,t,e),l=I("name",r,t,e),c=new Qb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,mt(1)]}case"TensorArrayWriteV3":{let n=I("tensorArrayId",r,t,e),o=I("index",r,t,e),s=I("tensor",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case"TensorArrayReadV3":{let n=I("tensorArrayId",r,t,e),o=I("index",r,t,e);return[e.getTensorArray(n.id).read(o)]}case"TensorArrayGatherV3":{let n=I("tensorArrayId",r,t,e),o=I("indices",r,t,e),s=I("dtype",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case"TensorArrayScatterV3":{let n=I("tensorArrayId",r,t,e),o=I("indices",r,t,e),s=I("tensor",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case"TensorArrayConcatV3":{let n=I("tensorArrayId",r,t,e),o=e.getTensorArray(n.id),s=I("dtype",r,t,e);return[o.concat(s)]}case"TensorArraySplitV3":{let n=I("tensorArrayId",r,t,e),o=I("tensor",r,t,e),s=I("lengths",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case"TensorArraySizeV3":{let n=I("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return[mt(o.size(),"int32")]}case"TensorArrayCloseV3":{let n=I("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case"TensorListSetItem":{let n=I("tensorListId",r,t,e),o=I("index",r,t,e),s=I("tensor",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case"TensorListGetItem":{let n=I("tensorListId",r,t,e),o=I("index",r,t,e),s=I("elementShape",r,t,e),i=I("elementDType",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let n=I("indices",r,t,e),o=I("tensor",r,t,e),s=I("elementShape",r,t,e),i=I("numElements",r,t,e),a=eR(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let n=I("elementShape",r,t,e),o=I("elementDType",r,t,e),s;r.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=I(s,r,t,e),a=r.op==="TensorListReserve"?-1:i,u=tR(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case"TensorListGather":{let n=I("tensorListId",r,t,e),o=I("indices",r,t,e),s=I("elementShape",r,t,e),i=I("elementDType",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case"TensorListStack":{let n=I("tensorListId",r,t,e),o=I("elementShape",r,t,e),s=I("elementDType",r,t,e),i=I("numElements",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case"TensorListFromTensor":{let n=I("tensor",r,t,e),o=I("elementShape",r,t,e),s=I("elementDType",r,t,e),i=QD(n,o,s);return e.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let n=I("tensorListId",r,t,e),o=e.getTensorList(n.id),s=I("dtype",r,t,e),i=I("elementShape",r,t,e);return[o.concat(s,i)]}case"TensorListPushBack":{let n=I("tensorListId",r,t,e),o=I("tensor",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case"TensorListPopBack":{let n=I("tensorListId",r,t,e),o=I("elementShape",r,t,e),s=I("elementDType",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case"TensorListSplit":{let n=I("tensor",r,t,e),o=I("elementShape",r,t,e),s=I("lengths",r,t,e),i=rR(n,s,o);return e.addTensorList(i),[i.idTensor]}case"TensorListLength":{let n=I("tensorListId",r,t,e),o=e.getTensorList(n.id);return[mt(o.size(),"int32")]}case"TensorListResize":{let n=I("tensorListId",r,t,e),o=I("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 oR(r,t,e){let[n,o]=I("fusedOps",r,t,e),s=n==="biasadd",i=!s,a=o==="prelu",u=n==="fusedbatchnorm",l=I("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=I("strides",r,t,e),p=Gh(r,t,e),m=I("dataFormat",r,t,e).toUpperCase(),f=I("dilations",r,t,e),[d,h]=I("args",r,t,e);i&&(h=d,d=void 0);let g=I("leakyreluAlpha",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var sR=(r,t,e,n=ue)=>{switch(r.op){case"Conv1D":{let o=I("stride",r,t,e),s=I("pad",r,t,e),i=I("dataFormat",r,t,e).toUpperCase(),a=I("dilation",r,t,e);return[n.conv1d(I("x",r,t,e),I("filter",r,t,e),o,s,i,a)]}case"Conv2D":{let o=I("strides",r,t,e),s=Gh(r,t,e),i=I("dataFormat",r,t,e).toUpperCase(),a=I("dilations",r,t,e);return[n.conv2d(I("x",r,t,e),I("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}=oR(r,t,e);return[n.fused.conv2d({x:I("x",r,t,e),filter:I("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}=oR(r,t,e);return[n.fused.depthwiseConv2d({x:I("x",r,t,e),filter:I("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=I("outputShape",r,t,e),s=I("strides",r,t,e),i=Gh(r,t,e);return[n.conv2dTranspose(I("x",r,t,e),I("filter",r,t,e),o,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let o=I("strides",r,t,e),s=Gh(r,t,e),i=I("dilations",r,t,e),a=I("dataFormat",r,t,e).toUpperCase();return[n.depthwiseConv2d(I("input",r,t,e),I("filter",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case"Conv3D":{let o=I("strides",r,t,e),s=I("pad",r,t,e),i=I("dataFormat",r,t,e).toUpperCase(),a=I("dilations",r,t,e);return[n.conv3d(I("x",r,t,e),I("filter",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case"AvgPool":{let o=I("strides",r,t,e),s=I("pad",r,t,e),i=I("kernelSize",r,t,e);return[n.avgPool(I("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPool":{let o=I("strides",r,t,e),s=I("pad",r,t,e),i=I("kernelSize",r,t,e);return[n.maxPool(I("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPoolWithArgmax":{let o=I("strides",r,t,e),s=I("pad",r,t,e),i=I("kernelSize",r,t,e),a=I("includeBatchInIndex",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(I("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case"AvgPool3D":{let o=I("strides",r,t,e),s=I("pad",r,t,e),i=I("kernelSize",r,t,e);return[n.avgPool3d(I("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"MaxPool3D":{let o=I("strides",r,t,e),s=I("pad",r,t,e),i=I("kernelSize",r,t,e);return[n.maxPool3d(I("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"Dilation2D":{let o=I("strides",r,t,e),s=I("pad",r,t,e),i=I("dilations",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(I("x",r,t,e),I("filter",r,t,e),[a,u],s,[l,c],"NHWC")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var iR=(r,t,e,n=ue)=>{switch(r.op){case"Fill":{let o=I("shape",r,t,e),s=I("dtype",r,t,e),i=I("value",r,t,e);return[n.fill(o,i,s)]}case"LinSpace":{let o=I("start",r,t,e),s=I("stop",r,t,e),i=I("num",r,t,e);return[n.linspace(o,s,i)]}case"Multinomial":{let o=I("logits",r,t,e),s=I("numSamples",r,t,e),i=I("seed",r,t,e);return[n.multinomial(o,s,i)]}case"OneHot":{let o=I("indices",r,t,e),s=I("depth",r,t,e),i=I("onValue",r,t,e),a=I("offValue",r,t,e),u=I("dtype",r,t,e);return[n.oneHot(o,s,i,a,u)]}case"Ones":return[n.ones(I("shape",r,t,e),I("dtype",r,t,e))];case"OnesLike":return[n.onesLike(I("x",r,t,e))];case"RandomStandardNormal":return[n.randomStandardNormal(I("shape",r,t,e),I("dtype",r,t,e),I("seed",r,t,e))];case"RandomUniform":return[n.randomUniform(I("shape",r,t,e),I("minval",r,t,e),I("maxval",r,t,e),I("dtype",r,t,e))];case"Range":{let o=I("start",r,t,e),s=I("stop",r,t,e),i=I("step",r,t,e);return[n.range(o,s,i,I("dtype",r,t,e))]}case"TruncatedNormal":{let o=I("shape",r,t,e),s=I("mean",r,t,e),i=I("stdDev",r,t,e),a=I("seed",r,t,e);return[n.truncatedNormal(o,s,i,I("dtype",r,t,e),a)]}case"Zeros":return[n.zeros(I("shape",r,t,e),I("dtype",r,t,e))];case"ZerosLike":return[n.zerosLike(I("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function IT(r,t,e){let n=I("boxes",r,t,e),o=I("scores",r,t,e),s=I("maxOutputSize",r,t,e),i=I("iouThreshold",r,t,e),a=I("scoreThreshold",r,t,e),u=I("softNmsSigma",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var aR=async(r,t,e,n,o=ue)=>{switch(r.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l,softNmsSigma:c}=IT(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}=IT(r,t,e),c=I("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}=IT(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case"Where":{let s=o.cast(I("condition",r,t,e),"bool"),i=[await o.whereAsync(s)];return s.dispose(),i}case"ListDiff":return o.setdiff1dAsync(I("x",r,t,e),I("y",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var lR=(r,t,e,n=ue)=>{switch(r.op){case"LowerBound":{let o=I("sortedSequence",r,t,e),s=I("values",r,t,e);return[n.lowerBound(o,s)]}case"TopKV2":{let o=I("x",r,t,e),s=I("k",r,t,e),i=I("sorted",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case"UpperBound":{let o=I("sortedSequence",r,t,e),s=I("values",r,t,e);return[n.upperBound(o,s)]}case"Unique":{let o=I("x",r,t,e),s=n.unique(o);return[s.values,s.indices]}case"UniqueV2":{let o=I("x",r,t,e),s=I("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 uR=(r,t,e,n=ue)=>{switch(r.op){case"Const":return t[r.name];case"PlaceholderWithDefault":let o=I("default",r,t,e);return[wr(r.name,t,e)||o];case"Placeholder":return[wr(r.name,t,e)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let c=I("x",r,t,e);return[ri(c)]}case"IdentityN":return I("x",r,t,e).map(c=>ri(c));case"Snapshot":let s=I("x",r,t,e);return[ri(s)];case"Shape":return[n.tensor1d(I("x",r,t,e).shape,"int32")];case"ShapeN":return I("x",r,t,e).map(c=>n.tensor1d(c.shape));case"Size":return[n.scalar(I("x",r,t,e).size,"int32")];case"Rank":return[n.scalar(I("x",r,t,e).rank,"int32")];case"NoOp":return[n.scalar(1)];case"Print":let i=I("x",r,t,e),a=I("data",r,t,e),u=I("message",r,t,e),l=I("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(),G(()=>{let o=Tr(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=I("keyDType",r,t,e),s=I("valueDType",r,t,e),i=new tw(o,s);return n.addHashTable(r.name,i),[i.handle]}case"LookupTableImport":case"LookupTableImportV2":{let o=I("tableHandle",r,t,e,n),s=I("keys",r,t,e),i=I("values",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let o=I("tableHandle",r,t,e,n),s=I("keys",r,t,e),i=I("defaultValue",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let o=I("tableHandle",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var pR=(r,t,e,n=ue)=>{switch(r.op){case"ResizeBilinear":{let o=I("images",r,t,e),s=I("size",r,t,e),i=I("alignCorners",r,t,e),a=I("halfPixelCenters",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case"ResizeNearestNeighbor":{let o=I("images",r,t,e),s=I("size",r,t,e),i=I("alignCorners",r,t,e),a=I("halfPixelCenters",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case"CropAndResize":{let o=I("image",r,t,e),s=I("boxes",r,t,e),i=I("boxInd",r,t,e),a=I("cropSize",r,t,e),u=I("method",r,t,e),l=I("extrapolationValue",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case"ImageProjectiveTransformV3":{let o=I("images",r,t,e),s=I("transforms",r,t,e),i=I("outputShape",r,t,e),a=I("fillValue",r,t,e),u=I("interpolation",r,t,e),l=I("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 mR=(r,t,e,n=ue)=>{switch(r.op){case"Equal":return[n.equal(I("a",r,t,e),I("b",r,t,e))];case"NotEqual":return[n.notEqual(I("a",r,t,e),I("b",r,t,e))];case"Greater":return[n.greater(I("a",r,t,e),I("b",r,t,e))];case"GreaterEqual":return[n.greaterEqual(I("a",r,t,e),I("b",r,t,e))];case"Less":return[n.less(I("a",r,t,e),I("b",r,t,e))];case"LessEqual":return[n.lessEqual(I("a",r,t,e),I("b",r,t,e))];case"LogicalAnd":return[n.logicalAnd(I("a",r,t,e),I("b",r,t,e))];case"LogicalNot":return[n.logicalNot(I("a",r,t,e))];case"LogicalOr":return[n.logicalOr(I("a",r,t,e),I("b",r,t,e))];case"Select":case"SelectV2":return[n.where(I("condition",r,t,e),I("a",r,t,e),I("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var fR=(r,t,e,n=ue)=>{switch(r.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[n.matMul(I("a",r,t,e),I("b",r,t,e),I("transposeA",r,t,e),I("transposeB",r,t,e))];case"Einsum":return[n.einsum(I("equation",r,t,e),...I("tensors",r,t,e))];case"Transpose":return[n.transpose(I("x",r,t,e),I("perm",r,t,e))];case"_FusedMatMul":let[o,s]=I("fusedOps",r,t,e),i=o==="biasadd",a=s==="prelu",u=I("numArgs",r,t,e),l=I("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]=I("args",r,t,e);return[n.fused.matMul({a:I("a",r,t,e),b:I("b",r,t,e),transposeA:I("transposeA",r,t,e),transposeB:I("transposeB",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var dR=(r,t,e,n=ue)=>{switch(r.op){case"EuclideanNorm":return[n.euclideanNorm(I("x",r,t,e),I("axis",r,t,e),I("keepDims",r,t,e))];case"FusedBatchNorm":case"FusedBatchNormV2":return[n.batchNorm(I("x",r,t,e),I("mean",r,t,e),I("variance",r,t,e),I("offset",r,t,e),I("scale",r,t,e),I("epsilon",r,t,e))];case"FusedBatchNormV3":return[n.batchNorm(I("x",r,t,e),I("mean",r,t,e),I("variance",r,t,e),I("offset",r,t,e),I("scale",r,t,e),I("epsilon",r,t,e))];case"LRN":return[n.localResponseNormalization(I("x",r,t,e),I("radius",r,t,e),I("bias",r,t,e),I("alpha",r,t,e),I("beta",r,t,e))];case"Softmax":return[n.softmax(I("x",r,t,e))];case"LogSoftmax":return[n.logSoftmax(I("x",r,t,e))];case"SparseToDense":return[n.sparseToDense(I("sparseIndices",r,t,e),I("outputShape",r,t,e),I("sparseValues",r,t,e),I("defaultValue",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var hR=(r,t,e,n=ue)=>{switch(r.op){case"Max":{let a=I("axis",r,t,e),u=I("keepDims",r,t,e);return[n.max(I("x",r,t,e),a,u)]}case"Mean":{let a=I("axis",r,t,e),u=I("keepDims",r,t,e);return[n.mean(I("x",r,t,e),a,u)]}case"Min":{let a=I("axis",r,t,e),u=I("keepDims",r,t,e);return[n.min(I("x",r,t,e),a,u)]}case"Sum":{let a=I("axis",r,t,e),u=I("keepDims",r,t,e);return[n.sum(I("x",r,t,e),a,u)]}case"All":{let a=I("axis",r,t,e),u=I("keepDims",r,t,e);return[n.all(I("x",r,t,e),a,u)]}case"Any":{let a=I("axis",r,t,e),u=I("keepDims",r,t,e);return[n.any(I("x",r,t,e),a,u)]}case"ArgMax":{let a=I("axis",r,t,e);return[n.argMax(I("x",r,t,e),a)]}case"ArgMin":{let a=I("axis",r,t,e);return[n.argMin(I("x",r,t,e),a)]}case"Prod":{let a=I("axis",r,t,e),u=I("keepDims",r,t,e);return[n.prod(I("x",r,t,e),a,u)]}case"Cumprod":{let a=I("axis",r,t,e),u=I("exclusive",r,t,e),l=I("reverse",r,t,e);return[n.cumprod(I("x",r,t,e),a,u,l)]}case"Cumsum":{let a=I("axis",r,t,e),u=I("exclusive",r,t,e),l=I("reverse",r,t,e);return[n.cumsum(I("x",r,t,e),a,u,l)]}case"Bincount":let o=I("x",r,t,e),s=I("weights",r,t,e),i=I("size",r,t,e);return[n.bincount(o,s,i)];case"DenseBincount":{let a=I("x",r,t,e),u=I("weights",r,t,e),l=I("size",r,t,e),c=I("binaryOutput",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var gR=(r,t,e,n=ue)=>{switch(r.op){case"ConcatV2":case"Concat":{let o=I("n",r,t,e),s=I("axis",r,t,e),i=I("tensors",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case"Gather":{let o=I("x",r,t,e),s=I("indices",r,t,e);return[n.gather(o,n.cast(s,"int32"),0)]}case"GatherV2":{let o=I("axis",r,t,e),s=I("batchDims",r,t,e),i=I("x",r,t,e),a=I("indices",r,t,e);return[n.gather(i,n.cast(a,"int32"),o,s)]}case"Reverse":{let o=I("dims",r,t,e),s=[];for(let a=0;a{let o=I("axis",r,t,e),s=I("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=I("axis",r,t,e),s=I("tensor",r,t,e);return n.unstack(s,o)}case"Tile":{let o=I("reps",r,t,e);return[n.tile(I("x",r,t,e),o)]}case"Split":case"SplitV":{let o=I("axis",r,t,e),s=I("numOrSizeSplits",r,t,e),i=I("x",r,t,e);return n.split(i,s,o)}case"ScatterNd":{let o=I("indices",r,t,e),s=I("values",r,t,e),i=I("shape",r,t,e);return[n.scatterND(o,s,i)]}case"GatherNd":{let o=I("x",r,t,e),s=I("indices",r,t,e);return[n.gatherND(o,s)]}case"SparseToDense":{let o=I("sparseIndices",r,t,e),s=I("outputShape",r,t,e),i=I("sparseValues",r,t,e),a=I("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 xR=(r,t,e,n=ue)=>{switch(r.op){case"SparseFillEmptyRows":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(I("indices",r,t,e),I("values",r,t,e),I("denseShape",r,t,e),I("defaultValue",r,t,e));return[o,s,i,a]}case"SparseReshape":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(I("inputIndices",r,t,e),I("inputShape",r,t,e),I("newShape",r,t,e));return[o,s]}case"SparseSegmentMean":return[n.sparse.sparseSegmentMean(I("data",r,t,e),I("indices",r,t,e),I("segmentIds",r,t,e))];case"SparseSegmentSum":return[n.sparse.sparseSegmentSum(I("data",r,t,e),I("indices",r,t,e),I("segmentIds",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var yR=(r,t,e,n=ue)=>{switch(r.op){case"FFT":return[n.fft(I("x",r,t,e))];case"IFFT":return[n.ifft(I("x",r,t,e))];case"RFFT":return[n.rfft(I("x",r,t,e))];case"IRFFT":return[n.irfft(I("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var bR=(r,t,e,n=ue)=>{switch(r.op){case"StringNGrams":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(I("data",r,t,e),I("dataSplits",r,t,e),I("separator",r,t,e),I("nGramWidths",r,t,e),I("leftPad",r,t,e),I("rightPad",r,t,e),I("padWidth",r,t,e),I("preserveShortSequences",r,t,e));return[o,s]}case"StringSplit":{let{indices:o,values:s,shape:i}=n.string.stringSplit(I("input",r,t,e),I("delimiter",r,t,e),I("skipEmpty",r,t,e));return[o,s,i]}case"StringToHashBucketFast":return[n.string.stringToHashBucketFast(I("input",r,t,e),I("numBuckets",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var wR=(r,t,e,n=ue)=>{switch(r.op){case"Cast":return[n.cast(I("x",r,t,e),I("dtype",r,t,e))];case"ExpandDims":{let o=I("axis",r,t,e);return[n.expandDims(I("x",r,t,e),o)]}case"Squeeze":{let o=I("axis",r,t,e);return[n.squeeze(I("x",r,t,e),o)]}case"Reshape":return[n.reshape(I("x",r,t,e),I("shape",r,t,e))];case"MirrorPad":return[n.mirrorPad(I("x",r,t,e),I("padding",r,t,e),I("mode",r,t,e))];case"PadV2":case"Pad":return[n.pad(I("x",r,t,e),I("padding",r,t,e),I("constantValue",r,t,e))];case"SpaceToBatchND":{let o=I("blockShape",r,t,e),s=I("paddings",r,t,e);return[n.spaceToBatchND(I("x",r,t,e),o,s)]}case"BatchToSpaceND":{let o=I("blockShape",r,t,e),s=I("crops",r,t,e);return[n.batchToSpaceND(I("x",r,t,e),o,s)]}case"DepthToSpace":{let o=I("blockSize",r,t,e),s=I("dataFormat",r,t,e).toUpperCase();return[n.depthToSpace(I("x",r,t,e),o,s)]}case"BroadcastTo":return[n.broadcastTo(I("x",r,t,e),I("shape",r,t,e))];case"BroadcastArgs":return[n.broadcastArgs(I("s0",r,t,e),I("s1",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function ST(r,t,e,n,o=G){let s=((i,a,u)=>{switch(i.category){case"arithmetic":return o(()=>YD(i,a,u));case"basic_math":return o(()=>ZD(i,a,u));case"control":return nR(i,a,u);case"convolution":return o(()=>sR(i,a,u));case"creation":return o(()=>iR(i,a,u));case"dynamic":return aR(i,a,u);case"evaluation":return o(()=>lR(i,a,u));case"image":return o(()=>pR(i,a,u));case"graph":return o(()=>uR(i,a,u));case"logical":return o(()=>mR(i,a,u));case"matrices":return o(()=>fR(i,a,u));case"normalization":return o(()=>dR(i,a,u));case"reduction":return o(()=>hR(i,a,u));case"slice_join":return o(()=>gR(i,a,u));case"sparse":return o(()=>xR(i,a,u));case"spectral":return o(()=>yR(i,a,u));case"string":return o(()=>bR(i,a,u));case"transformation":return o(()=>wR(i,a,u));case"hash_table":return cR(i,a,u,n);case"custom":let l=zb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Zb(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 Uh=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 TT(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=Object.keys(r).map(m=>yn(m)[0]),c=[];n!=null&&(c=n.map(m=>yn(m.name)[0]));let p=[...t];for(;p.length>0;){let m=p.pop();if((NT(m)||KZ(m)||jZ(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 CR(r,t,e){let{usedNodes:n,inputs:o}=e,s=[],i=Object.keys(o).map(c=>yn(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 UZ=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],HZ=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],qZ=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function NT(r){return UZ.indexOf(r.op)>=0}function KZ(r){return HZ.indexOf(r.op)>=0}function jZ(r){return qZ.indexOf(r.op)>=0}var Rc=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 Rc(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=TT(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 CR(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[yn(p)[0]]),s=e.map(p=>yn(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 G(()=>{let p=new Uh(this.weightMap,l,c,this.functionExecutorMap),m=Object.assign({},this.weightMap);Object.keys(t).forEach(h=>{let[g,x]=yn(h),b=[];b[x]=t[h],m[g]=b});let f=this.getFrozenTensorIds(m),d={};for(let h=0;hwr(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=qD(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=B().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(c){console.warn(c.message)}this.resetIntermediateTensors();let i=new Uh(this.weightMap,o,s,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(t,i,e,n);let a=e.map(c=>wr(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[yn(w)[0]]),a=n.map(w=>yn(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}=TT(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,T]=yn(w),E=[];E[T]=t[w],d[C]=E});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=>!NT(w)&&!wr(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"&&I("isConstant",p.node,o,n)&&([m]=_o(p.node.name,n)),o[p.node.name]==null){let f=ST(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=>!!wr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!wr(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]=yn(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]=yn(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]=yn(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var ew=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 XZ="?tfjs-format=file",YZ="model.json",Hh=class{constructor(t,e={},n=vn){this.modelUrl=t,this.loadOptions=e,this.version="n/a",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new ew}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 Rc(Wh.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=Wh.Instance.transformGraph(t.modelInitializer);this.initializer=new Rc(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}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 Lt?[n]:n,s={};return o.forEach((i,a)=>s[this.structuredOutputKeys[a]]=i),s}return n}normalizeInputs(t){if(!(t instanceof Lt)&&!Array.isArray(t))return t;if(t=Array.isArray(t)?t:[t],t.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${t.length} input tensors.`);return this.inputNodes.reduce((e,n,o)=>(e[n]=t[o],e),{})}normalizeOutputs(t){return t=t||this.outputNodes,Array.isArray(t)?t:[t]}execute(t,e){t=this.normalizeInputs(t),e=this.normalizeOutputs(e);let n=this.executor.execute(t,e);return n.length>1?n:n[0]}async executeAsync(t,e){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.resourceManager.dispose()}};async function ZZ(r,t={},e=vn){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=QZ(r));let n=new Hh(r,t,e);return await n.load(),n}function JZ(r){if(r==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide a url or an IOHandler that loads the model");if(!r.load)throw new Error(`modelUrl IO Handler ${r} has no load function`);let t=new Hh(r);return t.load(),t}function QZ(r){return r.endsWith("/")||(r=r+"/"),`${r}${YZ}${XZ}`}var vR="3.20.0";var GR={};jt(GR,{CSVDataset:()=>id,Dataset:()=>ni,FileDataSource:()=>pd,TextLineDataset:()=>sd,URLDataSource:()=>md,array:()=>DR,csv:()=>LR,func:()=>MR,generator:()=>zR,microphone:()=>VR,version_data:()=>KT,webcam:()=>BR,zip:()=>RR});var $R=Tl(vh());var _R=Tl(vh());function IR(r,t){return rw(r,t)}function rw(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(Su(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=rw(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 SR(r,t=_T){return TR(r,t)}function TR(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(Su(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=TR(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 _T(r){return r===null?null:Su(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function nw(r,t){let e=new Map;rw(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 rw(r,t,e)}function Su(r){let t=!1;if(B().get("IS_BROWSER"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=kT();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r=="object"&&!(r instanceof Lt)&&!(r instanceof Promise)&&!t)}function NR(r){return r==null||tJ(r)||Array.isArray(r)||typeof r=="object"&&r instanceof Lt||y.isTypedArray(r)}function tJ(r){return r===null||typeof r!="object"&&typeof r!="function"}function kR(r){return IR(r,eJ)}function eJ(r){return r instanceof Lt?{value:r.clone(),recurse:!1}:Su(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var od=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 Fc=class extends od{constructor(){super(Fc.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 FT(this,t,e)}columnMajorBatch(t,e=!0,n=_T){return this.rowMajorBatch(t,e).map(s=>SR(s,n))}concatenate(t,e){return new sw(VT([this,t]),e)}take(t){return t<0||t==null?this:new RT(this,t)}skip(t){return t<0||t==null?this:new DT(this,t)}prefetch(t){return new iw(this,t)}shuffle(t,e){return new BT(this,t,e)}serial(){return new $T(this)}},ET=class extends Qe{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:kR(t),done:!1}}},AT=class extends Qe{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}}},$T=class extends Qe{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()}},DT=class extends Qe{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()}},FT=class extends Qe{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}}},OT=class extends Qe{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;_t(t.value)}}},PT=class extends Qe{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=ho.getTensorsInContainer(t.value),n=this.transform(t.value),o=ho.getTensorsInContainer(n);for(let s of e)ho.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},LT=class extends Qe{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}}}},ow=class extends Qe{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=ho.getTensorsInContainer(t.value),n=await this.transform(t.value),o=ho.getTensorsInContainer(n);for(let s of e)ho.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},Oc=class extends Qe{constructor(){super(),this.outputQueue=new Fc,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}}},MT=class extends Oc{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=ho.getTensorsInContainer(t.value),n=this.transform(t.value),o=ho.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)ho.isTensorInList(s,o)||s.dispose();return!0}},sw=class extends Qe{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}},ml;(function(r){r[r.FAIL=0]="FAIL",r[r.SHORTEST=1]="SHORTEST",r[r.LONGEST=2]="LONGEST"})(ml||(ml={}));var zT=class extends Qe{constructor(t,e=ml.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 Qe?{value:i.next().then(u=>(e++,u.done&&n++,u.value)),recurse:!1}:{value:null,recurse:!0}}let s=await nw(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case ml.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ml.SHORTEST:return{value:null,done:!0};case ml.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},iw=class extends Qe{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new od(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()}},BT=class extends iw{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=_R.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 ni=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),En(async()=>(await n.iterator()).columnMajorBatch(t,e,rJ),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,En(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,En(async()=>(await e.iterator()).filter(o=>G(()=>t(o))),n)}async forEachAsync(t){return(await this.iterator()).forEachAsync(t)}map(t){let e=this;return En(async()=>(await e.iterator()).map(n=>G(()=>t(n))),this.size)}mapAsync(t){let e=this;return En(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 En(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,En(async()=>{let o=qh(async()=>({value:await e.iterator(),done:!1}));return ER(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=$R.alea(e||y.now().toString());return En(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,En(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()}};ni.MAX_BUFFER_SIZE=1e4;function En(r,t=null){return new class extends ni{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function DR(r){return En(async()=>VT(r),r.length)}function RR(r){if(!Su(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 nw(r,n=>{if(n instanceof ni)return{value:n.iterator(),recurse:!1};if(Su(n))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return AR(e,ml.SHORTEST)},t)}function rJ(r){if(r===null)return null;let t=r[0];return NR(t)?{value:nJ(r),recurse:!1}:{value:null,recurse:!0}}function nJ(r){if(r.length===0)throw new Error("Can't make a batch of zero elements.");return r[0]instanceof Lt?sr(r):vr(r)}var sd=class extends ni{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 aw='"',Kh=Symbol("out"),FR=Symbol("field"),lw=Symbol("quote"),GT=Symbol("quoteafterquote"),OR=Symbol("quoteinquote"),id=class extends ni{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 sd(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(!B().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let e=new ad(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),vr(n,e)}};var ld=class extends Qe{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=Ve([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=Ks([i,s,u,a],[1,4])}else this.cropBox=Ks([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(t,e={}){if(!B().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 ld(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=xx.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 G(()=>{let e=yr(tt(t,"float32"),0),n;n=uu.cropAndResize(e,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let o=n.shape;return F(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 ud=class{};var jh=class extends Qe{split(t){return new WT(this,t)}},WT=class extends jh{constructor(t,e){super(),this.upstream=t,this.impl=new UT(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},UT=class extends Oc{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 uw=class extends Qe{decodeUTF8(){return new HT(this)}},HT=class extends jh{constructor(t){super(),this.upstream=t,this.impl=new qT(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},qT=class extends Oc{constructor(t){if(super(),this.upstream=t,B().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:e}=kT();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 B().get("IS_BROWSER")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var cd=class extends uw{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(B().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 PR(r,t={},e){let n,o;typeof r=="string"?n=r:(n=r.url,o=oJ(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new cd(i,t)}else throw new Error(s.statusText)}var oJ=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 cw(r){return typeof r=="string"&&r.slice(0,7)==="file://"}var pd=class extends ud{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(cw(this.input)&&B().get("IS_NODE")){let t=pw();this.input=t.readFileSync(this.input.slice(7))}return new cd(this.input,this.options)}};var md=class extends ud{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return cw(this.url)?new pd(this.url,this.fileOptions).iterator():PR(this.url,this.fileOptions)}};function LR(r,t={}){return new id(new md(r),t)}function MR(r){let t=qh(r);return En(async()=>t)}function zR(r){return En(async()=>{let t=await r();return qh(()=>t.next())})}async function BR(r,t){return ld.create(r,t)}async function VR(r){return ad.create(r)}var KT="3.20.0";function nt(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 sJ=Vr.whereImpl,Tu=class extends Ho{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new ra(this,go())}nextDataId(){return Tu.nextDataId++}write(t,e,n){this.firstUse&&(this.firstUse=!1,B().get("IS_NODE")&&S.warn(` + ${n}, and tensor's shape is: ${r.shape}`);let s=r.shape.slice(1),i=Rb(s,e),a=n===0?0:r.size/n,u=B(()=>{let c=[];r=D(r,[1,n,a]);for(let p=0;p{switch(r.op){case"If":case"StatelessIf":{let n=v("thenBranch",r,t,e),o=v("elseBranch",r,t,e),s=v("cond",r,t,e),i=v("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=v("body",r,t,e),o=v("cond",r,t,e),s=v("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=v("pred",r,t,e);return[Xs(n)]}case"Switch":{let n=v("pred",r,t,e),o=v("data",r,t,e);return o.kept||(o=Xs(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case"Merge":{let n=r.inputNames.find(o=>yr(o,t,e)!==void 0);if(n){let o=yr(n,t,e);return[Xs(o)]}return}case"Enter":{let n=v("frameName",r,t,e),o=v("tensor",r,t,e);return e.enterFrame(n),[Xs(o)]}case"Exit":{let n=v("tensor",r,t,e);return e.exitFrame(),[Xs(n)]}case"NextIteration":{let n=v("tensor",r,t,e);return e.nextIteration(),[Xs(n)]}case"TensorArrayV3":{let n=v("size",r,t,e),o=v("dtype",r,t,e),s=v("elementShape",r,t,e),i=v("dynamicSize",r,t,e),a=v("clearAfterRead",r,t,e),u=v("identicalElementShapes",r,t,e),l=v("name",r,t,e),c=new Fb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,mt(1)]}case"TensorArrayWriteV3":{let n=v("tensorArrayId",r,t,e),o=v("index",r,t,e),s=v("tensor",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case"TensorArrayReadV3":{let n=v("tensorArrayId",r,t,e),o=v("index",r,t,e);return[e.getTensorArray(n.id).read(o)]}case"TensorArrayGatherV3":{let n=v("tensorArrayId",r,t,e),o=v("indices",r,t,e),s=v("dtype",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case"TensorArrayScatterV3":{let n=v("tensorArrayId",r,t,e),o=v("indices",r,t,e),s=v("tensor",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case"TensorArrayConcatV3":{let n=v("tensorArrayId",r,t,e),o=e.getTensorArray(n.id),s=v("dtype",r,t,e);return[o.concat(s)]}case"TensorArraySplitV3":{let n=v("tensorArrayId",r,t,e),o=v("tensor",r,t,e),s=v("lengths",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case"TensorArraySizeV3":{let n=v("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return[mt(o.size(),"int32")]}case"TensorArrayCloseV3":{let n=v("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case"TensorListSetItem":{let n=v("tensorListId",r,t,e),o=v("index",r,t,e),s=v("tensor",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case"TensorListGetItem":{let n=v("tensorListId",r,t,e),o=v("index",r,t,e),s=v("elementShape",r,t,e),i=v("elementDType",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let n=v("indices",r,t,e),o=v("tensor",r,t,e),s=v("elementShape",r,t,e),i=v("numElements",r,t,e),a=PD(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let n=v("elementShape",r,t,e),o=v("elementDType",r,t,e),s;r.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=v(s,r,t,e),a=r.op==="TensorListReserve"?-1:i,u=OD(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case"TensorListGather":{let n=v("tensorListId",r,t,e),o=v("indices",r,t,e),s=v("elementShape",r,t,e),i=v("elementDType",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case"TensorListStack":{let n=v("tensorListId",r,t,e),o=v("elementShape",r,t,e),s=v("elementDType",r,t,e),i=v("numElements",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case"TensorListFromTensor":{let n=v("tensor",r,t,e),o=v("elementShape",r,t,e),s=v("elementDType",r,t,e),i=FD(n,o,s);return e.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let n=v("tensorListId",r,t,e),o=e.getTensorList(n.id),s=v("dtype",r,t,e),i=v("elementShape",r,t,e);return[o.concat(s,i)]}case"TensorListPushBack":{let n=v("tensorListId",r,t,e),o=v("tensor",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case"TensorListPopBack":{let n=v("tensorListId",r,t,e),o=v("elementShape",r,t,e),s=v("elementDType",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case"TensorListSplit":{let n=v("tensor",r,t,e),o=v("elementShape",r,t,e),s=v("lengths",r,t,e),i=LD(n,s,o);return e.addTensorList(i),[i.idTensor]}case"TensorListLength":{let n=v("tensorListId",r,t,e),o=e.getTensorList(n.id);return[mt(o.size(),"int32")]}case"TensorListResize":{let n=v("tensorListId",r,t,e),o=v("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 zD(r,t,e){let[n,o]=v("fusedOps",r,t,e),s=n==="biasadd",i=!s,a=o==="prelu",u=n==="fusedbatchnorm",l=v("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=v("strides",r,t,e),p=Eh(r,t,e),m=v("dataFormat",r,t,e).toUpperCase(),f=v("dilations",r,t,e),[d,h]=v("args",r,t,e);i&&(h=d,d=void 0);let g=v("leakyreluAlpha",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var BD=(r,t,e,n=ae)=>{switch(r.op){case"Conv1D":{let o=v("stride",r,t,e),s=v("pad",r,t,e),i=v("dataFormat",r,t,e).toUpperCase(),a=v("dilation",r,t,e);return[n.conv1d(v("x",r,t,e),v("filter",r,t,e),o,s,i,a)]}case"Conv2D":{let o=v("strides",r,t,e),s=Eh(r,t,e),i=v("dataFormat",r,t,e).toUpperCase(),a=v("dilations",r,t,e);return[n.conv2d(v("x",r,t,e),v("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}=zD(r,t,e);return[n.fused.conv2d({x:v("x",r,t,e),filter:v("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}=zD(r,t,e);return[n.fused.depthwiseConv2d({x:v("x",r,t,e),filter:v("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=v("outputShape",r,t,e),s=v("strides",r,t,e),i=Eh(r,t,e);return[n.conv2dTranspose(v("x",r,t,e),v("filter",r,t,e),o,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let o=v("strides",r,t,e),s=Eh(r,t,e),i=v("dilations",r,t,e),a=v("dataFormat",r,t,e).toUpperCase();return[n.depthwiseConv2d(v("input",r,t,e),v("filter",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case"Conv3D":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("dataFormat",r,t,e).toUpperCase(),a=v("dilations",r,t,e);return[n.conv3d(v("x",r,t,e),v("filter",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case"AvgPool":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e);return[n.avgPool(v("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPool":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e);return[n.maxPool(v("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPoolWithArgmax":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e),a=v("includeBatchInIndex",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(v("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case"AvgPool3D":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e);return[n.avgPool3d(v("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"MaxPool3D":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("kernelSize",r,t,e);return[n.maxPool3d(v("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"Dilation2D":{let o=v("strides",r,t,e),s=v("pad",r,t,e),i=v("dilations",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(v("x",r,t,e),v("filter",r,t,e),[a,u],s,[l,c],"NHWC")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var VD=(r,t,e,n=ae)=>{switch(r.op){case"Fill":{let o=v("shape",r,t,e),s=v("dtype",r,t,e),i=v("value",r,t,e);return[n.fill(o,i,s)]}case"LinSpace":{let o=v("start",r,t,e),s=v("stop",r,t,e),i=v("num",r,t,e);return[n.linspace(o,s,i)]}case"Multinomial":{let o=v("logits",r,t,e),s=v("numSamples",r,t,e),i=v("seed",r,t,e);return[n.multinomial(o,s,i)]}case"OneHot":{let o=v("indices",r,t,e),s=v("depth",r,t,e),i=v("onValue",r,t,e),a=v("offValue",r,t,e),u=v("dtype",r,t,e);return[n.oneHot(o,s,i,a,u)]}case"Ones":return[n.ones(v("shape",r,t,e),v("dtype",r,t,e))];case"OnesLike":return[n.onesLike(v("x",r,t,e))];case"RandomStandardNormal":return[n.randomStandardNormal(v("shape",r,t,e),v("dtype",r,t,e),v("seed",r,t,e))];case"RandomUniform":return[n.randomUniform(v("shape",r,t,e),v("minval",r,t,e),v("maxval",r,t,e),v("dtype",r,t,e))];case"Range":{let o=v("start",r,t,e),s=v("stop",r,t,e),i=v("step",r,t,e);return[n.range(o,s,i,v("dtype",r,t,e))]}case"TruncatedNormal":{let o=v("shape",r,t,e),s=v("mean",r,t,e),i=v("stdDev",r,t,e),a=v("seed",r,t,e);return[n.truncatedNormal(o,s,i,v("dtype",r,t,e),a)]}case"Zeros":return[n.zeros(v("shape",r,t,e),v("dtype",r,t,e))];case"ZerosLike":return[n.zerosLike(v("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function aN(r,t,e){let n=v("boxes",r,t,e),o=v("scores",r,t,e),s=v("maxOutputSize",r,t,e),i=v("iouThreshold",r,t,e),a=v("scoreThreshold",r,t,e),u=v("softNmsSigma",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var GD=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}=aN(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}=aN(r,t,e),c=v("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}=aN(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case"Where":{let s=o.cast(v("condition",r,t,e),"bool"),i=[await o.whereAsync(s)];return s.dispose(),i}case"ListDiff":return o.setdiff1dAsync(v("x",r,t,e),v("y",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var WD=(r,t,e,n=ae)=>{switch(r.op){case"LowerBound":{let o=v("sortedSequence",r,t,e),s=v("values",r,t,e);return[n.lowerBound(o,s)]}case"TopKV2":{let o=v("x",r,t,e),s=v("k",r,t,e),i=v("sorted",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case"UpperBound":{let o=v("sortedSequence",r,t,e),s=v("values",r,t,e);return[n.upperBound(o,s)]}case"Unique":{let o=v("x",r,t,e),s=n.unique(o);return[s.values,s.indices]}case"UniqueV2":{let o=v("x",r,t,e),s=v("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 UD=(r,t,e,n=ae)=>{switch(r.op){case"Const":return t[r.name];case"PlaceholderWithDefault":let o=v("default",r,t,e);return[yr(r.name,t,e)||o];case"Placeholder":return[yr(r.name,t,e)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let c=v("x",r,t,e);return[Xs(c)]}case"IdentityN":return v("x",r,t,e).map(c=>Xs(c));case"Snapshot":let s=v("x",r,t,e);return[Xs(s)];case"Shape":return[n.tensor1d(v("x",r,t,e).shape,"int32")];case"ShapeN":return v("x",r,t,e).map(c=>n.tensor1d(c.shape));case"Size":return[n.scalar(v("x",r,t,e).size,"int32")];case"Rank":return[n.scalar(v("x",r,t,e).rank,"int32")];case"NoOp":return[n.scalar(1)];case"Print":let i=v("x",r,t,e),a=v("data",r,t,e),u=v("message",r,t,e),l=v("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=v("keyDType",r,t,e),s=v("valueDType",r,t,e),i=new Ob(o,s);return n.addHashTable(r.name,i),[i.handle]}case"LookupTableImport":case"LookupTableImportV2":{let o=v("tableHandle",r,t,e,n),s=v("keys",r,t,e),i=v("values",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let o=v("tableHandle",r,t,e,n),s=v("keys",r,t,e),i=v("defaultValue",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let o=v("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=v("images",r,t,e),s=v("size",r,t,e),i=v("alignCorners",r,t,e),a=v("halfPixelCenters",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case"ResizeNearestNeighbor":{let o=v("images",r,t,e),s=v("size",r,t,e),i=v("alignCorners",r,t,e),a=v("halfPixelCenters",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case"CropAndResize":{let o=v("image",r,t,e),s=v("boxes",r,t,e),i=v("boxInd",r,t,e),a=v("cropSize",r,t,e),u=v("method",r,t,e),l=v("extrapolationValue",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case"ImageProjectiveTransformV3":{let o=v("images",r,t,e),s=v("transforms",r,t,e),i=v("outputShape",r,t,e),a=v("fillValue",r,t,e),u=v("interpolation",r,t,e),l=v("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 KD=(r,t,e,n=ae)=>{switch(r.op){case"Equal":return[n.equal(v("a",r,t,e),v("b",r,t,e))];case"NotEqual":return[n.notEqual(v("a",r,t,e),v("b",r,t,e))];case"Greater":return[n.greater(v("a",r,t,e),v("b",r,t,e))];case"GreaterEqual":return[n.greaterEqual(v("a",r,t,e),v("b",r,t,e))];case"Less":return[n.less(v("a",r,t,e),v("b",r,t,e))];case"LessEqual":return[n.lessEqual(v("a",r,t,e),v("b",r,t,e))];case"LogicalAnd":return[n.logicalAnd(v("a",r,t,e),v("b",r,t,e))];case"LogicalNot":return[n.logicalNot(v("a",r,t,e))];case"LogicalOr":return[n.logicalOr(v("a",r,t,e),v("b",r,t,e))];case"Select":case"SelectV2":return[n.where(v("condition",r,t,e),v("a",r,t,e),v("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var jD=(r,t,e,n=ae)=>{switch(r.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[n.matMul(v("a",r,t,e),v("b",r,t,e),v("transposeA",r,t,e),v("transposeB",r,t,e))];case"Einsum":return[n.einsum(v("equation",r,t,e),...v("tensors",r,t,e))];case"Transpose":return[n.transpose(v("x",r,t,e),v("perm",r,t,e))];case"_FusedMatMul":let[o,s]=v("fusedOps",r,t,e),i=o==="biasadd",a=s==="prelu",u=v("numArgs",r,t,e),l=v("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]=v("args",r,t,e);return[n.fused.matMul({a:v("a",r,t,e),b:v("b",r,t,e),transposeA:v("transposeA",r,t,e),transposeB:v("transposeB",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var XD=(r,t,e,n=ae)=>{switch(r.op){case"EuclideanNorm":return[n.euclideanNorm(v("x",r,t,e),v("axis",r,t,e),v("keepDims",r,t,e))];case"FusedBatchNorm":case"FusedBatchNormV2":return[n.batchNorm(v("x",r,t,e),v("mean",r,t,e),v("variance",r,t,e),v("offset",r,t,e),v("scale",r,t,e),v("epsilon",r,t,e))];case"FusedBatchNormV3":return[n.batchNorm(v("x",r,t,e),v("mean",r,t,e),v("variance",r,t,e),v("offset",r,t,e),v("scale",r,t,e),v("epsilon",r,t,e))];case"LRN":return[n.localResponseNormalization(v("x",r,t,e),v("radius",r,t,e),v("bias",r,t,e),v("alpha",r,t,e),v("beta",r,t,e))];case"Softmax":return[n.softmax(v("x",r,t,e))];case"LogSoftmax":return[n.logSoftmax(v("x",r,t,e))];case"SparseToDense":return[n.sparseToDense(v("sparseIndices",r,t,e),v("outputShape",r,t,e),v("sparseValues",r,t,e),v("defaultValue",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var YD=(r,t,e,n=ae)=>{switch(r.op){case"Max":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.max(v("x",r,t,e),a,u)]}case"Mean":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.mean(v("x",r,t,e),a,u)]}case"Min":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.min(v("x",r,t,e),a,u)]}case"Sum":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.sum(v("x",r,t,e),a,u)]}case"All":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.all(v("x",r,t,e),a,u)]}case"Any":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.any(v("x",r,t,e),a,u)]}case"ArgMax":{let a=v("axis",r,t,e);return[n.argMax(v("x",r,t,e),a)]}case"ArgMin":{let a=v("axis",r,t,e);return[n.argMin(v("x",r,t,e),a)]}case"Prod":{let a=v("axis",r,t,e),u=v("keepDims",r,t,e);return[n.prod(v("x",r,t,e),a,u)]}case"Cumprod":{let a=v("axis",r,t,e),u=v("exclusive",r,t,e),l=v("reverse",r,t,e);return[n.cumprod(v("x",r,t,e),a,u,l)]}case"Cumsum":{let a=v("axis",r,t,e),u=v("exclusive",r,t,e),l=v("reverse",r,t,e);return[n.cumsum(v("x",r,t,e),a,u,l)]}case"Bincount":let o=v("x",r,t,e),s=v("weights",r,t,e),i=v("size",r,t,e);return[n.bincount(o,s,i)];case"DenseBincount":{let a=v("x",r,t,e),u=v("weights",r,t,e),l=v("size",r,t,e),c=v("binaryOutput",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var ZD=(r,t,e,n=ae)=>{switch(r.op){case"ConcatV2":case"Concat":{let o=v("n",r,t,e),s=v("axis",r,t,e),i=v("tensors",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case"Gather":{let o=v("x",r,t,e),s=v("indices",r,t,e);return[n.gather(o,n.cast(s,"int32"),0)]}case"GatherV2":{let o=v("axis",r,t,e),s=v("batchDims",r,t,e),i=v("x",r,t,e),a=v("indices",r,t,e);return[n.gather(i,n.cast(a,"int32"),o,s)]}case"Reverse":{let o=v("dims",r,t,e),s=[];for(let a=0;a{let o=v("axis",r,t,e),s=v("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=v("axis",r,t,e),s=v("tensor",r,t,e);return n.unstack(s,o)}case"Tile":{let o=v("reps",r,t,e);return[n.tile(v("x",r,t,e),o)]}case"Split":case"SplitV":{let o=v("axis",r,t,e),s=v("numOrSizeSplits",r,t,e),i=v("x",r,t,e);return n.split(i,s,o)}case"ScatterNd":{let o=v("indices",r,t,e),s=v("values",r,t,e),i=v("shape",r,t,e);return[n.scatterND(o,s,i)]}case"GatherNd":{let o=v("x",r,t,e),s=v("indices",r,t,e);return[n.gatherND(o,s)]}case"SparseToDense":{let o=v("sparseIndices",r,t,e),s=v("outputShape",r,t,e),i=v("sparseValues",r,t,e),a=v("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 JD=(r,t,e,n=ae)=>{switch(r.op){case"SparseFillEmptyRows":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(v("indices",r,t,e),v("values",r,t,e),v("denseShape",r,t,e),v("defaultValue",r,t,e));return[o,s,i,a]}case"SparseReshape":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(v("inputIndices",r,t,e),v("inputShape",r,t,e),v("newShape",r,t,e));return[o,s]}case"SparseSegmentMean":return[n.sparse.sparseSegmentMean(v("data",r,t,e),v("indices",r,t,e),v("segmentIds",r,t,e))];case"SparseSegmentSum":return[n.sparse.sparseSegmentSum(v("data",r,t,e),v("indices",r,t,e),v("segmentIds",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var QD=(r,t,e,n=ae)=>{switch(r.op){case"FFT":return[n.fft(v("x",r,t,e))];case"IFFT":return[n.ifft(v("x",r,t,e))];case"RFFT":return[n.rfft(v("x",r,t,e))];case"IRFFT":return[n.irfft(v("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var tR=(r,t,e,n=ae)=>{switch(r.op){case"StringNGrams":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(v("data",r,t,e),v("dataSplits",r,t,e),v("separator",r,t,e),v("nGramWidths",r,t,e),v("leftPad",r,t,e),v("rightPad",r,t,e),v("padWidth",r,t,e),v("preserveShortSequences",r,t,e));return[o,s]}case"StringSplit":{let{indices:o,values:s,shape:i}=n.string.stringSplit(v("input",r,t,e),v("delimiter",r,t,e),v("skipEmpty",r,t,e));return[o,s,i]}case"StringToHashBucketFast":return[n.string.stringToHashBucketFast(v("input",r,t,e),v("numBuckets",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var eR=(r,t,e,n=ae)=>{switch(r.op){case"Cast":return[n.cast(v("x",r,t,e),v("dtype",r,t,e))];case"ExpandDims":{let o=v("axis",r,t,e);return[n.expandDims(v("x",r,t,e),o)]}case"Squeeze":{let o=v("axis",r,t,e);return[n.squeeze(v("x",r,t,e),o)]}case"Reshape":return[n.reshape(v("x",r,t,e),v("shape",r,t,e))];case"MirrorPad":return[n.mirrorPad(v("x",r,t,e),v("padding",r,t,e),v("mode",r,t,e))];case"PadV2":case"Pad":return[n.pad(v("x",r,t,e),v("padding",r,t,e),v("constantValue",r,t,e))];case"SpaceToBatchND":{let o=v("blockShape",r,t,e),s=v("paddings",r,t,e);return[n.spaceToBatchND(v("x",r,t,e),o,s)]}case"BatchToSpaceND":{let o=v("blockShape",r,t,e),s=v("crops",r,t,e);return[n.batchToSpaceND(v("x",r,t,e),o,s)]}case"DepthToSpace":{let o=v("blockSize",r,t,e),s=v("dataFormat",r,t,e).toUpperCase();return[n.depthToSpace(v("x",r,t,e),o,s)]}case"BroadcastTo":return[n.broadcastTo(v("x",r,t,e),v("shape",r,t,e))];case"BroadcastArgs":return[n.broadcastArgs(v("s0",r,t,e),v("s1",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function lN(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case"arithmetic":return o(()=>$D(i,a,u));case"basic_math":return o(()=>DD(i,a,u));case"control":return MD(i,a,u);case"convolution":return o(()=>BD(i,a,u));case"creation":return o(()=>VD(i,a,u));case"dynamic":return GD(i,a,u);case"evaluation":return o(()=>WD(i,a,u));case"image":return o(()=>qD(i,a,u));case"graph":return o(()=>UD(i,a,u));case"logical":return o(()=>KD(i,a,u));case"matrices":return o(()=>jD(i,a,u));case"normalization":return o(()=>XD(i,a,u));case"reduction":return o(()=>YD(i,a,u));case"slice_join":return o(()=>ZD(i,a,u));case"sparse":return o(()=>JD(i,a,u));case"spectral":return o(()=>QD(i,a,u));case"string":return o(()=>tR(i,a,u));case"transformation":return o(()=>eR(i,a,u));case"hash_table":return HD(i,a,u,n);case"custom":let l=wb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Db(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 Ah=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 uN(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=Object.keys(r).map(m=>gn(m)[0]),c=[];n!=null&&(c=n.map(m=>gn(m.name)[0]));let p=[...t];for(;p.length>0;){let m=p.pop();if((cN(m)||y7(m)||b7(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 rR(r,t,e){let{usedNodes:n,inputs:o}=e,s=[],i=Object.keys(o).map(c=>gn(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 h7=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],g7=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],x7=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function cN(r){return h7.indexOf(r.op)>=0}function y7(r){return g7.indexOf(r.op)>=0}function b7(r){return x7.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=uN(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 rR(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[gn(p)[0]]),s=e.map(p=>gn(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 Ah(this.weightMap,l,c,this.functionExecutorMap),m=Object.assign({},this.weightMap);Object.keys(t).forEach(h=>{let[g,x]=gn(h),b=[];b[x]=t[h],m[g]=b});let f=this.getFrozenTensorIds(m),d={};for(let h=0;hyr(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=TD(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]=Eo(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=M().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(c){console.warn(c.message)}this.resetIntermediateTensors();let i=new Ah(this.weightMap,o,s,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(t,i,e,n);let a=e.map(c=>yr(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[gn(w)[0]]),a=n.map(w=>gn(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}=uN(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]=gn(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=>!cN(w)&&!yr(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"&&v("isConstant",p.node,o,n)&&([m]=Eo(p.node.name,n)),o[p.node.name]==null){let f=lN(p.node,o,n,this._resourceManager);m||([m]=Eo(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]=Eo(a.name,n);s[u]||!i.has(a.name)||(a.op==="Merge"?a.inputNames.some(l=>!!yr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!yr(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]=gn(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]=gn(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]=gn(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var Pb=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 w7="?tfjs-format=file",C7="model.json",$h=class{constructor(t,e={},n=Er){this.modelUrl=t,this.loadOptions=e,this.version="n/a",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new Pb}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(_h.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=_h.Instance.transformGraph(t.modelInitializer);this.initializer=new Nc(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}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))return t;if(t=Array.isArray(t)?t:[t],t.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${t.length} input tensors.`);return this.inputNodes.reduce((e,n,o)=>(e[n]=t[o],e),{})}normalizeOutputs(t){return t=t||this.outputNodes,Array.isArray(t)?t:[t]}execute(t,e){t=this.normalizeInputs(t),e=this.normalizeOutputs(e);let n=this.executor.execute(t,e);return n.length>1?n:n[0]}async executeAsync(t,e){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.resourceManager.dispose()}};async function I7(r,t={},e=Er){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=S7(r));let n=new $h(r,t,e);return await n.load(),n}function v7(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=Er.getWeightSpecs(n.weightsManifest),i=Er.getModelArtifactsForJSONSync(n,s,o);t=Er.fromMemorySync(i)}else if("load"in r)t=r;else if("modelTopology"in r&&"weightSpecs"in r&&"weightData"in r)t=Er.fromMemorySync(r);else throw new Error("Unknown model format");let e=new $h(t);return e.load(),e}function S7(r){return r.endsWith("/")||(r=r+"/"),`${r}${C7}${w7}`}var nR="3.21.0";var vR={};Gt(vR,{CSVDataset:()=>Kf,Dataset:()=>Ys,FileDataSource:()=>Jf,TextLineDataset:()=>qf,URLDataSource:()=>Qf,array:()=>fR,csv:()=>yR,func:()=>bR,generator:()=>wR,microphone:()=>IR,version_data:()=>$N,webcam:()=>CR,zip:()=>dR});var mR=Sl(lh());var uR=Sl(lh());function oR(r,t){return Lb(r,t)}function Lb(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=Lb(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 sR(r,t=mN){return iR(r,t)}function iR(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=iR(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 mN(r){return r===null?null:vu(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function Mb(r,t){let e=new Map;Lb(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 Lb(r,t,e)}function vu(r){let t=!1;if(M().get("IS_BROWSER"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=pN();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r=="object"&&!(r instanceof Ft)&&!(r instanceof Promise)&&!t)}function aR(r){return r==null||N7(r)||Array.isArray(r)||typeof r=="object"&&r instanceof Ft||y.isTypedArray(r)}function N7(r){return r===null||typeof r!="object"&&typeof r!="function"}function lR(r){return oR(r,k7)}function k7(r){return r instanceof Ft?{value:r.clone(),recurse:!1}:vu(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var Hf=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 kc=class extends Hf{constructor(){super(kc.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 yN(this,t,e)}columnMajorBatch(t,e=!0,n=mN){return this.rowMajorBatch(t,e).map(s=>sR(s,n))}concatenate(t,e){return new Bb(NN([this,t]),e)}take(t){return t<0||t==null?this:new xN(this,t)}skip(t){return t<0||t==null?this:new gN(this,t)}prefetch(t){return new Vb(this,t)}shuffle(t,e){return new SN(this,t,e)}serial(){return new hN(this)}},fN=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:lR(t),done:!1}}},dN=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}}},hN=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()}},gN=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()}},yN=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}}},bN=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;St(t.value)}}},wN=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=fo.getTensorsInContainer(t.value),n=this.transform(t.value),o=fo.getTensorsInContainer(n);for(let s of e)fo.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},CN=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}}}},zb=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=fo.getTensorsInContainer(t.value),n=await this.transform(t.value),o=fo.getTensorsInContainer(n);for(let s of e)fo.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},Tc=class extends Je{constructor(){super(),this.outputQueue=new kc,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}}},IN=class extends Tc{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=fo.getTensorsInContainer(t.value),n=this.transform(t.value),o=fo.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)fo.isTensorInList(s,o)||s.dispose();return!0}},Bb=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}},pl;(function(r){r[r.FAIL=0]="FAIL",r[r.SHORTEST=1]="SHORTEST",r[r.LONGEST=2]="LONGEST"})(pl||(pl={}));var vN=class extends Je{constructor(t,e=pl.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 Mb(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case pl.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case pl.SHORTEST:return{value:null,done:!0};case pl.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},Vb=class extends Je{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new Hf(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()}},SN=class extends Vb{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=uR.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 Ys=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,T7),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=Dh(async()=>({value:await e.iterator(),done:!1}));return cR(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=mR.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()}};Ys.MAX_BUFFER_SIZE=1e4;function kn(r,t=null){return new class extends Ys{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function fR(r){return kn(async()=>NN(r),r.length)}function dR(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 Mb(r,n=>{if(n instanceof Ys)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 pR(e,pl.SHORTEST)},t)}function T7(r){if(r===null)return null;let t=r[0];return aR(t)?{value:E7(r),recurse:!1}:{value:null,recurse:!0}}function E7(r){if(r.length===0)throw new Error("Can't make a batch of zero elements.");return r[0]instanceof Ft?rr(r):wr(r)}var qf=class extends Ys{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 Gb='"',Rh=Symbol("out"),hR=Symbol("field"),Wb=Symbol("quote"),kN=Symbol("quoteafterquote"),gR=Symbol("quoteinquote"),Kf=class extends Ys{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 qf(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(!M().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let e=new jf(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),wr(n,e)}};var Xf=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=Le([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=Bs([i,s,u,a],[1,4])}else this.cropBox=Bs([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(t,e={}){if(!M().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 Xf(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=Jg.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=gr(J(t,"float32"),0),n;n=lu.cropAndResize(e,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let o=n.shape;return D(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 Yf=class{};var Fh=class extends Je{split(t){return new TN(this,t)}},TN=class extends Fh{constructor(t,e){super(),this.upstream=t,this.impl=new EN(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},EN=class extends Tc{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 Ub=class extends Je{decodeUTF8(){return new _N(this)}},_N=class extends Fh{constructor(t){super(),this.upstream=t,this.impl=new AN(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},AN=class extends Tc{constructor(t){if(super(),this.upstream=t,M().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:e}=pN();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 M().get("IS_BROWSER")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var Zf=class extends Ub{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(M().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 xR(r,t={},e){let n,o;typeof r=="string"?n=r:(n=r.url,o=_7(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new Zf(i,t)}else throw new Error(s.statusText)}var _7=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 Hb(r){return typeof r=="string"&&r.slice(0,7)==="file://"}var Jf=class extends Yf{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(Hb(this.input)&&M().get("IS_NODE")){let t=qb();this.input=t.readFileSync(this.input.slice(7))}return new Zf(this.input,this.options)}};var Qf=class extends Yf{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return Hb(this.url)?new Jf(this.url,this.fileOptions).iterator():xR(this.url,this.fileOptions)}};function yR(r,t={}){return new Kf(new Qf(r),t)}function bR(r){let t=Dh(r);return kn(async()=>t)}function wR(r){return kn(async()=>{let t=await r();return Dh(()=>t.next())})}async function CR(r,t){return Xf.create(r,t)}async function IR(r){return jf.create(r)}var $N="3.21.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 A7=Wr.whereImpl,Su=class extends Mo{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new ta(this,ho())}nextDataId(){return Su.nextDataId++}write(t,e,n){this.firstUse&&(this.firstUse=!1,M().get("IS_NODE")&&S.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 S.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 vt(t.shape,t.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return vt(t.shape,t.dtype,e)}makeOutput(t,e,n){return go().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){nt([t],"where");let e=this.readSync(t.dataId);return sJ(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Tu.nextDataId=0;var Sw={};jt(Sw,{addImpl:()=>YT,bincountImpl:()=>hd,bincountReduceImpl:()=>mw,castImpl:()=>XT,ceilImpl:()=>ZT,concatImpl:()=>Pc,equalImpl:()=>JT,expImpl:()=>tN,expm1Impl:()=>rN,floorImpl:()=>nN,gatherNdImpl:()=>fw,gatherV2Impl:()=>dw,greaterEqualImpl:()=>sN,greaterImpl:()=>oN,lessEqualImpl:()=>aN,lessImpl:()=>iN,linSpaceImpl:()=>hw,logImpl:()=>lN,maxImpl:()=>gw,maximumImpl:()=>uN,minimumImpl:()=>cN,multiplyImpl:()=>Xh,negImpl:()=>pN,notEqualImpl:()=>mN,prodImpl:()=>fN,raggedTensorToTensorImpl:()=>xw,rangeImpl:()=>Mc,rsqrtImpl:()=>dN,scatterImpl:()=>fl,sigmoidImpl:()=>hF,simpleAbsImpl:()=>jT,sliceImpl:()=>zc,sparseFillEmptyRowsImpl:()=>yw,sparseReshapeImpl:()=>bw,sparseSegmentReductionImpl:()=>yd,sqrtImpl:()=>yF,squaredDifferenceImpl:()=>gN,stridedSliceImpl:()=>ww,stringNGramsImpl:()=>Bc,stringSplitImpl:()=>Vc,stringToHashBucketFastImpl:()=>Gc,subImpl:()=>yN,tileImpl:()=>Cw,topKImpl:()=>vw,transposeImpl:()=>gd,uniqueImpl:()=>Iw});function jT(r){let t=new Float32Array(r.length);for(let e=0;e{let{x:t}=r.inputs,e=r.backend;nt(t,"abs");let n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId).values;return n=jT(o),e.makeOutput(n,t.shape,t.dtype)},WR={kernelName:pi,backendName:"cpu",kernelFunc:iJ};function re(r){return(t,e,n,o,s)=>{let i=S.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=S.getBroadcastDims(t,i),g=S.getBroadcastDims(e,i);if(h.length+g.length===0)for(let x=0;xw[$]=0);let C=y.locToIndex(w,p,f),T=b.slice(-m);g.forEach($=>T[$]=0);let E=y.locToIndex(T,m,d);c[x]=r(n[C],o[E])}return[c,i]}}function Cr(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 UR={kernelName:Np,backendName:"cpu",kernelFunc:Cr};function fd(r,t,e="float32"){if(e==="complex64"){let o=fd(r,t,"float32"),s=fd(r,t,"float32");return Cr({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Ur(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 HR={kernelName:uo,backendName:"cpu",kernelFunc:Ur};function Eo(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 qR={kernelName:qp,backendName:"cpu",kernelFunc:Eo};function XT(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]=re((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 Ao(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s==="complex64"){if(o.dtype==="complex64")return Ur({inputs:{x:o},backend:e});let c=fd(e,o.shape,o.dtype),p=Ao({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),m=Cr({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype==="complex64"){let c=Eo({inputs:{input:o},backend:e}),p=Ao({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Ur({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]=XT(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var KR={kernelName:ao,backendName:"cpu",kernelFunc:Ao};function ie(r,t,e,n){return e==null?({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;nt([i,a],r);let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=i.dtype==="string"?S.fromUint8ToStringArray(l):l,m=i.dtype==="string"?S.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=Ao({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=Ao({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,[T,E,$]=e(i.shape,a.shape,f,d,w,C),D=u.makeTensorInfo($,"float32",T),P=u.makeTensorInfo($,"float32",E),M=Cr({inputs:{real:D,imag:P},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo(D),u.disposeIntermediateTensorInfo(P),M}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 dd(r){return(t,e,n,o,s,i)=>{let a=S.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=S.getBroadcastDims(t,a),d=S.getBroadcastDims(e,a),h=S.mergeRealAndImagArrays(n,o),g=S.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 T=0;T$[H]=0);let D=y.locToIndex($,x,b),P=E.slice(-w);d.forEach(H=>P[H]=0);let M=y.locToIndex(P,w,C),W=r(h[D*2],h[D*2+1],g[M*2],g[M*2+1]);p[T]=W.real,m[T]=W.imag}return[p,m,a]}}var YT=re((r,t)=>r+t),aJ=dd((r,t,e,n)=>({real:r+e,imag:t+n})),Qi=ie(jn,YT,aJ),jR={kernelName:jn,backendName:"cpu",kernelFunc:Qi};function hd(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 mw(r,t,e,n=!1){let o=r.shape[0],s=r.shape[1],i=vt([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 bn(r){return(t,e,n)=>{let o=y.getTypedArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;if(nt(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(nt(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 ZT=bn(r=>Math.ceil(r)),lJ=$o(Jo,ZT),XR={kernelName:Jo,backendName:"cpu",kernelFunc:lJ};function Pc(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"?S.fromUint8ToStringArray(i.vals):i.vals,u=0;for(let l=0;lr===t?1:0),QT=ie(xa,JT,null,"bool"),YR={kernelName:xa,backendName:"cpu",kernelFunc:QT};var tN=bn(r=>Math.exp(r)),eN=$o(as,tN,"float32"),ZR={kernelName:as,backendName:"cpu",kernelFunc:eN};var rN=bn(r=>Math.expm1(r)),uJ=$o(ya,rN),JR={kernelName:ya,backendName:"cpu",kernelFunc:uJ};var nN=bn(r=>Math.floor(r)),cJ=$o(ls,nN),QR={kernelName:ls,backendName:"cpu",kernelFunc:cJ};function fw(r,t,e,n,o,s,i,a,u){let l=vt([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),pJ=ie(Ca,oN,null,"bool"),tF={kernelName:Ca,backendName:"cpu",kernelFunc:pJ};var sN=re((r,t)=>r>=t?1:0),mJ=ie(ps,sN,null,"bool"),eF={kernelName:ps,backendName:"cpu",kernelFunc:mJ};var iN=re((r,t)=>rr<=t?1:0),dJ=ie(Na,aN,null,"bool"),nF={kernelName:Na,backendName:"cpu",kernelFunc:dJ};function hw(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,"float32");o[0]=r;for(let s=1;sMath.log(r)),hJ=$o(fs,lN),oF={kernelName:fs,backendName:"cpu",kernelFunc:hJ};function gw(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 uN=re((r,t)=>Math.max(r,t)),gJ=ie(hs,uN),sF={kernelName:hs,backendName:"cpu",kernelFunc:gJ};var cN=re((r,t)=>Math.min(r,t)),xJ=ie(bs,cN),iF={kernelName:bs,backendName:"cpu",kernelFunc:xJ};var Xh=re((r,t)=>r*t),yJ=dd((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),Lc=ie(Cs,Xh,yJ),aF={kernelName:Cs,backendName:"cpu",kernelFunc:Lc};function pN(r,t,e){let n=y.createScalarValue(-1,e);return Xh([],t,n,r,e)}function bJ(r){let{inputs:t,backend:e}=r,{x:n}=t;nt(n,"neg");let o=e.data.get(n.dataId).values,[s,i]=pN(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var lF={kernelName:gi,backendName:"cpu",kernelFunc:bJ};var mN=re((r,t)=>r!==t?1:0),wJ=ie(Da,mN,null,"bool"),uF={kernelName:Da,backendName:"cpu",kernelFunc:wJ};function gd(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 pF={kernelName:Ns,backendName:"cpu",kernelFunc:CJ};var Do=S.RowPartitionType,xd=class{constructor(t,e,n,o,s,i,a,u,l,c){this.shape=t,this.shapeShape=e,this.values=n,this.valuesShape=o,this.valuesDType=s,this.defaultValue=i,this.defaultValueShape=a,this.rowPartitionValues=u,this.rowPartitionValuesShapes=l,this.rowPartitionTypes=S.getRowPartitionTypesHelper(c),this.raggedRank=S.getRaggedRank(this.rowPartitionTypes)}getRowPartitionTypeByDimension(t){return this.rowPartitionTypes[0]===Do.FIRST_DIM_SIZE?this.rowPartitionTypes[t+1]:this.rowPartitionTypes[t]}getRowPartitionTensor(t){return this.rowPartitionTypes[0]===Do.FIRST_DIM_SIZE?this.rowPartitionValues[t+1]:this.rowPartitionValues[t]}getMaxWidth(t){let e=this.getRowPartitionTensor(t-1);switch(this.getRowPartitionTypeByDimension(t-1)){case Do.VALUE_ROWIDS:return xd.getMaxWidthValueRowID(e);case Do.ROW_SPLITS:return xd.getMaxWidthRowSplit(e);default:throw new Error(`Cannot handle partition type ${Do[this.getRowPartitionTypeByDimension(t-1)]}`)}}static getMaxWidthRowSplit(t){let e=t.length;if(e===0||e===1)return 0;let n=0;for(let o=0;on&&(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 Do.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Do.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: ${Do[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 Do.FIRST_DIM_SIZE:return t[0];case Do.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Do.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Do[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=fF(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;G(()=>{let h=F(c,d);c=Mi(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);mF(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function mF(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 xw(r,t,e,n,o,s,i,a,u,l){return new xd(r,t,e,n,o,s,i,a,u,l).compute()}function Mc(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)),vJ=$o(Rs,dN),dF={kernelName:Rs,backendName:"cpu",kernelFunc:vJ};function fl(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 vt(e,t.dtype);let f=vt(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))),hN=Et(Os,r=>1/(1+Math.exp(-r))),gF={kernelName:Os,backendName:"cpu",kernelFunc:hN};function zc(r,t,e,n,o){let s=Be.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=Be.computeFlatOffset(t,a);return o==="string"?r.slice(p,p+i):r.subarray(p,p+i)}let u=o==="string"?S.fromUint8ToStringArray(r):r,l=vt(n,o,u),c=vt(e,o);for(let p=0;pd+t[h]);c.set(l.get(...f),...m)}return o==="string"?S.fromStringArrayToUint8(c.values):c.values}function Ro(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;nt(o,"slice");let[a,u]=Be.parseSliceParams(o,s,i);Be.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=zc(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var xF={kernelName:Ci,backendName:"cpu",kernelFunc:Ro};function yw(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(S.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(S.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(S.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(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let h=0,g=1,x=0,b=o[h];for(;;){let w=0;if(g=w)throw new Error(S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>x&&d.fill(i,x*l,b*l);for(let C=h;C=u[0])throw new Error(S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(C,n[C],u[0]));for(let E=0;Ea)break}return xMath.sqrt(r)),IJ=Et(Ps,r=>Math.sqrt(r)),bF={kernelName:Ps,backendName:"cpu",kernelFunc:IJ};var gN=re((r,t)=>{let e=r-t;return e*e}),SJ=ie(zs,gN),wF={kernelName:zs,backendName:"cpu",kernelFunc:SJ};function ww(r,t,e,n){let o=vt(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 Bc(r,t,e,n,o,s,i,a){return new xN(e,n,o,s,i,a).compute(r,t)}function TJ(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),NJ=dd((r,t,e,n)=>({real:r-e,imag:t-n})),Yh=ie(Bs,yN,NJ),CF={kernelName:Bs,backendName:"cpu",kernelFunc:Yh};function Cw(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 vF(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));vF(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),Zh(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}Zh(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 vw(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 Tu,1);var bN=Et(is,r=>r>=0?r:Math.exp(r)-1),IF={kernelName:is,backendName:"cpu",kernelFunc:bN};function wN(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n;nt([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 CN(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t;nt([n,o],"prelu");let s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,[a,u]=_J(n.shape,o.shape,s,i,"float32");return e.makeTensorInfo(u,"float32",a)}var TF={kernelName:Ts,backendName:"cpu",kernelFunc:CN};var vN=Et(ks,r=>Math.max(0,r)),NF={kernelName:ks,backendName:"cpu",kernelFunc:vN};var IN=Et(As,r=>Math.min(Math.max(0,r),6)),kF={kernelName:As,backendName:"cpu",kernelFunc:IN};function Wc(r,t,e,n,o){if(e==="linear")return Ur({inputs:{x:t},backend:r});if(e==="relu")return vN({inputs:{x:t},backend:r});if(e==="elu")return bN({inputs:{x:t},backend:r});if(e==="relu6")return IN({inputs:{x:t},backend:r});if(e==="prelu")return CN({inputs:{x:t,alpha:n},backend:r});if(e==="leakyrelu")return wN({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e==="sigmoid")return hN({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function Jt(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 _F={kernelName:bi,backendName:"cpu",kernelFunc:Jt};function SN(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;nt([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=Lr.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],T=a?[x,f,p]:[x,p,f],E=Jt({inputs:{x:o},backend:e,attrs:{shape:C}}),$=Jt({inputs:{x:s},backend:e,attrs:{shape:T}}),D=i?E.shape[1]:E.shape[2],P=i?E.shape[2]:E.shape[1],M=a?$.shape[1]:$.shape[2],W=Math.max(g,x),H=e.data.get(E.dataId).values,q=e.data.get($.dataId).values,X=y.computeStrides(E.shape),j=y.computeStrides($.shape),[Z,et,K]=i?[X[0],1,X[1]]:[X[0],X[1],1],[ot,st,it]=a?[1,j[1],j[0]]:[j[1],1,j[0]],pt=P*M,at=vt([W,P,M],E.dtype),gt=at.values,dt=e.blockSize;for(let bt=0;btMath.acos(r)),$F={kernelName:oa,backendName:"cpu",kernelFunc:AJ};var $J=Et(sa,r=>Math.acosh(r)),DF={kernelName:sa,backendName:"cpu",kernelFunc:$J};function DJ(r){let{inputs:t,backend:e}=r,n=t;nt(t,"addN");let o=n.map(a=>e.data.get(a.dataId).values),s=vt(n[0].shape,n[0].dtype),i=s.values;for(let a=0;ab&&(b=T,w=C)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,"int32",f)}var PF={kernelName:Xo,backendName:"cpu",kernelFunc:OJ};function PJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n;nt(o,"argMin");let i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Ue({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),i=[i[0]],S.assertAxesAreInnerMostDims("argMin",i,u.shape.length);let[c,p]=S.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 LF={kernelName:Nl,backendName:"cpu",kernelFunc:PJ};var LJ=Et(la,r=>Math.asin(r)),MF={kernelName:la,backendName:"cpu",kernelFunc:LJ};var MJ=Et(ua,r=>Math.asinh(r)),zF={kernelName:ua,backendName:"cpu",kernelFunc:MJ};var zJ=Et(ca,r=>Math.atan(r)),BF={kernelName:ca,backendName:"cpu",kernelFunc:zJ};var BJ=re((r,t)=>Math.atan2(r,t)),VJ=ie(ma,BJ),VF={kernelName:ma,backendName:"cpu",kernelFunc:VJ};var GJ=Et(pa,r=>Math.atanh(r)),GF={kernelName:pa,backendName:"cpu",kernelFunc:GJ};function bd(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=vt(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;Cet?et=dt:s==="avg"&&(K+=dt,ot++)}if(isNaN(et))break}let st=H+q*w+$;g[st]=s==="avg"?K/ot:et}}}return h}function Tw(r,t,e,n,o=!1,s=!1){let i=vt(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=vt(t,e,r);for(let g=0;gM&&(M=Z,o?W=s?((g*n.inHeight+H)*n.inWidth+X)*n.inChannels+x:(H*n.inWidth+X)*n.inChannels+x:W=q*m+j)}}i.set(W,g,b,E,x)}}return i}function Nw(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=vt(o.outShape,e),C=w.values,T=o.outShape[1]*o.outShape[2]*o.outShape[3]*o.outShape[4],E=o.outShape[2]*o.outShape[3]*o.outShape[4],$=o.outShape[3]*o.outShape[4],D=o.outShape[4];for(let P=0;PAt?At=Re:s==="avg"&&(Rt+=Re,qt++),isNaN(At))break}if(isNaN(At))break}if(isNaN(At))break}let Kt=Tt+H;C[Kt]=s==="avg"?Rt/qt:At}}}}return w}function WF(r,t){let e=vt(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=q&&(q=it,X=Z*c*p+K*c+st)}}}e.set(X,h,x,T,P,g)}}}return e}function WJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;nt(o,"avgPool");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Ur({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=bd(m,o.shape,o.dtype,f,c,"avg");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var UF={kernelName:Yo,backendName:"cpu",kernelFunc:WJ};function UJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;nt(o,"avgPool3d");let c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=Nw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"avg");return e.makeTensorInfo(m.shape,"float32",m.values)}var HF={kernelName:kl,backendName:"cpu",kernelFunc:UJ};function HJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;nt([o,s],"avgPool3DGrad");let c=S.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,T=c.effectiveFilterHeight,E=c.effectiveFilterWidth,$=C-1-c.padInfo.front,D=E-1-c.padInfo.left,P=T-1-c.padInfo.top,M=vt(s.shape,"float32"),W=1/(d*h*g),H=e.bufferSync(o);for(let q=0;q=c.outDepth||Math.floor(at)!==at))for(let gt=0;gt=c.outHeight||Math.floor(dt)!==dt))for(let bt=0;bt=c.outWidth||Math.floor(Tt)!==Tt)continue;it+=H.get(q,at,dt,Tt,X)}}}M.set(it*W,q,j,Z,et,X)}return e.makeTensorInfo(M.shape,M.dtype,M.values)}var qF={kernelName:Ip,backendName:"cpu",kernelFunc:HJ};function qJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;nt([o,s],"avgPoolGrad");let{filterSize:a,strides:u,pad:l}=n,c=S.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,T=vt(i.shape,"float32"),E=1/(f*d),$=e.data.get(o.dataId).values,D=vt(o.shape,"float32",$);for(let P=0;P=c.outHeight||Math.floor(et)!==et))for(let K=0;K=c.outWidth||Math.floor(ot)!==ot)continue;j+=D.get(P,et,ot,M)}}T.set(j*E,P,W,H,M)}return e.makeTensorInfo(T.shape,T.dtype,T.values)}var KF={kernelName:vp,backendName:"cpu",kernelFunc:qJ};function KJ(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."),nt([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,T=0,E=0,$=0;for(let D=0;D=g&&(C=0),T>=w&&(T=0),E>=x&&(E=0),$>=b&&($=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var jF={kernelName:cs,backendName:"cpu",kernelFunc:KJ};function jJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;nt([o],"batchToSpaceND");let a=s.reduce((x,b)=>x*b),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=Jt({inputs:{x:o},backend:e,attrs:{shape:u}}),d=Ue({inputs:{x:f},backend:e,attrs:{perm:l}}),h=Jt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Ro({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var XF={kernelName:mi,backendName:"cpu",kernelFunc:jJ};function XJ(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=hd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var YF={kernelName:Sp,backendName:"cpu",kernelFunc:XJ};function YJ(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=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],"int32",Int32Array.from(a))}var ZF={kernelName:Tp,backendName:"cpu",kernelFunc:YJ};var ZJ=Et(lo,(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),s);if(y.sizeFromShape(i)===0)return e.makeTensorInfo(i,t[0].dtype,[]);let a=t.filter(h=>y.sizeFromShape(h.shape)>0);if(a.length===1)return Ur({inputs:{x:a[0]},backend:e});let u=a.map(h=>h.shape);if(S.assertParamsConsistent(u,s),a[0].dtype==="complex64"){let h=a.map(C=>Eo({inputs:{input:C},backend:e})),g=a.map(C=>ta({inputs:{input:C},backend:e})),x=Nu({inputs:h,backend:e,attrs:{axis:s}}),b=Nu({inputs:g,backend:e,attrs:{axis:s}}),w=Cr({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=a.map(h=>{let g=y.sizeFromShape(h.shape.slice(s));return Jt({inputs:{x:h},backend:e,attrs:{shape:[-1,g]}})}),c=l.map(h=>({vals:e.data.get(h.dataId).values,shape:h.shape}));i=S.computeOutShape(l.map(h=>h.shape),1);let p=l[0].shape[0]===1,m=Pc(c,i,t[0].dtype,p),f=S.computeOutShape(a.map(h=>h.shape),s),d=e.makeTensorInfo(f,t[0].dtype,m);return l.forEach(h=>e.disposeIntermediateTensorInfo(h)),d}var eO={kernelName:fi,backendName:"cpu",kernelFunc:Nu};function TN(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;nt([o,s],"conv2d");let p=S.convertConv2DDataFormat(u),m=S.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 fe(m.outShape,o.dtype),T=y.computeStrides(o.shape),E=y.computeStrides(s.shape),$=T[0],D=w?T[1]:T[2],P=w?T[2]:1,M=w?1:T[1],W=C.strides[0],H=w?C.strides[1]:C.strides[2],q=w?C.strides[2]:1,X=w?1:C.strides[1],j=e.data.get(o.dataId).values,Z=e.data.get(s.dataId).values,et=C.values;for(let K=0;K=m.inHeight)continue;let bt=gt*E[0],Tt=ot+dt*D;for(let At=0;At=m.inWidth)continue;let Ft=bt+Kt*E[1],Ae=Tt+me*P,Ie=Ft;for(let le=0;le=l.inDepth)continue;let K=Z*P[0],ot=W+et*D[1];for(let st=0;st=l.inHeight)continue;let dt=K+at*P[1],bt=ot+gt*D[2];for(let Tt=0;Tt=l.inWidth)continue;let me=dt+qt*P[2],Ft=bt+Kt*l.inChannels,Ae=me;for(let Ie=0;IeMath.cos(r)),lO={kernelName:es,backendName:"cpu",kernelFunc:o9};var s9=Et(rs,r=>Math.cosh(r)),uO={kernelName:rs,backendName:"cpu",kernelFunc:s9};function i9(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=vt([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,T=y.computeStrides(o.shape),E=y.computeStrides(x.shape);for(let $=0;$=c)continue;let X=h>1?(W-P)*(p-1)/(h-1):0,j=g>1?(H-M)*(m-1)/(g-1):0;for(let Z=0;Z1?P*(p-1)+Z*X:.5*(P+W)*(p-1);if(et<0||et>p-1){for(let K=0;K1?M*(m-1)+it*j:.5*(M+H)*(m-1);if(pt<0||pt>m-1){for(let bt=0;bt1?M*(m-1)+K*j:.5*(M+H)*(m-1);if(ot<0||ot>m-1){for(let pt=0;ptx+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=S.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,T=f.outChannels/f.inChannels,E=new fe(f.outShape,o.dtype),$=e.data.get(o.dataId).values,D=e.data.get(s.dataId).values,P=E.values;for(let M=0;M=f.inHeight)continue;let K=Z*p[0],ot=W+et*c[1];for(let st=0;st=f.inWidth)continue;let dt=K+at*p[1],bt=ot+gt*f.inChannels,Tt=it,At=dt;for(let Rt=0;Rt{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:T,filterHeight:E,filterWidth:$,dilationHeight:D,dilationWidth:P,outShape:M}=S.computeDilation2DInfo(n.shape,o.shape,s,i,"NHWC",a),W=y.sizeFromShape(M),H=M.length,q=y.getArrayFromDType(n.dtype,W);for(let j=0;j=0&>=0&&btit&&(it=Rt)}}}let pt=y.locToIndex([j,Z,K,st],H,y.computeStrides(M));q[pt]=it}}}return{dataId:u.write(y.toTypedArray(q,n.dtype),M,n.dtype),shape:M,dtype:n.dtype}}};var wO={kernelName:sh,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:T,filterWidth:E,dilationHeight:$,dilationWidth:D,outShape:P}=S.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===P.length,()=>`Error in ${sh}, dy must have the same rank as output ${P.length}, but got ${s.rank}`);let M=y.toNestedArray(P,l.data.get(s.dataId).values),W=y.makeZerosNestedTypedArray(o.shape,o.dtype);for(let q=0;q=0&&at=0&&dtot&&(ot=bt,st=pt,it=gt)}}}W[st][it][K]+=M[q][X][Z][K]}}}return{dataId:l.write(y.toTypedArray(W,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var CO={kernelName:oh,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:T,filterWidth:E,dilationHeight:$,dilationWidth:D,outShape:P}=S.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===P.length,()=>`Error in ${oh}, dy must have the same rank as output ${P.length}, but got ${s.rank}`);let M=y.toNestedArray(P,l.data.get(s.dataId).values),W=y.makeZerosNestedTypedArray(n.shape,n.dtype);for(let q=0;q=0&&at=0&&dtot&&(ot=bt,st=at,it=dt)}}}W[q][st][it][K]+=M[q][X][Z][K]}}}return{dataId:l.write(y.toTypedArray(W,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function dl(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;nt(o,"sum");let a;o.dtype==="bool"?a=Ao({inputs:{x:o},backend:e,attrs:{dtype:"int32"}}):a=Ur({inputs:{x:o},backend:e});let u=a.shape.length,l=y.parseAxisParam(s,a.shape),c=S.getAxesPermutation(l,u),p=l,m=a;c!=null&&(m=Ue({inputs:{x:a},backend:e,attrs:{perm:c}}),p=S.getInnerMostAxes(p.length,u)),S.assertAxesAreInnerMostDims("sum",p,m.shape.length);let[f,d]=S.computeOutAndReduceShapes(m.shape,p),h=S.upcastType(m.dtype,"int32"),g=fd(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=dl({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 IO={kernelName:Fp,backendName:"cpu",kernelFunc:d9};function h9(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t;nt([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 SO={kernelName:Op,backendName:"cpu",kernelFunc:h9};var g9=S.ERF_P,x9=S.ERF_A1,y9=S.ERF_A2,b9=S.ERF_A3,w9=S.ERF_A4,C9=S.ERF_A5,v9=Et(ga,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+g9*e);return t*(1-((((C9*n+w9)*n+b9)*n+y9)*n+x9)*n*Math.exp(-e*e))}),TO={kernelName:ga,backendName:"cpu",kernelFunc:v9};function wd(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),Jt({inputs:{x:o},backend:e,attrs:{shape:a}})}var NO={kernelName:di,backendName:"cpu",kernelFunc:wd};var I9=re((r,t)=>r/t),Jh=ie(ss,I9),Qh={kernelName:ss,backendName:"cpu",kernelFunc:Jh};function kw(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)),A9=ie(us,E9,null,"int32"),AO={kernelName:us,backendName:"cpu",kernelFunc:A9};function $9(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=TN({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=Jt({inputs:{x:i},backend:e,attrs:{shape:[i.shape[0],1,1]}});h=Qi({inputs:{a:h,b:x},backend:e}),e.disposeIntermediateTensorInfo(x)}else h=Qi({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=Jt({inputs:{x:a},backend:e,attrs:{shape:[a.shape[0],1,1]}});h=Wc(e,h,f,x,d),e.disposeIntermediateTensorInfo(x)}else h=Wc(e,h,f,a,d);e.disposeIntermediateTensorInfo(g)}return h}var $O={kernelName:ki,backendName:"cpu",kernelFunc:$9};function D9(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=NN({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;h=Qi({inputs:{a:h,b:i},backend:e}),e.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=Wc(e,h,f,a,d),e.disposeIntermediateTensorInfo(g)}return h}var DO={kernelName:_i,backendName:"cpu",kernelFunc:D9};function R9(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]=S.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=fw(m,f,n.dtype,l,a,c,p,n.shape,s);return e.makeTensorInfo(u,n.dtype,d.values)}var RO={kernelName:wa,backendName:"cpu",kernelFunc:R9};function F9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,indices:s}=t,{axis:i,batchDims:a}=n;nt([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 ${T} is not in [0, ${c-1}]`)}let p=a;a==null&&(p=0);let m=y.sizeFromShape(s.shape),f=S.segment_util.collectGatherOpShapeInfo(o,s,u,p),d=Jt({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=Jt({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=dw(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var FO={kernelName:hi,backendName:"cpu",kernelFunc:F9};function O9(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=Jt({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=kw(a,!0,e),l=Jt({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var OO={kernelName:Lp,backendName:"cpu",kernelFunc:O9};var P9=Et(va,r=>Number.isFinite(r)?1:0,"bool"),PO={kernelName:va,backendName:"cpu",kernelFunc:P9};var L9=Et(Ia,r=>Math.abs(r)===1/0?1:0,"bool"),LO={kernelName:Ia,backendName:"cpu",kernelFunc:L9};var M9=Et(Sa,r=>Number.isNaN(r)?1:0,"bool"),MO={kernelName:Sa,backendName:"cpu",kernelFunc:M9};function z9(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=hw(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var zO={kernelName:zp,backendName:"cpu",kernelFunc:z9};var B9=Et(ka,r=>Math.log1p(r)),BO={kernelName:ka,backendName:"cpu",kernelFunc:B9};var V9=re((r,t)=>r&&t),G9=ie(_a,V9,null,"bool"),VO={kernelName:_a,backendName:"cpu",kernelFunc:G9};var W9=Et(Ea,r=>r?0:1,"bool"),GO={kernelName:Ea,backendName:"cpu",kernelFunc:W9};var U9=re((r,t)=>r||t),H9=ie(Aa,U9,null,"bool"),WO={kernelName:Aa,backendName:"cpu",kernelFunc:H9};function q9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;nt(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=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Ur({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=bd(m,o.shape,o.dtype,f,c,"max");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var KO={kernelName:gs,backendName:"cpu",kernelFunc:j9};function X9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;nt(o,"maxPool3d");let c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=Nw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"max");return e.makeTensorInfo(m.shape,"float32",m.values)}var jO={kernelName:Rl,backendName:"cpu",kernelFunc:X9};function Y9(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;nt([o,s],"maxPool3DGrad");let c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.bufferSync(s),m=WF(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,T=c.effectiveFilterWidth,E=w-1-c.padInfo.front,$=T-1-c.padInfo.left,D=C-1-c.padInfo.top,P=vt(s.shape,"float32"),M=e.bufferSync(o);for(let W=0;W=c.outDepth||Math.floor(it)!==it))for(let pt=0;pt=c.outHeight||Math.floor(at)!==at))for(let gt=0;gt=c.outWidth||Math.floor(dt)!==dt)continue;let bt=w*C*T-1-m.get(W,it,at,dt,H),Tt=st*C*T+pt*T+gt,At=bt===Tt?1:0;if(At===0)continue;ot+=M.get(W,it,at,dt,H)*At}}}P.set(ot,W,q,X,j,H)}return e.makeTensorInfo(P.shape,P.dtype,P.values)}var XO={kernelName:Gp,backendName:"cpu",kernelFunc:Y9};function Z9(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;nt([s,i],"maxPoolGrad");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=S.computePool2DInfo(a.shape,u,l,1,c,p),f=e.data.get(a.dataId).values,d=vt(m.outShape,a.dtype,Tw(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,T=C-1-m.padInfo.left,E=w-1-m.padInfo.top,$=vt(a.shape,"float32"),D=e.data.get(o.dataId).values,P=vt(o.shape,"float32",D);for(let M=0;M=m.outHeight||Math.floor(K)!==K))for(let ot=0;ot=m.outWidth||Math.floor(st)!==st)continue;let it=w*C-1-d.get(M,K,st,W),pt=et*C+ot,at=it===pt?1:0;if(at===0)continue;Z+=P.get(M,K,st,W)*at}}$.set(Z,M,H,q,W)}return e.makeTensorInfo($.shape,$.dtype,$.values)}var YO={kernelName:Vp,backendName:"cpu",kernelFunc:Z9};function ZO(r,t,e,n,o){let s=y.computeStrides(t),i=bd(r,t,e,s,o,"max"),a=Tw(r,t,e,o,!0,n);return[i.values,a.values]}var JO={kernelName:Wp,backendName:"cpu",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;nt(n,"MaxPoolWithArgmax");let l=u.data.get(n.dataId).values,c=S.computePool2DInfo(n.shape,o,s,[1,1],i),[p,m]=ZO(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 J9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=y.parseAxisParam(s,o.shape),l=S.computeOutAndReduceShapes(o.shape,a)[1],c=y.sizeFromShape(l),p=[],m=e.makeTensorInfo([],"float32",new Float32Array([c]));p.push(m);let f=Ao({inputs:{x:o},backend:e,attrs:{dtype:"float32"}});p.push(f);let d=Jh({inputs:{a:f,b:m},backend:e});p.push(d);let h=dl({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var QO={kernelName:xs,backendName:"cpu",kernelFunc:J9};function Q9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;nt(o,"min");let a=y.parseAxisParam(s,o.shape),u=a,l=S.getAxesPermutation(u,o.shape.length),c=o;l!=null&&(c=Ue({inputs:{x:o},backend:e,attrs:{perm:l}}),u=S.getInnerMostAxes(u.length,o.shape.length)),S.assertAxesAreInnerMostDims("min",u,c.shape.length);let[p,m]=S.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[E]&&(C[E]=(l[E]-1)*2-C[E]+c);C=C.map((E,$)=>E-u[$]);let T=y.locToIndex(C,m,f);x[w]=p[T]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var eP={kernelName:ws,backendName:"cpu",kernelFunc:tQ};var eQ=re((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),rQ=ie($a,eQ),rP={kernelName:$a,backendName:"cpu",kernelFunc:rQ};var oP=Tl(vh());function EN(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=_N({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=S.expandShapeToKeepDim(l.shape,u),p=Jt({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Yh({inputs:{a:o,b:p},backend:e}),f=eN({inputs:{x:m},backend:e}),d=dl({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=Jt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Jh({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 nP={kernelName:Ms,backendName:"cpu",kernelFunc:EN};function nQ(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;nt(o,"multinomial");let u=a?o:EN({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=wd({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Nu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var fP={kernelName:yi,backendName:"cpu",kernelFunc:AN};function pQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;nt(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;bE+u[$]),T=y.locToIndex(C,d,h);g[T]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var _w={kernelName:Is,backendName:"cpu",kernelFunc:pQ};var mQ=re((r,t)=>Math.pow(r,t)),fQ=ie(Ss,mQ),dP={kernelName:Ss,backendName:"cpu",kernelFunc:fQ};function dQ(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]=xw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var hP={kernelName:Hp,backendName:"cpu",kernelFunc:dQ};function hQ(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=Mc(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var gP={kernelName:Fl,backendName:"cpu",kernelFunc:hQ};var gQ=Et(Pa,r=>1/r),xP={kernelName:Pa,backendName:"cpu",kernelFunc:gQ};function xQ(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n;nt(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],T=x[1]/b[1];for(let E=0;E1?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 T=0;T1?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],T=0;for(let E=0;E1?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],T=1/w,E=1/C,$=Math.ceil(T)*2+2,D=Math.ceil(E)*2+2;for(let P=0;P=f)continue;let at=M+pt*u[1],gt=pt*w,dt=Math.min(c-1,i?Math.round(gt):Math.floor(gt));if(W===dt)for(let bt=0;bt=d)continue;let At=at+Tt*u[2],Rt=Tt*C,qt=Math.min(p-1,i?Math.round(Rt):Math.floor(Rt));j===qt&&(st+=g[At+ot])}}h[Z+ot]=st}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var CP={kernelName:Kp,backendName:"cpu",kernelFunc:wQ};function CQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n;nt(o,"reverse");let i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return Ur({inputs:{x:o},backend:e});let u=new fe(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 vP={kernelName:$s,backendName:"cpu",kernelFunc:CQ};var IP={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]=S.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&&X=0&&j{let t=Math.floor(r);return r-t<.5?Math.floor(r):r-t>.5?Math.ceil(r):t%2===0?t:t+1}),SP={kernelName:Ds,backendName:"cpu",kernelFunc:vQ};function IQ(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}=S.calculateShapes(s,o,i),m=!0,f=e.bufferSync(o),d=e.bufferSync(s),h=fl(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var TP={kernelName:La,backendName:"cpu",kernelFunc:IQ};function SQ(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?EQ*r:_Q*(Math.exp(r)-1)),EP={kernelName:Ma,backendName:"cpu",kernelFunc:AQ};var $Q=Et(Ba,r=>r<0?-1:r>0?1:0),AP={kernelName:Ba,backendName:"cpu",kernelFunc:$Q};var DQ=Et(Fs,r=>Math.sin(r)),$P={kernelName:Fs,backendName:"cpu",kernelFunc:DQ};var RQ=Et(za,r=>Math.sinh(r)),DP={kernelName:za,backendName:"cpu",kernelFunc:RQ};var FQ=11920928955078125e-23,RP=Math.log(FQ)+2,OQ=Et(Va,r=>{let t=r>-RP,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 S.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 ho().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 A7(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Su.nextDataId=0;var iw={};Gt(iw,{addImpl:()=>FN,bincountImpl:()=>rd,bincountReduceImpl:()=>Kb,castImpl:()=>RN,ceilImpl:()=>ON,concatImpl:()=>Ec,equalImpl:()=>PN,expImpl:()=>MN,expm1Impl:()=>BN,floorImpl:()=>VN,gatherNdImpl:()=>jb,gatherV2Impl:()=>Xb,greaterEqualImpl:()=>WN,greaterImpl:()=>GN,lessEqualImpl:()=>HN,lessImpl:()=>UN,linSpaceImpl:()=>Yb,logImpl:()=>qN,maxImpl:()=>Zb,maximumImpl:()=>KN,minimumImpl:()=>jN,multiplyImpl:()=>Oh,negImpl:()=>XN,notEqualImpl:()=>YN,prodImpl:()=>ZN,raggedGatherImpl:()=>Jb,raggedTensorToTensorImpl:()=>Qb,rangeImpl:()=>Ac,rsqrtImpl:()=>JN,scatterImpl:()=>ml,sigmoidImpl:()=>ZR,simpleAbsImpl:()=>DN,sliceImpl:()=>$c,sparseFillEmptyRowsImpl:()=>tw,sparseReshapeImpl:()=>ew,sparseSegmentReductionImpl:()=>sd,sqrtImpl:()=>tF,squaredDifferenceImpl:()=>tk,stridedSliceImpl:()=>rw,stringNGramsImpl:()=>Dc,stringSplitImpl:()=>Rc,stringToHashBucketFastImpl:()=>Fc,subImpl:()=>rk,tileImpl:()=>nw,topKImpl:()=>ow,transposeImpl:()=>nd,uniqueImpl:()=>sw});function DN(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=DN(o),e.makeOutput(n,t.shape,t.dtype)},SR={kernelName:oi,backendName:"cpu",kernelFunc:$7};function Qt(r){return(t,e,n,o,s)=>{let i=S.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=S.getBroadcastDims(t,i),g=S.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 br(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 NR={kernelName:pp,backendName:"cpu",kernelFunc:br};function td(r,t,e="float32"){if(e==="complex64"){let o=td(r,t,"float32"),s=td(r,t,"float32");return br({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function qr(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 kR={kernelName:lo,backendName:"cpu",kernelFunc:qr};function _o(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 TR={kernelName:Dp,backendName:"cpu",kernelFunc:_o};function RN(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 Ao(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s==="complex64"){if(o.dtype==="complex64")return qr({inputs:{x:o},backend:e});let c=td(e,o.shape,o.dtype),p=Ao({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),m=br({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype==="complex64"){let c=_o({inputs:{input:o},backend:e}),p=Ao({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=qr({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]=RN(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var ER={kernelName:io,backendName:"cpu",kernelFunc:Ao};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"?S.fromUint8ToStringArray(l):l,m=i.dtype==="string"?S.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=Ao({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=Ao({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=br({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 ed(r){return(t,e,n,o,s,i)=>{let a=S.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=S.getBroadcastDims(t,a),d=S.getBroadcastDims(e,a),h=S.mergeRealAndImagArrays(n,o),g=S.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 FN=Qt((r,t)=>r+t),D7=ed((r,t,e,n)=>({real:r+e,imag:t+n})),Hi=oe(Yn,FN,D7),_R={kernelName:Yn,backendName:"cpu",kernelFunc:Hi};function rd(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 Kb(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 xn(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 ON=xn(r=>Math.ceil(r)),R7=$o(Ho,ON),AR={kernelName:Ho,backendName:"cpu",kernelFunc:R7};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"?S.fromUint8ToStringArray(i.vals):i.vals,u=0;for(let l=0;lr===t?1:0),LN=oe(ha,PN,null,"bool"),$R={kernelName:ha,backendName:"cpu",kernelFunc:LN};var MN=xn(r=>Math.exp(r)),zN=$o(ts,MN,"float32"),DR={kernelName:ts,backendName:"cpu",kernelFunc:zN};var BN=xn(r=>Math.expm1(r)),F7=$o(ga,BN),RR={kernelName:ga,backendName:"cpu",kernelFunc:F7};var VN=xn(r=>Math.floor(r)),O7=$o(es,VN),FR={kernelName:es,backendName:"cpu",kernelFunc:O7};function jb(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),P7=oe(ba,GN,null,"bool"),OR={kernelName:ba,backendName:"cpu",kernelFunc:P7};var WN=Qt((r,t)=>r>=t?1:0),L7=oe(os,WN,null,"bool"),PR={kernelName:os,backendName:"cpu",kernelFunc:L7};var UN=Qt((r,t)=>rr<=t?1:0),z7=oe(Sa,HN,null,"bool"),MR={kernelName:Sa,backendName:"cpu",kernelFunc:z7};function Yb(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,"float32");o[0]=r;for(let s=1;sMath.log(r)),B7=$o(is,qN),zR={kernelName:is,backendName:"cpu",kernelFunc:B7};function Zb(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 KN=Qt((r,t)=>Math.max(r,t)),V7=oe(ls,KN),BR={kernelName:ls,backendName:"cpu",kernelFunc:V7};var jN=Qt((r,t)=>Math.min(r,t)),G7=oe(ms,jN),VR={kernelName:ms,backendName:"cpu",kernelFunc:G7};var Oh=Qt((r,t)=>r*t),W7=ed((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),_c=oe(ds,Oh,W7),GR={kernelName:ds,backendName:"cpu",kernelFunc:_c};function XN(r,t,e){let n=y.createScalarValue(-1,e);return Oh([],t,n,r,e)}function U7(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,"neg");let o=e.data.get(n.dataId).values,[s,i]=XN(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var WR={kernelName:ui,backendName:"cpu",kernelFunc:U7};var YN=Qt((r,t)=>r!==t?1:0),H7=oe(Aa,YN,null,"bool"),UR={kernelName:Aa,backendName:"cpu",kernelFunc:H7};function nd(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:bs,backendName:"cpu",kernelFunc:q7};function K7(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 j7(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 X7(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);j7(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 KR(r,t){let e=r.slice(0,t);for(;e.lengthn&&(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 Do.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Do.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: ${Do[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 Do.FIRST_DIM_SIZE:return t[0];case Do.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Do.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Do[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=XR(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=D(c,d);c=$i(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);jR(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function jR(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 Qb(r,t,e,n,o,s,i,a,u,l){return new od(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)),Q7=$o(ks,JN),YR={kernelName:ks,backendName:"cpu",kernelFunc:Q7};function ml(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))),QN=kt(Es,r=>1/(1+Math.exp(-r))),JR={kernelName:Es,backendName:"cpu",kernelFunc:QN};function $c(r,t,e,n,o){let s=Pe.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=Pe.computeFlatOffset(t,a);return o==="string"?r.slice(p,p+i):r.subarray(p,p+i)}let u=o==="string"?S.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"?S.fromStringArrayToUint8(c.values):c.values}function Ro(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,"slice");let[a,u]=Pe.parseSliceParams(o,s,i);Pe.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 QR={kernelName:di,backendName:"cpu",kernelFunc:Ro};function tw(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(S.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(S.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(S.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(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let h=0,g=1,x=0,b=o[h];for(;;){let w=0;if(g=w)throw new Error(S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>x&&d.fill(i,x*l,b*l);for(let C=h;C=u[0])throw new Error(S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(C,n[C],u[0]));for(let _=0;_a)break}return xMath.sqrt(r)),tJ=kt(_s,r=>Math.sqrt(r)),eF={kernelName:_s,backendName:"cpu",kernelFunc:tJ};var tk=Qt((r,t)=>{let e=r-t;return e*e}),eJ=oe(Ds,tk),rF={kernelName:Ds,backendName:"cpu",kernelFunc:eJ};function rw(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 ek(e,n,o,s,i,a).compute(r,t)}function rJ(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),nJ=ed((r,t,e,n)=>({real:r-e,imag:t-n})),Ph=oe(Rs,rk,nJ),nF={kernelName:Rs,backendName:"cpu",kernelFunc:Ph};function nw(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 oF(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));oF(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),Lh(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}Lh(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 ow(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 Su,1);var nk=kt(Qo,r=>r>=0?r:Math.exp(r)-1),sF={kernelName:Qo,backendName:"cpu",kernelFunc:nk};function ok(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 sk(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]=sJ(n.shape,o.shape,s,i,"float32");return e.makeTensorInfo(u,"float32",a)}var aF={kernelName:ys,backendName:"cpu",kernelFunc:sk};var ik=kt(ws,r=>Math.max(0,r)),lF={kernelName:ws,backendName:"cpu",kernelFunc:ik};var ak=kt(vs,r=>Math.min(Math.max(0,r),6)),uF={kernelName:vs,backendName:"cpu",kernelFunc:ak};function Oc(r,t,e,n,o){if(e==="linear")return qr({inputs:{x:t},backend:r});if(e==="relu")return ik({inputs:{x:t},backend:r});if(e==="elu")return nk({inputs:{x:t},backend:r});if(e==="relu6")return ak({inputs:{x:t},backend:r});if(e==="prelu")return sk({inputs:{x:t,alpha:n},backend:r});if(e==="leakyrelu")return ok({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e==="sigmoid")return QN({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function Xt(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 cF={kernelName:mi,backendName:"cpu",kernelFunc:Xt};function lk(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=zr.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],_=Xt({inputs:{x:o},backend:e,attrs:{shape:C}}),A=Xt({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)),fF={kernelName:ra,backendName:"cpu",kernelFunc:aJ};var lJ=kt(na,r=>Math.acosh(r)),dF={kernelName:na,backendName:"cpu",kernelFunc:lJ};function uJ(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 yF={kernelName:Go,backendName:"cpu",kernelFunc:mJ};function fJ(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=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Be({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),i=[i[0]],S.assertAxesAreInnerMostDims("argMin",i,u.shape.length);let[c,p]=S.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 bF={kernelName:Nl,backendName:"cpu",kernelFunc:fJ};var dJ=kt(ia,r=>Math.asin(r)),wF={kernelName:ia,backendName:"cpu",kernelFunc:dJ};var hJ=kt(aa,r=>Math.asinh(r)),CF={kernelName:aa,backendName:"cpu",kernelFunc:hJ};var gJ=kt(la,r=>Math.atan(r)),IF={kernelName:la,backendName:"cpu",kernelFunc:gJ};var xJ=Qt((r,t)=>Math.atan2(r,t)),yJ=oe(ca,xJ),vF={kernelName:ca,backendName:"cpu",kernelFunc:yJ};var bJ=kt(ua,r=>Math.atanh(r)),SF={kernelName:ua,backendName:"cpu",kernelFunc:bJ};function id(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 aw(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 lw(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;FTt?Tt=Ge:s==="avg"&&(_t+=Ge,Bt++),isNaN(Tt))break}if(isNaN(Tt))break}if(isNaN(Tt))break}let Yt=bt+G;C[Yt]=s==="avg"?_t/Bt:Tt}}}}return w}function NF(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 wJ(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(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=qr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=id(m,o.shape,o.dtype,f,c,"avg");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var kF={kernelName:Wo,backendName:"cpu",kernelFunc:wJ};function CJ(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=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=lw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"avg");return e.makeTensorInfo(m.shape,"float32",m.values)}var TF={kernelName:kl,backendName:"cpu",kernelFunc:CJ};function IJ(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=S.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 EF={kernelName:lp,backendName:"cpu",kernelFunc:IJ};function vJ(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=S.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 _F={kernelName:ap,backendName:"cpu",kernelFunc:vJ};function SJ(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 AF={kernelName:ns,backendName:"cpu",kernelFunc:SJ};function NJ(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=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=Xt({inputs:{x:o},backend:e,attrs:{shape:u}}),d=Be({inputs:{x:f},backend:e,attrs:{perm:l}}),h=Xt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Ro({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var $F={kernelName:si,backendName:"cpu",kernelFunc:NJ};function kJ(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=rd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var DF={kernelName:up,backendName:"cpu",kernelFunc:kJ};function TJ(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=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],"int32",Int32Array.from(a))}var RF={kernelName:cp,backendName:"cpu",kernelFunc:TJ};var EJ=kt(ao,(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);S.assertParamsConsistent(i,s);let a=S.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 qr({inputs:{x:u[0]},backend:e});if(u[0].dtype==="complex64"){let h=u.map(C=>_o({inputs:{input:C},backend:e})),g=u.map(C=>qi({inputs:{input:C},backend:e})),x=Nu({inputs:h,backend:e,attrs:{axis:s}}),b=Nu({inputs:g,backend:e,attrs:{axis:s}}),w=br({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 Xt({inputs:{x:h},backend:e,attrs:{shape:[-1,g]}})}),c=l.map(h=>({vals:e.data.get(h.dataId).values,shape:h.shape}));a=S.computeOutShape(l.map(h=>h.shape),1);let p=l[0].shape[0]===1,m=Ec(c,a,t[0].dtype,p),f=S.computeOutShape(u.map(h=>h.shape),s),d=e.makeTensorInfo(f,t[0].dtype,m);return l.forEach(h=>e.disposeIntermediateTensorInfo(h)),d}var LF={kernelName:ii,backendName:"cpu",kernelFunc:Nu};function uk(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=S.convertConv2DDataFormat(u),m=S.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 Tt=0;Tt=m.inWidth)continue;let he=ht+Yt*_[1],Kt=bt+ce*F,Te=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+Bt*F[2],he=ht+Yt*l.inChannels,Kt=ce;for(let Te=0;TeMath.cos(r)),UF={kernelName:jo,backendName:"cpu",kernelFunc:OJ};var PJ=kt(Xo,r=>Math.cosh(r)),HF={kernelName:Xo,backendName:"cpu",kernelFunc:PJ};function LJ(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=S.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,Tt=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}=S.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=_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 rO={kernelName:Hd,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}=S.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${Hd}, 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 nO={kernelName:Ud,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}=S.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${Ud}, 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 fl(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=Ao({inputs:{x:o},backend:e,attrs:{dtype:"int32"}}):a=qr({inputs:{x:o},backend:e});let u=a.shape.length,l=y.parseAxisParam(s,a.shape),c=S.getAxesPermutation(l,u),p=l,m=a;c!=null&&(m=Be({inputs:{x:a},backend:e,attrs:{perm:c}}),p=S.getInnerMostAxes(p.length,u)),S.assertAxesAreInnerMostDims("sum",p,m.shape.length);let[f,d]=S.computeOutAndReduceShapes(m.shape,p),h=S.upcastType(m.dtype,"int32"),g=td(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=fl({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 sO={kernelName:bp,backendName:"cpu",kernelFunc:HJ};function qJ(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 iO={kernelName:wp,backendName:"cpu",kernelFunc:qJ};var KJ=S.ERF_P,jJ=S.ERF_A1,XJ=S.ERF_A2,YJ=S.ERF_A3,ZJ=S.ERF_A4,JJ=S.ERF_A5,QJ=kt(da,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+KJ*e);return t*(1-((((JJ*n+ZJ)*n+YJ)*n+XJ)*n+jJ)*n*Math.exp(-e*e))}),aO={kernelName:da,backendName:"cpu",kernelFunc:QJ};function ad(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),Xt({inputs:{x:o},backend:e,attrs:{shape:a}})}var lO={kernelName:ai,backendName:"cpu",kernelFunc:ad};var tQ=Qt((r,t)=>r/t),Mh=oe(Jo,tQ),zh={kernelName:Jo,backendName:"cpu",kernelFunc:Mh};function uw(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)),aQ=oe(rs,iQ,null,"int32"),mO={kernelName:rs,backendName:"cpu",kernelFunc:aQ};function lQ(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=uk({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=Xt({inputs:{x:i},backend:e,attrs:{shape:[i.shape[0],1,1]}});h=Hi({inputs:{a:h,b:x},backend:e}),e.disposeIntermediateTensorInfo(x)}else h=Hi({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=Xt({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 fO={kernelName:wi,backendName:"cpu",kernelFunc:lQ};function uQ(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=ck({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;h=Hi({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 dO={kernelName:Ci,backendName:"cpu",kernelFunc:uQ};function cQ(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]=S.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=jb(m,f,n.dtype,l,a,c,p,n.shape,s);return e.makeTensorInfo(u,n.dtype,d.values)}var hO={kernelName:ya,backendName:"cpu",kernelFunc:cQ};function pQ(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=S.segment_util.collectGatherOpShapeInfo(o,s,u,p),d=Xt({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=Xt({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=Xb(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var gO={kernelName:li,backendName:"cpu",kernelFunc:pQ};function mQ(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=Xt({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=uw(a,!0,e),l=Xt({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var xO={kernelName:Ip,backendName:"cpu",kernelFunc:mQ};var fQ=kt(wa,r=>Number.isFinite(r)?1:0,"bool"),yO={kernelName:wa,backendName:"cpu",kernelFunc:fQ};var dQ=kt(Ca,r=>Math.abs(r)===1/0?1:0,"bool"),bO={kernelName:Ca,backendName:"cpu",kernelFunc:dQ};var hQ=kt(Ia,r=>Number.isNaN(r)?1:0,"bool"),wO={kernelName:Ia,backendName:"cpu",kernelFunc:hQ};function gQ(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=Yb(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var CO={kernelName:Sp,backendName:"cpu",kernelFunc:gQ};var xQ=kt(Na,r=>Math.log1p(r)),IO={kernelName:Na,backendName:"cpu",kernelFunc:xQ};var yQ=Qt((r,t)=>r&&t),bQ=oe(ka,yQ,null,"bool"),vO={kernelName:ka,backendName:"cpu",kernelFunc:bQ};var wQ=kt(Ta,r=>r?0:1,"bool"),SO={kernelName:Ta,backendName:"cpu",kernelFunc:wQ};var CQ=Qt((r,t)=>r||t),IQ=oe(Ea,CQ,null,"bool"),NO={kernelName:Ea,backendName:"cpu",kernelFunc:IQ};function vQ(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=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=qr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=id(m,o.shape,o.dtype,f,c,"max");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var _O={kernelName:us,backendName:"cpu",kernelFunc:NQ};function kQ(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=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=lw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"max");return e.makeTensorInfo(m.shape,"float32",m.values)}var AO={kernelName:Dl,backendName:"cpu",kernelFunc:kQ};function TQ(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=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.bufferSync(s),m=NF(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,Tt=ht===bt?1:0;if(Tt===0)continue;et+=P.get(V,ot,nt,dt,G)*Tt}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var $O={kernelName:Tp,backendName:"cpu",kernelFunc:TQ};function EQ(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=S.computePool2DInfo(a.shape,u,l,1,c,p),f=e.data.get(a.dataId).values,d=wt(m.outShape,a.dtype,aw(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 DO={kernelName:kp,backendName:"cpu",kernelFunc:EQ};function RO(r,t,e,n,o){let s=y.computeStrides(t),i=id(r,t,e,s,o,"max"),a=aw(r,t,e,o,!0,n);return[i.values,a.values]}var FO={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=S.computePool2DInfo(n.shape,o,s,[1,1],i),[p,m]=RO(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 _Q(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=y.parseAxisParam(s,o.shape),l=S.computeOutAndReduceShapes(o.shape,a)[1],c=y.sizeFromShape(l),p=[],m=e.makeTensorInfo([],"float32",new Float32Array([c]));p.push(m);let f=Ao({inputs:{x:o},backend:e,attrs:{dtype:"float32"}});p.push(f);let d=Mh({inputs:{a:f,b:m},backend:e});p.push(d);let h=fl({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var OO={kernelName:cs,backendName:"cpu",kernelFunc:_Q};function AQ(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=S.getAxesPermutation(u,o.shape.length),c=o;l!=null&&(c=Be({inputs:{x:o},backend:e,attrs:{perm:l}}),u=S.getInnerMostAxes(u.length,o.shape.length)),S.assertAxesAreInnerMostDims("min",u,c.shape.length);let[p,m]=S.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 LO={kernelName:fs,backendName:"cpu",kernelFunc:$Q};var DQ=Qt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),RQ=oe(_a,DQ),MO={kernelName:_a,backendName:"cpu",kernelFunc:RQ};var BO=Sl(lh());function fk(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=mk({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=S.expandShapeToKeepDim(l.shape,u),p=Xt({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Ph({inputs:{a:o,b:p},backend:e}),f=zN({inputs:{x:m},backend:e}),d=fl({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=Xt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Mh({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 zO={kernelName:$s,backendName:"cpu",kernelFunc:fk};function FQ(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:fk({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=ad({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Nu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var XO={kernelName:pi,backendName:"cpu",kernelFunc:dk};function GQ(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 cw={kernelName:gs,backendName:"cpu",kernelFunc:GQ};var WQ=Qt((r,t)=>Math.pow(r,t)),UQ=oe(xs,WQ),YO={kernelName:xs,backendName:"cpu",kernelFunc:UQ};function HQ(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]=Jb(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 ZO={kernelName:Ap,backendName:"cpu",kernelFunc:HQ};function qQ(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]=Qb(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var JO={kernelName:$p,backendName:"cpu",kernelFunc:qQ};function KQ(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 QO={kernelName:Rl,backendName:"cpu",kernelFunc:KQ};var jQ=kt(Fa,r=>1/r),tP={kernelName:Fa,backendName:"cpu",kernelFunc:jQ};function XQ(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 Tt=nt+bt*u[2],_t=bt*C,Bt=Math.min(p-1,i?Math.round(_t):Math.floor(_t));H===Bt&&(rt+=g[Tt+et])}}h[j+et]=rt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var oP={kernelName:Rp,backendName:"cpu",kernelFunc:JQ};function QQ(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 qr({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 sP={kernelName:Ss,backendName:"cpu",kernelFunc:QQ};var iP={kernelName:Ua,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]=S.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}),aP={kernelName:Ns,backendName:"cpu",kernelFunc:t9};function e9(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}=S.calculateShapes(s,o,i),m=!0,f=e.bufferSync(o),d=e.bufferSync(s),h=ml(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var lP={kernelName:Oa,backendName:"cpu",kernelFunc:e9};function r9(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?a9*r:i9*(Math.exp(r)-1)),mP={kernelName:Pa,backendName:"cpu",kernelFunc:l9};var u9=kt(Ma,r=>r<0?-1:r>0?1:0),fP={kernelName:Ma,backendName:"cpu",kernelFunc:u9};var c9=kt(Ts,r=>Math.sin(r)),dP={kernelName:Ts,backendName:"cpu",kernelFunc:c9};var p9=kt(La,r=>Math.sinh(r)),hP={kernelName:La,backendName:"cpu",kernelFunc:p9};var m9=11920928955078125e-23,gP=Math.log(m9)+2,f9=kt(za,r=>{let t=r>-gP,e=rNumber(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var PP={kernelName:Ol,backendName:"cpu",kernelFunc:LQ};function MQ(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 + ${i.shape}`);let a=e.data.get(n.dataId).values,u=e.data.get(o.dataId).values,l=e.data.get(s.dataId).values,c=e.data.get(i.dataId).values[0],[p,m,f,d,h]=tw(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 bP={kernelName:Fl,backendName:"cpu",kernelFunc:h9};function g9(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.data.get(o.dataId).values),a=e.data.get(n.dataId).values,u=Array.from(e.data.get(s.dataId).values),[l,c,p]=bw(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var LP={kernelName:Ga,backendName:"cpu",kernelFunc:MQ};function zQ(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(`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]=ew(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var wP={kernelName:Ba,backendName:"cpu",kernelFunc:g9};function x9(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}`);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]=yd(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var MP={kernelName:Pl,backendName:"cpu",kernelFunc:zQ};function BQ(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 + ${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]=sd(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var CP={kernelName:Ol,backendName:"cpu",kernelFunc:x9};function y9(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}`);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]=yd(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var zP={kernelName:Ll,backendName:"cpu",kernelFunc:BQ};function VQ(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}=S.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=fl(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=fl(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=fl(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=fl(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 BP={kernelName:Yp,backendName:"cpu",kernelFunc:VQ};function GQ(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=S.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=Ro({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var VP={kernelName:Ii,backendName:"cpu",kernelFunc:GQ};var GP={kernelName:Ml,backendName:"cpu",kernelFunc:({inputs:r,backend:t})=>{let{x:e}=r,n=t;nt(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}),WP={kernelName:co,backendName:"cpu",kernelFunc:WQ};function UQ(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;nt(o,"stridedSlice");let{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),T;if(h)T=Jt({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 E=Be.computeOutShape(b,w,C),$=Ro({inputs:{x:o},backend:e,attrs:{begin:b,size:E}});T=Jt({inputs:{x:$},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo($)}else{let E=e.bufferSync(o),$=ww(f,E,C,b);T=e.makeTensorInfo(d,$.dtype,$.values)}return T}var UP={kernelName:Wa,backendName:"cpu",kernelFunc:UQ};function HQ(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]=Bc(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var HP={kernelName:zl,backendName:"cpu",kernelFunc:HQ};function qQ(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]=Vc(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 qP={kernelName:Bl,backendName:"cpu",kernelFunc:qQ};function KQ(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=Gc(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var KP={kernelName:Vl,backendName:"cpu",kernelFunc:KQ};var jQ=Et(Vs,r=>Math.tan(r)),jP={kernelName:Vs,backendName:"cpu",kernelFunc:jQ};var XQ=Et(Gs,r=>Math.tanh(r)),XP={kernelName:Gs,backendName:"cpu",kernelFunc:XQ};function YQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;nt(o,"tile");let i=Cw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var YP={kernelName:Xn,backendName:"cpu",kernelFunc:YQ};function ZQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{k:s,sorted:i}=n;nt(o,"topk");let a=e.data.get(o.dataId).values,[u,l]=vw(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 ZP={kernelName:Ua,backendName:"cpu",kernelFunc:ZQ};function JQ(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],T=y.computeStrides(g),E=T[0],$=T[1],D=T[2],P=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(g));P.fill(u);let M=n.data.get(o.dataId).values,W=n.data.get(s.dataId).values;for(let q=0;qt-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 ttt(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 ett(r,t){return r}function rtt(r,t){return y.clamp(0,r,t-1)}function rg(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 rL={kernelName:Gl,backendName:"cpu",kernelFunc:att};var ltt=[AF,WR,$F,DF,jR,RF,FF,OF,PF,LF,MF,zF,BF,VF,GF,UF,HF,qF,KF,EF,jF,XF,YF,ZF,KR,XR,JF,UR,QF,eO,rO,nO,oO,sO,iO,aO,lO,uO,cO,pO,mO,fO,dO,hO,gO,xO,yO,bO,wO,CO,IO,IF,SO,YR,TO,ZR,NO,JR,kO,_O,EO,QR,AO,$O,DO,RO,FO,tF,eF,HR,OO,tO,PO,LO,MO,SF,rF,nF,zO,oF,BO,VO,GO,WO,UO,HO,qO,sF,KO,jO,XO,YO,JO,QO,tP,iF,eP,rP,sP,aF,lF,iP,aP,lP,uF,uP,mP,fP,_w,dP,TF,pF,hP,gP,qR,Qh,xP,NF,kF,_F,yP,bP,wP,CP,vP,IP,SP,dF,TP,kP,_P,EP,gF,AP,$P,DP,xF,nP,FP,OP,PP,LP,MP,zP,BP,VP,bF,GP,wF,WP,UP,HP,qP,KP,CF,vO,jP,XP,YP,ZP,QP,cF,tL,eL,rL,cP];for(let r of ltt)Wu(r);var Id={};jt(Id,{assertNotComplex:()=>oi,bindCanvasToFramebuffer:()=>xtt,bindColorTextureToFramebuffer:()=>ig,bindTextureToProgramUniformSampler:()=>qN,bindTextureUnit:()=>iL,bindVertexBufferToProgramAttribute:()=>Fw,callAndCheck:()=>Ct,canBeRepresented:()=>FN,createFragmentShader:()=>PN,createFramebuffer:()=>WN,createProgram:()=>LN,createStaticIndexBuffer:()=>BN,createStaticVertexBuffer:()=>zN,createTexture:()=>VN,createVertexShader:()=>ON,getBatchDim:()=>gl,getExtensionOrThrow:()=>Cd,getFramebufferErrorMessage:()=>aL,getMaxTexturesInShader:()=>XN,getNumChannels:()=>htt,getProgramUniformLocation:()=>HN,getProgramUniformLocationOrThrow:()=>UN,getRowsCols:()=>xl,getShapeAs3D:()=>ag,getTextureShapeFromLogicalShape:()=>KN,getWebGLDisjointQueryTimerVersion:()=>YN,getWebGLErrorMessage:()=>sL,getWebGLMaxTextureSize:()=>jN,hasExtension:()=>Wn,isCapableOfRenderingToFloatTexture:()=>ZN,isDownloadFloatTextureEnabled:()=>JN,isReshapeFree:()=>_u,isWebGLFenceEnabled:()=>QN,isWebGLVersionEnabled:()=>Pw,linkProgram:()=>MN,logShaderSourceAndInfoLog:()=>Rw,resetMaxTextureSize:()=>ytt,resetMaxTexturesInShader:()=>btt,unbindColorTextureFromFramebuffer:()=>Ow,unbindTextureUnit:()=>gtt,validateFramebuffer:()=>vd,validateProgram:()=>sg,validateTextureSize:()=>GN});var Uc={},Ew={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function $N(r,t){Uc[r]=t}function Gn(r,t){if(!(r in Uc)||t!=null){let n=ctt(r,t);if(n!==null)Uc[r]=n;else return console.log("Could not get context for WebGL version",r),null}let e=Uc[r];return e==null||e.isContextLost()?(delete Uc[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),Uc[r])}function utt(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 ctt(r,t){if(r!==1&&r!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let e=t==null?utt(r):t;return e.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete Uc[r]},!1),B().getBool("SOFTWARE_WEBGL_ENABLED")&&(Ew.failIfMajorPerformanceCaveat=!1),r===1?e.getContext("webgl",Ew)||e.getContext("experimental-webgl",Ew):e.getContext("webgl2",Ew)}var ku;(function(r){r[r.DENSE=0]="DENSE",r[r.SHARED_BATCH=1]="SHARED_BATCH"})(ku||(ku={}));var Hr;(function(r){r[r.RENDER=0]="RENDER",r[r.UPLOAD=1]="UPLOAD",r[r.PIXELS=2]="PIXELS",r[r.DOWNLOAD=3]="DOWNLOAD"})(Hr||(Hr={}));var Fr;(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"})(Fr||(Fr={}));function Hc(r,t){return[t,r]}function nL(r,t){return r*t}function ng(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function ea(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function oL(r,t){let[e,n]=ea(r,t);return e*n*4}function og(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return B().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 Ct(r,t){let e=t();return B().getBool("DEBUG")&&ptt(r),e}function ptt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error("WebGL Error: "+sL(r,t))}var mtt=596e-10,ftt=65504;function FN(r){return!!(B().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||r===0||mttr.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function ON(r,t){let e=hl(r,()=>r.createShader(r.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(Ct(r,()=>r.shaderSource(e,t)),Ct(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 PN(r,t){let e=hl(r,()=>r.createShader(r.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(Ct(r,()=>r.shaderSource(e,t)),Ct(r,()=>r.compileShader(e)),B().get("ENGINE_COMPILE_ONLY"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Rw(t,r.getShaderInfoLog(e)),new Error("Failed to compile fragment shader.");return e}var dtt=/ERROR: [0-9]+:([0-9]+):/g;function Rw(r,t){let e=dtt.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]=sd(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var IP={kernelName:Pl,backendName:"cpu",kernelFunc:y9};function b9(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}=S.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=ml(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=ml(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=ml(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=ml(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 vP={kernelName:Pp,backendName:"cpu",kernelFunc:b9};function w9(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=S.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=Ro({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var SP={kernelName:gi,backendName:"cpu",kernelFunc:w9};var NP={kernelName:Ll,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}),kP={kernelName:uo,backendName:"cpu",kernelFunc:C9};function I9(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}=Pe.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=Xt({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 _=Pe.computeOutShape(b,w,C),A=Ro({inputs:{x:o},backend:e,attrs:{begin:b,size:_}});N=Xt({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let _=e.bufferSync(o),A=rw(f,_,C,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var TP={kernelName:Va,backendName:"cpu",kernelFunc:I9};function v9(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 EP={kernelName:Ml,backendName:"cpu",kernelFunc:v9};function S9(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 _P={kernelName:zl,backendName:"cpu",kernelFunc:S9};function N9(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 AP={kernelName:Bl,backendName:"cpu",kernelFunc:N9};var k9=kt(Fs,r=>Math.tan(r)),$P={kernelName:Fs,backendName:"cpu",kernelFunc:k9};var T9=kt(Os,r=>Math.tanh(r)),DP={kernelName:Os,backendName:"cpu",kernelFunc:T9};function E9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,"tile");let i=nw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var RP={kernelName:Zn,backendName:"cpu",kernelFunc:E9};function _9(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]=ow(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 FP={kernelName:Ga,backendName:"cpu",kernelFunc:_9};function A9(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 D9(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 R9(r,t){return r}function F9(r,t){return y.clamp(0,r,t-1)}function Gh(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 zP={kernelName:Vl,backendName:"cpu",kernelFunc:z9};var B9=[mF,SR,fF,dF,_R,hF,gF,xF,yF,bF,wF,CF,IF,vF,SF,kF,TF,EF,_F,pF,AF,$F,DF,RF,ER,AR,FF,NR,OF,LF,MF,zF,BF,VF,GF,WF,UF,HF,qF,KF,jF,XF,YF,ZF,JF,QF,tO,eO,rO,nO,sO,sF,iO,$R,aO,DR,lO,RR,uO,cO,pO,FR,mO,fO,dO,hO,gO,OR,PR,kR,xO,PF,yO,bO,wO,iF,LR,MR,CO,zR,IO,vO,SO,NO,kO,TO,EO,BR,_O,AO,$O,DO,FO,OO,PO,VR,LO,MO,VO,GR,WR,GO,WO,UO,UR,HO,jO,XO,cw,YO,aF,qR,ZO,JO,QO,TR,zh,tP,lF,uF,cF,eP,rP,nP,oP,sP,iP,aP,YR,lP,cP,pP,mP,JR,fP,dP,hP,QR,zO,xP,yP,bP,wP,CP,IP,vP,SP,eF,NP,rF,kP,TP,EP,_P,AP,nF,oO,$P,DP,RP,FP,PP,HR,LP,MP,zP,qO];for(let r of B9)Pu(r);var cd={};Gt(cd,{assertNotComplex:()=>Zs,bindCanvasToFramebuffer:()=>X9,bindColorTextureToFramebuffer:()=>qh,bindTextureToProgramUniformSampler:()=>Ak,bindTextureUnit:()=>WP,bindVertexBufferToProgramAttribute:()=>gw,callAndCheck:()=>yt,canBeRepresented:()=>yk,createFragmentShader:()=>wk,createFramebuffer:()=>Tk,createProgram:()=>Ck,createStaticIndexBuffer:()=>Sk,createStaticVertexBuffer:()=>vk,createTexture:()=>Nk,createVertexShader:()=>bk,getBatchDim:()=>hl,getExtensionOrThrow:()=>ld,getFramebufferErrorMessage:()=>UP,getMaxTexturesInShader:()=>Rk,getNumChannels:()=>K9,getProgramUniformLocation:()=>_k,getProgramUniformLocationOrThrow:()=>Ek,getRowsCols:()=>gl,getShapeAs3D:()=>Kh,getTextureShapeFromLogicalShape:()=>$k,getWebGLDisjointQueryTimerVersion:()=>Fk,getWebGLErrorMessage:()=>GP,getWebGLMaxTextureSize:()=>Dk,hasExtension:()=>Vn,isCapableOfRenderingToFloatTexture:()=>Ok,isDownloadFloatTextureEnabled:()=>Pk,isReshapeFree:()=>Tu,isWebGLFenceEnabled:()=>Lk,isWebGLVersionEnabled:()=>yw,linkProgram:()=>Ik,logShaderSourceAndInfoLog:()=>hw,resetMaxTextureSize:()=>Y9,resetMaxTexturesInShader:()=>Z9,unbindColorTextureFromFramebuffer:()=>xw,unbindTextureUnit:()=>j9,validateFramebuffer:()=>ud,validateProgram:()=>Hh,validateTextureSize:()=>kk});var Pc={},pw={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function hk(r,t){Pc[r]=t}function Bn(r,t){if(!(r in Pc)||t!=null){let n=G9(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],Bn(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 V9(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 G9(r,t){if(r!==1&&r!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let e=t==null?V9(r):t;return e.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete Pc[r]},!1),M().getBool("SOFTWARE_WEBGL_ENABLED")&&(pw.failIfMajorPerformanceCaveat=!1),r===1?e.getContext("webgl",pw)||e.getContext("experimental-webgl",pw):e.getContext("webgl2",pw)}var ku;(function(r){r[r.DENSE=0]="DENSE",r[r.SHARED_BATCH=1]="SHARED_BATCH"})(ku||(ku={}));var Kr;(function(r){r[r.RENDER=0]="RENDER",r[r.UPLOAD=1]="UPLOAD",r[r.PIXELS=2]="PIXELS",r[r.DOWNLOAD=3]="DOWNLOAD"})(Kr||(Kr={}));var Fr;(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"})(Fr||(Fr={}));function Lc(r,t){return[t,r]}function BP(r,t){return r*t}function Wh(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function Ki(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function VP(r,t){let[e,n]=Ki(r,t);return e*n*4}function Uh(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return M().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 M().getBool("DEBUG")&&W9(r),e}function W9(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error("WebGL Error: "+GP(r,t))}var U9=596e-10,H9=65504;function yk(r){return!!(M().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||r===0||U9r.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function bk(r,t){let e=dl(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 wk(r,t){let e=dl(r,()=>r.createShader(r.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(yt(r,()=>r.shaderSource(e,t)),yt(r,()=>r.compileShader(e)),M().get("ENGINE_COMPILE_ONLY"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw hw(t,r.getShaderInfoLog(e)),new Error("Failed to compile fragment shader.");return e}var q9=/ERROR: [0-9]+:([0-9]+):/g;function hw(r,t){let e=q9.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;pr.createProgram(),"Unable to create WebGLProgram.")}function MN(r,t){if(Ct(r,()=>r.linkProgram(t)),!B().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 sg(r,t){if(Ct(r,()=>r.validateProgram(t)),r.getProgramParameter(t,r.VALIDATE_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function zN(r,t){let e=hl(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return Ct(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),Ct(r,()=>r.bufferData(r.ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function BN(r,t){let e=hl(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return Ct(r,()=>r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e)),Ct(r,()=>r.bufferData(r.ELEMENT_ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function htt(){return B().getNumber("WEBGL_VERSION")===2?1:4}function VN(r){return hl(r,()=>r.createTexture(),"Unable to create WebGLTexture.")}function GN(r,t){let e=B().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 WN(r){return hl(r,()=>r.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function Fw(r,t,e,n,o,s,i){let a=r.getAttribLocation(t,e);return a===-1?!1:(Ct(r,()=>r.bindBuffer(r.ARRAY_BUFFER,n)),Ct(r,()=>r.vertexAttribPointer(a,o,r.FLOAT,!1,s,i)),Ct(r,()=>r.enableVertexAttribArray(a)),!0)}function iL(r,t,e){lL(r,e),Ct(r,()=>r.activeTexture(r.TEXTURE0+e)),Ct(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function gtt(r,t){lL(r,t),Ct(r,()=>r.activeTexture(r.TEXTURE0+t)),Ct(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function UN(r,t,e){return hl(r,()=>r.getUniformLocation(t,e),'uniform "'+e+'" not present in program.')}function HN(r,t,e){return r.getUniformLocation(t,e)}function qN(r,t,e,n){Ct(r,()=>iL(r,t,n)),Ct(r,()=>r.uniform1i(e,n))}function xtt(r){Ct(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,null)),Ct(r,()=>r.viewport(0,0,r.canvas.width,r.canvas.height)),Ct(r,()=>r.scissor(0,0,r.canvas.width,r.canvas.height))}function ig(r,t,e){Ct(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,e)),Ct(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0))}function Ow(r,t){Ct(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),Ct(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function vd(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+aL(r,t))}function aL(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 hl(r,t,e){let n=Ct(r,()=>t());if(n==null)throw new Error(e);return n}function lL(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 gl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function xl(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 ag(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[gl(r),...xl(r)]),t}function KN(r,t=!1){let e=B().getNumber("WEBGL_MAX_TEXTURE_SIZE");t&&(e=e*2,r=r.map((o,s)=>s>=r.length-2?y.nearestLargerEven(r[s]):r[s]),r.length===1&&(r=[2,r[0]])),r.length!==2&&(r=y.squeezeShape(r).newShape);let n=y.sizeFromShape(r);if(r.length<=1&&n<=e)return[1,n];if(r.length===2&&r[0]<=e&&r[1]<=e)return r;if(r.length===3&&r[0]*r[1]<=e&&r[2]<=e)return[r[0]*r[1],r[2]];if(r.length===3&&r[0]<=e&&r[1]*r[2]<=e)return[r[0],r[1]*r[2]];if(r.length===4&&r[0]*r[1]*r[2]<=e&&r[3]<=e)return[r[0]*r[1]*r[2],r[3]];if(r.length===4&&r[0]<=e&&r[1]*r[2]*r[3]<=e)return[r[0],r[1]*r[2]*r[3]];if(t){let o=gl(r),s=2,i=2;return r.length&&([s,i]=xl(r)),n=o*(s/2)*(i/2),y.sizeToSquarishShape(n).map(a=>a*2)}return y.sizeToSquarishShape(n)}function Aw(r){return r%2===0}function _u(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||Aw(e)&&Aw(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&Aw(r[0])&&Aw(t[0])}var $w,Dw;function jN(r){if($w==null){let t=Gn(r);$w=t.getParameter(t.MAX_TEXTURE_SIZE)}return $w}function ytt(){$w=null}function btt(){Dw=null}function XN(r){if(Dw==null){let t=Gn(r);Dw=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Dw)}function YN(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 Pw(r){try{if(Gn(r)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function ZN(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 RN(t)}function JN(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 RN(t);let n="EXT_color_buffer_half_float";if(Wn(t,n)){let o=t.getExtension(n);return wtt(t,o)}return!1}return RN(t)}function RN(r){let t=og(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 wtt(r,t){let e=og(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 QN(r){return r!==2?!1:Gn(r).fenceSync!=null}function oi(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 Dt=B();Dt.registerFlag("HAS_WEBGL",()=>Dt.getNumber("WEBGL_VERSION")>0);Dt.registerFlag("WEBGL_VERSION",()=>Pw(2)?2:Pw(1)?1:0);Dt.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Dt.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Dt.get("WEBGL_VERSION")===2);Dt.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Dt.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Dt.registerFlag("WEBGL_PACK",()=>Dt.getBool("HAS_WEBGL"));Dt.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Dt.getBool("WEBGL_PACK"));Dt.registerFlag("WEBGL_PACK_CLIP",()=>Dt.getBool("WEBGL_PACK"));Dt.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>Dt.getBool("WEBGL_PACK"));Dt.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Dt.getBool("WEBGL_PACK"));Dt.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Dt.getBool("WEBGL_PACK"));Dt.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Dt.getBool("WEBGL_PACK"));Dt.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Dt.getBool("WEBGL_PACK"));Dt.registerFlag("WEBGL_PACK_REDUCE",()=>Dt.getBool("WEBGL_PACK"));Dt.registerFlag("WEBGL_LAZILY_UNPACK",()=>Dt.getBool("WEBGL_PACK"));Dt.registerFlag("WEBGL_CONV_IM2COL",()=>Dt.getBool("WEBGL_PACK"));Dt.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>jN(Dt.getNumber("WEBGL_VERSION")));Dt.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>XN(Dt.getNumber("WEBGL_VERSION")));Dt.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let r=Dt.getNumber("WEBGL_VERSION");return r===0?0:YN(r)});Dt.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Dt.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!ql.isMobile());Dt.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>ZN(Dt.getNumber("WEBGL_VERSION")));Dt.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Dt.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Dt.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Dt.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>JN(Dt.getNumber("WEBGL_VERSION")));Dt.registerFlag("WEBGL_FENCE_API_ENABLED",()=>QN(Dt.getNumber("WEBGL_VERSION")));Dt.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Dt.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Dt.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}.`)});Dt.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>ql.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}.`)});Dt.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);Dt.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);Dt.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);Dt.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);Dt.registerFlag("WEBGL_EXP_CONV",()=>!1);Dt.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>Dt.getBool("IS_TEST"));function He(){let r,t,e,n,o,s,i,a,u,l;return B().getNumber("WEBGL_VERSION")===2?(r="#version 300 es",t="in",e="out",n="in",o="texture",s="outputColor",i="out vec4 outputColor;",a=` +`))}function Ck(r){return dl(r,()=>r.createProgram(),"Unable to create WebGLProgram.")}function Ik(r,t){if(yt(r,()=>r.linkProgram(t)),!M().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 Hh(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 vk(r,t){let e=dl(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 Sk(r,t){let e=dl(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 K9(){return M().getNumber("WEBGL_VERSION")===2?1:4}function Nk(r){return dl(r,()=>r.createTexture(),"Unable to create WebGLTexture.")}function kk(r,t){let e=M().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 Tk(r){return dl(r,()=>r.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function gw(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 WP(r,t,e){HP(r,e),yt(r,()=>r.activeTexture(r.TEXTURE0+e)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function j9(r,t){HP(r,t),yt(r,()=>r.activeTexture(r.TEXTURE0+t)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function Ek(r,t,e){return dl(r,()=>r.getUniformLocation(t,e),'uniform "'+e+'" not present in program.')}function _k(r,t,e){return r.getUniformLocation(t,e)}function Ak(r,t,e,n){yt(r,()=>WP(r,t,n)),yt(r,()=>r.uniform1i(e,n))}function X9(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 qh(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 xw(r,t){yt(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),yt(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function ud(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+UP(r,t))}function UP(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 dl(r,t,e){let n=yt(r,()=>t());if(n==null)throw new Error(e);return n}function HP(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 hl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function gl(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 Kh(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[hl(r),...gl(r)]),t}function $k(r,t=!1){let e=M().getNumber("WEBGL_MAX_TEXTURE_SIZE"),n=M().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");n===1/0&&M().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=hl(r),u=2,l=2;r.length&&([u,l]=gl(r)),o=a*(u/2)*(l/2),s=y.sizeToSquarishShape(o).map(c=>c*2)}else s=y.sizeToSquarishShape(o);return s}function mw(r){return r%2===0}function Tu(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||mw(e)&&mw(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&mw(r[0])&&mw(t[0])}var fw,dw;function Dk(r){if(fw==null){let t=Bn(r);fw=t.getParameter(t.MAX_TEXTURE_SIZE)}return fw}function Y9(){fw=null}function Z9(){dw=null}function Rk(r){if(dw==null){let t=Bn(r);dw=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,dw)}function Fk(r){if(r===0)return 0;let t,e=Bn(r);return Vn(e,"EXT_disjoint_timer_query_webgl2")&&r===2?t=2:Vn(e,"EXT_disjoint_timer_query")?t=1:t=0,t}function Vn(r,t){return r.getExtension(t)!=null}function yw(r){try{if(Bn(r)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function Ok(r){if(r===0)return!1;let t=Bn(r);if(r===1){if(!Vn(t,"OES_texture_float"))return!1}else if(!Vn(t,"EXT_color_buffer_float"))return!1;return xk(t)}function Pk(r){if(r===0)return!1;let t=Bn(r);if(r===1){if(!Vn(t,"OES_texture_float")||!Vn(t,"WEBGL_color_buffer_float"))return!1}else{if(Vn(t,"EXT_color_buffer_float"))return xk(t);let n="EXT_color_buffer_half_float";if(Vn(t,n)){let o=t.getExtension(n);return J9(t,o)}return!1}return xk(t)}function xk(r){let t=Uh(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 J9(r,t){let e=Uh(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 Lk(r){return r!==2?!1:Bn(r).fenceSync!=null}function Zs(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 Nt=M();Nt.registerFlag("HAS_WEBGL",()=>Nt.getNumber("WEBGL_VERSION")>0);Nt.registerFlag("WEBGL_VERSION",()=>yw(2)?2:yw(1)?1:0);Nt.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Nt.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Nt.get("WEBGL_VERSION")===2);Nt.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Nt.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Nt.registerFlag("WEBGL_PACK",()=>Nt.getBool("HAS_WEBGL"));Nt.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Nt.getBool("WEBGL_PACK"));Nt.registerFlag("WEBGL_PACK_CLIP",()=>Nt.getBool("WEBGL_PACK"));Nt.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>Nt.getBool("WEBGL_PACK"));Nt.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Nt.getBool("WEBGL_PACK"));Nt.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Nt.getBool("WEBGL_PACK"));Nt.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Nt.getBool("WEBGL_PACK"));Nt.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Nt.getBool("WEBGL_PACK"));Nt.registerFlag("WEBGL_PACK_REDUCE",()=>Nt.getBool("WEBGL_PACK"));Nt.registerFlag("WEBGL_LAZILY_UNPACK",()=>Nt.getBool("WEBGL_PACK"));Nt.registerFlag("WEBGL_CONV_IM2COL",()=>Nt.getBool("WEBGL_PACK"));Nt.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>Dk(Nt.getNumber("WEBGL_VERSION")));Nt.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>Rk(Nt.getNumber("WEBGL_VERSION")));Nt.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let r=Nt.getNumber("WEBGL_VERSION");return r===0?0:Fk(r)});Nt.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Nt.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Hl.isMobile());Nt.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>Ok(Nt.getNumber("WEBGL_VERSION")));Nt.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Nt.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Nt.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Nt.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>Pk(Nt.getNumber("WEBGL_VERSION")));Nt.registerFlag("WEBGL_FENCE_API_ENABLED",()=>Lk(Nt.getNumber("WEBGL_VERSION")));Nt.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Nt.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Nt.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}.`)});Nt.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>Hl.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}.`)});Nt.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);Nt.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);Nt.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);Nt.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);Nt.registerFlag("WEBGL_EXP_CONV",()=>!1);Nt.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>Nt.getBool("IS_TEST"));Nt.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);Nt.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);Nt.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);function Ve(){let r,t,e,n,o,s,i,a,u,l;return M().getNumber("WEBGL_VERSION")===2?(r="#version 300 es",t="in",e="out",n="in",o="texture",s="outputColor",i="out vec4 outputColor;",a=M().getBool("WEBGL2_ISNAN_CUSTOM")?` bool isnan_custom(float val) { uint floatToUint = floatBitsToUint(val); return (floatToUint & 0x7fffffffu) > 0x7f800000u; @@ -73,7 +73,7 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram } #define isnan(value) isnan_custom(value) - `,u="",l=` + `:"",u="",l=` #define round(value) newRound(value) int newRound(float value) { return int(floor(value + 0.5)); @@ -107,15 +107,15 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram ivec4 round(vec4 value) { return ivec4(floor(value + vec4(0.5))); } - `),{version:r,attribute:t,varyingVs:e,varyingFs:n,texture2D:o,output:s,defineOutput:i,defineSpecialNaN:a,defineSpecialInf:u,defineRound:l}}function si(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 qc(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 Ctt(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 uL(r,t,e="index"){let n=r.map((s,i)=>i),o=Ctt(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 Sd(r){let t=y.computeStrides(r).map(e=>e.toString());return` + `),{version:r,attribute:t,varyingVs:e,varyingFs:n,texture2D:o,output:s,defineOutput:i,defineSpecialNaN:a,defineSpecialInf:u,defineRound:l}}function Js(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 Q9(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 qP(r,t,e="index"){let n=r.map((s,i)=>i),o=Q9(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 pd(r){let t=y.computeStrides(r).map(e=>e.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; } -`}function Td(){return` +`}function md(){return` int getFlatIndex(ivec3 coords) { return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z; } -`}var Lw=` +`}var bw=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; @@ -154,22 +154,22 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return c / 255.0; } -`;var{getBroadcastDims:cL}=S;function pL(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}=Mw(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(` -`),s=r.map(f=>vtt(f,t,e.packedInputs,e.enableShapeUniforms)).join(` -`),i=t.texShape,a=He(),u=Ttt(a),l,c,p=_tt(a);return t.isPacked?(l=Itt(t.logicalShape,i,e.enableShapeUniforms),c=ktt(a)):(l=Stt(t.logicalShape,i,e.enableShapeUniforms),c=Ntt(a)),e.packedInputs&&(p+=Dtt),[p,u,c,o,l,s,e.userCode].join(` -`)}function kd(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return Utt(r,t);case 1:return qtt(r,t);case 2:return jtt(r,t);case 3:return Ytt(r,t);case 4:return Jtt(r,t);case 5:return Qtt(r);case 6:return tet(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function mL(r,t){switch(r.shapeInfo.logicalShape.length){case 0:return Wtt(r);case 1:return Htt(r,t);case 2:return Ktt(r,t);case 3:return Xtt(r,t);default:return Ztt(r,t)}}function vtt(r,t,e=!1,n){let o="";e?o+=mL(r,n):o+=kd(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=eet(r,t):o+=ret(r,t)),o}function Itt(r,t,e){switch(r.length){case 0:return fL();case 1:return Rtt(r,t,e);case 2:return Vtt(r,t,e);case 3:return Ott(r,t,e);default:return Ltt(r,t,e)}}function Stt(r,t,e){switch(r.length){case 0:return fL();case 1:return Ftt(r,t,e);case 2:return Gtt(r,t,e);case 3:return Ptt(r,t,e);case 4:return Mtt(r,t,e);case 5:return ztt(r,t);case 6:return Btt(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function Ttt(r){return` +`;var{getBroadcastDims:KP}=S;function jP(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}=ww(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(` +`),s=r.map(f=>ttt(f,t,e.packedInputs,e.enableShapeUniforms)).join(` +`),i=t.texShape,a=Ve(),u=ntt(a),l,c,p=itt(a);return t.isPacked?(l=ett(t.logicalShape,i,e.enableShapeUniforms),c=stt(a)):(l=rtt(t.logicalShape,i,e.enableShapeUniforms),c=ott(a)),e.packedInputs&&(p+=ctt),[p,u,c,o,l,s,e.userCode].join(` +`)}function dd(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return Itt(r,t);case 1:return Stt(r,t);case 2:return ktt(r,t);case 3:return Ett(r,t);case 4:return Att(r,t);case 5:return $tt(r);case 6:return Dtt(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function XP(r,t){switch(r.shapeInfo.logicalShape.length){case 0:return Ctt(r);case 1:return vtt(r,t);case 2:return Ntt(r,t);case 3:return Ttt(r,t);default:return _tt(r,t)}}function ttt(r,t,e=!1,n){let o="";e?o+=XP(r,n):o+=dd(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=Rtt(r,t):o+=Ftt(r,t)),o}function ett(r,t,e){switch(r.length){case 0:return YP();case 1:return ptt(r,t,e);case 2:return btt(r,t,e);case 3:return ftt(r,t,e);default:return htt(r,t,e)}}function rtt(r,t,e){switch(r.length){case 0:return YP();case 1:return mtt(r,t,e);case 2:return wtt(r,t,e);case 3:return dtt(r,t,e);case 4:return gtt(r,t,e);case 5:return xtt(r,t);case 6:return ytt(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function ntt(r){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${r.texture2D}(textureSampler, uv).r; } - `}function Ntt(r){return` + `}function ott(r){return` void setOutput(float val) { ${r.output} = vec4(val, 0, 0, 0); } - `}function ktt(r){return` + `}function stt(r){return` void setOutput(vec4 val) { ${r.output} = val; } - `}function _tt(r){return`${r.version} + `}function itt(r){return`${r.version} precision highp float; precision highp int; precision highp sampler2D; @@ -224,10 +224,10 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return fract((p3.x + p3.y) * p3.z); } - ${Ett} - ${Att} - ${$tt} - `}var Ett=` + ${att} + ${ltt} + ${utt} + `}var att=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -239,7 +239,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,Att=` +`,ltt=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -247,7 +247,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,$tt=` +`,utt=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -256,7 +256,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,Dtt=` +`,ctt=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -267,11 +267,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function fL(){return` +`;function YP(){return` int getOutputCoords() { return 0; } - `}function Rtt(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?e?` + `}function ptt(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?e?` int getOutputCoords() { return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0)); } @@ -300,7 +300,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${n[0]}, ${n[1]})); return 2 * (resTexRC.x * ${n[1]} + resTexRC.y); } - `}function Ftt(r,t,e){return t[0]===1?e?` + `}function mtt(r,t,e){return t[0]===1?e?` int getOutputCoords() { return int(resultUV.x * float(outTexShape[1])); } @@ -328,7 +328,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return resTexRC.x * ${t[1]} + resTexRC.y; } - `}function Ott(r,t,e){if(e)return` + `}function ftt(r,t,e){if(e)return` ivec3 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0)); @@ -359,15 +359,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function Ptt(r,t,e){if(e)return` + `}function dtt(r,t,e){if(e)return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; - ${qc(["r","c","d"],r)} + ${Mc(["r","c","d"],r)} return ivec3(r, c, d); } -`;let n=si(["r","c","d"],r);return` +`;let n=Js(["r","c","d"],r);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -375,7 +375,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n} return ivec3(r, c, d); } - `}function Ltt(r,t,e){if(e)return` + `}function htt(r,t,e){if(e)return` ivec4 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); ivec2 resTexRC = ivec2(resultUV.yx * @@ -416,15 +416,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec${r.length}(${u}); } - `}function Mtt(r,t,e){if(e)return` + `}function gtt(r,t,e){if(e)return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; - ${qc(["r","c","d","d2"],r)} + ${Mc(["r","c","d","d2"],r)} return ivec4(r, c, d, d2); } - `;let n=si(["r","c","d","d2"],r);return` + `;let n=Js(["r","c","d","d2"],r);return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -432,7 +432,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n} return ivec4(r, c, d, d2); } - `}function ztt(r,t){let e=si(["r","c","d","d2","d3"],r);return` + `}function xtt(r,t){let e=Js(["r","c","d","d2","d3"],r);return` ivec5 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -444,7 +444,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec5 outShape = ivec5(r, c, d, d2, d3); return outShape; } - `}function Btt(r,t){let e=si(["r","c","d","d2","d3","d4"],r);return` + `}function ytt(r,t){let e=Js(["r","c","d","d2","d3","d4"],r);return` ivec6 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -455,7 +455,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec6 result = ivec6(r, c, d, d2, d3, d4); return result; } - `}function Vtt(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(y.arraysEqual(r,t))return e?` + `}function btt(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(y.arraysEqual(r,t))return e?` ivec2 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); return 2 * ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); @@ -488,7 +488,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec2(r, c); } - `}function Gtt(r,t,e){return y.arraysEqual(r,t)?e?` + `}function wtt(r,t,e){return y.arraysEqual(r,t)?e?` ivec2 getOutputCoords() { return ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); } @@ -542,15 +542,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int c = index - r * ${r[1]}; return ivec2(r, c); } - `}function Kc(r){return`offset${r}`}function Wtt(r){let t=r.name,e="get"+t.charAt(0).toUpperCase()+t.slice(1),n=He();return` + `}function zc(r){return`offset${r}`}function Ctt(r){let t=r.name,e="get"+t.charAt(0).toUpperCase()+t.slice(1),n=Ve();return` vec4 ${e}() { return ${n.texture2D}(${t}, halfCR); } - `}function Utt(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(r.shapeInfo.isUniform)return`float ${n}() {return ${e};}`;let[o,s]=r.shapeInfo.texShape;if(o===1&&s===1)return` + `}function Itt(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(r.shapeInfo.isUniform)return`float ${n}() {return ${e};}`;let[o,s]=r.shapeInfo.texShape;if(o===1&&s===1)return` float ${n}() { return sampleTexture(${e}, halfCR); } - `;let i=Kc(e);if(t)return` + `;let i=zc(e);if(t)return` float ${n}() { vec2 uv = uvFromFlat(${e}TexShape[0], ${e}TexShape[1], ${i}); return sampleTexture(${e}, uv); @@ -560,7 +560,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${a}, ${u}, ${i}); return sampleTexture(${e}, uv); } - `}function Htt(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1),o=r.shapeInfo.texShape,s=He();if(t)return` + `}function vtt(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1),o=r.shapeInfo.texShape,s=Ve();if(t)return` vec4 ${n}(int index) { ivec2 packedTexShape = ivec2(ceil(float(${e}TexShape[0]) / 2.0), ceil(float(${e}TexShape[1]) / 2.0)); vec2 uv = packedUVfrom1D( @@ -573,15 +573,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${i[0]}, ${i[1]}, index); return ${s.texture2D}(${e}, uv); } - `}function qtt(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(r.shapeInfo.isUniform)return` + `}function Stt(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(r.shapeInfo.isUniform)return` float ${n}(int index) { - ${_d(r)} + ${hd(r)} } `;let o=r.shapeInfo.texShape,s=o[0],i=o[1];if(i===1&&s===1)return` float ${n}(int index) { return sampleTexture(${e}, halfCR); } - `;let a=Kc(e);return i===1?t?` + `;let a=zc(e);return i===1?t?` float ${n}(int index) { vec2 uv = vec2(0.5, (float(index + ${a}) + 0.5) / float(${e}TexShape[0])); return sampleTexture(${e}, uv); @@ -611,7 +611,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${s}, ${i}, index + ${a}); return sampleTexture(${e}, uv); } - `}function Ktt(r,t){let e=r.shapeInfo.logicalShape,n=r.name,o="get"+n.charAt(0).toUpperCase()+n.slice(1),s=r.shapeInfo.texShape,i=s[0],a=s[1],u=He();if(s!=null&&y.arraysEqual(e,s))return t?` + `}function Ntt(r,t){let e=r.shapeInfo.logicalShape,n=r.name,o="get"+n.charAt(0).toUpperCase()+n.slice(1),s=r.shapeInfo.texShape,i=s[0],a=s[1],u=Ve();if(s!=null&&y.arraysEqual(e,s))return t?` vec4 ${o}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${n}TexShape[1], ${n}TexShape[0]); @@ -635,7 +635,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = packedUVfrom2D(${c}, ${l[0]}, ${l[1]}, row, col); return ${u.texture2D}(${n}, uv); } - `}function jtt(r,t){let e=r.shapeInfo.logicalShape,n=r.name,o="get"+n.charAt(0).toUpperCase()+n.slice(1),s=r.shapeInfo.texShape;if(s!=null&&y.arraysEqual(e,s)){if(t)return` + `}function ktt(r,t){let e=r.shapeInfo.logicalShape,n=r.name,o="get"+n.charAt(0).toUpperCase()+n.slice(1),s=r.shapeInfo.texShape;if(s!=null&&y.arraysEqual(e,s)){if(t)return` float ${o}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${n}TexShape[1], ${n}TexShape[0]); return sampleTexture(${n}, uv); @@ -645,17 +645,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = (vec2(col, row) + halfCR) / vec2(${f}.0, ${m}.0); return sampleTexture(${n}, uv); } - `}let{newShape:i,keptDims:a}=y.squeezeShape(e),u=i;if(u.length=1?c="coords = 0;":c=a.map(b=>`coords.${p[b+l]} = 0;`).join(` + `}function Rtt(r,t){let e=r.name,n=e.charAt(0).toUpperCase()+e.slice(1),o="get"+n+"AtOutCoords",s=r.shapeInfo.logicalShape.length,i=t.logicalShape.length,a=KP(r.shapeInfo.logicalShape,t.logicalShape),u=zt(i),l=i-s,c,p=["x","y","z","w","u","v"];s===0?c="":i<2&&a.length>=1?c="coords = 0;":c=a.map(b=>`coords.${p[b+l]} = 0;`).join(` `);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=` return vec4(outputValue.xy, outputValue.xy); `;else if(h&&!x)i===1?f=` @@ -972,20 +972,20 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec4 outputValue = get${n}(${m}); ${f} } - `}function ret(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` + `}function Ftt(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` float ${o}() { return sampleTexture(${e}, resultUV); } - `;let l=Wt(u),c=cL(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(` + `;let l=zt(u),c=KP(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(` `);let d="";return u<2&&a>0?d="coords":d=r.shapeInfo.logicalShape.map((h,g)=>`coords.${f[g+p]}`).join(", "),` float ${o}() { ${l} coords = getOutputCoords(); ${m} return get${n}(${d}); } - `}function Wt(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 Mw(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 hL(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=pL(o,i,t),u=PN(r.gl,a),l=r.createProgram(u);return B().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},tk(r,t,l))}function tk(r,t,e){let n={},o={},s={},i=[],a,u,l,c=null,p=null;p=r.getUniformLocation(e,"NAN",!1),B().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 dL(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 gL(r,t,e,n,o){t.program.enableShapeUniforms||(dL(t.inShapeInfos,e),dL([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),B().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}=Mw(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 xL(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}=Mw(r.packedInputs,i.shape,u),m="",f="",d="";if(c.length===1&&r.packedInputs){let T=[Math.ceil(u[0]/2),Math.ceil(u[1]/2)];m=`${T[0]>1}_${T[1]>1}`}else if(c.length===2&&!r.packedInputs)f=`${c[0]>1}_${c[1]>1}`;else if(c.length>2&&!r.packedInputs){let T=y.computeStrides(c);d=`${T[0]===u[1]}_${T[T.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=S.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+`${B().getNumber("WEBGL_VERSION")}`,s}function ve(r){return B().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&r<=4}var zw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=ku.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let e=He();this.outputShape=t,this.enableShapeUniforms=ve(this.outputShape.length),this.userCode=` + `}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 ww(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 JP(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=jP(o,i,t),u=wk(r.gl,a),l=r.createProgram(u);return M().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},Mk(r,t,l))}function Mk(r,t,e){let n={},o={},s={},i=[],a,u,l,c=null,p=null;p=r.getUniformLocation(e,"NAN",!1),M().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 ZP(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 QP(r,t,e,n,o){t.program.enableShapeUniforms||(ZP(t.inShapeInfos,e),ZP([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),M().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}=ww(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 tL(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}=ww(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=S.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+`${M().getNumber("WEBGL_VERSION")}`,s}function we(r){return M().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&r<=4}var Cw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=ku.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let e=Ve();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?qc(["r","c","d"],t):si(["r","c","d"],t)} + ${this.enableShapeUniforms?Mc(["r","c","d"],t):Js(["r","c","d"],t)} return ivec3(r, c, d); } @@ -1003,9 +1003,9 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${e.output} = result; } - `}};var Bw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=ku.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let e=He();this.outputShape=t,this.enableShapeUniforms=ve(this.outputShape.length),this.userCode=` + `}};var Iw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=ku.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let e=Ve();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?qc(["r","c","d"],t):si(["r","c","d"],t)} + ${this.enableShapeUniforms?Mc(["r","c","d"],t):Js(["r","c","d"],t)} return ivec3(r, c, d); } @@ -1023,23 +1023,23 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${e.output} = result; } - `}};var Vw=class{constructor(t){this.variableNames=["A"],this.outTexUsage=Hr.DOWNLOAD;let e=He();this.outputShape=t,this.userCode=` - ${Lw} + `}};var vw=class{constructor(t){this.variableNames=["A"],this.outTexUsage=Kr.DOWNLOAD;let e=Ve();this.outputShape=t,this.userCode=` + ${bw} void main() { float x = getAAtOutCoords(); ${e.output} = encode_float(x); } - `}};var Gw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Hr.DOWNLOAD;let e=He();this.outputShape=t,this.userCode=` - ${Lw} + `}};var Sw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Kr.DOWNLOAD;let e=Ve();this.outputShape=t,this.userCode=` + ${bw} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${e.output} = encode_float(x); } - `}};var Ww=class{constructor(t,e=!1){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let n=He();this.outputShape=t,this.enableShapeUniforms=ve(this.outputShape.length);let o="result";e&&(o="floor(result * 255. + 0.5)"),this.userCode=` - ${this.enableShapeUniforms?Td():Sd(t)} + `}};var Nw=class{constructor(t,e=!1){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let n=Ve();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let o="result";e&&(o="floor(result * 255. + 0.5)"),this.userCode=` + ${this.enableShapeUniforms?md():pd(t)} void main() { ivec3 coords = getOutputCoords(); @@ -1068,7 +1068,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n.output} = vec4(${o}, 0., 0., 0.); } - `}};var Uw=class{constructor(t,e=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.customUniforms=[{name:"texShape",type:"ivec2"}];let n=He();this.outputShape=t,this.enableShapeUniforms=ve(this.outputShape.length);let o="",s="result";e&&(s="floor(result * 255. + 0.5)");for(let i=0;i<=1;i++)for(let a=0;a<=1;a++){let u=i*2+a;o+=` + `}};var kw=class{constructor(t,e=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.customUniforms=[{name:"texShape",type:"ivec2"}];let n=Ve();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let o="",s="result";e&&(s="floor(result * 255. + 0.5)");for(let i=0;i<=1;i++)for(let a=0;a<=1;a++){let u=i*2+a;o+=` localCoords = coords; if(localCoords[2] + ${a} < ${this.enableShapeUniforms?"outShape[2]":`${t[2]}`}) { localCoords[2] += ${a}; @@ -1097,7 +1097,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } } `}this.userCode=` - ${this.enableShapeUniforms?Td():Sd(t)} + ${this.enableShapeUniforms?md():pd(t)} void main() { ivec3 coords = getOutputCoords(); @@ -1112,7 +1112,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n.output} = ${s}; } - `}};var xk={};jt(xk,{bindVertexProgramAttributeStreams:()=>uk,createBufferFromOutputTexture:()=>mk,createFloat16MatrixTexture:()=>sk,createFloat16PackedMatrixTexture:()=>lk,createFloat32MatrixTexture:()=>ok,createIndexBuffer:()=>nk,createPackedMatrixTexture:()=>ak,createUnsignedBytesMatrixTexture:()=>ik,createVertexBuffer:()=>rk,createVertexShader:()=>ek,downloadByteEncodedFloatMatrixFromOutputTexture:()=>dk,downloadFloat32MatrixFromBuffer:()=>fk,downloadMatrixFromPackedOutputTexture:()=>gk,downloadPackedMatrixFromBuffer:()=>hk,getInternalFormatForFloat16MatrixTexture:()=>qw,getInternalFormatForFloat16PackedMatrixTexture:()=>Xw,getInternalFormatForFloat32MatrixTexture:()=>Hw,getInternalFormatForPackedMatrixTexture:()=>jw,getInternalFormatForUnsignedBytesMatrixTexture:()=>Kw,uploadDenseMatrixToTexture:()=>ck,uploadPixelDataToTexture:()=>pk});function ek(r){let t=He(),e=`${t.version} + `}};var eT={};Gt(eT,{bindVertexProgramAttributeStreams:()=>Kk,createBufferFromOutputTexture:()=>Yk,createFloat16MatrixTexture:()=>Wk,createFloat16PackedMatrixTexture:()=>qk,createFloat32MatrixTexture:()=>Gk,createIndexBuffer:()=>Vk,createPackedMatrixTexture:()=>Hk,createUnsignedBytesMatrixTexture:()=>Uk,createVertexBuffer:()=>Bk,createVertexShader:()=>zk,downloadByteEncodedFloatMatrixFromOutputTexture:()=>Jk,downloadFloat32MatrixFromBuffer:()=>Zk,downloadMatrixFromPackedOutputTexture:()=>tT,downloadPackedMatrixFromBuffer:()=>Qk,getInternalFormatForFloat16MatrixTexture:()=>Ew,getInternalFormatForFloat16PackedMatrixTexture:()=>$w,getInternalFormatForFloat32MatrixTexture:()=>Tw,getInternalFormatForPackedMatrixTexture:()=>Aw,getInternalFormatForUnsignedBytesMatrixTexture:()=>_w,uploadDenseMatrixToTexture:()=>jk,uploadPixelDataToTexture:()=>Xk});function zk(r){let t=Ve(),e=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -1121,11 +1121,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return ON(r,e)}function rk(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 zN(r,t)}function nk(r){let t=new Uint16Array([0,1,2,2,1,3]);return BN(r,t)}function lg(r,t,e,n,o,s){GN(t,e);let i=VN(r),a=r.TEXTURE_2D;return Ct(r,()=>r.bindTexture(a,i)),Ct(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE)),Ct(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE)),Ct(r,()=>r.texParameteri(a,r.TEXTURE_MIN_FILTER,r.NEAREST)),Ct(r,()=>r.texParameteri(a,r.TEXTURE_MAG_FILTER,r.NEAREST)),B().getNumber("WEBGL_VERSION")===1?Ct(r,()=>r.texImage2D(a,0,n,t,e,0,o,s,null)):Ct(r,()=>r.texStorage2D(a,1,n,t,e)),Ct(r,()=>r.bindTexture(r.TEXTURE_2D,null)),{texture:i,texShape:[e,t]}}function Hw(r){return r.internalFormatFloat}function ok(r,t,e,n){let[o,s]=Hc(t,e);return lg(r,o,s,Hw(n),n.textureFormatFloat,r.FLOAT)}function qw(r){return r.internalFormatHalfFloat}function sk(r,t,e,n){let[o,s]=Hc(t,e);return lg(r,o,s,qw(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Kw(r){return r.downloadTextureFormat}function ik(r,t,e,n){let[o,s]=Hc(t,e);return lg(r,o,s,Kw(n),r.RGBA,r.UNSIGNED_BYTE)}function jw(r){return r.internalFormatPackedFloat}function ak(r,t,e,n){let[o,s]=ea(t,e);return lg(r,o,s,jw(n),r.RGBA,r.FLOAT)}function Xw(r){return r.internalFormatPackedHalfFloat}function lk(r,t,e,n){let[o,s]=ea(t,e);return lg(r,o,s,Xw(n),r.RGBA,n.textureTypeHalfFloat)}function uk(r,t,e){return Ct(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),Fw(r,t,"clipSpacePos",e,3,20,0)&&Fw(r,t,"uv",e,2,20,12)}function ck(r,t,e,n,o,s){Ct(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),B().getNumber("WEBGL_VERSION")===2?Ct(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e,n,r.RGBA,a,i)):Ct(r,()=>r.texImage2D(r.TEXTURE_2D,0,u,e,n,0,r.RGBA,a,i)),Ct(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function pk(r,t,e){Ct(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?B().getNumber("WEBGL_VERSION")===2?Ct(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e.width,e.height,r.RGBA,r.UNSIGNED_BYTE,e.data)):Ct(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e.width,e.height,0,r.RGBA,r.UNSIGNED_BYTE,e.data)):B().getNumber("WEBGL_VERSION")===2?Ct(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,e)):Ct(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e)),Ct(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function mk(r,t,e,n){let o=r.createBuffer();Ct(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,o));let a=4*4*t*e;return Ct(r,()=>r.bufferData(r.PIXEL_PACK_BUFFER,a,r.STREAM_READ)),Ct(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,0)),Ct(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,null)),o}function fk(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 dk(r,t,e,n){let[o,s]=Hc(t,e),i=4,a=new Uint8Array(nL(t*e,i));return Ct(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function hk(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array(oL(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 gk(r,t,e){let n=new Float32Array(t*e*4);return Ct(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,n)),n}var jc=class{constructor(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let e=B().getNumber("WEBGL_VERSION");t!=null?(this.gl=t,$N(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"),B().getNumber("WEBGL_VERSION")===1){let s="OES_texture_float",i="OES_texture_half_float";if(this.textureFloatExtension=Cd(this.gl,s),Wn(this.gl,i))this.textureHalfFloatExtension=Cd(this.gl,i);else if(B().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=Cd(this.gl,o);else if(B().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=rk(this.gl),this.indexBuffer=nk(this.gl),this.framebuffer=WN(this.gl),this.textureConfig=og(this.gl,this.textureHalfFloatExtension)}get debug(){return B().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;Ct(t,()=>t.finish()),Ct(t,()=>t.bindFramebuffer(t.FRAMEBUFFER,null)),Ct(t,()=>t.deleteFramebuffer(this.framebuffer)),Ct(t,()=>t.bindBuffer(t.ARRAY_BUFFER,null)),Ct(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)),Ct(t,()=>t.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(t,e){return this.throwIfDisposed(),ok(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),sk(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),ik(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),pk(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),ck(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),lk(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),ak(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(Ow(this.gl,this.framebuffer),this.outputTexture=null),Ct(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>dk(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return hk(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return fk(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=mk(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(B().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 B().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,B().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>gk(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=ek(e));let n=LN(e);return Ct(e,()=>e.attachShader(n,this.vertexShader)),Ct(e,()=>e.attachShader(n,t)),MN(e,n),this.debug&&sg(e,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=uk(e,this.program,this.vertexBuffer)),n}deleteProgram(t){this.throwIfDisposed(),t===this.program&&(this.program=null),t!=null&&Ct(this.gl,()=>this.gl.deleteProgram(t))}setProgram(t){this.throwIfDisposed(),this.program=t,this.program!=null&&this.debug&&sg(this.gl,this.program),Ct(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?UN(this.gl,t,e):HN(this.gl,t,e)}getAttributeLocation(t,e){return this.throwIfDisposed(),Ct(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(),qN(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=ea(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&&sg(this.gl,this.program),vd(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let t=this.gl;this.debug&&this.debugValidate(),Ct(t,()=>t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),Ct(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Cd(this.gl,B().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(B().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(B().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,B().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(t,B().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=set(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){this.itemsToPoll.push({isDoneFn:t,resolveFn:e}),!(this.itemsToPoll.length>1)&&y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(t){this.throwIfDisposed(),ig(this.gl,t,this.framebuffer),this.debug&&vd(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(ig(this.gl,this.outputTexture,this.framebuffer),this.debug&&vd(this.gl)):Ow(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;ig(o,t,this.framebuffer),this.debug&&vd(o),this.outputTexture=t,Ct(o,()=>o.viewport(0,0,e,n)),Ct(o,()=>o.scissor(0,0,e,n))}setOutputMatrixWriteRegionDriver(t,e,n,o){this.throwIfDisposed(),Ct(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 set(r){let t=0;for(;t`${r}.${e}`)}function tr(r,t){return t===1?[r]:yk(r,t)}function sM(r,t){if(r===1)return"rc";let e="";for(let n=0;nr.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)),M().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 Tw(r){return r.internalFormatFloat}function Gk(r,t,e,n){let[o,s]=Lc(t,e);return jh(r,o,s,Tw(n),n.textureFormatFloat,r.FLOAT)}function Ew(r){return r.internalFormatHalfFloat}function Wk(r,t,e,n){let[o,s]=Lc(t,e);return jh(r,o,s,Ew(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function _w(r){return r.downloadTextureFormat}function Uk(r,t,e,n){let[o,s]=Lc(t,e);return jh(r,o,s,_w(n),r.RGBA,r.UNSIGNED_BYTE)}function Aw(r){return r.internalFormatPackedFloat}function Hk(r,t,e,n){let[o,s]=Ki(t,e);return jh(r,o,s,Aw(n),r.RGBA,r.FLOAT)}function $w(r){return r.internalFormatPackedHalfFloat}function qk(r,t,e,n){let[o,s]=Ki(t,e);return jh(r,o,s,$w(n),r.RGBA,n.textureTypeHalfFloat)}function Kk(r,t,e){return yt(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),gw(r,t,"clipSpacePos",e,3,20,0)&&gw(r,t,"uv",e,2,20,12)}function jk(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),M().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 Xk(r,t,e){yt(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?M().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)):M().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 Yk(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 Zk(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 Jk(r,t,e,n){let[o,s]=Lc(t,e),i=4,a=new Uint8Array(BP(t*e,i));return yt(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function Qk(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array(VP(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 tT(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=M().getNumber("WEBGL_VERSION");t!=null?(this.gl=t,hk(e,t)):this.gl=Bn(e);let n="WEBGL_color_buffer_float",o="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),M().getNumber("WEBGL_VERSION")===1){let s="OES_texture_float",i="OES_texture_half_float";if(this.textureFloatExtension=ld(this.gl,s),Vn(this.gl,i))this.textureHalfFloatExtension=ld(this.gl,i);else if(M().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),Vn(this.gl,o))this.colorBufferHalfFloatExtension=ld(this.gl,o);else if(M().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",Vn(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(Vn(this.gl,o))this.colorBufferHalfFloatExtension=this.gl.getExtension(o);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=Bk(this.gl),this.indexBuffer=Vk(this.gl),this.framebuffer=Tk(this.gl),this.textureConfig=Uh(this.gl,this.textureHalfFloatExtension)}get debug(){return M().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(),Gk(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),Wk(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),Uk(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),Xk(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),jk(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),qk(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),Hk(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(xw(this.gl,this.framebuffer),this.outputTexture=null),yt(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>Jk(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return Qk(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return Zk(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=Yk(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(M().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 M().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,M().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>tT(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=zk(e));let n=Ck(e);return yt(e,()=>e.attachShader(n,this.vertexShader)),yt(e,()=>e.attachShader(n,t)),Ik(e,n),this.debug&&Hh(e,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=Kk(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&&Hh(this.gl,this.program),yt(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?Ek(this.gl,t,e):_k(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(),Ak(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=Ki(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&&Hh(this.gl,this.program),ud(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=ld(this.gl,M().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(M().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(M().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,M().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(t,M().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=Ltt(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 M().platform&&(n=M().platform.setTimeoutCustom.bind(M().platform)),y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(t){this.throwIfDisposed(),qh(this.gl,t,this.framebuffer),this.debug&&ud(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(qh(this.gl,this.outputTexture,this.framebuffer),this.debug&&ud(this.gl)):xw(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;qh(o,t,this.framebuffer),this.debug&&ud(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 Ltt(r){let t=0;for(;t`${r}.${e}`)}function Qe(r,t){return t===1?[r]:rT(r,t)}function WL(r,t){if(r===1)return"rc";let e="";for(let n=0;n= ${this.enableShapeUniforms?"outShape":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`:`getA(${e[0]}), cEdge ? 0. : getA(${e[1]}), rEdge ? 0. : getA(${e[2]}), - rEdge || cEdge ? 0. : getA(${e[3]})`}};var $d=class{constructor(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=t,this.enableShapeUniforms=ve(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+=` + rEdge || cEdge ? 0. : getA(${e[3]})`}};var yd=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+=` ${s} ${o>0?"if(thisRC.y < rows && thisRC.z < cols){":""} int flatIndex = getFlatIndex(thisRC); @@ -1160,8 +1160,8 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${o>0?"}":""} `}this.userCode=` - ${iet(e,this.enableShapeUniforms)} - ${this.enableShapeUniforms?Td():Sd(t)} + ${Mtt(e,this.enableShapeUniforms)} + ${this.enableShapeUniforms?md():pd(t)} void main() { ivec3 rc = getOutputCoords(); @@ -1176,12 +1176,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function iet(r,t){return` + `}};function Mtt(r,t){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { - ${t?uL(["r","c","d"],"inputShape"):si(["r","c","d"],r)} + ${t?qP(["r","c","d"],"inputShape"):Js(["r","c","d"],r)} return ivec3(r, c, d); } - `}var tC=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=aM(e,n),s=lM(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=iM(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===Fr.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):o===Fr.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):o===Fr.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):o===Fr.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):o===Fr.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=aM(n,o),i=lM(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=iM(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=B().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 aet(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 iM(r,t,e,n,o){let s=uet(t,n),i;if(o){let[u,l]=ea(r[0],r[1]);i=u*l}else{let[u,l]=Hc(r[0],r[1]);i=u*l}let a=aet(e,s);return i*a}function uet(r,t){switch(r){case Fr.PACKED_2X2_FLOAT32:return jw(t);case Fr.PACKED_2X2_FLOAT16:return Xw(t);case Fr.UNPACKED_FLOAT32:return Hw(t);case Fr.UNPACKED_FLOAT16:return qw(t);case Fr.PACKED_4X1_UNSIGNED_BYTE:return Kw(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function cet(r){return B().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?r?Fr.PACKED_2X2_FLOAT32:Fr.UNPACKED_FLOAT32:r?Fr.PACKED_2X2_FLOAT16:Fr.UNPACKED_FLOAT16}function aM(r,t){if(r===Hr.UPLOAD)return Fr.PACKED_2X2_FLOAT32;if(r===Hr.RENDER||r==null)return cet(t);if(r===Hr.DOWNLOAD||r===Hr.PIXELS)return Fr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function lM(r,t,e){return`${r[0]}_${r[1]}_${t}_${e}`}var Zr=class{constructor(t,e){this.variableNames=["A"],this.outputShape=t,this.enableShapeUniforms=ve(this.outputShape.length),this.userCode=` + `}var Pw=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=HL(e,n),s=qL(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=UL(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===Fr.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):o===Fr.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):o===Fr.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):o===Fr.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):o===Fr.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=HL(n,o),i=qL(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=UL(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=M().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 ztt(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 UL(r,t,e,n,o){let s=Btt(t,n),i;if(o){let[u,l]=Ki(r[0],r[1]);i=u*l}else{let[u,l]=Lc(r[0],r[1]);i=u*l}let a=ztt(e,s);return i*a}function Btt(r,t){switch(r){case Fr.PACKED_2X2_FLOAT32:return Aw(t);case Fr.PACKED_2X2_FLOAT16:return $w(t);case Fr.UNPACKED_FLOAT32:return Tw(t);case Fr.UNPACKED_FLOAT16:return Ew(t);case Fr.PACKED_4X1_UNSIGNED_BYTE:return _w(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function Vtt(r){return M().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?r?Fr.PACKED_2X2_FLOAT32:Fr.UNPACKED_FLOAT32:r?Fr.PACKED_2X2_FLOAT16:Fr.UNPACKED_FLOAT16}function HL(r,t){if(r===Kr.UPLOAD)return Fr.PACKED_2X2_FLOAT32;if(r===Kr.RENDER||r==null)return Vtt(t);if(r===Kr.DOWNLOAD||r===Kr.PIXELS)return Fr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function qL(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=` float unaryOperation(float x) { ${e} } @@ -1192,11 +1192,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},fr="if (isnan(x)) return x;",uM="return x;",bk="return abs(x);";var cM="return (x >= 0.0) ? x : (exp(x) - 1.0);",pM=fr+` + `}},pr="if (isnan(x)) return x;",KL="return x;",nT="return abs(x);";var jL="return (x >= 0.0) ? x : (exp(x) - 1.0);",XL=pr+` return (x < 0.0) ? 0.0 : x; -`,mM=fr+` +`,YL=pr+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Yc="return x;",fM="return 1.0 / (1.0 + exp(-1.0 * x));";var hM="return x;",gM=` +`,Gc="return x;",ZL="return 1.0 / (1.0 + exp(-1.0 * x));";var QL="return x;",tM=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -1205,7 +1205,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,xM=` +`,eM=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1215,7 +1215,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,yM=` +`,rM=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1225,7 +1225,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,bM="return 1.0 / (1.0 + exp(-1.0 * x));",ro=class{constructor(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.enableShapeUniforms=ve(this.outputShape.length),this.userCode=` +`,nM="return 1.0 / (1.0 + exp(-1.0 * x));",no=class{constructor(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=` vec4 unaryOperation(vec4 x) { ${e} } @@ -1236,17 +1236,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}};var eC=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=t,this.enableShapeUniforms=ve(this.outputShape.length);let e=t.length,n=tr("rc",e),o=Wt(e),s=sM(e,n),i=n.slice(-2),a=e<=1?"rc":`vec2(${i.join(",")})`;this.userCode=` + `}};var Lw=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=WL(e,n),i=n.slice(-2),a=e<=1?"rc":`vec2(${i.join(",")})`;this.userCode=` void main() { ${o} rc = getOutputCoords(); vec4 packedInput = getA(${s}); setOutput(getChannel(packedInput, ${a})); } - `}};var met=Vr.whereImpl,fet=1e-7,det=1e-4,rC={};function het(r){return r in rC||(rC[r]={}),rC[r]}var get=B().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),xet=600;function yet(){return B().global.screen==null?1024:B().global.screen.height*B().global.screen.width*window.devicePixelRatio*xet/1024/1024}var Eu=class extends Ho{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,!B().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let e;if(t!=null){if(t instanceof jc)e=t;else{let n=Gn(B().getNumber("WEBGL_VERSION"),t);e=new jc(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Gn(B().getNumber("WEBGL_VERSION"));e=new jc(n),this.binaryCache=het(B().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new tC(this.gpgpu),this.numMBBeforeWarning=yet(),this.texData=new ra(this,go())}nextDataId(){return Eu.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}write(t,e,n){if((B().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||B().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:Hr.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(B().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:Hr.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 ro(a,Yc):m=new Zr(a,Yc);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=S.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 ro(o,Yc):d=new Zr(o,Yc);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(B().getBool("DEBUG")&&!B().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&B().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"&&B().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...ng(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=S.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;Ct(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)&&go().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 ro(s,Yc):f=new Zr(s,Yc);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=go().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 vt(t.shape,t.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return vt(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(B().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 B().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return B().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(B().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=get){return B().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 go().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new eC(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new Qw(t.shape),n=!0;return this.runWebGLProgram(e,[t],t.dtype,null,n)}packedReshape(t,e){let n=[gl(t.shape),...xl(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[gl(e),...xl(e)],i=new $d(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=ag(s),u;o?u=new Bw(a):u=new zw(a);let l=!0,c=[e!=null?e:ng(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:ng(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)<=B().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&&!_u(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=xL(t,c,p),f=this.getAndSaveBinary(m,()=>hL(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),B().get("ENGINE_COMPILE_ONLY")||gL(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=B().get("WEBGL_FLUSH_THRESHOLD");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!B().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||(B().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=G(()=>{if(!B().get("WEBGL_RENDER_FLOAT32_ENABLED")){let t=B().getBool("DEBUG");B().set("DEBUG",!1);let e=this.abs(mt(1e-8)).dataSync()[0];if(B().set("DEBUG",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?fet:det}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=KN(n,u),e.texShape=p),s!=null){let m=ag(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=ea(p[0],p[1])),u?f=new Uw(m,g):f=new Ww(m,g);let x=g?[h,d]:p,b=this.makeTensorInfo(x,o),w=this.texData.get(b.dataId);g?w.usage=Hr.PIXELS:w.usage=Hr.UPLOAD,w.texShape=x,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),d,h,s);let C=[[h,d]],T=!0,E=this.runWebGLProgram(f,[b],o,C,T),$=this.texData.get(E.dataId);e.texShape=$.texShape,e.isPacked=$.isPacked,e.usage=$.usage,B().get("ENGINE_COMPILE_ONLY")?this.disposeData(E.dataId):(e.texture=$.texture,e.values=null,this.texData.delete(E.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=bet(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 Th(),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?(Rw(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}=tk(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}}};Eu.nextDataId=0;function bet(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 Eu,2);var ike={forceHalfFloat:CM};var nC=` + `}};var Wtt=Wr.whereImpl,Utt=1e-7,Htt=1e-4,Mw={};function qtt(r){return r in Mw||(Mw[r]={}),Mw[r]}var Ktt=M().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),jtt=600;function Xtt(){return M().global.screen==null?1024:M().global.screen.height*M().global.screen.width*window.devicePixelRatio*jtt/1024/1024}var Eu=class extends Mo{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,!M().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=Bn(M().getNumber("WEBGL_VERSION"),t);e=new Bc(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Bn(M().getNumber("WEBGL_VERSION"));e=new Bc(n),this.binaryCache=qtt(M().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new Pw(this.gpgpu),this.numMBBeforeWarning=Xtt(),this.texData=new ta(this,ho())}nextDataId(){return Eu.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}write(t,e,n){if((M().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||M().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:Kr.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(M().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:Kr.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 no(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=S.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 no(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(M().getBool("DEBUG")&&!M().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&M().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"&&M().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...Wh(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=S.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)&&ho().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 no(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=ho().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(M().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 M().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return M().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(M().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=Ktt){return M().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 ho().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new Lw(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new Ow(t.shape),n=!0;return this.runWebGLProgram(e,[t],t.dtype,null,n)}packedReshape(t,e){let n=[hl(t.shape),...gl(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[hl(e),...gl(e)],i=new yd(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=Kh(s),u;o?u=new Iw(a):u=new Cw(a);let l=!0,c=[e!=null?e:Wh(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:Wh(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)<=M().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&&!Tu(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=tL(t,c,p),f=this.getAndSaveBinary(m,()=>JP(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),M().get("ENGINE_COMPILE_ONLY")||QP(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=M().get("WEBGL_FLUSH_THRESHOLD");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!M().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||(M().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(!M().get("WEBGL_RENDER_FLOAT32_ENABLED")){let t=M().getBool("DEBUG");M().set("DEBUG",!1);let e=this.abs(mt(1e-8)).dataSync()[0];if(M().set("DEBUG",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?Utt:Htt}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=$k(n,u),e.texShape=p),s!=null){let m=Kh(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=Ki(p[0],p[1])),u?f=new kw(m,g):f=new Nw(m,g);let x=g?[h,d]:p,b=this.makeTensorInfo(x,o),w=this.texData.get(b.dataId);g?w.usage=Kr.PIXELS:w.usage=Kr.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,M().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=Ytt(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 ph(),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?(hw(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}=Mk(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}}};Eu.nextDataId=0;function Ytt(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 Eu,2);var oTe={forceHalfFloat:sM};var bd=` if (isnan(a)) return a; if (isnan(b)) return b; -`;var no=class{constructor(t,e,n){this.variableNames=["A","B"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.enableShapeUniforms=ve(this.outputShape.length),this.userCode=` +`;var oo=class{constructor(t,e,n){this.variableNames=["A","B"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.enableShapeUniforms=we(this.outputShape.length),this.userCode=` float binaryOperation(float a, float b) { ${t} } @@ -1256,17 +1256,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float b = getBAtOutCoords(); setOutput(binaryOperation(a, b)); } - `}};var Au=` - result.r = isNaN.r > 0. ? NAN : result.r; - result.g = isNaN.g > 0. ? NAN : result.g; - result.b = isNaN.b > 0. ? NAN : result.b; - result.a = isNaN.a > 0. ? NAN : result.a; -`;var Fo=class{constructor(t,e,n,o=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=S.assertAndGetBroadcastShape(e,n);let s=this.outputShape.length;this.enableShapeUniforms=ve(s);let i="";if(o)if(s===0||y.sizeFromShape(this.outputShape)===1)i=` + `}};var ji=` + result.r = isNaN.r ? NAN : result.r; + result.g = isNaN.g ? NAN : result.g; + result.b = isNaN.b ? NAN : result.b; + result.a = isNaN.a ? NAN : result.a; +`;var Fo=class{constructor(t,e,n,o=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=S.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=` result.y = 0.; result.z = 0.; result.w = 0.; `;else if(i=` - ${Wt(s)} coords = getOutputCoords(); + ${zt(s)} coords = getOutputCoords(); `,s===1)this.enableShapeUniforms?i+=` result.y = (coords + 1) >= outShape ? 0. : result.y; result.z = 0.; @@ -1275,7 +1275,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y; result.z = 0.; result.w = 0.; - `;else{let u=tr("coords",s);this.enableShapeUniforms?i+=` + `;else{let u=Qe("coords",s);this.enableShapeUniforms?i+=` bool nextRowOutOfBounds = (${u[s-2]} + 1) >= outShape[${s} - 2]; bool nextColOutOfBounds = @@ -1305,21 +1305,13 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function er(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 vM={kernelName:uo,backendName:"webgl",kernelFunc:er};function An(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=er({inputs:{x:n},backend:e}),u=er({inputs:{x:o},backend:e});return i.complexTensorInfos={real:a,imag:u},s}var IM={kernelName:Np,backendName:"webgl",kernelFunc:An};var wk="return (a < 0.) ? b * a : a;",Ck=` + `}};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 iM={kernelName:lo,backendName:"webgl",kernelFunc:tr};function Tn(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 aM={kernelName:pp,backendName:"webgl",kernelFunc:Tn};var oT="return (a < 0.) ? b * a : a;",sT=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function wet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],"float32",y.createScalarValue(s,"float32")),a=B().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Fo(Ck,o.shape,i.shape):new no(wk,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],"float32");return e.disposeIntermediateTensorInfo(i),u}var SM={kernelName:ms,backendName:"webgl",kernelFunc:wet};var vk="return (a < 0.) ? b * a : a;",Ik=` +`;function Ztt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],"float32",y.createScalarValue(s,"float32")),a=M().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Fo(sT,o.shape,i.shape):new oo(oT,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],"float32");return e.disposeIntermediateTensorInfo(i),u}var lM={kernelName:ss,backendName:"webgl",kernelFunc:Ztt};var iT="return (a < 0.) ? b * a : a;",aT=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function Cet(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=B().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Fo(Ik,n.shape,o.shape):new no(vk,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],"float32")}var TM={kernelName:Ts,backendName:"webgl",kernelFunc:Cet};var Oo="if (isnan(x)) return x;",NM=` - if (isnan(a)) return a; - if (isnan(b)) return b; -`,kM=` - result.r = isNaN.r > 0. ? NAN : result.r; - result.g = isNaN.g > 0. ? NAN : result.g; - result.b = isNaN.b > 0. ? NAN : result.b; - result.a = isNaN.a > 0. ? NAN : result.a; -`;function It({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=B().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,c;return l?c=new ro(i.shape,t):c=new Zr(i.shape,r),a.runWebGLProgram(c,[i],u)}}function ce({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,T]=w,E={dataId:C.dataId,dtype:C.dtype,shape:u.shape},$={dataId:T.dataId,dtype:T.dtype,shape:l.shape},D=new no(r,u.shape,l.shape);return c.runWebGLProgram(D,[E,$],ir(C.dtype,T.dtype))}),b=An({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||ir(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"?S.fromUint8ToStringArray(d):d,x=u.dtype==="string"?S.fromUint8ToStringArray(h):h,[b,w]=o(u.shape,l.shape,g,x,p),C=c.makeTensorInfo(w,p),T=c.texData.get(C.dataId);return T.values=b,C}let m=B().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,f;return m?f=new Fo(t,u.shape,l.shape,e):f=new no(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function yl(r,t=!1){if(r==="linear")return t?hM:uM;if(r==="relu")return t?xM:pM;if(r==="elu")return t?gM:cM;if(r==="relu6")return t?yM:mM;if(r==="prelu")return t?Ik:vk;if(r==="leakyrelu")return t?Ck:wk;if(r==="sigmoid")return t?bM:fM;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var Dd=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=ve(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) { +`;function Jtt(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=M().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Fo(aT,n.shape,o.shape):new oo(iT,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],"float32")}var uM={kernelName:ys,backendName:"webgl",kernelFunc:Jtt};var Oo="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=M().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,c;return l?c=new no(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 oo(r,u.shape,l.shape);return c.runWebGLProgram($,[_,A],or(C.dtype,N.dtype))}),b=Tn({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||or(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"?S.fromUint8ToStringArray(d):d,x=u.dtype==="string"?S.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=M().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,f;return m?f=new Fo(t,u.shape,l.shape,e):f=new oo(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function xl(r,t=!1){if(r==="linear")return t?QL:KL;if(r==="relu")return t?eM:XL;if(r==="elu")return t?tM:jL;if(r==="relu6")return t?rM:YL;if(r==="prelu")return t?aT:iT;if(r==="leakyrelu")return t?sT:oT;if(r==="sigmoid")return t?nM:ZL;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var wd=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) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${a} }`:l?g=`vec4 activation(vec4 a) { @@ -1358,7 +1350,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};var Sk={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},ug=class{constructor(t,e,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.userCode=` + `}};var lT={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},Xh=class{constructor(t,e,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.userCode=` float binaryOpComplex( float areal, float aimag, float breal, float bimag) { ${t} @@ -1371,7 +1363,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } - `}};var _M="return a * b;";function cg(r){let{inputs:t,backend:e}=r,{a:n,b:o}=t,s=S.upcastType(n.dtype,o.dtype);if(n.dtype==="complex64"){let a=e.texData.get(n.dataId),u=e.texData.get(o.dataId),l=new ug(Sk.REAL,n.shape,o.shape),c=new ug(Sk.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=An({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]=ML(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 B().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new Fo(_M,n.shape,o.shape):i=new no(_M,n.shape,o.shape),e.runWebGLProgram(i,[n,o],s)}var EM={kernelName:Cs,backendName:"webgl",kernelFunc:cg};function AM(r,t,e){let n=[gl(r.shape),...xl(r.shape)],o={dtype:r.dtype,shape:n,dataId:r.dataId},s=[gl(t),...xl(t)],i=new $d(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 lt(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&&!_u(o.shape,u)&&!(c.texture!==null&&_u(c.shape,u))?AM(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var $M={kernelName:bi,backendName:"webgl",kernelFunc:lt};var pg=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 cM="return a * b;";function Yh(r){let{inputs:t,backend:e}=r,{a:n,b:o}=t,s=S.upcastType(n.dtype,o.dtype);if(n.dtype==="complex64"){let a=e.texData.get(n.dataId),u=e.texData.get(o.dataId),l=new Xh(lT.REAL,n.shape,o.shape),c=new Xh(lT.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=Tn({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]=CL(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 M().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new Fo(cM,n.shape,o.shape):i=new oo(cM,n.shape,o.shape),e.runWebGLProgram(i,[n,o],s)}var pM={kernelName:ds,backendName:"webgl",kernelFunc:Yh};function mM(r,t,e){let n=[hl(r.shape),...gl(r.shape)],o={dtype:r.dtype,shape:n,dataId:r.dataId},s=[hl(t),...gl(t)],i=new yd(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 st(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&&!Tu(o.shape,u)&&!(c.texture!==null&&Tu(c.shape,u))?mM(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var fM={kernelName:mi,backendName:"webgl",kernelFunc:st};var Zh=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; } @@ -1424,7 +1416,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(sumValue); } - `}};var oC=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=` + `}};var zw=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=` if (${e==="sum"}) { sumValue += dot(values, ones); } else if (${e==="prod"}) { @@ -1516,12 +1508,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${l}); } - `}};function Iet(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=S.computeOptimalWindowSize(e);t.push({inSize:e,windowSize:n,outSize:Math.ceil(e/n)})}return t}function Un(r,t,e,n){let o=Iet(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=Wt(this.rank),s=yk("rc",this.rank),i=new Array(this.rank);for(let c=0;c6)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=rT("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 T=e?[x,p,f]:[x,f,p],E=n?[b,d,m]:[b,m,d],$=lt({inputs:{x:r},backend:o,attrs:{shape:T}}),D=lt({inputs:{x:t},backend:o,attrs:{shape:E}}),P=[$,D],M=Math.max(x,b),W=e?$.shape[1]:$.shape[2],H=s!=null,q=i!=null,X=u==="leakyrelu",j=u!=null?yl(u,!0):null,Z=H||q||X||j!=null,et;if((f===1||d===1)&&W>Tk&&Z===!1){let ot=$,st=D;e&&(ot=Le({inputs:{x:$},backend:o,attrs:{perm:[0,2,1]}}),P.push(ot)),n&&(st=Le({inputs:{x:D},backend:o,attrs:{perm:[0,2,1]}}),P.push(st));let it=d!==1,pt=d===1,at=ot;it&&(at=lt({inputs:{x:ot},backend:o,attrs:{shape:[M,W,1]}}),P.push(at));let gt=d===1?2:1,dt=st;pt&&(dt=lt({inputs:{x:st},backend:o,attrs:{shape:[M,1,W]}}),P.push(dt));let bt=cg({inputs:{a:at,b:dt},backend:o});et=Zc({inputs:{x:bt},backend:o,attrs:{axis:gt,keepDims:!0}}),P.push(bt)}else{let ot=ir(r.dtype,t.dtype),st=new Dd(T,E,[M,f,d],e,n,H,j,q,X),it=[$,D];if(s!=null&&it.push(s),q&&it.push(i),X){let pt=o.makeTensorInfo([],"float32",y.createScalarValue(a,"float32"));it.push(pt),P.push(pt)}et=o.runWebGLProgram(st,it,ot)}let K=lt({inputs:{x:et},backend:o,attrs:{shape:C}});P.push(et);for(let ot of P)o.disposeIntermediateTensorInfo(ot);return K}function Net(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 Jc({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var OM={kernelName:Ni,backendName:"webgl",kernelFunc:Net};var PM="return abs(x);";function ket(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=Zw(s.values);return e.makeTensorInfo(n.shape,n.dtype,i)}let o;return B().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new ro(n.shape,PM):o=new Zr(n.shape,PM),e.runWebGLProgram(o,[n],n.dtype)}var LM={kernelName:pi,backendName:"webgl",kernelFunc:ket};var _et=fr+` + `}};function _u(r,t,e){let n=M().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Vw(r.shape,t):new Bw(r.shape,t);return e.runWebGLProgram(n,[r],r.dtype)}function dM(r,t,e,n){let o=t,s=r.shape.length,i=y.parseAxisParam(o,r.shape),a=i,u=S.getAxesPermutation(a,s),l=u!=null,c=r;l&&(c=_u(r,u,n),a=S.getInnerMostAxes(a.length,s)),S.assertAxesAreInnerMostDims("sum",a,s);let[p,m]=S.computeOutAndReduceShapes(c.shape,a),f=p;e&&(f=S.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=Gu(r.dtype),w=Gn(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 dM(o,s,i,e)}var hM={kernelName:As,backendName:"webgl",kernelFunc:Wc};function Fe(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?xl(u,!0):null,j=G||W||q||H!=null,Y;if((f===1||d===1)&&V>uT&&j===!1){let et=A,rt=$;e&&(et=Fe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(rt=Fe({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=Yh({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=or(r.dtype,t.dtype),rt=new wd(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 ret(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 xM={kernelName:bi,backendName:"webgl",kernelFunc:ret};var yM="return abs(x);";function net(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=Rw(s.values);return e.makeTensorInfo(n.shape,n.dtype,i)}let o;return M().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new no(n.shape,yM):o=new tn(n.shape,yM),e.runWebGLProgram(o,[n],n.dtype)}var bM={kernelName:oi,backendName:"webgl",kernelFunc:net};var oet=pr+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,Eet=It({opSnippet:_et}),MM={kernelName:oa,backendName:"webgl",kernelFunc:Eet};var Aet=fr+` +`,set=Ct({opSnippet:oet}),wM={kernelName:ra,backendName:"webgl",kernelFunc:set};var iet=pr+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,$et=It({opSnippet:Aet}),zM={kernelName:sa,backendName:"webgl",kernelFunc:$et};var BM="return a + b;",Det=ce({opSnippet:BM,packedOpSnippet:BM,supportsComplex:!0,cpuKernelImpl:yL}),VM={kernelName:jn,backendName:"webgl",kernelFunc:Det};var aC=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=` +return log(x + sqrt(x * x - 1.0));`,aet=Ct({opSnippet:iet}),CM={kernelName:na,backendName:"webgl",kernelFunc:aet};var IM="return a + b;",uet=le({opSnippet:IM,packedOpSnippet:IM,supportsComplex:!0,cpuKernelImpl:eL}),vM={kernelName:Yn,backendName:"webgl",kernelFunc:uet};var Gw=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=` void main() { ${n.join(` `)} @@ -1553,7 +1545,7 @@ return log(x + sqrt(x * x - 1.0));`,$et=It({opSnippet:Aet}),zM={kernelName:sa,ba float result = ${o}; setOutput(result); } - `}};var lC=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=` + `}};var Ww=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=` void main() { ${n.join(` `)} @@ -1561,7 +1553,7 @@ return log(x + sqrt(x * x - 1.0));`,$et=It({opSnippet:Aet}),zM={kernelName:sa,ba vec4 result = ${o}; setOutput(result); } - `}};function uC(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return er({inputs:{x:n[0]},backend:e});if(n.length>B().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let u=Math.floor(n.length/2),l=uC({inputs:n.slice(0,u),backend:e}),c=uC({inputs:n.slice(u),backend:e});return uC({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>ir(u,l)),s=n.map(u=>u.shape),a=B().getBool("WEBGL_PACK")?new lC(n[0].shape,s):new aC(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var GM={kernelName:jo,backendName:"webgl",kernelFunc:uC};function Ret(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=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Le({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims("all",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=lt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Un(h,h.dtype,"all",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=lt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=lt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var WM={kernelName:ia,backendName:"webgl",kernelFunc:Ret};function Fet(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=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Le({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims("any",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=lt({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Un(h,h.dtype,"any",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=lt({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=lt({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var UM={kernelName:aa,backendName:"webgl",kernelFunc:Fet};var cC=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 Uw(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return tr({inputs:{x:n[0]},backend:e});if(n.length>M().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let u=Math.floor(n.length/2),l=Uw({inputs:n.slice(0,u),backend:e}),c=Uw({inputs:n.slice(u),backend:e});return Uw({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>or(u,l)),s=n.map(u=>u.shape),a=M().getBool("WEBGL_PACK")?new Ww(n[0].shape,s):new Gw(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var SM={kernelName:Vo,backendName:"webgl",kernelFunc:Uw};function cet(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=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Fe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims("all",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=st({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Gn(h,h.dtype,"all",e),x;if(i){let b=S.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 NM={kernelName:oa,backendName:"webgl",kernelFunc:cet};function pet(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=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Fe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims("any",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=st({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Gn(h,h.dtype,"any",e),x;if(i){let b=S.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 kM={kernelName:sa,backendName:"webgl",kernelFunc:pet};var Hw=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]; @@ -1581,14 +1573,14 @@ return log(x + sqrt(x * x - 1.0));`,$et=It({opSnippet:Aet}),zM={kernelName:sa,ba } setOutput(float(bestIndex)); } - `}};var pC=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=Wt(u),c=tr("coords",u),p,m;if(i===1){m=u+1;let D=Wt(m);p=` - ${D} sourceLocR = ${D}(${c.join()}, 0); + `}};var qw=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=` + ${$} sourceLocR = ${$}(${c.join()}, 0); ++${c[u-1]}; - ${D} sourceLocG = ${D}(${c.join()}, 0); + ${$} sourceLocG = ${$}(${c.join()}, 0); ++${c[u-2]}; - ${D} sourceLocA = ${D}(${c.join()}, 0); + ${$} sourceLocA = ${$}(${c.join()}, 0); --${c[u-1]}; - ${D} sourceLocB = ${D}(${c.join()}, 0); + ${$} sourceLocB = ${$}(${c.join()}, 0); --${c[u-2]};`}else m=u,p=` ${l} sourceLocR = coords; ++${c[u-1]}; @@ -1597,15 +1589,15 @@ return log(x + sqrt(x * x - 1.0));`,$et=It({opSnippet:Aet}),zM={kernelName:sa,ba ${l} sourceLocA = coords; --${c[u-1]}; ${l} sourceLocB = coords; - --${c[u-2]};`;let f=["x","y","z","w","u","v"].slice(0,m),d="."+f[m-1],h=f.map(D=>"int "+D),g=tr("sourceLocR",m-1).concat("inIdx.r"),x=tr("sourceLocG",m-1).concat("inIdx.g"),b=tr("sourceLocB",m-1).concat("inIdx.b"),w=tr("sourceLocA",m-1).concat("inIdx.a"),C=n==="max"?"greaterThan":"lessThan",T=o?"":` + --${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?"":` inIdx = round(vec4(getBestIndicesAChannel(${g.join()}), getBestIndicesAChannel(${x.join()}), getBestIndicesAChannel(${b.join()}), - getBestIndicesAChannel(${w.join()})));`,E=`vec4( + getBestIndicesAChannel(${w.join()})));`,_=`vec4( getAChannel(${g.join()}), hasNextCol ? getAChannel(${x.join()}) : 0., hasNextRow ? getAChannel(${b.join()}) : 0., - hasNextRow && hasNextCol ? getAChannel(${w.join()}) : 0.)`,$=o?"":` + hasNextRow && hasNextCol ? getAChannel(${w.join()}) : 0.)`,A=o?"":` float getBestIndicesAChannel(${h.join()}) { return getChannel(getBestIndicesA(${f.join()}), vec2(${f.slice(-2).join()})); @@ -1614,7 +1606,7 @@ return log(x + sqrt(x * x - 1.0));`,$et=It({opSnippet:Aet}),zM={kernelName:sa,ba return getChannel(getA(${f.join()}), vec2(${f.slice(-2).join()})); } - ${$} + ${A} void main() { ${l} coords = getOutputCoords(); bool hasNextCol = ${c[u-1]} < ${a[u-1]-1}; @@ -1624,12 +1616,12 @@ return log(x + sqrt(x * x - 1.0));`,$et=It({opSnippet:Aet}),zM={kernelName:sa,ba sourceLocB${d}, sourceLocA${d}) * ${e}; ivec4 inIdx = srcIdx; vec4 bestIndex = vec4(inIdx); - vec4 bestValue = ${E}; + vec4 bestValue = ${_}; for (int i = 0; i < ${e}; i++) { inIdx = srcIdx; - ${T} - vec4 candidate = ${E}; + ${N} + vec4 candidate = ${_}; bvec4 nan = isnan(candidate); bvec4 replace = bvec4( vec4(${C}(candidate, bestValue)) * (vec4(1.0) - vec4(nan))); @@ -1643,23 +1635,25 @@ return log(x + sqrt(x * x - 1.0));`,$et=It({opSnippet:Aet}),zM={kernelName:sa,ba } setOutput(bestIndex); } - `}};function HM(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=S.computeOptimalWindowSize(s),a={windowSize:i,inSize:s,batchSize:o,outSize:Math.ceil(s/i)},u=new cC(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=HM(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function qM(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=S.computeOptimalWindowSize(s),a=new pC(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=qM(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function mC(r,t,e,n){let o=[e];if(S.assertAxesAreInnerMostDims("arg"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!B().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]=S.computeOutAndReduceShapes(u.shape,o),p=y.sizeFromShape(c),m=lt({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=HM(r,m,n);s.push(f);let d=lt({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return qM(r,t,n)}function Oet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Le({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims("argMax",[i[0]],u.shape.length);let c=mC(e,u,i[0],"max");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var KM={kernelName:Xo,backendName:"webgl",kernelFunc:Oet};function Pet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Le({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims("argMin",[i[0]],u.shape.length);let c=mC(e,u,i[0],"min");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var jM={kernelName:Nl,backendName:"webgl",kernelFunc:Pet};var Let=fr+` + `}};function TM(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=S.computeOptimalWindowSize(s),a={windowSize:i,inSize:s,batchSize:o,outSize:Math.ceil(s/i)},u=new Hw(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=TM(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function EM(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=S.computeOptimalWindowSize(s),a=new qw(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=EM(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function Kw(r,t,e,n){let o=[e];if(S.assertAxesAreInnerMostDims("arg"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!M().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]=S.computeOutAndReduceShapes(u.shape,o),p=y.sizeFromShape(c),m=st({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=TM(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 EM(r,t,n)}function met(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Fe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims("argMax",[i[0]],u.shape.length);let c=Kw(e,u,i[0],"max");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var _M={kernelName:Go,backendName:"webgl",kernelFunc:met};function fet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Fe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims("argMin",[i[0]],u.shape.length);let c=Kw(e,u,i[0],"min");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var AM={kernelName:Nl,backendName:"webgl",kernelFunc:fet};var det=pr+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,Met=It({opSnippet:Let}),XM={kernelName:la,backendName:"webgl",kernelFunc:Met};var zet=fr+"return log(x + sqrt(x * x + 1.0));",Bet=It({opSnippet:zet}),YM={kernelName:ua,backendName:"webgl",kernelFunc:Bet};var Vet=fr+` +`,het=Ct({opSnippet:det}),$M={kernelName:ia,backendName:"webgl",kernelFunc:het};var get=pr+"return log(x + sqrt(x * x + 1.0));",xet=Ct({opSnippet:get}),DM={kernelName:aa,backendName:"webgl",kernelFunc:xet};var yet=pr+` return atan(x); -`,Get=It({opSnippet:Vet}),ZM={kernelName:ca,backendName:"webgl",kernelFunc:Get};var Wet=NM+` +`,bet=Ct({opSnippet:yet}),RM={kernelName:la,backendName:"webgl",kernelFunc:bet};var wet=bd+` return atan(a, b); -`,Uet=` +`,Cet=` vec4 result = atan(a, b); - vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); - `+kM+` + bvec4 isNaNA = isnan(a); + bvec4 isNaNB = isnan(b); + bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); + `+ji+` return result; -`,Het=ce({opSnippet:Wet,packedOpSnippet:Uet}),JM={kernelName:ma,backendName:"webgl",kernelFunc:Het};var qet=fr+` +`,Iet=le({opSnippet:wet,packedOpSnippet:Cet}),FM={kernelName:ca,backendName:"webgl",kernelFunc:Iet};var vet=pr+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelName:pa,backendName:"webgl",kernelFunc:Ket};var ii=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 D=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Net=Ct({opSnippet:vet}),OM={kernelName:ua,backendName:"webgl",kernelFunc:Net};var Qs=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=` const ivec2 strides = ivec2(${a}, ${u}); const ivec2 pads = ivec2(${f}, ${d}); @@ -1701,7 +1695,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN // use the current value. float currMinMaxValue = mix( value, minMaxValue, minMaxValueFound); - if (value ${D} currMinMaxValue) { + if (value ${$} currMinMaxValue) { minMaxValue = value; minMaxValueFound = 1.0; minMaxPosition = ${o?s?g:x:`wR * ${m} + wC`}; @@ -1710,7 +1704,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } setOutput(float(minMaxPosition)); } - `;return}let w="max",C=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e==="avg"&&(C="avgValue / count");let T=Math.floor(i/4)*4,E=i%4,$=` + `;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=` if (${h}) { avgValue += dot(values, ones); } else { @@ -1755,7 +1749,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN continue; } - for (int wC = 0; wC < ${T}; wC += 4) { + for (int wC = 0; wC < ${N}; wC += 4) { int xC = xCCorner + wC * ${c}; vec4 values = vec4( @@ -1765,11 +1759,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN getValue(batch, xR, xC + 3 * ${c}, d) ); - ${$} + ${A} } - int xC = xCCorner + ${T}; - if (${E===1}) { + int xC = xCCorner + ${N}; + if (${_===1}) { vec4 values = vec4( getValue(batch, xR, xC, d), initializationValue, @@ -1777,8 +1771,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN initializationValue ); - ${$} - } else if (${E===2}) { + ${A} + } else if (${_===2}) { vec4 values = vec4( getValue(batch, xR, xC, d), getValue(batch, xR, xC + ${c}, d), @@ -1786,8 +1780,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN initializationValue ); - ${$} - } else if (${E===3}) { + ${A} + } else if (${_===3}) { vec4 values = vec4( getValue(batch, xR, xC, d), getValue(batch, xR, xC + ${c}, d), @@ -1795,12 +1789,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN initializationValue ); - ${$} + ${A} } } setOutput(${C}); } - `}},Du=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 M=">=";this.userCode=` + `}},Au=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=` const ivec3 strides = ivec3(${a}, ${u}, ${l}); const ivec3 pads = ivec3(${g}, ${x}, ${b}); @@ -1851,7 +1845,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN // use the current value. float currMinMaxValue = mix( value, minMaxValue, minMaxValueFound); - if (value ${M} currMinMaxValue) { + if (value ${P} currMinMaxValue) { minMaxValue = value; minMaxValueFound = 1.0; 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} + @@ -1862,11 +1856,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } setOutput(float(minMaxPosition)); } - `;return}let T="max",E=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e==="avg"&&(E="avgValue / count");let $=Math.floor(i/4)*4,D=i%4,P=` + `;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=` if (${w}) { avgValue += dot(values, ones); } else { - minMaxValue = ${T}(values, minMaxValue); + minMaxValue = ${N}(values, minMaxValue); } `;this.userCode=` const ivec3 strides = @@ -1917,7 +1911,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN continue; } - for (int wC = 0; wC < ${$}; wC += 4) { + for (int wC = 0; wC < ${A}; wC += 4) { int xC = xCCorner + wC * ${m}; vec4 values = vec4( @@ -1927,11 +1921,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN getValue(batch, xD, xR, xC + 3 * ${m}, ch) ); - ${P} + ${F} } - int xC = xCCorner + ${$}; - if (${D===1}) { + int xC = xCCorner + ${A}; + if (${$===1}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), initializationValue, @@ -1939,8 +1933,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN initializationValue ); - ${P} - } else if (${D===2}) { + ${F} + } else if (${$===2}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), getValue(batch, xD, xR, xC + ${m}, ch), @@ -1948,8 +1942,8 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN initializationValue ); - ${P} - } else if (${D===3}) { + ${F} + } else if (${$===3}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), getValue(batch, xD, xR, xC + ${m}, ch), @@ -1957,13 +1951,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN initializationValue ); - ${P} + ${F} } } - setOutput(${E}); + setOutput(${_}); } } - `}};function jet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;oi(o,"avgPool");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return er({inputs:{x:o},backend:e});let p=new ii(c,"avg",!1);return e.runWebGLProgram(p,[o],"float32")}var tz={kernelName:Yo,backendName:"webgl",kernelFunc:jet};function Xet(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=S.computePool3DInfo(o.shape,s,i,c,a,u,l),m=new Du(p,"avg",!1);return e.runWebGLProgram(m,[o],"float32")}var ez={kernelName:kl,backendName:"webgl",kernelFunc:Xet};var fC=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=` + `}};function ket(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;Zs(o,"avgPool");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.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 Qs(c,"avg",!1);return e.runWebGLProgram(p,[o],"float32")}var PM={kernelName:Wo,backendName:"webgl",kernelFunc:ket};function Tet(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=S.computePool3DInfo(o.shape,s,i,c,a,u,l),m=new Au(p,"avg",!1);return e.runWebGLProgram(m,[o],"float32")}var LM={kernelName:kl,backendName:"webgl",kernelFunc:Tet};var jw=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=` const ivec2 pads = ivec2(${c}, ${p}); const float avgMultiplier = float(${m}); @@ -2005,7 +1999,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } setOutput(dotProd); } - `}},dC=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=` + `}},Xw=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=` const ivec3 pads = ivec3(${d}, ${h}, ${g}); const float avgMultiplier = float(${x}); @@ -2061,7 +2055,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } setOutput(dotProd); } - `}};function Yet(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=S.computePool3DInfo(i.shape,a,u,p,l,c),f=new dC(m);return e.runWebGLProgram(f,[o],i.dtype)}var rz={kernelName:Ip,backendName:"webgl",kernelFunc:Yet};function Zet(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;oi([o,s],"avgPoolGrad");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=new fC(c);return e.runWebGLProgram(p,[o],i.dtype)}var nz={kernelName:vp,backendName:"webgl",kernelFunc:Zet};function Jet(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;return Jc({a:o,b:s,transposeA:i,transposeB:a,backend:e})}var oz={kernelName:Zo,backendName:"webgl",kernelFunc:Jet};var hC=class{constructor(t,e,n,o,s,i){this.outputShape=[],this.variableNames=["x","mean","variance"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a="0.0";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let u="1.0";s!=null&&(S.assertAndGetBroadcastShape(t,s),this.variableNames.push("scale"),u="getScaleAtOutCoords()"),this.outputShape=t,this.userCode=` + `}};function Eet(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=S.computePool3DInfo(i.shape,a,u,p,l,c),f=new Xw(m);return e.runWebGLProgram(f,[o],i.dtype)}var MM={kernelName:lp,backendName:"webgl",kernelFunc:Eet};function _et(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;Zs([o,s],"avgPoolGrad");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=new jw(c);return e.runWebGLProgram(p,[o],i.dtype)}var zM={kernelName:ap,backendName:"webgl",kernelFunc:_et};function Aet(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 BM={kernelName:Uo,backendName:"webgl",kernelFunc:Aet};var Yw=class{constructor(t,e,n,o,s,i){this.outputShape=[],this.variableNames=["x","mean","variance"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a="0.0";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let u="1.0";s!=null&&(S.assertAndGetBroadcastShape(t,s),this.variableNames.push("scale"),u="getScaleAtOutCoords()"),this.outputShape=t,this.userCode=` void main() { float x = getXAtOutCoords(); float mean = getMeanAtOutCoords(); @@ -2071,7 +2065,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN float inv = scale * inversesqrt(variance + float(${i})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}};var gC=class{constructor(t,e,n,o,s,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a="vec4(0.0)";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let u="vec4(1.0)";s!=null&&(S.assertAndGetBroadcastShape(t,s),this.variableNames.push("scale"),u="getScaleAtOutCoords()"),this.outputShape=t,this.userCode=` + `}};var Zw=class{constructor(t,e,n,o,s,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a="vec4(0.0)";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let u="vec4(1.0)";s!=null&&(S.assertAndGetBroadcastShape(t,s),this.variableNames.push("scale"),u="getScaleAtOutCoords()"),this.outputShape=t,this.userCode=` void main() { vec4 offset = ${a}; vec4 scale = ${u}; @@ -2084,7 +2078,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN setOutput((x - mean) * inv + offset); } - `}};var Qet=({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=B().getBool("WEBGL_PACK_NORMALIZATION")?new gC(n.shape,o.shape,s.shape,c,p,u):new hC(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},sz={kernelName:cs,backendName:"webgl",kernelFunc:Qet};var xC=class{constructor(t){this.variableNames=["source"],this.outputShape=t,this.rank=t.length;let e=Wt(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=trt(this.rank),o,s=t.map((i,a)=>`sourceLoc.${Nk[a]} = start[${a}] + coords.${Nk[a]};`);o=` + `}};var $et=({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=M().getBool("WEBGL_PACK_NORMALIZATION")?new Zw(n.shape,o.shape,s.shape,c,p,u):new Yw(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},VM={kernelName:ns,backendName:"webgl",kernelFunc:$et};var Jw=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=Det(this.rank),o,s=t.map((i,a)=>`sourceLoc.${cT[a]} = start[${a}] + coords.${cT[a]};`);o=` ${e} sourceLoc; ${e} coords = getOutputCoords(); ${s.join(` @@ -2094,7 +2088,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN ${o} setOutput(getSource(${n})); } - `}},Nk=["x","y","z","w","u","v"];function trt(r){if(r===1)return"sourceLoc";if(r<=6)return Nk.slice(0,r).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${r} is not yet supported`)}var yC=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=Wt(this.rank),n=tr("coords",this.rank),o=tr("sourceLoc",this.rank),s=this.rank===1?"sourceLoc":`vec2(${o.slice(-2).join()})`,i=`getChannel(getSource(${o.join()}), ${s})`,a=` + `}},cT=["x","y","z","w","u","v"];function Det(r){if(r===1)return"sourceLoc";if(r<=6)return cT.slice(0,r).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${r} is not yet supported`)}var Qw=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=` result.x = ${i}; if (++${n[this.rank-1]} < ${t[this.rank-1]}) { ++${o[this.rank-1]}; @@ -2123,7 +2117,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN ${u} setOutput(result); } - `}};function ert(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=Be.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 ai(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=Be.parseSliceParams(o,s,i);if(Be.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=KL(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=Be.isSliceContinous(o.shape,a,u);if(l||!c){let p=B().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new yC(u):new xC(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),ert(o,a,u,e)}var iz={kernelName:Ci,backendName:"webgl",kernelFunc:ai};var rrt=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=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=[],d=lt({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Le({inputs:{x:d},backend:e,attrs:{perm:l}}),g=lt({inputs:{x:h},backend:e,attrs:{shape:c}}),x=ai({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},az={kernelName:mi,backendName:"webgl",kernelFunc:rrt};function nrt(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=Yw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var lz={kernelName:Sp,backendName:"webgl",kernelFunc:nrt};function ort(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.readSync(n.dataId),i=e.readSync(o.dataId),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],"int32",Int32Array.from(a))}var uz={kernelName:Tp,backendName:"webgl",kernelFunc:ort};var srt="return float(a != b);",kk=ce({opSnippet:srt,cpuKernelImpl:BL,dtype:"bool"}),cz={kernelName:Da,backendName:"webgl",kernelFunc:kk};function bl(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return er({inputs:{x:o.complexTensorInfos.real},backend:e})}var pz={kernelName:qp,backendName:"webgl",kernelFunc:bl};var irt="return float(int(x));";function mz(r,t){let e=new Zr(r.shape,irt),n=t.runWebGLProgram(e,[r],"int32");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function _k(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s==="complex64"){if(o.dtype==="complex64")return er({inputs:{x:o},backend:e});let i=_e(o.shape),a=_k({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),u=An({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype==="complex64"){let i=bl({inputs:{input:o},backend:e}),a=_k({inputs:{x:i},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(i),a}if(!y.hasEncodingLoss(o.dtype,s)){let i=er({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]=wL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s==="int32")return mz(o,e);if(s==="bool"){let i=e.makeTensorInfo([],"bool",y.getTypedArrayFromDType("bool",1)),u=kk({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 fz={kernelName:ao,backendName:"webgl",kernelFunc:_k};var dz="return ceil(x);",art=It({opSnippet:dz,packedOpSnippet:dz,cpuKernelImpl:CL}),hz={kernelName:Jo,backendName:"webgl",kernelFunc:art};var bC=class{constructor(t){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=t,this.userCode=` + `}};function Ret(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=Pe.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 ti(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=Pe.parseSliceParams(o,s,i);if(Pe.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=$L(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=Pe.isSliceContinous(o.shape,a,u);if(l||!c){let p=M().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Qw(u):new Jw(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),Ret(o,a,u,e)}var GM={kernelName:di,backendName:"webgl",kernelFunc:ti};var Fet=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=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=[],d=st({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Fe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=st({inputs:{x:h},backend:e,attrs:{shape:c}}),x=ti({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},WM={kernelName:si,backendName:"webgl",kernelFunc:Fet};function Oet(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=Dw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var UM={kernelName:up,backendName:"webgl",kernelFunc:Oet};function Pet(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.readSync(n.dataId),i=e.readSync(o.dataId),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],"int32",Int32Array.from(a))}var HM={kernelName:cp,backendName:"webgl",kernelFunc:Pet};var Let="return float(a != b);",pT=le({opSnippet:Let,cpuKernelImpl:vL,dtype:"bool"}),qM={kernelName:Aa,backendName:"webgl",kernelFunc:pT};function yl(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 KM={kernelName:Dp,backendName:"webgl",kernelFunc:yl};var Met="return float(int(x));";function jM(r,t){let e=new tn(r.shape,Met),n=t.runWebGLProgram(e,[r],"int32");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function mT(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=mT({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),u=Tn({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype==="complex64"){let i=yl({inputs:{input:o},backend:e}),a=mT({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]=nL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s==="int32")return jM(o,e);if(s==="bool"){let i=e.makeTensorInfo([],"bool",y.getTypedArrayFromDType("bool",1)),u=pT({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 XM={kernelName:io,backendName:"webgl",kernelFunc:mT};var YM="return ceil(x);",zet=Ct({opSnippet:YM,packedOpSnippet:YM,cpuKernelImpl:oL}),ZM={kernelName:Ho,backendName:"webgl",kernelFunc:zet};var tC=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(); @@ -2134,7 +2128,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN setOutput(clamp(value, minVal, maxVal)); } - `}};var wC=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=` + `}};var eC=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=` void main() { vec4 value = getAAtOutCoords(); @@ -2145,7 +2139,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}};function lrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;B().getBool("WEBGL_PACK_CLIP")?a=new wC(o.shape):a=new bC(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var gz={kernelName:lo,backendName:"webgl",kernelFunc:lrt};var CC=class{constructor(t){this.variableNames=["real","imag"],this.outputShape=t,this.userCode=` + `}};function Bet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;M().getBool("WEBGL_PACK_CLIP")?a=new eC(o.shape):a=new tC(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var JM={kernelName:ao,backendName:"webgl",kernelFunc:Bet};var rC=class{constructor(t){this.variableNames=["real","imag"],this.outputShape=t,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -2158,7 +2152,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function xz(r,t){return{dataId:t.dataId,dtype:t.dtype,shape:r.shape}}function urt(r){let{inputs:t,backend:e}=r,{x:n}=t,o=e.texData.get(n.dataId),s=new CC(n.shape),i=[xz(n,o.complexTensorInfos.real),xz(n,o.complexTensorInfos.imag)];return e.runWebGLProgram(s,i,i[0].dtype)}var yz={kernelName:_l,backendName:"webgl",kernelFunc:urt};var vC=class{constructor(t){this.outputShape=[],this.outputShape=S.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${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`T${g}`);let u=new Array(t.length-1);u[0]=t[0][e];for(let h=1;h= ${u[h-1]}) { return getChannel( - getT${h}(${IC(a,l,g)}), - vec2(${IC(c,l,g)})); + getT${h}(${oC(a,l,g)}), + vec2(${oC(c,l,g)})); }`}let f=u.length,d=u[u.length-1];m+=` return getChannel( - getT${f}(${IC(a,l,d)}), - vec2(${IC(c,l,d)}));`,this.userCode=` + getT${f}(${oC(a,l,d)}), + vec2(${oC(c,l,d)}));`,this.userCode=` float getValue(${a.map(h=>"int "+h)}) { ${m} } @@ -2204,7 +2198,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } setOutput(result); } - `}};function IC(r,t,e){let n=r.indexOf(t);return r.map((s,i)=>i===n?`${s} - ${e}`:s).join()}function Qc(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return er({inputs:{x:o.complexTensorInfos.imag},backend:e})}var bz={kernelName:Mp,backendName:"webgl",kernelFunc:Qc};function Rd(r,t,e){let n=r[0].dtype;if(n==="complex64"){let p=r.map(g=>bl({inputs:{input:g},backend:e})),m=r.map(g=>Qc({inputs:{input:g},backend:e})),f=Rd(p,t,e),d=Rd(m,t,e),h=An({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 lt({inputs:{x:b},backend:e,attrs:{shape:[-1,w]}})}),m=p.map(b=>({vals:e.readSync(b.dataId),shape:b.shape})),f=S.computeOutShape(p.map(b=>b.shape),1),d=p[0].shape[0]===1,h=vL(m,f,n,d),g=S.computeOutShape(r.map(b=>b.shape),t),x=e.makeTensorInfo(g,n,h);return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}let s=B().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(r.length>s){let p=[];for(let f=0;f1){let p=new SC(r.map(m=>m.shape),t);return e.runWebGLProgram(p,r,n)}let{tensors2D:i,outShape:a}=crt(r,t,e),u=new vC(i.map(p=>p.shape)),l=e.runWebGLProgram(u,i,n);i.forEach(p=>e.disposeIntermediateTensorInfo(p));let c=lt({inputs:{x:l},attrs:{shape:a},backend:e});return e.disposeIntermediateTensorInfo(l),c}function crt(r,t,e){let n=S.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>lt({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function Ek(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n,s=y.parseAxisParam(o,t[0].shape)[0],i=S.computeOutShape(t.map(l=>l.shape),s);if(y.sizeFromShape(i)===0)return e.makeTensorInfo(i,t[0].dtype,[]);let a=t.filter(l=>y.sizeFromShape(l.shape)>0);if(a.length===1)return er({inputs:{x:a[0]},backend:e});let u=a.map(l=>l.shape);return S.assertParamsConsistent(u,s),Rd(a,s,e)}var wz={kernelName:fi,backendName:"webgl",kernelFunc:Ek};var Fd=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="",T="";n&&(o?C=`float activation(float a) { + `}};function oC(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 ez={kernelName:vp,backendName:"webgl",kernelFunc:Hc};function Cd(r,t,e){let n=r[0].dtype;if(n==="complex64"){let p=r.map(g=>yl({inputs:{input:g},backend:e})),m=r.map(g=>Hc({inputs:{input:g},backend:e})),f=Cd(p,t,e),d=Cd(m,t,e),h=Tn({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=S.computeOutShape(p.map(b=>b.shape),1),d=p[0].shape[0]===1,h=sL(m,f,n,d),g=S.computeOutShape(r.map(b=>b.shape),t),x=e.makeTensorInfo(g,n,h);return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}let s=M().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(r.length>s){let p=[];for(let f=0;f1){let p=new sC(r.map(m=>m.shape),t);return e.runWebGLProgram(p,r,n)}let{tensors2D:i,outShape:a}=Get(r,t,e),u=new nC(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 Get(r,t,e){let n=S.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 fT(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);S.assertParamsConsistent(i,s);let a=S.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}):Cd(u,s,e)}var rz={kernelName:ii,backendName:"webgl",kernelFunc:fT};var Id=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) { @@ -2214,7 +2208,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN float activation(float x) { ${n} } - `,T="result = activation(result);");let E=e?"result += getBiasAtOutCoords();":"";e&&this.variableNames.push("bias"),o&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` + `,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=` ${C} const ivec2 strides = ivec2(${u}, ${l}); @@ -2334,11 +2328,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } float result = dotProd; - ${E} - ${T} + ${_} + ${N} setOutput(result); } - `}},TC=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=` + `}},iC=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=` const ivec3 strides = ivec3(${s}, ${i}, ${a}); const ivec3 pads = ivec3(${e}, ${n}, ${o}); @@ -2426,7 +2420,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } setOutput(dotProd); } - `}};var Od=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=ve(this.outputShape.length);let i=t.padInfo.left,a=t.strideWidth,u=t.dilationWidth,l=t.filterHeight,c=t.filterWidth,p=c,m=` + `}};var vd=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=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let g=0;g=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 _C({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=kC(s.shape,f);C!=null&&(s=lt({inputs:{x:s},backend:n,attrs:{shape:C}}),x.push(s))}if(o!=null){let C=kC(o.shape,f);C!=null&&(o=lt({inputs:{x:o},backend:n,attrs:{shape:C}}),x.push(o))}if(!((p===1||m===1)&&c>Tk)&&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),T={dataId:r.dataId,shape:[1,C,e.inChannels],dtype:r.dtype},E=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(_u(l.shape,T.shape),()=>`packed reshape ${l.shape} to ${T.shape} isn't free`);let $=lt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push($);let D=Jc({a:T,b:$,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),P=n.texData.get(D.dataId);y.assert(P.isPacked,()=>"batchMatMul result is expected to be packed"),l.shape=E,P.shape=e.outShape,g=er({inputs:{x:D},backend:n}),g.shape=e.outShape,x.push(D)}else{let C=e.outHeight*e.outWidth,T=lt({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,C,e.inChannels]:[e.batchSize,e.inChannels,C]}}),E=lt({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),$=Jc({a:f?T:E,b:f?E:T,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=lt({inputs:{x:$},backend:n,attrs:{shape:e.outShape}}),x.push(T),x.push(E),x.push($)}for(let C of x)n.disposeIntermediateTensorInfo(C);return g}function EC({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 K=kC(s.shape,d);K!=null&&(s=lt({inputs:{x:s},backend:n,attrs:{shape:K}}),C.push(s))}if(o!=null){let K=kC(o.shape,d);K!=null&&(o=lt({inputs:{x:o},backend:n,attrs:{shape:K}}),C.push(o))}let T=lt({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});C.push(T);let E=new NC(x,e),$=[r.shape,[e.padInfo.top,e.padInfo.left],[e.strideHeight,e.strideWidth],[e.dilationHeight,e.dilationWidth],[e.inChannels],[e.filterWidth*e.inChannels],[e.outWidth]],D=n.runWebGLProgram(E,[r],"float32",$),P=lt({inputs:{x:D},backend:n,attrs:{shape:x}});C.push(D),C.push(P);let M=o!=null,W=s!=null,H=a==="leakyrelu",q=a?yl(a,!0):null,X=new Dd(d?P.shape:T.shape,d?T.shape:P.shape,d?[e.batchSize,g,e.outChannels]:[e.batchSize,e.outChannels,g],b,w,M,q,W,H),j=d?[P,T]:[T,P];if(o&&j.push(o),W&&j.push(s),H){let K=n.makeTensorInfo([],"float32",y.createScalarValue(i,"float32"));j.push(K),C.push(K)}let Z=n.runWebGLProgram(X,j,"float32"),et=lt({inputs:{x:Z},backend:n,attrs:{shape:e.outShape}});C.push(Z);for(let K of C)n.disposeIntermediateTensorInfo(K);return et}function prt(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=S.convertConv2DDataFormat(u),m=S.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=_C({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p==="channelsLast"&&B().getBool("WEBGL_EXP_CONV")){let h=new Od(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(B().getBool("WEBGL_CONV_IM2COL"))f=EC({x:o,filter:s,convInfo:m,backend:e});else{let h=new Fd(m);f=e.runWebGLProgram(h,[o,s],"float32")}let d=lt({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var Cz={kernelName:Qo,backendName:"webgl",kernelFunc:prt};var AC=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 lC(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 uC({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=lC(s.shape,f);C!=null&&(s=st({inputs:{x:s},backend:n,attrs:{shape:C}}),x.push(s))}if(o!=null){let C=lC(o.shape,f);C!=null&&(o=st({inputs:{x:o},backend:n,attrs:{shape:C}}),x.push(o))}if(!((p===1||m===1)&&c>uT)&&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(Tu(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 cC({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=lC(s.shape,d);Z!=null&&(s=st({inputs:{x:s},backend:n,attrs:{shape:Z}}),C.push(s))}if(o!=null){let Z=lC(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 aC(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?xl(a,!0):null,q=new wd(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 Wet(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=S.convertConv2DDataFormat(u),m=S.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=uC({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p==="channelsLast"&&M().getBool("WEBGL_EXP_CONV")){let h=new vd(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(M().getBool("WEBGL_CONV_IM2COL"))f=cC({x:o,filter:s,convInfo:m,backend:e});else{let h=new Id(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 nz={kernelName:qo,backendName:"webgl",kernelFunc:Wet};var pC=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; @@ -2711,7 +2705,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } setOutput(dotProd); } - `}},$C=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=` + `}},mC=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=` const ivec2 pads = ivec2(${a}, ${u}); void main() { @@ -2764,7 +2758,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } setOutput(dotProd); } - `}},DC=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=` + `}},fC=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=` void main() { ivec5 coords = getOutputCoords(); int wF = coords.x; @@ -2806,7 +2800,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } setOutput(dotProd); } - `}},RC=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=` + `}},dC=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=` const ivec3 pads = ivec3(${u}, ${l}, ${c}); void main() { @@ -2863,12 +2857,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } setOutput(dotProd); } - `}};function mrt(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=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,c,i,1,a,l,!1,p),f=new AC(m);return e.runWebGLProgram(f,[o,s],"float32")}var vz={kernelName:kp,backendName:"webgl",kernelFunc:mrt};function frt(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=S.convertConv2DDataFormat(l),m=S.computeConv2DInfo(i,s.shape,a,1,u,c,!1,p),f=new $C(m);return e.runWebGLProgram(f,[o,s],"float32")}var Iz={kernelName:ts,backendName:"webgl",kernelFunc:frt};function drt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeConv3DInfo(o.shape,s.shape,i,u,a),c=new TC(l);return e.runWebGLProgram(c,[o,s],"float32")}var Sz={kernelName:El,backendName:"webgl",kernelFunc:drt};function hrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,filterShape:u}=n,l=S.computeConv3DInfo(o.shape,u,i,1,a),c=new DC(l);return e.runWebGLProgram(c,[o,s],"float32")}var Tz={kernelName:_p,backendName:"webgl",kernelFunc:hrt};function grt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{pad:i,strides:a,inputShape:u}=n,l=S.computeConv3DInfo(u,s.shape,a,1,i),c=new RC(l);return e.runWebGLProgram(c,[o,s],"float32")}var Nz={kernelName:Ep,backendName:"webgl",kernelFunc:grt};var xrt=Oo+` + `}};function Uet(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=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,c,i,1,a,l,!1,p),f=new pC(m);return e.runWebGLProgram(f,[o,s],"float32")}var oz={kernelName:mp,backendName:"webgl",kernelFunc:Uet};function Het(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=S.convertConv2DDataFormat(l),m=S.computeConv2DInfo(i,s.shape,a,1,u,c,!1,p),f=new mC(m);return e.runWebGLProgram(f,[o,s],"float32")}var sz={kernelName:Ko,backendName:"webgl",kernelFunc:Het};function qet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeConv3DInfo(o.shape,s.shape,i,u,a),c=new iC(l);return e.runWebGLProgram(c,[o,s],"float32")}var iz={kernelName:El,backendName:"webgl",kernelFunc:qet};function Ket(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,filterShape:u}=n,l=S.computeConv3DInfo(o.shape,u,i,1,a),c=new fC(l);return e.runWebGLProgram(c,[o,s],"float32")}var az={kernelName:fp,backendName:"webgl",kernelFunc:Ket};function jet(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{pad:i,strides:a,inputShape:u}=n,l=S.computeConv3DInfo(u,s.shape,a,1,i),c=new dC(l);return e.runWebGLProgram(c,[o,s],"float32")}var lz={kernelName:dp,backendName:"webgl",kernelFunc:jet};var Xet=Oo+` return cos(x); -`,yrt=It({opSnippet:xrt}),kz={kernelName:es,backendName:"webgl",kernelFunc:yrt};var brt=` +`,Yet=Ct({opSnippet:Xet}),uz={kernelName:jo,backendName:"webgl",kernelFunc:Yet};var Zet=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,wrt=It({opSnippet:brt}),_z={kernelName:rs,backendName:"webgl",kernelFunc:wrt};var FC=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,T]=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=` +`,Jet=Ct({opSnippet:Zet}),cz={kernelName:Xo,backendName:"webgl",kernelFunc:Jet};var hC=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=` const float height_ratio = float(${g}); const float width_ratio = float(${w}); void main() { @@ -2898,7 +2892,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN setOutput(float(${s})); return; } - float in_x = ${T}; + float in_x = ${N}; if( in_x < 0.0 || in_x > ${h} ) { setOutput(float(${s})); return; @@ -2929,20 +2923,20 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN setOutput(newValue); } } - `}};var Crt=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 FC(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],"float32")},Ez={kernelName:da,backendName:"webgl",kernelFunc:Crt};var tp;(function(r){r.Prod="*",r.Sum="+"})(tp||(tp={}));var mg=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===tp.Prod?"1.0":"0.0",a=n?i:`getX(${Az(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=` + `}};var Qet=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 hC(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],"float32")},pz={kernelName:ma,backendName:"webgl",kernelFunc:Qet};var qc;(function(r){r.Prod="*",r.Sum="+"})(qc||(qc={}));var Jh=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(${mz(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=` void main() { - ${Wt(s)} coords = getOutputCoords(); - int end = ${$z(s,"coords",this.op)}; + ${zt(s)} coords = getOutputCoords(); + int end = ${fz(s,"coords",this.op)}; float val = ${a}; int pow2 = int(pow(2.0, index)); if (${l}) { int idx = ${c}; - ${$z(s,"coords",this.op)} = idx; - val ${this.op}= getX(${Az(s,"coords",this.op)}); + ${fz(s,"coords",this.op)} = idx; + val ${this.op}= getX(${mz(s,"coords",this.op)}); } setOutput(val); } - `}};function Az(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 $z(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 OC(r,t,e,n,o,s){let i=t.shape.length,a=S.getAxesPermutation([n],i),u=t;a!=null&&(u=Le({inputs:{x:t},backend:e,attrs:{perm:a}}));let l=S.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=er({inputs:{x:u},backend:e});for(let m=0;m<=Math.ceil(Math.log2(c))-1;m++){let f=new mg(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 mg(r,u.shape,o,s),f=p;p=e.runWebGLProgram(m,[p],p.dtype),e.disposeIntermediateTensorInfo(f)}if(a!=null){let m=S.getUndoAxesPermutation(a),f=Le({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function vrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return OC(tp.Prod,o,e,s,i,a)}var Dz={kernelName:fa,backendName:"webgl",kernelFunc:vrt};function Irt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return OC(tp.Sum,o,e,s,i,a)}var Rz={kernelName:ns,backendName:"webgl",kernelFunc:Irt};function Srt(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=Yw(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=bL(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 Fz={kernelName:Ap,backendName:"webgl",kernelFunc:Srt};var PC=class{constructor(t,e,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=t,this.blockSize=e,this.dataFormat=n,this.userCode=` + `}};function mz(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 fz(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 gC(r,t,e,n,o,s){let i=t.shape.length,a=S.getAxesPermutation([n],i),u=t;a!=null&&(u=Fe({inputs:{x:t},backend:e,attrs:{perm:a}}));let l=S.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 Jh(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 Jh(r,u.shape,o,s),f=p;p=e.runWebGLProgram(m,[p],p.dtype),e.disposeIntermediateTensorInfo(f)}if(a!=null){let m=S.getUndoAxesPermutation(a),f=Fe({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function trt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return gC(qc.Prod,o,e,s,i,a)}var dz={kernelName:pa,backendName:"webgl",kernelFunc:trt};function ert(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return gC(qc.Sum,o,e,s,i,a)}var hz={kernelName:Yo,backendName:"webgl",kernelFunc:ert};function rrt(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=Dw(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=rL(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 gz={kernelName:hp,backendName:"webgl",kernelFunc:rrt};var xC=class{constructor(t,e,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=t,this.blockSize=e,this.dataFormat=n,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -2961,7 +2955,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN float result = ${this.getInputSamplingString()}; setOutput(result); } - `}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 Trt(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 PC(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var Oz={kernelName:ha,backendName:"webgl",kernelFunc:Trt};var Pd=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=ve(this.outputShape.length);let i=t.filterHeight,a=t.filterWidth,u=t.outChannels/t.inChannels,l="",c="";n&&(o?l=`float activation(float a) { + `}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 nrt(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 xC(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var xz={kernelName:fa,backendName:"webgl",kernelFunc:nrt};var Sd=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) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:s?l=`float activation(float a) { @@ -3014,7 +3008,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN ${c} setOutput(result); } - `}};var Ld=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=ve(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=` + `}};var Nd=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=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let p=S.computeConv2DInfo(o.shape,s.shape,i,c,a,l,!0),m;B().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new Ld(p):m=new Pd(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 Pz={kernelName:os,backendName:"webgl",kernelFunc:Nrt};var LC=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=` + `}};function ort(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u,dimRoundingMode:l}=n,c=u;c==null&&(c=[1,1]),y.assert(S.eitherStridesOrDilationsAreOne(i,c),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let p=S.computeConv2DInfo(o.shape,s.shape,i,c,a,l,!0),m;M().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new Nd(p):m=new Sd(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 yz={kernelName:Zo,backendName:"webgl",kernelFunc:ort};var yC=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=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -3238,7 +3232,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } setOutput(dotProd); } - `}},MC=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=` + `}},bC=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=` const ivec2 pads = ivec2(${i}, ${a}); void main() { @@ -3283,13 +3277,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } setOutput(dotProd); } - `}};function krt(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=S.computeConv2DInfo(o.shape,c,i,a,u,l,!0),m=new LC(p);return e.runWebGLProgram(m,[o,s],"float32")}var Lz={kernelName:$p,backendName:"webgl",kernelFunc:krt};function _rt(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=S.computeConv2DInfo(c,s.shape,i,a,u,l,!0),m=new MC(p);return e.runWebGLProgram(m,[o,s],"float32")}var Mz={kernelName:Dp,backendName:"webgl",kernelFunc:_rt};var zC=class{constructor(t){this.variableNames=["X"],this.outputShape=[t,t],this.userCode=` + `}};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=S.computeConv2DInfo(o.shape,c,i,a,u,l,!0),m=new yC(p);return e.runWebGLProgram(m,[o,s],"float32")}var bz={kernelName:gp,backendName:"webgl",kernelFunc:srt};function irt(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=S.computeConv2DInfo(c,s.shape,i,a,u,l,!0),m=new bC(p);return e.runWebGLProgram(m,[o,s],"float32")}var wz={kernelName:xp,backendName:"webgl",kernelFunc:irt};var wC=class{constructor(t){this.variableNames=["X"],this.outputShape=[t,t],this.userCode=` void main() { ivec2 coords = getOutputCoords(); float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; setOutput(val); } - `}};function Ert(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=lt({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new zC(s),u=e.runWebGLProgram(a,[i],i.dtype),l=lt({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var zz={kernelName:Rp,backendName:"webgl",kernelFunc:Ert};var BC=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 art(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 wC(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 Cz={kernelName:yp,backendName:"webgl",kernelFunc:art};var CC=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; @@ -3327,7 +3321,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN float result = curVal; setOutput(result); } - `}};function Art(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeDilation2DInfo(o.shape,s.shape,i,a,"NHWC",u),c,p=new BC(l);c=e.runWebGLProgram(p,[o,s],"float32");let m=lt({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var Bz={kernelName:Al,backendName:"webgl",kernelFunc:Art};function $rt(r){let{inputs:t,backend:e,attrs:n}=r,{equation:o}=n,s=t,{allDims:i,summedDims:a,idDims:u}=S.decodeEinsumEquation(o,s.length);S.checkEinsumDimSizes(i.length,u,s);let{path:l,steps:c}=S.getEinsumComputePath(a,u),p=c.length,m=null,f=i.length,d=[];for(let h=0;h=0&&(m=Zc({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 Vz={kernelName:Fp,backendName:"webgl",kernelFunc:$rt};var Drt="return (x >= 0.0) ? x : (exp(x) - 1.0);",Rrt=` + `}};function lrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeDilation2DInfo(o.shape,s.shape,i,a,"NHWC",u),c,p=new CC(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 Iz={kernelName:_l,backendName:"webgl",kernelFunc:lrt};function urt(r){let{inputs:t,backend:e,attrs:n}=r,{equation:o}=n,s=t,{allDims:i,summedDims:a,idDims:u}=S.decodeEinsumEquation(o,s.length);S.checkEinsumDimSizes(i.length,u,s);let{path:l,steps:c}=S.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 vz={kernelName:bp,backendName:"webgl",kernelFunc:urt};var crt="return (x >= 0.0) ? x : (exp(x) - 1.0);",prt=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -3336,12 +3330,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,Frt=It({opSnippet:Drt,packedOpSnippet:Rrt}),Gz={kernelName:is,backendName:"webgl",kernelFunc:Frt};var Ort="return (b >= 1.0) ? a : a * (b + 1.0);",Prt=` +`,mrt=Ct({opSnippet:crt,packedOpSnippet:prt}),Sz={kernelName:Qo,backendName:"webgl",kernelFunc:mrt};var frt="return (b >= 1.0) ? a : a * (b + 1.0);",drt=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,Lrt=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=B().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Fo(Prt,n.shape,o.shape):new no(Ort,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},Wz={kernelName:Op,backendName:"webgl",kernelFunc:Lrt};var Mrt=` +`,hrt=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=M().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Fo(drt,n.shape,o.shape):new oo(frt,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},Nz={kernelName:wp,backendName:"webgl",kernelFunc:hrt};var grt=` return vec4(equal(a, b)); -`,zrt="return float(a == b);",Brt=ce({opSnippet:zrt,packedOpSnippet:Mrt,dtype:"bool",cpuKernelImpl:IL}),Uz={kernelName:xa,backendName:"webgl",kernelFunc:Brt};var Vrt=` +`,xrt="return float(a == b);",yrt=le({opSnippet:xrt,packedOpSnippet:grt,dtype:"bool",cpuKernelImpl:iL}),kz={kernelName:ha,backendName:"webgl",kernelFunc:yrt};var brt=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. @@ -3356,9 +3350,9 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN x = abs(x); float t = 1.0 / (1.0 + p * x); return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); -`,Grt=It({opSnippet:Vrt}),Hz={kernelName:ga,backendName:"webgl",kernelFunc:Grt};var Wrt=Oo+` +`,wrt=Ct({opSnippet:brt}),Tz={kernelName:da,backendName:"webgl",kernelFunc:wrt};var Crt=Oo+` return exp(x); -`,Urt=` +`,Irt=` vec4 result = exp(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; @@ -3367,7 +3361,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN result.a = isNaN.a ? x.a : result.a; return result; -`,Ak=It({opSnippet:Wrt,packedOpSnippet:Urt,cpuKernelImpl:SL,dtype:"float32"}),qz={kernelName:as,backendName:"webgl",kernelFunc:Ak};function VC(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),lt({inputs:{x:s},backend:n,attrs:{shape:a}})}var Kz={kernelName:di,backendName:"webgl",kernelFunc:VC};var jz="return exp(x) - 1.0;",Hrt=It({opSnippet:jz,packedOpSnippet:jz,cpuKernelImpl:TL}),Xz={kernelName:ya,backendName:"webgl",kernelFunc:Hrt};var fg=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=` +`,dT=Ct({opSnippet:Crt,packedOpSnippet:Irt,cpuKernelImpl:aL,dtype:"float32"}),Ez={kernelName:ts,backendName:"webgl",kernelFunc:dT};function IC(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 _z={kernelName:ai,backendName:"webgl",kernelFunc:IC};var Az="return exp(x) - 1.0;",vrt=Ct({opSnippet:Az,packedOpSnippet:Az,cpuKernelImpl:lL}),$z={kernelName:ga,backendName:"webgl",kernelFunc:vrt};var Qh=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) { @@ -3400,12 +3394,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function GC(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=lt({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new fg("real",u,t),c=new fg("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=An({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=lt({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function qrt(r){let{inputs:t,backend:e}=r,{input:n}=t;return GC(n,!1,e)}var Yz={kernelName:Pp,backendName:"webgl",kernelFunc:qrt};var WC=class{constructor(t,e){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=t,this.userCode=` + `}};function vC(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 Qh("real",u,t),c=new Qh("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=Tn({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 Srt(r){let{inputs:t,backend:e}=r,{input:n}=t;return vC(n,!1,e)}var Dz={kernelName:Cp,backendName:"webgl",kernelFunc:Srt};var SC=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); } - `}};function wl(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 WC(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var Zz={kernelName:$l,backendName:"webgl",kernelFunc:wl};var UC=class{constructor(t){this.variableNames=["Image"],this.outputShape=[];let e=t[2];this.outputShape=t,this.userCode=` + `}};function bl(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 SC(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var Rz={kernelName:Al,backendName:"webgl",kernelFunc:bl};var NC=class{constructor(t){this.variableNames=["Image"],this.outputShape=[];let e=t[2];this.outputShape=t,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; @@ -3419,7 +3413,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } setOutput(outputValue); } - `}};var Jz={kernelName:ba,backendName:"webgl",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new UC(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var Qz="return floor(x);",Krt=It({opSnippet:Qz,packedOpSnippet:Qz,cpuKernelImpl:NL}),t3={kernelName:ls,backendName:"webgl",kernelFunc:Krt};var jrt=` + `}};var Fz={kernelName:xa,backendName:"webgl",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new NC(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var Oz="return floor(x);",Nrt=Ct({opSnippet:Oz,packedOpSnippet:Oz,cpuKernelImpl:uL}),Pz={kernelName:es,backendName:"webgl",kernelFunc:Nrt};var krt=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -3429,7 +3423,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } else { return NAN; } -`,Xrt=` +`,Trt=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -3450,7 +3444,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,Yrt=ce({opSnippet:jrt,packedOpSnippet:Xrt,dtype:"int32"}),e3={kernelName:us,backendName:"webgl",kernelFunc:Yrt};var HC=class{constructor(t){this.variableNames=["A"];let e=He(),[n,o]=t;this.outputShape=t,this.userCode=` +`,Ert=le({opSnippet:krt,packedOpSnippet:Trt,dtype:"int32"}),Lz={kernelName:rs,backendName:"webgl",kernelFunc:Ert};var kC=class{constructor(t){this.variableNames=["A"];let e=Ve(),[n,o]=t;this.outputShape=t,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3472,7 +3466,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN setOutput(floor(value * 255.0 + 0.5)); } - `}};var qC=class{constructor(t){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let e=He(),[n,o]=t;this.outputShape=t,this.userCode=` + `}};var TC=class{constructor(t){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let e=Ve(),[n,o]=t;this.outputShape=t,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3506,39 +3500,39 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN ${e.output} = result; } - `}};var r3={kernelName:ih,backendName:"webgl",kernelFunc:Zrt},Md,$k=B().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Zrt(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=B().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(Md==null||h!==$k)&&($k=h,Md=document.createElement("canvas").getContext("2d",{willReadFrequently:$k})),Md.canvas.width=u,Md.canvas.height=l,Md.drawImage(o,0,0,u,l),o=Md.canvas}let m=e.makeTensorInfo(c,"int32");e.texData.get(m.dataId).usage=Hr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=B().getBool("WEBGL_PACK")?new qC(p):new HC(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=S.convertConv2DDataFormat(c),g=S.computeConv2DInfo(o.shape,s.shape,u,p,l,m,!1,h),x,b=[],w=i!=null,C=a!=null,T=f==="leakyrelu",E=()=>{let D=[o,s],P=(M,W)=>{if(W==="NCHW"&&M.shape.length===1&&M.shape[0]!==1){let H=lt({inputs:{x:M},backend:e,attrs:{shape:[M.shape[0],1,1]}});return b.push(H),H}return M};if(w&&D.push(P(i,c)),C&&D.push(P(a,c)),T){let M=e.makeTensorInfo([],"float32",y.createScalarValue(d,"float32"));D.push(M),b.push(M)}return D};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=_C({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h==="channelsLast"&&B().getBool("WEBGL_EXP_CONV")){let D=f?yl(f,!0):null,P=new Od(g,w,D,C,T),M=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],W=E();x=e.runWebGLProgram(P,W,"float32",M)}else if(B().getBool("WEBGL_CONV_IM2COL"))x=EC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let D=f?yl(f,!1):null,P=new Fd(g,w,D,C,T),M=E();x=e.runWebGLProgram(P,M,"float32")}let $=lt({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach(D=>e.disposeIntermediateTensorInfo(D)),$}var n3={kernelName:ki,backendName:"webgl",kernelFunc:Jrt};function Qrt(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(S.eitherStridesOrDilationsAreOne(u,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${u} and dilations '${h}'`);let g=S.computeConv2DInfo(o.shape,s.shape,u,h,l,p,!0),x=B().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?yl(m,x):null,w=[o,s],C=i!=null,T=a!=null,E=m==="leakyrelu";if(C&&w.push(i),T&&w.push(a),E){let M=e.makeTensorInfo([],"float32",y.createScalarValue(f,"float32"));w.push(M),d.push(M)}let $;x?$=new Ld(g,C,b,T,E):$=new Pd(g,C,b,T,E);let D=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],P=e.runWebGLProgram($,w,"float32",D);return d.forEach(M=>e.disposeIntermediateTensorInfo(M)),P}var o3={kernelName:_i,backendName:"webgl",kernelFunc:Qrt};var KC=class{constructor(t,e,n,o){this.sliceDim=t,this.strides=e,this.paramsShape=o,this.variableNames=["x","indices"],this.outputShape=n;let s=Wt(e.length),i=Wt(n.length),a=this.sliceDim>1?"strides[j]":"strides",u=Wt(o.length),l=o.length>1?"paramsShape[j]":"paramsShape";this.userCode=` - ${s} strides = ${s}(${this.strides}); - ${u} paramsShape = ${u}(${this.paramsShape}); + `}};var Mz={kernelName:qd,backendName:"webgl",kernelFunc:_rt},kd,hT=M().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function _rt(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=M().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(kd==null||h!==hT)&&(hT=h,kd=document.createElement("canvas").getContext("2d",{willReadFrequently:hT})),kd.canvas.width=u,kd.canvas.height=l,kd.drawImage(o,0,0,u,l),o=kd.canvas}let m=e.makeTensorInfo(c,"int32");e.texData.get(m.dataId).usage=Kr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=M().getBool("WEBGL_PACK")?new TC(p):new kC(p),d=e.runWebGLProgram(f,[m],"int32");return e.disposeData(m.dataId),d}function Art(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=S.convertConv2DDataFormat(c),g=S.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=uC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h==="channelsLast"&&M().getBool("WEBGL_EXP_CONV")){let $=f?xl(f,!0):null,F=new vd(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(M().getBool("WEBGL_CONV_IM2COL"))x=cC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let $=f?xl(f,!1):null,F=new Id(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 zz={kernelName:wi,backendName:"webgl",kernelFunc:Art};function $rt(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(S.eitherStridesOrDilationsAreOne(u,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${u} and dilations '${h}'`);let g=S.computeConv2DInfo(o.shape,s.shape,u,h,l,p,!0),x=M().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?xl(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 Nd(g,C,b,N,_):A=new Sd(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 Bz={kernelName:Ci,backendName:"webgl",kernelFunc:$rt};var EC=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= ${this.paramsShape[a]}; + flattenIndex += index * ${this.strides[a]};`;this.userCode=` void main() { - ${i} coords = getOutputCoords(); + ${s} coords = getOutputCoords(); int flattenIndex = 0; bool out_of_bounds = false; - for (int j = 0; j < ${this.sliceDim}; j++) { - int index = round(getIndices(coords[0], j)); - out_of_bounds = out_of_bounds || index < 0; - out_of_bounds = out_of_bounds || index >= ${l}; - flattenIndex += index * ${a}; - } + + ${i} + setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1])); } - `}};function tnt(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]=S.prepareAndValidate(n,o),m=lt({inputs:{x:o},backend:e,attrs:{shape:[l,i]}}),f=lt({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=kL(x,b,n.dtype,l,i,c,p,n.shape,a);return e.makeTensorInfo(u,n.dtype,w.values)}let d=new KC(i,p,[l,c],n.shape),h=e.runWebGLProgram(d,[f,m],f.dtype),g=lt({inputs:{x:h},backend:e,attrs:{shape:u}});return e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(h),g}var s3={kernelName:wa,backendName:"webgl",kernelFunc:tnt};var jC=class{constructor(t,e){this.variableNames=["A","indices"],this.outputShape=e,this.rank=e.length;let n=Wt(this.rank),o=ent(t,2);this.userCode=` + `}};function Drt(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]=S.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=cL(x,b,n.dtype,l,i,c,p,n.shape,a);return e.makeTensorInfo(u,n.dtype,w.values)}let d=new EC(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 Vz={kernelName:ya,backendName:"webgl",kernelFunc:Drt};var _C=class{constructor(t,e){this.variableNames=["A","indices"],this.outputShape=e,this.rank=e.length;let n=zt(this.rank),o=Rrt(t,2);this.userCode=` void main() { ${n} resRC = getOutputCoords(); int index = int(getIndices(resRC.x, resRC.z)); float inBounds = (index >= 0) && (index < ${t[2]}) ? 1.0 : 0.0; setOutput(inBounds * getA(${o})); } - `}};function ent(r,t){let e=["resRC.x","resRC.y","resRC.z","resRC.w"],n=[];for(let o=0;o=0,()=>`GatherV2: the index value ${T} is not in [0, ${w-1}]`)}}let l=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),c=y.sizeFromShape(s.shape),p=[],m=lt({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=lt({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=_L(w,b,d);return p.forEach(T=>e.disposeIntermediateTensorInfo(T)),e.makeTensorInfo(l.outputShape,C.dtype,C.values)}let h=new jC(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=lt({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var i3={kernelName:hi,backendName:"webgl",kernelFunc:Dk};var rnt="return float(a > b);",nnt=` + `}};function Rrt(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=S.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=pL(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,C.dtype,C.values)}let h=new _C(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 Gz={kernelName:li,backendName:"webgl",kernelFunc:gT};var Frt="return float(a > b);",Ort=` return vec4(greaterThan(a, b)); -`,ont=ce({opSnippet:rnt,packedOpSnippet:nnt,cpuKernelImpl:EL,dtype:"bool"}),a3={kernelName:Ca,backendName:"webgl",kernelFunc:ont};var snt="return float(a >= b);",int=` +`,Prt=le({opSnippet:Frt,packedOpSnippet:Ort,cpuKernelImpl:mL,dtype:"bool"}),Wz={kernelName:ba,backendName:"webgl",kernelFunc:Prt};var Lrt="return float(a >= b);",Mrt=` return vec4(greaterThanEqual(a, b)); -`,ant=ce({opSnippet:snt,packedOpSnippet:int,dtype:"bool",cpuKernelImpl:AL}),l3={kernelName:ps,backendName:"webgl",kernelFunc:ant};function lnt(r){let{inputs:t,backend:e}=r,{input:n}=t;return GC(n,!0,e)}var u3={kernelName:Lp,backendName:"webgl",kernelFunc:lnt};var unt="return float(!isnan(x) && !isinf(x));",cnt=It({opSnippet:unt,dtype:"bool"}),c3={kernelName:va,backendName:"webgl",kernelFunc:cnt};var pnt="return float(isinf(x));",mnt=It({opSnippet:pnt,dtype:"bool"}),p3={kernelName:Ia,backendName:"webgl",kernelFunc:mnt};var fnt="return float(isnan(x));",dnt=It({opSnippet:fnt,dtype:"bool"}),m3={kernelName:Sa,backendName:"webgl",kernelFunc:dnt};var hnt="return float(a < b);",gnt=` +`,zrt=le({opSnippet:Lrt,packedOpSnippet:Mrt,dtype:"bool",cpuKernelImpl:fL}),Uz={kernelName:os,backendName:"webgl",kernelFunc:zrt};function Brt(r){let{inputs:t,backend:e}=r,{input:n}=t;return vC(n,!0,e)}var Hz={kernelName:Ip,backendName:"webgl",kernelFunc:Brt};var Vrt="return float(!isnan(x) && !isinf(x));",Grt=Ct({opSnippet:Vrt,dtype:"bool"}),qz={kernelName:wa,backendName:"webgl",kernelFunc:Grt};var Wrt="return float(isinf(x));",Urt=Ct({opSnippet:Wrt,dtype:"bool"}),Kz={kernelName:Ca,backendName:"webgl",kernelFunc:Urt};var Hrt="return float(isnan(x));",qrt=Ct({opSnippet:Hrt,dtype:"bool"}),jz={kernelName:Ia,backendName:"webgl",kernelFunc:qrt};var Krt="return float(a < b);",jrt=` return vec4(lessThan(a, b)); -`,xnt=ce({opSnippet:hnt,packedOpSnippet:gnt,cpuKernelImpl:$L,dtype:"bool"}),f3={kernelName:Ta,backendName:"webgl",kernelFunc:xnt};var ynt="return float(a <= b);",bnt=` +`,Xrt=le({opSnippet:Krt,packedOpSnippet:jrt,cpuKernelImpl:dL,dtype:"bool"}),Xz={kernelName:va,backendName:"webgl",kernelFunc:Xrt};var Yrt="return float(a <= b);",Zrt=` return vec4(lessThanEqual(a, b)); -`,wnt=ce({opSnippet:ynt,packedOpSnippet:bnt,cpuKernelImpl:DL,dtype:"bool"}),d3={kernelName:Na,backendName:"webgl",kernelFunc:wnt};function Cnt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=RL(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var h3={kernelName:zp,backendName:"webgl",kernelFunc:Cnt};var vnt=Oo+` +`,Jrt=le({opSnippet:Yrt,packedOpSnippet:Zrt,cpuKernelImpl:hL,dtype:"bool"}),Yz={kernelName:Sa,backendName:"webgl",kernelFunc:Jrt};function Qrt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=gL(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var Zz={kernelName:Sp,backendName:"webgl",kernelFunc:Qrt};var tnt=Oo+` return x < 0.0 ? 0./0. : log(x); -`,Int=` +`,ent=` vec4 result = log(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r); @@ -3546,18 +3540,18 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b); result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a); return result; -`,Snt=It({opSnippet:vnt,packedOpSnippet:Int,cpuKernelImpl:FL}),g3={kernelName:fs,backendName:"webgl",kernelFunc:Snt};var Tnt=Oo+` +`,rnt=Ct({opSnippet:tnt,packedOpSnippet:ent,cpuKernelImpl:xL}),Jz={kernelName:is,backendName:"webgl",kernelFunc:rnt};var nnt=Oo+` return log(1.0 + x); -`,Nnt=It({opSnippet:Tnt}),x3={kernelName:ka,backendName:"webgl",kernelFunc:Nnt};var knt="return float(a >= 1.0 && b >= 1.0);",_nt=` +`,ont=Ct({opSnippet:nnt}),Qz={kernelName:Na,backendName:"webgl",kernelFunc:ont};var snt="return float(a >= 1.0 && b >= 1.0);",int=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,Ent=ce({opSnippet:knt,packedOpSnippet:_nt,dtype:"bool"}),y3={kernelName:_a,backendName:"webgl",kernelFunc:Ent};var Ant="return float(!(x >= 1.0));",$nt=It({opSnippet:Ant}),b3={kernelName:Ea,backendName:"webgl",kernelFunc:$nt};var Dnt="return float(a >= 1.0 || b >= 1.0);",Rnt=` +`,ant=le({opSnippet:snt,packedOpSnippet:int,dtype:"bool"}),t3={kernelName:ka,backendName:"webgl",kernelFunc:ant};var lnt="return float(!(x >= 1.0));",unt=Ct({opSnippet:lnt}),e3={kernelName:Ta,backendName:"webgl",kernelFunc:unt};var cnt="return float(a >= 1.0 || b >= 1.0);",pnt=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,Fnt=ce({opSnippet:Dnt,packedOpSnippet:Rnt,dtype:"bool"}),w3={kernelName:Aa,backendName:"webgl",kernelFunc:Fnt};var XC=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=` +`,mnt=le({opSnippet:cnt,packedOpSnippet:pnt,dtype:"bool"}),r3={kernelName:Ea,backendName:"webgl",kernelFunc:mnt};var AC=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=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3576,7 +3570,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN float val = x * ${u}; setOutput(val); } - `}};var YC=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=` + `}};var $C=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=` void main() { ivec4 coords = getOutputCoords(); int b = coords.x; @@ -3638,7 +3632,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN vec4 result = xAtOutputCoords * ${u}; setOutput(result); } - `}};var Ont=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=B().getBool("WEBGL_PACK_NORMALIZATION")?new YC(o.shape,s,i,a,u):new XC(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},C3={kernelName:Dl,backendName:"webgl",kernelFunc:Ont};var ZC=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=` + `}};var fnt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=M().getBool("WEBGL_PACK_NORMALIZATION")?new $C(o.shape,s,i,a,u):new AC(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},n3={kernelName:$l,backendName:"webgl",kernelFunc:fnt};var DC=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=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3693,14 +3687,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } setOutput(result); } - `}};var Pnt=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 ZC(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},v3={kernelName:Bp,backendName:"webgl",kernelFunc:Pnt};function I3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=lt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Un(a,r.dtype,"max",n),l=lt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function Rk(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=S.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 $=0;${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 DC(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},o3={kernelName:Np,backendName:"webgl",kernelFunc:dnt};function s3(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=Gn(a,r.dtype,"max",n),l=st({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function xT(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=S.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=S.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return er({inputs:{x:o},backend:e});let p=new ii(c,"max",!1);return e.runWebGLProgram(p,[o],o.dtype)}var N3={kernelName:gs,backendName:"webgl",kernelFunc:Bnt};function Vnt(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=S.computePool3DInfo(o.shape,s,i,c,a,l,u),m=new Du(p,"max",!1);return e.runWebGLProgram(m,[o],o.dtype)}var k3={kernelName:Rl,backendName:"webgl",kernelFunc:Vnt};var JC=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=` +`,xnt=le({opSnippet:hnt,packedOpSnippet:gnt,cpuKernelImpl:bL}),a3={kernelName:ls,backendName:"webgl",kernelFunc:xnt};function ynt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;Zs(o,"maxPool");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.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 Qs(c,"max",!1);return e.runWebGLProgram(p,[o],o.dtype)}var l3={kernelName:us,backendName:"webgl",kernelFunc:ynt};function bnt(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=S.computePool3DInfo(o.shape,s,i,c,a,l,u),m=new Au(p,"max",!1);return e.runWebGLProgram(m,[o],o.dtype)}var u3={kernelName:Dl,backendName:"webgl",kernelFunc:bnt};var RC=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=` const ivec2 pads = ivec2(${a}, ${u}); void main() { @@ -3746,7 +3742,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } setOutput(dotProd); } - `}},QC=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=` + `}},FC=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=` const ivec3 pads = ivec3(${p}, ${m}, ${f}); void main() { @@ -3810,14 +3806,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN } setOutput(dotProd); } - `}};function Gnt(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=S.computePool3DInfo(i.shape,a,u,p,l,c),f=new Du(m,"max",!0),d=e.runWebGLProgram(f,[i],i.dtype),h=new QC(m),g=e.runWebGLProgram(h,[o,d],i.dtype);return e.disposeIntermediateTensorInfo(d),g}var _3={kernelName:Gp,backendName:"webgl",kernelFunc:Gnt};function Wnt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;oi([s,i],"maxPoolGrad");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=S.computePool2DInfo(a.shape,u,l,1,c,p),f=!0,d=new ii(m,"max",f),h=e.runWebGLProgram(d,[a],a.dtype),g=new JC(m),x=e.runWebGLProgram(g,[o,h],a.dtype);return e.disposeIntermediateTensorInfo(h),x}var E3={kernelName:Vp,backendName:"webgl",kernelFunc:Wnt};function A3(r,t,e,n){let o=new ii(e,"max",!1),s=n.runWebGLProgram(o,[r],"float32");o=new ii(e,"max",!0,!0,t);let i=n.runWebGLProgram(o,[r],"float32");return[s,i]}var $3={kernelName:Wp,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(S.eitherStridesOrDilationsAreOne(s,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${l}'`);let c=S.computePool2DInfo(n.shape,o,s,l,i),[p,m]=A3(n,a,c,u);return[p,m]}};function D3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=lt({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Un(a,"float32","mean",n),l=lt({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var R3={kernelName:xs,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=S.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,T=new Array(a);for(let D=0;D{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(S.eitherStridesOrDilationsAreOne(s,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${l}'`);let c=S.computePool2DInfo(n.shape,o,s,l,i),[p,m]=m3(n,a,c,u);return[p,m]}};function d3(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=Gn(a,"float32","mean",n),l=st({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var h3={kernelName:cs,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=S.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=Wt(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=` +`,Nnt=le({opSnippet:vnt,packedOpSnippet:Snt,cpuKernelImpl:wL}),x3={kernelName:ms,backendName:"webgl",kernelFunc:Nnt};var OC=class{constructor(t,e,n){this.variableNames=["x"],this.outputShape=e.map((c,p)=>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=` int start = ${i}; int end = ${a}; @@ -3846,7 +3844,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN ${s} coords = outC - start; setOutput(getX(${u})); } - `}};var ev=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=Wt(o),i=e.map(d=>d[0]).join(","),a=e.map((d,h)=>d[0]+t[h]).join(","),u=tr("rc",o),l=tr("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=` + `}};var PC=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=` ${s} source = rc; if (source < start) { source = start * 2 - source - ${m}; @@ -3902,13 +3900,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN ${f} setOutput(result); } - `}};var jnt=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=B().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new ev(n.shape,o,s):new tv(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},P3={kernelName:ws,backendName:"webgl",kernelFunc:jnt};var Xnt=`if (b == 0.0) return NAN; - return mod(a, b);`,Ynt=` + `}};var knt=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=M().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new PC(n.shape,o,s):new OC(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},y3={kernelName:fs,backendName:"webgl",kernelFunc:knt};var Tnt=`if (b == 0.0) return NAN; + return mod(a, b);`,Ent=` vec4 result = mod(a, b); - vec4 isNaN = vec4(equal(b, vec4(0.0))); - `+Au+` + bvec4 isNaN = equal(b, vec4(0.0)); + `+ji+` return result; -`,Znt=ce({opSnippet:Xnt,packedOpSnippet:Ynt}),L3={kernelName:$a,backendName:"webgl",kernelFunc:Znt};var rv=class{constructor(t,e,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[t,n],this.userCode=` +`,_nt=le({opSnippet:Tnt,packedOpSnippet:Ent}),b3={kernelName:_a,backendName:"webgl",kernelFunc:_nt};var LC=class{constructor(t,e,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[t,n],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -3928,11 +3926,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Ket=It({opSnippet:qet}),QM={kernelN // If no other event happened, last event happened. setOutput(float(${e-1})); } - `}};var Jnt=` + `}};var Ant=` if (a == b) { return 1.0; }; -return a / b;`,Qnt=` +return a / b;`,$nt=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -3950,9 +3948,9 @@ return a / b;`,Qnt=` } return result; -`,Fk=ce({opSnippet:Jnt,packedOpSnippet:Qnt,checkOutOfBounds:!0}),M3={kernelName:ss,backendName:"webgl",kernelFunc:Fk};var z3="return a - b;",Ok=ce({opSnippet:z3,packedOpSnippet:z3,supportsComplex:!0,cpuKernelImpl:eM}),B3={kernelName:Bs,backendName:"webgl",kernelFunc:Ok};function Pk(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=Rk({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=S.expandShapeToKeepDim(a.shape,i),l=lt({inputs:{x:a},backend:e,attrs:{shape:u}}),c=Ok({inputs:{a:o,b:l},backend:e}),p=Ak({inputs:{x:c},backend:e}),m=Zc({inputs:{x:p},backend:e,attrs:{axis:i,keepDims:!1}}),f=lt({inputs:{x:m},backend:e,attrs:{shape:u}}),d=Fk({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 V3={kernelName:Ms,backendName:"webgl",kernelFunc:Pk};function tot(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:Pk({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new rv(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],"int32",m);return a||e.disposeIntermediateTensorInfo(u),f}var G3={kernelName:Up,backendName:"webgl",kernelFunc:tot};var eot=fr+` +`,yT=le({opSnippet:Ant,packedOpSnippet:$nt,checkOutOfBounds:!0}),w3={kernelName:Jo,backendName:"webgl",kernelFunc:yT};var C3="return a - b;",bT=le({opSnippet:C3,packedOpSnippet:C3,supportsComplex:!0,cpuKernelImpl:zL}),I3={kernelName:Rs,backendName:"webgl",kernelFunc:bT};function wT(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=xT({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=S.expandShapeToKeepDim(a.shape,i),l=st({inputs:{x:a},backend:e,attrs:{shape:u}}),c=bT({inputs:{a:o,b:l},backend:e}),p=dT({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=yT({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 v3={kernelName:$s,backendName:"webgl",kernelFunc:wT};function Dnt(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:wT({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new LC(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],"int32",m);return a||e.disposeIntermediateTensorInfo(u),f}var S3={kernelName:_p,backendName:"webgl",kernelFunc:Dnt};var Rnt=pr+` return -x; -`,rot=` +`,Fnt=` vec4 result = -x; bvec4 isNaN = isnan(x); @@ -3962,14 +3960,14 @@ return a / b;`,Qnt=` result.a = isNaN.a ? x.a : result.a; return result; -`;function not(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=zL(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return B().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new ro(n.shape,rot):o=new Zr(n.shape,eot),e.runWebGLProgram(o,[n],n.dtype)}var W3={kernelName:gi,backendName:"webgl",kernelFunc:not};var oot=Vr.nonMaxSuppressionV3Impl;function sot(r){S.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}=oot(l,c,i,a,u);return e.makeTensorInfo([p.length],"int32",new Int32Array(p))}var U3={kernelName:Ra,backendName:"webgl",kernelFunc:sot};var iot=Vr.nonMaxSuppressionV4Impl;function aot(r){S.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}=iot(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],"int32",new Int32Array(m)),e.makeTensorInfo([],"int32",new Int32Array([f]))]}var H3={kernelName:Fa,backendName:"webgl",kernelFunc:aot};var lot=Vr.nonMaxSuppressionV5Impl;function uot(r){S.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}=lot(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],"int32",new Int32Array(g)),e.makeTensorInfo([x.length],"float32",new Float32Array(x))]}var q3={kernelName:Oa,backendName:"webgl",kernelFunc:uot};var nv=class{constructor(t,e,n,o){this.variableNames=["indices"],this.outputShape=[t,e],this.userCode=` +`;function Ont(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=IL(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return M().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new no(n.shape,Fnt):o=new tn(n.shape,Rnt),e.runWebGLProgram(o,[n],n.dtype)}var N3={kernelName:ui,backendName:"webgl",kernelFunc:Ont};var Pnt=Wr.nonMaxSuppressionV3Impl;function Lnt(r){S.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}=Pnt(l,c,i,a,u);return e.makeTensorInfo([p.length],"int32",new Int32Array(p))}var k3={kernelName:$a,backendName:"webgl",kernelFunc:Lnt};var Mnt=Wr.nonMaxSuppressionV4Impl;function znt(r){S.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}=Mnt(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],"int32",new Int32Array(m)),e.makeTensorInfo([],"int32",new Int32Array([f]))]}var T3={kernelName:Da,backendName:"webgl",kernelFunc:znt};var Bnt=Wr.nonMaxSuppressionV5Impl;function Vnt(r){S.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}=Bnt(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],"int32",new Int32Array(g)),e.makeTensorInfo([x.length],"float32",new Float32Array(x))]}var E3={kernelName:Ra,backendName:"webgl",kernelFunc:Vnt};var MC=class{constructor(t,e,n,o){this.variableNames=["indices"],this.outputShape=[t,e],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int index = round(getIndices(coords.x)); setOutput(mix(float(${o}), float(${n}), float(index == coords.y))); } - `}};var cot=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 nv(l,i,a,u),p=lt({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=lt({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},K3={kernelName:vs,backendName:"webgl",kernelFunc:cot};function dg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype==="complex64"){let o=bl({inputs:{input:n},backend:e}),s=dg({inputs:{x:o},backend:e}),i=Qc({inputs:{input:n},backend:e}),a=dg({inputs:{x:i},backend:e}),u=An({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return wl({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype==="string"?"":0},backend:e})}var j3={kernelName:Ti,backendName:"webgl",kernelFunc:dg};function X3(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=bl({inputs:{input:n},backend:e}),s=X3({inputs:{x:o},backend:e}),i=Qc({inputs:{input:n},backend:e}),a=dg({inputs:{x:i},backend:e}),u=An({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return wl({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var Y3={kernelName:xi,backendName:"webgl",kernelFunc:X3};function pot(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return VC({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=VC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Ek({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var Z3={kernelName:yi,backendName:"webgl",kernelFunc:pot};var ov=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=Wt(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 Gnt=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 MC(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},_3={kernelName:hs,backendName:"webgl",kernelFunc:Gnt};function tg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype==="complex64"){let o=yl({inputs:{input:n},backend:e}),s=tg({inputs:{x:o},backend:e}),i=Hc({inputs:{input:n},backend:e}),a=tg({inputs:{x:i},backend:e}),u=Tn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return bl({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype==="string"?"":0},backend:e})}var A3={kernelName:yi,backendName:"webgl",kernelFunc:tg};function $3(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=yl({inputs:{input:n},backend:e}),s=$3({inputs:{x:o},backend:e}),i=Hc({inputs:{input:n},backend:e}),a=tg({inputs:{x:i},backend:e}),u=Tn({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return bl({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var D3={kernelName:ci,backendName:"webgl",kernelFunc:$3};function Wnt(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return IC({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=IC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=fT({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var R3={kernelName:pi,backendName:"webgl",kernelFunc:Wnt};var zC=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}; @@ -3994,7 +3992,7 @@ return a / b;`,Qnt=` setOutput(getX(${u})); } } - `}};var sv=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=Wt(o),i=e.map(h=>h[0]).join(","),a=e.map((h,g)=>h[0]+t[g]).join(","),u=tr("rc",o),l=tr("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; + `}};var BC=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; if(${c}) { `,o===1?"":`} rc = outputLoc; @@ -4018,7 +4016,7 @@ return a / b;`,Qnt=` ${d} setOutput(result); } - `}};var Lk=r=>{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 wl({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=B().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new sv(o.shape,s,i):new ov(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},J3={kernelName:Is,backendName:"webgl",kernelFunc:Lk};var mot=` + `}};var CT=r=>{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 bl({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=M().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new BC(o.shape,s,i):new zC(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},F3={kernelName:gs,backendName:"webgl",kernelFunc:CT};var Unt=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -4027,7 +4025,7 @@ return a / b;`,Qnt=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,fot=` +`,Hnt=` // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); @@ -4040,12 +4038,14 @@ return a / b;`,Qnt=` result.b = isExpZero.b ? 1.0 : result.b; result.a = isExpZero.a ? 1.0 : result.a; - vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b)); - `+Au+` + bvec4 isNaN1 = lessThan(a, vec4(0.0)); + bvec4 isNaN2 = lessThan(floor(b), b); + bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w); + `+ji+` return result; -`,dot=ce({opSnippet:mot,packedOpSnippet:fot}),Q3={kernelName:Ss,backendName:"webgl",kernelFunc:dot};function hot(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=S.getAxesPermutation(c,a),m=o;p!=null&&(m=Le({inputs:{x:o},backend:e,attrs:{perm:p}}),c=S.getInnerMostAxes(c.length,a),u.push(m)),S.assertAxesAreInnerMostDims("prod",c,a);let f;if(e.shouldExecuteOnCPU([m])){let d=e.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=VL(m.shape,m.dtype,d,c);f=e.makeTensorInfo(g,x,h)}else{let[d,h]=S.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=lt({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=Xu(o.dtype),w=Un(x,b,"prod",e);f=lt({inputs:{x:w},backend:e,attrs:{shape:d}}),u.push(x),u.push(w)}if(i){u.push(f);let d=S.expandShapeToKeepDim(f.shape,l);f=lt({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var tB={kernelName:Ns,backendName:"webgl",kernelFunc:hot};function got(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]=GL(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var eB={kernelName:Hp,backendName:"webgl",kernelFunc:got};var Mk=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=WL(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},rB={kernelName:Fl,backendName:"webgl",kernelFunc:Mk};var xot="return 1.0 / x;",yot=It({opSnippet:xot}),nB={kernelName:Pa,backendName:"webgl",kernelFunc:yot};var bot=fr+` +`,qnt=le({opSnippet:Unt,packedOpSnippet:Hnt}),O3={kernelName:xs,backendName:"webgl",kernelFunc:qnt};function Knt(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=S.getAxesPermutation(c,a),m=o;p!=null&&(m=Fe({inputs:{x:o},backend:e,attrs:{perm:p}}),c=S.getInnerMostAxes(c.length,a),u.push(m)),S.assertAxesAreInnerMostDims("prod",c,a);let f;if(e.shouldExecuteOnCPU([m])){let d=e.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=SL(m.shape,m.dtype,d,c);f=e.makeTensorInfo(g,x,h)}else{let[d,h]=S.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=st({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=Gu(o.dtype),w=Gn(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=S.expandShapeToKeepDim(f.shape,l);f=st({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var P3={kernelName:bs,backendName:"webgl",kernelFunc:Knt};function jnt(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]=NL(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 L3={kernelName:Ap,backendName:"webgl",kernelFunc:jnt};function Xnt(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]=kL(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var M3={kernelName:$p,backendName:"webgl",kernelFunc:Xnt};var IT=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=TL(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},z3={kernelName:Rl,backendName:"webgl",kernelFunc:IT};var Ynt="return 1.0 / x;",Znt=Ct({opSnippet:Ynt}),B3={kernelName:Fa,backendName:"webgl",kernelFunc:Znt};var Jnt=pr+` return (x < 0.0) ? 0.0 : x; -`,wot=` +`,Qnt=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4055,9 +4055,9 @@ return a / b;`,Qnt=` result.a = isNaN.a ? x.a : result.a; return result; -`,Cot=It({opSnippet:bot,packedOpSnippet:wot}),oB={kernelName:ks,backendName:"webgl",kernelFunc:Cot};var vot=fr+` +`,tot=Ct({opSnippet:Jnt,packedOpSnippet:Qnt}),V3={kernelName:ws,backendName:"webgl",kernelFunc:tot};var eot=pr+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Iot=` +`,rot=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4067,7 +4067,7 @@ return a / b;`,Qnt=` result.a = isNaN.a ? x.a : result.a; return result; -`,Sot=It({opSnippet:vot,packedOpSnippet:Iot}),sB={kernelName:As,backendName:"webgl",kernelFunc:Sot};var iv=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=` +`,not=Ct({opSnippet:eot,packedOpSnippet:rot}),G3={kernelName:vs,backendName:"webgl",kernelFunc:not};var VC=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=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${c[0]/p[0]}, ${c[1]/p[1]}); @@ -4100,7 +4100,7 @@ return a / b;`,Qnt=` setOutput(newValue); } - `}};var av=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=` + `}};var GC=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=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${c[0]/p[0]}, ${c[1]/p[1]}, @@ -4177,7 +4177,7 @@ return a / b;`,Qnt=` setOutput(newValue); } - `}};function Tot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=B().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new av(o.shape,u,l,s,i):new iv(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],"float32")}var iB={kernelName:Es,backendName:"webgl",kernelFunc:Tot};var lv=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=` + `}};function oot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=M().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new GC(o.shape,u,l,s,i):new VC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],"float32")}var W3={kernelName:Is,backendName:"webgl",kernelFunc:oot};var WC=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=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -4258,7 +4258,7 @@ return a / b;`,Qnt=` setOutput(accumulator); } - `}};function Not(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new lv(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var aB={kernelName:jp,backendName:"webgl",kernelFunc:Not};var uv=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=` + `}};function sot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new WC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var U3={kernelName:Fp,backendName:"webgl",kernelFunc:sot};var UC=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=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${c[0]/p[0]}, ${c[1]/p[1]}); @@ -4280,7 +4280,7 @@ return a / b;`,Qnt=` setOutput(newValue); } - `}};var cv=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=` + `}};var HC=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=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${c[0]/p[0]}, ${c[1]/p[1]}, @@ -4321,7 +4321,7 @@ return a / b;`,Qnt=` setOutput(newValue); } - `}};function kot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=B().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new cv(o.shape,u,l,s,i):new uv(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var lB={kernelName:_s,backendName:"webgl",kernelFunc:kot};var pv=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=` + `}};function iot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=M().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new HC(o.shape,u,l,s,i):new UC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var H3={kernelName:Cs,backendName:"webgl",kernelFunc:iot};var qC=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=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -4391,17 +4391,17 @@ return a / b;`,Qnt=` setOutput(accumulator); } - `}};function _ot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new pv(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var uB={kernelName:Kp,backendName:"webgl",kernelFunc:_ot};var mv=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=` + `}};function aot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new qC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var q3={kernelName:Rp,backendName:"webgl",kernelFunc:aot};var KC=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=` void main() { int coord = getOutputCoords(); setOutput(getX(${t[0]} - coord - 1)); } - `;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=Wt(n);this.userCode=` + `;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=` void main() { ${i} coords = getOutputCoords(); setOutput(getX(${s})); } - `}};var fv=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=tr("rc",n),s=`${o[n-1]} + 1 < ${this.outputShape[n-1]}`,i=`${o[n-2]} + 1 < ${this.outputShape[n-2]}`,a=Wt(n);n===1?this.userCode=` + `}};var jC=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=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); @@ -4429,7 +4429,7 @@ return a / b;`,Qnt=` } setOutput(result); } - `;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 Eot(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 er({inputs:{x:o},backend:e});let u=B().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new fv(o.shape,a):new mv(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var cB={kernelName:$s,backendName:"webgl",kernelFunc:Eot};var dv=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=` + `;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 lot(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=M().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new jC(o.shape,a):new KC(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var K3={kernelName:Ss,backendName:"webgl",kernelFunc:lot};var XC=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=` vec3 fill = vec3(${e.join(",")}); float outputValue = fill[coords[3]];`,this.userCode=` void main() { @@ -4448,7 +4448,7 @@ return a / b;`,Qnt=` } setOutput(outputValue); } - `}};var pB={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 dv(n.shape,s),[l,c]=S.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 Aot=` + `}};var j3={kernelName:Ua,backendName:"webgl",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=new XC(n.shape,s),[l,c]=S.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 uot=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -4463,7 +4463,7 @@ return a / b;`,Qnt=` return base + 1.0; } } -`,$ot=It({opSnippet:Aot}),mB={kernelName:Ds,backendName:"webgl",kernelFunc:$ot};var Dot="return inversesqrt(x);",Rot=It({opSnippet:Dot,cpuKernelImpl:UL}),fB={kernelName:Rs,backendName:"webgl",kernelFunc:Rot};var zd=class{constructor(t,e,n,o,s,i,a=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=i;let u=Wt(s.length),l=Wt(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=` +`,cot=Ct({opSnippet:uot}),X3={kernelName:Ns,backendName:"webgl",kernelFunc:cot};var pot="return inversesqrt(x);",mot=Ct({opSnippet:pot,cpuKernelImpl:EL}),Y3={kernelName:ks,backendName:"webgl",kernelFunc:mot};var Td=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=` ${u} strides = ${u}(${s}); void main() { @@ -4483,7 +4483,7 @@ return a / b;`,Qnt=` } setOutput(mix(getDefaultValue(), sum, float(found))); } - `}};function Fot(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}=S.calculateShapes(s,o,i),m=[p/l,l];if(p===0)return e.makeTensorInfo(i,o.dtype);let f=lt({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=lt({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],"float32",new Float32Array([0])),g=new zd(u,a,f.shape.length,d.shape.length,c,m),x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=lt({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var dB={kernelName:La,backendName:"webgl",kernelFunc:Fot};var hv=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=B().getNumber("WEBGL_VERSION")===2?s:i,u=o==="left"?"<":"<=";this.userCode=` + `}};function fot(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}=S.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 Td(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 Z3={kernelName:Oa,backendName:"webgl",kernelFunc:fot};var YC=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=M().getNumber("WEBGL_VERSION")===2?s:i,u=o==="left"?"<":"<=";this.userCode=` int findBound(int batch, float value) { int left = 0; int right = numInputs; @@ -4508,7 +4508,7 @@ return a / b;`,Qnt=` setOutput(float(findBound(batch, value))); } - `}};function Oot(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n,a=new hv(o.shape[0],o.shape[1],s.shape[1],i),u=[[o.shape[1]]];return e.runWebGLProgram(a,[o,s],"int32",u)}var hB={kernelName:Xp,backendName:"webgl",kernelFunc:Oot};var gv=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;c4)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= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); -`,Mot=It({opSnippet:Lot}),xB={kernelName:Ma,backendName:"webgl",kernelFunc:Mot};var zot=Oo+` +`,xot=Ct({opSnippet:got}),tB={kernelName:Pa,backendName:"webgl",kernelFunc:xot};var yot=Oo+` return 1.0 / (1.0 + exp(-1.0 * x)); -`,Bot=` +`,bot=` vec4 result = 1.0 / (1.0 + exp(-1.0 * x)); bvec4 isNaN = isnan(x); @@ -4536,15 +4536,15 @@ return a / b;`,Qnt=` result.a = isNaN.a ? x.a : result.a; return result; -`,Vot=It({opSnippet:zot,packedOpSnippet:Bot,cpuKernelImpl:qL}),yB={kernelName:Os,backendName:"webgl",kernelFunc:Vot};var Got=` +`,wot=Ct({opSnippet:yot,packedOpSnippet:bot,cpuKernelImpl:AL}),eB={kernelName:Es,backendName:"webgl",kernelFunc:wot};var Cot=` if (isnan(x)) { return 0.0; } return sign(x); -`,Wot=It({opSnippet:Got}),bB={kernelName:Ba,backendName:"webgl",kernelFunc:Wot};var Uot=Oo+` +`,Iot=Ct({opSnippet:Cot}),rB={kernelName:Ma,backendName:"webgl",kernelFunc:Iot};var vot=Oo+` return sin(x); -`,Hot=It({opSnippet:Uot}),wB={kernelName:Fs,backendName:"webgl",kernelFunc:Hot};var qot=` +`,Sot=Ct({opSnippet:vot}),nB={kernelName:Ts,backendName:"webgl",kernelFunc:Sot};var Not=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,Kot=It({opSnippet:qot}),CB={kernelName:za,backendName:"webgl",kernelFunc:Kot};var jot=` +`,kot=Ct({opSnippet:Not}),oB={kernelName:La,backendName:"webgl",kernelFunc:kot};var Tot=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -4564,17 +4564,17 @@ return a / b;`,Qnt=` result = log(exp_x + 1.0); } return result; -`,Xot=It({opSnippet:jot}),vB={kernelName:Va,backendName:"webgl",kernelFunc:Xot};var Yot=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},IB={kernelName:vi,backendName:"webgl",kernelFunc:Yot};function Zot(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: +`,Eot=Ct({opSnippet:Tot}),sB={kernelName:za,backendName:"webgl",kernelFunc:Eot};var _ot=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},iB={kernelName:hi,backendName:"webgl",kernelFunc:_ot};function Aot(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: - ${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]=jL(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 SB={kernelName:Ol,backendName:"webgl",kernelFunc:Zot};function Jot(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]=XL(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var TB={kernelName:Ga,backendName:"webgl",kernelFunc:Jot};function Qot(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 + ${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]=DL(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 aB={kernelName:Fl,backendName:"webgl",kernelFunc:Aot};function $ot(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]=RL(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var lB={kernelName:Ba,backendName:"webgl",kernelFunc:$ot};function Dot(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]=Jw(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var NB={kernelName:Pl,backendName:"webgl",kernelFunc:Qot};function tst(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 + ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=Fw(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var uB={kernelName:Ol,backendName:"webgl",kernelFunc:Dot};function Rot(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]=Jw(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var kB={kernelName:Ll,backendName:"webgl",kernelFunc:tst};function est(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}=S.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=HL(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,C.dtype,C.values)}let d=new zd(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=lt({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var _B={kernelName:Yp,backendName:"webgl",kernelFunc:est};function rst(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=S.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=ai({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var EB={kernelName:Ii,backendName:"webgl",kernelFunc:rst};var AB="return sqrt(x);",nst=It({opSnippet:AB,packedOpSnippet:AB,cpuKernelImpl:YL}),$B={kernelName:Ps,backendName:"webgl",kernelFunc:nst};var ost="return x * x;",sst=It({opSnippet:ost}),DB={kernelName:Ml,backendName:"webgl",kernelFunc:sst};var RB="return (a - b) * (a - b);",ist=ce({opSnippet:RB,packedOpSnippet:RB}),FB={kernelName:zs,backendName:"webgl",kernelFunc:ist};function ast({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]=Fw(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var cB={kernelName:Pl,backendName:"webgl",kernelFunc:Rot};function Fot(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}=S.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=_L(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,C.dtype,C.values)}let d=new Td(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 pB={kernelName:Pp,backendName:"webgl",kernelFunc:Fot};function Oot(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=S.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=ti({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var mB={kernelName:gi,backendName:"webgl",kernelFunc:Oot};var fB="return sqrt(x);",Pot=Ct({opSnippet:fB,packedOpSnippet:fB,cpuKernelImpl:FL}),dB={kernelName:_s,backendName:"webgl",kernelFunc:Pot};var Lot="return x * x;",Mot=Ct({opSnippet:Lot}),hB={kernelName:Ll,backendName:"webgl",kernelFunc:Mot};var gB="return (a - b) * (a - b);",zot=le({opSnippet:gB,packedOpSnippet:gB}),xB={kernelName:Ds,backendName:"webgl",kernelFunc:zot};function Bot({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=pr+` return x > 0.0 ? 1.0 : float(${t.alpha}); - `,s=new Zr(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var OB={kernelName:co,backendName:"webgl",kernelFunc:ast};var xv=class{constructor(t,e,n){this.variableNames=["x"],this.outputShape=n;let o=n.length,s=Wt(n.length),i=Wt(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=new tn(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var yB={kernelName:uo,backendName:"webgl",kernelFunc:Bot};var JC=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}); ${s} strides = ${s}(${e}); @@ -4582,15 +4582,15 @@ return a / b;`,Qnt=` ${i} coords = getOutputCoords(); setOutput(getX(${a})); } - `}};function lst(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}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),T;if(h)T=lt({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 $=Be.computeOutShape(b,w,C),D=ai({inputs:{x:o},backend:e,attrs:{begin:b,size:$}});T=lt({inputs:{x:D},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(D)}else if(e.shouldExecuteOnCPU([o])){let D=e.readSync(o.dataId),P=vt(o.shape,o.dtype,D),M=ZL(f,P,C,b);T=e.makeTensorInfo(d,o.dtype,M.values)}else{let D=new xv(b,C,f);T=e.runWebGLProgram(D,[o],o.dtype)}let E=lt({inputs:{x:T},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(T),E}var PB={kernelName:Wa,backendName:"webgl",kernelFunc:lst};function ust(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]=JL(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var LB={kernelName:zl,backendName:"webgl",kernelFunc:ust};function cst(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]=QL(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 MB={kernelName:Bl,backendName:"webgl",kernelFunc:cst};function pst(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=tM(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var zB={kernelName:Vl,backendName:"webgl",kernelFunc:pst};var mst="return tan(x);",fst=It({opSnippet:mst}),BB={kernelName:Vs,backendName:"webgl",kernelFunc:fst};var dst=` + `}};function Vot(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}=Pe.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=Pe.computeOutShape(b,w,C),$=ti({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=OL(f,F,C,b);N=e.makeTensorInfo(d,o.dtype,P.values)}else{let $=new JC(b,C,f);N=e.runWebGLProgram($,[o],o.dtype)}let _=st({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),_}var bB={kernelName:Va,backendName:"webgl",kernelFunc:Vot};function Got(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]=PL(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var wB={kernelName:Ml,backendName:"webgl",kernelFunc:Got};function Wot(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]=LL(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 CB={kernelName:zl,backendName:"webgl",kernelFunc:Wot};function Uot(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=ML(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var IB={kernelName:Bl,backendName:"webgl",kernelFunc:Uot};var Hot="return tan(x);",qot=Ct({opSnippet:Hot}),vB={kernelName:Fs,backendName:"webgl",kernelFunc:qot};var Kot=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,hst=It({opSnippet:dst}),VB={kernelName:Gs,backendName:"webgl",kernelFunc:hst};var yv=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=vt(o.shape,o.dtype,l),p=rM(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new yv(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var GB={kernelName:Xn,backendName:"webgl",kernelFunc:zk};var bv=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=` + `}};function Xot(r){let t=r.length;if(t>5)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=BL(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new QC(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var NB={kernelName:Zn,backendName:"webgl",kernelFunc:vT};var tI=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=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -4630,7 +4630,7 @@ return a / b;`,Qnt=` setOutput(float(i1)); } } - `}},wv=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=` + `}},eI=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=` void main() { // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ... ivec2 coords = getOutputCoords(); @@ -4664,7 +4664,7 @@ return a / b;`,Qnt=` setOutput(x0 >= x1 ? float(i0) : float(i1)); } - `}};function ep(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function WB(r){let t=1;for(;tu){let M=e.readSync(o.dataId),[W,H]=nM(M,l,o.dtype,s,i);return[e.makeTensorInfo(W.shape,W.dtype,W.values),e.makeTensorInfo(H.shape,H.dtype,H.values)]}if(s===0)return l[l.length-1]=0,[e.makeTensorInfo(l,o.dtype,[]),e.makeTensorInfo(l,"int32",[])];if(c===1)return[o,wl({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=lt({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&ep(e,f);let x=WB(s),b=WB(c),w=null,C=()=>w===null?[g,g]:[g,w],T=(M,W,H)=>{let q=C(),X=new bv(H),Z=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[M],[W]],et=w;w=e.runWebGLProgram(X,q,"int32",Z),ep(e,et)};for(let M=1;M=1;H/=2)T(W,H,[h,b])}for(let M=b;M>x;M/=2){let W=C(),H=new wv([h,M/2]),X=[[c],[w===null?1:0],[x]],j=w;w=e.runWebGLProgram(H,W,"int32",X),ep(e,j);let Z=x/2,et=Z*2;for(let K=Z;K>=1;K/=2)T(et,K,w.shape)}let E=w;w=ai({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),ep(e,E);let $=Dk({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});ep(e,g);let D=l.slice(0,-1);D.push(s),E=w,w=lt({inputs:{x:w},attrs:{shape:D},backend:e}),ep(e,E);let P=$;return $=lt({inputs:{x:$},attrs:{shape:D},backend:e}),ep(e,P),[$,w]}var UB={kernelName:Ua,backendName:"webgl",kernelFunc:xst};var Cv=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 kB(r){let t=1;for(;tu){let P=e.readSync(o.dataId),[V,G]=VL(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,bl({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=kB(s),b=kB(c),w=null,C=()=>w===null?[g,g]:[g,w],N=(P,V,G)=>{let W=C(),q=new tI(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 eI([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=ti({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),Kc(e,_);let A=gT({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 TB={kernelName:Ga,backendName:"webgl",kernelFunc:Yot};var rI=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) { @@ -4776,7 +4776,7 @@ return a / b;`,Qnt=` } setOutput(outputValue); } - `}};function yst(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 Cv(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],"float32")}var HB={kernelName:Ha,backendName:"webgl",kernelFunc:yst};function bst(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;oi(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}=oM(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],"int32",l)]}var qB={kernelName:Zp,backendName:"webgl",kernelFunc:bst};function wst(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 KB={kernelName:Si,backendName:"webgl",kernelFunc:wst};var vv=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 Zot(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 rI(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],"float32")}var EB={kernelName:Wa,backendName:"webgl",kernelFunc:Zot};function Jot(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;Zs(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}=GL(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],"int32",l)]}var _B={kernelName:Lp,backendName:"webgl",kernelFunc:Jot};function Qot(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 AB={kernelName:xi,backendName:"webgl",kernelFunc:Qot};var nI=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}) { @@ -4882,6 +4882,6 @@ return a / b;`,Qnt=` } setOutput(${l}); } - `}};function Cst(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=S.getAxesPermutation([l],a),p=o;c!=null&&(p=Le({inputs:{x:o},backend:e,attrs:{perm:c}}),u.push(p),l=S.getInnerMostAxes(1,a)[0]);let m=S.segment_util.computeOutShape(p.shape,l,i),f=y.sizeFromShape([p.shape[l]]),d=lt({inputs:{x:p},backend:e,attrs:{shape:[-1,f]}});u.push(d);let h=Xu(o.dtype),g=(C,T,E,$,D)=>{let P=C.shape[0],M=C.shape[1],W=S.segment_util.segOpComputeOptimalWindowSize(M,D),H={windowSize:W,inSize:M,batchSize:P,numSegments:D},q=new vv(H,T),X=e.compileAndRun(q,[C,E],$);if(u.push(X),X.shape[1]===D)return X;let j=Mk({backend:e,attrs:{start:0,stop:D,step:1,dtype:"float32"}}),Z=zk({inputs:{x:j},backend:e,attrs:{reps:[M/W]}});return u.push(j),u.push(Z),g(X,T,Z,$,D)},x=g(d,"unsortedSegmentSum",s,h,i),b=lt({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let C=S.getUndoAxesPermutation(c);w=Le({inputs:{x:w},backend:e,attrs:{perm:C}})}return u.forEach(C=>e.disposeIntermediateTensorInfo(C)),w}var jB={kernelName:Gl,backendName:"webgl",kernelFunc:Cst};var vst=[OM,LM,MM,zM,VM,GM,WM,UM,KM,jM,XM,YM,ZM,JM,QM,tz,ez,rz,nz,oz,sz,az,lz,uz,fz,hz,gz,IM,yz,wz,Cz,vz,Iz,Sz,Tz,Nz,kz,_z,Ez,Dz,Rz,Fz,Oz,Pz,Lz,Mz,zz,Bz,Vz,Gz,Wz,Uz,Hz,qz,Kz,Xz,Yz,Zz,Jz,t3,e3,r3,n3,o3,s3,i3,a3,l3,vM,u3,bz,c3,p3,m3,SM,f3,d3,h3,g3,x3,y3,b3,w3,C3,v3,S3,T3,N3,k3,_3,E3,$3,R3,F3,O3,P3,L3,G3,EM,W3,U3,H3,q3,cz,K3,Y3,Z3,J3,Q3,TM,tB,eB,rB,pz,M3,nB,oB,sB,$M,iB,aB,lB,uB,cB,pB,mB,fB,dB,hB,gB,xB,yB,bB,wB,CB,iz,V3,vB,IB,SB,TB,NB,kB,_B,EB,$B,DB,FB,OB,PB,LB,MB,zB,B3,RM,BB,VB,GB,UB,HB,FM,qB,KB,jB,j3];for(let r of vst)Wu(r);var Zt;(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"})(Zt||(Zt={}));var Ru;(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"})(Ru||(Ru={}));var XB;function Ist(r){XB=r.wasm.cwrap(Ni,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Sst(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 D=e.dataIdMap.get(i.dataId);if(D.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${D.shape.length}.`);d=D.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=Ru[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=Lr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),C=e.makeOutput([...w,x,b],o.dtype),T=e.dataIdMap.get(C.dataId).id,E=new Uint8Array(new Int32Array(o.shape).buffer),$=new Uint8Array(new Int32Array(s.shape).buffer);return XB(m,E,o.shape.length,f,$,s.shape.length,u,l,g,d,h,p||0,T),C}var YB={kernelName:Ni,backendName:"wasm",setupFunc:Ist,kernelFunc:Sst};function ae(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,Zt[a.dtype],c),l}return{kernelName:r,backendName:"wasm",setupFunc:n,kernelFunc:o}}var ZB=ae(pi);function pe(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=S.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,Zt[l.dtype],b))(),h}return{kernelName:r,backendName:"wasm",setupFunc:o,kernelFunc:s}}var Tst=!0,JB=pe(jn,Tst);var QB;function Nst(r){QB=r.wasm.cwrap(jo,null,["array","number","number","number"])}function kst(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 QB(s,o.length,Zt[n.dtype],i),n}var tV={kernelName:jo,backendName:"wasm",setupFunc:Nst,kernelFunc:kst};function rp(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype),o=e.typedArrayFromHeap(t);return e.typedArrayFromHeap(n).set(o),n}var eV={kernelName:uo,backendName:"wasm",kernelFunc:rp};var rV;function _st(r){rV=r.wasm.cwrap(Yn,null,["number","array","number","number","number","array","number"])}function oo(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=Ast(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 nV={kernelName:Yn,backendName:"wasm",kernelFunc:oo,setupFunc:_st};function wn(r,t,e){let n=r.shape,o=r.shape.length,s=y.parseAxisParam(t,n),i=s,a=S.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 mV={kernelName:bi,backendName:"wasm",kernelFunc:lr};var fV;function zst(r){fV=r.wasm.cwrap(Zo,null,["number","array","number","number","array","number","number","number","number"])}function Bst(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=Lr.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],T=a?[x,f,p]:[x,p,f],E=lr({inputs:{x:o},backend:e,attrs:{shape:C}}),$=lr({inputs:{x:s},backend:e,attrs:{shape:T}}),D=e.dataIdMap.get(E.dataId).id,P=e.dataIdMap.get($.dataId).id,M=i?E.shape[2]:E.shape[1],W=a?$.shape[1]:$.shape[2],H=Math.max(g,x),q=e.makeOutput([H,M,W],E.dtype),X=e.dataIdMap.get(q.dataId).id,j=new Uint8Array(new Int32Array(E.shape).buffer),Z=new Uint8Array(new Int32Array($.shape).buffer);return fV(D,j,E.shape.length,P,Z,$.shape.length,i,a,X),e.disposeData(E.dataId),e.disposeData($.dataId),q.shape=w,q}var dV={kernelName:Zo,backendName:"wasm",setupFunc:zst,kernelFunc:Bst};function Po(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=Be.parseSliceParams(t,e,n),a=Be.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=Be.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=zc(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)Vst(u,c[0],m,s,i);else if(f===3)Gst(u,c[0],c[1],m,s,i);else if(f===4)Wst(u,c[0],c[1],c[2],m,s,i);else{let d=zc(u,s,i,t.shape,t.dtype);m.set(d)}return l}function Vst(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=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=lr({inputs:{x:o},backend:e,attrs:{shape:u}}),d=oo({inputs:{x:f},backend:e,attrs:{perm:l}}),h=lr({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Po({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 gV={kernelName:mi,backendName:"wasm",kernelFunc:Ust};function li(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 xV={kernelName:ao,backendName:"wasm",kernelFunc:li};var yV=ae(Jo);var bV;function Hst(r){bV=r.wasm.cwrap(lo,null,["number","number","number","number"])}function qst(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 bV(a,s,i,l),u}var wV={kernelName:lo,backendName:"wasm",setupFunc:Hst,kernelFunc:qst};function Bk(r){let{inputs:t,backend:e}=r,n=y.parseAxisParam(r.attrs.axis,t[0].shape)[0],o=S.computeOutShape(t.map(f=>f.shape),n),s=t.filter(f=>y.sizeFromShape(f.shape)>0);if(s.length===1)return rp({inputs:{x:s[0]},backend:e});let i=e.makeOutput(o,t[0].dtype);if(y.sizeFromShape(o)===0)return i;let a=s.map(f=>f.shape);if(S.assertParamsConsistent(a,n),s[0].dtype==="string"){let f=s.map(w=>{let C=y.sizeFromShape(w.shape.slice(n));return lr({inputs:{x:w},backend:e,attrs:{shape:[-1,C]}})}),d=f.map(w=>({vals:e.readSync(w.dataId),shape:w.shape}));o=S.computeOutShape(f.map(w=>w.shape),1);let h=f[0].shape[0]===1,g=Pc(d,o,t[0].dtype,h),x=S.computeOutShape(s.map(w=>w.shape),n);i.shape=x;let b=e.dataIdMap.get(i.dataId);return b.stringBytes=S.fromStringArrayToUint8(g),f.forEach(w=>e.disposeData(w.dataId)),i}let u=y.sizeFromShape(s[0].shape.slice(0,n)),l=0,c=s.map(f=>{let d=y.sizeFromShape(f.shape.slice(n));return l+=d,d}),p=s.map(f=>e.typedArrayFromHeap(f)),m=e.typedArrayFromHeap(i);for(let f=0;f`cumprod does not support ${o.dtype} tensors in the WASM backend`);let l=S.getAxesPermutation([s],u),c=o;l!==null&&(c=oo({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.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;AV(d,i?1:0,a?1:0,f,h,Zt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=oo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var $V={kernelName:fa,backendName:"wasm",setupFunc:Qst,kernelFunc:tit};var DV;function eit(r){DV=r.wasm.cwrap(ns,null,["number","number","number","number","number","number"])}function rit(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=S.getAxesPermutation([s],u),c=o;l!==null&&(c=oo({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.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;DV(d,i?1:0,a?1:0,f,h,Zt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=oo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var RV={kernelName:ns,backendName:"wasm",setupFunc:eit,kernelFunc:rit};var FV;function nit(r){FV=r.wasm.cwrap(ha,null,["number","number","number","array","number","array","array","number","number"])}function oit(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),T=t.dataIdMap.get(h.dataId).id;return FV(x,s,i==="NHWC"?1:0,b,o.shape.length-1,w,C,d.length,T),h}var OV={kernelName:ha,backendName:"wasm",setupFunc:nit,kernelFunc:oit};var PV;function sit(r){PV=r.wasm.cwrap(os,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function iit(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=S.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,T=f.dilationWidth,E=f.strideHeight,$=f.strideWidth,D=f.inChannels,P=f.outChannels,M=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 W=n.makeOutput(f.outShape,"float32"),H=n.dataIdMap.get(W.dataId).id;return PV(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,M,C,T,E,$,D,P,H),W}var LV={kernelName:os,backendName:"wasm",setupFunc:sit,kernelFunc:iit};var MV=ae(is);var ait=!1,zV=pe(xa,ait,"bool");var BV=ae(as,"float32");function Iv(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),lr({inputs:{x:o},backend:n,attrs:{shape:a}})}var VV={kernelName:di,backendName:"wasm",kernelFunc:Iv};function Gk(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 GV={kernelName:$l,backendName:"wasm",kernelFunc:Gk};var WV;function lit(r){WV=r.wasm.cwrap(ba,null,["number","number","number","number","number","number"])}function uit(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 WV(s,a,u,l,c,i),o}var UV={kernelName:ba,backendName:"wasm",kernelFunc:uit,setupFunc:lit};var HV=ae(ls);var cit=!1,qV=pe(us,cit);var KV;function pit(r){KV=r.wasm.cwrap(cs,null,["number","number","number","number","number","number","number"])}function mit(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 KV(c,p,m,f,d,o,g),h}var jV={kernelName:cs,backendName:"wasm",setupFunc:pit,kernelFunc:mit};var XV;function fit(r){XV=r.wasm.cwrap(ki,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=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m),g=Ru[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 at=n.dataIdMap.get(i.dataId);if(at.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${at.shape.length}.`);if(at.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${at.shape}) does not match the number of output channels (${w})`);C=at.id}let T=h.filterHeight,E=h.filterWidth,$=h.padInfo.top,D=h.padInfo.right,P=h.padInfo.bottom,M=h.padInfo.left,W=h.dilationHeight,H=h.dilationWidth,q=h.strideHeight,X=h.strideWidth,j=h.inChannels,Z=h.padInfo.type==="SAME"?1:0,et=h.batchSize,K=h.inHeight,ot=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let st=n.makeOutput(h.outShape,"float32"),it=n.dataIdMap.get(st.dataId).id,pt=a==null?0:n.dataIdMap.get(a.dataId).id;return XV(x,et,K,ot,b,T,E,C,$,D,P,M,Z,W,H,q,X,j,w,g,pt,d||0,it),st}var YV={kernelName:ki,backendName:"wasm",setupFunc:fit,kernelFunc:dit};var ZV;function hit(r){ZV=r.wasm.cwrap(_i,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 git(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=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m,!0),g=Ru[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 at=n.dataIdMap.get(i.dataId);if(at.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${at.shape.length}.`);if(at.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${at.shape}) does not match the number of output channels (${w})`);C=at.id}let T=h.filterHeight,E=h.filterWidth,$=h.padInfo.top,D=h.padInfo.right,P=h.padInfo.bottom,M=h.padInfo.left,W=h.dilationHeight,H=h.dilationWidth,q=h.strideHeight,X=h.strideWidth,j=h.inChannels,Z=h.padInfo.type==="SAME"?1:0,et=h.batchSize,K=h.inHeight,ot=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let st=n.makeOutput(h.outShape,"float32"),it=n.dataIdMap.get(st.dataId).id,pt=a==null?0:n.dataIdMap.get(a.dataId).id;return ZV(x,et,K,ot,b,T,E,C,$,D,P,M,Z,W,H,q,X,j,w,g,pt,d||0,it),st}var JV={kernelName:_i,backendName:"wasm",setupFunc:hit,kernelFunc:git};var QV;function xit(r){QV=r.wasm.cwrap(wa,null,["number","number","number","number","number","number","array","number"])}function yit(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=yx.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 QV(f,Zt[n.dtype],h,i,p,a,g,x),l}var tG={kernelName:wa,backendName:"wasm",setupFunc:xit,kernelFunc:yit};var eG;function bit(r){eG=r.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function wit(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 P=0;P=0,()=>`GatherV2: the index value ${M} is not in [0, ${c-1}]`)}let p=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),m=lr({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=lr({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,T=t.dataIdMap.get(d.dataId).id,E=t.dataIdMap.get(g.dataId).id,$=new Uint8Array(new Int32Array(y.computeStrides(m.shape)).buffer),D=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return eG(w,Zt[o.dtype],$,x,T,p.batchSize,D,E),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var rG={kernelName:hi,backendName:"wasm",setupFunc:bit,kernelFunc:wit};var Cit=!1,nG=pe(Ca,Cit,"bool");var vit=!1,oG=pe(ps,vit,"bool");var sG;function Iit(r){sG=r.wasm.cwrap(ms,null,["number","number","number","number"])}function Sit(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;sG(o,Zt[t.dtype],e,i)}return s}var iG={kernelName:ms,backendName:"wasm",setupFunc:Iit,kernelFunc:Sit};var Tit=!1,aG=pe(Ta,Tit,"bool");var Nit=!1,lG=pe(Na,Nit,"bool");var uG=ae(fs);var kit=!1,cG=pe(_a,kit,"bool");var pG=ae(Ea);var _it=!1,mG=pe(Aa,_it,"bool");var Eit=!1,fG=pe(k1,Eit,"bool");var dG;function Ait(r){dG=r.wasm.cwrap(ds,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}=wn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;l=c,u=w}let d=l.shape.length;S.assertAxesAreInnerMostDims("max",p,d);let[h,g]=S.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;dG(u,Zt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var hG={kernelName:ds,backendName:"wasm",setupFunc:Ait,kernelFunc:$it};var Dit=!1,gG=pe(hs,Dit);var xG;function Rit(r){xG=r.wasm.cwrap(gs,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Fit(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=S.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,T=c.inChannels,E=c.outChannels;if(c.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let $=n.makeOutput(c.outShape,"float32"),D=n.dataIdMap.get($.dataId).id;return xG(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,C,T,E,D),$}var yG={kernelName:gs,backendName:"wasm",setupFunc:Rit,kernelFunc:Fit};var bG;function Oit(r){bG=r.wasm.cwrap(xs,null,["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}=wn(i,o,t),d=p;if(f){let C=t.dataIdMap.get(c.dataId).id;C!==a&&(l=c,u=C,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims("mean",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=l;l.dtype!=="float32"&&(b=li({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;bG(u,x,C)}if(f&&t.disposeData(c.dataId),s){let C=S.expandShapeToKeepDim(w.shape,m);w.shape=C}return l.dtype!=="float32"&&t.disposeData(b.dataId),w}var wG={kernelName:xs,backendName:"wasm",setupFunc:Oit,kernelFunc:Pit};var CG;function Lit(r){CG=r.wasm.cwrap(ys,null,["number","number","number","number"])}function Mit(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}=wn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w)}let d=l.shape.length;S.assertAxesAreInnerMostDims("min",p,d);let[h,g]=S.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;CG(u,Zt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var vG={kernelName:ys,backendName:"wasm",setupFunc:Lit,kernelFunc:Mit};var zit=!1,IG=pe(bs,zit);var Wk;(function(r){r[r.reflect=0]="reflect",r[r.symmetric=1]="symmetric"})(Wk||(Wk={}));var SG;function Bit(r){SG=r.wasm.cwrap(ws,null,["number","array","number","number","array","array","number","number"])}function Vit(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 SG(i,l,t.shape.length,Zt[t.dtype],m,f,Wk[o],u),a}var TG={kernelName:ws,backendName:"wasm",kernelFunc:Vit,setupFunc:Bit};var Git=!0,NG=pe(Cs,Git);var kG=ae(gi);function Bd(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 _G;function Wit(r){_G=r.wasm.cwrap(Ra,"number",["number","number","number","number","number"])}function Uit(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=_G(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Bd(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],"int32",m)}var EG={kernelName:Ra,backendName:"wasm",setupFunc:Wit,kernelFunc:Uit};var AG;function Hit(r){AG=r.wasm.cwrap(Fa,"number",["number","number","number","number","number","bool"])}function qit(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=AG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Bd(t,m);t.wasm._free(h);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([],"int32",g);return[x,b]}var $G={kernelName:Fa,backendName:"wasm",setupFunc:Hit,kernelFunc:qit};var DG;function Kit(r){DG=r.wasm.cwrap(Oa,"number",["number","number","number","number","number","number"])}function jit(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=DG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Bd(t,m);t.wasm._free(g);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([d],"float32",h);return[x,b]}var RG={kernelName:Oa,backendName:"wasm",setupFunc:Kit,kernelFunc:jit};var Xit=!1,FG=pe(Da,Xit,"bool");var OG;function Yit(r){OG=r.wasm.cwrap(vs,null,["number","number","number","number","number"])}function Zit(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 OG(m,i,a,u,c),l}var PG={kernelName:vs,backendName:"wasm",setupFunc:Yit,kernelFunc:Zit};function Jit(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var LG={kernelName:xi,backendName:"wasm",kernelFunc:Jit};function Qit(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return Iv({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=Iv({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Bk({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var MG={kernelName:yi,backendName:"wasm",kernelFunc:Qit};var zG;function tat(r){zG=r.wasm.cwrap(Is,null,["number","array","number","number","array","array","number","number"])}function eat(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 Gk({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 zG(i,c,t.shape.length,Zt[t.dtype],f,d,o,l),a}var Sv={kernelName:Is,backendName:"wasm",kernelFunc:eat,setupFunc:tat};var rat=!1,BG=pe(Ss,rat);var VG;function nat(r){VG=r.wasm.cwrap(Ts,null,["number","number","number"])}function oat(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=li({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 VG(a,i,p),u.dtype!=="float32"&&e.disposeData(l.dataId),c}var GG={kernelName:Ts,backendName:"wasm",setupFunc:nat,kernelFunc:oat};var WG;function sat(r){WG=r.wasm.cwrap(Ns,null,["number","number","number","number"])}function iat(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}=wn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims("prod",d,l.shape.length);let[h,g]=S.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;WG(u,x,Zt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var UG={kernelName:Ns,backendName:"wasm",setupFunc:sat,kernelFunc:iat};var aat=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=Mc(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},HG={kernelName:Fl,backendName:"wasm",kernelFunc:aat};var lat=!0,qG=pe(ss,lat);var KG=ae(ks);var jG=ae(As);var XG;function uat(r){XG=r.wasm.cwrap(Es,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.dataIdMap.get(o.dataId),g;h.dtype!=="float32"&&(g=li({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 XG(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var YG={kernelName:Es,backendName:"wasm",setupFunc:uat,kernelFunc:cat};var ZG;function pat(r){ZG=r.wasm.cwrap(_s,null,["number","number","number","number","number","number","number","number","number","number"])}function mat(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=li({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 ZG(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var JG={kernelName:_s,backendName:"wasm",setupFunc:pat,kernelFunc:mat};var QG;function fat(r){QG=r.wasm.cwrap($s,null,["number","array","number","array","number","number"])}function dat(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 rp({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);QG(u,c,i.length,p,o.shape.length,l);let m=lr({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var tW={kernelName:$s,backendName:"wasm",kernelFunc:dat,setupFunc:fat};var eW;function hat(r){eW=r.wasm.cwrap(qa,null,["number","number","number","number","number","number","number","number","array","number","number"])}function gat(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]=S.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 eW(l,p,m,f,d,s,h,g,C,w.length,c),u}var rW={kernelName:qa,backendName:"wasm",kernelFunc:gat,setupFunc:hat};var nW=ae(Ds);var oW=ae(Rs);var sW;function xat(r){sW=r.wasm.cwrap(La,null,["number","number","number","number","number","number","array","number","number"])}function yat(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}=yh.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 sW(d,g,Zt[s.dtype],u,l,c,x,m,b),a}var iW={kernelName:La,backendName:"wasm",setupFunc:xat,kernelFunc:yat};var aW;function bat(r){aW=r.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function wat(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 aW(i,a,u,f,c),l}var lW={kernelName:wi,backendName:"wasm",kernelFunc:wat,setupFunc:bat};var uW;function Cat(r){uW=r.wasm.cwrap(Os,null,["number","number"])}function vat(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||uW(n,s),o}var cW={kernelName:"Sigmoid",backendName:"wasm",setupFunc:Cat,kernelFunc:vat};var pW=ae(Fs);var mW;function Iat(r){mW=r.wasm.cwrap(Ms,null,["number","number","number","number"])}function Sat(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||mW(o,i,a,u),s}var fW={kernelName:Ms,backendName:"wasm",setupFunc:Iat,kernelFunc:Sat};function Tat(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 E=1+s.length;E{let F=C.shape[0],P=C.shape[1],V=S.segment_util.segOpComputeOptimalWindowSize(P,$),G={windowSize:V,inSize:P,batchSize:F,numSegments:$},W=new nI(G,N),q=e.compileAndRun(W,[C,_],A);if(u.push(q),q.shape[1]===$)return q;let H=IT({backend:e,attrs:{start:0,stop:$,step:1,dtype:"float32"}}),j=vT({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=S.getUndoAxesPermutation(c);w=Fe({inputs:{x:w},backend:e,attrs:{perm:C}})}return u.forEach(C=>e.disposeIntermediateTensorInfo(C)),w}var $B={kernelName:Vl,backendName:"webgl",kernelFunc:tst};var est=[xM,bM,wM,CM,vM,SM,NM,kM,_M,AM,$M,DM,RM,FM,OM,PM,LM,MM,zM,BM,VM,WM,UM,HM,XM,ZM,JM,aM,tz,rz,nz,oz,sz,iz,az,lz,uz,cz,pz,dz,hz,gz,xz,yz,bz,wz,Cz,Iz,vz,Sz,Nz,kz,Tz,Ez,_z,$z,Dz,Rz,Fz,Pz,Lz,Mz,zz,Bz,Vz,Gz,Wz,Uz,iM,Hz,ez,qz,Kz,jz,lM,Xz,Yz,Zz,Jz,Qz,t3,e3,r3,n3,o3,i3,a3,l3,u3,c3,p3,f3,h3,g3,x3,y3,b3,S3,pM,N3,k3,T3,E3,qM,_3,D3,R3,F3,O3,uM,P3,L3,M3,z3,KM,w3,B3,V3,G3,fM,W3,U3,H3,q3,K3,j3,X3,Y3,Z3,J3,Q3,tB,eB,rB,nB,oB,GM,v3,sB,iB,aB,lB,uB,cB,pB,mB,dB,hB,xB,yB,bB,wB,CB,IB,I3,hM,vB,SB,NB,TB,EB,gM,_B,AB,$B,A3];for(let r of est)Pu(r);var Ht;(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"})(Ht||(Ht={}));var $u;(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"})($u||($u={}));var DB;function rst(r){DB=r.wasm.cwrap(bi,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function nst(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=$u[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=zr.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 DB(m,_,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),C}var RB={kernelName:bi,backendName:"wasm",setupFunc:rst,kernelFunc:nst};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,Ht[a.dtype],c),l}return{kernelName:r,backendName:"wasm",setupFunc:n,kernelFunc:o}}var FB=se(oi);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=S.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,Ht[l.dtype],b))(),h}return{kernelName:r,backendName:"wasm",setupFunc:o,kernelFunc:s}}var ost=!0,OB=ue(Yn,ost);var PB;function sst(r){PB=r.wasm.cwrap(Vo,null,["array","number","number","number"])}function ist(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 PB(s,o.length,Ht[n.dtype],i),n}var LB={kernelName:Vo,backendName:"wasm",setupFunc:sst,kernelFunc:ist};function jc(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype),o=e.typedArrayFromHeap(t);return e.typedArrayFromHeap(n).set(o),n}var MB={kernelName:lo,backendName:"wasm",kernelFunc:jc};var zB;function ast(r){zB=r.wasm.cwrap(Jn,null,["number","array","number","number","number","array","number"])}function so(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=ust(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 BB={kernelName:Jn,backendName:"wasm",kernelFunc:so,setupFunc:ast};function yn(r,t,e){let n=r.shape,o=r.shape.length,s=y.parseAxisParam(t,n),i=s,a=S.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 XB={kernelName:mi,backendName:"wasm",kernelFunc:ir};var YB;function yst(r){YB=r.wasm.cwrap(Uo,null,["number","array","number","number","array","number","number","number","number"])}function bst(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=zr.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],_=ir({inputs:{x:o},backend:e,attrs:{shape:C}}),A=ir({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 YB($,H,_.shape.length,F,j,A.shape.length,i,a,q),e.disposeData(_.dataId),e.disposeData(A.dataId),W.shape=w,W}var ZB={kernelName:Uo,backendName:"wasm",setupFunc:yst,kernelFunc:bst};function Po(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=Pe.parseSliceParams(t,e,n),a=Pe.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=Pe.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)wst(u,c[0],m,s,i);else if(f===3)Cst(u,c[0],c[1],m,s,i);else if(f===4)Ist(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 wst(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=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=ir({inputs:{x:o},backend:e,attrs:{shape:u}}),d=so({inputs:{x:f},backend:e,attrs:{perm:l}}),h=ir({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Po({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 QB={kernelName:si,backendName:"wasm",kernelFunc:vst};function ei(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 tV={kernelName:io,backendName:"wasm",kernelFunc:ei};var eV=se(Ho);var rV;function Sst(r){rV=r.wasm.cwrap(ao,null,["number","number","number","number"])}function Nst(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 rV(a,s,i,l),u}var nV={kernelName:ao,backendName:"wasm",setupFunc:Sst,kernelFunc:Nst};function ST(r){let{inputs:t,backend:e}=r,n=y.parseAxisParam(r.attrs.axis,t[0].shape)[0],o=t.map(f=>f.shape);S.assertParamsConsistent(o,n);let s=S.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 ir({inputs:{x:w},backend:e,attrs:{shape:[-1,C]}})}),d=f.map(w=>({vals:e.readSync(w.dataId),shape:w.shape}));s=S.computeOutShape(f.map(w=>w.shape),1);let h=f[0].shape[0]===1,g=Ec(d,s,t[0].dtype,h),x=S.computeOutShape(i.map(w=>w.shape),n);a.shape=x;let b=e.dataIdMap.get(a.dataId);return b.stringBytes=S.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=S.getAxesPermutation([s],u),c=o;l!==null&&(c=so({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.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;fV(d,i?1:0,a?1:0,f,h,Ht[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=so({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var dV={kernelName:pa,backendName:"wasm",setupFunc:Dst,kernelFunc:Rst};var hV;function Fst(r){hV=r.wasm.cwrap(Yo,null,["number","number","number","number","number","number"])}function Ost(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=S.getAxesPermutation([s],u),c=o;l!==null&&(c=so({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.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;hV(d,i?1:0,a?1:0,f,h,Ht[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=so({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var gV={kernelName:Yo,backendName:"wasm",setupFunc:Fst,kernelFunc:Ost};var xV;function Pst(r){xV=r.wasm.cwrap(fa,null,["number","number","number","array","number","array","array","number","number"])}function Lst(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 xV(x,s,i==="NHWC"?1:0,b,o.shape.length-1,w,C,d.length,N),h}var yV={kernelName:fa,backendName:"wasm",setupFunc:Pst,kernelFunc:Lst};var bV;function Mst(r){bV=r.wasm.cwrap(Zo,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function zst(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=S.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 bV(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 wV={kernelName:Zo,backendName:"wasm",setupFunc:Mst,kernelFunc:zst};var CV=se(Qo);var Bst=!1,IV=ue(ha,Bst,"bool");var vV=se(ts,"float32");function oI(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),ir({inputs:{x:o},backend:n,attrs:{shape:a}})}var SV={kernelName:ai,backendName:"wasm",kernelFunc:oI};function kT(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 NV={kernelName:Al,backendName:"wasm",kernelFunc:kT};var kV;function Vst(r){kV=r.wasm.cwrap(xa,null,["number","number","number","number","number","number"])}function Gst(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 kV(s,a,u,l,c,i),o}var TV={kernelName:xa,backendName:"wasm",kernelFunc:Gst,setupFunc:Vst};var EV=se(es);var Wst=!1,_V=ue(rs,Wst);var AV;function Ust(r){AV=r.wasm.cwrap(ns,null,["number","number","number","number","number","number","number"])}function Hst(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 AV(c,p,m,f,d,o,g),h}var $V={kernelName:ns,backendName:"wasm",setupFunc:Ust,kernelFunc:Hst};var DV;function qst(r){DV=r.wasm.cwrap(wi,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 Kst(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=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m),g=$u[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 DV(x,Y,Z,et,b,N,_,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var RV={kernelName:wi,backendName:"wasm",setupFunc:qst,kernelFunc:Kst};var FV;function jst(r){FV=r.wasm.cwrap(Ci,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 Xst(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=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m,!0),g=$u[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 FV(x,Y,Z,et,b,N,_,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var OV={kernelName:Ci,backendName:"wasm",setupFunc:jst,kernelFunc:Xst};var PV;function Yst(r){PV=r.wasm.cwrap(ya,null,["number","number","number","number","number","number","array","number"])}function Zst(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=Qg.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 PV(f,Ht[n.dtype],h,i,p,a,g,x),l}var LV={kernelName:ya,backendName:"wasm",setupFunc:Yst,kernelFunc:Zst};var MV;function Jst(r){MV=r.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Qst(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=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),m=ir({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=ir({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 MV(w,Ht[o.dtype],A,x,N,p.batchSize,$,_),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var zV={kernelName:li,backendName:"wasm",setupFunc:Jst,kernelFunc:Qst};var tit=!1,BV=ue(ba,tit,"bool");var eit=!1,VV=ue(os,eit,"bool");var GV;function rit(r){GV=r.wasm.cwrap(ss,null,["number","number","number","number"])}function nit(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;GV(o,Ht[t.dtype],e,i)}return s}var WV={kernelName:ss,backendName:"wasm",setupFunc:rit,kernelFunc:nit};var oit=!1,UV=ue(va,oit,"bool");var sit=!1,HV=ue(Sa,sit,"bool");var qV=se(is);var iit=!1,KV=ue(ka,iit,"bool");var jV=se(Ta);var ait=!1,XV=ue(Ea,ait,"bool");var lit=!1,YV=ue(a1,lit,"bool");var ZV;function uit(r){ZV=r.wasm.cwrap(as,null,["number","number","number","number"])}function cit(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}=yn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;l=c,u=w}let d=l.shape.length;S.assertAxesAreInnerMostDims("max",p,d);let[h,g]=S.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;ZV(u,Ht[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var JV={kernelName:as,backendName:"wasm",setupFunc:uit,kernelFunc:cit};var pit=!1,QV=ue(ls,pit);var tG;function mit(r){tG=r.wasm.cwrap(us,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fit(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=S.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 tG(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,C,N,_,$),A}var eG={kernelName:us,backendName:"wasm",setupFunc:mit,kernelFunc:fit};var rG;function dit(r){rG=r.wasm.cwrap(cs,null,["number, number, number"])}function hit(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}=yn(i,o,t),d=p;if(f){let C=t.dataIdMap.get(c.dataId).id;C!==a&&(l=c,u=C,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims("mean",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=l;l.dtype!=="float32"&&(b=ei({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;rG(u,x,C)}if(f&&t.disposeData(c.dataId),s){let C=S.expandShapeToKeepDim(w.shape,m);w.shape=C}return l.dtype!=="float32"&&t.disposeData(b.dataId),w}var nG={kernelName:cs,backendName:"wasm",setupFunc:dit,kernelFunc:hit};var oG;function git(r){oG=r.wasm.cwrap(ps,null,["number","number","number","number"])}function xit(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}=yn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w)}let d=l.shape.length;S.assertAxesAreInnerMostDims("min",p,d);let[h,g]=S.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;oG(u,Ht[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var sG={kernelName:ps,backendName:"wasm",setupFunc:git,kernelFunc:xit};var yit=!1,iG=ue(ms,yit);var TT;(function(r){r[r.reflect=0]="reflect",r[r.symmetric=1]="symmetric"})(TT||(TT={}));var aG;function bit(r){aG=r.wasm.cwrap(fs,null,["number","array","number","number","array","array","number","number"])}function wit(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 aG(i,l,t.shape.length,Ht[t.dtype],m,f,TT[o],u),a}var lG={kernelName:fs,backendName:"wasm",kernelFunc:wit,setupFunc:bit};var Cit=!0,uG=ue(ds,Cit);var cG=se(ui);function Ed(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 pG;function Iit(r){pG=r.wasm.cwrap($a,"number",["number","number","number","number","number"])}function vit(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=pG(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Ed(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],"int32",m)}var mG={kernelName:$a,backendName:"wasm",setupFunc:Iit,kernelFunc:vit};var fG;function Sit(r){fG=r.wasm.cwrap(Da,"number",["number","number","number","number","number","bool"])}function Nit(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=fG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Ed(t,m);t.wasm._free(h);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([],"int32",g);return[x,b]}var dG={kernelName:Da,backendName:"wasm",setupFunc:Sit,kernelFunc:Nit};var hG;function kit(r){hG=r.wasm.cwrap(Ra,"number",["number","number","number","number","number","number"])}function Tit(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=hG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Ed(t,m);t.wasm._free(g);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([d],"float32",h);return[x,b]}var gG={kernelName:Ra,backendName:"wasm",setupFunc:kit,kernelFunc:Tit};var Eit=!1,xG=ue(Aa,Eit,"bool");var yG;function _it(r){yG=r.wasm.cwrap(hs,null,["number","number","number","number","number"])}function Ait(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 yG(m,i,a,u,c),l}var bG={kernelName:hs,backendName:"wasm",setupFunc:_it,kernelFunc:Ait};function $it(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var wG={kernelName:ci,backendName:"wasm",kernelFunc:$it};function Dit(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return oI({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=oI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=ST({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var CG={kernelName:pi,backendName:"wasm",kernelFunc:Dit};var IG;function Rit(r){IG=r.wasm.cwrap(gs,null,["number","array","number","number","array","array","number","number"])}function Fit(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 kT({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 IG(i,c,t.shape.length,Ht[t.dtype],f,d,o,l),a}var sI={kernelName:gs,backendName:"wasm",kernelFunc:Fit,setupFunc:Rit};var Oit=!1,vG=ue(xs,Oit);var SG;function Pit(r){SG=r.wasm.cwrap(ys,null,["number","number","number"])}function Lit(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=ei({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 SG(a,i,p),u.dtype!=="float32"&&e.disposeData(l.dataId),c}var NG={kernelName:ys,backendName:"wasm",setupFunc:Pit,kernelFunc:Lit};var kG;function Mit(r){kG=r.wasm.cwrap(bs,null,["number","number","number","number"])}function zit(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}=yn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims("prod",d,l.shape.length);let[h,g]=S.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;kG(u,x,Ht[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var TG={kernelName:bs,backendName:"wasm",setupFunc:Mit,kernelFunc:zit};var Bit=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},EG={kernelName:Rl,backendName:"wasm",kernelFunc:Bit};var Vit=!0,_G=ue(Jo,Vit);var AG=se(ws);var $G=se(vs);var DG;function Git(r){DG=r.wasm.cwrap(Is,null,["number","number","number","number","number","number","number","number","number","number"])}function Wit(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=ei({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 DG(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var RG={kernelName:Is,backendName:"wasm",setupFunc:Git,kernelFunc:Wit};var FG;function Uit(r){FG=r.wasm.cwrap(Cs,null,["number","number","number","number","number","number","number","number","number","number"])}function Hit(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=ei({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 FG(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var OG={kernelName:Cs,backendName:"wasm",setupFunc:Uit,kernelFunc:Hit};var PG;function qit(r){PG=r.wasm.cwrap(Ss,null,["number","array","number","array","number","number"])}function Kit(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);PG(u,c,i.length,p,o.shape.length,l);let m=ir({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var LG={kernelName:Ss,backendName:"wasm",kernelFunc:Kit,setupFunc:qit};var MG;function jit(r){MG=r.wasm.cwrap(Ua,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Xit(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]=S.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 MG(l,p,m,f,d,s,h,g,C,w.length,c),u}var zG={kernelName:Ua,backendName:"wasm",kernelFunc:Xit,setupFunc:jit};var BG=se(Ns);var VG=se(ks);var GG;function Yit(r){GG=r.wasm.cwrap(Oa,null,["number","number","number","number","number","number","array","number","number"])}function Zit(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}=oh.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 GG(d,g,Ht[s.dtype],u,l,c,x,m,b),a}var WG={kernelName:Oa,backendName:"wasm",setupFunc:Yit,kernelFunc:Zit};var UG;function Jit(r){UG=r.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function Qit(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 UG(i,a,u,f,c),l}var HG={kernelName:fi,backendName:"wasm",kernelFunc:Qit,setupFunc:Jit};var qG;function tat(r){qG=r.wasm.cwrap(Es,null,["number","number"])}function eat(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||qG(n,s),o}var KG={kernelName:"Sigmoid",backendName:"wasm",setupFunc:tat,kernelFunc:eat};var jG=se(Ts);var XG;function rat(r){XG=r.wasm.cwrap($s,null,["number","number","number","number"])}function nat(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||XG(o,i,a,u),s}var YG={kernelName:$s,backendName:"wasm",setupFunc:rat,kernelFunc:nat};function oat(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(S.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;bW(m,Zt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),C;switch(w[0]){case 0:{C=S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{C=S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:C=S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:C=S.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 Aat(r){return Nv(r,!0)}var wW={kernelName:Pl,backendName:"wasm",setupFunc:Tv,kernelFunc:Aat};function $at(r){return Nv(r,!1)}var CW={kernelName:Ll,backendName:"wasm",setupFunc:Tv,kernelFunc:$at};function Dat(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=S.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=Po({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var vW={kernelName:Ii,backendName:"wasm",kernelFunc:Dat};var IW=ae(Ps);var SW=ae(Ml);var Rat=!0,TW=pe(zs,Rat);var NW;function Fat(r){NW=r.wasm.cwrap(co,null,["number","number","number","number"])}function Oat(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 NW(i,o,Zt[s.dtype],u),a}var kW={kernelName:co,backendName:"wasm",setupFunc:Fat,kernelFunc:Oat};var _W;function Pat(r){_W=r.wasm.cwrap(Wa,null,["number","array","number","array","array","array","array","array","number","number"])}function Lat(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}=Be.sliceInfo(o.shape,s,i,a,u,l,c,p,m),T;if(h)T=lr({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 E=Be.computeOutShape(b,w,C),$=Po({inputs:{x:o},backend:t,attrs:{begin:b,size:E}});T=lr({inputs:{x:$},backend:t,attrs:{shape:d}}),t.disposeData($.dataId)}else{let E=t.makeOutput(f,"float32"),$=t.dataIdMap.get(o.dataId).id,D=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),P=new Uint8Array(new Int32Array(b).buffer),M=new Uint8Array(new Int32Array(w).buffer),W=new Uint8Array(new Int32Array(C).buffer),H=new Uint8Array(new Int32Array(f).buffer),q=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),X=t.dataIdMap.get(E.dataId).id;_W($,D,o.shape.length,P,M,W,H,q,f.length,X),T=lr({inputs:{x:E},backend:t,attrs:{shape:d}}),t.disposeData(E.dataId)}return T}var EW={kernelName:Wa,backendName:"wasm",setupFunc:Pat,kernelFunc:Lat};function Mat(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]=Bc(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 AW={kernelName:zl,backendName:"wasm",kernelFunc:Mat};function zat(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]=Vc(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 $W={kernelName:Bl,backendName:"wasm",kernelFunc:zat};function Bat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=Gc(i,s),u=t.makeOutput(o.shape,"int32");return t.typedArrayFromHeap(u).set(a),u}var DW={kernelName:Vl,backendName:"wasm",kernelFunc:Bat};var Vat=!0,RW=pe(Bs,Vat);var FW;function Gat(r){FW=r.wasm.cwrap(Ls,null,["number","number","number","number"])}function Wat(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}=wn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims("sum",d,l.shape.length);let[h,g]=S.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;FW(u,x,Zt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var OW={kernelName:Ls,backendName:"wasm",setupFunc:Gat,kernelFunc:Wat};var PW=ae(Vs);var LW=ae(Gs);var MW;function Uat(r){MW=r.wasm.cwrap(Xn,null,["number","array","number","array","number","number"])}function Hat(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 BW(i,a,n.shape.length,Zt[n.dtype],o,s,c,m),[l,p]},VW={kernelName:Ua,backendName:"wasm",setupFunc:qat,kernelFunc:Kat};var GW;function jat(r){GW=r.wasm.cwrap(Ha,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function Xat(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,E=t.dataIdMap.get(o.dataId).id,D=t.dataIdMap.get(s.dataId).id,P=i==="nearest"?1:2,M;switch(a){case"constant":M=1;break;case"reflect":M=2;break;case"wrap":M=3;break;case"nearest":M=4;break;default:M=1;break}return GW(E,D,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,P,M,u,C),w}var WW={kernelName:Ha,backendName:"wasm",setupFunc:jat,kernelFunc:Xat};function Yat(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 UW={kernelName:Si,backendName:"wasm",kernelFunc:Yat};function Zat(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var HW={kernelName:Ti,backendName:"wasm",kernelFunc:Zat};var Jat=[YB,ZB,JB,tV,sV,aV,uV,pV,dV,gV,xV,yV,wV,CV,IV,TV,NV,kV,EV,$V,RV,OV,LV,MV,zV,BV,VV,GV,UV,HV,qV,jV,YV,JV,tG,rG,nG,oG,eV,iG,aG,lG,uG,cG,pG,mG,fG,hG,gG,yG,wG,vG,IG,TG,NG,kG,EG,$G,RG,FG,PG,LG,MG,Sv,BG,GG,UG,HG,qG,KG,jG,mV,YG,JG,tW,rW,nW,oW,iW,lW,cW,pW,hV,fW,dW,gW,yW,wW,CW,vW,IW,SW,TW,kW,EW,AW,$W,DW,RW,OW,PW,LW,zW,VW,WW,nV,UW,HW];for(let r of Jat)Wu(r);var Uk=B();Uk.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>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])));Uk.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Uk.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 Yk=Tl(XW()),eU=Tl(ZW()),Zk=Tl(JW());var QW=Yk.default||Yk,Qat=Zk.default||Zk,bg=class extends Ho{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(nU),Xk=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new ra(this,go())}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 elt(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 tlt(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 tU(r,t,e){if(Ev!=null)return Ev;let n="tfjs-backend-wasm.wasm";return r&&t?n="tfjs-backend-wasm-threaded-simd.wasm":r&&(n="tfjs-backend-wasm-simd.wasm"),xg!=null&&xg[n]!=null?xg[n]:e+n}async function rU(){let[r,t]=await Promise.all([B().getAsync("WASM_HAS_SIMD_SUPPORT"),B().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(".worker.js")){let l=eU.wasmWorkerContents.replace(/\n/g,"\\n"),c=new Blob([l],{type:"application/javascript"});return URL.createObjectURL(c)}return a.endsWith(".wasm")?tU(r,t,gg!=null?gg:u):u+a},Jk&&(o.instantiateWasm=tlt(tU(r,t,gg!=null?gg:"")));let s=!1;o.onAbort=()=>{if(s||yg)return;yg=!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&&Ev==null?(o.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+QW.toString()],{type:"text/javascript"}),i=QW(o)):i=Qat(o),i.then(a=>{s=!0,yg=!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 elt(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 rlt=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],Ev=null,gg=null,xg={},yg=!1,Jk=!1;function nlt(r,t=!1){if(tS("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),yg)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");Ev=r,Jk=t}function olt(r,t=!1){if(yg)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")gg=r;else{xg=r;let e=rlt.filter(n=>xg[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.`)}Jk=t}var nU=-1,Xk=-1;function slt(r){nU=r}function ilt(){if(Xk===-1)throw new Error("WASM backend not initialized.");return Xk}var alt="3.20.0";var llt=2;lm("wasm",async()=>{let{wasm:r}=await rU();return new bg(r)},llt);var ult="3.20.0",clt="3.20.0",plt="3.20.0",mlt="3.20.0",flt="3.20.0",dlt="3.20.0",hlt="3.20.0",glt="3.20.0",xlt={tfjs:ult,"tfjs-core":clt,"tfjs-data":plt,"tfjs-layers":mlt,"tfjs-converter":flt,"tfjs-backend-cpu":dlt,"tfjs-backend-webgl":hlt,"tfjs-backend-wasm":glt};export{pi as Abs,oa as Acos,sa as Acosh,cu as AdadeltaOptimizer,pu as AdagradOptimizer,mu as AdamOptimizer,fu as AdamaxOptimizer,jn as Add,jo as AddN,ia as All,aa as Any,Xo as ArgMax,Nl as ArgMin,la as Asin,ua as Asinh,ca as Atan,ma as Atan2,pa as Atanh,Yo as AvgPool,kl as AvgPool3D,Ip as AvgPool3DGrad,vp as AvgPoolGrad,bg as BackendWasm,Zo as BatchMatMul,mi as BatchToSpaceND,Sp as Bincount,Tp as BroadcastArgs,N1 as BroadcastTo,Lb as Callback,Yy as CallbackList,ao as Cast,Jo as Ceil,lo as ClipByValue,Np as Complex,_l as ComplexAbs,fi as Concat,Qo as Conv2D,kp as Conv2DBackpropFilter,ts as Conv2DBackpropInput,El as Conv3D,_p as Conv3DBackpropFilterV2,Ep as Conv3DBackpropInputV2,es as Cos,rs as Cosh,da as CropAndResize,fa as Cumprod,ns as Cumsum,Jy as CustomCallback,ra as DataStorage,Ap as DenseBincount,ha as DepthToSpace,os as DepthwiseConv2dNative,$p as DepthwiseConv2dNativeBackpropFilter,Dp as DepthwiseConv2dNativeBackpropInput,Rp as Diag,Al as Dilation2D,sh as Dilation2DBackpropFilter,oh as Dilation2DBackpropInput,y0 as ENV,Mb as EarlyStopping,Fp as Einsum,is as Elu,Op as EluGrad,rh as Environment,xa as Equal,ga as Erf,as as Exp,di as ExpandDims,ya as Expm1,Pp as FFT,$l as Fill,ba as FlipLeftRight,ls as Floor,us as FloorDiv,ih as FromPixels,cs as FusedBatchNorm,ki as FusedConv2D,_i as FusedDepthwiseConv2D,jc as GPGPUContext,wa as GatherNd,hi as GatherV2,Hh as GraphModel,Ca as Greater,ps as GreaterEqual,Zy as History,Lp as IFFT,uo as Identity,Mp as Imag,we as InputSpec,va as IsFinite,Ia as IsInf,Sa as IsNan,Ho as KernelBackend,Dl as LRN,Bp as LRNGrad,Ah as LayerVariable,Bn as LayersModel,ms as LeakyRelu,Ta as Less,Na as LessEqual,zp as LinSpace,fs as Log,ka as Log1p,_1 as LogSoftmax,_a as LogicalAnd,Ea as LogicalNot,Aa as LogicalOr,k1 as LogicalXor,Ilt as LowerBound,Eu as MathBackendWebGL,ds as Max,gs as MaxPool,Rl as MaxPool3D,Gp as MaxPool3DGrad,Vp as MaxPoolGrad,Wp as MaxPoolWithArgmax,hs as Maximum,xs as Mean,ys as Min,bs as Minimum,ws as MirrorPad,$a as Mod,du as MomentumOptimizer,Up as Multinomial,Cs as Multiply,gi as Neg,Ra as NonMaxSuppressionV3,Fa as NonMaxSuppressionV4,Oa as NonMaxSuppressionV5,Da as NotEqual,z0 as OP_SCOPE_SUFFIX,vs as OneHot,xi as OnesLike,Br as Optimizer,js as OptimizerConstructors,yi as Pack,Is as PadV2,Slt as Pool,Ss as Pow,Ts as Prelu,Ns as Prod,hu as RMSPropOptimizer,_n as RNN,Hp as RaggedTensorToTensor,Fl as Range,E0 as Rank,qp as Real,ss as RealDiv,Pa as Reciprocal,Ye as Reduction,ks as Relu,As as Relu6,bi as Reshape,Es as ResizeBilinear,jp as ResizeBilinearGrad,_s as ResizeNearestNeighbor,Kp as ResizeNearestNeighborGrad,$s as Reverse,qa as RotateWithOffset,Ds as Round,Rs as Rsqrt,qi as SGDOptimizer,La as ScatterNd,Xp as SearchSorted,wi as Select,Ma as Selu,Ji as Sequential,Os as Sigmoid,Ba as Sign,Fs as Sin,za as Sinh,Ci as Slice,Ms as Softmax,Va as Softplus,vi as SpaceToBatchND,Ol as SparseFillEmptyRows,Ga as SparseReshape,Pl as SparseSegmentMean,Ll as SparseSegmentSum,Yp as SparseToDense,Ii as SplitV,Ps as Sqrt,Ml as Square,zs as SquaredDifference,co as Step,Wa as StridedSlice,zl as StringNGrams,Bl as StringSplit,Vl as StringToHashBucketFast,Bs as Sub,Ls as Sum,Xr as SymbolicTensor,Vs as Tan,Gs as Tanh,Lt as Tensor,fe as TensorBuffer,Xn as Tile,Ua as TopK,Ha as Transform,Yn as Transpose,Zp as Unique,Si as Unpack,Gl as UnsortedSegmentSum,Tlt as UpperBound,Ka as Variable,Ti as ZerosLike,Ni as _FusedMatMul,$e as abs,Cx as acos,vx as acosh,J as add,J_ as addN,cm as all,Ju as any,Oi as argMax,Ix as argMin,Sx as asin,Tx as asinh,Nx as atan,kx as atan2,_x as atanh,Xl as avgPool,Ax as avgPool3d,$_ as backend,S as backend_util,eE as basicLSTMCell,Li as batchNorm,$x as batchNorm2d,Dx as batchNorm3d,Rx as batchNorm4d,Yl as batchToSpaceND,Fx as bincount,w6 as booleanMaskAsync,nE as broadcastArgs,Mi as broadcastTo,Lr as broadcast_util,xx as browser,vt as buffer,tZ as callbacks,tt as cast,Ox as ceil,Ir as clipByValue,an as clone,Cn as complex,se as concat,Px as concat1d,Lx as concat2d,Mx as concat3d,zx as concat4d,aD as constraints,mm as conv1d,Sn as conv2d,dm as conv2dTranspose,Bx as conv3d,Gx as conv3dTranspose,Dlt as copyRegisteredKernels,Zl as cos,hm as cosh,Sh as cosineWindow,ec as cumprod,gm as cumsum,un as customGrad,GR as data,oE as denseBincount,tS as deprecationWarn,Wx as depthToSpace,zi as depthwiseConv2d,oZ as deregisterOp,ql as device_util,sE as diag,Ux as dilation2d,vpt as disableDeprecationWarnings,_t as dispose,Ipt as disposeVariables,ct as div,Hx as divNoNan,qx as dot,bS as dropout,iE as einsum,Bi as elu,Cpt as enableDebugMode,wpt as enableProdMode,wS as enclosingPowerOfTwo,go as engine,B as env,Ar as equal,Kx as erf,jx as euclideanNorm,or as exp,yr as expandDims,Xx as expm1,nc as eye,iu as fft,Vi as fill,Ept as findBackend,Apt as findBackendFactory,Gi as floor,um as floorDiv,CM as forceHalfFloat,lu as fused,Wi as gather,E6 as gatherND,yx as gather_util,kpt as getBackend,C0 as getGradient,lh as getKernel,tx as getKernelsForBackend,ilt as getThreadsCount,xk as gpgpu_util,MK as grad,zK as grads,Xe as greater,Pn as greaterEqual,Qa as ifft,jl as imag,uu as image,D6 as inTopKAsync,lD as initializers,KS as input,vn as io,Am as irfft,Yx as isFinite,Zx as isInf,Jx as isNaN,Oe as keep,Vr as kernel_impls,BD as layers,Jl as leakyRelu,xm as less,Ln as lessEqual,vS as linalg,uE as linspace,ZZ as loadGraphModel,JZ as loadGraphModelSync,pY as loadLayersModel,Qx as localResponseNormalization,Sr as log,Ql as log1p,ry as logSigmoid,ym as logSoftmax,bm as logSumExp,Dr as logicalAnd,tu as logicalNot,wm as logicalOr,ny as logicalXor,D5 as losses,cE as lowerBound,Gt as matMul,R_ as math,Mr as max,eu as maxPool,sy as maxPool3d,pE as maxPoolWithArgmax,Tn as maximum,ke as mean,xh as memory,mE as meshgrid,VD as metrics,rc as min,Ui as minimum,iy as mirrorPad,ay as mod,uY as model,GD as models,oc as moments,v6 as movingAverage,O as mul,fE as multiRNNCell,dE as multinomial,Yt as neg,Th as nextFrame,Ja as norm,qs as notEqual,Ri as oneHot,cr as ones,br as onesLike,N as op,hE as outerProduct,cn as pad,gE as pad1d,xE as pad2d,yE as pad3d,bE as pad4d,ly as pool,ln as pow,nu as prelu,mx as print,uy as prod,Spt as profile,wE as raggedTensorToTensor,CE as rand,ME as randomGamma,ac as randomNormal,zE as randomStandardNormal,Hi as randomUniform,ou as range,Npt as ready,Za as real,dy as reciprocal,lm as registerBackend,mY as registerCallbackConstructor,A1 as registerGradient,Wu as registerKernel,nZ as registerOp,WD as regularizers,Rr as relu,Cm as relu6,_pt as removeBackend,F as reshape,pr as reverse,BE as reverse1d,VE as reverse2d,GE as reverse3d,WE as reverse4d,au as rfft,vm as round,Im as rsqrt,mt as scalar,S6 as scatterND,yh as scatter_util,Ch as searchSorted,Sm as selu,Tm as separableConv2d,cY as sequential,rt as serialization,bH as setBackend,$pt as setPlatform,slt as setThreadsCount,nlt as setWasmPath,olt as setWasmPaths,$N as setWebGLContext,UE as setdiff1dAsync,Kr as sigmoid,hy as sign,$5 as signal,Nm as sin,km as sinh,Ot as slice,_m as slice1d,Ih as slice2d,Em as slice3d,lc as slice4d,Be as slice_util,su as softmax,Hs as softplus,ru as spaceToBatchND,R5 as sparse,k6 as sparseToDense,A5 as spectral,mr as split,Ne as sqrt,Ht as square,$m as squaredDifference,Mn as squeeze,sr as stack,yo as step,gy as stridedSlice,F5 as string,ut as sub,ft as sum,Xu as sumOutType,xy as tan,Pi as tanh,vr as tensor,Ve as tensor1d,Ks as tensor2d,gx as tensor3d,HE as tensor4d,qE as tensor5d,KE as tensor6d,ho as tensor_util,Y_ as test_util,G as tidy,$r as tile,Tpt as time,yy as topk,fc as train,Mt as transpose,Dm as truncatedNormal,by as unique,$lt as unregisterGradient,Alt as unregisterKernel,Rm as unsortedSegmentSum,Tr as unstack,ir as upcastType,jE as upperBound,y as util,BK as valueAndGrad,VK as valueAndGrads,wy as variable,ty as variableGrads,xlt as version,vR as version_converter,Z_ as version_core,nf as version_layers,alt as version_wasm,wM as version_webgl,ike as webgl,Id as webgl_util,De as where,vy as whereAsync,_e as zeros,St 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;tW(i,a,u,l,m,d,g);let x=t.readSync(h.dataId),b;switch(x[0]){case 0:{b=S.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(x[1],x[2]);break}case 1:{b=S.getSparseReshapeNegativeOutputDimErrorMessage(x[1],x[2]);break}case 2:b=S.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();break;case 3:{let w=Array.from(t.readSync(o.dataId)),C=Array.from(t.readSync(f.dataId));b=S.getSparseReshapeInputOutputMultipleErrorMessage(w,C);break}case 4:{let w=Array.from(t.readSync(o.dataId)),C=Array.from(t.readSync(f.dataId));b=S.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 eW={kernelName:Ba,backendName:"wasm",setupFunc:aat,kernelFunc:lat};var rW;function iI(r){rW=r.wasm.cwrap("SparseSegmentReduction",null,["number","number","number","number","number","number","number","number","number"])}function aI(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(S.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;rW(m,Ht[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),C;switch(w[0]){case 0:{C=S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{C=S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:C=S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:C=S.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 uat(r){return aI(r,!0)}var nW={kernelName:Ol,backendName:"wasm",setupFunc:iI,kernelFunc:uat};function cat(r){return aI(r,!1)}var oW={kernelName:Pl,backendName:"wasm",setupFunc:iI,kernelFunc:cat};function pat(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=S.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=Po({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var sW={kernelName:gi,backendName:"wasm",kernelFunc:pat};var iW=se(_s);var aW=se(Ll);var mat=!0,lW=ue(Ds,mat);var uW;function fat(r){uW=r.wasm.cwrap(uo,null,["number","number","number","number"])}function dat(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 uW(i,o,Ht[s.dtype],u),a}var cW={kernelName:uo,backendName:"wasm",setupFunc:fat,kernelFunc:dat};var pW;function hat(r){pW=r.wasm.cwrap(Va,null,["number","array","number","array","array","array","array","array","number","number"])}function gat(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}=Pe.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=ir({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 _=Pe.computeOutShape(b,w,C),A=Po({inputs:{x:o},backend:t,attrs:{begin:b,size:_}});N=ir({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;pW(A,$,o.shape.length,F,P,V,G,W,f.length,q),N=ir({inputs:{x:_},backend:t,attrs:{shape:d}}),t.disposeData(_.dataId)}return N}var mW={kernelName:Va,backendName:"wasm",setupFunc:hat,kernelFunc:gat};function xat(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 fW={kernelName:Ml,backendName:"wasm",kernelFunc:xat};function yat(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 dW={kernelName:zl,backendName:"wasm",kernelFunc:yat};function bat(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 hW={kernelName:Bl,backendName:"wasm",kernelFunc:bat};var wat=!0,gW=ue(Rs,wat);var xW;function Cat(r){xW=r.wasm.cwrap(As,null,["number","number","number","number"])}function Iat(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}=yn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims("sum",d,l.shape.length);let[h,g]=S.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;xW(u,x,Ht[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var yW={kernelName:As,backendName:"wasm",setupFunc:Cat,kernelFunc:Iat};var bW=se(Fs);var wW=se(Os);var CW;function vat(r){CW=r.wasm.cwrap(Zn,null,["number","array","number","array","number","number"])}function Sat(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 vW(i,a,n.shape.length,Ht[n.dtype],o,s,c,m),[l,p]},SW={kernelName:Ga,backendName:"wasm",setupFunc:Nat,kernelFunc:kat};var NW;function Tat(r){NW=r.wasm.cwrap(Wa,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function Eat(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 NW(_,$,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 kW={kernelName:Wa,backendName:"wasm",setupFunc:Tat,kernelFunc:Eat};function _at(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 TW={kernelName:xi,backendName:"wasm",kernelFunc:_at};function Aat(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var EW={kernelName:yi,backendName:"wasm",kernelFunc:Aat};var $at=[RB,FB,OB,LB,GB,UB,qB,jB,ZB,QB,tV,eV,nV,oV,iV,lV,uV,cV,mV,dV,gV,yV,wV,CV,IV,vV,SV,NV,TV,EV,_V,$V,RV,OV,LV,zV,BV,VV,MB,WV,UV,HV,qV,KV,jV,XV,YV,JV,QV,eG,nG,sG,iG,lG,uG,cG,mG,dG,gG,xG,bG,wG,CG,sI,vG,NG,TG,EG,_G,AG,$G,XB,RG,OG,LG,zG,BG,VG,WG,HG,KG,jG,JB,YG,ZG,QG,eW,nW,oW,sW,iW,aW,lW,cW,mW,fW,dW,hW,gW,yW,bW,wW,IW,SW,kW,BB,TW,EW];for(let r of $at)Pu(r);var ET=M();ET.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}});ET.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(ET.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 FT=Sl(DW()),MW=Sl(FW()),OT=Sl(OW());var PW=FT.default||FT,Dat=OT.default||OT,sg=class extends Mo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(BW),RT=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new ta(this,ho())}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 Fat(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 Rat(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 LW(r,t,e){if(cI!=null)return cI;let n="tfjs-backend-wasm.wasm";return r&&t?n="tfjs-backend-wasm-threaded-simd.wasm":r&&(n="tfjs-backend-wasm-simd.wasm"),ng!=null&&ng[n]!=null?ng[n]:e+n}async function zW(){let[r,t]=await Promise.all([M().getAsync("WASM_HAS_SIMD_SUPPORT"),M().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(".worker.js")){let l=MW.wasmWorkerContents.replace(/\n/g,"\\n"),c=new Blob([l],{type:"application/javascript"});return URL.createObjectURL(c)}return a.endsWith(".wasm")?LW(r,t,rg!=null?rg:u):u+a},PT&&(o.instantiateWasm=Rat(LW(r,t,rg!=null?rg:"")));let s=!1;o.onAbort=()=>{if(s||og)return;og=!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&&cI==null?(o.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+PW.toString()],{type:"text/javascript"}),i=PW(o)):i=Dat(o),i.then(a=>{s=!0,og=!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 Fat(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 Oat=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],cI=null,rg=null,ng={},og=!1,PT=!1;function Pat(r,t=!1){if(MS("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),og)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");cI=r,PT=t}function Lat(r,t=!1){if(og)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")rg=r;else{ng=r;let e=Oat.filter(n=>ng[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.`)}PT=t}var BW=-1,RT=-1;function Mat(r){BW=r}function zat(){if(RT===-1)throw new Error("WASM backend not initialized.");return RT}var Bat="3.21.0";var Vat=2;jp("wasm",async()=>{let{wasm:r}=await zW();return new sg(r)},Vat);var Gat="3.21.0",Wat="3.21.0",Uat="3.21.0",Hat="3.21.0",qat="3.21.0",Kat="3.21.0",jat="3.21.0",Xat="3.21.0",Yat={tfjs:Gat,"tfjs-core":Wat,"tfjs-data":Uat,"tfjs-layers":Hat,"tfjs-converter":qat,"tfjs-backend-cpu":Kat,"tfjs-backend-webgl":jat,"tfjs-backend-wasm":Xat};export{oi as Abs,ra as Acos,na as Acosh,uu as AdadeltaOptimizer,cu as AdagradOptimizer,pu as AdamOptimizer,mu as AdamaxOptimizer,Yn as Add,Vo as AddN,oa as All,sa as Any,Go as ArgMax,Nl as ArgMin,ia as Asin,aa as Asinh,la as Atan,ca as Atan2,ua as Atanh,Wo as AvgPool,kl as AvgPool3D,lp as AvgPool3DGrad,ap as AvgPoolGrad,sg as BackendWasm,Uo as BatchMatMul,si as BatchToSpaceND,up as Bincount,cp as BroadcastArgs,i1 as BroadcastTo,yb as Callback,$y as CallbackList,io as Cast,Ho as Ceil,ao as ClipByValue,pp as Complex,Tl as ComplexAbs,ii as Concat,qo as Conv2D,mp as Conv2DBackpropFilter,Ko as Conv2DBackpropInput,El as Conv3D,fp as Conv3DBackpropFilterV2,dp as Conv3DBackpropInputV2,jo as Cos,Xo as Cosh,ma as CropAndResize,pa as Cumprod,Yo as Cumsum,Ry as CustomCallback,ta as DataStorage,hp as DenseBincount,fa as DepthToSpace,Zo as DepthwiseConv2dNative,gp as DepthwiseConv2dNativeBackpropFilter,xp as DepthwiseConv2dNativeBackpropInput,yp as Diag,_l as Dilation2D,Hd as Dilation2DBackpropFilter,Ud as Dilation2DBackpropInput,eS as ENV,bb as EarlyStopping,bp as Einsum,Qo as Elu,wp as EluGrad,Gd as Environment,ha as Equal,da as Erf,ts as Exp,ai as ExpandDims,ga as Expm1,Cp as FFT,Al as Fill,xa as FlipLeftRight,es as Floor,rs as FloorDiv,qd as FromPixels,ns as FusedBatchNorm,wi as FusedConv2D,Ci as FusedDepthwiseConv2D,Bc as GPGPUContext,ya as GatherNd,li as GatherV2,$h as GraphModel,ba as Greater,os as GreaterEqual,Dy as History,Ip as IFFT,lo as Identity,vp as Imag,ye as InputSpec,wa as IsFinite,Ca as IsInf,Ia as IsNan,Mo as KernelBackend,$l as LRN,Np as LRNGrad,gh as LayerVariable,Mn as LayersModel,ss as LeakyRelu,va as Less,Sa as LessEqual,Sp as LinSpace,is as Log,Na as Log1p,l1 as LogSoftmax,ka as LogicalAnd,Ta as LogicalNot,Ea as LogicalOr,a1 as LogicalXor,rlt as LowerBound,Eu as MathBackendWebGL,as as Max,us as MaxPool,Dl as MaxPool3D,Tp as MaxPool3DGrad,kp as MaxPoolGrad,Ep as MaxPoolWithArgmax,ls as Maximum,cs as Mean,ps as Min,ms as Minimum,fs as MirrorPad,_a as Mod,fu as MomentumOptimizer,_p as Multinomial,ds as Multiply,ui as Neg,$a as NonMaxSuppressionV3,Da as NonMaxSuppressionV4,Ra as NonMaxSuppressionV5,Aa as NotEqual,IS as OP_SCOPE_SUFFIX,hs as OneHot,ci as OnesLike,Gr as Optimizer,Vs as OptimizerConstructors,pi as Pack,gs as PadV2,nlt as Pool,xs as Pow,ys as Prelu,bs as Prod,du as RMSPropOptimizer,Nn as RNN,Ap as RaggedGather,$p as RaggedTensorToTensor,Rl as Range,mS as Rank,Dp as Real,Jo as RealDiv,Fa as Reciprocal,Xe as Reduction,ws as Relu,vs as Relu6,mi as Reshape,Is as ResizeBilinear,Fp as ResizeBilinearGrad,Cs as ResizeNearestNeighbor,Rp as ResizeNearestNeighborGrad,Ss as Reverse,Ua as RotateWithOffset,Ns as Round,ks as Rsqrt,Mi as SGDOptimizer,Oa as ScatterNd,Op as SearchSorted,fi as Select,Pa as Selu,Ui as Sequential,Es as Sigmoid,Ma as Sign,Ts as Sin,La as Sinh,di as Slice,$s as Softmax,za as Softplus,hi as SpaceToBatchND,Fl as SparseFillEmptyRows,Ba as SparseReshape,Ol as SparseSegmentMean,Pl as SparseSegmentSum,Pp as SparseToDense,gi as SplitV,_s as Sqrt,Ll as Square,Ds as SquaredDifference,uo as Step,Va as StridedSlice,Ml as StringNGrams,zl as StringSplit,Bl as StringToHashBucketFast,Rs as Sub,As as Sum,Jr as SymbolicTensor,Fs as Tan,Os as Tanh,Ft as Tensor,pe as TensorBuffer,Zn as Tile,Ga as TopK,Wa as Transform,Jn as Transpose,Lp as Unique,xi as Unpack,Vl as UnsortedSegmentSum,olt as UpperBound,Ha as Variable,yi as ZerosLike,bi as _FusedMatMul,Ee as abs,rx as acos,nx as acosh,X as add,DE as addN,Yp as all,Hu as any,Ei as argMax,ox as argMin,sx as asin,ix as asinh,ax as atan,lx as atan2,ux as atanh,jl as avgPool,px as avgPool3d,pE as backend,S as backend_util,OE as basicLSTMCell,Ai as batchNorm,mx as batchNorm2d,fx as batchNorm3d,dx as batchNorm4d,Xl as batchToSpaceND,hx as bincount,Uj as booleanMaskAsync,LE as broadcastArgs,$i as broadcastTo,zr as broadcast_util,Jg as browser,wt as buffer,NZ as callbacks,J as cast,gx as ceil,Cr as clipByValue,sn as clone,bn as complex,ne as concat,xx as concat1d,yx as concat2d,bx as concat3d,wx as concat4d,G$ as constraints,Jp as conv1d,Cn as conv2d,tm as conv2dTranspose,Cx as conv3d,vx as conv3dTranspose,plt as copyRegisteredKernels,Yl as cos,em as cosh,ch as cosineWindow,ju as cumprod,rm as cumsum,ln as customGrad,vR as data,ME as denseBincount,MS as deprecationWarn,Sx as depthToSpace,Di as depthwiseConv2d,_Z as deregisterOp,Hl as device_util,zE as diag,Nx as dilation2d,ept as disableDeprecationWarnings,St as dispose,rpt as disposeVariables,pt as div,kx as divNoNan,Tx as dot,n0 as dropout,BE as einsum,Ri as elu,tpt as enableDebugMode,Qct as enableProdMode,o0 as enclosingPowerOfTwo,ho as engine,M as env,Ar as equal,Ex as erf,_x as euclideanNorm,er as exp,gr as expandDims,Ax as expm1,Yu as eye,su as fft,go as fill,lpt as findBackend,upt as findBackendFactory,Fi as floor,Xp as floorDiv,sM as forceHalfFloat,au as fused,Oi as gather,Qj as gatherND,Qg as gather_util,ipt as getBackend,oS as getGradient,jd as getKernel,Fg as getKernelsForBackend,zat as getThreadsCount,eT as gpgpu_util,aK as grad,lK as grads,He as greater,Fn as greaterEqual,Za as ifft,Kl as imag,lu as image,r6 as inTopKAsync,W$ as initializers,$0 as input,Er as io,gm as irfft,$x as isFinite,Dx as isInf,Rx as isNaN,De as keep,Wr as kernel_impls,CD as layers,Zl as leakyRelu,nm as less,On as lessEqual,i0 as linalg,WE as linspace,I7 as loadGraphModel,v7 as loadGraphModelSync,O8 as loadLayersModel,Fx as localResponseNormalization,Ir as log,Jl as log1p,Lx as logSigmoid,om as logSoftmax,sm as logSumExp,Dr as logicalAnd,Ql as logicalNot,im as logicalOr,Mx as logicalXor,rX as losses,UE as lowerBound,Lt as matMul,fE as math,Br as max,tu as maxPool,Bx as maxPool3d,HE as maxPoolWithArgmax,In as maximum,Se as mean,nh as memory,qE as meshgrid,ID as metrics,Xu as min,Pi as minimum,Vx as mirrorPad,Gx as mod,R8 as model,vD as models,Zu as moments,qj as movingAverage,R as mul,KE as multiRNNCell,jE as multinomial,Ut as neg,ph as nextFrame,Ya as norm,zs as notEqual,ki as oneHot,lr as ones,xr as onesLike,k as op,XE as outerProduct,un as pad,YE as pad1d,ZE as pad2d,JE as pad3d,QE as pad4d,Wx as pool,an as pow,ru as prelu,Kg as print,Ux as prod,npt as profile,t_ as raggedGather,e_ as raggedTensorToTensor,r_ as rand,b_ as randomGamma,tc as randomNormal,w_ as randomStandardNormal,Li as randomUniform,nu as range,spt as ready,Xa as real,Xx as reciprocal,jp as registerBackend,P8 as registerCallbackConstructor,c1 as registerGradient,Pu as registerKernel,EZ as registerOp,SD as regularizers,Rr as relu,am as relu6,apt as removeBackend,D as reshape,ur as reverse,C_ as reverse1d,I_ as reverse2d,v_ as reverse3d,S_ as reverse4d,iu as rfft,lm as round,um as rsqrt,mt as scalar,jj as scatterND,oh as scatter_util,ah as searchSorted,cm as selu,pm as separableConv2d,F8 as sequential,Q as serialization,G4 as setBackend,cpt as setPlatform,Mat as setThreadsCount,Pat as setWasmPath,Lat as setWasmPaths,hk as setWebGLContext,N_ as setdiff1dAsync,Xr as sigmoid,Yx as sign,eX as signal,mm as sin,fm as sinh,Dt as slice,dm as slice1d,uh as slice2d,hm as slice3d,ec as slice4d,Pe as slice_util,ou as softmax,Ms as softplus,eu as spaceToBatchND,nX as sparse,Zj as sparseToDense,tX as spectral,cr as split,ve as sqrt,Mt as square,xm as squaredDifference,Pn as squeeze,rr as stack,yo as step,Zx as stridedSlice,oX as string,ct as sub,ft as sum,Gu as sumOutType,Jx as tan,_i as tanh,wr as tensor,Le as tensor1d,Bs as tensor2d,Zg as tensor3d,k_ as tensor4d,T_ as tensor5d,E_ as tensor6d,fo as tensor_util,AE as test_util,B as tidy,$r as tile,opt as time,Qx as topk,ic as train,Ot as transpose,ym as truncatedNormal,ty as unique,clt as unregisterGradient,ult as unregisterKernel,bm as unsortedSegmentSum,vr as unstack,or as upcastType,__ as upperBound,y as util,uK as valueAndGrad,cK as valueAndGrads,ey as variable,Ox as variableGrads,Yat as version,nR as version_converter,$E as version_core,Wm as version_layers,Bat as version_wasm,oM as version_webgl,oTe as webgl,cd as webgl_util,_e as where,ny as whereAsync,Ne as zeros,It as zerosLike}; diff --git a/dist/tfjs.version.js b/dist/tfjs.version.js index f631f06..3ea9403 100644 --- a/dist/tfjs.version.js +++ b/dist/tfjs.version.js @@ -4,4 +4,4 @@ author: ' */ -var e="3.20.0";var s="3.20.0";var t="3.20.0";var i="3.20.0";var n="3.20.0";var r="3.20.0";var l="3.20.0";var a="3.20.0";var G={tfjs:e,"tfjs-core":s,"tfjs-data":t,"tfjs-layers":i,"tfjs-converter":n,"tfjs-backend-cpu":r,"tfjs-backend-webgl":l,"tfjs-backend-wasm":a};export{G as version}; +var e="3.21.0";var s="3.21.0";var t="3.21.0";var i="3.21.0";var n="3.21.0";var r="3.21.0";var l="3.21.0";var a="3.21.0";var G={tfjs:e,"tfjs-core":s,"tfjs-data":t,"tfjs-layers":i,"tfjs-converter":n,"tfjs-backend-cpu":r,"tfjs-backend-webgl":l,"tfjs-backend-wasm":a};export{G as version}; diff --git a/package.json b/package.json index c540720..c2b691c 100644 --- a/package.json +++ b/package.json @@ -44,26 +44,26 @@ "devDependencies": { "@canvas/image": "^1.0.1", "@microsoft/api-extractor": "^7.32.0", - "@tensorflow/tfjs": "^3.20.0", - "@tensorflow/tfjs-backend-cpu": "^3.20.0", - "@tensorflow/tfjs-backend-wasm": "^3.20.0", - "@tensorflow/tfjs-backend-webgl": "^3.20.0", - "@tensorflow/tfjs-backend-webgpu": "0.0.1-alpha.13", - "@tensorflow/tfjs-converter": "^3.20.0", - "@tensorflow/tfjs-core": "^3.20.0", - "@tensorflow/tfjs-data": "^3.20.0", - "@tensorflow/tfjs-layers": "^3.20.0", - "@tensorflow/tfjs-node": "^3.20.0", - "@tensorflow/tfjs-node-gpu": "^3.20.0", - "@types/node": "^18.7.23", + "@tensorflow/tfjs": "^3.21.0", + "@tensorflow/tfjs-backend-cpu": "^3.21.0", + "@tensorflow/tfjs-backend-wasm": "^3.21.0", + "@tensorflow/tfjs-backend-webgl": "^3.21.0", + "@tensorflow/tfjs-backend-webgpu": "0.0.1-alpha.14", + "@tensorflow/tfjs-converter": "^3.21.0", + "@tensorflow/tfjs-core": "^3.21.0", + "@tensorflow/tfjs-data": "^3.21.0", + "@tensorflow/tfjs-layers": "^3.21.0", + "@tensorflow/tfjs-node": "^3.21.1", + "@tensorflow/tfjs-node-gpu": "^3.21.0", + "@types/node": "^18.8.3", "@types/offscreencanvas": "^2019.7.0", - "@typescript-eslint/eslint-plugin": "^5.38.1", - "@typescript-eslint/parser": "^5.38.1", + "@typescript-eslint/eslint-plugin": "^5.39.0", + "@typescript-eslint/parser": "^5.39.0", "@vladmandic/build": "^0.7.14", "@vladmandic/pilogger": "^0.4.6", "@vladmandic/tfjs": "github:vladmandic/tfjs", - "esbuild": "^0.15.9", - "eslint": "^8.24.0", + "esbuild": "^0.15.10", + "eslint": "^8.25.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-json": "^3.1.0", diff --git a/types/face-api.d.ts b/types/face-api.d.ts index 70ac2c5..06aa904 100644 --- a/types/face-api.d.ts +++ b/types/face-api.d.ts @@ -124,7 +124,7 @@ declare const batchNorm: typeof batchNorm_; * Mean, variance, scale, and offset can be of two shapes: * - The same shape as the input. * - In the common case, the depth dimension is the last dimension of x, so - * the values would be an `tf.Tensor1D` of shape [depth]. + * the values would be a `tf.Tensor1D` of shape [depth]. * * Also available are stricter rank-specific methods with the same signature * as this method that assert that parameters passed are of given rank @@ -241,8 +241,8 @@ declare const clipByValue: typeof clipByValue_; * x.clipByValue(-2, 3).print(); // or tf.clipByValue(x, -2, 3) * ``` * @param x The input tensor. - * @param clipValueMin Lower-bound of range to be clipped to. - * @param clipValueMax Upper-bound of range to be clipped to. + * @param clipValueMin Lower bound of range to be clipped to. + * @param clipValueMax Upper bound of range to be clipped to. * * @doc {heading: 'Operations', subheading: 'Basic math'} */ @@ -370,7 +370,7 @@ declare const concat: typeof concat_; * tf.concat([a, b], axis).print(); * ``` * @param tensors A list of tensors to concatenate. - * @param axis The axis to concate along. Defaults to 0 (the first dim). + * @param axis The axis to concatenate along. Defaults to 0 (the first dim). * * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'} */ @@ -932,7 +932,7 @@ declare const expandDims: typeof expandDims_; * x.expandDims(axis).print(); * ``` * - * @param x The input tensor whose dimensions to be expanded. + * @param x The input tensor whose dimensions are to be expanded. * @param axis The dimension index at which to insert shape of `1`. Defaults * to 0 (the first dimension). * @@ -1701,7 +1701,7 @@ declare const pad: typeof pad_; * Pads a `tf.Tensor` with a given value and paddings. * * This operation implements `CONSTANT` mode. For `REFLECT` and `SYMMETRIC`, - * refer to `tf.mirrorPad` + * refer to `tf.mirrorPad`. * * Also available are stricter rank-specific methods with the same signature * as this method that assert that `paddings` is of given length. @@ -1802,6 +1802,7 @@ declare interface Platform { encode(text: string, encoding: string): Uint8Array; /** Decode the provided bytes into a string using the provided encoding. */ decode(bytes: Uint8Array, encoding: string): string; + setTimeoutCustom?(functionRef: Function, delay: number): void; } export declare class Point implements IPoint { @@ -1959,7 +1960,7 @@ declare const relu: typeof relu_; * x.relu().print(); // or tf.relu(x) * ``` * @param x The input tensor. If the dtype is `bool`, the output dtype will be - * `int32'. + * `int32`. * * @doc {heading: 'Operations', subheading: 'Basic math'} */ @@ -2395,7 +2396,7 @@ declare class Tensor { * This means that the texture will use the RGBA channels to store value. * * For WebGPU backend, the data will be stored on a buffer. There is no - * parameter, so can not use an user defined size to create the buffer. + * parameter, so can not use a user-defined size to create the buffer. * * @param options: * For WebGL, @@ -2776,9 +2777,9 @@ declare const tile: typeof tile_; * Construct a tensor by repeating it the number of times given by reps. * * This operation creates a new tensor by replicating `input` `reps` - * times. The output tensor's i'th dimension has `input.shape[i] * + * times. The output tensor's `i`th dimension has `input.shape[i] * * reps[i]` elements, and the values of `input` are replicated - * `reps[i]` times along the i'th dimension. For example, tiling + * `reps[i]` times along the `i`th dimension. For example, tiling * `[a, b, c, d]` by `[2]` produces `[a, b, c, d, a, b, c, d]`. * * ```js