Files
ArtPlayer/docs/compiled/artplayer-plugin-danmuku-mask.mjs
T
2025-12-13 14:11:16 +08:00

8 lines
1.3 MiB
Plaintext

/*!
* artplayer-plugin-danmuku-mask.js v1.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,s,a,o,l){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof i[n]&&i[n],p=u.i||{},c=u.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!c[t]){if(!e[t]){if(s[t])return s[t];var a="function"==typeof i[n]&&i[n];if(!r&&a)return a(t,!0);if(u)return u(t,!0);if(d&&"string"==typeof t)return d(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}p.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},p.cache={};var l=c[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,i)}return c[t].exports;function p(e){var t=p.resolve(e);if(!1===t)return{};if(Array.isArray(t)){var r={__esModule:!0};return t.forEach(function(e){var t=e[0],n=e[1],s=e[2]||e[0],a=f(n);"*"===t?Object.keys(a).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(r,e)||Object.defineProperty(r,e,{enumerable:!0,get:function(){return a[e]}})}):"*"===s?Object.defineProperty(r,t,{enumerable:!0,value:a}):Object.defineProperty(r,t,{enumerable:!0,get:function(){return"default"===s?a.__esModule?a.default:a:a[s]}})}),r}return f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=d,this.exports={}},f.modules=e,f.cache=c,f.parent=u,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=p,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return i[n]}}),i[n]=f;for(var h=0;h<t.length;h++)f(t[h]);if(r){var m=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"1AHlH":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"default",()=>l);var a=e("@tensorflow-models/body-segmentation"),o=e("@tensorflow/tfjs-core");function l(e={}){return t=>{let{template:{$video:r,$danmuku:n}}=t,s=null,l=null,i=null,u=null,p=!1,c={solutionPath:e.solutionPath||"https://cdn.jsdelivr.net/npm/@mediapipe/selfie_segmentation",modelSelection:e.modelSelection||1,smoothSegmentation:void 0===e.smoothSegmentation||e.smoothSegmentation,minDetectionConfidence:e.minDetectionConfidence||.5,minTrackingConfidence:e.minTrackingConfidence||.5,selfieMode:e.selfieMode||!1,drawContour:e.drawContour||!1,foregroundThreshold:e.foregroundThreshold||.5,opacity:e.opacity||1,maskBlurAmount:e.maskBlurAmount||3};async function d(){try{await o.setBackend("webgl")}catch(e){console.warn("WebGL backend not available, falling back to CPU",e.message),await o.setBackend("cpu")}}async function f(){await d();let e=a.SupportedModels.MediaPipeSelfieSegmentation,t={runtime:"mediapipe",modelType:"general",solutionPath:c.solutionPath,modelSelection:c.modelSelection,smoothSegmentation:c.smoothSegmentation,minDetectionConfidence:c.minDetectionConfidence,minTrackingConfidence:c.minTrackingConfidence,selfieMode:c.selfieMode};try{s=await a.createSegmenter(e,t),p=!0}catch(e){console.error("Error initializing segmenter:",e),p=!1}}async function h(){if(!p||r.paused||r.ended){u=requestAnimationFrame(h);return}try{l.width=r.videoWidth,l.height=r.videoHeight;let e=await s.segmentPeople(r);if(!e||0===e.length){u=requestAnimationFrame(h);return}let t=await a.toBinaryMask(e,{r:255,g:255,b:255,a:255},{r:0,g:0,b:0,a:255},c.drawContour,c.foregroundThreshold);await a.drawMask(l,r,t,c.opacity,c.maskBlurAmount);let o=i.getImageData(0,0,l.width,l.height);i.putImageData(function(e){let t=e.data;for(let e=0;e<t.length;e+=4)t[e]>250&&t[e+1]>250&&t[e+2]>250&&(t[e+3]=0);return e}(o),0,0),n.style.maskImage=`url(${l.toDataURL()})`}catch(e){console.error("Error in segmentBody:",e)}u=requestAnimationFrame(h)}async function m(){p||await f(),l||(i=(l=document.createElement("canvas")).getContext("2d")),Object.assign(n.style,{maskMode:"alpha",maskSize:"contain",maskRepeat:"no-repeat",backgroundSize:"contain",backgroundRepeat:"no-repeat"}),h()}function g(){n.style.maskImage="none",u&&(cancelAnimationFrame(u),u=null)}return t.on("ready",m),t.on("destroy",g),{name:"artplayerPluginDanmukuMask",start:m,stop:g}}}e("@tensorflow/tfjs-backend-webgl"),e("@tensorflow/tfjs-backend-cpu"),"undefined"!=typeof window&&(window.artplayerPluginDanmukuMask=l)},{"@tensorflow-models/body-segmentation":"9d7iE","@tensorflow/tfjs-core":"hADTC","@tensorflow/tfjs-backend-webgl":"3qRAd","@tensorflow/tfjs-backend-cpu":"ilpJu","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9d7iE":[function(e,t,r,n){var s,a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"SupportedModels",()=>eR),a.export(r,"blurBodyPart",()=>eQ),a.export(r,"bodyPixMaskValueToRainbowColor",()=>_),a.export(r,"createSegmenter",()=>eP),a.export(r,"drawBokehEffect",()=>eZ),a.export(r,"drawMask",()=>eJ),a.export(r,"drawPixelatedMask",()=>eY),a.export(r,"toBinaryMask",()=>eH),a.export(r,"toColoredMask",()=>eK);var o=e("@tensorflow/tfjs-core"),l=e("@tensorflow/tfjs-converter"),i=e("@mediapipe/selfie_segmentation"),u=function(e,t){return(u=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function p(e,t){function r(){this.constructor=e}u(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var c=function(){return(c=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var s in t=arguments[r])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}).apply(this,arguments)};function d(e,t,r,n){return new(r||(r=Promise))(function(s,a){function o(e){try{i(n.next(e))}catch(e){a(e)}}function l(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var t;e.done?s(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t)})).then(o,l)}i((n=n.apply(e,t||[])).next())})}function f(e,t){var r,n,s,a,o={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(a){return function(l){var i=[a,l];if(r)throw TypeError("Generator is already executing.");for(;o;)try{if(r=1,n&&(s=2&i[0]?n.return:i[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,i[1])).done)return s;switch(n=0,s&&(i=[2&i[0],s.value]),i[0]){case 0:case 1:s=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,n=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(s=(s=o.trys).length>0&&s[s.length-1])&&(6===i[0]||2===i[0])){o=0;continue}if(3===i[0]&&(!s||i[1]>s[0]&&i[1]<s[3])){o.label=i[1];break}if(6===i[0]&&o.label<s[1]){o.label=s[1],s=i;break}if(s&&o.label<s[2]){o.label=s[2],o.ops.push(i);break}s[2]&&o.ops.pop(),o.trys.pop();continue}i=t.call(e,o)}catch(e){i=[6,e],n=0}finally{r=s=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}}}function h(e){return e instanceof SVGAnimatedLength?e.baseVal.value:e}function m(e){return d(this,void 0,void 0,function(){var t,r;return f(this,function(n){switch(n.label){case 0:return t=document.createElement("canvas"),e instanceof o.Tensor?[4,o.browser.toPixels(e,t)]:[3,2];case 1:return n.sent(),[3,3];case 2:t.width=h(e.width),t.height=h(e.height),r=t.getContext("2d"),e instanceof ImageData?r.putImageData(e,0,0):r.drawImage(e,0,0),n.label=3;case 3:return[2,t]}})})}function g(e){return d(this,void 0,void 0,function(){var t,r,n,s,a,l;return f(this,function(i){switch(i.label){case 0:return e instanceof o.Tensor?(r=(t=e.shape.slice(0,2))[0],n=t[1],s=ImageData.bind,[4,o.browser.toPixels(e)]):[3,2];case 1:return[2,new(s.apply(ImageData,[void 0,i.sent(),n,r]))];case 2:return l=(a=document.createElement("canvas")).getContext("2d"),a.width=h(e.width),a.height=h(e.height),l.drawImage(e,0,0),[2,l.getImageData(0,0,a.width,a.height)]}})})}function x(e){return d(this,void 0,void 0,function(){var t,r;return f(this,function(n){switch(n.label){case 0:return e instanceof SVGImageElement||e instanceof OffscreenCanvas?[4,m(e)]:[3,2];case 1:return r=n.sent(),[3,3];case 2:r=e,n.label=3;case 3:return t=r,[2,o.browser.fromPixels(t,4)]}})})}function v(e){if(e<0||e>=256)throw Error("Mask value must be in range [0, 255] but got "+e);if(!Number.isInteger(e))throw Error("Mask value must be an integer but got "+e)}var y=[[110,64,170],[143,61,178],[178,60,178],[210,62,167],[238,67,149],[255,78,125],[255,94,99],[255,115,75],[255,140,56],[239,167,47],[217,194,49],[194,219,64],[175,240,91],[135,245,87],[96,247,96],[64,243,115],[40,234,141],[28,219,169],[26,199,194],[33,176,213],[47,150,224],[65,125,224],[84,101,214],[99,81,195]];function _(e){if(v(e),e<y.length){var t=y[e];return{r:t[0],g:t[1],b:t[2],a:255}}throw Error("Mask value must be in range [0, "+y.length+")")}function b(e){var t=e.shape[2],r=(0,o.argMax)(e,2),n=(0,o.reshape)(r,[-1]);return(0,o.oneHot)(n,t)}function k(e,t){return(0,o.tidy)(function(){return(0,o.cast)((0,o.greater)(e,(0,o.scalar)(t)),"int32")})}var T=function(){function e(e,t){this.model=e,this.outputStride=t;var r=this.model.inputs[0].shape;o.util.assert(-1===r[1]&&-1===r[2],function(){return"Input shape ["+r[1]+", "+r[2]+"] must both be equal to or -1"})}return e.prototype.predict=function(e){var t=this;return(0,o.tidy)(function(){var r=t.preprocessInput((0,o.cast)(e,"float32")),n=(0,o.expandDims)(r,0),s=t.model.predict(n).map(function(e){return(0,o.squeeze)(e,[0])}),a=t.nameOutputResults(s);return{heatmapScores:(0,o.sigmoid)(a.heatmap),offsets:a.offsets,displacementFwd:a.displacementFwd,displacementBwd:a.displacementBwd,segmentation:a.segmentation,partHeatmaps:a.partHeatmaps,longOffsets:a.longOffsets,partOffsets:a.partOffsets}})},e.prototype.dispose=function(){this.model.dispose()},e}(),w=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return p(t,e),t.prototype.preprocessInput=function(e){return(0,o.tidy)(function(){return(0,o.sub)((0,o.div)(e,127.5),1)})},t.prototype.nameOutputResults=function(e){return{offsets:e[0],segmentation:e[1],partHeatmaps:e[2],longOffsets:e[3],heatmap:e[4],displacementFwd:e[5],displacementBwd:e[6],partOffsets:e[7]}},t}(T),I=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"],j=I.length,C=I.reduce(function(e,t,r){return e[t]=r,e},{});function N(e,t,r){var n=e[0],s=e[1],a=t[0],o=t[1],l=r.top,i=r.bottom;return[o/(r.left+r.right+s),a/(l+i+n)]}function S(e,t,r,n){return{y:n.get(e,t,r),x:n.get(e,t,r+j)}}function E(e,t,r){var n=S(e.heatmapY,e.heatmapX,e.id,r),s=n.y,a=n.x;return{x:e.heatmapX*t+a,y:e.heatmapY*t+s}}function A(e,t){return{x:e.x+t.x,y:e.y+t.y}}function F(e,t,r,n,s,a,o,l,i,u){for(var p=s[0],c=s[1],d=a[0],f=a[1],h=l[0],m=l[1],g=[],x=function(e){var t,r,n,s,a,o,l;return t=[p,c],r=[d,f],n=t[0],s=t[1],a=r[0],o=r[1],l=Math.round(((n+e.y+1)*o-1)/i),{x:Math.round(((s+e.x+1)*a-1)/i),y:l}},v=0;v<n;v++){var y=function(e,t,r,n,s,a,o){for(var l=o[0],i=o[1],u=r(e),p=u.y*n+u.x,c=s[2*p*j+t],d=s[j*(2*p+1)+t],f=e.y+c,h=e.x+d,m=0;m<a;m++){f=Math.min(f,l-1);var g=r({x:h=Math.min(h,i-1),y:f}),x=g.y*n+g.x;f+=c=s[2*x*j+t],h+=d=s[j*(2*x+1)+t]}return{x:h,y:f}}(e,v,x,o,t,u,[h,m]);g.push(y)}for(var _=-1,b=1/0,k=0;k<r.length;k++){var T=function(e,t,r){void 0===r&&(r=.3);for(var n=0,s=0,a=0;a<e.length;a++)t.keypoints[a].score>r&&(s+=1,n+=Math.pow(e[a].x-t.keypoints[a].position.x,2)+Math.pow(e[a].y-t.keypoints[a].position.y,2));return 0===s?n=1/0:n/=s,n}(g,r[k]);T<b&&(_=k,b=T)}return _}function R(e,t){var r=e[0];return[Math.round((e[1]-1)/t+1),Math.round((r-1)/t+1)]}function D(e,t,r,n,s,a,l,i,u,p,c){for(var d=l[0],f=l[1],h=e.shape,m=h[0],g=h[1],x=t.shape.slice(0,2),v=x[0],y=x[1],_=(0,o.reshape)(t,[v,y,2,j]),b=new Float32Array(c*j*3).fill(0),k=0;k<r.length;k++)for(var T=k*j*3,w=r[k],I=0;I<j;I++){var C=w.keypoints[I],S=T+3*I;b[S]=C.score,b[S+1]=C.position.y,b[S+2]=C.position.x}var E=N([n,s],[d,f],i),A=E[0],F=E[1],R=(0,o.tensor)(b,[c,j,3]),D=i.top,P=i.left,$={variableNames:["segmentation","longOffsets","poses"],outputShape:[m,g],userCode:"\n int convertToPositionInOutput(int pos, int pad, float scale, int stride) {\n return round(((float(pos + pad) + 1.0) * scale - 1.0) / float(stride));\n }\n\n float convertToPositionInOutputFloat(\n int pos, int pad, float scale, int stride) {\n return ((float(pos + pad) + 1.0) * scale - 1.0) / float(stride);\n }\n\n float dist(float x1, float y1, float x2, float y2) {\n return pow(x1 - x2, 2.0) + pow(y1 - y2, 2.0);\n }\n\n float sampleLongOffsets(float h, float w, int d, int k) {\n float fh = fract(h);\n float fw = fract(w);\n int clH = int(ceil(h));\n int clW = int(ceil(w));\n int flH = int(floor(h));\n int flW = int(floor(w));\n float o11 = getLongOffsets(flH, flW, d, k);\n float o12 = getLongOffsets(flH, clW, d, k);\n float o21 = getLongOffsets(clH, flW, d, k);\n float o22 = getLongOffsets(clH, clW, d, k);\n float o1 = mix(o11, o12, fw);\n float o2 = mix(o21, o22, fw);\n return mix(o1, o2, fh);\n }\n\n int findNearestPose(int h, int w) {\n float prob = getSegmentation(h, w);\n if (prob < 1.0) {\n return -1;\n }\n\n // Done(Tyler): convert from output space h/w to strided space.\n float stridedH = convertToPositionInOutputFloat(\n h, "+D+", "+F+", "+a+");\n float stridedW = convertToPositionInOutputFloat(\n w, "+P+", "+A+", "+a+");\n\n float minDist = 1000000.0;\n int iMin = -1;\n for (int i = 0; i < "+c+"; i++) {\n float curDistSum = 0.0;\n int numKpt = 0;\n for (int k = 0; k < "+j+"; k++) {\n float dy = sampleLongOffsets(stridedH, stridedW, 0, k);\n float dx = sampleLongOffsets(stridedH, stridedW, 1, k);\n\n float y = float(h) + dy;\n float x = float(w) + dx;\n\n for (int s = 0; s < "+u+"; s++) {\n int yRounded = round(min(y, float("+(n-1)+")));\n int xRounded = round(min(x, float("+(s-1)+")));\n\n float yStrided = convertToPositionInOutputFloat(\n yRounded, "+D+", "+F+", "+a+");\n float xStrided = convertToPositionInOutputFloat(\n xRounded, "+P+", "+A+", "+a+");\n\n float dy = sampleLongOffsets(yStrided, xStrided, 0, k);\n float dx = sampleLongOffsets(yStrided, xStrided, 1, k);\n\n y = y + dy;\n x = x + dx;\n }\n\n float poseScore = getPoses(i, k, 0);\n float poseY = getPoses(i, k, 1);\n float poseX = getPoses(i, k, 2);\n if (poseScore >"+p+") {\n numKpt = numKpt + 1;\n curDistSum = curDistSum + dist(x, y, poseX, poseY);\n }\n }\n if (numKpt > 0 && curDistSum / float(numKpt)< minDist) {\n minDist = curDistSum / float(numKpt);\n iMin = i;\n }\n }\n return iMin;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int nearestPose = findNearestPose(coords[0], coords[1]);\n setOutput(float(nearestPose));\n }\n "};return(0,o.backend)().compileAndRun($,[e,_,R])}function P(){return"webgl"===(0,o.getBackend)()}function $(e){return Math.floor(e/2)}[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]].map(function(e){var t=e[0],r=e[1];return[C[t],C[r]]});var M=function(){function e(e,t){this.priorityQueue=Array(e),this.numberOfElements=-1,this.getElementValue=t}return e.prototype.enqueue=function(e){this.priorityQueue[++this.numberOfElements]=e,this.swim(this.numberOfElements)},e.prototype.dequeue=function(){var e=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,e},e.prototype.empty=function(){return -1===this.numberOfElements},e.prototype.size=function(){return this.numberOfElements+1},e.prototype.all=function(){return this.priorityQueue.slice(0,this.numberOfElements+1)},e.prototype.max=function(){return this.priorityQueue[0]},e.prototype.swim=function(e){for(;e>0&&this.less($(e),e);)this.exchange(e,$(e)),e=$(e)},e.prototype.sink=function(e){for(;2*e<=this.numberOfElements;){var t=2*e;if(t<this.numberOfElements&&this.less(t,t+1)&&t++,!this.less(e,t))break;this.exchange(e,t),e=t}},e.prototype.getValueAt=function(e){return this.getElementValue(this.priorityQueue[e])},e.prototype.less=function(e,t){return this.getValueAt(e)<this.getValueAt(t)},e.prototype.exchange=function(e,t){var r=this.priorityQueue[e];this.priorityQueue[e]=this.priorityQueue[t],this.priorityQueue[t]=r},e}(),O=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]].map(function(e){var t=e[0],r=e[1];return[C[t],C[r]]}),B=O.map(function(e){return e[1]}),q=O.map(function(e){return e[0]});function L(e,t,r,n){var s,a,o,l;return{y:(s=Math.round(e.y/t),a=r-1,s<0?0:s>a?a:s),x:(o=Math.round(e.x/t),l=n-1,o<0?0:o>l?l:o)}}function V(e,t,r,n,s,a,o,l){void 0===l&&(l=2);for(var i,u,p=n.shape,c=p[0],d=p[1],f=(i=L(t.position,a,c,d),u=o.shape[2]/2,{y:o.get(i.y,i.x,e),x:o.get(i.y,i.x,u+e)}),h=A(t.position,f),m=0;m<l;m++){var g=L(h,a,c,d),x=S(g.y,g.x,r,s);h=A({x:g.x*a,y:g.y*a},{x:x.x,y:x.y})}var v=L(h,a,c,d),y=n.get(v.y,v.x,r);return{position:h,part:I[r],score:y}}function G(e,t,r,n){var s=r.x,a=r.y;return e.some(function(e){var r,o,l,i,u=e.keypoints[n].position;return r=u.y,o=u.x,(l=r-a)*l+(i=o-s)*i<=t})}function z(e,t,r,n,s,a,o,l){void 0===o&&(o=.5),void 0===l&&(l=20);for(var i=[],u=function(e,t,r){for(var n=r.shape,s=n[0],a=n[1],o=n[2],l=new M(s*a*o,function(e){return e.score}),i=0;i<s;++i)for(var u=0;u<a;++u)for(var p=0;p<o;++p){var c=r.get(i,u,p);c<e||function(e,t,r,n,s,a){for(var o=a.shape,l=o[0],i=o[1],u=!0,p=Math.max(r-1,0),c=Math.min(r+1+1,l),d=p;d<c;++d){for(var f=Math.max(n-1,0),h=Math.min(n+1+1,i),m=f;m<h;++m)if(a.get(d,m,e)>t){u=!1;break}if(!u)break}return u}(p,c,i,u,1,r)&&l.enqueue({score:c,part:{heatmapY:i,heatmapX:u,id:p}})}return l}(o,0,e),p=l*l;i.length<a&&!u.empty();){var c=u.dequeue();if(!G(i,p,E(c.part,s,t),c.part.id)){var d=function(e,t,r,n,s,a){var o=t.shape[2],l=B.length,i=Array(o),u=e.part,p=e.score,c=E(u,n,r);i[u.id]={score:p,part:I[u.id],position:c};for(var d=l-1;d>=0;--d){var f=B[d],h=q[d];i[f]&&!i[h]&&(i[h]=V(d,i[f],h,t,r,n,a))}for(d=0;d<l;++d)f=q[d],h=B[d],i[f]&&!i[h]&&(i[h]=V(d,i[f],h,t,r,n,s));return i}(c,e,t,s,r,n),f=function(e,t,r){return r.reduce(function(r,n,s){var a=n.position,o=n.score;return G(e,t,a,s)||(r+=o),r},0)/r.length}(i,p,d);i.push({keypoints:d,score:f})}}return i}var U,X=[-123.15,-115.9,-103.06],W=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return p(t,e),t.prototype.preprocessInput=function(e){return(0,o.add)(e,X)},t.prototype.nameOutputResults=function(e){var t=e[0],r=e[1],n=e[2],s=e[3],a=e[4],o=e[5];return{offsets:a,segmentation:e[6],partHeatmaps:o,longOffsets:s,heatmap:n,displacementFwd:r,displacementBwd:t,partOffsets:e[7]}},t}(T),H="https://storage.googleapis.com/tfjs-models/savedmodel/bodypix/resnet50/",K="https://storage.googleapis.com/tfjs-models/savedmodel/bodypix/mobilenet/";function J(e){if("undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas||"undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement){if("offsetHeight"in e&&0!==e.offsetHeight&&"offsetWidth"in e&&0!==e.offsetWidth)return[e.offsetHeight,e.offsetWidth];if(null!=e.height&&null!=e.width)return[e.height,e.width];throw Error("HTMLImageElement must have height and width attributes set.")}if("undefined"!=typeof ImageData&&e instanceof ImageData)return[e.height,e.width];if("undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement)return e.hasAttribute("height")&&e.hasAttribute("width")?[e.height,e.width]:[e.videoHeight,e.videoWidth];if(e instanceof o.Tensor)return[e.shape[0],e.shape[1]];throw Error("error: Unknown input type: "+e+".")}function Y(e,t){return(e-1)%t==0?e:Math.floor(e/t)*t+1}var Z={low:"low",medium:"medium",high:"high",full:"full"},Q=((U={})[Z.low]=.25,U[Z.medium]=.5,U[Z.high]=.75,U[Z.full]=1,U);function ee(e,t,r){var n=r[0],s=r[1],a=function(e){if("string"==typeof e){var t=Q[e];return o.util.assert("number"==typeof t,function(){return"string value of inputResolution must be one of "+Object.values(Z).join(",")+" but was "+e+"."}),t}return o.util.assert("number"==typeof e&&e<=2&&e>=.1,function(){return"inputResolution must be a string or number between 0.1 and 2, but was "+e}),e}(e);return[Y(n*a,t),Y(s*a,t)]}function et(e,t,r,n,s){var a=t[0],l=t[1],i=r[0],u=r[1],p=n[0],c=p[0],d=p[1],f=n[1],h=f[0],m=f[1];return void 0===s&&(s=!1),(0,o.tidy)(function(){var t,r,n,p,f,g,x,v,y,_,b,k=o.image.resizeBilinear(e,[i,u],!0);return s&&(k=(0,o.sigmoid)(k)),t=k,r=[a,l],n=[[c,d],[h,m]],p=r[0],f=r[1],x=(g=n[0])[0],v=g[1],_=(y=n[1])[0],b=y[1],(0,o.tidy)(function(){var e=(0,o.expandDims)(t);return(0,o.squeeze)(o.image.cropAndResize(e,[[x/(p+x+v-1),_/(f+_+b-1),(x+p-1)/(p+x+v-1),(_+f-1)/(f+_+b-1)]],[0],[p,f]),[0])})})}function er(e,t){var r=t[0],n=t[1],s=J(e),a=s[0],l=s[1],i=n/r,u=0,p=0,c=0,d=0;return l/a<i?(u=0,p=0,c=Math.round(.5*(i*a-l)),d=Math.round(.5*(i*a-l))):(u=Math.round(.5*(1/i*l-a)),p=Math.round(.5*(1/i*l-a)),c=0,d=0),{resized:(0,o.tidy)(function(){var t=e instanceof o.Tensor?e:o.browser.fromPixels(e);return t=(0,o.pad3d)(t,[[u,p],[c,d],[0,0]]),o.image.resizeBilinear(t,[r,n])}),padding:{top:u,left:c,right:d,bottom:p}}}function en(e){return d(this,void 0,void 0,function(){return f(this,function(t){return[2,Promise.all(e.map(function(e){return e.buffer()}))]})})}function es(e,t,r,n,s){var a,o,l,i,u=t[0],p=t[1],c=r[0],d=r[1],f=(a=(u+n.top+n.bottom)/c,o=(p+n.left+n.right)/d,l=-n.top,i=-n.left,void 0===l&&(l=0),void 0===i&&(i=0),1===o&&1===a&&0===l&&0===i?e:e.map(function(e){var t,r;return void 0===(t=l)&&(t=0),void 0===(r=i)&&(r=0),{score:e.score,keypoints:e.keypoints.map(function(e){var n=e.score,s=e.part,l=e.position;return{score:n,part:s,position:{x:l.x*o+r,y:l.y*a+t}}})}}));return s?p<=0?f:f.map(function(e){return{score:e.score,keypoints:e.keypoints.map(function(e){var t=e.score,r=e.part,n=e.position;return{score:t,part:r,position:{x:p-1-n.x,y:n.y}}})}}):f}var ea={architecture:"MobileNetV1",outputStride:16,quantBytes:4,multiplier:.75},eo=["MobileNetV1","ResNet50"],el={MobileNetV1:[8,16,32],ResNet50:[32,16]},ei={MobileNetV1:[.5,.75,1],ResNet50:[1]},eu=[1,2,4],ep={flipHorizontal:!1,internalResolution:"medium",segmentationThreshold:.7,maxDetections:10,scoreThreshold:.4,nmsRadius:20},ec={flipHorizontal:!1,internalResolution:"medium",segmentationThreshold:.7,maxDetections:10,scoreThreshold:.4,nmsRadius:20,minKeypointScore:.3,refineSteps:10};function ed(e){var t=e.segmentationThreshold,r=e.maxDetections,n=e.scoreThreshold,s=e.nmsRadius;if(t<0||t>1)throw Error("segmentationThreshold "+t+". Should be in range [0.0, 1.0]");if(r<=0)throw Error("Invalid maxDetections "+r+". Should be >0");if(n<0||n>1)throw Error("Invalid scoreThreshold "+n+". Should be in range [0.0, 1.0]");if(s<=0)throw Error("Invalid nmsRadius "+s+".")}function ef(e){var t=e.segmentationThreshold,r=e.maxDetections,n=e.scoreThreshold,s=e.nmsRadius,a=e.minKeypointScore,o=e.refineSteps;if(t<0||t>1)throw Error("segmentationThreshold "+t+". Should be in range [0.0, 1.0]");if(r<=0)throw Error("Invalid maxDetections "+r+". Should be >0");if(n<0||n>1)throw Error("Invalid scoreThreshold "+n+". Should be in range [0.0, 1.0]");if(s<=0)throw Error("Invalid nmsRadius "+s+".");if(a<0||a>1)throw Error("Invalid minKeypointScore "+a+".Should be in range [0.0, 1.0]");if(o<=0||o>20)throw Error("Invalid refineSteps "+o+".Should be in range [1, 20]")}var eh=function(){function e(e){this.baseModel=e}return e.prototype.predictForPersonSegmentation=function(e){var t=this.baseModel.predict(e);return{segmentLogits:t.segmentation,heatmapScores:t.heatmapScores,offsets:t.offsets,displacementFwd:t.displacementFwd,displacementBwd:t.displacementBwd}},e.prototype.predictForPersonSegmentationAndPart=function(e){var t=this.baseModel.predict(e);return{segmentLogits:t.segmentation,partHeatmapLogits:t.partHeatmaps,heatmapScores:t.heatmapScores,offsets:t.offsets,displacementFwd:t.displacementFwd,displacementBwd:t.displacementBwd}},e.prototype.predictForMultiPersonInstanceSegmentationAndPart=function(e){var t=this.baseModel.predict(e);return{segmentLogits:t.segmentation,longOffsets:t.longOffsets,heatmapScores:t.heatmapScores,offsets:t.offsets,displacementFwd:t.displacementFwd,displacementBwd:t.displacementBwd,partHeatmaps:t.partHeatmaps}},e.prototype.segmentPersonActivation=function(e,t,r){var n=this;void 0===r&&(r=.5);var s=J(e),a=s[0],l=s[1],i=ee(t,this.baseModel.outputStride,[a,l]),u=er(e,i),p=u.resized,c=u.padding,d=(0,o.tidy)(function(){var e=n.predictForPersonSegmentation(p),t=e.segmentLogits,s=e.heatmapScores,i=e.offsets,u=e.displacementFwd,d=e.displacementBwd,f=p.shape,h=et(t,[a,l],[f[0],f[1]],[[c.top,c.bottom],[c.left,c.right]],!0);return{segmentation:k((0,o.squeeze)(h),r),heatmapScores:s,offsets:i,displacementFwd:u,displacementBwd:d}}),f=d.segmentation,h=d.heatmapScores,m=d.offsets,g=d.displacementFwd,x=d.displacementBwd;return p.dispose(),{segmentation:f,heatmapScores:h,offsets:m,displacementFwd:g,displacementBwd:x,padding:c,internalResolutionHeightAndWidth:i}},e.prototype.segmentPerson=function(e,t){return void 0===t&&(t=ep),d(this,void 0,void 0,function(){var r,n,s,a,o,l,i,u,p,d,h,m,g,x,v,y;return f(this,function(f){switch(f.label){case 0:return ed(t=c(c({},ep),t)),n=(r=this.segmentPersonActivation(e,t.internalResolution,t.segmentationThreshold)).segmentation,s=r.heatmapScores,a=r.offsets,o=r.displacementFwd,l=r.displacementBwd,i=r.padding,u=r.internalResolutionHeightAndWidth,d=(p=n.shape)[0],h=p[1],[4,n.data()];case 1:return m=f.sent(),n.dispose(),[4,en([s,a,o,l])];case 2:return x=(g=f.sent())[0],v=g[1],y=es(y=z(x,v,g[2],g[3],this.baseModel.outputStride,t.maxDetections,t.scoreThreshold,t.nmsRadius),[d,h],u,i,!1),s.dispose(),a.dispose(),o.dispose(),l.dispose(),[2,{height:d,width:h,data:m,allPoses:y}]}})})},e.prototype.segmentMultiPerson=function(e,t){return void 0===t&&(t=ec),d(this,void 0,void 0,function(){var r,n,s,a,l,i,u,p,h,m,g,x,v,y,_,b,T,w,I,j=this;return f(this,function(C){switch(C.label){case 0:return ef(t=c(c({},ec),t)),n=(r=J(e))[0],s=r[1],i=(l=er(e,a=ee(t.internalResolution,this.baseModel.outputStride,[n,s]))).resized,u=l.padding,h=(p=(0,o.tidy)(function(){var e=j.predictForMultiPersonInstanceSegmentationAndPart(i),r=e.segmentLogits,l=e.longOffsets,p=e.heatmapScores,c=e.offsets,d=e.displacementFwd,f=e.displacementBwd,h=et(r,[n,s],a,[[u.top,u.bottom],[u.left,u.right]],!0);return{segmentation:k((0,o.squeeze)(h),t.segmentationThreshold),longOffsets:l,heatmapScoresRaw:p,offsetsRaw:c,displacementFwdRaw:d,displacementBwdRaw:f}})).segmentation,m=p.longOffsets,g=p.heatmapScoresRaw,x=p.offsetsRaw,v=p.displacementFwdRaw,y=p.displacementBwdRaw,[4,en([g,x,v,y])];case 1:return b=(_=C.sent())[0],T=_[1],w=es(w=z(b,T,_[2],_[3],this.baseModel.outputStride,t.maxDetections,t.scoreThreshold,t.nmsRadius),[n,s],a,u,!1),[4,function(e,t,r,n,s,a,l,i,u,p,c,h){var m=l[0],g=l[1];return void 0===u&&(u=.2),void 0===p&&(p=8),void 0===c&&(c=.3),void 0===h&&(h=10),d(this,void 0,void 0,function(){var l,d,x,v,y;return f(this,function(f){switch(f.label){case 0:return l=r.filter(function(e){return e.score>=u}),P()?[4,Promise.all((x=(0,o.tidy)(function(){var r=D(e,t,l,n,s,a,[m,g],i,p,c,h),u=(0,o.engine)().makeTensorFromDataId(r.dataId,r.shape,r.dtype);return l.map(function(e,t){return(0,o.tidy)(function(){return(0,o.cast)((0,o.equal)(u,(0,o.scalar)(t)),"int32")})})})).map(function(e){return e.data()}))]:[3,2];case 1:return d=f.sent(),x.forEach(function(e){return e.dispose()}),[3,5];case 2:return[4,e.data()];case 3:return v=f.sent(),[4,t.data()];case 4:y=f.sent(),d=function(e,t,r,n,s,a,o,l,i,u){var p=o[0],c=o[1];void 0===u&&(u=5);for(var d=r.map(function(e){return new Uint8Array(n*s).fill(0)}),f=l.top,h=l.left,m=N([n,s],[p,c],l),g=m[0],x=m[1],v=R([p,c],a)[0],y=0;y<n;y+=1)for(var _=0;_<s;_+=1){var b=y*s+_;if(1===e[b]){var k=F({x:_,y:y},t,r,u,[f,h],[g,x],v,[n,s],a,i);k>=0&&(d[k][b]=1)}}return d}(v,y,l,n,s,a,[m,g],i,p),f.label=5;case 5:return[2,d.map(function(e,t){return{data:e,pose:l[t],width:s,height:n}})]}})})}(h,m,w,n,s,this.baseModel.outputStride,a,u,t.scoreThreshold,t.refineSteps,t.minKeypointScore,t.maxDetections)];case 2:return I=C.sent(),i.dispose(),h.dispose(),m.dispose(),g.dispose(),x.dispose(),v.dispose(),y.dispose(),[2,I]}})})},e.prototype.segmentPersonPartsActivation=function(e,t,r){var n=this;void 0===r&&(r=.5);var s=J(e),a=s[0],l=s[1],i=ee(t,this.baseModel.outputStride,[a,l]),u=er(e,i),p=u.resized,c=u.padding,d=(0,o.tidy)(function(){var e,t,s,i,u,d=n.predictForPersonSegmentationAndPart(p),f=d.segmentLogits,h=d.partHeatmapLogits,m=d.heatmapScores,g=d.offsets,x=d.displacementFwd,v=d.displacementBwd,y=p.shape,_=y[0],T=y[1],w=et(f,[a,l],[_,T],[[c.top,c.bottom],[c.left,c.right]],!0),I=et(h,[a,l],[_,T],[[c.top,c.bottom],[c.left,c.right]],!0);return{partSegmentation:(e=k((0,o.squeeze)(w),r),s=(t=I.shape)[0],i=t[1],u=t[2],(0,o.tidy)(function(){var t=b(I),r=(0,o.expandDims)((0,o.range)(0,u,1,"int32"),1),n=(0,o.cast)((0,o.matMul)(t,r),"int32"),a=(0,o.reshape)(n,[s,i]),l=(0,o.add)(a,(0,o.scalar)(1,"int32"));return(0,o.sub)((0,o.mul)(l,e),(0,o.scalar)(1,"int32"))})),heatmapScores:m,offsets:g,displacementFwd:x,displacementBwd:v}}),f=d.partSegmentation,h=d.heatmapScores,m=d.offsets,g=d.displacementFwd,x=d.displacementBwd;return p.dispose(),{partSegmentation:f,heatmapScores:h,offsets:m,displacementFwd:g,displacementBwd:x,padding:c,internalResolutionHeightAndWidth:i}},e.prototype.segmentPersonParts=function(e,t){return void 0===t&&(t=ep),d(this,void 0,void 0,function(){var r,n,s,a,o,l,i,u,p,d,h,m,g,x,v,y;return f(this,function(f){switch(f.label){case 0:return ed(t=c(c({},ep),t)),n=(r=this.segmentPersonPartsActivation(e,t.internalResolution,t.segmentationThreshold)).partSegmentation,s=r.heatmapScores,a=r.offsets,o=r.displacementFwd,l=r.displacementBwd,i=r.padding,u=r.internalResolutionHeightAndWidth,d=(p=n.shape)[0],h=p[1],[4,n.data()];case 1:return m=f.sent(),n.dispose(),[4,en([s,a,o,l])];case 2:return x=(g=f.sent())[0],v=g[1],y=es(y=z(x,v,g[2],g[3],this.baseModel.outputStride,t.maxDetections,t.scoreThreshold,t.nmsRadius),[d,h],u,i,!1),s.dispose(),a.dispose(),o.dispose(),l.dispose(),[2,{height:d,width:h,data:m,allPoses:y}]}})})},e.prototype.segmentMultiPersonParts=function(e,t){return void 0===t&&(t=ec),d(this,void 0,void 0,function(){var r,n,s,a,l,i,u,p,h,m,g,x,v,y,_,T,w,I,j,C,S=this;return f(this,function(E){switch(E.label){case 0:return ef(t=c(c({},ec),t)),n=(r=J(e))[0],s=r[1],i=(l=er(e,a=ee(t.internalResolution,this.baseModel.outputStride,[n,s]))).resized,u=l.padding,h=(p=(0,o.tidy)(function(){var e,r,l,p,c=S.predictForMultiPersonInstanceSegmentationAndPart(i),d=c.segmentLogits,f=c.longOffsets,h=c.heatmapScores,m=c.offsets,g=c.displacementFwd,x=c.displacementBwd,v=c.partHeatmaps,y=et(d,[n,s],a,[[u.top,u.bottom],[u.left,u.right]],!0),_=et(v,[n,s],a,[[u.top,u.bottom],[u.left,u.right]],!0);return{segmentation:k((0,o.squeeze)(y),t.segmentationThreshold),longOffsets:f,heatmapScoresRaw:h,offsetsRaw:m,displacementFwdRaw:g,displacementBwdRaw:x,partSegmentation:(r=(e=_.shape)[0],l=e[1],p=e[2],(0,o.tidy)(function(){var e=b(_),t=(0,o.expandDims)((0,o.range)(0,p,1,"int32"),1),n=(0,o.cast)((0,o.matMul)(e,t),"int32");return(0,o.reshape)(n,[r,l])}))}})).segmentation,m=p.longOffsets,g=p.heatmapScoresRaw,x=p.offsetsRaw,v=p.displacementFwdRaw,y=p.displacementBwdRaw,_=p.partSegmentation,[4,en([g,x,v,y])];case 1:return w=(T=E.sent())[0],I=T[1],j=es(j=z(w,I,T[2],T[3],this.baseModel.outputStride,t.maxDetections,t.scoreThreshold,t.nmsRadius),[n,s],a,u,!1),[4,function(e,t,r,n,s,a,l,i,u,p,c,h,m){var g=i[0],x=i[1];return void 0===p&&(p=.2),void 0===c&&(c=8),void 0===h&&(h=.3),void 0===m&&(m=10),d(this,void 0,void 0,function(){var i,d,v,y,_,b;return f(this,function(f){switch(f.label){case 0:return i=n.filter(function(e){return e.score>=p}),P()?[4,Promise.all((v=(0,o.tidy)(function(){var n=D(e,t,i,s,a,l,[g,x],u,c,h,m),p=(0,o.engine)().makeTensorFromDataId(n.dataId,n.shape,n.dtype);return i.map(function(e,t){return(0,o.tidy)(function(){return(0,o.sub)((0,o.mul)((0,o.cast)((0,o.equal)(p,(0,o.scalar)(t)),"int32"),(0,o.add)(r,1)),1)})})})).map(function(e){return e.data()}))]:[3,2];case 1:return d=f.sent(),v.forEach(function(e){return e.dispose()}),[3,6];case 2:return[4,e.data()];case 3:return y=f.sent(),[4,t.data()];case 4:return _=f.sent(),[4,r.data()];case 5:b=f.sent(),d=function(e,t,r,n,s,a,o,l,i,u,p){var c=l[0],d=l[1];void 0===p&&(p=5);for(var f=n.map(function(e){return new Int32Array(s*a).fill(-1)}),h=i.top,m=i.left,g=N([s,a],[c,d],i),x=g[0],v=g[1],y=R([c,d],o)[0],_=0;_<s;_+=1)for(var b=0;b<a;b+=1){var k=_*a+b;if(1===e[k]){var T=F({x:b,y:_},t,n,p,[h,m],[x,v],y,[s,a],o,u);T>=0&&(f[T][k]=r[k])}}return f}(y,_,b,i,s,a,l,[g,x],u,c),f.label=6;case 6:return[2,d.map(function(e,t){return{pose:i[t],data:e,height:s,width:a}})]}})})}(h,m,_,j,n,s,this.baseModel.outputStride,a,u,t.scoreThreshold,t.refineSteps,t.minKeypointScore,t.maxDetections)];case 2:return C=E.sent(),i.dispose(),h.dispose(),m.dispose(),g.dispose(),x.dispose(),v.dispose(),y.dispose(),_.dispose(),[2,C]}})})},e.prototype.dispose=function(){this.baseModel.dispose()},e}(),em=["left_face","right_face","left_upper_arm_front","left_upper_arm_back","right_upper_arm_front","right_upper_arm_back","left_lower_arm_front","left_lower_arm_back","right_lower_arm_front","right_lower_arm_back","left_hand","right_hand","torso_front","torso_back","left_upper_leg_front","left_upper_leg_back","right_upper_leg_front","right_upper_leg_back","left_lower_leg_front","left_lower_leg_back","right_lower_leg_front","right_lower_leg_back","left_feet","right_feet"],eg=function(){function e(e){this.mask=e}return e.prototype.toCanvasImageSource=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,m(this.mask)]})})},e.prototype.toImageData=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,this.mask]})})},e.prototype.toTensor=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,x(this.mask)]})})},e.prototype.getUnderlyingType=function(){return"imagedata"},e}();function ex(e){if(v(e),255!==e)throw Error("Foreground id must be 255 but got "+e);return"person"}function ev(e){if(v(e),e>=em.length)throw Error("Invalid body part value "+e);return em[e]}var ey=function(){function e(e){this.bodyPixModel=e}return e.prototype.segmentPeople=function(e,t){return d(this,void 0,void 0,function(){var r,n,s,a;return f(this,function(o){switch(o.label){case 0:return e instanceof ImageBitmap&&((r=document.createElement("canvas")).getContext("2d").drawImage(e,0,0),e=r),t.segmentBodyParts?t.multiSegmentation?[4,this.bodyPixModel.segmentMultiPersonParts(e,t)]:[3,2]:[3,5];case 1:return s=o.sent(),[3,4];case 2:return[4,this.bodyPixModel.segmentPersonParts(e,t)];case 3:s=[o.sent()],o.label=4;case 4:return n=s.map(function(e){var t=e.data,r=e.width,n=e.height,s=new Uint8ClampedArray(r*n*4).fill(0);return t.forEach(function(e,t){-1===e?(s[4*t]=em.length,s[4*t+3]=0):(s[4*t]=e,s[4*t+3]=255)}),{maskValueToLabel:ev,mask:new eg(new ImageData(s,r,n))}}),[3,10];case 5:return t.multiSegmentation?[4,this.bodyPixModel.segmentMultiPerson(e,t)]:[3,7];case 6:return a=o.sent(),[3,9];case 7:return[4,this.bodyPixModel.segmentPerson(e,t)];case 8:a=[o.sent()],o.label=9;case 9:n=a.map(function(e){var t=e.data,r=e.width,n=e.height,s=new Uint8ClampedArray(r*n*4).fill(0);return t.forEach(function(e,t){0===e?(s[4*t]=0,s[4*t+3]=0):(s[4*t]=255,s[4*t+3]=255)}),{maskValueToLabel:ex,mask:new eg(new ImageData(s,r,n))}}),o.label=10;case 10:return[2,n]}})})},e.prototype.dispose=function(){this.bodyPixModel.dispose()},e.prototype.reset=function(){},e}(),e_={runtime:"mediapipe",modelType:"general"},eb=function(){function e(e){this.mask=e}return e.prototype.toCanvasImageSource=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,this.mask]})})},e.prototype.toImageData=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,g(this.mask)]})})},e.prototype.toTensor=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,x(this.mask)]})})},e.prototype.getUnderlyingType=function(){return"canvasimagesource"},e}();function ek(e){return v(e),"person"}var eT=function(){function e(e){var t,r,n=this;this.selfieMode=!1,t=+(this.selfieSegmentationSolution=new(0,i.SelfieSegmentation)({locateFile:null!=(r=e.locateFile)?r:function(t,r){return e.solutionPath?e.solutionPath.replace(/\/+$/,"")+"/"+t:r+"/"+t}}),"landscape"===e.modelType),this.selfieSegmentationSolution.setOptions({modelSelection:t,selfieMode:this.selfieMode}),this.selfieSegmentationSolution.onResults(function(e){n.segmentation=[{maskValueToLabel:ek,mask:new eb(e.segmentationMask)}]})}return e.prototype.segmentPeople=function(e,t){return d(this,void 0,void 0,function(){var r,n;return f(this,function(s){switch(s.label){case 0:return t&&t.flipHorizontal&&t.flipHorizontal!==this.selfieMode&&(this.selfieMode=t.flipHorizontal,this.selfieSegmentationSolution.setOptions({selfieMode:this.selfieMode})),e instanceof o.Tensor?(n=ImageData.bind,[4,o.browser.toPixels(e)]):[3,2];case 1:return r=new(n.apply(ImageData,[void 0,s.sent(),e.shape[1],e.shape[0]])),[3,3];case 2:r=e,s.label=3;case 3:return e=r,[4,this.selfieSegmentationSolution.send({image:e})];case 4:return s.sent(),[2,this.segmentation]}})})},e.prototype.dispose=function(){this.selfieSegmentationSolution.close()},e.prototype.reset=function(){this.selfieSegmentationSolution.reset(),this.segmentation=null,this.selfieMode=!1},e.prototype.initialize=function(){return this.selfieSegmentationSolution.initialize()},e}();function ew(e){return e instanceof o.Tensor?{height:e.shape[0],width:e.shape[1]}:{height:e.height,width:e.width}}function eI(e,t){o.util.assert(0!==e.width,function(){return t+" width cannot be 0."}),o.util.assert(0!==e.height,function(){return t+" height cannot be 0."})}var ej={runtime:"tfjs",modelType:"general",modelUrl:"https://tfhub.dev/mediapipe/tfjs-model/selfie_segmentation/general/1"},eC={flipHorizontal:!1},eN={outputTensorSize:{width:256,height:256},keepAspectRatio:!1,borderMode:"zero",outputTensorFloatRange:[0,1]},eS={outputTensorSize:{width:256,height:144},keepAspectRatio:!1,borderMode:"zero",outputTensorFloatRange:[0,1]},eE={activation:"none"},eA=function(){function e(e){this.mask=e}return e.prototype.toCanvasImageSource=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,m(this.mask)]})})},e.prototype.toImageData=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,g(this.mask)]})})},e.prototype.toTensor=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,this.mask]})})},e.prototype.getUnderlyingType=function(){return"tensor"},e}();function eF(e){return v(e),"person"}var eR,eD=function(){function e(e,t){this.modelType=e,this.model=t}return e.prototype.segmentPeople=function(e,t){return d(this,void 0,void 0,function(){var r=this;return f(this,function(n){return t=function(e){if(null==e)return c({},eC);var t=c({},e);return null==t.flipHorizontal&&(t.flipHorizontal=eC.flipHorizontal),t}(t),null==e?(this.reset(),[2,[]]):[2,[{maskValueToLabel:eF,mask:new eA((0,o.tidy)(function(){var t,n,s,a,l,i,u,p,c,d,f,h,m,g,x,v,y,_,b,k,T,w,I=(x=(t="general"===r.modelType?eN:eS).outputTensorSize,v=t.keepAspectRatio,y=t.borderMode,_=t.outputTensorFloatRange,T=function(e,t,r){if(void 0===r&&(r=!1),!r)return{top:0,left:0,right:0,bottom:0};var n=t.height,s=t.width;eI(t,"targetSize"),eI(e,"roi");var a,o,l=n/s,i=e.height/e.width,u=0,p=0;return l>i?(a=e.width,o=e.width*l,p=(1-i/l)/2):(a=e.height/l,o=e.height,u=(1-l/i)/2),e.width=a,e.height=o,{top:p,left:u,right:u,bottom:p}}((n=b=ew(e),k={xCenter:.5*n.width,yCenter:.5*n.height,width:n.width,height:n.height,rotation:0}),x,v),s=b.width,a=b.height,l=k.width,i=k.height,u=1,p=Math.cos(k.rotation),c=Math.sin(k.rotation),d=k.xCenter,f=k.yCenter,h=1/s,m=1/a,(g=Array(16))[0]=l*p*u*h,g[1]=-i*c*h,g[2]=0,g[3]=(-.5*l*p*u+.5*i*c+d)*h,g[4]=l*c*u*m,g[5]=i*p*m,g[6]=0,g[7]=(-.5*i*p-.5*l*c*u+f)*m,g[8]=0,g[9]=0,g[10]=l*h,g[11]=0,g[12]=0,g[13]=0,g[14]=0,g[15]=1,w=function(e){if(16!==e.length)throw Error("Array length must be 16 but got "+e.length);return[[e[0],e[1],e[2],e[3]],[e[4],e[5],e[6],e[7]],[e[8],e[9],e[10],e[11]],[e[12],e[13],e[14],e[15]]]}(g),{imageTensor:(0,o.tidy)(function(){var t,r=e instanceof o.Tensor?e:o.browser.fromPixels(e),n=(0,o.tensor2d)((eI(x,"inputResolution"),[1/x.width*w[0][0]*b.width,1/x.height*w[0][1]*b.width,w[0][3]*b.width,1/x.width*w[1][0]*b.height,1/x.height*w[1][1]*b.height,w[1][3]*b.height,0,0]),[1,8]),s=o.image.transform((0,o.expandDims)((0,o.cast)(r,"float32")),n,"bilinear","zero"===y?"constant":"nearest",0,[x.height,x.width]);return null!=_?(t=function(e,t,r,n){!1;var s=(n-r)/255;return{scale:s,offset:r-0*s}}(0,0,_[0],_[1]),(0,o.tidy)(function(){return(0,o.add)((0,o.mul)(s,t.scale),t.offset)})):s}),padding:T,transformationMatrix:w}).imageTensor,j=(0,o.slice)(r.model.predict(I),[0,0,0,1],-1),C=ew(e),N=(0,o.tidy)(function(){var e=(0,o.squeeze)(j,[0]),t=e.shape[2];if(1===t){var r=e;switch(eE.activation){case"none":break;case"sigmoid":r=(0,o.sigmoid)(r);break;case"softmax":throw Error("Softmax activation requires two channels.");default:throw Error("Activation not supported ("+eE.activation+")")}var n=C?o.image.resizeBilinear(r,[C.height,C.width]):r;return(0,o.squeeze)(n,[2])}throw Error("Unsupported number of tensor channels "+t)}),S=(0,o.expandDims)(N,2),E=(0,o.pad)(S,[[0,0],[0,0],[0,1]]);return(0,o.mirrorPad)(E,[[0,0],[0,0],[0,2]],"symmetric")}))}]]})})},e.prototype.dispose=function(){this.model.dispose()},e.prototype.reset=function(){},e}();function eP(e,t){return d(this,void 0,void 0,function(){var r,n;return f(this,function(s){switch(e){case eR.MediaPipeSelfieSegmentation:if(r=void 0,null!=(n=t)){if("tfjs"===n.runtime)return[2,function(e){return d(this,void 0,void 0,function(){var t,r,n;return f(this,function(s){switch(s.label){case 0:return r="string"==typeof(t=function(e){if(null==e)return c({},ej);var t=c({},e);if(t.runtime="tfjs",null==t.modelType&&(t.modelType=ej.modelType),"general"!==t.modelType&&"landscape"!==t.modelType)throw Error("Model type must be one of general or landscape, but got "+t.modelType);return null==t.modelUrl&&("general"===t.modelType?t.modelUrl="https://tfhub.dev/mediapipe/tfjs-model/selfie_segmentation/general/1":t.modelUrl="https://tfhub.dev/mediapipe/tfjs-model/selfie_segmentation/landscape/1"),t}(e)).modelUrl&&t.modelUrl.indexOf("https://tfhub.dev")>-1,[4,(0,l.loadGraphModel)(t.modelUrl,{fromTFHub:r})];case 1:return n=s.sent(),[2,new eD(t.modelType,n)]}})})}(n)];if("mediapipe"===n.runtime)return[2,function(e){return d(this,void 0,void 0,function(){var t;return f(this,function(r){switch(r.label){case 0:return[4,(t=new eT(function(e){if(null==e)return c({},e_);var t=c({},e);return t.runtime="mediapipe",null==t.modelType&&(t.modelType=e_.modelType),t}(e))).initialize()];case 1:return r.sent(),[2,t]}})})}(n)];r=n.runtime}throw Error("Expect modelConfig.runtime to be either 'tfjs' or 'mediapipe', but got "+r);case eR.BodyPix:return[2,function(e){return d(this,void 0,void 0,function(){return f(this,function(t){return[2,(function(e){return void 0===e&&(e=ea),d(this,void 0,void 0,function(){return f(this,function(t){return"ResNet50"===(e=function(e){if(null==(e=e||ea).architecture&&(e.architecture="MobileNetV1"),0>eo.indexOf(e.architecture))throw Error("Invalid architecture "+e.architecture+". Should be one of "+eo);if(null==e.outputStride&&(e.outputStride=16),0>el[e.architecture].indexOf(e.outputStride))throw Error("Invalid outputStride "+e.outputStride+". Should be one of "+el[e.architecture]+" for architecture "+e.architecture+".");if(null==e.multiplier&&(e.multiplier=1),0>ei[e.architecture].indexOf(e.multiplier))throw Error("Invalid multiplier "+e.multiplier+". Should be one of "+ei[e.architecture]+" for architecture "+e.architecture+".");if(null==e.quantBytes&&(e.quantBytes=4),0>eu.indexOf(e.quantBytes))throw Error("Invalid quantBytes "+e.quantBytes+". Should be one of "+eu+" for architecture "+e.architecture+".");return e}(e)).architecture?[2,function(e){return d(this,void 0,void 0,function(){var t,r,n;return f(this,function(s){switch(s.label){case 0:var a;if(t=e.outputStride,r=e.quantBytes,null==o)throw Error("Cannot find TensorFlow.js. If you are using a<script>tag, please also include @tensorflow/tfjs on the page before using this\n model.");return a="model-stride"+t+".json",n=4===r?H+"float/"+a:H+"quant"+r+"/"+a,[4,(0,l.loadGraphModel)(e.modelUrl||n)];case 1:return[2,new eh(new W(s.sent(),t))]}})})}(e)]:"MobileNetV1"===e.architecture?[2,function(e){return d(this,void 0,void 0,function(){var t,r,n,s;return f(this,function(a){switch(a.label){case 0:var i,u;if(t=e.outputStride,r=e.quantBytes,n=e.multiplier,null==o)throw Error("Cannot find TensorFlow.js. If you are using a<script>tag, please also include @tensorflow/tfjs on the page before using this\n model.");return i={1:"100",.75:"075",.5:"050"},u="model-stride"+t+".json",s=4===r?K+"float/"+i[n]+"/"+u:K+"quant"+r+"/"+i[n]+"/"+u,[4,(0,l.loadGraphModel)(e.modelUrl||s)];case 1:return[2,new eh(new w(a.sent(),t))]}})})}(e)]:[2,null]})})})(e).then(function(e){return new ey(e)})]})})}(n=t)];default:throw Error(e+" is not a supported model name.")}})})}(s=eR||(eR={})).BodyPix="BodyPix",s.MediaPipeSelfieSegmentation="MediaPipeSelfieSegmentation";var e$="blurred",eM="blurred-mask",eO="mask",eB={};function eq(e,t,r,n){var s=e.width,a=e.height,o=t.width,l=t.height;if(s!==o||a!==l)throw Error("error: dimensions must match. "+r+" has dimensions "+s+"x"+a+", "+n+" has dimensions "+o+"x"+l)}function eL(e){if("undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas||"undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement){if("offsetHeight"in e&&0!==e.offsetHeight&&"offsetWidth"in e&&0!==e.offsetWidth)return[e.offsetHeight,e.offsetWidth];if(null!=e.height&&null!=e.width)return[e.height,e.width];throw Error("HTMLImageElement must have height and width attributes set.")}if("undefined"!=typeof ImageData&&e instanceof ImageData)return[e.height,e.width];if("undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement)return e.hasAttribute("height")&&e.hasAttribute("width")?[e.height,e.width]:[e.videoHeight,e.videoWidth];if(e instanceof o.Tensor)return[e.shape[0],e.shape[1]];throw Error("error: Unknown input type: "+e+".")}function eV(e){return eB[e]||(eB[e]=function(){if("undefined"!=typeof document)return document.createElement("canvas");if("undefined"!=typeof OffscreenCanvas)return new OffscreenCanvas(0,0);throw Error("Cannot create a canvas in this context")}()),eB[e]}function eG(e,t){var r=eV(t);return r.width=e.width,r.height=e.height,r.getContext("2d").putImageData(e,0,0),r}function ez(e,t,r,n,s,a){return d(this,void 0,void 0,function(){var l,i,u;return f(this,function(p){switch(p.label){case 0:return t instanceof o.Tensor?[4,o.browser.toPixels(t)]:[3,2];case 1:l=p.sent(),u=(i=eL(t))[0],t=new ImageData(l,i[1],u),p.label=2;case 2:return t instanceof ImageData&&(t=eG(t,"draw-image")),null==s||null==a?e.drawImage(t,r,n):e.drawImage(t,r,n,s,a),[2]}})})}function eU(e){var t=e.getContext("2d");t.scale(-1,1),t.translate(-e.width,0)}function eX(e,t,r){return d(this,void 0,void 0,function(){return f(this,function(n){switch(n.label){case 0:return e.globalCompositeOperation=r,[4,ez(e,t,0,0)];case 1:return n.sent(),[2]}})})}function eW(e,t,r){return d(this,void 0,void 0,function(){var n;return f(this,function(s){switch(s.label){case 0:return n=eV(r),0!==t?[3,2]:[4,function(e,t){return d(this,void 0,void 0,function(){var r,n,s;return f(this,function(a){switch(a.label){case 0:return n=(r=eL(e))[0],t.width=s=r[1],t.height=n,[4,ez(t.getContext("2d"),e,0,0,s,n)];case 1:return a.sent(),[2]}})})}(e,n)];case 1:return s.sent(),[3,4];case 2:return[4,function(e,t,r){return d(this,void 0,void 0,function(){var n,s,a,o;return f(this,function(l){switch(l.label){case 0:return s=(n=eL(e))[0],a=n[1],o=r.getContext("2d"),r.width=a,r.height=s,o.clearRect(0,0,a,s),o.save(),/^((?!chrome|android).)*safari/i.test(navigator.userAgent)?[4,function(e,t,r){return d(this,void 0,void 0,function(){var n,s,a,o,l,i,u,p;return f(this,function(c){switch(c.label){case 0:for(n=e.getContext("2d"),s=0,o=1/(2*Math.PI*(a=5)*a),l=r<3?1:2,u=-r;u<=r;u+=l)for(p=-r;p<=r;p+=l)i=o*Math.exp(-(p*p+u*u)/(2*a*a)),s+=i;u=-r,c.label=1;case 1:if(!(u<=r))return[3,6];p=-r,c.label=2;case 2:return p<=r?(n.globalAlpha=o*Math.exp(-(p*p+u*u)/(2*a*a))/s*r,[4,ez(n,t,p,u)]):[3,5];case 3:c.sent(),c.label=4;case 4:return p+=l,[3,2];case 5:return u+=l,[3,1];case 6:return n.globalAlpha=1,[2]}})})}(r,e,t)]:[3,2];case 1:return l.sent(),[3,4];case 2:return o.filter="blur("+t+"px)",[4,ez(o,e,0,0,a,s)];case 3:l.sent(),l.label=4;case 4:return o.restore(),[2]}})})}(e,t,n)];case 3:s.sent(),s.label=4;case 4:return[2,n]}})})}function eH(e,t,r,n,s,a){return void 0===t&&(t={r:0,g:0,b:0,a:0}),void 0===r&&(r={r:0,g:0,b:0,a:255}),void 0===n&&(n=!1),void 0===s&&(s=.5),void 0===a&&(a=Array.from(Array(256).keys())),d(this,void 0,void 0,function(){var o,l,i,u,p,c,d,h,m,g,x,v,y,_;return f(this,function(f){switch(f.label){case 0:return 0===(o=Array.isArray(e)?e:[e]).length?[2,null]:[4,Promise.all(o.map(function(e){return e.mask.toImageData()}))];case 1:for(c=new Uint8ClampedArray((u=(i=(l=f.sent())[0]).width)*(p=i.height)*4),d=Math.round(255*s),h=Array(256).fill(!1),a.forEach(function(e){return h[e]=!0}),m=0;m<p;m++)for(g=0;g<u;g++)for(c[4*(x=m*u+g)+0]=r.r,c[4*x+1]=r.g,c[4*x+2]=r.b,c[4*x+3]=r.a,v=0,y=l;v<y.length;v++)h[(_=y[v]).data[4*x]]&&_.data[4*x+3]>=d&&(c[4*x]=t.r,c[4*x+1]=t.g,c[4*x+2]=t.b,c[4*x+3]=t.a,n&&m-1>=0&&m+1<p&&g-1>=0&&g+1<u&&function(e,t,r,n,s,a,o){void 0===o&&(o=1);for(var l=0,i=-o;i<=o;i++)for(var u=-o;u<=o;u++)if(0!==i&&0!==u){var p=(t+i)*n+(r+u);(!s[e[4*p]]||e[4*p+3]<a)&&(l+=1)}return l>0}(_.data,m,g,u,h,d)&&function(e,t,r,n,s,a){void 0===a&&(a={r:0,g:255,b:255,a:255});for(var o=-1;o<=1;o++)for(var l=-1;l<=1;l++)if(0!==o&&0!==l){var i=(t+o)*n+(r+l);e[4*i+0]=a.r,e[4*i+1]=a.g,e[4*i+2]=a.b,e[4*i+3]=a.a}}(c,m,g,u,0));return[2,new ImageData(c,u,p)]}})})}function eK(e,t,r,n){return void 0===r&&(r={r:0,g:0,b:0,a:255}),void 0===n&&(n=.5),d(this,void 0,void 0,function(){var s,a,o,l,i,u,p,c,d,h,m,g,x;return f(this,function(f){switch(f.label){case 0:return 0===(s=Array.isArray(e)?e:[e]).length?[2,null]:[4,Promise.all(s.map(function(e){return e.mask.toImageData()}))];case 1:for(u=new Uint8ClampedArray((l=(o=(a=f.sent())[0]).width)*(i=o.height)*4),p=Math.round(255*n),c=0;c<i*l;++c)for(u[(d=4*c)+0]=r.r,u[d+1]=r.g,u[d+2]=r.b,u[d+3]=r.a,h=0,m=a;h<m.length;h++)(g=m[h]).data[d+3]>=p&&(x=t(g.data[d]),u[d+0]=x.r,u[d+1]=x.g,u[d+2]=x.b,u[d+3]=x.a);return[2,new ImageData(u,l,i)]}})})}function eJ(e,t,r,n,s,a){return void 0===n&&(n=.7),void 0===s&&(s=0),void 0===a&&(a=!1),d(this,void 0,void 0,function(){var o,l,i,u,p;return f(this,function(c){switch(c.label){case 0:return l=(o=eL(t))[0],e.width=i=o[1],e.height=l,(u=e.getContext("2d")).save(),a&&eU(e),[4,ez(u,t,0,0)];case 1:return c.sent(),u.globalAlpha=n,r?(eq({width:i,height:l},r,"image","mask"),[4,eW(eG(r,eO),s,eM)]):[3,3];case 2:p=c.sent(),u.drawImage(p,0,0,i,l),c.label=3;case 3:return u.restore(),[2]}})})}function eY(e,t,r,n,s,a,o){return void 0===n&&(n=.7),void 0===s&&(s=0),void 0===a&&(a=!1),void 0===o&&(o=10),d(this,void 0,void 0,function(){var l,i,u,p,c,d,h;return f(this,function(f){switch(f.label){case 0:return i=(l=eL(t))[0],eq({width:l[1],height:i},r,"image","mask"),[4,eW(eG(r,eO),s,eM)];case 1:for(e.width=(u=f.sent()).width,e.height=u.height,(p=e.getContext("2d")).save(),a&&eU(e),d=(c=eV("lowres-part-mask")).getContext("2d"),c.width=u.width*(1/o),c.height=u.height*(1/o),d.drawImage(u,0,0,u.width,u.height,0,0,c.width,c.height),p.imageSmoothingEnabled=!1,p.drawImage(c,0,0,c.width,c.height,0,0,e.width,e.height),h=0;h<c.width;h++)p.beginPath(),p.strokeStyle="#ffffff",p.moveTo(o*h,0),p.lineTo(o*h,e.height),p.stroke();for(h=0;h<c.height;h++)p.beginPath(),p.strokeStyle="#ffffff",p.moveTo(0,o*h),p.lineTo(e.width,o*h),p.stroke();return p.globalAlpha=1-n,[4,ez(p,t,0,0,u.width,u.height)];case 2:return f.sent(),p.restore(),[2]}})})}function eZ(e,t,r,n,s,a,o){return void 0===n&&(n=.5),void 0===s&&(s=3),void 0===a&&(a=3),void 0===o&&(o=!1),d(this,void 0,void 0,function(){var l,i,u,p,c,h;return f(this,function(m){switch(m.label){case 0:return[4,eW(t,s,e$)];case 1:return e.width=(l=m.sent()).width,e.height=l.height,i=e.getContext("2d"),Array.isArray(r)&&0===r.length?(i.drawImage(l,0,0),[2]):[4,function(e,t,r){return d(this,void 0,void 0,function(){var n;return f(this,function(s){switch(s.label){case 0:return[4,eH(e,{r:0,g:0,b:0,a:255},{r:0,g:0,b:0,a:0},!1,t)];case 1:return n=eG(s.sent(),eO),0===r?[2,n]:[2,eW(n,r,eM)]}})})}(r,n,a)];case 2:return u=m.sent(),i.save(),o&&eU(e),c=(p=eL(t))[0],h=p[1],[4,ez(i,t,0,0,h,c)];case 3:return m.sent(),[4,eX(i,u,"destination-in")];case 4:return m.sent(),[4,eX(i,l,"destination-over")];case 5:return m.sent(),i.restore(),[2]}})})}function eQ(e,t,r,n,s,a,o,l){return void 0===s&&(s=.5),void 0===a&&(a=3),void 0===o&&(o=3),void 0===l&&(l=!1),d(this,void 0,void 0,function(){var i,u,p,c,h,m;return f(this,function(g){switch(g.label){case 0:return[4,eW(t,a,e$)];case 1:return e.width=(i=g.sent()).width,e.height=i.height,u=e.getContext("2d"),Array.isArray(r)&&0===r.length?(u.drawImage(i,0,0),[2]):[4,function(e,t,r,n){return d(this,void 0,void 0,function(){var s;return f(this,function(a){switch(a.label){case 0:return[4,eH(e,{r:0,g:0,b:0,a:0},{r:0,g:0,b:0,a:255},!0,r,t)];case 1:return s=eG(a.sent(),eO),0===n?[2,s]:[2,eW(s,n,eM)]}})})}(r,n,s,o)];case 2:return p=g.sent(),u.save(),l&&eU(e),h=(c=eL(t))[0],m=c[1],[4,ez(u,t,0,0,m,h)];case 3:return g.sent(),[4,eX(u,p,"destination-in")];case 4:return g.sent(),[4,eX(u,i,"destination-over")];case 5:return g.sent(),u.restore(),[2]}})})}},{"@tensorflow/tfjs-core":"hADTC","@tensorflow/tfjs-converter":"7lxVT","@mediapipe/selfie_segmentation":"3OB47","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hADTC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),e("./base_side_effects");var a=e("./optimizers/register_optimizers"),o=e("./base");s.exportAll(o,r),(0,a.registerOptimizers)()},{"./base_side_effects":"jt2Zz","./optimizers/register_optimizers":"arz3F","./base":"dIklW","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jt2Zz:[function(e,t,r,n){var s=e("./engine");e("./flags"),e("./platforms/platform_browser"),e("./platforms/platform_node");var a=e("./ops/buffer"),o=e("./ops/cast"),l=e("./ops/clone"),i=e("./ops/print"),u=e("./tensor");(0,s.getOrMakeEngine)();let p={buffer:a.buffer,cast:o.cast,clone:l.clone,print:i.print};(0,u.setOpHandler)(p)},{"./engine":"gtimw","./flags":"5pgCq","./platforms/platform_browser":"llIdb","./platforms/platform_node":"iyAJV","./ops/buffer":"4NIGp","./ops/cast":"hLsoh","./ops/clone":"etnty","./ops/print":"lDGsR","./tensor":"8mprx"}],gtimw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Engine",()=>v),s.export(r,"getOrMakeEngine",()=>y),s.export(r,"ENGINE",()=>_),s.export(r,"add",()=>b);var a=e("./backends/backend"),o=e("./environment"),l=e("./global_util"),i=e("./kernel_names"),u=e("./kernel_registry"),p=e("./log"),c=e("./profiler"),d=e("./tape"),f=e("./tensor"),h=e("./tensor_util"),m=e("./util");function g(e){return null!=e.kernelName}class x{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()}}class v{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new x}async ready(){if(null!=this.pendingBackendInit)return this.pendingBackendInit.then(()=>{});if(null!=this.backendInstance)return;let e=this.getSortedBackends();for(let t=0;t<e.length;t++){let r=e[t];if(await this.initializeBackend(r).success)return void await this.setBackend(r)}throw Error("Could not initialize any backends, all backend initializations failed.")}get backend(){if(null!=this.pendingBackendInit)throw Error(`Backend '${this.backendName}' has not yet been initialized. Make sure to await tf.ready() or await tf.setBackend() before calling other methods`);if(null==this.backendInstance){let{name:e,asyncInit:t}=this.initializeBackendsAndReturnBest();if(t)throw Error(`The highest priority backend '${e}' has not yet been initialized. Make sure to await tf.ready() or await tf.setBackend() before calling other methods`);this.setBackend(e)}return this.backendInstance}backendNames(){return Object.keys(this.registryFactory)}findBackend(e){if(!(e in this.registry))if(!(e in this.registryFactory))return null;else{let{asyncInit:t}=this.initializeBackend(e);if(t)return null}return this.registry[e]}findBackendFactory(e){return e in this.registryFactory?this.registryFactory[e].factory:null}registerBackend(e,t,r=1){return e in this.registryFactory?(p.warn(`${e} backend was already registered. Reusing existing backend factory.`),!1):(this.registryFactory[e]={factory:t,priority:r},!0)}async setBackend(e){if(null==this.registryFactory[e])throw Error(`Backend name '${e}' not found in registry`);if(this.backendName=e,null==this.registry[e]){this.backendInstance=null;let{success:t,asyncInit:r}=this.initializeBackend(e);if(!(r?await t:t))return!1}return this.backendInstance=this.registry[e],this.setupRegisteredKernels(),this.profiler=new(0,c.Profiler)(this.backendInstance),!0}setupRegisteredKernels(){(0,u.getKernelsForBackend)(this.backendName).forEach(e=>{null!=e.setupFunc&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){(0,u.getKernelsForBackend)(e).forEach(t=>{null!=t.disposeFunc&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(null==t)throw Error(`Cannot initialize backend ${e}, no registration found.`);try{let r=t.factory();if(!r||r instanceof a.KernelBackend||"function"!=typeof r.then)return this.registry[e]=r,{success:!0,asyncInit:!1};{let t=++this.pendingBackendInitId,n=r.then(r=>!(t<this.pendingBackendInitId)&&(this.registry[e]=r,this.pendingBackendInit=null,!0)).catch(r=>!(t<this.pendingBackendInitId)&&(this.pendingBackendInit=null,p.warn(`Initialization of backend ${e} failed`),p.warn(r.stack||r.message),!1));return this.pendingBackendInit=n,{success:n,asyncInit:!0}}}catch(t){return p.warn(`Initialization of backend ${e} failed`),p.warn(t.stack||t.message),{success:!1,asyncInit:!1}}}removeBackend(e){if(!(e in this.registryFactory))throw Error(`${e} backend not found in registry`);this.backendName===e&&null!=this.pendingBackendInit&&this.pendingBackendInitId++,e in this.registry&&(this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e]),delete this.registryFactory[e],this.backendName===e&&(this.pendingBackendInit=null,this.backendName=null,this.backendInstance=null)}getSortedBackends(){if(0===Object.keys(this.registryFactory).length)throw Error("No backend found in registry.");return Object.keys(this.registryFactory).sort((e,t)=>this.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;t<e.length;t++){let r=e[t],{success:n,asyncInit:s}=this.initializeBackend(r);if(s||n)return{name:r,asyncInit:s}}throw Error("Could not initialize any backends, all backend initializations failed.")}moveData(e,t){let r=this.state.tensorInfo.get(t),n=r.backend,s=this.readSync(t),a=n.refCount(t);n.disposeData(t,!0),r.backend=e,e.move(t,s,r.shape,r.dtype,a),this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack[this.state.numDataMovesStack.length-1]++}tidy(e,t){let r,n=null;if(null==t){if("function"!=typeof e)throw Error("Please provide a function to tidy()");t=e}else{if("string"!=typeof e&&!(e instanceof String))throw Error("When calling with two arguments, the first argument to tidy() must be a string");if("function"!=typeof t)throw Error("When calling with two arguments, the 2nd argument to tidy() must be a function");n=e}return this.scopedRun(()=>this.startScope(n),()=>this.endScope(r),()=>((r=t())instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),r))}scopedRun(e,t,r){e();try{let e=r();return t(),e}catch(e){throw t(),e}}nextTensorId(){return v.nextTensorId++}nextVariableId(){return v.nextVariableId++}clone(e){let t=_.runKernel(i.Identity,{x:e});return this.addTapeNode(this.state.activeScope.name,{x:e},[t],e=>({x:()=>_.runKernel(i.Cast,{x:e},{dtype:"float32"})}),[],{}),t}runKernel(e,t,r){if(null==this.backendName&&this.backend,null==(0,u.getKernel)(e,this.backendName))throw Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:r})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,r){let n=this.backend.numDataIds(),s=0;r.forEach(e=>{s+="complex64"===e.dtype?3:1});let a=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],o=n-t-s-a;if(o>0)throw Error(`Backend '${this.backendName}' has an internal memory leak (${o} data ids) after running '${e}'`)}runKernelFunc(e){let t,r,n,s,a=[],o=this.isTapeOn(),l=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0),null==this.backendName&&this.backend;let p=g(e)?e.kernelName:null!=this.state.activeScope?this.state.activeScope.name:"";if(g(e)){let{kernelName:t,inputs:s,attrs:l}=e;null==this.backendName&&this.backend;let i=(0,u.getKernel)(t,this.backendName);m.assert(null!=i,()=>`Cannot find registered kernel '${t}' for backend '${this.backendName}'`),r=()=>{let e=this.backend.numDataIds(),r=Array.isArray(n=i.kernelFunc({inputs:s,attrs:l,backend:this.backend}))?n:[n];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(t,e,r);let u=r.map(e=>null!=e.rank?e:this.makeTensorFromTensorInfo(e));if(o){let e=this.getTensorsForGradient(t,s,u);a=this.saveTensorsForBackwardMode(e)}return u}}else{let{forwardFunc:t}=e,s=e=>{o&&(a=e.map(e=>this.keep(this.clone(e))))};r=()=>{let e=this.backend.numDataIds(),r=Array.isArray(n=this.tidy(()=>t(this.backend,s)))?n:[n];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(p,e,r),r}}let{inputs:c,attrs:d}=e,f=g(e)?null:e.backwardsFunc;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{this.ENV.getBool("DEBUG")||this.state.profiling?(s=this.profiler.profileKernel(p,c,()=>r()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(s),t=s.outputs):t=r()}),o&&this.addTapeNode(p,c,t,f,a,d),this.state.profiling&&this.state.activeProfile.kernels.push({name:p,bytesAdded:this.state.numBytes-l,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(e=>null!=c[e]?c[e].shape:null),outputShapes:t.map(e=>e.shape),kernelTimeMs:s.timeMs,extraInfo:s.extraInfo}),Array.isArray(n)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(e=>this.keep(this.clone(e)))}getTensorsForGradient(e,t,r){let n=(0,u.getGradient)(e);if(null!=n){let e,s=n.inputsToSave||[],a=n.outputsToSave||[];n.saveAllInputs?(m.assert(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),e=Object.keys(t).map(e=>t[e])):e=s.map(e=>t[e]);let o=r.filter((e,t)=>a[t]);return e.concat(o)}return[]}makeTensor(e,t,r,n){if(null==e)throw Error("Values passed to engine.makeTensor() are null");r=r||"float32",n=n||this.backend;let s=e;"string"===r&&m.isString(e[0])&&(s=e.map(e=>m.encodeString(e)));let a=n.write(s,t,r),o=new(0,f.Tensor)(t,r,a,this.nextTensorId());if(this.trackTensor(o,n),"string"===r){let e=this.state.tensorInfo.get(a),t=(0,m.bytesFromStringArray)(s);this.state.numBytes+=t-e.bytes,e.bytes=t}return o}makeTensorFromDataId(e,t,r,n){let s={dataId:e,shape:t,dtype:r=r||"float32"};return this.makeTensorFromTensorInfo(s,n)}makeTensorFromTensorInfo(e,t){let{dataId:r,shape:n,dtype:s}=e,a=new(0,f.Tensor)(n,s,r,this.nextTensorId());return this.trackTensor(a,t),a}makeVariable(e,t=!0,r,n){r=r||this.nextVariableId().toString(),null!=n&&n!==e.dtype&&(e=e.cast(n));let s=new(0,f.Variable)(e,t,r,this.nextTensorId());if(null!=this.state.registeredVariables[s.name])throw Error(`Variable with name ${s.name} was already registered`);return this.state.registeredVariables[s.name]=s,this.incRef(s,this.backend),s}trackTensor(e,t){this.state.numTensors++,"string"===e.dtype&&this.state.numStringTensors++;let r=0;"complex64"!==e.dtype&&"string"!==e.dtype&&(r=e.size*m.bytesPerElement(e.dtype)),this.state.numBytes+=r,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:r})),e instanceof f.Variable||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--,"string"===e.dtype&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),"complex64"!==e.dtype&&"string"!==e.dtype){let t=e.size*m.bytesPerElement(e.dtype);this.state.numBytes-=t}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),null!=this.state.registeredVariables[e.name]&&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,null==e.reasons&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,r=this.state.numTensors;for(let n of(this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(e=>e.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-r,this.state.activeProfile.kernels))n.kernelTimeMs=await n.kernelTimeMs,n.extraInfo=await n.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&0===this.state.kernelDepth}addTapeNode(e,t,r,n,s,a){let o={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:r,saved:s},l=(0,u.getGradient)(e);null!=l&&(n=l.gradFunc),null!=n&&(o.gradient=e=>(e=e.map((e,t)=>{if(null==e){let e=r[t],n=m.makeZerosTypedArray(e.size,e.dtype);return this.makeTensor(n,e.shape,e.dtype)}return e}),n(e.length>1?e:e[0],s,a))),this.state.activeTape.push(o)}keep(e){return e.kept=!0,e}startTape(){0===this.state.gradientDepth&&(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=(0,h.getTensorsInContainer)(e),r=new Set(t.map(e=>e.id));for(let e=0;e<this.state.activeScope.track.length;e++){let t=this.state.activeScope.track[e];t.kept||r.has(t.id)||t.dispose()}let n=this.state.scopeStack.pop();this.state.activeScope=0===this.state.scopeStack.length?null:this.state.scopeStack[this.state.scopeStack.length-1],t.forEach(e=>{e.kept||e.scopeId!==n.id||this.track(e)})}gradients(e,t,r,n=!1){if(m.assert(t.length>0,()=>"gradients() received an empty list of xs."),null!=r&&"float32"!==r.dtype)throw Error(`dy must have 'float32' dtype, but has '${r.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));m.assert(s instanceof f.Tensor,()=>"The result y returned by f() must be a tensor.");let a=(0,d.getFilteredNodesXToY)(this.state.activeTape,t,s);if(!n&&0===a.length&&t.length>0)throw 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",()=>{var e;let n,o={};o[s.id]=null==r?(e=s.shape,n=(0,m.makeOnesTypedArray)((0,m.sizeFromShape)(e),"float32"),_.makeTensor(n,e,"float32")):r,(0,d.backpropagateGradients)(o,a,e=>this.tidy(e),b);let l=t.map(e=>o[e.id]);return 0===this.state.gradientDepth&&(this.state.activeTape.forEach(e=>{for(let t of e.saved)t.dispose()}),this.state.activeTape=null),{value:s,grads:l}})}customGrad(e){return m.assert(m.isFunction(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{let r;m.assert(t.every(e=>e instanceof f.Tensor),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n={};return t.forEach((e,t)=>{n[t]=e}),this.runKernelFunc({forwardFunc:(n,s)=>(r=e(...t,s),m.assert(r.value instanceof f.Tensor,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),m.assert(m.isFunction(r.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),r.value),backwardsFunc:(e,n)=>{let s=r.gradFunc(e,n),a=Array.isArray(s)?s:[s];m.assert(a.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(...)."),m.assert(a.every(e=>e instanceof f.Tensor),()=>"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 o={};return a.forEach((e,t)=>{o[t]=()=>e}),o},inputs:n})}}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=(0,m.now)(),r=await this.backend.time(e);return r.wallMs=(0,m.now)()-t,r}track(e){return null!=this.state.activeScope&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){for(let e in this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new x,this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}function y(){let e=(0,l.getGlobalNamespace)();if(null==e._tfengine){let t=new(0,o.Environment)(e);e._tfengine=new v(t)}return(0,o.setEnvironmentGlobal)(e._tfengine.ENV),(0,f.setTensorTracker)(()=>e._tfengine),e._tfengine}v.nextTensorId=0,v.nextVariableId=0;let _=y();function b(e,t){return _.runKernel(i.Add,{a:e,b:t})}},{"./backends/backend":"3aHqT","./environment":"5SiqL","./global_util":"1SThP","./kernel_names":"agfs7","./kernel_registry":"a4k06","./log":"iR40T","./profiler":"eBXFz","./tape":"4Qhbp","./tensor":"8mprx","./tensor_util":"j3qzf","./util":"lLzfH","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3aHqT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EPSILON_FLOAT32",()=>a),s.export(r,"EPSILON_FLOAT16",()=>o),s.export(r,"DataStorage",()=>l),s.export(r,"KernelBackend",()=>i);let a=1e-7,o=1e-4;class l{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}}class i{refCount(e){return u("refCount")}incRef(e){return u("incRef")}timerAvailable(){return!0}time(e){return u("time")}read(e){return u("read")}readSync(e){return u("readSync")}readToGPU(e,t){return u("readToGPU")}numDataIds(){return u("numDataIds")}disposeData(e,t){return u("disposeData")}write(e,t,r){return u("write")}move(e,t,r,n,s){return u("move")}createTensorFromGPUData(e,t,r){return u("createTensorFromGPUData")}memory(){return u("memory")}floatPrecision(){return u("floatPrecision")}epsilon(){return 32===this.floatPrecision()?a:o}dispose(){return u("dispose")}}function u(e){throw Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],loqXi:[function(e,t,r,n){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}],"5SiqL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Environment",()=>l),s.export(r,"getQueryParams",()=>i),s.export(r,"env",()=>u),s.export(r,"ENV",()=>p),s.export(r,"setEnvironmentGlobal",()=>c);var a=e("./util_base");let o="tfjsflags";class l{constructor(e){this.global=e,this.flags={},this.flagRegistry={},this.urlFlags={},this.getQueryParams=i,this.populateURLFlags()}setPlatform(e,t){null==this.platform||p.getBool("IS_TEST")||p.getBool("PROD")||console.warn(`Platform ${this.platformName} has already been set. Overwriting the platform with ${e}.`),this.platformName=e,this.platform=t}registerFlag(e,t,r){if(this.flagRegistry[e]={evaluationFn:t,setHook:r},null!=this.urlFlags[e]){let t=this.urlFlags[e];p.getBool("IS_TEST")||p.getBool("PROD")||console.warn(`Setting feature override from URL ${e}: ${t}.`),this.set(e,t)}}async getAsync(e){return e in this.flags||(this.flags[e]=await this.evaluateFlag(e)),this.flags[e]}get(e){if(e in this.flags)return this.flags[e];let t=this.evaluateFlag(e);if((0,a.isPromise)(t))throw Error(`Flag ${e} cannot be synchronously evaluated. Please use getAsync() instead.`);return this.flags[e]=t,this.flags[e]}getNumber(e){return this.get(e)}getBool(e){return this.get(e)}getString(e){return this.get(e)}getFlags(){return this.flags}get features(){return this.flags}set(e,t){if(null==this.flagRegistry[e])throw Error(`Cannot set flag ${e} as it has not been registered.`);this.flags[e]=t,null!=this.flagRegistry[e].setHook&&this.flagRegistry[e].setHook(t)}evaluateFlag(e){if(null==this.flagRegistry[e])throw Error(`Cannot evaluate flag '${e}': no evaluation function found.`);return this.flagRegistry[e].evaluationFn()}setFlags(e){this.flags=Object.assign({},e)}reset(){this.flags={},this.urlFlags={},this.populateURLFlags()}populateURLFlags(){if(void 0===this.global||void 0===this.global.location||void 0===this.global.location.search)return;let e=this.getQueryParams(this.global.location.search);o in e&&e[o].split(",").forEach(e=>{var t;let r,[n,s]=e.split(":");this.urlFlags[n]="true"===(r=(t=s).toLowerCase())||"false"===r?"true"===r:`${+r}`===r?+r:t})}}function i(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...r)=>{var n,s,a;return n=t,s=r[0],a=r[1],n[decodeURIComponent(s)]=decodeURIComponent(a||""),r.join("=")}),t}function u(){return p}let p=null;function c(e){p=e}},{"./util_base":"2IDj3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2IDj3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let t=e.length,r=0;for(;t>0;)r=Math.random()*t|0,u(e,--t,r)}function o(e,t){if(e.length!==t.length)throw Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let r=e.length,n=0;for(;r>0;)n=Math.random()*r|0,u(e,--r,n),u(t,r,n)}function l(e,t,r){return Math.max(e,Math.min(t,r))}function i(e){return e%2==0?e:e+1}function u(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}function p(e){let t=0;for(let r=0;r<e.length;r++)t+=e[r];return t}function c(e,t){let r=Math.random();return t*r+(1-r)*e}function d(e,t){let r=0;for(let n=0;n<e.length;n++){let s=Number(e[n])-Number(t[n]);r+=s*s}return r}function f(e,t){if(!e)throw Error("string"==typeof t?t:t())}function h(e,t,r=""){f(y(e,t),()=>r+` Shapes ${e} and ${t} must match`)}function m(e){f(null!=e,()=>"The input to the tensor constructor must be a non-null value.")}function g(e){if(0===e.length)return 1;let t=e[0];for(let r=1;r<e.length;r++)t*=e[r];return t}function x(e){return 0===e.length}function v(e,t){if(e===t)return!0;if(null==e||null==t||e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(null!==e[r]&&null!==t[r]&&e[r]!==t[r])return!1;return!0}function y(e,t){if(e===t)return!0;if(null==e||null==t||e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function _(e){return e%1==0}function b(e){if(null!=Math.tanh)return Math.tanh(e);if(e===1/0)return 1;{if(e===-1/0)return -1;let t=Math.exp(2*e);return(t-1)/(t+1)}}function k(e){let t=Math.ceil(Math.sqrt(e));return[t,Math.ceil(e/t)]}function T(e){let t=new Uint32Array(e);for(let r=0;r<e;++r)t[r]=r;return a(t),t}function w(e,t){return t<=e.length?e:e+" ".repeat(t-e.length)}function I(e,t=e=>0,r,n){return new Promise((s,a)=>{let o=0,l=()=>{if(e())return void s();let i=t(++o);null!=r&&o>=r?a():null!=n?n(l,i):setTimeout(l,i)};l()})}function j(e,t){let r=1,n=-1;for(let t=0;t<e.length;++t)if(e[t]>=0)r*=e[t];else if(-1===e[t]){if(-1!==n)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${t}`);n=t}else if(e[t]<0)throw Error(`Shapes can not be < 0. Found ${e[t]} at dim ${t}`);if(-1===n){if(t>0&&t!==r)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(0===r)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%r!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${r}`);let s=e.slice();return s[n]=t/r,s}function C(e,t){let r=t.length;return f((e=null==e?t.map((e,t)=>t):[].concat(e)).every(e=>e>=-r&&e<r),()=>`All values in axis param must be in range [-${r}, ${r}) but got axis ${e}`),f(e.every(e=>_(e)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(e=>e<0?r+e:e)}function N(e,t){let r=[],n=[],s=null!=t&&Array.isArray(t)&&0===t.length,a=null==t||s?null:C(t,e).sort(),o=0;for(let t=0;t<e.length;++t){if(null!=a){if(a[o]===t&&1!==e[t])throw Error(`Can't squeeze axis ${t} since its dim '${e[t]}' is not 1`);(null==a[o]||a[o]>t)&&1===e[t]&&(r.push(e[t]),n.push(t)),a[o]<=t&&o++}1!==e[t]&&(r.push(e[t]),n.push(t))}return{newShape:r,keptDims:n}}function S(e,t){return E(e,t)}function E(e,t){let r=null;if(null==e||"float32"===e)r=new Float32Array(t);else if("int32"===e)r=new Int32Array(t);else if("bool"===e)r=new Uint8Array(t);else if("string"===e)r=Array(t);else throw Error(`Unknown data type ${e}`);return r}function A(e,t){for(let r=0;r<e.length;r++){let n=e[r];if(isNaN(n)||!isFinite(n))throw Error(`A tensor of type ${t} being uploaded contains ${n}.`)}}function F(e){return"bool"===e||"complex64"===e||"float32"===e||"int32"===e||"string"===e}function R(e,t){return"complex64"!==t&&("float32"!==t||"complex64"===e)&&("int32"!==t||"float32"===e||"complex64"===e)&&("bool"!==t||"bool"!==e)}function D(e){if("float32"===e||"int32"===e)return 4;if("complex64"===e)return 8;if("bool"===e)return 1;throw Error(`Unknown dtype ${e}`)}function P(e){if(null==e)return 0;let t=0;return e.forEach(e=>t+=e.length),t}function $(e){return"string"==typeof e||e instanceof String}function M(e){return"boolean"==typeof e}function O(e){return"number"==typeof e}function B(e){return!!(e&&e.constructor&&e.call&&e.apply)}function q(e,t){for(let r=t;r<e;++r)if(e%r==0)return r;return e}function L(e){let t=e.length;if(t<2)return[];let r=Array(t-1);r[t-2]=e[t-1];for(let n=t-3;n>=0;--n)r[n]=r[n+1]*e[n+1];return r}function V(e,t,r=!1){if(0===e.length)return t[0];let n=e.reduce((e,t)=>e*t)*(r?2:1);if(0===n)return[];if(n!==t.length)throw Error(`[${e}] does not match the input size ${t.length}${r?" for a complex tensor":""}.`);return function e(t,r,n,s=!1){let a=[];if(1===r.length){let e=r[0]*(s?2:1);for(let r=0;r<e;r++)a[r]=n[t+r]}else{let o=r[0],l=r.slice(1),i=l.reduce((e,t)=>e*t)*(s?2:1);for(let r=0;r<o;r++)a[r]=e(t+r*i,l,n,s)}return a}(0,e,t,r)}function G(e,t){if(Array.isArray(e))return e;if("float32"===t)return e instanceof Float32Array?e:new Float32Array(e);if("int32"===t)return e instanceof Int32Array?e:new Int32Array(e);if("bool"===t||"string"===t)return Uint8Array.from(new Int32Array(e));throw Error(`Unknown dtype ${t}`)}function z(e,t){let r=U(e,t);for(let e=0;e<r.length;e++)r[e]=1;return r}function U(e,t){if(null==t||"float32"===t||"complex64"===t)return new Float32Array(e);if("int32"===t)return new Int32Array(e);if("bool"===t)return new Uint8Array(e);throw Error(`Unknown data type ${t}`)}function X(e,t){let r=e.reduce((e,t)=>e*t,1);if(null==t||"float32"===t)return V(e,new Float32Array(r));if("int32"===t)return V(e,new Int32Array(r));if("bool"===t)return V(e,new Uint8Array(r));throw Error(`Unknown data type ${t}`)}function W(e){e.forEach(t=>{f(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function H(e,t,r){if(0===t)return 0;if(1===t)return e[0];let n=e[e.length-1];for(let t=0;t<e.length-1;++t)n+=r[t]*e[t];return n}function K(e,t,r){if(0===t)return[];if(1===t)return[e];let n=Array(t);for(let t=0;t<n.length-1;++t)n[t]=Math.floor(e/r[t]),e-=n[t]*r[t];return n[n.length-1]=e,n}function J(e){return e&&e.then&&"function"==typeof e.then}s.defineInteropFlag(r),s.export(r,"shuffle",()=>a),s.export(r,"shuffleCombo",()=>o),s.export(r,"clamp",()=>l),s.export(r,"nearestLargerEven",()=>i),s.export(r,"swap",()=>u),s.export(r,"sum",()=>p),s.export(r,"randUniform",()=>c),s.export(r,"distSquared",()=>d),s.export(r,"assert",()=>f),s.export(r,"assertShapesMatch",()=>h),s.export(r,"assertNonNull",()=>m),s.export(r,"sizeFromShape",()=>g),s.export(r,"isScalarShape",()=>x),s.export(r,"arraysEqualWithNull",()=>v),s.export(r,"arraysEqual",()=>y),s.export(r,"isInt",()=>_),s.export(r,"tanh",()=>b),s.export(r,"sizeToSquarishShape",()=>k),s.export(r,"createShuffledIndices",()=>T),s.export(r,"rightPad",()=>w),s.export(r,"repeatedTry",()=>I),s.export(r,"inferFromImplicitShape",()=>j),s.export(r,"parseAxisParam",()=>C),s.export(r,"squeezeShape",()=>N),s.export(r,"getTypedArrayFromDType",()=>S),s.export(r,"getArrayFromDType",()=>E),s.export(r,"checkConversionForErrors",()=>A),s.export(r,"isValidDtype",()=>F),s.export(r,"hasEncodingLoss",()=>R),s.export(r,"bytesPerElement",()=>D),s.export(r,"bytesFromStringArray",()=>P),s.export(r,"isString",()=>$),s.export(r,"isBoolean",()=>M),s.export(r,"isNumber",()=>O),s.export(r,"inferDtype",()=>function e(t){if(Array.isArray(t))return e(t[0]);if(t instanceof Float32Array);else if(t instanceof Int32Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray)return"int32";else if(O(t));else if($(t))return"string";else if(M(t))return"bool";return"float32"}),s.export(r,"isFunction",()=>B),s.export(r,"nearestDivisor",()=>q),s.export(r,"computeStrides",()=>L),s.export(r,"toNestedArray",()=>V),s.export(r,"convertBackendValuesAndArrayBuffer",()=>G),s.export(r,"makeOnesTypedArray",()=>z),s.export(r,"makeZerosTypedArray",()=>U),s.export(r,"makeZerosNestedTypedArray",()=>X),s.export(r,"assertNonNegativeIntegerDimensions",()=>W),s.export(r,"locToIndex",()=>H),s.export(r,"indexToLoc",()=>K),s.export(r,"isPromise",()=>J)},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1SThP":[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(){if(null==s){let e;if("undefined"!=typeof window)e=window;else if("undefined"!=typeof global)e=global;else if("undefined"!=typeof process)e=process;else if("undefined"!=typeof self)e=self;else throw Error("Could not find a global object");s=e}return s}function l(e,t){let r,n=(null==(r=o())._tfGlobals&&(r._tfGlobals=new Map),r._tfGlobals);if(n.has(e))return n.get(e);{let r=t();return n.set(e,r),n.get(e)}}a.defineInteropFlag(r),a.export(r,"getGlobalNamespace",()=>o),a.export(r,"getGlobal",()=>l)},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],agfs7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Abs",()=>a),s.export(r,"Acos",()=>o),s.export(r,"Acosh",()=>l),s.export(r,"Add",()=>i),s.export(r,"AddN",()=>u),s.export(r,"All",()=>p),s.export(r,"Any",()=>c),s.export(r,"ArgMax",()=>d),s.export(r,"ArgMin",()=>f),s.export(r,"Asin",()=>h),s.export(r,"Asinh",()=>m),s.export(r,"Atan",()=>g),s.export(r,"Atanh",()=>x),s.export(r,"Atan2",()=>v),s.export(r,"AvgPool",()=>y),s.export(r,"AvgPoolGrad",()=>_),s.export(r,"AvgPool3D",()=>b),s.export(r,"AvgPool3DGrad",()=>k),s.export(r,"BatchMatMul",()=>T),s.export(r,"BatchToSpaceND",()=>w),s.export(r,"Bincount",()=>I),s.export(r,"BitwiseAnd",()=>j),s.export(r,"BroadcastTo",()=>C),s.export(r,"BroadcastArgs",()=>N),s.export(r,"Cast",()=>S),s.export(r,"Ceil",()=>E),s.export(r,"ClipByValue",()=>A),s.export(r,"Complex",()=>F),s.export(r,"ComplexAbs",()=>R),s.export(r,"Concat",()=>D),s.export(r,"Conv2D",()=>P),s.export(r,"Conv2DBackpropFilter",()=>$),s.export(r,"Conv2DBackpropInput",()=>M),s.export(r,"Conv3D",()=>O),s.export(r,"Conv3DBackpropFilterV2",()=>B),s.export(r,"Conv3DBackpropInputV2",()=>q),s.export(r,"Cos",()=>L),s.export(r,"Cosh",()=>V),s.export(r,"Cumprod",()=>G),s.export(r,"Cumsum",()=>z),s.export(r,"CropAndResize",()=>U),s.export(r,"DenseBincount",()=>X),s.export(r,"DepthToSpace",()=>W),s.export(r,"DepthwiseConv2dNative",()=>H),s.export(r,"DepthwiseConv2dNativeBackpropFilter",()=>K),s.export(r,"DepthwiseConv2dNativeBackpropInput",()=>J),s.export(r,"Diag",()=>Y),s.export(r,"Dilation2D",()=>Z),s.export(r,"Dilation2DBackpropInput",()=>Q),s.export(r,"Dilation2DBackpropFilter",()=>ee),s.export(r,"Draw",()=>et),s.export(r,"RealDiv",()=>er),s.export(r,"Einsum",()=>en),s.export(r,"Elu",()=>es),s.export(r,"EluGrad",()=>ea),s.export(r,"Erf",()=>eo),s.export(r,"Equal",()=>el),s.export(r,"Exp",()=>ei),s.export(r,"ExpandDims",()=>eu),s.export(r,"Expm1",()=>ep),s.export(r,"FFT",()=>ec),s.export(r,"Fill",()=>ed),s.export(r,"FlipLeftRight",()=>ef),s.export(r,"Floor",()=>eh),s.export(r,"FloorDiv",()=>em),s.export(r,"FusedBatchNorm",()=>eg),s.export(r,"GatherV2",()=>ex),s.export(r,"GatherNd",()=>ev),s.export(r,"Greater",()=>ey),s.export(r,"GreaterEqual",()=>e_),s.export(r,"Identity",()=>eb),s.export(r,"IFFT",()=>ek),s.export(r,"Imag",()=>eT),s.export(r,"IsFinite",()=>ew),s.export(r,"IsInf",()=>eI),s.export(r,"IsNan",()=>ej),s.export(r,"LeakyRelu",()=>eC),s.export(r,"Less",()=>eN),s.export(r,"LessEqual",()=>eS),s.export(r,"LinSpace",()=>eE),s.export(r,"Log",()=>eA),s.export(r,"Log1p",()=>eF),s.export(r,"LogicalAnd",()=>eR),s.export(r,"LogicalNot",()=>eD),s.export(r,"LogicalOr",()=>eP),s.export(r,"LogicalXor",()=>e$),s.export(r,"LogSoftmax",()=>eM),s.export(r,"LowerBound",()=>eO),s.export(r,"LRN",()=>eB),s.export(r,"LRNGrad",()=>eq),s.export(r,"MatrixBandPart",()=>eL),s.export(r,"Max",()=>eV),s.export(r,"Maximum",()=>eG),s.export(r,"MaxPool",()=>ez),s.export(r,"MaxPoolGrad",()=>eU),s.export(r,"MaxPool3D",()=>eX),s.export(r,"MaxPool3DGrad",()=>eW),s.export(r,"MaxPoolWithArgmax",()=>eH),s.export(r,"Mean",()=>eK),s.export(r,"Min",()=>eJ),s.export(r,"Minimum",()=>eY),s.export(r,"MirrorPad",()=>eZ),s.export(r,"Mod",()=>eQ),s.export(r,"Multinomial",()=>e0),s.export(r,"Multiply",()=>e1),s.export(r,"Neg",()=>e2),s.export(r,"NotEqual",()=>e3),s.export(r,"NonMaxSuppressionV3",()=>e4),s.export(r,"NonMaxSuppressionV4",()=>e6),s.export(r,"NonMaxSuppressionV5",()=>e5),s.export(r,"OnesLike",()=>e7),s.export(r,"OneHot",()=>e8),s.export(r,"Pack",()=>e9),s.export(r,"PadV2",()=>te),s.export(r,"Pool",()=>tt),s.export(r,"Pow",()=>tr),s.export(r,"Prelu",()=>tn),s.export(r,"Prod",()=>ts),s.export(r,"RaggedGather",()=>ta),s.export(r,"RaggedRange",()=>to),s.export(r,"RaggedTensorToTensor",()=>tl),s.export(r,"Range",()=>ti),s.export(r,"Real",()=>tu),s.export(r,"Reciprocal",()=>tp),s.export(r,"Relu",()=>tc),s.export(r,"Reshape",()=>td),s.export(r,"ResizeNearestNeighbor",()=>tf),s.export(r,"ResizeNearestNeighborGrad",()=>th),s.export(r,"ResizeBilinear",()=>tm),s.export(r,"ResizeBilinearGrad",()=>tg),s.export(r,"Relu6",()=>tx),s.export(r,"Reverse",()=>tv),s.export(r,"Round",()=>ty),s.export(r,"Rsqrt",()=>t_),s.export(r,"ScatterNd",()=>tb),s.export(r,"TensorScatterUpdate",()=>tk),s.export(r,"SearchSorted",()=>tT),s.export(r,"Select",()=>tw),s.export(r,"Selu",()=>tI),s.export(r,"Slice",()=>tj),s.export(r,"Sin",()=>tC),s.export(r,"Sinh",()=>tN),s.export(r,"Sign",()=>tS),s.export(r,"Sigmoid",()=>tE),s.export(r,"Softplus",()=>tA),s.export(r,"Sqrt",()=>tF),s.export(r,"Sum",()=>tR),s.export(r,"SpaceToBatchND",()=>tD),s.export(r,"SplitV",()=>tP),s.export(r,"Softmax",()=>t$),s.export(r,"SparseFillEmptyRows",()=>tM),s.export(r,"SparseReshape",()=>tO),s.export(r,"SparseSegmentMean",()=>tB),s.export(r,"SparseSegmentSum",()=>tq),s.export(r,"SparseToDense",()=>tL),s.export(r,"SquaredDifference",()=>tV),s.export(r,"Square",()=>tG),s.export(r,"StaticRegexReplace",()=>tz),s.export(r,"StridedSlice",()=>tU),s.export(r,"StringNGrams",()=>tX),s.export(r,"StringSplit",()=>tW),s.export(r,"StringToHashBucketFast",()=>tH),s.export(r,"Sub",()=>tK),s.export(r,"Tan",()=>tJ),s.export(r,"Tanh",()=>tY),s.export(r,"Tile",()=>tZ),s.export(r,"TopK",()=>tQ),s.export(r,"Transform",()=>t0),s.export(r,"Transpose",()=>t1),s.export(r,"Unique",()=>t2),s.export(r,"Unpack",()=>t3),s.export(r,"UnsortedSegmentSum",()=>t4),s.export(r,"UpperBound",()=>t6),s.export(r,"ZerosLike",()=>t5),s.export(r,"Step",()=>t7),s.export(r,"FromPixels",()=>t8),s.export(r,"RotateWithOffset",()=>t9),s.export(r,"_FusedMatMul",()=>re),s.export(r,"FusedConv2D",()=>rt),s.export(r,"FusedDepthwiseConv2D",()=>rr);let a="Abs",o="Acos",l="Acosh",i="Add",u="AddN",p="All",c="Any",d="ArgMax",f="ArgMin",h="Asin",m="Asinh",g="Atan",x="Atanh",v="Atan2",y="AvgPool",_="AvgPoolGrad",b="AvgPool3D",k="AvgPool3DGrad",T="BatchMatMul",w="BatchToSpaceND",I="Bincount",j="BitwiseAnd",C="BroadcastTo",N="BroadcastArgs",S="Cast",E="Ceil",A="ClipByValue",F="Complex",R="ComplexAbs",D="Concat",P="Conv2D",$="Conv2DBackpropFilter",M="Conv2DBackpropInput",O="Conv3D",B="Conv3DBackpropFilterV2",q="Conv3DBackpropInputV2",L="Cos",V="Cosh",G="Cumprod",z="Cumsum",U="CropAndResize",X="DenseBincount",W="DepthToSpace",H="DepthwiseConv2dNative",K="DepthwiseConv2dNativeBackpropFilter",J="DepthwiseConv2dNativeBackpropInput",Y="Diag",Z="Dilation2D",Q="Dilation2DBackpropInput",ee="Dilation2DBackpropFilter",et="Draw",er="RealDiv",en="Einsum",es="Elu",ea="EluGrad",eo="Erf",el="Equal",ei="Exp",eu="ExpandDims",ep="Expm1",ec="FFT",ed="Fill",ef="FlipLeftRight",eh="Floor",em="FloorDiv",eg="FusedBatchNorm",ex="GatherV2",ev="GatherNd",ey="Greater",e_="GreaterEqual",eb="Identity",ek="IFFT",eT="Imag",ew="IsFinite",eI="IsInf",ej="IsNan",eC="LeakyRelu",eN="Less",eS="LessEqual",eE="LinSpace",eA="Log",eF="Log1p",eR="LogicalAnd",eD="LogicalNot",eP="LogicalOr",e$="LogicalXor",eM="LogSoftmax",eO="LowerBound",eB="LRN",eq="LRNGrad",eL="MatrixBandPart",eV="Max",eG="Maximum",ez="MaxPool",eU="MaxPoolGrad",eX="MaxPool3D",eW="MaxPool3DGrad",eH="MaxPoolWithArgmax",eK="Mean",eJ="Min",eY="Minimum",eZ="MirrorPad",eQ="Mod",e0="Multinomial",e1="Multiply",e2="Neg",e3="NotEqual",e4="NonMaxSuppressionV3",e6="NonMaxSuppressionV4",e5="NonMaxSuppressionV5",e7="OnesLike",e8="OneHot",e9="Pack",te="PadV2",tt="Pool",tr="Pow",tn="Prelu",ts="Prod",ta="RaggedGather",to="RaggedRange",tl="RaggedTensorToTensor",ti="Range",tu="Real",tp="Reciprocal",tc="Relu",td="Reshape",tf="ResizeNearestNeighbor",th="ResizeNearestNeighborGrad",tm="ResizeBilinear",tg="ResizeBilinearGrad",tx="Relu6",tv="Reverse",ty="Round",t_="Rsqrt",tb="ScatterNd",tk="TensorScatterUpdate",tT="SearchSorted",tw="Select",tI="Selu",tj="Slice",tC="Sin",tN="Sinh",tS="Sign",tE="Sigmoid",tA="Softplus",tF="Sqrt",tR="Sum",tD="SpaceToBatchND",tP="SplitV",t$="Softmax",tM="SparseFillEmptyRows",tO="SparseReshape",tB="SparseSegmentMean",tq="SparseSegmentSum",tL="SparseToDense",tV="SquaredDifference",tG="Square",tz="StaticRegexReplace",tU="StridedSlice",tX="StringNGrams",tW="StringSplit",tH="StringToHashBucketFast",tK="Sub",tJ="Tan",tY="Tanh",tZ="Tile",tQ="TopK",t0="Transform",t1="Transpose",t2="Unique",t3="Unpack",t4="UnsortedSegmentSum",t6="UpperBound",t5="ZerosLike",t7="Step",t8="FromPixels",t9="RotateWithOffset",re="_FusedMatMul",rt="FusedConv2D",rr="FusedDepthwiseConv2D"},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],a4k06:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getKernel",()=>p),s.export(r,"getGradient",()=>c),s.export(r,"getKernelsForBackend",()=>d),s.export(r,"registerKernel",()=>f),s.export(r,"registerGradient",()=>h),s.export(r,"unregisterKernel",()=>m),s.export(r,"unregisterGradient",()=>g),s.export(r,"copyRegisteredKernels",()=>x);var a=e("./environment"),o=e("./global_util"),l=e("./log");let i=(0,o.getGlobal)("kernelRegistry",()=>new Map),u=(0,o.getGlobal)("gradRegistry",()=>new Map);function p(e,t){let r=v(e,t);return i.get(r)}function c(e){return u.get(e)}function d(e){let t=i.entries(),r=[];for(;;){let{done:n,value:s}=t.next();if(n)break;let[a,o]=s,[l]=a.split("_");l===e&&r.push(o)}return r}function f(e){let{kernelName:t,backendName:r}=e,n=v(t,r);i.has(n)&&l.warn(`The kernel '${t}' for backend '${r}' is already registered`),i.set(n,e)}function h(e){let{kernelName:t}=e;u.has(t)&&(0,a.env)().getBool("DEBUG")&&l.warn(`Overriding the gradient for '${t}'`),u.set(t,e)}function m(e,t){let r=v(e,t);if(!i.has(r))throw Error(`The kernel '${e}' for backend '${t}' is not registered`);i.delete(r)}function g(e){if(!u.has(e))throw Error(`The gradient '${e}' for backend is not registered`);u.delete(e)}function x(e,t){d(e).forEach(e=>{f(Object.assign({},e,{backendName:t}))})}function v(e,t){return`${t}_${e}`}},{"./environment":"5SiqL","./global_util":"1SThP","./log":"iR40T","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iR40T:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"warn",()=>o),s.export(r,"log",()=>l);var a=e("./environment");function o(...e){(0,a.env)().getBool("IS_TEST")||(0,a.env)().getBool("PROD")||console.warn(...e)}function l(...e){(0,a.env)().getBool("IS_TEST")||(0,a.env)().getBool("PROD")||console.log(...e)}},{"./environment":"5SiqL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eBXFz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Profiler",()=>l),s.export(r,"checkComputationForErrors",()=>i),s.export(r,"Logger",()=>u);var a=e("./environment"),o=e("./util");class l{constructor(e,t){this.backendTimer=e,this.logger=t,null==t&&(this.logger=new u)}profileKernel(e,t,r){let n,s,l=()=>{n=r()},u=o.now();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(l);else{for(let e of(l(),n))e.dataSync();s=Promise.resolve({kernelMs:o.now()-u})}if((0,a.env)().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let t=0;t<n.length;t++){let r=n[t];r.data().then(t=>{i(t,r.dtype,e)})}return{kernelName:e,outputs:n,inputs:t,timeMs:s.then(e=>e.kernelMs),extraInfo:s.then(e=>null!=e.getExtraProfileInfo?e.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:r,timeMs:n,inputs:s,extraInfo:a}=e;r.forEach(e=>{Promise.all([e.data(),n,a]).then(r=>{this.logger.logKernelProfile(t,e,r[0],r[1],s,r[2])})})}}function i(e,t,r){if("float32"!==t)return!1;for(let t=0;t<e.length;t++){let n=e[t];if(isNaN(n)||!isFinite(n))return console.warn(`Found ${n} in the result of '${r}'`),!0}return!1}class u{logKernelProfile(e,t,r,n,s,a){let l="number"==typeof n?o.rightPad(`${n}ms`,9):n.error,i=o.rightPad(e,25),u=t.rank,p=t.size,c=o.rightPad(t.shape.toString(),14),d="";for(let e in s){let r=s[e];if(null!=r){let n=r.shape||t.shape,s=n.length;d+=`${e}: ${s}D ${s>0?n:""} `}}console.log(`%c${i} %c${l} %c${u}D ${c} %c${p} %c${d} %c${a}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}}},{"./environment":"5SiqL","./util":"lLzfH","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lLzfH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"createScalarValue",()=>u),s.export(r,"toTypedArray",()=>p),s.export(r,"now",()=>c),s.export(r,"fetch",()=>d),s.export(r,"encodeString",()=>f),s.export(r,"decodeString",()=>h),s.export(r,"isTypedArray",()=>m),s.export(r,"flatten",()=>g);var a=e("./environment"),o=e("./platforms/is_typed_array_browser"),l=e("./util_base");s.exportAll(l,r);var i=e("./hash_util");function u(e,t){return"string"===t?f(e):p([e],t)}function p(e,t){var r;if("string"===t)throw Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=g(e)),(0,a.env)().getBool("DEBUG")&&l.checkConversionForErrors(e,t),(r=e)instanceof Float32Array&&"float32"===t||r instanceof Int32Array&&"int32"===t||r instanceof Uint8Array&&"bool"===t)return e;if(null==t||"float32"===t||"complex64"===t)return new Float32Array(e);if("int32"===t)return new Int32Array(e);if("bool"===t){let t=new Uint8Array(e.length);for(let r=0;r<t.length;++r)0!==Math.round(e[r])&&(t[r]=1);return t}throw Error(`Unknown data type ${t}`)}function c(){return(0,a.env)().platform.now()}function d(e,t){return(0,a.env)().platform.fetch(e,t)}function f(e,t="utf-8"){return t=t||"utf-8",(0,a.env)().platform.encode(e,t)}function h(e,t="utf-8"){return t=t||"utf-8",(0,a.env)().platform.decode(e,t)}function m(e){return null!=(0,a.env)().platform.isTypedArray?(0,a.env)().platform.isTypedArray(e):(0,o.isTypedArrayBrowser)(e)}function g(e,t=[],r=!1){if(null==t&&(t=[]),"boolean"==typeof e||"number"==typeof e||"string"==typeof e||l.isPromise(e)||null==e||m(e)&&r)t.push(e);else if(Array.isArray(e)||m(e))for(let n=0;n<e.length;++n)g(e[n],t,r);else{let n=-1;for(let t of Object.keys(e))/^([1-9]+[0-9]*|0)$/.test(t)&&(n=Math.max(n,Number(t)));for(let s=0;s<=n;s++)g(e[s],t,r)}return t}s.exportAll(i,r)},{"./environment":"5SiqL","./platforms/is_typed_array_browser":"3TERP","./util_base":"2IDj3","./hash_util":"86LFH","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3TERP":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){return e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray}s.defineInteropFlag(r),s.export(r,"isTypedArrayBrowser",()=>a)},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"86LFH":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"hexToLong",()=>l),s.export(r,"fingerPrint64",()=>x);var a=e("long");let o=a.default||a;function l(e){return o.fromString(e,!0,16)}let i=l("c3a5c85c97cb3127"),u=l("b492b66fbe98f273"),p=l("9ae16a3b2f90404f");function c(e){return e.xor(e.shru(47))}function d(e,t,r){let n=e.slice(t,t+r);return o.fromBytes(Array.from(n),!0,!0)}function f(e,t){return d(e,t,8)}function h(e,t){return 0===t?e:e.shru(t).or(e.shl(64-t))}function m(e,t,r=l("9ddfea08eb382d69")){let n=e.xor(t).mul(r);n=n.xor(n.shru(47));let s=t.xor(n).mul(r);return(s=s.xor(s.shru(47))).mul(r)}function g(e,t,r,n){var s,a,o,l,i,u;let p;return s=f(e,t),a=f(e,t+8),o=f(e,t+16),l=f(e,t+24),i=r,u=n,i=i.add(s),u=h(u.add(i).add(l),21),p=i,i=(i=i.add(a)).add(o),u=u.add(h(i,44)),[i.add(l),u.add(p)]}function x(e,t=e.length){let r=o.fromNumber(81,!0);if(t<=32)if(t<=16)return function(e,t=e.length){if(t>=8){let r=p.add(2*t),n=f(e,0).add(p),s=f(e,t-8);return m(h(s,37).mul(r).add(n),h(n,25).add(s).mul(r),r)}if(t>=4){let r=p.add(2*t);return m(d(e,0,4).shl(3).add(t),d(e,t-4,4),r)}if(t>0){let r=e[0],n=e[t>>1],s=e[t-1];return c(p.mul(r+(n<<8)).xor(i.mul(t+(s<<2)))).mul(p)}return p}(e,t);else return function(e,t=e.length){let r=p.add(2*t),n=f(e,0).mul(u),s=f(e,8),a=f(e,t-8).mul(r),o=f(e,t-16).mul(p);return m(h(n.add(s),43).add(h(a,30)).add(o),n.add(h(s.add(p),18)).add(a),r)}(e,t);if(t<=64)return function(e,t=e.length){let r=p.add(2*t),n=f(e,0).mul(p),s=f(e,8),a=f(e,t-8).mul(r),o=f(e,t-16).mul(p),l=h(n.add(s),43).add(h(a,30)).add(o),i=m(l,n.add(h(s.add(p),18)).add(a),r),u=f(e,16).mul(r),c=f(e,24),d=l.add(f(e,t-32)).mul(r),g=i.add(f(e,t-24)).mul(r);return m(h(u.add(c),43).add(h(d,30)).add(g),u.add(h(c.add(n),18)).add(d),r)}(e,t);let n=r,s=r.mul(u).add(113),a=c(s.mul(p).add(113)).mul(p),l=[o.UZERO,o.UZERO],v=[o.UZERO,o.UZERO];n=n.mul(p).add(f(e,0));let y=0,_=(t-1>>6)*64,b=_+(t-1&63)-63;do n=h(n.add(s).add(l[0]).add(f(e,y+8)),37).mul(u),s=h(s.add(l[1]).add(f(e,y+48)),42).mul(u),n=n.xor(v[1]),s=s.add(l[0]).add(f(e,y+40)),a=h(a.add(v[0]),33).mul(u),l=g(e,y,l[1].mul(u),n.add(v[0])),v=g(e,y+32,a.add(v[1]),s.add(f(e,y+16))),[a,n]=[n,a],y+=64;while(y!==_)let k=u.add(a.and(255).shl(1));return y=b,v[0]=v[0].add(t-1&63),l[0]=l[0].add(v[0]),v[0]=v[0].add(l[0]),n=h(n.add(s).add(l[0]).add(f(e,y+8)),37).mul(k),s=h(s.add(l[1]).add(f(e,y+48)),42).mul(k),n=n.xor(v[1].mul(9)),s=s.add(l[0].mul(9).add(f(e,y+40))),a=h(a.add(v[0]),33).mul(k),l=g(e,y,l[1].mul(k),n.add(v[0])),v=g(e,y+32,a.add(v[1]),s.add(f(e,y+16))),[a,n]=[n,a],m(m(l[0],v[0],k).add(c(s).mul(i)).add(a),m(l[1],v[1],k).add(n),k)}},{long:"lP1uQ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lP1uQ:[function(e,t,r,n){t.exports=a;var s=null;try{s=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(e){}function a(e,t,r){this.low=0|e,this.high=0|t,this.unsigned=!!r}function o(e){return!0===(e&&e.__isLong__)}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0}),a.isLong=o;var l={},i={};function u(e,t){var r,n,s;if(t)return(e>>>=0,(s=0<=e&&e<256)&&(n=i[e]))?n:(r=c(e,(0|e)<0?-1:0,!0),s&&(i[e]=r),r);return(e|=0,(s=-128<=e&&e<128)&&(n=l[e]))?n:(r=c(e,e<0?-1:0,!1),s&&(l[e]=r),r)}function p(e,t){if(isNaN(e))return t?_:y;if(t){if(e<0)return _;if(e>=g)return I}else{if(e<=-x)return j;if(e+1>=x)return w}return e<0?p(-e,t).neg():c(e%m|0,e/m|0,t)}function c(e,t,r){return new a(e,t,r)}a.fromInt=u,a.fromNumber=p,a.fromBits=c;var d=Math.pow;function f(e,t,r){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return y;if("number"==typeof t?(r=t,t=!1):t=!!t,(r=r||10)<2||36<r)throw RangeError("radix");if((n=e.indexOf("-"))>0)throw Error("interior hyphen");if(0===n)return f(e.substring(1),t,r).neg();for(var n,s=p(d(r,8)),a=y,o=0;o<e.length;o+=8){var l=Math.min(8,e.length-o),i=parseInt(e.substring(o,o+l),r);if(l<8){var u=p(d(r,l));a=a.mul(u).add(p(i))}else a=(a=a.mul(s)).add(p(i))}return a.unsigned=t,a}function h(e,t){return"number"==typeof e?p(e,t):"string"==typeof e?f(e,t):c(e.low,e.high,"boolean"==typeof t?t:e.unsigned)}a.fromString=f,a.fromValue=h;var m=0x100000000,g=0xffffffffffffffff,x=0x8000000000000000,v=u(0x1000000),y=u(0);a.ZERO=y;var _=u(0,!0);a.UZERO=_;var b=u(1);a.ONE=b;var k=u(1,!0);a.UONE=k;var T=u(-1);a.NEG_ONE=T;var w=c(-1,0x7fffffff,!1);a.MAX_VALUE=w;var I=c(-1,-1,!0);a.MAX_UNSIGNED_VALUE=I;var j=c(0,-0x80000000,!1);a.MIN_VALUE=j;var C=a.prototype;C.toInt=function(){return this.unsigned?this.low>>>0:this.low},C.toNumber=function(){return this.unsigned?(this.high>>>0)*m+(this.low>>>0):this.high*m+(this.low>>>0)},C.toString=function(e){if((e=e||10)<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(!this.eq(j))return"-"+this.neg().toString(e);else{var t=p(e),r=this.div(t),n=r.mul(t).sub(this);return r.toString(e)+n.toInt().toString(e)}for(var s=p(d(e,6),this.unsigned),a=this,o="";;){var l=a.div(s),i=(a.sub(l.mul(s)).toInt()>>>0).toString(e);if((a=l).isZero())return i+o;for(;i.length<6;)i="0"+i;o=""+i+o}},C.getHighBits=function(){return this.high},C.getHighBitsUnsigned=function(){return this.high>>>0},C.getLowBits=function(){return this.low},C.getLowBitsUnsigned=function(){return this.low>>>0},C.getNumBitsAbs=function(){if(this.isNegative())return this.eq(j)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&(e&1<<t)==0;t--);return 0!=this.high?t+33:t+1},C.isZero=function(){return 0===this.high&&0===this.low},C.eqz=C.isZero,C.isNegative=function(){return!this.unsigned&&this.high<0},C.isPositive=function(){return this.unsigned||this.high>=0},C.isOdd=function(){return(1&this.low)==1},C.isEven=function(){return(1&this.low)==0},C.equals=function(e){return o(e)||(e=h(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&this.high===e.high&&this.low===e.low},C.eq=C.equals,C.notEquals=function(e){return!this.eq(e)},C.neq=C.notEquals,C.ne=C.notEquals,C.lessThan=function(e){return 0>this.comp(e)},C.lt=C.lessThan,C.lessThanOrEqual=function(e){return 0>=this.comp(e)},C.lte=C.lessThanOrEqual,C.le=C.lessThanOrEqual,C.greaterThan=function(e){return this.comp(e)>0},C.gt=C.greaterThan,C.greaterThanOrEqual=function(e){return this.comp(e)>=0},C.gte=C.greaterThanOrEqual,C.ge=C.greaterThanOrEqual,C.compare=function(e){if(o(e)||(e=h(e)),this.eq(e))return 0;var t=this.isNegative(),r=e.isNegative();return t&&!r?-1:!t&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},C.comp=C.compare,C.negate=function(){return!this.unsigned&&this.eq(j)?j:this.not().add(b)},C.neg=C.negate,C.add=function(e){o(e)||(e=h(e));var t,r,n=this.high>>>16,s=65535&this.high,a=this.low>>>16,l=65535&this.low,i=e.high>>>16,u=65535&e.high,p=e.low>>>16,d=65535&e.low,f=0,m=0;return t=0+((r=0+(l+d))>>>16),r&=65535,t+=a+p,m+=t>>>16,t&=65535,m+=s+u,f+=m>>>16,m&=65535,f+=n+i,c(t<<16|r,(f&=65535)<<16|m,this.unsigned)},C.subtract=function(e){return o(e)||(e=h(e)),this.add(e.neg())},C.sub=C.subtract,C.multiply=function(e){if(this.isZero())return y;if(o(e)||(e=h(e)),s)return c(s.mul(this.low,this.high,e.low,e.high),s.get_high(),this.unsigned);if(e.isZero())return y;if(this.eq(j))return e.isOdd()?j:y;if(e.eq(j))return this.isOdd()?j:y;if(this.isNegative())if(e.isNegative())return this.neg().mul(e.neg());else return this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(v)&&e.lt(v))return p(this.toNumber()*e.toNumber(),this.unsigned);var t,r,n=this.high>>>16,a=65535&this.high,l=this.low>>>16,i=65535&this.low,u=e.high>>>16,d=65535&e.high,f=e.low>>>16,m=65535&e.low,g=0,x=0;return t=0+((r=0+i*m)>>>16),r&=65535,t+=l*m,x+=t>>>16,t&=65535,t+=i*f,x+=t>>>16,t&=65535,x+=a*m,g+=x>>>16,x&=65535,x+=l*f,g+=x>>>16,x&=65535,x+=i*d,g+=x>>>16,x&=65535,g+=n*m+a*f+l*d+i*u,c(t<<16|r,(g&=65535)<<16|x,this.unsigned)},C.mul=C.multiply,C.divide=function(e){if(o(e)||(e=h(e)),e.isZero())throw Error("division by zero");if(s){var t,r,n;return this.unsigned||-0x80000000!==this.high||-1!==e.low||-1!==e.high?c((this.unsigned?s.div_u:s.div_s)(this.low,this.high,e.low,e.high),s.get_high(),this.unsigned):this}if(this.isZero())return this.unsigned?_:y;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return _;if(e.gt(this.shru(1)))return k;n=_}else{if(this.eq(j))if(e.eq(b)||e.eq(T))return j;else return e.eq(j)?b:(t=this.shr(1).div(e).shl(1)).eq(y)?e.isNegative()?b:T:(r=this.sub(e.mul(t)),n=t.add(r.div(e)));if(e.eq(j))return this.unsigned?_:y;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();n=y}for(r=this;r.gte(e);){for(var a=Math.ceil(Math.log(t=Math.max(1,Math.floor(r.toNumber()/e.toNumber())))/Math.LN2),l=a<=48?1:d(2,a-48),i=p(t),u=i.mul(e);u.isNegative()||u.gt(r);)t-=l,u=(i=p(t,this.unsigned)).mul(e);i.isZero()&&(i=b),n=n.add(i),r=r.sub(u)}return n},C.div=C.divide,C.modulo=function(e){return(o(e)||(e=h(e)),s)?c((this.unsigned?s.rem_u:s.rem_s)(this.low,this.high,e.low,e.high),s.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},C.mod=C.modulo,C.rem=C.modulo,C.not=function(){return c(~this.low,~this.high,this.unsigned)},C.and=function(e){return o(e)||(e=h(e)),c(this.low&e.low,this.high&e.high,this.unsigned)},C.or=function(e){return o(e)||(e=h(e)),c(this.low|e.low,this.high|e.high,this.unsigned)},C.xor=function(e){return o(e)||(e=h(e)),c(this.low^e.low,this.high^e.high,this.unsigned)},C.shiftLeft=function(e){return(o(e)&&(e=e.toInt()),0==(e&=63))?this:e<32?c(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):c(0,this.low<<e-32,this.unsigned)},C.shl=C.shiftLeft,C.shiftRight=function(e){return(o(e)&&(e=e.toInt()),0==(e&=63))?this:e<32?c(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):c(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},C.shr=C.shiftRight,C.shiftRightUnsigned=function(e){if(o(e)&&(e=e.toInt()),0==(e&=63))return this;var t=this.high;return e<32?c(this.low>>>e|t<<32-e,t>>>e,this.unsigned):32===e?c(t,0,this.unsigned):c(t>>>e-32,0,this.unsigned)},C.shru=C.shiftRightUnsigned,C.shr_u=C.shiftRightUnsigned,C.toSigned=function(){return this.unsigned?c(this.low,this.high,!1):this},C.toUnsigned=function(){return this.unsigned?this:c(this.low,this.high,!0)},C.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},C.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},C.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},a.fromBytes=function(e,t,r){return r?a.fromBytesLE(e,t):a.fromBytesBE(e,t)},a.fromBytesLE=function(e,t){return new a(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},a.fromBytesBE=function(e,t){return new a(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)}},{}],"4Qhbp":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getFilteredNodesXToY",()=>o),s.export(r,"backpropagateGradients",()=>l);var a=e("./util");function o(e,t,r){let n={},s={};for(let e=0;e<t.length;e++)n[t[e].id]=!0;for(let r=0;r<e.length;r++){let a=e[r],o=a.inputs;for(let e in o){let r=o[e],l=!1;for(let e=0;e<t.length;e++)if(n[r.id]){a.outputs.forEach(e=>n[e.id]=!0),l=!0,s[a.id]=!0;break}if(l)break}}let a={};a[r.id]=!0;let o={};for(let t=e.length-1;t>=0;t--){let r=e[t],n=r.inputs;for(let e=0;e<r.outputs.length;e++)if(a[r.outputs[e].id]){for(let e in n)a[n[e].id]=!0,o[r.id]=!0;break}}let l=[];for(let t=0;t<e.length;t++){let r=e[t];if(s[r.id]&&o[r.id]){let e={};for(let t in r.inputs){let s=r.inputs[t];n[s.id]&&(e[t]=s)}let t=Object.assign({},r);t.inputs=e,t.outputs=r.outputs,l.push(t)}}return l}function l(e,t,r,n){for(let s=t.length-1;s>=0;s--){let o=t[s],l=[];if(o.outputs.forEach(t=>{let r=e[t.id];null!=r?l.push(r):l.push(null)}),null==o.gradient)throw Error(`Cannot compute gradient: gradient function not found for ${o.kernelName}.`);let i=o.gradient(l);for(let t in o.inputs){if(!(t in i))throw Error(`Cannot backprop through input ${t}. Available gradients found: ${Object.keys(i)}.`);let s=r(()=>i[t]());if("float32"!==s.dtype)throw Error(`Error in gradient for op ${o.kernelName}. The gradient of input ${t} must have 'float32' dtype, but has '${s.dtype}'`);let l=o.inputs[t];if(!a.arraysEqual(s.shape,l.shape))throw Error(`Error in gradient for op ${o.kernelName}. The gradient of input '${t}' has shape '${s.shape}', which does not match the shape of the input '${l.shape}'`);if(null==e[l.id])e[l.id]=s;else{let t=e[l.id];e[l.id]=n(t,s),t.dispose()}}}}},{"./util":"lLzfH","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8mprx":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TensorBuffer",()=>i),s.export(r,"setTensorTracker",()=>c),s.export(r,"setOpHandler",()=>d),s.export(r,"setDeprecationWarningFn",()=>f),s.export(r,"Tensor",()=>h),s.export(r,"getGlobalTensorClass",()=>m),s.export(r,"Variable",()=>g);var a=e("./global_util"),o=e("./tensor_format"),l=e("./util");class i{constructor(e,t,r){if(this.dtype=t,this.shape=e.slice(),this.size=l.sizeFromShape(e),null!=r){let e=r.length;l.assert(e===this.size,()=>`Length of values '${e}' does not match the size inferred by the shape '${this.size}'.`)}if("complex64"===t)throw 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=r||l.getArrayFromDType(t,this.size),this.strides=(0,l.computeStrides)(e)}set(e,...t){0===t.length&&(t=[0]),l.assert(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let r=this.locToIndex(t);this.values[r]=e}get(...e){0===e.length&&(e=[0]);let t=0;for(let r of e){if(r<0||r>=this.shape[t])throw Error(`Requested out of range element at ${e}. Buffer shape=${this.shape}`);t++}let r=e[e.length-1];for(let t=0;t<e.length-1;++t)r+=this.strides[t]*e[t];return this.values[r]}locToIndex(e){if(0===this.rank)return 0;if(1===this.rank)return e[0];let t=e[e.length-1];for(let r=0;r<e.length-1;++r)t+=this.strides[r]*e[r];return t}indexToLoc(e){if(0===this.rank)return[];if(1===this.rank)return[e];let t=Array(this.shape.length);for(let r=0;r<t.length-1;++r)t[r]=Math.floor(e/this.strides[r]),e-=t[r]*this.strides[r];return t[t.length-1]=e,t}get rank(){return this.shape.length}toTensor(){return u().makeTensor(this.values,this.shape,this.dtype)}}let u=null,p=null;function c(e){u=e}function d(e){p=e}function f(e){}class h{constructor(e,t,r,n){this.kept=!1,this.isDisposedInternal=!1,this.shape=e.slice(),this.dtype=t||"float32",this.size=l.sizeFromShape(e),this.strides=(0,l.computeStrides)(e),this.dataId=r,this.id=n,this.rankType=this.rank<5?this.rank.toString():"higher"}get rank(){return this.shape.length}async buffer(){let e=await this.data();return p.buffer(this.shape,this.dtype,e)}bufferSync(){return p.buffer(this.shape,this.dtype,this.dataSync())}async array(){let e=await this.data();return(0,l.toNestedArray)(this.shape,e,"complex64"===this.dtype)}arraySync(){return(0,l.toNestedArray)(this.shape,this.dataSync(),"complex64"===this.dtype)}async data(){this.throwIfDisposed();let e=u().read(this.dataId);if("string"===this.dtype){let t=await e;try{return t.map(e=>l.decodeString(e))}catch(e){throw 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(),u().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=u().readSync(this.dataId);if("string"===this.dtype)try{return e.map(e=>l.decodeString(e))}catch(e){throw 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 u().read(this.dataId);return"string"===this.dtype?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(this.kerasMask&&this.kerasMask.dispose(),u().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw Error("Tensor is disposed.")}print(e=!1){return p.print(this,e)}clone(){return this.throwIfDisposed(),p.clone(this)}toString(e=!1){let t=this.dataSync();return(0,o.tensorToString)(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),p.cast(this,e)}variable(e=!0,t,r){return this.throwIfDisposed(),u().makeVariable(this,e,t,r)}}function m(){return(0,a.getGlobal)("Tensor",()=>h)}Object.defineProperty(h,Symbol.hasInstance,{value:e=>!!e&&null!=e.data&&null!=e.dataSync&&null!=e.throwIfDisposed}),m();class g extends h{constructor(e,t,r,n){super(e.shape,e.dtype,e.dataId,n),this.trainable=t,this.name=r}assign(e){if(e.dtype!==this.dtype)throw Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!l.arraysEqual(e.shape,this.shape))throw Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);u().disposeTensor(this),this.dataId=e.dataId,u().incRef(this,null)}dispose(){u().disposeVariable(this),this.isDisposedInternal=!0}}Object.defineProperty(g,Symbol.hasInstance,{value:e=>e instanceof h&&null!=e.assign&&e.assign instanceof Function})},{"./global_util":"1SThP","./tensor_format":"dYhhA","./util":"lLzfH","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dYhhA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensorToString",()=>o);var a=e("./util");function o(e,t,r,n){let s=(0,a.computeStrides)(t),o=function(e,t,r,n){let s=(0,a.sizeFromShape)(t),o=n[n.length-1],i=Array(o).fill(0),p=t.length,c="complex64"===r?u(e):e;if(p>1)for(let e=0;e<s/o;e++){let t=e*o;for(let e=0;e<o;e++)i[e]=Math.max(i[e],l(c[t+e],0,r).length)}return i}(e,t,r,s),p=t.length,c=function e(t,r,n,s,a,o=!0){let p="complex64"===n?2:1,c=r[0],d=r.length;if(0===d)return"complex64"===n?[l(u(t)[0],0,n)]:"bool"===n?[i(t[0])]:[t[0].toString()];if(1===d){if(c>20){let e=Array.from(t.slice(0,3*p)),r=Array.from(t.slice((c-3)*p,c*p));return"complex64"===n&&(e=u(e),r=u(r)),["["+e.map((e,t)=>l(e,a[t],n)).join(", ")+", ..., "+r.map((e,t)=>l(e,a[c-3+t],n)).join(", ")+"]"]}return["["+("complex64"===n?u(t):Array.from(t)).map((e,t)=>l(e,a[t],n)).join(", ")+"]"]}let f=r.slice(1),h=s.slice(1),m=s[0]*p,g=[];if(c>20){for(let r=0;r<3;r++){let s=r*m,o=s+m;g.push(...e(t.slice(s,o),f,n,h,a,!1))}g.push("...");for(let r=c-3;r<c;r++){let s=r*m,o=s+m;g.push(...e(t.slice(s,o),f,n,h,a,r===c-1))}}else for(let r=0;r<c;r++){let s=r*m,o=s+m;g.push(...e(t.slice(s,o),f,n,h,a,r===c-1))}let x=2===d?",":"";g[0]="["+(c>0?g[0]+x:"");for(let e=1;e<g.length-1;e++)g[e]=" "+g[e]+x;let v=",\n";for(let e=2;e<d;e++)v+="\n";return g[g.length-1]=" "+g[g.length-1]+"]"+(o?"":v),g}(e,t,r,s,o),d=["Tensor"];return n&&(d.push(` dtype: ${r}`),d.push(` rank: ${p}`),d.push(` shape: [${t}]`),d.push(" values:")),d.push(c.map(e=>" "+e).join("\n")),d.join("\n")}function l(e,t,r){let n;return n=Array.isArray(e)?`${parseFloat(e[0].toFixed(7))} + ${parseFloat(e[1].toFixed(7))}j`:(0,a.isString)(e)?`'${e}'`:"bool"===r?i(e):parseFloat(e.toFixed(7)).toString(),(0,a.rightPad)(n,t)}function i(e){return 0===e?"false":"true"}function u(e){let t=[];for(let r=0;r<e.length;r+=2)t.push([e[r],e[r+1]]);return t}},{"./util":"2IDj3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],j3qzf:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"makeTypesMatch",()=>i),s.export(r,"assertTypesMatch",()=>u),s.export(r,"isTensorInList",()=>p),s.export(r,"getTensorsInContainer",()=>c);var a=e("./tensor"),o=e("./types"),l=e("./util");function i(e,t){if(e.dtype===t.dtype)return[e,t];let r=(0,o.upcastType)(e.dtype,t.dtype);return[e.cast(r),t.cast(r)]}function u(e,t){(0,l.assert)(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function p(e,t){return t.some(t=>t.id===e.id)}function c(e){let t=[];return function e(t,r,n){var s;if(null!=t){if(t instanceof a.Tensor)return void r.push(t);if(Array.isArray(s=t)||"object"==typeof s)for(let s in t){let a=t[s];n.has(a)||(n.add(a),e(a,r,n))}}}(e,t,new Set),t}},{"./tensor":"8mprx","./types":"h2NB8","./util":"2IDj3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],h2NB8:[function(e,t,r,n){var s,a,o,l,i,u,p,c,d,f,h=e("@parcel/transformer-js/src/esmodule-helpers.js");h.defineInteropFlag(r),h.export(r,"Rank",()=>u),h.export(r,"upcastType",()=>g),h.export(r,"sumOutType",()=>x),h.export(r,"isWebGLData",()=>v),h.export(r,"isWebGPUData",()=>y),(s=u||(u={})).R0="R0",s.R1="R1",s.R2="R2",s.R3="R3",s.R4="R4",s.R5="R5",s.R6="R6",(a=p||(p={})).float32="float32",a.int32="int32",a.bool="int32",a.complex64="complex64",(o=c||(c={})).float32="float32",o.int32="int32",o.bool="bool",o.complex64="complex64",(l=d||(d={})).float32="float32",l.int32="float32",l.bool="float32",l.complex64="complex64",(i=f||(f={})).float32="complex64",i.int32="complex64",i.bool="complex64",i.complex64="complex64";let m={float32:d,int32:p,bool:c,complex64:f};function g(e,t){if("string"===e||"string"===t){if("string"===e&&"string"===t)return"string";throw Error(`Can not upcast ${e} with ${t}`)}return m[e][t]}function x(e){return g(e,"int32")}function v(e){return null!=e&&"object"==typeof e&&"texture"in e&&e.texture instanceof WebGLTexture}function y(e){return"undefined"!=typeof GPUBuffer&&null!=e&&"object"==typeof e&&"buffer"in e&&e.buffer instanceof GPUBuffer}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5pgCq":[function(e,t,r,n){e("./engine");var s=e("./device_util");let a=(0,e("./environment").env)();a.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")}),a.registerFlag("IS_BROWSER",()=>s.isBrowser()),a.registerFlag("IS_NODE",()=>!1),a.registerFlag("IS_CHROME",()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)),a.registerFlag("IS_SAFARI",()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor)),a.registerFlag("PROD",()=>!1),a.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>a.getBool("DEBUG")),a.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0),a.registerFlag("IS_TEST",()=>!1),a.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>a.getBool("DEBUG")),a.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1),a.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1),a.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1)},{"./engine":"gtimw","./device_util":"hqWrg","./environment":"5SiqL"}],hqWrg:[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e){s=e}function l(e){if(void 0!==s)return s;if(e||"undefined"!=typeof navigator&&null!=navigator){if(e||(e=navigator),"ReactNative"===e.product)return!0;let t=e.userAgent||e.vendor||("undefined"!=typeof window?window.opera:"");if(!t){let t=e;return t.userAgentData&&t.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 i(){return"undefined"!=typeof window&&null!=window.document||"undefined"!=typeof WorkerGlobalScope}a.defineInteropFlag(r),a.export(r,"mockIsMobile",()=>o),a.export(r,"isMobile",()=>l),a.export(r,"isBrowser",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],llIdb:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PlatformBrowser",()=>p),e("../flags");var a=e("../environment"),o=e("../io/indexed_db"),l=e("../io/local_storage"),i=e("../io/model_management"),u=e("./is_typed_array_browser");class p{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("utf-8"!==t&&"utf8"!==t)throw Error(`Browser's encoder only supports utf-8, but got ${t}`);return null==this.textEncoder&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}setTimeoutCustom(e,t){"undefined"!=typeof window&&(0,a.env)().getBool("USE_SETTIMEOUTCUSTOM")?(this.functionRefs.push(e),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",e=>{e.source===window&&e.data.name===this.messageName&&(e.stopPropagation(),(0,this.functionRefs[e.data.index])(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0))},!0))):setTimeout(e,t)}isTypedArray(e){return(0,u.isTypedArrayBrowser)(e)}}if((0,a.env)().get("IS_BROWSER")){(0,a.env)().setPlatform("browser",new p);try{i.ModelStoreManagerRegistry.registerManager(l.BrowserLocalStorage.URL_SCHEME,new(0,l.BrowserLocalStorageManager))}catch(e){}try{i.ModelStoreManagerRegistry.registerManager(o.BrowserIndexedDB.URL_SCHEME,new(0,o.BrowserIndexedDBManager))}catch(e){}}},{"../flags":"5pgCq","../environment":"5SiqL","../io/indexed_db":"2SgWK","../io/local_storage":"7En5P","../io/model_management":"1oviL","./is_typed_array_browser":"3TERP","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2SgWK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"deleteDatabase",()=>d),s.export(r,"BrowserIndexedDB",()=>m),s.export(r,"indexedDBRouter",()=>g),s.export(r,"browserIndexedDB",()=>x),s.export(r,"BrowserIndexedDBManager",()=>v),e("../flags");var a=e("../environment"),o=e("./io_utils"),l=e("./router_registry"),i=e("./composite_array_buffer");let u="tensorflowjs",p="models_store",c="model_info_store";async function d(){let e=f();return new Promise((t,r)=>{let n=e.deleteDatabase(u);n.onsuccess=()=>t(),n.onerror=e=>r(e)})}function f(){if(!(0,a.env)().getBool("IS_BROWSER"))throw Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e="undefined"==typeof window?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(null==t)throw Error("The current browser does not appear to support IndexedDB.");return t}function h(e){let t=e.result;t.createObjectStore(p,{keyPath:"modelPath"}),t.createObjectStore(c,{keyPath:"modelPath"})}class m{constructor(e){if(this.indexedDB=f(),null==e||!e)throw Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((e,r)=>{let n=this.indexedDB.open(u,1);n.onupgradeneeded=()=>h(n),n.onsuccess=()=>{let s=n.result;if(null==t){let t=s.transaction(p,"readonly"),n=t.objectStore(p).get(this.modelPath);n.onsuccess=()=>{if(null==n.result)return s.close(),r(Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));e(n.result.modelArtifacts)},n.onerror=e=>(s.close(),r(n.error)),t.oncomplete=()=>s.close()}else{let n,a;t.weightData=i.CompositeArrayBuffer.join(t.weightData);let l=(0,o.getModelArtifactsInfoForJSON)(t),u=s.transaction(c,"readwrite"),d=u.objectStore(c);try{n=d.put({modelPath:this.modelPath,modelArtifactsInfo:l})}catch(e){return r(e)}n.onsuccess=()=>{let n,o=(a=s.transaction(p,"readwrite")).objectStore(p);try{n=o.put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:l})}catch(e){return r(e)}n.onsuccess=()=>e({modelArtifactsInfo:l}),n.onerror=e=>{let t=(d=u.objectStore(c)).delete(this.modelPath);t.onsuccess=()=>(s.close(),r(n.error)),t.onerror=e=>(s.close(),r(n.error))}},n.onerror=e=>(s.close(),r(n.error)),u.oncomplete=()=>{null==a?s.close():a.oncomplete=()=>s.close()}}},n.onerror=e=>r(n.error)})}}m.URL_SCHEME="indexeddb://";let g=e=>(0,a.env)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(m.URL_SCHEME)?x(e.slice(m.URL_SCHEME.length)):null;function x(e){return new m(e)}l.IORouterRegistry.registerSaveRouter(g),l.IORouterRegistry.registerLoadRouter(g);class v{constructor(){this.indexedDB=f()}async listModels(){return new Promise((e,t)=>{let r=this.indexedDB.open(u,1);r.onupgradeneeded=()=>h(r),r.onsuccess=()=>{let n=r.result,s=n.transaction(c,"readonly"),a=s.objectStore(c).getAll();a.onsuccess=()=>{let t={};for(let e of a.result)t[e.modelPath]=e.modelArtifactsInfo;e(t)},a.onerror=e=>(n.close(),t(a.error)),s.oncomplete=()=>n.close()},r.onerror=e=>t(r.error)})}async removeModel(e){var t;return e=(t=e).startsWith(m.URL_SCHEME)?t.slice(m.URL_SCHEME.length):t,new Promise((t,r)=>{let n=this.indexedDB.open(u,1);n.onupgradeneeded=()=>h(n),n.onsuccess=()=>{let s,a=n.result,o=a.transaction(c,"readwrite"),l=o.objectStore(c),i=l.get(e);i.onsuccess=()=>{if(null==i.result)return a.close(),r(Error(`Cannot find model with path '${e}' in IndexedDB.`));{let n=l.delete(e),o=()=>{let n=(s=a.transaction(p,"readwrite")).objectStore(p).delete(e);n.onsuccess=()=>t(i.result.modelArtifactsInfo),n.onerror=e=>r(i.error)};n.onsuccess=o,n.onerror=e=>(o(),a.close(),r(i.error))}},i.onerror=e=>(a.close(),r(i.error)),o.oncomplete=()=>{null==s?a.close():s.oncomplete=()=>a.close()}},n.onerror=e=>r(n.error)})}}},{"../flags":"5pgCq","../environment":"5SiqL","./io_utils":"kNa3U","./router_registry":"3BLAK","./composite_array_buffer":"7Paji","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kNa3U:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"encodeWeights",()=>d),s.export(r,"decodeWeights",()=>f),s.export(r,"decodeWeightsStream",()=>x),s.export(r,"concatenateTypedArrays",()=>v),s.export(r,"stringByteLength",()=>_),s.export(r,"arrayBufferToBase64String",()=>b),s.export(r,"base64StringToArrayBuffer",()=>k),s.export(r,"concatenateArrayBuffers",()=>T),s.export(r,"basename",()=>w),s.export(r,"getModelJSONForModelArtifacts",()=>I),s.export(r,"getModelArtifactsForJSONSync",()=>j),s.export(r,"getModelArtifactsForJSON",()=>C),s.export(r,"getModelArtifactsInfoForJSON",()=>N),s.export(r,"getWeightSpecs",()=>S),s.export(r,"getFloat16Decoder",()=>E);var a=e("../ops/complex"),o=e("../ops/tensor"),l=e("../util"),i=e("./types"),u=e("./composite_array_buffer"),p=e("../globals"),c=e("../environment");async function d(e,t){let r=[],n=[],s=Array.isArray(e)?e.map(e=>e.name):Object.keys(e);for(let a=0;a<s.length;++a){let o=s[a],l=Array.isArray(e)?e[a].tensor:e[o];if("float32"!==l.dtype&&"int32"!==l.dtype&&"bool"!==l.dtype&&"string"!==l.dtype&&"complex64"!==l.dtype)throw Error(`Unsupported dtype in weight '${o}': ${l.dtype}`);let i={name:o,shape:l.shape,dtype:l.dtype};if("string"===l.dtype){let e=new Promise(async e=>{let t=await l.bytes(),r=new Uint8Array(t.reduce((e,t)=>e+t.length,0)+4*t.length),n=0;for(let e=0;e<t.length;e++){let s=t[e],a=new Uint8Array(new Uint32Array([s.length]).buffer);r.set(a,n),n+=4,r.set(s,n),n+=s.length}e(r)});n.push(e)}else n.push(l.data());null!=t&&(i.group=t),r.push(i)}return{data:v(await Promise.all(n)),specs:r}}function f(e,t){let r=new(0,u.CompositeArrayBuffer)(e),n={},s=0;for(let e of t){let t=function(e,t){let r,n=(0,l.sizeFromShape)(e.shape);if("quantization"in e){let t=e.quantization;r=i.DTYPE_VALUE_SIZE_MAP[t.dtype]}else if("string"===e.dtype){let e=0;for(let r=0;r<n;r++)e+=4+new Uint32Array(t(e,e+4))[0];return e}else r=i.DTYPE_VALUE_SIZE_MAP[e.dtype];return n*r}(e,(e,t)=>r.slice(s+e,s+t));n[e.name]=m(e,r.slice(s,s+t)),s+=t}return n}async function h(e,t){let r,n=(0,l.sizeFromShape)(e.shape);if("quantization"in e){let t=e.quantization;r=i.DTYPE_VALUE_SIZE_MAP[t.dtype]}else if("string"===e.dtype){let e=0;for(let r=0;r<n;r++)e+=4+new Uint32Array(await t(e,e+4))[0];return e}else r=i.DTYPE_VALUE_SIZE_MAP[e.dtype];return n*r}function m(e,t){let r,n=e.name,s=e.dtype,u=e.shape,p=(0,l.sizeFromShape)(u),c=0;if("quantization"in e){let a=e.quantization;if("uint8"===a.dtype||"uint16"===a.dtype){if(!("min"in a&&"scale"in a))throw Error(`Weight ${e.name} with quantization ${a.dtype} doesn't have corresponding metadata min and scale.`)}else if("float16"===a.dtype){if("float32"!==s)throw Error(`Weight ${e.name} is quantized with ${a.dtype} which only supports weights of type float32 not ${s}.`)}else throw Error(`Weight ${e.name} has unknown quantization dtype ${a.dtype}. Supported quantization dtypes are: 'uint8', 'uint16', and 'float16'.`);let o=i.DTYPE_VALUE_SIZE_MAP[a.dtype],l="uint8"===a.dtype?new Uint8Array(t):new Uint16Array(t);if("float32"===s)if("uint8"===a.dtype||"uint16"===a.dtype){r=new Float32Array(l.length);for(let e=0;e<l.length;e++){let t=l[e];r[e]=t*a.scale+a.min}}else if("float16"===a.dtype)r=E()(l);else throw Error(`Unsupported quantization type ${a.dtype} for weight type float32.`);else if("int32"===s){if("uint8"!==a.dtype&&"uint16"!==a.dtype)throw Error(`Unsupported quantization type ${a.dtype} for weight type int32.`);r=new Int32Array(l.length);for(let e=0;e<l.length;e++){let t=l[e];r[e]=Math.round(t*a.scale+a.min)}}else throw Error(`Unsupported dtype in weight '${n}': ${s}`);c+=p*o}else if("string"===s){let n=(0,l.sizeFromShape)(e.shape);r=[];for(let e=0;e<n;e++){let e=new Uint32Array(t.slice(c,c+4))[0];c+=4;let n=new Uint8Array(t.slice(c,c+e));r.push(n),c+=e}}else{let e=i.DTYPE_VALUE_SIZE_MAP[s];if("float32"===s)r=new Float32Array(t);else if("int32"===s)r=new Int32Array(t);else if("bool"===s)r=new Uint8Array(t);else if("complex64"===s){r=new Float32Array(t);let e=new Float32Array(r.length/2),n=new Float32Array(r.length/2);for(let t=0;t<e.length;t++)e[t]=r[2*t],n[t]=r[2*t+1];let s=(0,o.tensor)(e,u,"float32"),l=(0,o.tensor)(n,u,"float32"),i=(0,a.complex)(s,l);return s.dispose(),l.dispose(),i}else throw Error(`Unsupported dtype in weight '${n}': ${s}`);c+=p*e}return(0,o.tensor)(r,u,s)}async function g(e,t,r){let n=new Uint8Array(t);for(;n.byteLength<r;){let{done:t,value:s}=await e.read();if(t&&null==s){let e=r-n.byteLength;throw Error(`Reader is done but ${e} bytes are still expected`)}let a=new Uint8Array(n.length+s.byteLength);a.set(n,0),a.set(new Uint8Array(s),n.length),n=a}return n.buffer}async function x(e,t){let r={},n=e.getReader(),s=new ArrayBuffer(0);for(let e of t){let t=await h(e,async(e,t)=>(s=await g(n,s,t)).slice(e,t)),a=(s=await g(n,s,t)).slice(0,t);s=s.slice(t);let o=m(e,a);if(r[e.name]=o,"webgpu"===(0,p.getBackend)()){let e=(0,p.backend)();"uploadToGPU"in e&&(0,l.sizeFromShape)(o.shape)>=(0,c.env)().get("WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD")&&e.uploadToGPU(o.dataId)}}return r}function v(e){if(null===e)throw Error(`Invalid input value: ${JSON.stringify(e)}`);let t=0,r=[];e.forEach(e=>{if(t+=e.byteLength,r.push(e.byteLength===e.buffer.byteLength?e:new e.constructor(e)),!(e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array))throw Error(`Unsupported TypedArray subtype: ${e.constructor.name}`)});let n=new Uint8Array(t),s=0;return r.forEach(e=>{n.set(new Uint8Array(e.buffer),s),s+=e.byteLength}),n.buffer}let y="undefined"!=typeof Buffer&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function _(e){return y?Buffer.byteLength(e,"utf8"):new Blob([e]).size}function b(e){if(y)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),r="";for(let e=0,n=t.length;e<n;e++)r+=String.fromCharCode(t[e]);return btoa(r)}function k(e){if(y){let t=Buffer.from(e,"base64");return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}let t=atob(e),r=new Uint8Array(t.length);for(let e=0;e<t.length;++e)r.set([t.charCodeAt(e)],e);return r.buffer}function T(e){return u.CompositeArrayBuffer.join(e)}function w(e){for(e=e.trim();e.endsWith("/");)e=e.slice(0,e.length-1);let t=e.split("/");return t[t.length-1]}function I(e,t){let r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:t};return null!=e.signature&&(r.signature=e.signature),null!=e.userDefinedMetadata&&(r.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(r.modelInitializer=e.modelInitializer),null!=e.initializerSignature&&(r.initializerSignature=e.initializerSignature),null!=e.trainingConfig&&(r.trainingConfig=e.trainingConfig),r}function j(e,t,r){let n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(null!=e.trainingConfig&&(n.trainingConfig=e.trainingConfig),null!=e.weightsManifest){if(!t)throw Error("modelJSON has weightsManifest but weightSpecs is null");if(!r)throw Error("modelJSON has weightsManifest but weightData is null");n.weightSpecs=t,n.weightData=r}return null!=e.signature&&(n.signature=e.signature),null!=e.userDefinedMetadata&&(n.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(n.modelInitializer=e.modelInitializer),null!=e.initializerSignature&&(n.initializerSignature=e.initializerSignature),n}async function C(e,t){let r,n;return null!=e.weightsManifest&&([r,n]=await t(e.weightsManifest)),j(e,r,n)}function N(e){if(e.modelTopology instanceof ArrayBuffer)throw Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:null==e.modelTopology?0:_(JSON.stringify(e.modelTopology)),weightSpecsBytes:null==e.weightSpecs?0:_(JSON.stringify(e.weightSpecs)),weightDataBytes:null==e.weightData?0:new(0,u.CompositeArrayBuffer)(e.weightData).byteLength}}function S(e){let t=[];for(let r of e)t.push(...r.weights);return t}function E(){let e=function(){let e=e=>{let t=e<<13,r=0;for(;(8388608&t)==0;)r-=8388608,t<<=1;return(t&=-8388609)|(r+=0x38800000)},t=new Uint32Array(2048);t[0]=0;for(let r=1;r<1024;r++)t[r]=e(r);for(let e=1024;e<2048;e++)t[e]=0x38000000+(e-1024<<13);return t}(),t=function(){let e=new Uint32Array(64);e[0]=0,e[31]=0x47800000,e[32]=0x80000000,e[63]=0xc7800000;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=0x80000000+(t-32<<23);return e}(),r=function(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}();return n=>{let s=new ArrayBuffer(4*n.length),a=new Uint32Array(s);for(let s=0;s<n.length;s++){let o=n[s],l=e[r[o>>10]+(1023&o)]+t[o>>10];a[s]=l}return new Float32Array(s)}}},{"../ops/complex":"kNXzJ","../ops/tensor":"gToZD","../util":"2IDj3","./types":"fE5tz","./composite_array_buffer":"7Paji","../globals":"6oj2G","../environment":"5SiqL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kNXzJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"complex",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({complex_:function(e,t){let r=(0,l.convertToTensor)(e,"real","complex"),n=(0,l.convertToTensor)(t,"imag","complex");return i.assertShapesMatch(r.shape,n.shape,`real and imag shapes, ${r.shape} and ${n.shape}, must match in call to tf.complex().`),a.ENGINE.runKernel(o.Complex,{real:r,imag:n})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4hoNq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"inferShape",()=>c),s.export(r,"convertToTensor",()=>f),s.export(r,"convertToTensorArray",()=>h);var a=e("./engine"),o=e("./environment"),l=e("./tensor"),i=e("./types"),u=e("./util"),p=e("./util_base");function c(e,t){let r=e;if((0,u.isTypedArray)(e))return"string"===t?[]:[e.length];if((0,i.isWebGLData)(e)){let t=e.channels||"RGBA";return[e.height,e.width*t.length]}if((0,i.isWebGPUData)(e))return[e.buffer.size/(null==t?4:(0,p.bytesPerElement)(t))];if(!Array.isArray(e))return[];let n=[];for(;Array.isArray(r)||(0,u.isTypedArray)(r)&&"string"!==t;)n.push(r.length),r=r[0];return Array.isArray(e)&&(0,o.env)().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&function e(t,r,n){if(n=n||[],!Array.isArray(t)&&!(0,u.isTypedArray)(t))return void(0,u.assert)(0===r.length,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${r[0]} elements`);(0,u.assert)(r.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${t.length} elements`),(0,u.assert)(t.length===r[0],()=>`Element arr[${n.join("][")}] should have ${r[0]} elements, but has ${t.length} elements`);let s=r.slice(1);for(let r=0;r<t.length;++r)e(t[r],s,n.concat(r))}(e,n,[]),n}function d(e,t,r,n){if("string_or_numeric"!==e){if(null==e)throw Error("Expected dtype cannot be null.");if("numeric"!==e&&e!==t||"numeric"===e&&"string"===t)throw Error(`Argument '${r}' passed to '${n}' must be ${e} tensor, but got ${t} tensor`)}}function f(e,t,r,n="numeric"){if(e instanceof(0,l.getGlobalTensorClass)())return d(n,e.dtype,t,r),e;let s=(0,u.inferDtype)(e);if("string"!==s&&["bool","int32","float32"].indexOf(n)>=0&&(s=n),d(n,s,t,r),null==e||!(0,u.isTypedArray)(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e){let n=null==e?"null":e.constructor.name;throw Error(`Argument '${t}' passed to '${r}' must be a Tensor or TensorLike, but got '${n}'`)}let o=c(e,s);(0,u.isTypedArray)(e)||Array.isArray(e)||(e=[e]);let i="string"!==s?(0,u.toTypedArray)(e,s):(0,u.flatten)(e,[],!0);return a.ENGINE.makeTensor(i,o,s)}function h(e,t,r,n="numeric"){if(!Array.isArray(e))throw Error(`Argument ${t} passed to ${r} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((e,s)=>f(e,`${t}[${s}]`,r,n))}},{"./engine":"gtimw","./environment":"5SiqL","./tensor":"8mprx","./types":"h2NB8","./util":[["assert","2IDj3"],["inferDtype","2IDj3"],["flatten","lLzfH"],["isTypedArray","lLzfH"],["toTypedArray","lLzfH"]],"./util_base":"2IDj3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hyTBr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"OP_SCOPE_SUFFIX",()=>l),s.export(r,"op",()=>i);var a=e("../engine"),o=e("../util");let l="__op";function i(e){let t=Object.keys(e);if(1!==t.length)throw Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let r=t[0],n=e[r];r.endsWith("_")&&(r=r.substring(0,r.length-1));let s=(...e)=>{a.ENGINE.startScope(r);try{let t=n(...e);return(0,o.isPromise)(t)&&console.error("Cannot return a Promise inside of tidy."),a.ENGINE.endScope(t),t}catch(e){throw a.ENGINE.endScope(null),e}};return Object.defineProperty(s,"name",{value:r+=l,configurable:!0}),s}},{"../engine":"gtimw","../util":"2IDj3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gToZD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor",()=>l);var a=e("../tensor_util_env"),o=e("./tensor_ops_util");function l(e,t,r){let n=(0,a.inferShape)(e,r);return(0,o.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"4hoNq","./tensor_ops_util":"f2WcV","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],f2WcV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"makeTensor",()=>i);var a=e("../engine"),o=e("../types"),l=e("../util");function i(e,t,r,n){if(null==n)n=(0,l.inferDtype)(e);else if("complex64"===n)throw Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if((0,o.isWebGPUData)(e)||(0,o.isWebGLData)(e)){if("float32"!==n&&"int32"!==n)throw Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return a.ENGINE.backend.createTensorFromGPUData(e,t||r,n)}if(!(0,l.isTypedArray)(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e)throw Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(null!=t){(0,l.assertNonNegativeIntegerDimensions)(t);let e=(0,l.sizeFromShape)(t),n=(0,l.sizeFromShape)(r);(0,l.assert)(e===n,()=>`Based on the provided shape, [${t}], the tensor should have ${e} values but has ${n}`);for(let e=0;e<r.length;++e){let n=r[e],s=e!==r.length-1||n!==(0,l.sizeFromShape)(t.slice(e));(0,l.assert)(r[e]===t[e]||!s,()=>`Error creating a new Tensor. Inferred shape (${r}) does not match the provided shape (${t}). `)}}return(0,l.isTypedArray)(e)||Array.isArray(e)||(e=[e]),t=t||r,e="string"!==n?(0,l.toTypedArray)(e,n):(0,l.flatten)(e,[],!0),a.ENGINE.makeTensor(e,t,n)}},{"../engine":"gtimw","../types":"h2NB8","../util":[["assert","2IDj3"],["assertNonNegativeIntegerDimensions","2IDj3"],["inferDtype","2IDj3"],["sizeFromShape","2IDj3"],["flatten","lLzfH"],["isTypedArray","lLzfH"],["toTypedArray","lLzfH"]],"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fE5tz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DTYPE_VALUE_SIZE_MAP",()=>a);let a={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7Paji":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CompositeArrayBuffer",()=>o),s.export(r,"search",()=>l);var a=e("../util");class o{static join(e){return new o(e).slice()}constructor(e){if(this.shards=[],this.previousShardIndex=0,null==e||(e instanceof Array||(e=[e]),0===(e=e.map(e=>a.isTypedArray(e)?e.buffer:e)).length))return;this.bufferUniformSize=e[0].byteLength;let t=0;for(let r=0;r<e.length;r++){let n=e[r];r!==e.length-1&&n.byteLength!==this.bufferUniformSize&&(this.bufferUniformSize=void 0);let s=t+n.byteLength;this.shards.push({buffer:n,start:t,end:s}),t=s}0===this.shards.length&&(this.byteLength=0),this.byteLength=this.shards[this.shards.length-1].end}slice(e=0,t=this.byteLength){if(0===this.shards.length||(e=isNaN(Number(e))?0:e,t=isNaN(Number(t))?0:t,e=Math.max(0,e),(t=Math.min(this.byteLength,t))<=e))return new ArrayBuffer(0);let r=this.findShardForByte(e);if(-1===r)throw Error(`Could not find start shard for byte ${e}`);let n=new ArrayBuffer(t-e),s=new Uint8Array(n),a=0;for(let n=r;n<this.shards.length;n++){let r=this.shards[n],o=e+a-r.start,l=a,i=Math.min(t,r.end)-r.start,u=new Uint8Array(r.buffer,o,i-o);if(s.set(u,l),a+=u.length,t<r.end)break}return n}findShardForByte(e){if(0===this.shards.length||e<0||e>=this.byteLength)return -1;if(null!=this.bufferUniformSize)return this.previousShardIndex=Math.floor(e/this.bufferUniformSize),this.previousShardIndex;function t(t){return e<t.start?-1:+(e>=t.end)}if(0===t(this.shards[this.previousShardIndex]))return this.previousShardIndex;let r=l(this.shards,t);return -1===r?-1:(this.previousShardIndex=r,this.previousShardIndex)}}function l(e,t){let r=0,n=e.length;for(;r<=n;){let s=Math.floor((n-r)/2)+r,a=t(e[s]);if(0===a)return s;a<0?n=s:r=s+1}return -1}},{"../util":"lLzfH","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6oj2G":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"enableProdMode",()=>u),s.export(r,"enableDebugMode",()=>p),s.export(r,"disableDeprecationWarnings",()=>c),s.export(r,"deprecationWarn",()=>d),s.export(r,"disposeVariables",()=>f),s.export(r,"engine",()=>h),s.export(r,"memory",()=>m),s.export(r,"profile",()=>g),s.export(r,"tidy",()=>x),s.export(r,"dispose",()=>v),s.export(r,"keep",()=>y),s.export(r,"time",()=>_),s.export(r,"setBackend",()=>b),s.export(r,"ready",()=>k),s.export(r,"getBackend",()=>T),s.export(r,"removeBackend",()=>w),s.export(r,"findBackend",()=>I),s.export(r,"findBackendFactory",()=>j),s.export(r,"registerBackend",()=>C),s.export(r,"backend",()=>N),s.export(r,"setPlatform",()=>S);var a=e("./engine"),o=e("./environment"),l=e("./tensor"),i=e("./tensor_util");function u(){(0,o.env)().set("PROD",!0)}function p(){(0,o.env)().set("DEBUG",!0)}function c(){(0,o.env)().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function d(e){(0,o.env)().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}function f(){a.ENGINE.disposeVariables()}function h(){return a.ENGINE}function m(){return a.ENGINE.memory()}function g(e){return a.ENGINE.profile(e)}function x(e,t){return a.ENGINE.tidy(e,t)}function v(e){(0,i.getTensorsInContainer)(e).forEach(e=>e.dispose())}function y(e){return a.ENGINE.keep(e)}function _(e){return a.ENGINE.time(e)}function b(e){return a.ENGINE.setBackend(e)}function k(){return a.ENGINE.ready()}function T(){return a.ENGINE.backendName}function w(e){a.ENGINE.removeBackend(e)}function I(e){return a.ENGINE.findBackend(e)}function j(e){return a.ENGINE.findBackendFactory(e)}function C(e,t,r=1){return a.ENGINE.registerBackend(e,t,r)}function N(){return a.ENGINE.backend}function S(e,t){(0,o.env)().setPlatform(e,t)}(0,l.setDeprecationWarningFn)(d)},{"./engine":"gtimw","./environment":"5SiqL","./tensor":"8mprx","./tensor_util":"j3qzf","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3BLAK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"IORouterRegistry",()=>a),s.export(r,"registerSaveRouter",()=>o),s.export(r,"registerLoadRouter",()=>l),s.export(r,"getSaveHandlers",()=>i),s.export(r,"getLoadHandlers",()=>u);class a{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return null==a.instance&&(a.instance=new a),a.instance}static registerSaveRouter(e){a.getInstance().saveRouters.push(e)}static registerLoadRouter(e){a.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return a.getHandlers(e,"save")}static getLoadHandlers(e,t){return a.getHandlers(e,"load",t)}static getHandlers(e,t,r){let n=[];return("load"===t?a.getInstance().loadRouters:a.getInstance().saveRouters).forEach(t=>{let s=t(e,r);null!==s&&n.push(s)}),n}}let o=e=>a.registerSaveRouter(e),l=e=>a.registerLoadRouter(e),i=e=>a.getSaveHandlers(e),u=(e,t)=>a.getLoadHandlers(e,t)},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7En5P":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"purgeLocalStorageArtifacts",()=>d),s.export(r,"BrowserLocalStorage",()=>g),s.export(r,"localStorageRouter",()=>x),s.export(r,"browserLocalStorage",()=>v),s.export(r,"BrowserLocalStorageManager",()=>y),e("../flags");var a=e("../environment"),o=e("../util"),l=e("./io_utils"),i=e("./composite_array_buffer"),u=e("./router_registry");let p="tensorflowjs_models",c="info";function d(){if(!(0,a.env)().getBool("IS_BROWSER")||"undefined"==typeof window||void 0===window.localStorage)throw Error("purgeLocalStorageModels() cannot proceed because local storage is unavailable in the current environment.");let e=window.localStorage,t=[];for(let r=0;r<e.length;++r){let n=e.key(r),s=p+"/";if(n.startsWith(s)&&n.length>s.length){e.removeItem(n);let r=m(n);-1===t.indexOf(r)&&t.push(r)}}return t}function f(e){return{info:[p,e,c].join("/"),topology:[p,e,"model_topology"].join("/"),weightSpecs:[p,e,"weight_specs"].join("/"),weightData:[p,e,"weight_data"].join("/"),modelMetadata:[p,e,"model_metadata"].join("/")}}function h(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function m(e){let t=e.split("/");if(t.length<3)throw Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join("/")}class g{constructor(e){if(!(0,a.env)().getBool("IS_BROWSER")||"undefined"==typeof window||void 0===window.localStorage)throw Error("The current environment does not support local storage.");if(this.LS=window.localStorage,null==e||!e)throw Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=f(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),r=JSON.stringify(e.weightSpecs),n=(0,l.getModelArtifactsInfoForJSON)(e),s=i.CompositeArrayBuffer.join(e.weightData);try{this.LS.setItem(this.keys.info,JSON.stringify(n)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,r),this.LS.setItem(this.keys.weightData,(0,l.arrayBufferToBase64String)(s));let a={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:null!=e.signature?e.signature:void 0,userDefinedMetadata:null!=e.userDefinedMetadata?e.userDefinedMetadata:void 0,modelInitializer:null!=e.modelInitializer?e.modelInitializer:void 0,initializerSignature:null!=e.initializerSignature?e.initializerSignature:void 0,trainingConfig:null!=e.trainingConfig?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(a)),{modelArtifactsInfo:n}}catch(e){throw h(this.keys),Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${n.modelTopologyBytes}, weightSpecsBytes=${n.weightSpecsBytes}, weightDataBytes=${n.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(null==e)throw Error(`In local storage, there is no model with name '${this.modelPath}'`);if("JSON"!==e.modelTopologyType)throw Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},r=JSON.parse(this.LS.getItem(this.keys.topology));if(null==r)throw Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=r;let n=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(null==n)throw Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=n;let s=this.LS.getItem(this.keys.modelMetadata);if(null!=s){let e=JSON.parse(s);t.format=e.format,t.generatedBy=e.generatedBy,t.convertedBy=e.convertedBy,null!=e.signature&&(t.signature=e.signature),null!=e.userDefinedMetadata&&(t.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(t.modelInitializer=e.modelInitializer),null!=e.initializerSignature&&(t.initializerSignature=e.initializerSignature),null!=e.trainingConfig&&(t.trainingConfig=e.trainingConfig)}let a=this.LS.getItem(this.keys.weightData);if(null==a)throw Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=(0,l.base64StringToArrayBuffer)(a),t}}g.URL_SCHEME="localstorage://";let x=e=>(0,a.env)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(g.URL_SCHEME)?v(e.slice(g.URL_SCHEME.length)):null;function v(e){return new g(e)}u.IORouterRegistry.registerSaveRouter(x),u.IORouterRegistry.registerLoadRouter(x);class y{constructor(){(0,o.assert)((0,a.env)().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),(0,o.assert)("undefined"==typeof window||void 0!==window.localStorage,()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=p+"/",r="/"+c;for(let n=0;n<this.LS.length;++n){let s=this.LS.key(n);s.startsWith(t)&&s.endsWith(r)&&(e[m(s)]=JSON.parse(this.LS.getItem(s)))}return e}async removeModel(e){var t;let r=f(e=(t=e).startsWith(g.URL_SCHEME)?t.slice(g.URL_SCHEME.length):t);if(null==this.LS.getItem(r.info))throw Error(`Cannot find model at path '${e}'`);let n=JSON.parse(this.LS.getItem(r.info));return h(r),n}}},{"../flags":"5pgCq","../environment":"5SiqL","../util":"2IDj3","./io_utils":"kNa3U","./composite_array_buffer":"7Paji","./router_registry":"3BLAK","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1oviL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ModelStoreManagerRegistry",()=>l),s.export(r,"moveModel",()=>f),s.export(r,"copyModel",()=>d),s.export(r,"removeModel",()=>c),s.export(r,"listModels",()=>p);var a=e("../util"),o=e("./router_registry");class l{constructor(){this.managers={}}static getInstance(){return null==l.instance&&(l.instance=new l),l.instance}static registerManager(e,t){(0,a.assert)(null!=e,()=>"scheme must not be undefined or null."),e.endsWith("://")&&(e=e.slice(0,e.indexOf("://"))),(0,a.assert)(e.length>0,()=>"scheme must not be an empty string.");let r=l.getInstance();(0,a.assert)(null==r.managers[e],()=>`A model store manager is already registered for scheme '${e}'.`),r.managers[e]=t}static getManager(e){let t=l.getInstance().managers[e];if(null==t)throw Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(l.getInstance().managers)}}function i(e){if(-1===e.indexOf("://"))throw Error(`The url string provided does not contain a scheme. Supported schemes are: ${l.getSchemes().join(",")}`);return{scheme:e.split("://")[0],path:e.split("://")[1]}}async function u(e,t,r=!1){(0,a.assert)(e!==t,()=>`Old path and new path are the same: '${e}'`);let n=o.IORouterRegistry.getLoadHandlers(e);(0,a.assert)(n.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),(0,a.assert)(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${e}.`);let s=n[0],p=o.IORouterRegistry.getSaveHandlers(t);(0,a.assert)(p.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),(0,a.assert)(p.length<2,()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`);let c=p[0],d=i(e).scheme,f=i(e).path,h=d===i(e).scheme,m=await s.load();r&&h&&await l.getManager(d).removeModel(f);let g=await c.save(m);return r&&!h&&await l.getManager(d).removeModel(f),g.modelArtifactsInfo}async function p(){let e=l.getSchemes(),t={};for(let r of e){let e=await l.getManager(r).listModels();for(let n in e)t[r+"://"+n]=e[n]}return t}async function c(e){let t=i(e);return l.getManager(t.scheme).removeModel(t.path)}async function d(e,t){return u(e,t,!1)}async function f(e,t){return u(e,t,!0)}},{"../util":"2IDj3","./router_registry":"3BLAK","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iyAJV:[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"getNodeFetch",()=>l),a.export(r,"resetSystemFetch",()=>i),a.export(r,"setSystemFetch",()=>u),a.export(r,"getSystemFetch",()=>p),a.export(r,"PlatformNode",()=>c);var o=e("../environment");let l={importFetch:()=>e("dfcdb939bb56fbb8")};function i(){s=null}function u(e){s=e}function p(){return s}class c{constructor(){this.util=e("3818a9dc927c4605"),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return null!=(0,o.env)().global.fetch?(0,o.env)().global.fetch(e,t):(null==s&&(s=l.importFetch()),s(e,t))}now(){let e=process.hrtime();return 1e3*e[0]+e[1]/1e6}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return 0===e.length?"":new this.util.TextDecoder(t).decode(e)}isTypedArray(e){return this.util.types.isFloat32Array(e)||this.util.types.isInt32Array(e)||this.util.types.isUint8Array(e)||this.util.types.isUint8ClampedArray(e)}}(0,o.env)().get("IS_NODE")&&!(0,o.env)().get("IS_BROWSER")&&(0,o.env)().setPlatform("node",new c)},{"../environment":"5SiqL",dfcdb939bb56fbb8:"1arHq","3818a9dc927c4605":"1arHq","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1arHq":[function(e,t,r,n){},{}],"4NIGp":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"buffer",()=>l);var a=e("../tensor"),o=e("../util");function l(e,t="float32",r){return t=t||"float32",o.assertNonNegativeIntegerDimensions(e),new(0,a.TensorBuffer)(e,t,r)}},{"../tensor":"8mprx","../util":"lLzfH","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hLsoh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cast",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({cast_:function(e,t){let r=(0,l.convertToTensor)(e,"x","cast");if(!i.isValidDtype(t))throw Error(`Failed to cast to unknown dtype ${t}`);if("string"===t&&"string"!==r.dtype||"string"!==t&&"string"===r.dtype)throw Error("Only strings can be casted to strings");return a.ENGINE.runKernel(o.Cast,{x:r},{dtype:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],etnty:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clone",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({clone_:function(e){let t=(0,l.convertToTensor)(e,"x","clone","string_or_numeric");return a.ENGINE.runKernel(o.Identity,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lDGsR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t=!1){console.log(e.toString(t))}s.defineInteropFlag(r),s.export(r,"print",()=>a)},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],arz3F:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"registerOptimizers",()=>h);var a=e("./adadelta_optimizer"),o=e("./adagrad_optimizer"),l=e("./adam_optimizer"),i=e("./adamax_optimizer"),u=e("./momentum_optimizer"),p=e("./rmsprop_optimizer"),c=e("./sgd_optimizer"),d=e("../serialization");let f=[a.AdadeltaOptimizer,o.AdagradOptimizer,l.AdamOptimizer,i.AdamaxOptimizer,u.MomentumOptimizer,p.RMSPropOptimizer,c.SGDOptimizer];function h(){for(let e of f)(0,d.registerClass)(e)}},{"./adadelta_optimizer":"lTgzp","./adagrad_optimizer":"8yQ7m","./adam_optimizer":"22tKw","./adamax_optimizer":"9PvDa","./momentum_optimizer":"dxwSK","./rmsprop_optimizer":"4HtoB","./sgd_optimizer":"2FFC7","../serialization":"a58xw","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lTgzp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdadeltaOptimizer",()=>h);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/div"),u=e("../ops/mul"),p=e("../ops/ops"),c=e("../ops/square"),d=e("../ops/zeros_like"),f=e("./optimizer");class h extends f.Optimizer{static get className(){return"Adadelta"}constructor(e,t,r=null){super(),this.learningRate=e,this.rho=t,this.epsilon=r,this.accumulatedGrads=[],this.accumulatedUpdates=[],null==r&&(this.epsilon=a.ENGINE.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=a.ENGINE.registeredVariables[t];null==this.accumulatedGrads[r]&&(this.accumulatedGrads[r]={originalName:`${t}/accum_grad`,variable:(0,o.tidy)(()=>(0,d.zerosLike)(n).variable(!1))}),null==this.accumulatedUpdates[r]&&(this.accumulatedUpdates[r]={originalName:`${t}/accum_var`,variable:(0,o.tidy)(()=>(0,d.zerosLike)(n).variable(!1))});let s=Array.isArray(e)?e[r].tensor:e[t];if(null==s)return;let f=this.accumulatedGrads[r].variable,h=this.accumulatedUpdates[r].variable;(0,o.tidy)(()=>{let e=(0,l.add)((0,u.mul)(f,this.rho),(0,u.mul)((0,c.square)(s),1-this.rho)),t=(0,u.mul)((0,i.div)((0,p.sqrt)((0,l.add)(h,this.epsilon)),(0,p.sqrt)((0,l.add)(f,this.epsilon))),s),r=(0,l.add)((0,u.mul)(h,this.rho),(0,u.mul)((0,c.square)(t),1-this.rho));f.assign(e),h.assign(r);let a=(0,l.add)((0,u.mul)(t,-this.learningRate),n);n.assign(a)})}),this.incrementIterations()}dispose(){null!=this.accumulatedUpdates&&((0,o.dispose)(this.accumulatedGrads.map(e=>e.variable)),(0,o.dispose)(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){let t=(e=await this.extractIterations(e)).length/2;this.accumulatedGrads=e.slice(0,t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})),this.accumulatedUpdates=e.slice(t,2*t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}},{"../engine":"gtimw","../globals":"6oj2G","../ops/add":"hFQoV","../ops/div":"41SAh","../ops/mul":"1OlNG","../ops/ops":"fp4cF","../ops/square":"kpUEg","../ops/zeros_like":"bDxUb","./optimizer":"5vw1h","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hFQoV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"add",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({add_:function(e,t){let r=(0,i.convertToTensor)(e,"a","add"),n=(0,i.convertToTensor)(t,"b","add");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Add,s)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"41SAh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"div",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./floorDiv");let p=(0,e("./operation").op)({div_:function(e,t){let r=(0,i.convertToTensor)(e,"a","div"),n=(0,i.convertToTensor)(t,"b","div");if([r,n]=(0,l.makeTypesMatch)(r,n),"int32"===r.dtype&&"int32"===n.dtype)return(0,u.floorDiv)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.RealDiv,s,{})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./floorDiv":"7OkXF","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7OkXF":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floorDiv",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({floorDiv_:function(e,t){let r=(0,i.convertToTensor)(e,"a","floorDiv"),n=(0,i.convertToTensor)(t,"b","floorDiv");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.FloorDiv,s)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1OlNG":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mul",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({mul_:function(e,t){let r=(0,i.convertToTensor)(e,"a","mul"),n=(0,i.convertToTensor)(t,"b","mul");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Multiply,s)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fp4cF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sqrt",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sqrt_:function(e){let t=(0,l.convertToTensor)(e,"x","sqrt","float32");return a.ENGINE.runKernel(o.Sqrt,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kpUEg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"square",()=>l);var a=e("../engine"),o=e("../tensor_util_env");let l=(0,e("./operation").op)({square_:function(e){let t=(0,o.convertToTensor)(e,"x","square");return a.ENGINE.runKernel("Square",{x:t},{})}})},{"../engine":"gtimw","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bDxUb:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zerosLike",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({zerosLike_:function(e){let t=(0,l.convertToTensor)(e,"x","zerosLike");return a.ENGINE.runKernel(o.ZerosLike,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5vw1h":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Optimizer",()=>u);var a=e("../globals"),o=e("../gradients"),l=e("../ops/ops"),i=e("../serialization");class u extends i.Serializable{minimize(e,t=!1,r){let{value:n,grads:s}=this.computeGradients(e,r);if(null!=r){let e=r.map(e=>({name:e.name,tensor:s[e.name]}));this.applyGradients(e)}else this.applyGradients(s);return((0,a.dispose)(s),t)?n:(n.dispose(),null)}get iterations(){return null==this.iterations_&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return(0,o.variableGrads)(e,t)}dispose(){null!=this.iterations_&&(0,a.dispose)(this.iterations_)}async saveIterations(){return null==this.iterations_&&(this.iterations_=0),{name:"iter",tensor:(0,l.scalar)(this.iterations_,"int32")}}async getWeights(){throw Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw 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(u,Symbol.hasInstance,{value:e=>null!=e.minimize&&null!=e.computeGradients&&null!=e.applyGradients})},{"../globals":"6oj2G","../gradients":"3aQK6","../ops/ops":"forpx","../serialization":"a58xw","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3aQK6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"customGrad",()=>h),s.export(r,"variableGrads",()=>f),s.export(r,"valueAndGrad",()=>c),s.export(r,"valueAndGrads",()=>d),s.export(r,"grad",()=>u),s.export(r,"grads",()=>p);var a=e("./engine"),o=e("./tensor"),l=e("./tensor_util_env"),i=e("./util");function u(e){return i.assert(i.isFunction(e),()=>"The f passed in grad(f) must be a function"),(t,r)=>{let n=(0,l.convertToTensor)(t,"x","tf.grad","string_or_numeric"),s=null!=r?(0,l.convertToTensor)(r,"dy","tf.grad"):null;return a.ENGINE.tidy(()=>{let{value:t,grads:r}=a.ENGINE.gradients(()=>e(n),[n],s);return null!=s&&i.assertShapesMatch(t.shape,s.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),m(r),r[0]})}}function p(e){return i.assert(i.isFunction(e),()=>"The f passed in grads(f) must be a function"),(t,r)=>{i.assert(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let n=(0,l.convertToTensorArray)(t,"args","tf.grads","string_or_numeric"),s=null!=r?(0,l.convertToTensor)(r,"dy","tf.grads"):null;return a.ENGINE.tidy(()=>{let{value:t,grads:r}=a.ENGINE.gradients(()=>e(...n),n,s);return null!=s&&i.assertShapesMatch(t.shape,s.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),m(r),r})}}function c(e){return i.assert(i.isFunction(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,r)=>{i.assert(t instanceof o.Tensor,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),i.assert(null==r||r instanceof o.Tensor,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:n,value:s}=a.ENGINE.gradients(()=>e(t),[t],r);return m(n),{grad:n[0],value:s}}}function d(e){return i.assert(i.isFunction(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,r)=>{i.assert(Array.isArray(t)&&t.every(e=>e instanceof o.Tensor),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),i.assert(null==r||r instanceof o.Tensor,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let n=a.ENGINE.gradients(()=>e(...t),t,r);return null!=r&&i.assertShapesMatch(n.value.shape,r.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),m(n.grads),n}}function f(e,t){i.assert(i.isFunction(e),()=>"The f passed in variableGrads(f) must be a function"),i.assert(null==t||Array.isArray(t)&&t.every(e=>e instanceof o.Variable),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let r=null!=t;if(!r)for(let e in t=[],a.ENGINE.registeredVariables)t.push(a.ENGINE.registeredVariables[e]);let n=r?t.filter(e=>!e.trainable):null,s=t.length;t=t.filter(e=>e.trainable),i.assert(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${s} variables is trainable.`);let{value:l,grads:u}=a.ENGINE.gradients(e,t,null,!0);i.assert(u.some(e=>null!=e),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),i.assert(0===l.rank,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${l.rank} tensor`);let p={};return t.forEach((e,t)=>{null!=u[t]&&(p[e.name]=u[t])}),null!=n&&n.forEach(e=>p[e.name]=null),{value:l,grads:p}}function h(e){return a.ENGINE.customGrad(e)}function m(e){if(e.filter(e=>null==e).length>0)throw 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.`)}},{"./engine":"gtimw","./tensor":"8mprx","./tensor_util_env":"4hoNq","./util":"lLzfH","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],forpx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scalar",()=>l);var a=e("../util"),o=e("./tensor_ops_util");function l(e,t){if(((0,a.isTypedArray)(e)&&"string"!==t||Array.isArray(e))&&"complex64"!==t)throw Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if("string"===t&&(0,a.isTypedArray)(e)&&!(e instanceof Uint8Array))throw Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return(0,o.makeTensor)(e,[],[],t)}},{"../util":"lLzfH","./tensor_ops_util":"f2WcV","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],a58xw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Serializable",()=>i),s.export(r,"SerializationMap",()=>u),s.export(r,"registerClass",()=>p),s.export(r,"getRegisteredName",()=>c);var a=e("./util");let o=new Map,l=new Map;class i{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class u{constructor(){this.classNameMap={}}static getMap(){return null==u.instance&&(u.instance=new u),u.instance}static register(e){u.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function p(e,t,r){(0,a.assert)(null!=e.className,()=>"Class being registered does not have the static className property defined."),(0,a.assert)("string"==typeof e.className,()=>"className is required to be a string, but got type "+typeof e.className),(0,a.assert)(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),void 0===t&&(t="Custom"),void 0===r&&(r=e.className);let n=t+">"+r;return u.register(e),o.set(n,e),l.set(e,n),e}function c(e){return l.has(e)?l.get(e):e.className}},{"./util":"2IDj3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8yQ7m":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdagradOptimizer",()=>h);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/div"),u=e("../ops/fill"),p=e("../ops/mul"),c=e("../ops/sqrt"),d=e("../ops/square"),f=e("./optimizer");class h extends f.Optimizer{static get className(){return"Adagrad"}constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=a.ENGINE.registeredVariables[t];null==this.accumulatedGrads[r]&&(this.accumulatedGrads[r]={originalName:`${t}/accumulator`,variable:(0,o.tidy)(()=>(0,u.fill)(n.shape,this.initialAccumulatorValue).variable(!1))});let s=Array.isArray(e)?e[r].tensor:e[t];if(null==s)return;let f=this.accumulatedGrads[r].variable;(0,o.tidy)(()=>{let e=(0,l.add)(f,(0,d.square)(s));f.assign(e);let t=(0,l.add)((0,p.mul)((0,i.div)(s,(0,c.sqrt)((0,l.add)(e,a.ENGINE.backend.epsilon()))),-this.learningRate),n);n.assign(t)})}),this.incrementIterations()}dispose(){null!=this.accumulatedGrads&&(0,o.dispose)(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e),this.accumulatedGrads=e.map(e=>({originalName:e.name,variable:e.tensor.variable(!1)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}},{"../engine":"gtimw","../globals":"6oj2G","../ops/add":"hFQoV","../ops/div":"41SAh","../ops/fill":"8mmbD","../ops/mul":"1OlNG","../ops/sqrt":"fp4cF","../ops/square":"kpUEg","./optimizer":"5vw1h","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8mmbD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fill",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../util"),i=e("../util_base");function u(e,t,r){(0,i.assertNonNegativeIntegerDimensions)(e),r=r||(0,l.inferDtype)(t);let n={shape:e,value:t,dtype:r};return a.ENGINE.runKernel(o.Fill,{},n)}},{"../engine":"gtimw","../kernel_names":"agfs7","../util":"2IDj3","../util_base":"2IDj3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"22tKw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdamOptimizer",()=>x);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/div"),u=e("../ops/mul"),p=e("../ops/pow"),c=e("../ops/scalar"),d=e("../ops/sqrt"),f=e("../ops/square"),h=e("../ops/sub"),m=e("../ops/zeros_like"),g=e("./optimizer");class x extends g.Optimizer{static get className(){return"Adam"}constructor(e,t,r,n=null){super(),this.learningRate=e,this.beta1=t,this.beta2=r,this.epsilon=n,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],(0,o.tidy)(()=>{this.accBeta1=(0,c.scalar)(t).variable(),this.accBeta2=(0,c.scalar)(r).variable()}),null==n&&(this.epsilon=a.ENGINE.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(e=>e.name):Object.keys(e);(0,o.tidy)(()=>{let r=(0,h.sub)(1,this.accBeta1),n=(0,h.sub)(1,this.accBeta2);t.forEach((t,s)=>{let p=a.ENGINE.registeredVariables[t];null==this.accumulatedFirstMoment[s]&&(this.accumulatedFirstMoment[s]={originalName:`${t}/m`,variable:(0,o.tidy)(()=>(0,m.zerosLike)(p).variable(!1))}),null==this.accumulatedSecondMoment[s]&&(this.accumulatedSecondMoment[s]={originalName:`${t}/v`,variable:(0,o.tidy)(()=>(0,m.zerosLike)(p).variable(!1))});let c=Array.isArray(e)?e[s].tensor:e[t];if(null==c)return;let h=this.accumulatedFirstMoment[s].variable,g=this.accumulatedSecondMoment[s].variable,x=(0,l.add)((0,u.mul)(h,this.beta1),(0,u.mul)(c,1-this.beta1)),v=(0,l.add)((0,u.mul)(g,this.beta2),(0,u.mul)((0,f.square)(c),1-this.beta2)),y=(0,i.div)(x,r),_=(0,i.div)(v,n);h.assign(x),g.assign(v);let b=(0,l.add)((0,u.mul)((0,i.div)(y,(0,l.add)((0,d.sqrt)(_),this.epsilon)),-this.learningRate),p);p.assign(b)}),this.accBeta1.assign((0,u.mul)(this.accBeta1,this.beta1)),this.accBeta2.assign((0,u.mul)(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&(0,o.dispose)(this.accumulatedFirstMoment.map(e=>e.variable)),null!=this.accumulatedSecondMoment&&(0,o.dispose)(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e),(0,o.tidy)(()=>{this.accBeta1.assign((0,p.pow)(this.beta1,this.iterations_+1)),this.accBeta2.assign((0,p.pow)(this.beta2,this.iterations_+1))});let t=e.length/2;this.accumulatedFirstMoment=e.slice(0,t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})),this.accumulatedSecondMoment=e.slice(t,2*t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}}},{"../engine":"gtimw","../globals":"6oj2G","../ops/add":"hFQoV","../ops/div":"41SAh","../ops/mul":"1OlNG","../ops/pow":"5RrXs","../ops/scalar":"forpx","../ops/sqrt":"fp4cF","../ops/square":"kpUEg","../ops/sub":"AdEY0","../ops/zeros_like":"bDxUb","./optimizer":"5vw1h","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5RrXs":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pow",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({pow_:function(e,t){let r=(0,i.convertToTensor)(e,"base","pow"),n=(0,i.convertToTensor)(t,"exp","pow");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Pow,s)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],AdEY0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sub",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({sub_:function(e,t){let r=(0,i.convertToTensor)(e,"a","sub"),n=(0,i.convertToTensor)(t,"b","sub");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Sub,s)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9PvDa":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdamaxOptimizer",()=>g);var a=e("../engine"),o=e("../globals"),l=e("../ops/abs"),i=e("../ops/add"),u=e("../ops/div"),p=e("../ops/maximum"),c=e("../ops/mul"),d=e("../ops/scalar"),f=e("../ops/sub"),h=e("../ops/zeros_like"),m=e("./optimizer");class g extends m.Optimizer{static get className(){return"Adamax"}constructor(e,t,r,n=null,s=0){super(),this.learningRate=e,this.beta1=t,this.beta2=r,this.epsilon=n,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],(0,o.tidy)(()=>{this.iteration=(0,d.scalar)(0).variable(),this.accBeta1=(0,d.scalar)(t).variable()}),null==n&&(this.epsilon=a.ENGINE.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(e=>e.name):Object.keys(e);(0,o.tidy)(()=>{let r=(0,f.sub)(1,this.accBeta1),n=(0,u.div)(-this.learningRate,(0,i.add)((0,c.mul)(this.iteration,this.decay),1));t.forEach((t,s)=>{let o=a.ENGINE.registeredVariables[t];null==this.accumulatedFirstMoment[s]&&(this.accumulatedFirstMoment[s]={originalName:`${t}/m`,variable:(0,h.zerosLike)(o).variable(!1)}),null==this.accumulatedWeightedInfNorm[s]&&(this.accumulatedWeightedInfNorm[s]={originalName:`${t}/v`,variable:(0,h.zerosLike)(o).variable(!1)});let d=Array.isArray(e)?e[s].tensor:e[t];if(null==d)return;let f=this.accumulatedFirstMoment[s].variable,m=this.accumulatedWeightedInfNorm[s].variable,g=(0,i.add)((0,c.mul)(f,this.beta1),(0,c.mul)(d,1-this.beta1)),x=(0,c.mul)(m,this.beta2),v=(0,l.abs)(d),y=(0,p.maximum)(x,v);f.assign(g),m.assign(y);let _=(0,i.add)((0,c.mul)((0,u.div)(n,r),(0,u.div)(g,(0,i.add)(y,this.epsilon))),o);o.assign(_)}),this.iteration.assign((0,i.add)(this.iteration,1)),this.accBeta1.assign((0,c.mul)(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&(0,o.dispose)(this.accumulatedFirstMoment.map(e=>e.variable)),null!=this.accumulatedWeightedInfNorm&&(0,o.dispose)(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw 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)}}},{"../engine":"gtimw","../globals":"6oj2G","../ops/abs":"14Cig","../ops/add":"hFQoV","../ops/div":"41SAh","../ops/maximum":"88xph","../ops/mul":"1OlNG","../ops/scalar":"forpx","../ops/sub":"AdEY0","../ops/zeros_like":"bDxUb","./optimizer":"5vw1h","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"14Cig":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"abs",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({abs_:function(e){let t=(0,l.convertToTensor)(e,"x","abs");return"complex64"===t.dtype?a.ENGINE.runKernel(o.ComplexAbs,{x:t}):a.ENGINE.runKernel(o.Abs,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"88xph":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maximum",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util"),p=e("./cast");let c=(0,e("./operation").op)({maximum_:function(e,t){let r=(0,i.convertToTensor)(e,"a","maximum"),n=(0,i.convertToTensor)(t,"b","maximum");[r,n]=(0,l.makeTypesMatch)(r,n),"bool"===r.dtype&&(r=(0,p.cast)(r,"int32"),n=(0,p.cast)(n,"int32")),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Maximum,s)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./broadcast_util":"5OjHc","./cast":"hLsoh","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5OjHc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){let r=e.length,n=[];for(let s=0;s<r;s++){let a=r-1-s,o=e[a]||1;(t[t.length-1-s]||1)>1&&1===o&&n.unshift(a)}return n}function o(e,t){let r=[];for(let n=0;n<t.length;n++){let s=e[e.length-n-1],a=t.length-n-1,o=t[a];(null==s||1===s&&o>1)&&r.unshift(a)}return r}function l(e,t){let r=Math.max(e.length,t.length),n=Array(r);for(let s=0;s<r;s++){let a=e[e.length-s-1];null==a&&(a=1);let o=t[t.length-s-1];if(null==o&&(o=1),1===a)n[r-s-1]=o;else if(1===o)n[r-s-1]=a;else if(a!==o)throw Error(`Operands could not be broadcast together with shapes ${e} and ${t}.`);else n[r-s-1]=a}return n}s.defineInteropFlag(r),s.export(r,"getBroadcastDims",()=>a),s.export(r,"getReductionAxes",()=>o),s.export(r,"assertAndGetBroadcastShape",()=>l)},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dxwSK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MomentumOptimizer",()=>d);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/mul"),u=e("../ops/scalar"),p=e("../ops/zeros_like"),c=e("./sgd_optimizer");class d extends c.SGDOptimizer{static get className(){return"Momentum"}constructor(e,t,r=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=r,this.accumulations=[],this.m=(0,u.scalar)(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=a.ENGINE.registeredVariables[t];null==this.accumulations[r]&&(this.accumulations[r]={originalName:`${t}/momentum`,variable:(0,o.tidy)(()=>(0,p.zerosLike)(n).variable(!1))});let s=this.accumulations[r].variable,u=Array.isArray(e)?e[r].tensor:e[t];null!=u&&(0,o.tidy)(()=>{let e,t=(0,l.add)((0,i.mul)(this.m,s),u);e=this.useNesterov?(0,l.add)((0,i.mul)(this.c,(0,l.add)(u,(0,i.mul)(t,this.m))),n):(0,l.add)((0,i.mul)(this.c,t),n),s.assign(t),n.assign(e)})}),this.incrementIterations()}dispose(){this.m.dispose(),null!=this.accumulations&&(0,o.dispose)(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e),this.accumulations=e.map(e=>({originalName:e.name,variable:e.tensor.variable(!1)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}},{"../engine":"gtimw","../globals":"6oj2G","../ops/add":"hFQoV","../ops/mul":"1OlNG","../ops/scalar":"forpx","../ops/zeros_like":"bDxUb","./sgd_optimizer":"2FFC7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2FFC7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SGDOptimizer",()=>c);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/mul"),u=e("../ops/scalar"),p=e("./optimizer");class c extends p.Optimizer{static get className(){return"SGD"}constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=Array.isArray(e)?e[r].tensor:e[t];if(null==n)return;let s=a.ENGINE.registeredVariables[t];(0,o.tidy)(()=>{let e=(0,l.add)((0,i.mul)(this.c,n),s);s.assign(e)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=(0,o.keep)((0,u.scalar)(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(0!==(e=await this.extractIterations(e)).length)throw Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}},{"../engine":"gtimw","../globals":"6oj2G","../ops/add":"hFQoV","../ops/mul":"1OlNG","../ops/scalar":"forpx","./optimizer":"5vw1h","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4HtoB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"RMSPropOptimizer",()=>m);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/div"),u=e("../ops/mul"),p=e("../ops/sqrt"),c=e("../ops/square"),d=e("../ops/sub"),f=e("../ops/zeros_like"),h=e("./optimizer");class m extends h.Optimizer{static get className(){return"RMSProp"}constructor(e,t=.9,r=0,n=null,s=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=r,this.epsilon=n,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,null==n&&(this.epsilon=a.ENGINE.backend.epsilon()),null==e)throw Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=a.ENGINE.registeredVariables[t];null==this.accumulatedMeanSquares[r]&&(this.accumulatedMeanSquares[r]={originalName:`${t}/rms`,variable:(0,o.tidy)(()=>(0,f.zerosLike)(n).variable(!1))}),null==this.accumulatedMoments[r]&&(this.accumulatedMoments[r]={originalName:`${t}/momentum`,variable:(0,o.tidy)(()=>(0,f.zerosLike)(n).variable(!1))}),null==this.accumulatedMeanGrads[r]&&this.centered&&(this.accumulatedMeanGrads[r]={originalName:`${t}/mg`,variable:(0,o.tidy)(()=>(0,f.zerosLike)(n).variable(!1))});let s=Array.isArray(e)?e[r].tensor:e[t];if(null==s)return;let h=this.accumulatedMeanSquares[r].variable,m=this.accumulatedMoments[r].variable;(0,o.tidy)(()=>{let e=(0,l.add)((0,u.mul)(h,this.decay),(0,u.mul)((0,c.square)(s),1-this.decay));if(this.centered){let t=this.accumulatedMeanGrads[r].variable,a=(0,l.add)((0,u.mul)(t,this.decay),(0,u.mul)(s,1-this.decay)),o=(0,i.div)((0,u.mul)(s,this.learningRate),(0,p.sqrt)((0,d.sub)(e,(0,l.add)((0,c.square)(a),this.epsilon)))),f=(0,l.add)((0,u.mul)(m,this.momentum),o);h.assign(e),t.assign(a),m.assign(f);let g=(0,d.sub)(n,f);n.assign(g)}else{let e=(0,l.add)((0,u.mul)(h,this.decay),(0,u.mul)((0,c.square)(s),1-this.decay)),t=(0,l.add)((0,u.mul)(m,this.momentum),(0,i.div)((0,u.mul)(s,this.learningRate),(0,p.sqrt)((0,l.add)(e,this.epsilon))));h.assign(e),m.assign(t);let r=(0,d.sub)(n,t);n.assign(r)}})}),this.incrementIterations()}dispose(){null!=this.accumulatedMeanSquares&&(0,o.dispose)(this.accumulatedMeanSquares.map(e=>e.variable)),null!=this.accumulatedMeanGrads&&this.centered&&(0,o.dispose)(this.accumulatedMeanGrads.map(e=>e.variable)),null!=this.accumulatedMoments&&(0,o.dispose)(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(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2;this.accumulatedMeanSquares=e.slice(0,t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})),this.accumulatedMoments=e.slice(t,2*t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})),this.centered&&(this.accumulatedMeanGrads=e.slice(2*t,3*t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}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)}}},{"../engine":"gtimw","../globals":"6oj2G","../ops/add":"hFQoV","../ops/div":"41SAh","../ops/mul":"1OlNG","../ops/sqrt":"fp4cF","../ops/square":"kpUEg","../ops/sub":"AdEY0","../ops/zeros_like":"bDxUb","./optimizer":"5vw1h","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dIklW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdadeltaOptimizer",()=>x.AdadeltaOptimizer),s.export(r,"AdagradOptimizer",()=>v.AdagradOptimizer),s.export(r,"AdamOptimizer",()=>y.AdamOptimizer),s.export(r,"AdamaxOptimizer",()=>_.AdamaxOptimizer),s.export(r,"MomentumOptimizer",()=>b.MomentumOptimizer),s.export(r,"Optimizer",()=>k.Optimizer),s.export(r,"OptimizerConstructors",()=>T.OptimizerConstructors),s.export(r,"RMSPropOptimizer",()=>w.RMSPropOptimizer),s.export(r,"SGDOptimizer",()=>I.SGDOptimizer),s.export(r,"Tensor",()=>j.Tensor),s.export(r,"TensorBuffer",()=>j.TensorBuffer),s.export(r,"Variable",()=>j.Variable),s.export(r,"Rank",()=>C.Rank),s.export(r,"sumOutType",()=>C.sumOutType),s.export(r,"upcastType",()=>C.upcastType),s.export(r,"Reduction",()=>S.Reduction),s.export(r,"customGrad",()=>R.customGrad),s.export(r,"grad",()=>R.grad),s.export(r,"grads",()=>R.grads),s.export(r,"valueAndGrad",()=>R.valueAndGrad),s.export(r,"valueAndGrads",()=>R.valueAndGrads),s.export(r,"variableGrads",()=>R.variableGrads),s.export(r,"Environment",()=>D.Environment),s.export(r,"env",()=>D.env),s.export(r,"ENV",()=>D.ENV),s.export(r,"nextFrame",()=>P.nextFrame),s.export(r,"KernelBackend",()=>B.KernelBackend),s.export(r,"DataStorage",()=>B.DataStorage),s.export(r,"version_core",()=>g.version),s.export(r,"browser",()=>i),s.export(r,"io",()=>a),s.export(r,"math",()=>o),s.export(r,"serialization",()=>d),s.export(r,"test_util",()=>h),s.export(r,"util",()=>m),s.export(r,"backend_util",()=>$),s.export(r,"broadcast_util",()=>l),s.export(r,"tensor_util",()=>f),s.export(r,"slice_util",()=>c),s.export(r,"gather_util",()=>u),s.export(r,"scatter_util",()=>p),s.export(r,"device_util",()=>M),s.export(r,"kernel_impls",()=>O);var a=e("./io/io"),o=e("./math"),l=e("./ops/broadcast_util"),i=e("./ops/browser"),u=e("./ops/gather_nd_util"),p=e("./ops/scatter_nd_util"),c=e("./ops/slice_util"),d=e("./serialization"),f=e("./tensor_util"),h=e("./test_util"),m=e("./util"),g=e("./version"),x=e("./optimizers/adadelta_optimizer"),v=e("./optimizers/adagrad_optimizer"),y=e("./optimizers/adam_optimizer"),_=e("./optimizers/adamax_optimizer"),b=e("./optimizers/momentum_optimizer"),k=e("./optimizers/optimizer"),T=e("./optimizers/optimizer_constructors"),w=e("./optimizers/rmsprop_optimizer"),I=e("./optimizers/sgd_optimizer"),j=e("./tensor"),C=e("./types"),N=e("./ops/ops");s.exportAll(N,r);var S=e("./ops/loss_ops_utils"),E=e("./train");s.exportAll(E,r);var A=e("./globals");s.exportAll(A,r);var F=e("./kernel_registry");s.exportAll(F,r);var R=e("./gradients"),D=e("./environment"),P=e("./browser_util"),$=e("./backends/backend_util"),M=e("./device_util"),O=e("./backends/kernel_impls"),B=e("./backends/backend"),q=e("./kernel_names");s.exportAll(q,r)},{"./io/io":"2wWeP","./math":"5jmWc","./ops/broadcast_util":"5OjHc","./ops/browser":"80XSl","./ops/gather_nd_util":"cHYcB","./ops/scatter_nd_util":"fHXmM","./ops/slice_util":"6gLLd","./serialization":"a58xw","./tensor_util":"j3qzf","./test_util":"2NLFb","./util":"lLzfH","./version":"bAUyn","./optimizers/adadelta_optimizer":"lTgzp","./optimizers/adagrad_optimizer":"8yQ7m","./optimizers/adam_optimizer":"22tKw","./optimizers/adamax_optimizer":"9PvDa","./optimizers/momentum_optimizer":"dxwSK","./optimizers/optimizer":"5vw1h","./optimizers/optimizer_constructors":"d3oPN","./optimizers/rmsprop_optimizer":"4HtoB","./optimizers/sgd_optimizer":"2FFC7","./tensor":"8mprx","./types":"h2NB8","./ops/ops":"fwPwu","./ops/loss_ops_utils":"fL8nB","./train":"eGNXM","./globals":"6oj2G","./kernel_registry":"a4k06","./gradients":"3aQK6","./environment":"5SiqL","./browser_util":"4yPRe","./backends/backend_util":"jev91","./device_util":"hqWrg","./backends/kernel_impls":"dPoeu","./backends/backend":"3aHqT","./kernel_names":"agfs7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2wWeP":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"copyModel",()=>d.copyModel),s.export(r,"listModels",()=>d.listModels),s.export(r,"moveModel",()=>d.moveModel),s.export(r,"removeModel",()=>d.removeModel),s.export(r,"browserFiles",()=>a.browserFiles),s.export(r,"browserHTTPRequest",()=>o.browserHTTPRequest),s.export(r,"CompositeArrayBuffer",()=>c.CompositeArrayBuffer),s.export(r,"concatenateArrayBuffers",()=>l.concatenateArrayBuffers),s.export(r,"decodeWeights",()=>l.decodeWeights),s.export(r,"decodeWeightsStream",()=>l.decodeWeightsStream),s.export(r,"encodeWeights",()=>l.encodeWeights),s.export(r,"fromMemory",()=>i.fromMemory),s.export(r,"fromMemorySync",()=>i.fromMemorySync),s.export(r,"getLoadHandlers",()=>u.getLoadHandlers),s.export(r,"getModelArtifactsForJSON",()=>l.getModelArtifactsForJSON),s.export(r,"getModelArtifactsForJSONSync",()=>l.getModelArtifactsForJSONSync),s.export(r,"getModelArtifactsInfoForJSON",()=>l.getModelArtifactsInfoForJSON),s.export(r,"getSaveHandlers",()=>u.getSaveHandlers),s.export(r,"getWeightSpecs",()=>l.getWeightSpecs),s.export(r,"http",()=>o.http),s.export(r,"isHTTPScheme",()=>o.isHTTPScheme),s.export(r,"loadWeights",()=>p.loadWeights),s.export(r,"registerLoadRouter",()=>u.registerLoadRouter),s.export(r,"registerSaveRouter",()=>u.registerSaveRouter),s.export(r,"weightsLoaderFactory",()=>p.weightsLoaderFactory),s.export(r,"withSaveHandler",()=>i.withSaveHandler),s.export(r,"withSaveHandlerSync",()=>i.withSaveHandlerSync),e("./indexed_db"),e("./local_storage");var a=e("./browser_files"),o=e("./http"),l=e("./io_utils"),i=e("./passthrough"),u=e("./router_registry"),p=e("./weights_loader"),c=e("./composite_array_buffer"),d=e("./model_management")},{"./indexed_db":"2SgWK","./local_storage":"7En5P","./browser_files":"4vqO8","./http":"ih0O9","./io_utils":"kNa3U","./passthrough":"fcVAR","./router_registry":"3BLAK","./weights_loader":"Po3bK","./composite_array_buffer":"7Paji","./model_management":"1oviL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4vqO8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"BrowserDownloads",()=>p),s.export(r,"browserDownloadsRouter",()=>d),s.export(r,"browserDownloads",()=>f),s.export(r,"browserFiles",()=>h),e("../flags");var a=e("../environment"),o=e("./io_utils"),l=e("./router_registry"),i=e("./composite_array_buffer");function u(e){return new Promise(e=>setTimeout(e)).then(e)}class p{constructor(e){if(!(0,a.env)().getBool("IS_BROWSER"))throw Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(p.URL_SCHEME)&&(e=e.slice(p.URL_SCHEME.length)),(null==e||0===e.length)&&(e="model"),this.modelJsonFileName=e+".json",this.weightDataFileName=e+".weights.bin"}async save(e){if("undefined"==typeof document)throw Error("Browser downloads are not supported in this environment since `document` is not present");let t=i.CompositeArrayBuffer.join(e.weightData),r=window.URL.createObjectURL(new Blob([t],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let t=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],n=(0,o.getModelJSONForModelArtifacts)(e,t),s=window.URL.createObjectURL(new Blob([JSON.stringify(n)],{type:"application/json"})),a=null==this.modelJsonAnchor?document.createElement("a"):this.modelJsonAnchor;if(a.download=this.modelJsonFileName,a.href=s,await u(()=>a.dispatchEvent(new MouseEvent("click"))),null!=e.weightData){let e=null==this.weightDataAnchor?document.createElement("a"):this.weightDataAnchor;e.download=this.weightDataFileName,e.href=r,await u(()=>e.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:(0,o.getModelArtifactsInfoForJSON)(e)}}}}p.URL_SCHEME="downloads://";class c{constructor(e){if(null==e||e.length<1)throw 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 r=new FileReader;r.onload=r=>{let n=JSON.parse(r.target.result),s=n.modelTopology;null==s?t(Error(`modelTopology field is missing from file ${this.jsonFile.name}`)):null==n.weightsManifest?t(Error(`weightManifest field is missing from file ${this.jsonFile.name}`)):0===this.weightsFiles.length?e({modelTopology:s}):e((0,o.getModelArtifactsForJSON)(n,e=>this.loadWeights(e)))},r.onerror=e=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),r.readAsText(this.jsonFile)})}loadWeights(e){let t=[],r=[];for(let n of e)t.push(...n.weights),r.push(...n.paths);let n=this.checkManifestAndWeightFiles(e);return Promise.all(r.map(e=>this.loadWeightsFile(e,n[e]))).then(e=>[t,e])}loadWeightsFile(e,t){return new Promise((r,n)=>{let s=new FileReader;s.onload=e=>{r(e.target.result)},s.onerror=t=>n(`Failed to weights data from file of path '${e}'.`),s.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],r=this.weightsFiles.map(e=>(0,o.basename)(e.name)),n={};for(let s of e)s.paths.forEach(e=>{let s=(0,o.basename)(e);if(-1!==t.indexOf(s))throw Error(`Duplicate file basename found in weights manifest: '${s}'`);if(t.push(s),-1===r.indexOf(s))throw Error(`Weight file with basename '${s}' is not provided.`);n[e]=this.weightsFiles[r.indexOf(s)]});if(t.length!==this.weightsFiles.length)throw Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return n}}let d=e=>(0,a.env)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(p.URL_SCHEME)?f(e.slice(p.URL_SCHEME.length)):null;function f(e="model"){return new p(e)}function h(e){return new c(e)}l.IORouterRegistry.registerSaveRouter(d)},{"../flags":"5pgCq","../environment":"5SiqL","./io_utils":"kNa3U","./router_registry":"3BLAK","./composite_array_buffer":"7Paji","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ih0O9:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"HTTPRequest",()=>c),s.export(r,"parseUrl",()=>d),s.export(r,"isHTTPScheme",()=>f),s.export(r,"httpRouter",()=>h),s.export(r,"http",()=>m),s.export(r,"browserHTTPRequest",()=>g);var a=e("../environment"),o=e("../util"),l=e("./io_utils"),i=e("./composite_array_buffer"),u=e("./router_registry"),p=e("./weights_loader");class c{constructor(e,t){if(this.DEFAULT_METHOD="POST",null==t&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.weightUrlConverter=t.weightUrlConverter,null!=t.fetchFunc?((0,o.assert)("function"==typeof t.fetchFunc,()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=(0,a.env)().platform.fetch,(0,o.assert)(null!=e&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&(0,o.assert)(2===e.length,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,null!=t.requestInit&&null!=t.requestInit.body)throw Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{},this.loadOptions=t}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw 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 r=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],n=(0,l.getModelJSONForModelArtifacts)(e,r);if(t.body.append("model.json",new Blob([JSON.stringify(n)],{type:"application/json"}),"model.json"),null!=e.weightData){let r=i.CompositeArrayBuffer.join(e.weightData);t.body.append("model.weights.bin",new Blob([r],{type:"application/octet-stream"}),"model.weights.bin")}let s=await this.fetch(this.path,t);if(s.ok)return{modelArtifactsInfo:(0,l.getModelArtifactsInfoForJSON)(e),responses:[s]};throw Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async loadModelJSON(){let e,t=await this.fetch(this.path,this.requestInit);if(!t.ok)throw 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.`);try{e=await t.json()}catch(t){let e=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?e+=" 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.":e+=" Please make sure the server is serving valid JSON for this request.",Error(e)}let r=e.modelTopology,n=e.weightsManifest;if(null==r&&null==n)throw Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return e}async load(){if(this.loadOptions.streamWeights)return this.loadStream();let e=await this.loadModelJSON();return(0,l.getModelArtifactsForJSON)(e,e=>this.loadWeights(e))}async loadStream(){let e=await this.loadModelJSON(),t=await this.getWeightUrls(e.weightsManifest),r=(0,l.getWeightSpecs)(e.weightsManifest),n=()=>(0,p.streamWeights)(t,this.loadOptions);return Object.assign(Object.assign({},e),{weightSpecs:r,getWeightStream:n})}async getWeightUrls(e){let[t,r]=d(Array.isArray(this.path)?this.path[1]:this.path),n=this.weightPathPrefix||t,s=[],a=[];for(let t of e)for(let e of t.paths)null!=this.weightUrlConverter?a.push(this.weightUrlConverter(e)):s.push(n+e+r);return this.weightUrlConverter&&s.push(...await Promise.all(a)),s}async loadWeights(e){let t=await this.getWeightUrls(e);return[(0,l.getWeightSpecs)(e),await (0,p.loadWeightsAsArrayBuffer)(t,this.loadOptions)]}}function d(e){let t=e.lastIndexOf("/"),r=e.lastIndexOf("?");return[e.substring(0,t)+"/",r>t?e.substring(r):""]}function f(e){return null!=e.match(c.URL_SCHEME_REGEX)}c.URL_SCHEME_REGEX=/^https?:\/\//;let h=(e,t)=>{if("undefined"==typeof fetch&&(null==t||null==t.fetchFunc));else if(Array.isArray(e)?e.every(e=>f(e)):f(e))return m(e,t);return null};function m(e,t){return new c(e,t)}function g(e,t){return m(e,t)}u.IORouterRegistry.registerSaveRouter(h),u.IORouterRegistry.registerLoadRouter(h)},{"../environment":"5SiqL","../util":"2IDj3","./io_utils":"kNa3U","./composite_array_buffer":"7Paji","./router_registry":"3BLAK","./weights_loader":"Po3bK","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],Po3bK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"loadWeightsAsArrayBuffer",()=>c),s.export(r,"streamWeights",()=>d),s.export(r,"loadWeights",()=>f),s.export(r,"weightsLoaderFactory",()=>h);var a=e("../environment"),o=e("../util"),l=e("./composite_array_buffer"),i=e("./io_utils"),u=e("./progress"),p=e("./types");async function c(e,t){null==t&&(t={});let r=null==t.fetchFunc?(0,a.env)().platform.fetch:t.fetchFunc,n=e.map(e=>r(e,t.requestInit,{isBinary:!0})),s=(null==t.onProgress?await Promise.all(n):await (0,u.monitorPromisesProgress)(n,t.onProgress,0,.5)).map(e=>e.arrayBuffer());return null==t.onProgress?await Promise.all(s):await (0,u.monitorPromisesProgress)(s,t.onProgress,.5,1)}function d(e,t){var r;let n,s=null==t.fetchFunc?(0,a.env)().platform.fetch:t.fetchFunc,o=0;return null==(r=t.onProgress)||r.call(t,0),new ReadableStream({pull:async r=>{for(var a;o<e.length;){n||(n=(await s(e[o],t.requestInit,{isBinary:!0})).body.getReader());let{done:l,value:i}=await n.read();if(l){o++,n=void 0,null==(a=t.onProgress)||a.call(t,o/e.length);continue}r.enqueue(i);return}r.close()}})}async function f(e,t="",r,n){return h(e=>c(e,{requestInit:n}))(e,t,r)}function h(e){return async(t,r="",n)=>{let s=t.map(()=>!1),a={},u=null!=n?n.map(()=>!1):[],c=[];if(t.forEach((e,t)=>{let r=0;e.weights.forEach(e=>{let l="quantization"in e?e.quantization.dtype:e.dtype,i=p.DTYPE_VALUE_SIZE_MAP[l]*o.sizeFromShape(e.shape),d=()=>{s[t]=!0,null==a[t]&&(a[t]=[]),a[t].push({manifestEntry:e,groupOffset:r,sizeBytes:i})};null!=n?n.forEach((t,r)=>{t===e.name&&(d(),u[r]=!0)}):d(),c.push(e.name),r+=i})}),!u.every(e=>e)){let e=n.filter((e,t)=>!u[t]);throw Error(`Could not find weights in manifest with names: ${e.join(", ")}. Manifest JSON has weights with names: ${c.join(", ")}.`)}let d=s.reduce((e,t,r)=>(t&&e.push(r),e),[]),f=[];d.forEach(e=>{t[e].paths.forEach(e=>{let t=r+(r.endsWith("/")?"":"/")+e;f.push(t)})});let h=await e(f),m={},g=0;return d.forEach(e=>{let r=t[e].paths.length,n=new(0,l.CompositeArrayBuffer)(h.slice(g,g+r));a[e].forEach(e=>{let t=n.slice(e.groupOffset,e.groupOffset+e.sizeBytes),r=(0,i.decodeWeights)(t,[e.manifestEntry]);for(let e in r)m[e]=r[e]}),g+=r}),m}}},{"../environment":"5SiqL","../util":"lLzfH","./composite_array_buffer":"7Paji","./io_utils":"kNa3U","./progress":"63KO1","./types":"fE5tz","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"63KO1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"monitorPromisesProgress",()=>o);var a=e("../util");function o(e,t,r,n){var s,o,l;s=e,(0,a.assert)(null!=s&&Array.isArray(s)&&s.length>0,()=>"promises must be a none empty array"),o=r=null==r?0:r,l=n=null==n?1:n,(0,a.assert)(o>=0&&o<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${o}`),(0,a.assert)(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),(0,a.assert)(l>=o,()=>`startFraction must be no more than endFraction, but got startFraction ${o} and endFraction ${l}`);let i=0;return Promise.all(e.map(s=>(s.then(s=>(t(r+ ++i/e.length*(n-r)),s)),s)))}},{"../util":"2IDj3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fcVAR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fromMemory",()=>i),s.export(r,"fromMemorySync",()=>u),s.export(r,"withSaveHandler",()=>p),s.export(r,"withSaveHandlerSync",()=>c);class a{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}}class o{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}}class l{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}}function i(e,t,r,n){let s=arguments;return new l(u(...s))}function u(e,t,r,n){return 1!=arguments.length?(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 a({modelTopology:e,weightSpecs:t,weightData:r,trainingConfig:n})):null!=e.modelTopology||null!=e.weightSpecs?new a(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 a({modelTopology:e}))}function p(e){return new o(e)}function c(e){return new o(e)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5jmWc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"confusionMatrix",()=>a.confusionMatrix);var a=e("./ops/confusion_matrix")},{"./ops/confusion_matrix":"7Vpm1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7Vpm1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"confusionMatrix_",()=>d),s.export(r,"confusionMatrix",()=>f);var a=e("../tensor_util_env"),o=e("../util"),l=e("./cast"),i=e("./mat_mul"),u=e("./one_hot"),p=e("./operation"),c=e("./transpose");function d(e,t,r){let n=(0,a.convertToTensor)(e,"labels","confusionMatrix"),s=(0,a.convertToTensor)(t,"predictions","confusionMatrix");o.assert(null==r||r>0&&Number.isInteger(r),()=>`If provided, numClasses must be a positive integer, but got ${r}`),o.assert(1===n.rank,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),o.assert(1===s.rank,()=>`Expected the rank of predictions to be 1, but got ${s.rank}`),o.assert(n.shape[0]===s.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${s.shape[0]}. Labels and predictions should have the same number of elements.`),o.assert(r>0&&Number.isInteger(r),()=>`numClasses is required to be a positive integer, but got ${r}`);let p=(0,u.oneHot)((0,l.cast)(n,"int32"),r),d=(0,u.oneHot)((0,l.cast)(s,"int32"),r),f=(0,c.transpose)(p),h=(0,i.matMul)(f,d);return(0,l.cast)(h,"int32")}let f=(0,p.op)({confusionMatrix_:d})},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./cast":"hLsoh","./mat_mul":"apoIX","./one_hot":"4GWpu","./operation":"hyTBr","./transpose":"lLEyz","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],apoIX:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"matMul",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({matMul_:function(e,t,r=!1,n=!1){let s=(0,i.convertToTensor)(e,"a","matMul"),u=(0,i.convertToTensor)(t,"b","matMul");[s,u]=(0,l.makeTypesMatch)(s,u);let p={a:s,b:u};return a.ENGINE.runKernel(o.BatchMatMul,p,{transposeA:r,transposeB:n})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4GWpu":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"oneHot",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({oneHot_:function(e,t,r=1,n=0,s="int32"){if(t<2)throw Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let i=(0,l.convertToTensor)(e,"indices","oneHot","int32");return a.ENGINE.runKernel(o.OneHot,{indices:i},{dtype:s,depth:t,onValue:r,offValue:n})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lLEyz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transpose",()=>m);var a=e("../engine"),o=e("../globals"),l=e("../kernel_names"),i=e("../tensor_util_env"),u=e("../util"),p=e("./complex"),c=e("./imag"),d=e("./neg"),f=e("./operation"),h=e("./real");let m=(0,f.op)({transpose_:function(e,t,r){let n=(0,i.convertToTensor)(e,"x","transpose");if(null==t&&(t=n.shape.map((e,t)=>t).reverse()),u.assert(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(e=>{u.assert(e>=0&&e<n.rank,()=>`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let s={perm:t};return"complex64"===n.dtype?(0,o.tidy)(()=>{let e=(0,h.real)(n),t=(0,c.imag)(n);return e=a.ENGINE.runKernel(l.Transpose,{x:e},s),t=a.ENGINE.runKernel(l.Transpose,{x:t},s),r&&(t=(0,d.neg)(t)),(0,p.complex)(e,t)}):a.ENGINE.runKernel(l.Transpose,{x:n},s)}})},{"../engine":"gtimw","../globals":"6oj2G","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./complex":"kNXzJ","./imag":"hTlEs","./neg":"2F5Dw","./operation":"hyTBr","./real":"jx2td","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hTlEs:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"imag",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({imag_:function(e){let t=(0,l.convertToTensor)(e,"input","imag");return a.ENGINE.runKernel(o.Imag,{input:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2F5Dw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"neg",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({neg_:function(e){let t=(0,l.convertToTensor)(e,"x","neg");return a.ENGINE.runKernel(o.Neg,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jx2td:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"real",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({real_:function(e){let t=(0,l.convertToTensor)(e,"input","real");return a.ENGINE.runKernel(o.Real,{input:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"80XSl":[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"fromPixelsAsync",()=>x),a.export(r,"toPixels",()=>y),a.export(r,"draw",()=>_),a.export(r,"fromPixels",()=>b);var o=e("../engine"),l=e("../environment"),i=e("../kernel_names"),u=e("../kernel_registry"),p=e("../tensor"),c=e("../tensor_util_env"),d=e("./cast"),f=e("./operation"),h=e("./tensor3d");let m=!1;function g(e,t=3){let r,n;if(t>4)throw Error("Cannot construct Tensor with more than 4 channels from pixels.");if(null==e)throw Error("pixels passed to tf.browser.fromPixels() can not be null");let a=!1,l=!1,p=!1,c=!1,d=!1,f=!1;if(e.data instanceof Uint8Array)a=!0;else if("undefined"!=typeof ImageData&&e instanceof ImageData)l=!0;else if("undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement)p=!0;else if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement)c=!0;else if(null!=e.getContext)d=!0;else if("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap)f=!0;else throw 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(null!=(0,u.getKernel)(i.FromPixels,o.ENGINE.backendName))return o.ENGINE.runKernel(i.FromPixels,{pixels:e},{numChannels:t});let[m,x]=p?[e.videoWidth,e.videoHeight]:[e.width,e.height];if(d)r=e.getContext("2d").getImageData(0,0,m,x).data;else if(l||a)r=e.data;else if(c||p||f){if(null==s)if("undefined"==typeof document)if("undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof OffscreenCanvasRenderingContext2D)s=new OffscreenCanvas(1,1).getContext("2d");else throw Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else s=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});s.canvas.width=m,s.canvas.height=x,s.drawImage(e,0,0,m,x),r=s.getImageData(0,0,m,x).data}if(4===t)n=new Int32Array(r);else{let e=m*x;n=new Int32Array(e*t);for(let s=0;s<e;s++)for(let e=0;e<t;++e)n[s*t+e]=r[4*s+e]}let v=[x,m,t];return(0,h.tensor3d)(n,v,"int32")}async function x(e,t=3){var r;let n=null;if((0,l.env)().getBool("WRAP_TO_IMAGEBITMAP")&&"undefined"!=typeof window&&"undefined"!=typeof ImageBitmap&&window.hasOwnProperty("createImageBitmap")&&!(e instanceof ImageBitmap)&&null!=(r=e)&&0!==r.width&&0!==r.height&&!(null!=e&&e.data instanceof Uint8Array)){let t;try{t=await createImageBitmap(e,{premultiplyAlpha:"none"})}catch(e){t=null}n=null!=t&&t.width===e.width&&t.height===e.height?t:e}else n=e;return g(n,t)}function v(e){if(2!==e.rank&&3!==e.rank)throw Error(`toPixels only supports rank 2 or 3 tensors, got rank ${e.rank}.`);let t=2===e.rank?1:e.shape[2];if(t>4||2===t)throw Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if("float32"!==e.dtype&&"int32"!==e.dtype)throw Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`)}async function y(e,t){let r=(0,c.convertToTensor)(e,"img","toPixels");if(!(e instanceof p.Tensor)){let e=r;r=(0,d.cast)(e,"int32"),e.dispose()}v(r);let[n,s]=r.shape.slice(0,2),a=2===r.rank?1:r.shape[2],l=await r.data(),f="float32"===r.dtype?255:1,h=new Uint8ClampedArray(s*n*4);for(let e=0;e<n*s;++e){let t=[0,0,0,255];for(let n=0;n<a;n++){let s=l[e*a+n];if("float32"===r.dtype){if(s<0||s>1)throw Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${s}.`)}else if("int32"===r.dtype&&(s<0||s>255))throw Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${s}.`);1===a?(t[0]=s*f,t[1]=s*f,t[2]=s*f):t[n]=s*f}let n=4*e;h[n+0]=Math.round(t[0]),h[n+1]=Math.round(t[1]),h[n+2]=Math.round(t[2]),h[n+3]=Math.round(t[3])}if(null!=t){m||null!=(0,u.getKernel)(i.Draw,o.ENGINE.backendName)&&(console.warn("tf.browser.toPixels is not efficient to draw tensor on canvas. Please try tf.browser.draw instead."),m=!0),t.width=s,t.height=n;let e=t.getContext("2d"),r=new ImageData(h,s,n);e.putImageData(r,0,0)}return r!==e&&r.dispose(),h}function _(e,t,r){let n=(0,c.convertToTensor)(e,"img","draw");if(!(e instanceof p.Tensor)){let e=n;n=(0,d.cast)(e,"int32"),e.dispose()}v(n);var s=null==r?void 0:r.imageOptions;let a=(null==s?void 0:s.alpha)||1;if(a>1||a<0)throw Error(`Alpha value ${a} is suppoed to be in range [0 - 1].`);let l={image:n};o.ENGINE.runKernel(i.Draw,l,{canvas:t,options:r})}let b=(0,f.op)({fromPixels_:g})},{"../engine":"gtimw","../environment":"5SiqL","../kernel_names":"agfs7","../kernel_registry":"a4k06","../tensor":"8mprx","../tensor_util_env":"4hoNq","./cast":"hLsoh","./operation":"hyTBr","./tensor3d":"3qZbK","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3qZbK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor3d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&3!==t.length)throw Error("tensor3d() requires shape to have three numbers");let n=(0,a.inferShape)(e,r);if(3!==n.length&&1!==n.length)throw Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor3d() requires shape to be provided when `values` are a flat array");return(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"4hoNq","../util":"2IDj3","./tensor_ops_util":"f2WcV","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cHYcB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prepareAndValidate",()=>o);var a=e("../util");function o(e,t){let r=e.shape.length,n=t.shape.length;if(r<1)throw Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${r}.`);if(n<1)throw Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);if("int32"!==t.dtype)throw Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[n-1]>r)throw Error(`index innermost dimension length must be<= tensor rank; saw: ${t.shape[n-1]} vs. ${r}`);if(0===(0,a.sizeFromShape)(e.shape))throw Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let s=t.shape,o=s[s.length-1],l=1;for(let e=0;e<s.length-1;++e)l*=s[e];let i=e.shape,u=s.slice();u.pop();let p=1;for(let e=o;e<r;++e)p*=i[e],u.push(i[e]);let c=[...(0,a.computeStrides)(e.shape).map(e=>e/p),1].slice(0,o);return[u,l,p,c]}},{"../util":"2IDj3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fHXmM:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"validateUpdateShape",()=>o),s.export(r,"validateInput",()=>l),s.export(r,"calculateShapes",()=>i);var a=e("../util");function o(e,t,r){let n=t.rank>1?t.shape[t.rank-1]:1,s=t.rank>1?t.rank-1:1,a=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${r.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${n}, and batchDim: ${s}.`;if(r.rank<s)throw Error(a+` update.rank < ${s}. `);if(e.length<n+(r.rank-s))throw Error(a+` Output shape length < ${n+(r.rank-s)}`);if(r.rank!==s+e.length-n)throw Error(a+` update.rank != ${s+e.length-n}`);for(let e=0;e<s;++e)if(r.shape[e]!==t.shape[e])throw Error(a+` updates.shape[${e}] (${r.shape[e]}) != indices.shape[${e}] (${t.shape[e]}).`);for(let t=0;t<r.rank-s;++t)if(r.shape[t+s]!==e[t+n])throw Error(a+` updates.shape[${t+s}] (${r.shape[t+s]}) != shape[${t+s}] (${e[t+s]})`)}function l(e,t,r){if(t.rank<1)throw Error(`tf.scatterND() expects the indices to be rank 1 or higher, but the rank was ${t.rank}.`);if(e.rank<1)throw Error(`tf.scatterND() expects the updates to be rank 1 or higher, but the rank was ${e.rank}.`);if("int32"!==t.dtype)throw Error(`The dtype of 'indices' should be int32, but got dtype: ${t.dtype}`);if(r.length<1)throw Error(`Output rank must be greater or equal to 1, but got shape: ${r}`);if(0===r.length){if(0===t.size)throw Error(`Indices specified for empty output. indices shape: ${t.shape}`);if(0===e.size)throw Error(`Updates specified for empty output. updates shape: ${e.shape}`)}o(r,t,e)}function i(e,t,r){let n=t.shape.length,s=n>1?t.shape[n-1]:1,o=r.length,l=1;for(let e=s;e<o;++e)l*=r[e];let i=s<1?1:s,u=(0,a.sizeFromShape)(t.shape)/i,p=[...(0,a.computeStrides)(r.slice(0,s)),1];return{sliceRank:s,numUpdates:u,sliceSize:l,strides:p,outputSize:(0,a.sizeFromShape)(r)}}},{"../util":"2IDj3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6gLLd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"assertParamsValid",()=>o),s.export(r,"maskToAxes",()=>l),s.export(r,"computeOutShape",()=>i),s.export(r,"stridesWithElidedDims",()=>u),s.export(r,"getNormalizedAxes",()=>c),s.export(r,"startIndicesWithElidedDims",()=>d),s.export(r,"stopIndicesWithElidedDims",()=>f),s.export(r,"stridesForAxis",()=>h),s.export(r,"startForAxis",()=>m),s.export(r,"stopForAxis",()=>g),s.export(r,"isSliceContinous",()=>x),s.export(r,"computeFlatOffset",()=>v),s.export(r,"parseSliceParams",()=>y),s.export(r,"sliceInfo",()=>_);var a=e("../util");function o(e,t,r){let n=e.shape.length;a.assert(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),a.assert(n===r.length,()=>`Error in slice${n}D: Length of size ${r} must match the rank of the array (${n}).`);for(let s=0;s<n;++s)a.assert(t[s]+r[s]<=e.shape[s],()=>`Error in slice${n}D: begin[${s}] + size[${s}] (${t[s]+r[s]}) would overflow input.shape[${s}] (${e.shape[s]})`)}function l(e){let t=[],r=0;for(;e>0;)1&e&&t.push(r),e/=2,r++;return t}function i(e,t,r){let n=[];for(let s=0;s<e.length;s++)n[s]=Math.ceil((t[s]-e[s])/r[s]);return n}function u(e,t,r,n){let s=[...e];for(let e=s.length;e<n.length;e++)s.push(1);for(let e=0;e<r;e++)0===e?s[t]=1:(s.splice(t,0,1),s.pop());return s}function p(e,t){let r=[];for(let n=0;n<e;n++)r.push(t+n);return r}function c(e,t,r,n,s,a,o,l,i){let p=e.length,c=Array(p),x=Array(p),v=Array(p);if(t.length&&r>0){let i=t[0],p=r+1;c=d(o,i,p,n,e),x=f(l,i,p,s,e),v=u(a,i,p,e)}else for(let t=0;t<p;t++)c[t]=m(o,n,a,e,t,i),x[t]=g(l,s,a,e,t,i),v[t]=h(a,t,i);return{begin:c,end:x,strides:v}}function d(e,t,r,n,s){let a=[...s],o=p(r,t);for(let s=0;s<a.length;s++)if(o.indexOf(s)>-1)a[s]=0;else{var l,i,u;let o=(l=t,i=r,(u=s)<=l?u:u-(i-1)),p=n[o];e&1<<o&&(p=0),a[s]=p}return a}function f(e,t,r,n,s){let o=[...s],l=p(r,t);for(let s=0;s<o.length;s++)if(l.indexOf(s)>-1)o[s]=Number.MAX_SAFE_INTEGER;else{var i,u,c;let a=(i=t,u=r,(c=s)<=i?c:c-(u-1)),l=n[a];e&1<<a&&(l=Number.MAX_SAFE_INTEGER),o[s]=l}for(let e=0;e<o.length;e++){let t=s[e];o[e]<0&&(o[e]+=t),o[e]=a.clamp(0,o[e],s[e])}return o}function h(e,t,r){let n=e[t];return(r&1<<t||null==n)&&(n=1),n}function m(e,t,r,n,s,o){let l=t[s],i=r[s]||1;(e&1<<s||o&1<<s||null==l)&&(l=i>0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);let u=n[s];return l<0&&(l+=u),l=a.clamp(0,l,u-1)}function g(e,t,r,n,s,o){let l=t[s],i=r[s]||1;(e&1<<s||o&1<<s||null==l)&&(l=i>0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);let u=n[s];return l<0&&(l+=u),l=i>0?a.clamp(0,l,u):a.clamp(-1,l,u-1)}function x(e,t,r){let n=r.length;for(let e=0;e<r.length;e++)if(r[e]>1){n=e;break}for(let s=n+1;s<r.length;s++)if(t[s]>0||r[s]!==e[s])return!1;return!0}function v(e,t){let r=e.length>0?e[e.length-1]:1;for(let n=0;n<e.length-1;n++)r+=e[n]*t[n];return r}function y(e,t,r){let n,s,o=e.shape.length;return(n="number"==typeof t?[t,...Array(o-1).fill(0)]:t.length<o?t.concat(Array(o-t.length).fill(0)):t.slice()).forEach(e=>{a.assert(-1!==e,()=>"slice() does not support negative begin indexing.")}),s=(s=null==r?Array(o).fill(-1):"number"==typeof r?[r,...Array(o-1).fill(-1)]:r.length<o?r.concat(Array(o-r.length).fill(-1)):r).map((t,r)=>t>=0?t:(a.assert(-1===t,()=>`Negative size values should be exactly -1 but got ${t} for the slice() size at index ${r}.`),e.shape[r]-n[r])),[n,s]}function _(e,t,r,n,s,a,o,l,i){let u;if(null==n?(u=Array(t.length)).fill(1):u=n,null!=o&&(o&o-1)!=0)throw Error("Multiple ellipses in slice is not allowed.");let p=!1,c={dims:u.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:r.slice(),strides:u.slice(),beginMask:s,endMask:a,ellipsisMask:o,newAxisMask:l,shrinkAxisMask:i};for(let e=0;e<c.dims;e++)p&&(1<<e&l)!=0&&c.numAddAxisAfterEllipsis++,1<<e&o&&(p=!0);!p&&(c.ellipsisMask|=1<<c.dims,c.dims++);let d={dims:e.length,beginMask:0,endMask:0,beginValid:!1,endValid:!1};var f=c,h=d;h.beginMask=0,h.endMask=0,h.shrinkAxisMask=0;let m=0;h.beginValid=null!=f.begin,h.endValid=null!=f.end,h.begin=Array(h.dims),h.end=Array(h.dims),h.strides=Array(h.dims),h.finalShapeGatherIndices=[],h.finalShapeGatherIndicesSparse=[],h.inputShapeGatherIndicesSparse=Array(h.dims);for(let e=0;e<f.dims;e++)if(1<<e&f.ellipsisMask){let t=Math.min(h.dims-(f.dims-e)+1+f.numAddAxisAfterEllipsis,h.dims);for(;m<t;m++)h.begin[m]=0,h.end[m]=0,h.strides[m]=1,h.beginMask|=1<<m,h.endMask|=1<<m,h.finalShapeGatherIndices.push(m),h.finalShapeGatherIndicesSparse.push(-1),h.inputShapeGatherIndicesSparse[m]=e}else if(1<<e&f.newAxisMask)h.finalShapeGatherIndices.push(-2),h.finalShapeGatherIndicesSparse.push(-1);else{if(m===h.begin.length)throw Error(`Index out of range using input dim ${m}; input has only ${h.dims} dims, ${h.begin.length}.`);null!=f.begin&&(h.begin[m]=f.begin[e]),null!=f.end&&(h.end[m]=f.end[e]),h.strides[m]=f.strides[e],f.beginMask&1<<e&&(h.beginMask|=1<<m),f.endMask&1<<e&&(h.endMask|=1<<m),f.shrinkAxisMask&1<<e?(h.finalShapeGatherIndices.push(-1),h.finalShapeGatherIndicesSparse.push(-1),h.shrinkAxisMask|=1<<m):(h.finalShapeGatherIndices.push(m),h.finalShapeGatherIndicesSparse.push(e)),h.inputShapeGatherIndicesSparse[m]=e,m++}let g=!0,x=!0,v=!0,y=[],_=[];for(let t=0;t<e.length;++t){let r;if(0===d.strides[t])throw Error(`strides[${t}] must be non-zero`);let n=!!(d.shrinkAxisMask&1<<t),s=e[t];if(-1===s){y.push(n?1:-1);continue}let a=[d.beginMask&1<<t,d.endMask&1<<t],o=[d.strides[t]>0?0:-1,d.strides[t]>0?s:s-1];if(n&&d.strides[t]<=0)throw Error("only stride 1 allowed on non-range indexing.");v=v&&1===d.strides[t];let l=!!(d.beginMask&1<<t&&d.endMask&1<<t);if(d.beginValid&&d.endValid){if(n){let e=d.begin[t]<0?s+d.begin[t]:d.begin[t];if(d.begin[t]=e,d.end[t]=d.begin[t]+1,e<0||e>=s)throw Error(`slice index ${d.begin[t]} of dimension ${t} out of bounds.`)}else d.begin[t]=b(d.begin[t],0,d.strides[t],s,a,o),d.end[t]=b(d.end[t],1,d.strides[t],s,a,o);let e=1===d.strides[t]&&0===d.begin[t]&&d.end[t]===s;g=g&&e,x=x&&(0===t&&1===d.strides[t]||e)}else g=g&&1===d.strides[t]&&l,x=x&&(0===t&&1===d.strides[t]||l);let i=!1;if(d.beginValid&&d.endValid?(r=d.end[t]-d.begin[t],i=!0):n?(r=1,i=!0):l&&s>=0&&(r=d.strides[t]<0?-s:s,i=!0),i){let e;e=0===r||r<0!=d.strides[t]<0?0:Math.trunc(r/d.strides[t])+ +(r%d.strides[t]!=0),y.push(e)}else y.push(-1)}for(let e=0;e<d.finalShapeGatherIndices.length;++e){let t=d.finalShapeGatherIndices[e];t>=0?_.push(y[t]):-2===t&&_.push(1)}return{finalShapeSparse:_.filter((e,t)=>-2!==d.finalShapeGatherIndices[t]),finalShape:_,isIdentity:g,sliceDim0:x,isSimpleSlice:v,begin:d.begin,end:d.end,strides:d.strides}}function b(e,t,r,n,s,a){if(s[t])return r>0?a[t]:a[t+1&1];{let t=e<0?n+e:e;return t<a[0]?a[0]:t>a[1]?a[1]:t}}},{"../util":"lLzfH","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2NLFb":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TEST_EPSILON_FLOAT16",()=>i),s.export(r,"expectArraysClose",()=>u),s.export(r,"testEpsilon",()=>p),s.export(r,"expectPromiseToFail",()=>d),s.export(r,"expectArraysEqual",()=>f),s.export(r,"expectNumbersClose",()=>h),s.export(r,"expectValuesInRange",()=>g),s.export(r,"expectArrayBuffersEqual",()=>x),s.export(r,"encodeStrings",()=>function e(t){for(let r=0;r<t.length;r++){let n=t[r];Array.isArray(n)?e(n):t[r]=(0,l.encodeString)(n)}return t}),s.export(r,"createVideoElement",()=>v),s.export(r,"play",()=>y);var a=e("./engine"),o=e("./tensor_util_env"),l=e("./util");let i=.1;function u(e,t,r){return null==r&&(r=p()),c(e,t,(e,t)=>m(e,t,r))}function p(){return 32===a.ENGINE.backend.floatPrecision()?.001:i}function c(e,t,r){let n=!0;if(((0,l.isTypedArray)(e)||(0,l.isTypedArray)(t))&&(n=!1),(0,l.isTypedArray)(e)&&(0,l.isTypedArray)(t)&&(n=!0),n){let r=e.constructor.name,n=t.constructor.name;if(r!==n)throw Error(`Arrays are of different type. Actual: ${r}. Expected: ${n}`)}if(Array.isArray(e)&&Array.isArray(t)){let r=(0,o.inferShape)(e),n=(0,o.inferShape)(t);if(!(0,l.arraysEqual)(r,n))throw Error(`Arrays have different shapes. Actual: [${r}]. Expected: [${n}]`)}let s=(0,l.isTypedArray)(e)?e:(0,l.flatten)(e),a=(0,l.isTypedArray)(t)?t:(0,l.flatten)(t);if(s.length!==a.length)throw Error(`Arrays have different lengths actual: ${s.length} vs expected: ${a.length}. Actual: ${s}. Expected: ${a}.`);for(let e=0;e<a.length;++e){let t=s[e],n=a[e];if(!r(t,n))throw Error(`Arrays differ: actual[${e}] = ${t}, expected[${e}] = ${n}. Actual: ${s}. Expected: ${a}.`)}"undefined"!=typeof expect&&expect().nothing()}function d(e,t){e().then(()=>t.fail(),()=>t()),"undefined"!=typeof expect&&expect().nothing()}function f(e,t){let r="string"==typeof t||"number"==typeof t||"boolean"==typeof t?[t]:t;return(0,l.isString)(e)||(0,l.isString)(e[0])||(0,l.isString)(t)||(0,l.isString)(t[0])?c(e,r,(e,t)=>e==t):c(e,t,(e,t)=>m(e,t,0))}function h(e,t,r){if(null==r&&(r=p()),!m(e,t,r))throw Error(`Numbers differ: actual === ${e}, expected === ${t}`);"undefined"!=typeof expect&&expect().nothing()}function m(e,t,r){return!(isFinite(e)||isFinite(t))||!(isNaN(e)||isNaN(t)||Math.abs(e-t)>r)}function g(e,t,r){for(let n=0;n<e.length;n++)if(e[n]<t||e[n]>r)throw Error(`Value out of range:${e[n]} low: ${t}, high: ${r}`)}function x(e,t){let r=new Float32Array(e),n=new Float32Array(t);if(r.length!==n.length)throw Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${r.length}`);for(let e=0;e<n.length;e++)if(r[e]!==n[e])throw Error(`Expected ArrayBuffer value at ${e} to be ${n[e]} but got ${r[e]} instead`)}function v(e){let t=document.createElement("video");return"playsInline"in t&&(t.playsInline=!0),t.muted=!0,t.loop=!0,t.style.position="fixed",t.style.left="0px",t.style.top="0px",t.preload="auto",t.appendChild(e),new Promise(e=>{t.addEventListener("loadeddata",r=>e(t)),t.load()})}async function y(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}},{"./engine":"gtimw","./tensor_util_env":"4hoNq","./util":[["arraysEqual","2IDj3"],["isString","2IDj3"],["encodeString","lLzfH"],["flatten","lLzfH"],["isTypedArray","lLzfH"]],"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bAUyn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version",()=>a);let a="4.22.0"},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],d3oPN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"OptimizerConstructors",()=>d);var a=e("./adadelta_optimizer"),o=e("./adagrad_optimizer"),l=e("./adam_optimizer"),i=e("./adamax_optimizer"),u=e("./momentum_optimizer"),p=e("./rmsprop_optimizer"),c=e("./sgd_optimizer");class d{static sgd(e){return new(0,c.SGDOptimizer)(e)}static momentum(e,t,r=!1){return new(0,u.MomentumOptimizer)(e,t,r)}static rmsprop(e,t=.9,r=0,n=null,s=!1){return new(0,p.RMSPropOptimizer)(e,t,r,n,s)}static adam(e=.001,t=.9,r=.999,n=null){return new(0,l.AdamOptimizer)(e,t,r,n)}static adadelta(e=.001,t=.95,r=null){return new(0,a.AdadeltaOptimizer)(e,t,r)}static adamax(e=.002,t=.9,r=.999,n=null,s=0){return new(0,i.AdamaxOptimizer)(e,t,r,n,s)}static adagrad(e,t=.1){return new(0,o.AdagradOptimizer)(e,t)}}},{"./adadelta_optimizer":"lTgzp","./adagrad_optimizer":"8yQ7m","./adam_optimizer":"22tKw","./adamax_optimizer":"9PvDa","./momentum_optimizer":"dxwSK","./rmsprop_optimizer":"4HtoB","./sgd_optimizer":"2FFC7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fwPwu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"abs",()=>a.abs),s.export(r,"acos",()=>o.acos),s.export(r,"acosh",()=>l.acosh),s.export(r,"add",()=>i.add),s.export(r,"addN",()=>u.addN),s.export(r,"all",()=>p.all),s.export(r,"any",()=>c.any),s.export(r,"argMax",()=>d.argMax),s.export(r,"argMin",()=>f.argMin),s.export(r,"asin",()=>h.asin),s.export(r,"asinh",()=>m.asinh),s.export(r,"atan",()=>g.atan),s.export(r,"atan2",()=>x.atan2),s.export(r,"atanh",()=>v.atanh),s.export(r,"avgPool",()=>y.avgPool),s.export(r,"avgPool3d",()=>_.avgPool3d),s.export(r,"basicLSTMCell",()=>b.basicLSTMCell),s.export(r,"batchToSpaceND",()=>k.batchToSpaceND),s.export(r,"batchNorm",()=>T.batchNorm),s.export(r,"batchNorm2d",()=>w.batchNorm2d),s.export(r,"batchNorm3d",()=>I.batchNorm3d),s.export(r,"batchNorm4d",()=>j.batchNorm4d),s.export(r,"bincount",()=>C.bincount),s.export(r,"bitwiseAnd",()=>N.bitwiseAnd),s.export(r,"broadcastArgs",()=>S.broadcastArgs),s.export(r,"broadcastTo",()=>E.broadcastTo),s.export(r,"buffer",()=>A.buffer),s.export(r,"cast",()=>F.cast),s.export(r,"ceil",()=>R.ceil),s.export(r,"clipByValue",()=>D.clipByValue),s.export(r,"clone",()=>P.clone),s.export(r,"complex",()=>$.complex),s.export(r,"concat",()=>M.concat),s.export(r,"concat1d",()=>O.concat1d),s.export(r,"concat2d",()=>B.concat2d),s.export(r,"concat3d",()=>q.concat3d),s.export(r,"concat4d",()=>L.concat4d),s.export(r,"conv1d",()=>V.conv1d),s.export(r,"conv2d",()=>G.conv2d),s.export(r,"conv2dTranspose",()=>z.conv2dTranspose),s.export(r,"conv3d",()=>U.conv3d),s.export(r,"conv3dTranspose",()=>X.conv3dTranspose),s.export(r,"cos",()=>W.cos),s.export(r,"cosh",()=>H.cosh),s.export(r,"cumprod",()=>K.cumprod),s.export(r,"cumsum",()=>J.cumsum),s.export(r,"denseBincount",()=>Y.denseBincount),s.export(r,"depthToSpace",()=>Z.depthToSpace),s.export(r,"depthwiseConv2d",()=>Q.depthwiseConv2d),s.export(r,"diag",()=>ee.diag),s.export(r,"dilation2d",()=>et.dilation2d),s.export(r,"div",()=>er.div),s.export(r,"divNoNan",()=>en.divNoNan),s.export(r,"dot",()=>es.dot),s.export(r,"einsum",()=>ea.einsum),s.export(r,"elu",()=>eo.elu),s.export(r,"ensureShape",()=>el.ensureShape),s.export(r,"equal",()=>ei.equal),s.export(r,"erf",()=>eu.erf),s.export(r,"euclideanNorm",()=>ep.euclideanNorm),s.export(r,"exp",()=>ec.exp),s.export(r,"expandDims",()=>ed.expandDims),s.export(r,"expm1",()=>ef.expm1),s.export(r,"eye",()=>eh.eye),s.export(r,"fill",()=>em.fill),s.export(r,"floor",()=>eg.floor),s.export(r,"floorDiv",()=>ex.floorDiv),s.export(r,"gather",()=>ev.gather),s.export(r,"greater",()=>ey.greater),s.export(r,"greaterEqual",()=>e_.greaterEqual),s.export(r,"imag",()=>eb.imag),s.export(r,"isFinite",()=>ek.isFinite),s.export(r,"isInf",()=>eT.isInf),s.export(r,"isNaN",()=>ew.isNaN),s.export(r,"leakyRelu",()=>eI.leakyRelu),s.export(r,"less",()=>ej.less),s.export(r,"lessEqual",()=>eC.lessEqual),s.export(r,"linspace",()=>eN.linspace),s.export(r,"localResponseNormalization",()=>eS.localResponseNormalization),s.export(r,"log",()=>eE.log),s.export(r,"log1p",()=>eA.log1p),s.export(r,"logSigmoid",()=>eF.logSigmoid),s.export(r,"logSoftmax",()=>eR.logSoftmax),s.export(r,"logSumExp",()=>eD.logSumExp),s.export(r,"logicalAnd",()=>eP.logicalAnd),s.export(r,"logicalNot",()=>e$.logicalNot),s.export(r,"logicalOr",()=>eM.logicalOr),s.export(r,"logicalXor",()=>eO.logicalXor),s.export(r,"lowerBound",()=>eB.lowerBound),s.export(r,"matMul",()=>eq.matMul),s.export(r,"max",()=>eL.max),s.export(r,"maxPool",()=>eV.maxPool),s.export(r,"maxPool3d",()=>eG.maxPool3d),s.export(r,"maxPoolWithArgmax",()=>ez.maxPoolWithArgmax),s.export(r,"maximum",()=>eU.maximum),s.export(r,"mean",()=>eX.mean),s.export(r,"meshgrid",()=>eW.meshgrid),s.export(r,"min",()=>eH.min),s.export(r,"minimum",()=>eK.minimum),s.export(r,"mirrorPad",()=>eJ.mirrorPad),s.export(r,"mod",()=>eY.mod),s.export(r,"moments",()=>eZ.moments),s.export(r,"mul",()=>eQ.mul),s.export(r,"multiRNNCell",()=>e0.multiRNNCell),s.export(r,"multinomial",()=>e1.multinomial),s.export(r,"neg",()=>e2.neg),s.export(r,"notEqual",()=>e3.notEqual),s.export(r,"oneHot",()=>e4.oneHot),s.export(r,"ones",()=>e6.ones),s.export(r,"onesLike",()=>e5.onesLike),s.export(r,"outerProduct",()=>e7.outerProduct),s.export(r,"pad",()=>e8.pad),s.export(r,"pad1d",()=>e9.pad1d),s.export(r,"pad2d",()=>te.pad2d),s.export(r,"pad3d",()=>tt.pad3d),s.export(r,"pad4d",()=>tr.pad4d),s.export(r,"pool",()=>tn.pool),s.export(r,"pow",()=>ts.pow),s.export(r,"prelu",()=>ta.prelu),s.export(r,"print",()=>to.print),s.export(r,"prod",()=>tl.prod),s.export(r,"raggedGather",()=>ti.raggedGather),s.export(r,"raggedRange",()=>tu.raggedRange),s.export(r,"raggedTensorToTensor",()=>tp.raggedTensorToTensor),s.export(r,"rand",()=>tc.rand),s.export(r,"randomGamma",()=>td.randomGamma),s.export(r,"randomNormal",()=>tf.randomNormal),s.export(r,"randomStandardNormal",()=>th.randomStandardNormal),s.export(r,"randomUniform",()=>tm.randomUniform),s.export(r,"randomUniformInt",()=>tg.randomUniformInt),s.export(r,"range",()=>tx.range),s.export(r,"real",()=>tv.real),s.export(r,"reciprocal",()=>ty.reciprocal),s.export(r,"relu",()=>t_.relu),s.export(r,"relu6",()=>tb.relu6),s.export(r,"reshape",()=>tk.reshape),s.export(r,"reverse",()=>tT.reverse),s.export(r,"reverse1d",()=>tw.reverse1d),s.export(r,"reverse2d",()=>tI.reverse2d),s.export(r,"reverse3d",()=>tj.reverse3d),s.export(r,"reverse4d",()=>tC.reverse4d),s.export(r,"round",()=>tN.round),s.export(r,"rsqrt",()=>tS.rsqrt),s.export(r,"scalar",()=>tE.scalar),s.export(r,"selu",()=>tA.selu),s.export(r,"separableConv2d",()=>tF.separableConv2d),s.export(r,"setdiff1dAsync",()=>tR.setdiff1dAsync),s.export(r,"sigmoid",()=>tD.sigmoid),s.export(r,"sign",()=>tP.sign),s.export(r,"sin",()=>t$.sin),s.export(r,"sinh",()=>tM.sinh),s.export(r,"slice",()=>tO.slice),s.export(r,"slice1d",()=>tB.slice1d),s.export(r,"slice2d",()=>tq.slice2d),s.export(r,"slice3d",()=>tL.slice3d),s.export(r,"slice4d",()=>tV.slice4d),s.export(r,"softmax",()=>tG.softmax),s.export(r,"softplus",()=>tz.softplus),s.export(r,"spaceToBatchND",()=>tU.spaceToBatchND),s.export(r,"fft",()=>tX.fft),s.export(r,"ifft",()=>tW.ifft),s.export(r,"irfft",()=>tH.irfft),s.export(r,"rfft",()=>tK.rfft),s.export(r,"split",()=>tJ.split),s.export(r,"sqrt",()=>tY.sqrt),s.export(r,"square",()=>tZ.square),s.export(r,"squaredDifference",()=>tQ.squaredDifference),s.export(r,"squeeze",()=>t0.squeeze),s.export(r,"stack",()=>t1.stack),s.export(r,"step",()=>t2.step),s.export(r,"stridedSlice",()=>t3.stridedSlice),s.export(r,"sub",()=>t4.sub),s.export(r,"sum",()=>t6.sum),s.export(r,"tan",()=>t5.tan),s.export(r,"tanh",()=>t7.tanh),s.export(r,"tensor",()=>t8.tensor),s.export(r,"tensor1d",()=>t9.tensor1d),s.export(r,"tensor2d",()=>re.tensor2d),s.export(r,"tensor3d",()=>rt.tensor3d),s.export(r,"tensor4d",()=>rr.tensor4d),s.export(r,"tensor5d",()=>rn.tensor5d),s.export(r,"tensor6d",()=>rs.tensor6d),s.export(r,"tensorScatterUpdate",()=>ra.tensorScatterUpdate),s.export(r,"tile",()=>ro.tile),s.export(r,"topk",()=>rl.topk),s.export(r,"truncatedNormal",()=>ri.truncatedNormal),s.export(r,"unique",()=>ru.unique),s.export(r,"unsortedSegmentSum",()=>rp.unsortedSegmentSum),s.export(r,"unstack",()=>rc.unstack),s.export(r,"upperBound",()=>rd.upperBound),s.export(r,"variable",()=>rf.variable),s.export(r,"where",()=>rh.where),s.export(r,"whereAsync",()=>rm.whereAsync),s.export(r,"zeros",()=>rg.zeros),s.export(r,"zerosLike",()=>rx.zerosLike),s.export(r,"op",()=>rS.op),s.export(r,"OP_SCOPE_SUFFIX",()=>rS.OP_SCOPE_SUFFIX),s.export(r,"image",()=>ni),s.export(r,"linalg",()=>nu),s.export(r,"losses",()=>np),s.export(r,"spectral",()=>no),s.export(r,"fused",()=>rE),s.export(r,"signal",()=>nl),s.export(r,"sparse",()=>nc),s.export(r,"string",()=>nd);var a=e("./abs"),o=e("./acos"),l=e("./acosh"),i=e("./add"),u=e("./add_n"),p=e("./all"),c=e("./any"),d=e("./arg_max"),f=e("./arg_min"),h=e("./asin"),m=e("./asinh"),g=e("./atan"),x=e("./atan2"),v=e("./atanh"),y=e("./avg_pool"),_=e("./avg_pool_3d"),b=e("./basic_lstm_cell"),k=e("./batch_to_space_nd"),T=e("./batchnorm"),w=e("./batchnorm2d"),I=e("./batchnorm3d"),j=e("./batchnorm4d"),C=e("./bincount"),N=e("./bitwise_and"),S=e("./broadcast_args"),E=e("./broadcast_to"),A=e("./buffer"),F=e("./cast"),R=e("./ceil"),D=e("./clip_by_value"),P=e("./clone"),$=e("./complex"),M=e("./concat"),O=e("./concat_1d"),B=e("./concat_2d"),q=e("./concat_3d"),L=e("./concat_4d"),V=e("./conv1d"),G=e("./conv2d"),z=e("./conv2d_transpose"),U=e("./conv3d"),X=e("./conv3d_transpose"),W=e("./cos"),H=e("./cosh"),K=e("./cumprod"),J=e("./cumsum"),Y=e("./dense_bincount"),Z=e("./depth_to_space"),Q=e("./depthwise_conv2d"),ee=e("./diag"),et=e("./dilation2d"),er=e("./div"),en=e("./div_no_nan"),es=e("./dot"),ea=e("./einsum"),eo=e("./elu"),el=e("./ensure_shape"),ei=e("./equal"),eu=e("./erf"),ep=e("./euclidean_norm"),ec=e("./exp"),ed=e("./expand_dims"),ef=e("./expm1"),eh=e("./eye"),em=e("./fill"),eg=e("./floor"),ex=e("./floorDiv"),ev=e("./gather"),ey=e("./greater"),e_=e("./greater_equal"),eb=e("./imag"),ek=e("./is_finite"),eT=e("./is_inf"),ew=e("./is_nan"),eI=e("./leaky_relu"),ej=e("./less"),eC=e("./less_equal"),eN=e("./linspace"),eS=e("./local_response_normalization"),eE=e("./log"),eA=e("./log1p"),eF=e("./log_sigmoid"),eR=e("./log_softmax"),eD=e("./log_sum_exp"),eP=e("./logical_and"),e$=e("./logical_not"),eM=e("./logical_or"),eO=e("./logical_xor"),eB=e("./lower_bound"),eq=e("./mat_mul"),eL=e("./max"),eV=e("./max_pool"),eG=e("./max_pool_3d"),ez=e("./max_pool_with_argmax"),eU=e("./maximum"),eX=e("./mean"),eW=e("./meshgrid"),eH=e("./min"),eK=e("./minimum"),eJ=e("./mirror_pad"),eY=e("./mod"),eZ=e("./moments"),eQ=e("./mul"),e0=e("./multi_rnn_cell"),e1=e("./multinomial"),e2=e("./neg"),e3=e("./not_equal"),e4=e("./one_hot"),e6=e("./ones"),e5=e("./ones_like"),e7=e("./outer_product"),e8=e("./pad"),e9=e("./pad1d"),te=e("./pad2d"),tt=e("./pad3d"),tr=e("./pad4d"),tn=e("./pool"),ts=e("./pow"),ta=e("./prelu"),to=e("./print"),tl=e("./prod"),ti=e("./ragged_gather"),tu=e("./ragged_range"),tp=e("./ragged_tensor_to_tensor"),tc=e("./rand"),td=e("./random_gamma"),tf=e("./random_normal"),th=e("./random_standard_normal"),tm=e("./random_uniform"),tg=e("./random_uniform_int"),tx=e("./range"),tv=e("./real"),ty=e("./reciprocal"),t_=e("./relu"),tb=e("./relu6"),tk=e("./reshape"),tT=e("./reverse"),tw=e("./reverse_1d"),tI=e("./reverse_2d"),tj=e("./reverse_3d"),tC=e("./reverse_4d"),tN=e("./round"),tS=e("./rsqrt"),tE=e("./scalar"),tA=e("./selu"),tF=e("./separable_conv2d"),tR=e("./setdiff1d_async"),tD=e("./sigmoid"),tP=e("./sign"),t$=e("./sin"),tM=e("./sinh"),tO=e("./slice"),tB=e("./slice1d"),tq=e("./slice2d"),tL=e("./slice3d"),tV=e("./slice4d"),tG=e("./softmax"),tz=e("./softplus"),tU=e("./space_to_batch_nd"),tX=e("./spectral/fft"),tW=e("./spectral/ifft"),tH=e("./spectral/irfft"),tK=e("./spectral/rfft"),tJ=e("./split"),tY=e("./sqrt"),tZ=e("./square"),tQ=e("./squared_difference"),t0=e("./squeeze"),t1=e("./stack"),t2=e("./step"),t3=e("./strided_slice"),t4=e("./sub"),t6=e("./sum"),t5=e("./tan"),t7=e("./tanh"),t8=e("./tensor"),t9=e("./tensor1d"),re=e("./tensor2d"),rt=e("./tensor3d"),rr=e("./tensor4d"),rn=e("./tensor5d"),rs=e("./tensor6d"),ra=e("./tensor_scatter_update"),ro=e("./tile"),rl=e("./topk"),ri=e("./truncated_normal"),ru=e("./unique"),rp=e("./unsorted_segment_sum"),rc=e("./unstack"),rd=e("./upper_bound"),rf=e("./variable"),rh=e("./where"),rm=e("./where_async"),rg=e("./zeros"),rx=e("./zeros_like"),rv=e("./boolean_mask");s.exportAll(rv,r);var ry=e("./transpose");s.exportAll(ry,r);var r_=e("./norm");s.exportAll(r_,r);var rb=e("./moving_average");s.exportAll(rb,r);var rk=e("./scatter_nd");s.exportAll(rk,r);var rT=e("./search_sorted");s.exportAll(rT,r);var rw=e("./sparse_to_dense");s.exportAll(rw,r);var rI=e("./gather_nd");s.exportAll(rI,r);var rj=e("./dropout");s.exportAll(rj,r);var rC=e("./signal_ops_util");s.exportAll(rC,r);var rN=e("./in_top_k");s.exportAll(rN,r);var rS=e("./operation"),rE=e("./fused_ops"),rA=e("./signal/hamming_window"),rF=e("./signal/hann_window"),rR=e("./signal/frame"),rD=e("./signal/stft"),rP=e("./image/crop_and_resize"),r$=e("./image/flip_left_right"),rM=e("./image/grayscale_to_rgb"),rO=e("./image/rgb_to_grayscale"),rB=e("./image/rotate_with_offset"),rq=e("./image/non_max_suppression"),rL=e("./image/non_max_suppression_async"),rV=e("./image/non_max_suppression_with_score"),rG=e("./image/non_max_suppression_with_score_async"),rz=e("./image/non_max_suppression_padded"),rU=e("./image/non_max_suppression_padded_async"),rX=e("./image/resize_bilinear"),rW=e("./image/resize_nearest_neighbor"),rH=e("./image/threshold"),rK=e("./image/transform"),rJ=e("./linalg/band_part"),rY=e("./linalg/gram_schmidt"),rZ=e("./linalg/qr"),rQ=e("./losses/absolute_difference"),r0=e("./losses/compute_weighted_loss"),r1=e("./losses/cosine_distance"),r2=e("./losses/hinge_loss"),r3=e("./losses/huber_loss"),r4=e("./losses/log_loss"),r6=e("./losses/mean_squared_error"),r5=e("./losses/sigmoid_cross_entropy"),r7=e("./losses/softmax_cross_entropy"),r8=e("./sparse/sparse_fill_empty_rows"),r9=e("./sparse/sparse_reshape"),ne=e("./sparse/sparse_segment_mean"),nt=e("./sparse/sparse_segment_sum"),nr=e("./string/string_n_grams"),nn=e("./string/string_split"),ns=e("./string/string_to_hash_bucket_fast"),na=e("./string/static_regex_replace");let no={fft:tX.fft,ifft:tW.ifft,rfft:tK.rfft,irfft:tH.irfft},nl={hammingWindow:rA.hammingWindow,hannWindow:rF.hannWindow,frame:rR.frame,stft:rD.stft},ni={flipLeftRight:r$.flipLeftRight,grayscaleToRGB:rM.grayscaleToRGB,resizeNearestNeighbor:rW.resizeNearestNeighbor,resizeBilinear:rX.resizeBilinear,rgbToGrayscale:rO.rgbToGrayscale,rotateWithOffset:rB.rotateWithOffset,cropAndResize:rP.cropAndResize,nonMaxSuppression:rq.nonMaxSuppression,nonMaxSuppressionAsync:rL.nonMaxSuppressionAsync,nonMaxSuppressionWithScore:rV.nonMaxSuppressionWithScore,nonMaxSuppressionWithScoreAsync:rG.nonMaxSuppressionWithScoreAsync,nonMaxSuppressionPadded:rz.nonMaxSuppressionPadded,nonMaxSuppressionPaddedAsync:rU.nonMaxSuppressionPaddedAsync,threshold:rH.threshold,transform:rK.transform},nu={bandPart:rJ.bandPart,gramSchmidt:rY.gramSchmidt,qr:rZ.qr},np={absoluteDifference:rQ.absoluteDifference,computeWeightedLoss:r0.computeWeightedLoss,cosineDistance:r1.cosineDistance,hingeLoss:r2.hingeLoss,huberLoss:r3.huberLoss,logLoss:r4.logLoss,meanSquaredError:r6.meanSquaredError,sigmoidCrossEntropy:r5.sigmoidCrossEntropy,softmaxCrossEntropy:r7.softmaxCrossEntropy},nc={sparseFillEmptyRows:r8.sparseFillEmptyRows,sparseReshape:r9.sparseReshape,sparseSegmentMean:ne.sparseSegmentMean,sparseSegmentSum:nt.sparseSegmentSum},nd={stringNGrams:nr.stringNGrams,stringSplit:nn.stringSplit,stringToHashBucketFast:ns.stringToHashBucketFast,staticRegexReplace:na.staticRegexReplace}},{"./abs":"14Cig","./acos":"epzsV","./acosh":"8bV2B","./add":"hFQoV","./add_n":"dD1l5","./all":"913BV","./any":"ljSgq","./arg_max":"fJiZU","./arg_min":"hptjc","./asin":"g8CRV","./asinh":"a5fTj","./atan":"5YSnV","./atan2":"dZCcQ","./atanh":"56eEX","./avg_pool":"9TeE2","./avg_pool_3d":"i0teh","./basic_lstm_cell":"ljMEN","./batch_to_space_nd":"lmDO3","./batchnorm":"a14hO","./batchnorm2d":"4QK40","./batchnorm3d":"9K0VX","./batchnorm4d":"12bZ5","./bincount":"2K5KM","./bitwise_and":"dLkHl","./broadcast_args":"hnbiR","./broadcast_to":"2sLNU","./buffer":"4NIGp","./cast":"hLsoh","./ceil":"3cRYj","./clip_by_value":"eJlYk","./clone":"etnty","./complex":"kNXzJ","./concat":"gMgmG","./concat_1d":"kVnPe","./concat_2d":"dmtGN","./concat_3d":"ceEsl","./concat_4d":"kxLEJ","./conv1d":"co9ZC","./conv2d":"l6vGH","./conv2d_transpose":"8zQGX","./conv3d":"7FSE1","./conv3d_transpose":"jxCMI","./cos":"lYlPm","./cosh":"ffn7C","./cumprod":"8hZ8h","./cumsum":"6ayfz","./dense_bincount":"8MTTj","./depth_to_space":"2p1gZ","./depthwise_conv2d":"gd3xg","./diag":"lQfbR","./dilation2d":"7SOKR","./div":"41SAh","./div_no_nan":"kIg8P","./dot":"jw4no","./einsum":"K8tpc","./elu":"dBwXu","./ensure_shape":"kYSxz","./equal":"hdhRS","./erf":"1SHvo","./euclidean_norm":"7mwBn","./exp":"kUZlF","./expand_dims":"5ptrQ","./expm1":"5WYht","./eye":"4tXnX","./fill":"8mmbD","./floor":"gvsUY","./floorDiv":"7OkXF","./gather":"3E7pK","./greater":"2eOHm","./greater_equal":"dNsYe","./imag":"hTlEs","./is_finite":"gjYsA","./is_inf":"hB09v","./is_nan":"VGsZz","./leaky_relu":"cbLfe","./less":"lAnag","./less_equal":"hr4Wx","./linspace":"3clfJ","./local_response_normalization":"akyoZ","./log":"eViUW","./log1p":"9BkXU","./log_sigmoid":"gUSZK","./log_softmax":"jtgTU","./log_sum_exp":"3NSXY","./logical_and":"2GD4u","./logical_not":"dzFc4","./logical_or":"cxadB","./logical_xor":"2kGuk","./lower_bound":"gQy87","./mat_mul":"apoIX","./max":"bltsa","./max_pool":"2Fitc","./max_pool_3d":"3mkgl","./max_pool_with_argmax":"lcQKz","./maximum":"88xph","./mean":"bxfIu","./meshgrid":"eaZzY","./min":"76Xmb","./minimum":"a0QkP","./mirror_pad":"1Z7bD","./mod":"4WAbT","./moments":"hXTo2","./mul":"1OlNG","./multi_rnn_cell":"fMj5y","./multinomial":"gnrld","./neg":"2F5Dw","./not_equal":"lxSCb","./one_hot":"4GWpu","./ones":"dl3Yg","./ones_like":"cn3X8","./outer_product":"9kugx","./pad":"7cVfh","./pad1d":"7UNxa","./pad2d":"6qpzf","./pad3d":"3t3Yv","./pad4d":"6D0Qr","./pool":"jFKaD","./pow":"5RrXs","./prelu":"3aTLU","./print":"lDGsR","./prod":"kAmws","./ragged_gather":"lpcTb","./ragged_range":"f84s1","./ragged_tensor_to_tensor":"iFyiW","./rand":"aoss5","./random_gamma":"bhQOr","./random_normal":"cjE2b","./random_standard_normal":"19k9D","./random_uniform":"6DgfI","./random_uniform_int":"gIPaK","./range":"3Dxwx","./real":"jx2td","./reciprocal":"lOWKf","./relu":"lnyoN","./relu6":"hKBJU","./reshape":"aTsgx","./reverse":"8iYj6","./reverse_1d":"2843m","./reverse_2d":"5Zgqr","./reverse_3d":"hMOJv","./reverse_4d":"55Bae","./round":"9tOvu","./rsqrt":"iLf1A","./scalar":"forpx","./selu":"l7aoL","./separable_conv2d":"iUOk8","./setdiff1d_async":"cfq5W","./sigmoid":"1G17C","./sign":"lGhiA","./sin":"ciCGP","./sinh":"cqnkJ","./slice":"dV0br","./slice1d":"g6fqX","./slice2d":"g7MwC","./slice3d":"eVyb0","./slice4d":"jQzWC","./softmax":"4d9ZW","./softplus":"awgFs","./space_to_batch_nd":"fT19s","./spectral/fft":"4GoOf","./spectral/ifft":"9td2A","./spectral/irfft":"1kLeO","./spectral/rfft":"kKu6i","./split":"ltt7k","./sqrt":"fp4cF","./square":"kpUEg","./squared_difference":"72ICX","./squeeze":"3Urcw","./stack":"70ZzF","./step":"elPQj","./strided_slice":"droI1","./sub":"AdEY0","./sum":"gHwwi","./tan":"fVbhi","./tanh":"dXglC","./tensor":"gToZD","./tensor1d":"6O0tO","./tensor2d":"4WGwJ","./tensor3d":"3qZbK","./tensor4d":"GaNB4","./tensor5d":"hRara","./tensor6d":"6cy9P","./tensor_scatter_update":"7IFMo","./tile":"8W0dk","./topk":"7xEje","./truncated_normal":"1GTNp","./unique":"5hwsi","./unsorted_segment_sum":"89hnB","./unstack":"3KTTp","./upper_bound":"c9heh","./variable":"4R7Zb","./where":"kHB4a","./where_async":"96SOt","./zeros":"egJAn","./zeros_like":"bDxUb","./boolean_mask":"3g3bN","./transpose":"lLEyz","./norm":"imIRJ","./moving_average":"275QJ","./scatter_nd":"32FPG","./search_sorted":"lDhLu","./sparse_to_dense":"flkys","./gather_nd":"eTAMF","./dropout":"doPmo","./signal_ops_util":"gkBkm","./in_top_k":"cRqRa","./operation":"hyTBr","./fused_ops":"fa2Yg","./signal/hamming_window":"lBTZD","./signal/hann_window":"6vwjv","./signal/frame":"aSMoZ","./signal/stft":"29DQL","./image/crop_and_resize":"bMR9v","./image/flip_left_right":"2sCb9","./image/grayscale_to_rgb":"6hwzb","./image/rgb_to_grayscale":"jxs1e","./image/rotate_with_offset":"4tETa","./image/non_max_suppression":"6xovH","./image/non_max_suppression_async":"k322Y","./image/non_max_suppression_with_score":"cP9xy","./image/non_max_suppression_with_score_async":"340Q3","./image/non_max_suppression_padded":"gHKAK","./image/non_max_suppression_padded_async":"2v3kJ","./image/resize_bilinear":"gLSq4","./image/resize_nearest_neighbor":"3UtcM","./image/threshold":"4R5Wc","./image/transform":"473XX","./linalg/band_part":"1tGXA","./linalg/gram_schmidt":"9OK9E","./linalg/qr":"fHIwp","./losses/absolute_difference":"lgspK","./losses/compute_weighted_loss":"bv9VN","./losses/cosine_distance":"a4RKl","./losses/hinge_loss":"gttQl","./losses/huber_loss":"gsRA1","./losses/log_loss":"i4Xhu","./losses/mean_squared_error":"6AiUv","./losses/sigmoid_cross_entropy":"2PWd6","./losses/softmax_cross_entropy":"kIzlr","./sparse/sparse_fill_empty_rows":"6nkYV","./sparse/sparse_reshape":"7zvNq","./sparse/sparse_segment_mean":"3Esy8","./sparse/sparse_segment_sum":"xgJTL","./string/string_n_grams":"f02Nx","./string/string_split":"j1RPV","./string/string_to_hash_bucket_fast":"iata8","./string/static_regex_replace":"190yW","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],epzsV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acos",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({acos_:function(e){let t=(0,l.convertToTensor)(e,"x","acos");return a.ENGINE.runKernel(o.Acos,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8bV2B":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acosh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({acosh_:function(e){let t=(0,l.convertToTensor)(e,"x","acosh");return a.ENGINE.runKernel(o.Acosh,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dD1l5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addN",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({addN_:function(e){i.assert(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),i.assert(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((e,t)=>(0,l.convertToTensor)(e,`tensors${t}`,"addN")),r=t[0];return t.forEach(e=>{if(e.dtype!==r.dtype)throw Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(e=>{if(!i.arraysEqual(e.shape,r.shape))throw Error("All tensors passed to tf.addN() must have the same shape")}),a.ENGINE.runKernel(o.AddN,t)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"913BV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"all",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({all_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","all","bool");return a.ENGINE.runKernel(o.All,{x:n},{axis:t,keepDims:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ljSgq:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"any",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({any_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","any","bool");return a.ENGINE.runKernel(o.Any,{x:n},{axis:t,keepDims:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fJiZU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMax",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({argMax_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","argMax");return a.ENGINE.runKernel(o.ArgMax,{x:r},{axis:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hptjc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMin",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({argMin_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","argMin");return a.ENGINE.runKernel(o.ArgMin,{x:r},{axis:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],g8CRV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asin",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({asin_:function(e){let t=(0,l.convertToTensor)(e,"x","asin");return a.ENGINE.runKernel(o.Asin,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],a5fTj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asinh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({asinh_:function(e){let t=(0,l.convertToTensor)(e,"x","asinh");return a.ENGINE.runKernel(o.Asinh,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5YSnV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({atan_:function(e){let t=(0,l.convertToTensor)(e,"x","atan");return a.ENGINE.runKernel(o.Atan,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dZCcQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan2",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({atan2_:function(e,t){let r=(0,i.convertToTensor)(e,"a","atan2"),n=(0,i.convertToTensor)(t,"b","atan2");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Atan2,s)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"56eEX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atanh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({atanh_:function(e){let t=(0,l.convertToTensor)(e,"x","atanh");return a.ENGINE.runKernel(o.Atanh,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9TeE2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool",()=>f);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./cast"),p=e("./conv_util"),c=e("./operation"),d=e("./reshape");let f=(0,c.op)({avgPool_:function(e,t,r,n,s){let c=(0,l.convertToTensor)(e,"x","avgPool","float32");i.assert(p.eitherStridesOrDilationsAreOne(r,1),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${r} and dilations '1'`);let f=c,h=!1;3===c.rank&&(h=!0,f=(0,d.reshape)(c,[1,c.shape[0],c.shape[1],c.shape[2]])),i.assert(4===f.rank,()=>`Error in avgPool: x must be rank 4 but got rank ${f.rank}.`),p.checkPadOnDimRoundingMode("avgPool",n,s);let m={x:f},g=a.ENGINE.runKernel(o.AvgPool,m,{filterSize:t,strides:r,pad:n,dimRoundingMode:s});return(g=(0,u.cast)(g,c.dtype),h)?(0,d.reshape)(g,[g.shape[1],g.shape[2],g.shape[3]]):g}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./cast":"hLsoh","./conv_util":"i0dk6","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],i0dk6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"computeDilation2DInfo",()=>o),s.export(r,"computePool2DInfo",()=>l),s.export(r,"computePool3DInfo",()=>i),s.export(r,"computeConv2DInfo",()=>u),s.export(r,"computeConv3DInfo",()=>p),s.export(r,"computeDefaultPad",()=>c),s.export(r,"tupleValuesAreOne",()=>g),s.export(r,"eitherStridesOrDilationsAreOne",()=>x),s.export(r,"stridesOrDilationsArePositive",()=>v),s.export(r,"convertConv2DDataFormat",()=>y),s.export(r,"checkPadOnDimRoundingMode",()=>_);var a=e("../util");function o(e,t,r,n,s="NHWC",a){let l=[...t,e[3]];return u(e,l,r,a,n,null,null,y(s))}function l(e,t,r,n,s,a,o="channelsLast"){let i,[p,c]=d(t);if("channelsLast"===o)i=[p,c,e[3],e[3]];else if("channelsFirst"===o)i=[p,c,e[1],e[1]];else throw Error(`Unknown dataFormat ${o}`);return u(e,i,r,n,s,a,!1,o)}function i(e,t,r,n,s,a,o="NDHWC"){let l,u,[c,d,h]=f(t);if("NDHWC"===o)u="channelsLast",l=[c,d,h,e[4],e[4]];else if("NCDHW"===o)u="channelsFirst",l=[c,d,h,e[1],e[1]];else throw Error(`Unknown dataFormat ${o}`);return p(e,l,r,n,s,!1,u,a)}function u(e,t,r,n,s,a,o=!1,l="channelsLast"){let i,[p,f,g,x]=[-1,-1,-1,-1];if("channelsLast"===l)[p,f,g,x]=e;else if("channelsFirst"===l)[p,x,f,g]=e;else throw Error(`Unknown dataFormat ${l}`);let[v,y,,_]=t,[b,k]=d(r),[T,w]=d(n),I=h(v,T),j=h(y,w),{padInfo:C,outHeight:N,outWidth:S}=function(e,t,r,n,s,a,o,l,i){let u,p,d;if("number"==typeof e){var f,h;let s,o,i=0===e?"VALID":"NUMBER";u={top:e,bottom:e,left:e,right:e,type:i};let g=(f=[t,r],null==(h=e)&&(h=c(f,a,n)),s=f[0],o=f[1],[m((s-a+2*h)/n+1,l),m((o-a+2*h)/n+1,l)]);p=g[0],d=g[1]}else if("same"===e){let e=Math.max(0,((p=Math.ceil(t/n))-1)*n+a-t),l=Math.max(0,((d=Math.ceil(r/s))-1)*s+o-r),i=Math.floor(e/2),c=Math.floor(l/2);u={top:i,bottom:e-i,left:c,right:l-c,type:"SAME"}}else if("valid"===e)u={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-a+1)/n),d=Math.ceil((r-o+1)/s);else if("object"==typeof e){let c="channelsLast"===i?e[1][0]:e[2][0],f="channelsLast"===i?e[1][1]:e[2][1],h="channelsLast"===i?e[2][0]:e[3][0],g="channelsLast"===i?e[2][1]:e[3][1];u={top:c,bottom:f,left:h,right:g,type:0===c&&0===f&&0===h&&0===g?"VALID":"EXPLICIT"},p=m((t-a+c+f)/n+1,l),d=m((r-o+h+g)/s+1,l)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}(s,f,g,b,k,I,j,a,l),E=o?_*x:_;return"channelsFirst"===l?i=[p,E,N,S]:"channelsLast"===l&&(i=[p,N,S,E]),{batchSize:p,dataFormat:l,inHeight:f,inWidth:g,inChannels:x,outHeight:N,outWidth:S,outChannels:E,padInfo:C,strideHeight:b,strideWidth:k,filterHeight:v,filterWidth:y,effectiveFilterHeight:I,effectiveFilterWidth:j,dilationHeight:T,dilationWidth:w,inShape:e,outShape:i,filterShape:t}}function p(e,t,r,n,s,a=!1,o="channelsLast",l){let i,[u,d,g,x,v]=[-1,-1,-1,-1,-1];if("channelsLast"===o)[u,d,g,x,v]=e;else if("channelsFirst"===o)[u,v,d,g,x]=e;else throw Error(`Unknown dataFormat ${o}`);let[y,_,b,,k]=t,[T,w,I]=f(r),[j,C,N]=f(n),S=h(y,j),E=h(_,C),A=h(b,N),{padInfo:F,outDepth:R,outHeight:D,outWidth:P}=function(e,t,r,n,s,a,o,l,i,u,p){let d,f,h,g;if("valid"===e&&(e=0),"number"==typeof e){let x=0===e?"VALID":"NUMBER";d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:x};let v=function(e,t,r,n,s,a){null==s&&(s=c(e,t[0],n[0]));let o=[0,0,0,1];for(let r=0;r<3;r++)e[r]+2*s>=t[r]&&(o[r]=m((e[r]-t[r]+2*s)/n[r]+1,a));return o}([t,r,n,1],[l,i,u],0,[s,a,o],e,p);f=v[0],h=v[1],g=v[2]}else if("same"===e){let e=((f=Math.ceil(t/s))-1)*s+l-t,p=((h=Math.ceil(r/a))-1)*a+i-r,c=((g=Math.ceil(n/o))-1)*o+u-n,m=Math.floor(e/2),x=Math.floor(p/2),v=Math.floor(c/2);d={top:x,bottom:p-x,left:v,right:c-v,front:m,back:e-m,type:"SAME"}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:f,outHeight:h,outWidth:g}}(s,d,g,x,T,w,I,S,E,A,l),$=a?k*v:k;return"channelsFirst"===o?i=[u,$,R,D,P]:"channelsLast"===o&&(i=[u,R,D,P,$]),{batchSize:u,dataFormat:o,inDepth:d,inHeight:g,inWidth:x,inChannels:v,outDepth:R,outHeight:D,outWidth:P,outChannels:$,padInfo:F,strideDepth:T,strideHeight:w,strideWidth:I,filterDepth:y,filterHeight:_,filterWidth:b,effectiveFilterDepth:S,effectiveFilterHeight:E,effectiveFilterWidth:A,dilationDepth:j,dilationHeight:C,dilationWidth:N,inShape:e,outShape:i,filterShape:t}}function c(e,t,r,n=1){let s=h(t,n);return Math.floor((e[0]*(r-1)-r+s)/2)}function d(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function f(e){return"number"==typeof e?[e,e,e]:e}function h(e,t){return t<=1?e:e+(e-1)*(t-1)}function m(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 Error(`Unknown roundingMode ${t}`)}}function g(e){let[t,r,n]=d(e);return 1===t&&1===r&&1===n}function x(e,t){return g(e)||g(t)}function v(e){return d(e).every(e=>e>0)}function y(e){if("NHWC"===e)return"channelsLast";if("NCHW"===e)return"channelsFirst";throw Error(`Unknown dataFormat ${e}`)}function _(e,t,r){if(null!=r)if("string"==typeof t)throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${r} but got pad ${t}.`);else if("number"==typeof t)a.assert(a.isInt(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${r} but got pad ${t}.`);else if("object"==typeof t)t.forEach(t=>{t.forEach(t=>{a.assert(a.isInt(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${r} but got pad ${t}.`)})});else throw Error(`Error in ${e}: Unknown padding parameter: ${t}`)}},{"../util":"lLzfH","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aTsgx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reshape",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({reshape_:function(e,t){let r=(0,l.convertToTensor)(e,"x","reshape","string_or_numeric");return a.ENGINE.runKernel(o.Reshape,{x:r},{shape:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],i0teh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3d",()=>f);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./cast"),p=e("./conv_util"),c=e("./operation"),d=e("./reshape");let f=(0,c.op)({avgPool3d_:function(e,t,r,n,s,c="NDHWC"){let f=(0,l.convertToTensor)(e,"x","avgPool3d","float32"),h=f,m=!1;4===f.rank&&(m=!0,h=(0,d.reshape)(f,[1,f.shape[0],f.shape[1],f.shape[2],f.shape[3]])),i.assert(5===h.rank,()=>`Error in avgPool3d: x must be rank 5 but got rank ${h.rank}.`),i.assert("NDHWC"===c,()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${c}`),i.assert("number"==typeof r&&r>0||Array.isArray(r)&&r[0]>0&&r[1]>0&&r[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${r}'`),(0,p.checkPadOnDimRoundingMode)("avgPool3d",n,s);let g={x:h},x=a.ENGINE.runKernel(o.AvgPool3D,g,{filterSize:t,strides:r,pad:n,dimRoundingMode:s,dataFormat:c});return(x=(0,u.cast)(x,h.dtype),m)?(0,d.reshape)(x,[x.shape[1],x.shape[2],x.shape[3],x.shape[4]]):x}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./cast":"hLsoh","./conv_util":"i0dk6","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ljMEN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"basicLSTMCell",()=>h);var a=e("../tensor_util_env"),o=e("./add"),l=e("./concat"),i=e("./mat_mul"),u=e("./mul"),p=e("./operation"),c=e("./sigmoid"),d=e("./slice"),f=e("./tanh");let h=(0,p.op)({basicLSTMCell_:function(e,t,r,n,s,p){let h=(0,a.convertToTensor)(e,"forgetBias","basicLSTMCell"),m=(0,a.convertToTensor)(t,"lstmKernel","basicLSTMCell"),g=(0,a.convertToTensor)(r,"lstmBias","basicLSTMCell"),x=(0,a.convertToTensor)(n,"data","basicLSTMCell"),v=(0,a.convertToTensor)(s,"c","basicLSTMCell"),y=(0,a.convertToTensor)(p,"h","basicLSTMCell"),_=(0,l.concat)([x,y],1),b=(0,i.matMul)(_,m),k=(0,o.add)(b,g),T=k.shape[0],w=k.shape[1]/4,I=[T,w],j=(0,d.slice)(k,[0,0],I),C=(0,d.slice)(k,[0,w],I),N=(0,d.slice)(k,[0,2*w],I),S=(0,d.slice)(k,[0,3*w],I),E=(0,o.add)((0,u.mul)((0,c.sigmoid)(j),(0,f.tanh)(C)),(0,u.mul)(v,(0,c.sigmoid)((0,o.add)(h,N)))),A=(0,u.mul)((0,f.tanh)(E),(0,c.sigmoid)(S));return[E,A]}})},{"../tensor_util_env":"4hoNq","./add":"hFQoV","./concat":"gMgmG","./mat_mul":"apoIX","./mul":"1OlNG","./operation":"hyTBr","./sigmoid":"1G17C","./slice":"dV0br","./tanh":"dXglC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gMgmG:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./clone");let p=(0,e("./operation").op)({concat_:function(e,t=0){(0,i.assert)(e.length>=1,()=>"Pass at least one tensor to concat");let r=(0,l.convertToTensorArray)(e,"tensors","concat","string_or_numeric");return("complex64"===r[0].dtype&&r.forEach(e=>{if("complex64"!==e.dtype)throw Error(`Cannot concatenate complex64 tensors with a tensor with dtype ${e.dtype}. `)}),1===r.length)?(0,u.clone)(r[0]):a.ENGINE.runKernel(o.Concat,r,{axis:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"2IDj3","./clone":"etnty","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1G17C":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sigmoid",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sigmoid_:function(e){let t=(0,l.convertToTensor)(e,"x","sigmoid","float32");return a.ENGINE.runKernel(o.Sigmoid,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dV0br:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({slice_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","slice","string_or_numeric");if(0===n.rank)throw Error("Slicing scalar is not possible");return a.ENGINE.runKernel(o.Slice,{x:n},{begin:t,size:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dXglC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tanh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({tanh_:function(e){let t=(0,l.convertToTensor)(e,"x","tanh","float32");return a.ENGINE.runKernel(o.Tanh,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lmDO3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchToSpaceND",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({batchToSpaceND_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","batchToSpaceND"),s=t.reduce((e,t)=>e*t);return i.assert(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),i.assert(r.length===t.length,()=>`crops.length is ${r.length} but should be equal to blockShape.length ${t.length}`),i.assert(n.shape[0]%s==0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${s}`),a.ENGINE.runKernel(o.BatchToSpaceND,{x:n},{blockShape:t,crops:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],a14hO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./batchnorm_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({batchNorm_:function(e,t,r,n,s,p){let d,f;null==p&&(p=.001);let h=(0,l.convertToTensor)(e,"x","batchNorm"),m=(0,l.convertToTensor)(t,"mean","batchNorm"),g=(0,l.convertToTensor)(r,"variance","batchNorm");null!=s&&(d=(0,l.convertToTensor)(s,"scale","batchNorm")),null!=n&&(f=(0,l.convertToTensor)(n,"offset","batchNorm")),i.assert(m.rank===g.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),i.assert(null==f||m.rank===f.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),i.assert(null==d||m.rank===d.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let x={x:(0,u.xAs4D)(h),scale:d,offset:f,mean:m,variance:g},v={varianceEpsilon:p},y=a.ENGINE.runKernel(o.FusedBatchNorm,x,v);return(0,c.reshape)(y,h.shape)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./batchnorm_util":"3591c","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3591c":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"xAs4D",()=>o);var a=e("./reshape");function o(e){return 0===e.rank||1===e.rank?(0,a.reshape)(e,[1,1,1,e.size]):2===e.rank?(0,a.reshape)(e,[1,1,e.shape[0],e.shape[1]]):3===e.rank?(0,a.reshape)(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e}},{"./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4QK40":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm2d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./batchnorm");let i=(0,e("./operation").op)({batchNorm2d_:function(e,t,r,n,s,i){let u,p,c=(0,a.convertToTensor)(e,"x","batchNorm"),d=(0,a.convertToTensor)(t,"mean","batchNorm"),f=(0,a.convertToTensor)(r,"variance","batchNorm");return null!=s&&(u=(0,a.convertToTensor)(s,"scale","batchNorm")),null!=n&&(p=(0,a.convertToTensor)(n,"offset","batchNorm")),o.assert(2===c.rank,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${c.rank}.`),o.assert(2===d.rank||1===d.rank,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${d.rank}.`),o.assert(2===f.rank||1===f.rank,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${f.rank}.`),null!=u&&o.assert(2===u.rank||1===u.rank,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),null!=p&&o.assert(2===p.rank||1===p.rank,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),(0,l.batchNorm)(c,d,f,p,u,i)}})},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./batchnorm":"a14hO","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9K0VX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm3d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./batchnorm");let i=(0,e("./operation").op)({batchNorm3d_:function(e,t,r,n,s,i){let u,p,c=(0,a.convertToTensor)(e,"x","batchNorm"),d=(0,a.convertToTensor)(t,"mean","batchNorm"),f=(0,a.convertToTensor)(r,"variance","batchNorm");return null!=s&&(u=(0,a.convertToTensor)(s,"scale","batchNorm")),null!=n&&(p=(0,a.convertToTensor)(n,"offset","batchNorm")),o.assert(3===c.rank,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${c.rank}.`),o.assert(3===d.rank||1===d.rank,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${d.rank}.`),o.assert(3===f.rank||1===f.rank,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${f.rank}.`),null!=u&&o.assert(3===u.rank||1===u.rank,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),null!=p&&o.assert(3===p.rank||1===p.rank,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),(0,l.batchNorm)(c,d,f,p,u,i)}})},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./batchnorm":"a14hO","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"12bZ5":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm4d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./batchnorm");let i=(0,e("./operation").op)({batchNorm4d_:function(e,t,r,n,s,i){let u,p,c=(0,a.convertToTensor)(e,"x","batchNorm"),d=(0,a.convertToTensor)(t,"mean","batchNorm"),f=(0,a.convertToTensor)(r,"variance","batchNorm");return null!=s&&(u=(0,a.convertToTensor)(s,"scale","batchNorm")),null!=n&&(p=(0,a.convertToTensor)(n,"offset","batchNorm")),o.assert(4===c.rank,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${c.rank}.`),o.assert(4===d.rank||1===d.rank,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${d.rank}.`),o.assert(4===f.rank||1===f.rank,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${f.rank}.`),null!=u&&o.assert(4===u.rank||1===u.rank,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),null!=p&&o.assert(4===p.rank||1===p.rank,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),(0,l.batchNorm)(c,d,f,p,u,i)}})},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./batchnorm":"a14hO","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2K5KM":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bincount",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({bincount_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","bincount"),s=(0,l.convertToTensor)(t,"weights","bincount");return i.assert("int32"===n.dtype,()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`),i.assert(r>=0,()=>`size must be non-negative, but got ${r}.`),i.assert(s.size===n.size||0===s.size,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${n.shape}, weights shape: ${s.shape}.`),a.ENGINE.runKernel(o.Bincount,{x:n,weights:s},{size:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dLkHl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bitwiseAnd",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util_base");let u=(0,e("./operation").op)({bitwiseAnd_:function(e,t){let r=(0,l.convertToTensor)(e,"x","bitwiseAnd"),n=(0,l.convertToTensor)(t,"y","bitwiseAnd");if(!(0,i.arraysEqual)(r.shape,n.shape))throw Error(`BitwiseAnd: Tensors must have the same shape. x: ${r.shape}, y: ${n.shape}`);if("int32"!==r.dtype||"int32"!==n.dtype)throw Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${r.dtype} and type of y: ${n.dtype}`);return a.ENGINE.runKernel(o.BitwiseAnd,{a:r,b:n})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util_base":"2IDj3","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hnbiR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"broadcastArgs",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({broadcastArgs_:function(e,t){let r=(0,l.convertToTensor)(e,"s0","broadcastArgs","int32"),n=(0,l.convertToTensor)(t,"s1","broadcastArgs","int32");if(1!==r.rank)throw Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${r.rank}`);if(1!==n.rank)throw Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${n.rank}`);return a.ENGINE.runKernel(o.BroadcastArgs,{s0:r,s1:n})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2sLNU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"broadcastTo",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util_base"),u=e("./clone"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({broadcastTo_:function(e,t){let r=(0,l.convertToTensor)(e,"broadcastTo","x"),n=r.shape;if((0,i.assertNonNegativeIntegerDimensions)(t),t.length<r.rank)throw Error(`broadcastTo(): shape.length=${t.length} < input.rank=${r.rank}.`);if(t.length>r.rank){let e=r.shape.slice();for(;e.length<t.length;)e.unshift(1);r=(0,c.reshape)(r,e)}let s=r.shape,p=Array.from(t);for(let e=t.length-1;e>=0;e--)if(s[e]===t[e])p[e]=1;else if(1!==r.shape[e])throw Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);if(0===p.map((e,t)=>e>1?t:-1).filter(e=>e>=0).length)return(0,u.clone)(r);let d={x:r};return a.ENGINE.runKernel(o.Tile,d,{reps:p})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util_base":"2IDj3","./clone":"etnty","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3cRYj":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ceil",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({ceil_:function(e){let t=(0,l.convertToTensor)(e,"x","ceil","float32");return a.ENGINE.runKernel(o.Ceil,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eJlYk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clipByValue",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./fill");let p=(0,e("./operation").op)({clipByValue_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","clipByValue");return(i.assert(t<=r,()=>`Error in clip: min (${t}) must be less than or equal to max (${r}).`),t===r)?(0,u.fill)(n.shape,t,n.dtype):a.ENGINE.runKernel(o.ClipByValue,{x:n},{clipValueMin:t,clipValueMax:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./fill":"8mmbD","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kVnPe:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat1d",()=>o);var a=e("./concat");let o=(0,e("./operation").op)({concat1d_:function(e){return(0,a.concat)(e,0)}})},{"./concat":"gMgmG","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dmtGN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat2d",()=>o);var a=e("./concat");let o=(0,e("./operation").op)({concat2d_:function(e,t){return(0,a.concat)(e,t)}})},{"./concat":"gMgmG","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ceEsl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat3d",()=>o);var a=e("./concat");let o=(0,e("./operation").op)({concat3d_:function(e,t){return(0,a.concat)(e,t)}})},{"./concat":"gMgmG","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kxLEJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat4d",()=>o);var a=e("./concat");let o=(0,e("./operation").op)({concat4d_:function(e,t){return(0,a.concat)(e,t)}})},{"./concat":"gMgmG","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],co9ZC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv1d",()=>c);var a=e("../tensor_util_env"),o=e("../util"),l=e("./conv2d"),i=e("./conv_util"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({conv1d_:function(e,t,r,n,s="NWC",u=1,c){let d=(0,a.convertToTensor)(e,"x","conv1d"),f=(0,a.convertToTensor)(t,"filter","conv1d"),h=d,m=!1;2===d.rank&&(m=!0,h=(0,p.reshape)(d,[1,d.shape[0],d.shape[1]])),o.assert(3===h.rank,()=>`Error in conv1d: input must be rank 3, but got rank ${h.rank}.`),o.assert(3===f.rank,()=>`Error in conv1d: filter must be rank 3, but got rank ${f.rank}.`),i.checkPadOnDimRoundingMode("conv1d",n,c),o.assert(h.shape[2]===f.shape[1],()=>`Error in conv1d: depth of input (${h.shape[2]}) must match input depth for filter ${f.shape[1]}.`),o.assert(i.eitherStridesOrDilationsAreOne(r,u),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${r} and dilation '${u}'`),o.assert(i.stridesOrDilationsArePositive(u),()=>"Error in conv1D: Dilated rates should be larger than 0."),o.assert(i.stridesOrDilationsArePositive(r),()=>"Error in conv1D: Stride should be larger than 0."),o.assert("NWC"===s,()=>`Error in conv1d: got dataFormat of ${s} but only NWC is currently supported.`);let g=(0,p.reshape)(f,[1,f.shape[0],f.shape[1],f.shape[2]]),x=(0,p.reshape)(h,[h.shape[0],1,h.shape[1],h.shape[2]]),v=(0,l.conv2d)(x,g,[1,r],n,"NHWC",[1,u],c);return m?(0,p.reshape)(v,[v.shape[2],v.shape[3]]):(0,p.reshape)(v,[v.shape[0],v.shape[2],v.shape[3]])}})},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./conv2d":"l6vGH","./conv_util":"i0dk6","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],l6vGH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2d",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./conv_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({conv2d_:function(e,t,r,n,s="NHWC",p=[1,1],d){let f=(0,l.convertToTensor)(e,"x","conv2d","float32"),h=(0,l.convertToTensor)(t,"filter","conv2d","float32"),m=f,g=!1;3===f.rank&&(g=!0,m=(0,c.reshape)(f,[1,f.shape[0],f.shape[1],f.shape[2]])),i.assert(4===m.rank,()=>`Error in conv2d: input must be rank 4, but got rank ${m.rank}.`),i.assert(4===h.rank,()=>`Error in conv2d: filter must be rank 4, but got rank ${h.rank}.`),u.checkPadOnDimRoundingMode("conv2d",n,d);let x="NHWC"===s?m.shape[3]:m.shape[1];i.assert(x===h.shape[2],()=>`Error in conv2d: depth of input (${x}) must match input depth for filter ${h.shape[2]}.`),i.assert(u.eitherStridesOrDilationsAreOne(r,p),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${r} and dilations '${p}'`),i.assert(u.stridesOrDilationsArePositive(p),()=>"Error in conv2D: Dilated rates should be larger than 0."),i.assert(u.stridesOrDilationsArePositive(r),()=>"Error in conv2D: Strides should be larger than 0.");let v={x:m,filter:h},y=a.ENGINE.runKernel(o.Conv2D,v,{strides:r,pad:n,dataFormat:s,dilations:p,dimRoundingMode:d});return g?(0,c.reshape)(y,[y.shape[1],y.shape[2],y.shape[3]]):y}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./conv_util":"i0dk6","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8zQGX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2dTranspose",()=>l);var a=e("../tensor_util_env"),o=e("./conv2d_backprop_input");let l=(0,e("./operation").op)({conv2dTranspose_:function(e,t,r,n,s,l){let i=(0,a.convertToTensor)(e,"x","conv2dTranspose"),u=(0,a.convertToTensor)(t,"filter","conv2dTranspose");return(0,o.conv2DBackpropInput)(r,i,u,n,s,"NHWC",l)}})},{"../tensor_util_env":"4hoNq","./conv2d_backprop_input":"f5LCJ","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],f5LCJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropInput",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../util"),i=e("./conv_util"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({conv2DBackpropInput_:function(e,t,r,n,s,u="NHWC",c){l.assert(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let d=e,f=t,h=!1;3===t.rank&&(h=!0,f=(0,p.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2]]),d=[1,e[0],e[1],e[2]]),l.assert(4===d.length,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${d.length}.`),l.assert(4===f.rank,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${f.rank}`),l.assert(4===r.rank,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${r.rank}`);let m="NHWC"===u?d[3]:d[1],g="NHWC"===u?f.shape[3]:f.shape[1];l.assert(m===r.shape[2],()=>`Error in conv2dDerInput: depth of input (${m}) must match input depth for filter ${r.shape[2]}.`),l.assert(g===r.shape[3],()=>`Error in conv2dDerInput: depth of output (${g}) must match output depth for filter ${r.shape[3]}.`),i.checkPadOnDimRoundingMode("conv2dDerInput",s,c);let x={dy:f,filter:r},v={strides:n,pad:s,dataFormat:u,dimRoundingMode:c,inputShape:d},y=a.ENGINE.runKernel(o.Conv2DBackpropInput,x,v);return h?(0,p.reshape)(y,[y.shape[1],y.shape[2],y.shape[3]]):y}})},{"../engine":"gtimw","../kernel_names":"agfs7","../util":"lLzfH","./conv_util":"i0dk6","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7FSE1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3d",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./conv_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({conv3d_:function(e,t,r,n,s="NDHWC",p=[1,1,1]){let d=(0,l.convertToTensor)(e,"x","conv3d"),f=(0,l.convertToTensor)(t,"filter","conv3d"),h=d,m=!1;4===d.rank&&(m=!0,h=(0,c.reshape)(d,[1,d.shape[0],d.shape[1],d.shape[2],d.shape[3]])),i.assert(5===h.rank,()=>`Error in conv3d: input must be rank 5, but got rank ${h.rank}.`),i.assert(5===f.rank,()=>`Error in conv3d: filter must be rank 5, but got rank ${f.rank}.`),i.assert(h.shape[4]===f.shape[3],()=>`Error in conv3d: depth of input (${h.shape[4]}) must match input depth for filter ${f.shape[3]}.`),i.assert((0,u.eitherStridesOrDilationsAreOne)(r,p),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${r} and dilations '${p}'`),i.assert("NDHWC"===s,()=>`Error in conv3d: got dataFormat of ${s} but only NDHWC is currently supported.`),i.assert((0,u.stridesOrDilationsArePositive)(p),()=>"Error in conv3D: Dilated rates should be larger than 0."),i.assert((0,u.stridesOrDilationsArePositive)(r),()=>"Error in conv3D: Strides should be larger than 0.");let g={x:h,filter:f},x=a.ENGINE.runKernel(o.Conv3D,g,{strides:r,pad:n,dataFormat:s,dilations:p});return m?(0,c.reshape)(x,[x.shape[1],x.shape[2],x.shape[3],x.shape[4]]):x}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./conv_util":"i0dk6","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jxCMI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3dTranspose",()=>l);var a=e("../tensor_util_env"),o=e("./conv3d_backprop_input");let l=(0,e("./operation").op)({conv3dTranspose_:function(e,t,r,n,s){let l=(0,a.convertToTensor)(e,"x","conv3dTranspose"),i=(0,a.convertToTensor)(t,"filter","conv3dTranspose");return(0,o.conv3DBackpropInput)(r,l,i,n,s)}})},{"../tensor_util_env":"4hoNq","./conv3d_backprop_input":"bsZI9","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bsZI9:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3DBackpropInput",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../util"),i=e("./operation"),u=e("./reshape");let p=(0,i.op)({conv3DBackpropInput_:function(e,t,r,n,s){l.assert(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let i=e,p=t,c=!1;4===t.rank&&(c=!0,p=(0,u.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),i=[1,e[0],e[1],e[2],e[3]]);let d=i[4],f=p.shape[4];l.assert(5===i.length,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${i.length}.`),l.assert(5===p.rank,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${p.rank}`),l.assert(5===r.rank,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${r.rank}`),l.assert(d===r.shape[3],()=>`Error in conv3dDerInput: depth of input (${d}) must match input depth for filter ${r.shape[3]}.`),l.assert(f===r.shape[4],()=>`Error in conv3dDerInput: depth of output (${f}) must match output depth for filter ${r.shape[4]}.`);let h={dy:p,filter:r},m={pad:s,strides:n,inputShape:i},g=a.ENGINE.runKernel(o.Conv3DBackpropInputV2,h,m);return c?(0,u.reshape)(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}})},{"../engine":"gtimw","../kernel_names":"agfs7","../util":"lLzfH","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lYlPm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cos",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({cos_:function(e){let t=(0,l.convertToTensor)(e,"x","cos","float32");return a.ENGINE.runKernel(o.Cos,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ffn7C:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cosh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({cosh_:function(e){let t=(0,l.convertToTensor)(e,"x","cosh","float32");return a.ENGINE.runKernel(o.Cosh,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8hZ8h":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumprod",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({cumprod_:function(e,t=0,r=!1,n=!1){let s=(0,l.convertToTensor)(e,"x","cumprod");return a.ENGINE.runKernel(o.Cumprod,{x:s},{axis:t,exclusive:r,reverse:n})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6ayfz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumsum",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({cumsum_:function(e,t=0,r=!1,n=!1){let s=(0,l.convertToTensor)(e,"x","cumsum");return a.ENGINE.runKernel(o.Cumsum,{x:s},{axis:t,exclusive:r,reverse:n})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8MTTj":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"denseBincount",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({denseBincount_:function(e,t,r,n=!1){let s=(0,l.convertToTensor)(e,"x","denseBincount"),u=(0,l.convertToTensor)(t,"weights","denseBincount");return i.assert("int32"===s.dtype,()=>`Error in denseBincount: input dtype must be int32, but got ${s.dtype}`),i.assert(s.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${s.rank}.`),i.assert(r>=0,()=>`size must be non-negative, but got ${r}.`),i.assert(u.size===s.size||0===u.size,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${s.shape}, weights shape: ${u.shape}.`),a.ENGINE.runKernel(o.DenseBincount,{x:s,weights:u},{size:r,binaryOutput:n})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2p1gZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthToSpace",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({depthToSpace_:function(e,t,r="NHWC"){let n=(0,l.convertToTensor)(e,"x","depthToSpace","float32"),s="NHWC"===r?n.shape[1]:n.shape[2],u="NHWC"===r?n.shape[2]:n.shape[3],p="NHWC"===r?n.shape[3]:n.shape[1];return i.assert(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),i.assert(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape ${n.shape}`),i.assert(u*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${u} and ${t} for depthToSpace with input shape ${n.shape}`),i.assert(p%(t*t)==0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${p} for depthToSpace with input shape ${n.shape}`),a.ENGINE.runKernel(o.DepthToSpace,{x:n},{blockSize:t,dataFormat:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gd3xg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2d",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./conv_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({depthwiseConv2d_:function(e,t,r,n,s="NHWC",p=[1,1],d){let f=(0,l.convertToTensor)(e,"x","depthwiseConv2d","float32"),h=(0,l.convertToTensor)(t,"filter","depthwiseConv2d","float32"),m=f,g=!1;3===f.rank&&(g=!0,m=(0,c.reshape)(f,[1,f.shape[0],f.shape[1],f.shape[2]])),i.assert(4===m.rank,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${m.rank}.`),i.assert(4===h.rank,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${h.rank}.`);let x="NHWC"===s?m.shape[3]:m.shape[1];i.assert(x===h.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${x}) must match the inChannels dimension in filter ${h.shape[2]}.`),u.checkPadOnDimRoundingMode("depthwiseConv2d",n,d);let v={x:m,filter:h},y=a.ENGINE.runKernel(o.DepthwiseConv2dNative,v,{strides:r,pad:n,dataFormat:s,dilations:p,dimRoundingMode:d});return g?(0,c.reshape)(y,[y.shape[1],y.shape[2],y.shape[3]]):y}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./conv_util":"i0dk6","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lQfbR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"diag",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({diag_:function(e){let t=(0,l.convertToTensor)(e,"x","diag");return a.ENGINE.runKernel(o.Diag,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7SOKR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2d",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({dilation2d_:function(e,t,r,n,s=[1,1],u="NHWC"){let c=(0,l.convertToTensor)(e,"x","dilation2d"),d=(0,l.convertToTensor)(t,"filter","dilation2d");i.assert(3===c.rank||4===c.rank,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${c.rank}.`),i.assert(3===d.rank,()=>`Error in dilation2d: filter must be rank 3, but got rank ${d.rank}.`),i.assert("NHWC"===u,()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${u}`);let f=c,h=!1;3===c.rank&&(f=(0,p.reshape)(c,[1,c.shape[0],c.shape[1],c.shape[2]]),h=!0),i.assert(f.shape[3]===d.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${f.shape[3]} vs ${d.shape[2]}`);let m={x:f,filter:d},g=a.ENGINE.runKernel(o.Dilation2D,m,{strides:r,pad:n,dilations:s});return h?(0,p.reshape)(g,[g.shape[1],g.shape[2],g.shape[3]]):g}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kIg8P:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"divNoNan",()=>d);var a=e("../tensor_util"),o=e("../tensor_util_env"),l=e("./div"),i=e("./equal"),u=e("./operation"),p=e("./where"),c=e("./zeros_like");let d=(0,u.op)({divNoNan_:function(e,t){let r=(0,o.convertToTensor)(e,"a","div"),n=(0,o.convertToTensor)(t,"b","div");[r,n]=(0,a.makeTypesMatch)(r,n);let s=(0,l.div)(r,n),u=(0,c.zerosLike)(s),d=(0,i.equal)(n,u);return(0,p.where)(d,u,s)}})},{"../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./div":"41SAh","./equal":"hdhRS","./operation":"hyTBr","./where":"kHB4a","./zeros_like":"bDxUb","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hdhRS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"equal",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({equal_:function(e,t){let r=(0,i.convertToTensor)(e,"a","equal","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","equal","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Equal,s)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./broadcast_util":"5OjHc","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kHB4a:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"where",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./broadcast_to"),u=e("./broadcast_util");let p=(0,e("./operation").op)({where_:function(e,t,r){let n=(0,l.convertToTensor)(t,"a","where"),s=(0,l.convertToTensor)(r,"b","where"),p=(0,l.convertToTensor)(e,"condition","where","bool"),c=(0,u.assertAndGetBroadcastShape)((0,u.assertAndGetBroadcastShape)(p.shape,n.shape),s.shape),d=(0,i.broadcastTo)(p,c),f=(0,i.broadcastTo)(n,c),h=(0,i.broadcastTo)(s,c);return a.ENGINE.runKernel(o.Select,{condition:d,t:f,e:h})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./broadcast_to":"2sLNU","./broadcast_util":"5OjHc","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jw4no:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dot",()=>p);var a=e("../tensor_util_env"),o=e("../util"),l=e("./mat_mul"),i=e("./operation"),u=e("./reshape");let p=(0,i.op)({dot_:function(e,t){let r=(0,a.convertToTensor)(e,"t1","dot"),n=(0,a.convertToTensor)(t,"t2","dot");o.assert((1===r.rank||2===r.rank)&&(1===n.rank||2===n.rank),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${r.rank} and ${n.rank}.`);let s=1===r.rank?r.size:r.shape[1],i=1===n.rank?n.size:n.shape[0];if(o.assert(s===i,()=>`Error in dot: inner dimensions of inputs must match, but got ${s} and ${i}.`),1===r.rank&&1===n.rank){let e=(0,u.reshape)(r,[1,-1]),t=(0,u.reshape)(n,[-1,1]),s=(0,l.matMul)(e,t);return(0,u.reshape)(s,[])}if(1===r.rank&&2===n.rank){let e=(0,u.reshape)(r,[1,-1]),t=(0,u.reshape)(n,[n.shape[0],n.shape[1]]),s=(0,l.matMul)(e,t);return(0,u.reshape)(s,[s.size])}if(2===r.rank&&1===n.rank){let e=(0,u.reshape)(n,[-1,1]),t=(0,l.matMul)(r,e);return(0,u.reshape)(t,[t.size])}{let e=(0,u.reshape)(n,[n.shape[0],n.shape[1]]);return(0,l.matMul)(r,e)}}})},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./mat_mul":"apoIX","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],K8tpc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"einsum_",()=>i),s.export(r,"einsum",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");function i(e,...t){let r=t.map((e,t)=>(0,l.convertToTensor)(e,`tensors${t}`,"einsum"));return a.ENGINE.runKernel(o.Einsum,r,{equation:e})}let u=(0,e("./operation").op)({einsum_:i})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dBwXu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"elu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({elu_:function(e){let t=(0,l.convertToTensor)(e,"x","elu","float32");return a.ENGINE.runKernel(o.Elu,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kYSxz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ensureShape",()=>l);var a=e("../tensor_util_env"),o=e("../util_base");let l=(0,e("./operation").op)({ensureShape_:function(e,t){let r=(0,a.convertToTensor)(e,"x","ensureShape","string_or_numeric");if(!(0,o.arraysEqualWithNull)(r.shape,t))throw Error(`EnsureShape: Shape of tensor ${r.shape} is not compatible with expected shape ${t}`);return e}})},{"../tensor_util_env":"4hoNq","../util_base":"2IDj3","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1SHvo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"erf",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./cast");let p=(0,e("./operation").op)({erf_:function(e){let t=(0,l.convertToTensor)(e,"x","erf");i.assert("int32"===t.dtype||"float32"===t.dtype,()=>"Input dtype must be `int32` or `float32`."),"int32"===t.dtype&&(t=(0,u.cast)(t,"float32"));let r={x:t};return a.ENGINE.runKernel(o.Erf,r)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./cast":"hLsoh","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7mwBn":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"euclideanNorm",()=>o);var a=e("./norm");let o=(0,e("./operation").op)({euclideanNorm_:function(e,t=null,r=!1){return(0,a.norm)(e,"euclidean",t,r)}})},{"./norm":"imIRJ","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],imIRJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"norm",()=>v);var a=e("../tensor_util_env"),o=e("../util"),l=e("./abs"),i=e("./axis_util"),u=e("./max"),p=e("./min"),c=e("./operation"),d=e("./pow"),f=e("./reshape"),h=e("./scalar"),m=e("./sqrt"),g=e("./square"),x=e("./sum");let v=(0,c.op)({norm_:function(e,t="euclidean",r=null,n=!1){let s=function e(t,r,n=null){if(0===t.rank)return(0,l.abs)(t);if(1!==t.rank&&null===n)return e((0,f.reshape)(t,[-1]),r,n);if(1===t.rank||"number"==typeof n||Array.isArray(n)&&1===n.length){if(1===r)return(0,x.sum)((0,l.abs)(t),n);if(r===1/0)return(0,u.max)((0,l.abs)(t),n);if(r===-1/0)return(0,p.min)((0,l.abs)(t),n);if("euclidean"===r||2===r)return(0,m.sqrt)((0,x.sum)((0,d.pow)((0,l.abs)(t),(0,h.scalar)(2,"int32")),n));throw Error(`Error in norm: invalid ord value: ${r}`)}if(Array.isArray(n)&&2===n.length){if(1===r)return(0,u.max)((0,x.sum)((0,l.abs)(t),n[0]),n[1]-1);if(r===1/0)return(0,u.max)((0,x.sum)((0,l.abs)(t),n[1]),n[0]);if(r===-1/0)return(0,p.min)((0,x.sum)((0,l.abs)(t),n[1]),n[0]);if("fro"===r||"euclidean"===r)return(0,m.sqrt)((0,x.sum)((0,g.square)(t),n));throw Error(`Error in norm: invalid ord value: ${r}`)}throw Error(`Error in norm: invalid axis: ${n}`)}(e=(0,a.convertToTensor)(e,"x","norm"),t,r),c=s.shape;if(n){let t=(0,o.parseAxisParam)(r,e.shape);c=i.expandShapeToKeepDim(s.shape,t)}return(0,f.reshape)(s,c)}})},{"../tensor_util_env":"4hoNq","../util":"2IDj3","./abs":"14Cig","./axis_util":"9jSs8","./max":"bltsa","./min":"76Xmb","./operation":"hyTBr","./pow":"5RrXs","./reshape":"aTsgx","./scalar":"forpx","./sqrt":"fp4cF","./square":"kpUEg","./sum":"gHwwi","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9jSs8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"axesAreInnerMostDims",()=>o),s.export(r,"combineLocations",()=>l),s.export(r,"computeOutAndReduceShapes",()=>i),s.export(r,"expandShapeToKeepDim",()=>u),s.export(r,"assertAxesAreInnerMostDims",()=>p),s.export(r,"getAxesPermutation",()=>c),s.export(r,"getUndoAxesPermutation",()=>d),s.export(r,"getInnerMostAxes",()=>f);var a=e("../util");function o(e,t){for(let r=0;r<e.length;++r)if(e[e.length-r-1]!==t-1-r)return!1;return!0}function l(e,t,r){let n=e.length+t.length,s=[],a=0,o=0;for(let l=0;l<n;l++)-1===r.indexOf(l)?s.push(e[a++]):s.push(t[o++]);return s}function i(e,t){let r=[],n=e.length;for(let s=0;s<n;s++)-1===t.indexOf(s)&&r.push(e[s]);return[r,t.map(t=>e[t])]}function u(e,t){return l(e,t.map(e=>1),t)}function p(e,t,r){a.assert(o(t,r),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${r} input.`)}function c(e,t){if(o(e,t))return null;let r=[];for(let n=0;n<t;++n)-1===e.indexOf(n)&&r.push(n);return e.forEach(e=>r.push(e)),r}function d(e){return e.map((e,t)=>[t,e]).sort((e,t)=>e[1]-t[1]).map(e=>e[0])}function f(e,t){let r=[];for(let n=t-e;n<t;++n)r.push(n);return r}},{"../util":"lLzfH","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bltsa:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"max",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({max_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","max");return a.ENGINE.runKernel(o.Max,{x:n},{reductionIndices:t,keepDims:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"76Xmb":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"min",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({min_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","min");return a.ENGINE.runKernel(o.Min,{x:n},{axis:t,keepDims:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gHwwi:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sum",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./cast");let u=(0,e("./operation").op)({sum_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","sum");"bool"===n.dtype&&(n=(0,i.cast)(n,"int32"));let s={x:n};return a.ENGINE.runKernel(o.Sum,s,{axis:t,keepDims:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./cast":"hLsoh","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kUZlF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"exp",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({exp_:function(e){let t=(0,l.convertToTensor)(e,"x","exp");return a.ENGINE.runKernel(o.Exp,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5ptrQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expandDims",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({expandDims_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","expandDims","string_or_numeric");return i.assert(t<=r.rank,()=>"Axis must be<= rank of the tensor"),a.ENGINE.runKernel(o.ExpandDims,{input:r},{dim:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5WYht":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expm1",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({expm1_:function(e){let t=(0,l.convertToTensor)(e,"x","expm1");return a.ENGINE.runKernel(o.Expm1,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4tXnX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"eye",()=>p);var a=e("./buffer"),o=e("./expand_dims"),l=e("./operation"),i=e("./reshape"),u=e("./tile");let p=(0,l.op)({eye_:function(e,t,r,n="float32"){null==t&&(t=e);let s=(0,a.buffer)([e,t],n),l=e<=t?e:t;for(let e=0;e<l;++e)s.set(1,e,e);let p=(0,i.reshape)(s.toTensor(),[e,t]);if(null==r)return p;if(1===r.length)return(0,u.tile)((0,o.expandDims)(p,0),[r[0],1,1]);if(2===r.length)return(0,u.tile)((0,o.expandDims)((0,o.expandDims)(p,0),0),[r[0],r[1],1,1]);if(3===r.length)return(0,u.tile)((0,o.expandDims)((0,o.expandDims)((0,o.expandDims)(p,0),0),0),[r[0],r[1],r[2],1,1]);throw Error(`eye() currently supports only 1D and 2D batchShapes, but received ${r.length}D.`)}})},{"./buffer":"4NIGp","./expand_dims":"5ptrQ","./operation":"hyTBr","./reshape":"aTsgx","./tile":"8W0dk","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8W0dk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tile",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({tile_:function(e,t){let r=(0,l.convertToTensor)(e,"x","tile","string_or_numeric");return i.assert(r.rank===t.length,()=>`Error in transpose: rank of input ${r.rank} must match length of reps ${t}.`),a.ENGINE.runKernel(o.Tile,{x:r},{reps:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gvsUY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floor",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({floor_:function(e){let t=(0,l.convertToTensor)(e,"x","floor","float32");return a.ENGINE.runKernel(o.Floor,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3E7pK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gather",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({gather_:function(e,t,r=0,n=0){let s=(0,l.convertToTensor)(e,"x","gather"),i=(0,l.convertToTensor)(t,"indices","gather","int32");return a.ENGINE.runKernel(o.GatherV2,{x:s,indices:i},{axis:r,batchDims:n})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2eOHm":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greater",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({greater_:function(e,t){let r=(0,i.convertToTensor)(e,"a","greater","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","greater","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Greater,s)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./broadcast_util":"5OjHc","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dNsYe:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greaterEqual",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({greaterEqual_:function(e,t){let r=(0,i.convertToTensor)(e,"a","greaterEqual","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","greaterEqual","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.GreaterEqual,s)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./broadcast_util":"5OjHc","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gjYsA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isFinite",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({isFinite_:function(e){let t=(0,l.convertToTensor)(e,"x","isFinite");return a.ENGINE.runKernel(o.IsFinite,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hB09v:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isInf",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({isInf_:function(e){let t=(0,l.convertToTensor)(e,"x","isInf");return a.ENGINE.runKernel(o.IsInf,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],VGsZz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isNaN",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({isNaN_:function(e){let t=(0,l.convertToTensor)(e,"x","isNaN");return a.ENGINE.runKernel(o.IsNan,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cbLfe:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"leakyRelu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({leakyRelu_:function(e,t=.2){let r=(0,l.convertToTensor)(e,"x","leakyRelu");return a.ENGINE.runKernel(o.LeakyRelu,{x:r},{alpha:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lAnag:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"less",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({less_:function(e,t){let r=(0,i.convertToTensor)(e,"a","less","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","less","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Less,s)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./broadcast_util":"5OjHc","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hr4Wx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lessEqual",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({lessEqual_:function(e,t){let r=(0,i.convertToTensor)(e,"a","lessEqual","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","lessEqual","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.LessEqual,s)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./broadcast_util":"5OjHc","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3clfJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"linspace",()=>l);var a=e("../engine"),o=e("../kernel_names");function l(e,t,r){if(r<=0)throw Error("The number of values should be positive.");return a.ENGINE.runKernel(o.LinSpace,{},{start:e,stop:t,num:r})}},{"../engine":"gtimw","../kernel_names":"agfs7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],akyoZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"localResponseNormalization",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({localResponseNormalization_:function(e,t=5,r=1,n=1,s=.5){let u=(0,l.convertToTensor)(e,"x","localResponseNormalization");i.assert(4===u.rank||3===u.rank,()=>`Error in localResponseNormalization: x must be rank 3 or 4 but got rank ${u.rank}.`),i.assert(i.isInt(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let c=u,d=!1;3===u.rank&&(d=!0,c=(0,p.reshape)(u,[1,u.shape[0],u.shape[1],u.shape[2]]));let f={x:c},h=a.ENGINE.runKernel(o.LRN,f,{depthRadius:t,bias:r,alpha:n,beta:s});return d?(0,p.reshape)(h,[h.shape[1],h.shape[2],h.shape[3]]):h}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eViUW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({log_:function(e){let t=(0,l.convertToTensor)(e,"x","log","float32");return a.ENGINE.runKernel(o.Log,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9BkXU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log1p",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({log1p_:function(e){let t=(0,l.convertToTensor)(e,"x","log1p");return a.ENGINE.runKernel(o.Log1p,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gUSZK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logSigmoid",()=>d);var a=e("../gradients"),o=e("../tensor_util_env"),l=e("./mul"),i=e("./neg"),u=e("./operation"),p=e("./sigmoid"),c=e("./softplus");let d=(0,u.op)({logSigmoid_:function(e){let t=(0,o.convertToTensor)(e,"x","logSigmoid");return(0,a.customGrad)(e=>({value:(0,i.neg)((0,c.softplus)((0,i.neg)(e))),gradFunc:t=>(0,l.mul)(t,(0,p.sigmoid)((0,i.neg)(e)))}))(t)}})},{"../gradients":"3aQK6","../tensor_util_env":"4hoNq","./mul":"1OlNG","./neg":"2F5Dw","./operation":"hyTBr","./sigmoid":"1G17C","./softplus":"awgFs","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],awgFs:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softplus",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({softplus_:function(e){let t=(0,l.convertToTensor)(e,"x","softplus");return a.ENGINE.runKernel(o.Softplus,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jtgTU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logSoftmax",()=>m);var a=e("../gradients"),o=e("../tensor_util_env"),l=e("./cast"),i=e("./exp"),u=e("./log"),p=e("./max"),c=e("./mul"),d=e("./operation"),f=e("./sub"),h=e("./sum");let m=(0,d.op)({logSoftmax_:function(e,t=-1){let r=(0,o.convertToTensor)(e,"logits","logSoftmax");if(-1===t&&(t=r.rank-1),t!==r.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${r.rank} and axis was ${t}`);return(0,a.customGrad)((e,r)=>{let n=(0,p.max)(e,t,!0),s=(0,f.sub)(e,n),a=(0,f.sub)((0,l.cast)(s,"float32"),(0,u.log)((0,h.sum)((0,i.exp)(s),t,!0)));return r([a]),{value:a,gradFunc:(e,r)=>{let[n]=r,s=(0,i.exp)(n);return(0,f.sub)(e,(0,c.mul)((0,h.sum)(e,t,!0),s))}}})(r)}})},{"../gradients":"3aQK6","../tensor_util_env":"4hoNq","./cast":"hLsoh","./exp":"kUZlF","./log":"eViUW","./max":"bltsa","./mul":"1OlNG","./operation":"hyTBr","./sub":"AdEY0","./sum":"gHwwi","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3NSXY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logSumExp",()=>g);var a=e("../tensor_util_env"),o=e("../util"),l=e("./add"),i=e("./axis_util"),u=e("./exp"),p=e("./log"),c=e("./max"),d=e("./operation"),f=e("./reshape"),h=e("./sub"),m=e("./sum");let g=(0,d.op)({logSumExp_:function(e,t=null,r=!1){let n=(0,a.convertToTensor)(e,"x","logSumExp"),s=(0,o.parseAxisParam)(t,n.shape),d=(0,c.max)(n,s,!0),g=(0,h.sub)(n,d),x=(0,u.exp)(g),v=(0,m.sum)(x,s),y=(0,p.log)(v),_=(0,l.add)((0,f.reshape)(d,y.shape),y);if(r){let e=(0,i.expandShapeToKeepDim)(_.shape,s);return(0,f.reshape)(_,e)}return _}})},{"../tensor_util_env":"4hoNq","../util":"2IDj3","./add":"hFQoV","./axis_util":"9jSs8","./exp":"kUZlF","./log":"eViUW","./max":"bltsa","./operation":"hyTBr","./reshape":"aTsgx","./sub":"AdEY0","./sum":"gHwwi","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2GD4u":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalAnd",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./broadcast_util");let u=(0,e("./operation").op)({logicalAnd_:function(e,t){let r=(0,l.convertToTensor)(e,"a","logicalAnd","bool"),n=(0,l.convertToTensor)(t,"b","logicalAnd","bool");return(0,i.assertAndGetBroadcastShape)(r.shape,n.shape),a.ENGINE.runKernel(o.LogicalAnd,{a:r,b:n})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./broadcast_util":"5OjHc","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dzFc4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalNot",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({logicalNot_:function(e){let t=(0,l.convertToTensor)(e,"x","logicalNot","bool");return a.ENGINE.runKernel(o.LogicalNot,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cxadB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalOr",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./broadcast_util");let u=(0,e("./operation").op)({logicalOr_:function(e,t){let r=(0,l.convertToTensor)(e,"a","logicalOr","bool"),n=(0,l.convertToTensor)(t,"b","logicalOr","bool");return(0,i.assertAndGetBroadcastShape)(r.shape,n.shape),a.ENGINE.runKernel(o.LogicalOr,{a:r,b:n})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./broadcast_util":"5OjHc","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2kGuk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalXor",()=>p);var a=e("../tensor_util_env"),o=e("./broadcast_util"),l=e("./logical_and"),i=e("./logical_not"),u=e("./logical_or");let p=(0,e("./operation").op)({logicalXor_:function(e,t){let r=(0,a.convertToTensor)(e,"a","logicalXor","bool"),n=(0,a.convertToTensor)(t,"b","logicalXor","bool");return(0,o.assertAndGetBroadcastShape)(r.shape,n.shape),(0,l.logicalAnd)((0,u.logicalOr)(e,t),(0,i.logicalNot)((0,l.logicalAnd)(e,t)))}})},{"../tensor_util_env":"4hoNq","./broadcast_util":"5OjHc","./logical_and":"2GD4u","./logical_not":"dzFc4","./logical_or":"cxadB","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gQy87:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lowerBound",()=>o);var a=e("./search_sorted");function o(e,t){return(0,a.searchSorted)(e,t,"left")}},{"./search_sorted":"lDhLu","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lDhLu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"searchSorted",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util_base"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({searchSorted_:function(e,t,r="left"){let n=(0,l.convertToTensor)(e,"sortedSequence","searchSorted"),s=(0,l.convertToTensor)(t,"values","searchSorted"),u=n.shape[n.shape.length-1],c=s.shape[s.shape.length-1],d=(0,p.reshape)(n,[-1,u]),f=(0,p.reshape)(s,[-1,c]);if(d.rank<2)throw Error("Sorted input argument must be at least 2-dimensional");if(d.shape[0]!==f.shape[0])throw Error("Leading dimension of 'sortedSequence' and 'values' must match.");if((0,i.sizeFromShape)(f.shape)>=0x80000000)throw Error("values tensor size must less than 2147483648");if(d.shape[1]>=0x80000000)throw Error(`trailing dim_size must less than 2147483648 for int32 output type, was ${d.shape[1]}`);return a.ENGINE.runKernel(o.SearchSorted,{sortedSequence:d,values:f},{side:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util_base":"2IDj3","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2Fitc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./conv_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({maxPool_:function(e,t,r,n,s){let p=(0,l.convertToTensor)(e,"x","maxPool"),d=p,f=!1;3===p.rank&&(f=!0,d=(0,c.reshape)(p,[1,p.shape[0],p.shape[1],p.shape[2]])),i.assert(4===d.rank,()=>`Error in maxPool: input must be rank 4 but got rank ${d.rank}.`),i.assert(u.eitherStridesOrDilationsAreOne(r,1),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${r} and dilations '1'`),u.checkPadOnDimRoundingMode("maxPool",n,s);let h={x:d},m=a.ENGINE.runKernel(o.MaxPool,h,{filterSize:t,strides:r,pad:n,dimRoundingMode:s});return f?(0,c.reshape)(m,[m.shape[1],m.shape[2],m.shape[3]]):m}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./conv_util":"i0dk6","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3mkgl":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3d",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),u=e("./conv_util"),p=e("./operation"),c=e("./reshape");let d=(0,p.op)({maxPool3d_:function(e,t=[1,1,1],r,n,s,p="NDHWC"){let d=(0,l.convertToTensor)(e,"x","maxPool3d"),f=d,h=!1;4===d.rank&&(h=!0,f=(0,c.reshape)(d,[1,d.shape[0],d.shape[1],d.shape[2],d.shape[3]])),i.assert(5===f.rank,()=>`Error in maxPool3d: x must be rank 5 but got rank ${f.rank}.`),i.assert("NDHWC"===p,()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${p}`),(0,u.checkPadOnDimRoundingMode)("maxPool3d",n,s);let m={x:f},g=a.ENGINE.runKernel(o.MaxPool3D,m,{filterSize:t,strides:r,pad:n,dimRoundingMode:s,dataFormat:p});return h?(0,c.reshape)(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./conv_util":"i0dk6","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lcQKz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmax",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({maxPoolWithArgmax_:function(e,t,r,n,s=!1){let i=(0,l.convertToTensor)(e,"x","maxPoolWithArgmax"),u=a.ENGINE.runKernel(o.MaxPoolWithArgmax,{x:i},{filterSize:t,strides:r,pad:n,includeBatchInIndex:s});return{result:u[0],indexes:u[1]}}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bxfIu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mean",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({mean_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","mean");return a.ENGINE.runKernel(o.Mean,{x:n},{axis:t,keepDims:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eaZzY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"meshgrid",()=>c);var a=e("./mat_mul"),o=e("./ones"),l=e("./reshape"),i=e("../tensor"),u=e("../tensor_util_env"),p=e("../util_base");function c(e,t,{indexing:r="xy"}={}){if("xy"!==r&&"ij"!==r)throw TypeError(`${r} is not a valid third argument to meshgrid`);if(void 0===e)return[];let n=(0,u.convertToTensor)(e,"x","meshgrid",e instanceof i.Tensor?e.dtype:"float32");if(void 0===t)return[n];let s=(0,u.convertToTensor)(t,"y","meshgrid",t instanceof i.Tensor?t.dtype:"float32"),d=(0,p.sizeFromShape)(n.shape),f=(0,p.sizeFromShape)(s.shape);return"xy"===r?(n=(0,l.reshape)(n,[1,-1]),s=(0,l.reshape)(s,[-1,1]),[(0,a.matMul)((0,o.ones)([f,1],n.dtype),n),(0,a.matMul)(s,(0,o.ones)([1,d],s.dtype))]):(n=(0,l.reshape)(n,[-1,1]),s=(0,l.reshape)(s,[1,-1]),[(0,a.matMul)(n,(0,o.ones)([1,f],n.dtype)),(0,a.matMul)((0,o.ones)([d,1],s.dtype),s)])}},{"./mat_mul":"apoIX","./ones":"dl3Yg","./reshape":"aTsgx","../tensor":"8mprx","../tensor_util_env":"4hoNq","../util_base":"2IDj3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dl3Yg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ones",()=>function e(t,r="float32"){if((0,l.assertNonNegativeIntegerDimensions)(t),"complex64"===r){let r=e(t,"float32"),n=(0,u.zeros)(t,"float32");return(0,i.complex)(r,n)}let n=(0,o.makeOnesTypedArray)((0,o.sizeFromShape)(t),r);return a.ENGINE.makeTensor(n,t,r)});var a=e("../engine"),o=e("../util"),l=e("../util_base"),i=e("./complex"),u=e("./zeros")},{"../engine":"gtimw","../util":"2IDj3","../util_base":"2IDj3","./complex":"kNXzJ","./zeros":"egJAn","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],egJAn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zeros",()=>function e(t,r="float32"){if((0,o.assertNonNegativeIntegerDimensions)(t),"complex64"===r){let r=e(t,"float32"),n=e(t,"float32");return(0,l.complex)(r,n)}let n=(0,o.makeZerosTypedArray)((0,o.sizeFromShape)(t),r);return a.ENGINE.makeTensor(n,t,r)});var a=e("../engine"),o=e("../util"),l=e("./complex")},{"../engine":"gtimw","../util":"2IDj3","./complex":"kNXzJ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],a0QkP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"minimum",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util"),p=e("./cast");let c=(0,e("./operation").op)({minimum_:function(e,t){let r=(0,i.convertToTensor)(e,"a","minimum"),n=(0,i.convertToTensor)(t,"b","minimum");[r,n]=(0,l.makeTypesMatch)(r,n),"bool"===r.dtype&&(r=(0,p.cast)(r,"int32"),n=(0,p.cast)(n,"int32")),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Minimum,s)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./broadcast_util":"5OjHc","./cast":"hLsoh","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1Z7bD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mirrorPad",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({mirrorPad_:function(e,t,r){i.assert("reflect"===r||"symmetric"===r,()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${r}.`);let n=(0,l.convertToTensor)(e,"x","mirrorPad");if(0===n.rank)throw Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");i.assert(t.length===n.rank,()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`);let s=+("reflect"===r);for(let e=0;e<n.rank;e++)i.assert(2===t[e].length,()=>"Invalid number of paddings. Must be length of 2 each."),i.assert(t[e][0]>=0&&t[e][0]<=n.shape[e]-s&&t[e][1]>=0&&t[e][1]<=n.shape[e]-s,()=>`Padding in dimension ${e} cannot be greater than or equal to ${n.shape[e]-s} or less than 0 for input of shape ${n.shape}`);return a.ENGINE.runKernel(o.MirrorPad,{x:n},{paddings:t,mode:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4WAbT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mod",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let u=(0,e("./operation").op)({mod_:function(e,t){let r=(0,i.convertToTensor)(e,"a","mod"),n=(0,i.convertToTensor)(t,"b","mod");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Mod,s)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hXTo2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"moments",()=>h);var a=e("../tensor_util_env"),o=e("../util"),l=e("./axis_util"),i=e("./cast"),u=e("./mean"),p=e("./operation"),c=e("./reshape"),d=e("./square"),f=e("./sub");let h=(0,p.op)({moments_:function(e,t=null,r=!1){e=(0,a.convertToTensor)(e,"x","moments");let n=(0,o.parseAxisParam)(t,e.shape),s=(0,u.mean)(e,n,r),p=s.shape;r||(p=(0,l.expandShapeToKeepDim)(s.shape,n));let h=(0,d.square)((0,f.sub)((0,i.cast)(e,"float32"),(0,c.reshape)(s,p)));return{mean:s,variance:(0,u.mean)(h,n,r)}}})},{"../tensor_util_env":"4hoNq","../util":"2IDj3","./axis_util":"9jSs8","./cast":"hLsoh","./mean":"bxfIu","./operation":"hyTBr","./reshape":"aTsgx","./square":"kpUEg","./sub":"AdEY0","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fMj5y:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multiRNNCell",()=>o);var a=e("../tensor_util_env");let o=(0,e("./operation").op)({multiRNNCell_:function(e,t,r,n){let s=(0,a.convertToTensor)(t,"data","multiRNNCell"),o=(0,a.convertToTensorArray)(r,"c","multiRNNCell"),l=(0,a.convertToTensorArray)(n,"h","multiRNNCell"),i=s,u=[];for(let t=0;t<e.length;t++){let r=e[t](i,o[t],l[t]);u.push(r[0]),u.push(r[1]),i=r[1]}let p=[],c=[];for(let e=0;e<u.length;e+=2)p.push(u[e]),c.push(u[e+1]);return[p,c]}})},{"../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gnrld:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multinomial",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./operation"),u=e("./reshape");let p=(0,i.op)({multinomial_:function(e,t,r,n=!1){let s=(0,l.convertToTensor)(e,"logits","multinomial"),i=s.size,p=s.rank;if(i<2)throw Error(`Error in multinomial: you need at least 2 outcomes, but got ${i}.`);if(p>2)throw Error(`Rank of probabilities must be 1 or 2, but is ${p}`);r=r||Math.random();let c=1===p?(0,u.reshape)(s,[1,-1]):s,d={numSamples:t,seed:r,normalized:n},f=a.ENGINE.runKernel(o.Multinomial,{logits:c},d);return 1===p?(0,u.reshape)(f,[f.size]):f}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lxSCb:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"notEqual",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({notEqual_:function(e,t){let r=(0,i.convertToTensor)(e,"a","notEqual","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","notEqual","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.NotEqual,s)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./broadcast_util":"5OjHc","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cn3X8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"onesLike",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({onesLike_:function(e){let t=(0,l.convertToTensor)(e,"x","onesLike");return a.ENGINE.runKernel(o.OnesLike,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9kugx":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"outerProduct",()=>p);var a=e("../tensor_util_env"),o=e("../util"),l=e("./mat_mul"),i=e("./operation"),u=e("./reshape");let p=(0,i.op)({outerProduct_:function(e,t){let r=(0,a.convertToTensor)(e,"v1","outerProduct"),n=(0,a.convertToTensor)(t,"v2","outerProduct");o.assert(1===r.rank&&1===n.rank,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${r.rank} and ${n.rank}.`);let s=(0,u.reshape)(r,[-1,1]),i=(0,u.reshape)(n,[1,-1]);return(0,l.matMul)(s,i)}})},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./mat_mul":"apoIX","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7cVfh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({pad_:function(e,t,r=0){let n=(0,l.convertToTensor)(e,"x","pad");if(0===n.rank)throw Error("pad(scalar) is not defined. Pass non-scalar to pad");return a.ENGINE.runKernel(o.PadV2,{x:n},{paddings:t,constantValue:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7UNxa":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad1d",()=>i);var a=e("../util"),o=e("./operation"),l=e("./pad");let i=(0,o.op)({pad1d_:function(e,t,r=0){return(0,a.assert)(2===t.length,()=>"Invalid number of paddings. Must be length of 2."),(0,l.pad)(e,[t],r)}})},{"../util":"2IDj3","./operation":"hyTBr","./pad":"7cVfh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6qpzf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad2d",()=>i);var a=e("../util"),o=e("./operation"),l=e("./pad");let i=(0,o.op)({pad2d_:function(e,t,r=0){return(0,a.assert)(2===t.length&&2===t[0].length&&2===t[1].length,()=>"Invalid number of paddings. Must be length of 2 each."),(0,l.pad)(e,t,r)}})},{"../util":"2IDj3","./operation":"hyTBr","./pad":"7cVfh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3t3Yv":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad3d",()=>i);var a=e("../util"),o=e("./operation"),l=e("./pad");let i=(0,o.op)({pad3d_:function(e,t,r=0){return(0,a.assert)(3===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length,()=>"Invalid number of paddings. Must be length of 2 each."),(0,l.pad)(e,t,r)}})},{"../util":"2IDj3","./operation":"hyTBr","./pad":"7cVfh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6D0Qr":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad4d",()=>i);var a=e("../util"),o=e("./operation"),l=e("./pad");let i=(0,o.op)({pad4d_:function(e,t,r=0){return(0,a.assert)(4===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length&&2===t[3].length,()=>"Invalid number of paddings. Must be length of 2 each."),(0,l.pad)(e,t,r)}})},{"../util":"2IDj3","./operation":"hyTBr","./pad":"7cVfh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jFKaD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pool",()=>h);var a=e("../tensor_util_env"),o=e("../util"),l=e("./avg_pool"),i=e("./batch_to_space_nd"),u=e("./conv_util"),p=e("./max_pool"),c=e("./operation"),d=e("./reshape"),f=e("./space_to_batch_nd");let h=(0,c.op)({pool_:function(e,t,r,n,s,c,h){var m,g,x,v,y;let _,b,k,T,w,I,j,C,N;null==s&&(s=[1,1]),null==c&&(c=1),0===n&&(n="valid");let S=(0,a.convertToTensor)(e,"x","maxPool"),E=S,A=!1;3===S.rank&&(A=!0,E=(0,d.reshape)(S,[1,S.shape[0],S.shape[1],S.shape[2]])),o.assert(u.eitherStridesOrDilationsAreOne(c,s),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${c} and dilations '${s}'`);let F=u.computePool2DInfo(E.shape,t,c,s,n),R=[F.dilationHeight,F.dilationWidth];_="same"===n?(m=[F.filterHeight,F.filterWidth],g=R,k=(b=m.map((e,t)=>e+(e-1)*(g[t]-1)).map(e=>e-1)).map(e=>Math.floor(e/2)),T=b.map((e,t)=>e-k[t]),b.map((e,t)=>[k[t],T[t]])):[[0,0],[0,0]];let D=1===R[0]&&1===R[1],[P,$]=(x=[F.inHeight,F.inWidth],v=R,w=(y=_).map(e=>e[0]),j=x.concat(w,I=y.map(e=>e[1])),C=v.map((e,t)=>(e-j[t]%e)%e),N=I.map((e,t)=>e+C[t]),[v.map((e,t)=>[w[t],N[t]]),v.map((e,t)=>[0,C[t]])]),M=D?n:"valid",O=D?E:(0,f.spaceToBatchND)(E,R,P),B=("avg"===r?()=>(0,l.avgPool)(O,t,c,M,h):()=>(0,p.maxPool)(O,t,c,M,h))(),q=D?B:(0,i.batchToSpaceND)(B,R,$);return A?(0,d.reshape)(q,[q.shape[1],q.shape[2],q.shape[3]]):q}})},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./avg_pool":"9TeE2","./batch_to_space_nd":"lmDO3","./conv_util":"i0dk6","./max_pool":"2Fitc","./operation":"hyTBr","./reshape":"aTsgx","./space_to_batch_nd":"fT19s","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fT19s:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"spaceToBatchND",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({spaceToBatchND_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","spaceToBatchND");return i.assert(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),i.assert(r.length===t.length,()=>`paddings.shape[0] ${r.length} must be equal to [blockShape] ${t.length}`),i.assert(n.shape.reduce((e,n,s)=>s>0&&s<=t.length?e&&(n+r[s-1][0]+r[s-1][1])%t[s-1]==0:e,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${r.toString()} must be divisible by blockShapes ${t.toString()}`),a.ENGINE.runKernel(o.SpaceToBatchND,{x:n},{blockShape:t,paddings:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3aTLU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prelu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({prelu_:function(e,t){let r=(0,l.convertToTensor)(e,"x","prelu"),n=(0,l.convertToTensor)(t,"alpha","prelu");return a.ENGINE.runKernel(o.Prelu,{x:r,alpha:n})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kAmws:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prod",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./cast");let u=(0,e("./operation").op)({prod_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","prod");"bool"===n.dtype&&(n=(0,i.cast)(n,"int32"));let s={x:n};return a.ENGINE.runKernel(o.Prod,s,{axis:t,keepDims:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./cast":"hLsoh","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lpcTb:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedGather",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({raggedGather_:function(e,t,r,n){let s=e.map((e,t)=>(0,l.convertToTensor)(e,`tensors${t}`,"raggedGather","int32")),i=(0,l.convertToTensor)(t,"paramsDenseValues","raggedGather"),u=(0,l.convertToTensor)(r,"indices","raggedGather","int32"),p=a.ENGINE.runKernel(o.RaggedGather,{paramsNestedSplits:s,paramsDenseValues:i,indices:u},{outputRaggedRank:n});return{outputNestedSplits:p.slice(0,p.length-1),outputDenseValues:p[p.length-1]}}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],f84s1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedRange",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({raggedRange_:function(e,t,r){let n=(0,l.convertToTensor)(e,"starts","raggedRange"),s=(0,l.convertToTensor)(t,"limits","raggedRange",n.dtype),i=(0,l.convertToTensor)(r,"deltas","raggedRange",n.dtype),u=a.ENGINE.runKernel(o.RaggedRange,{starts:n,limits:s,deltas:i});return{rtNestedSplits:u[0],rtDenseValues:u[1]}}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iFyiW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedTensorToTensor",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({raggedTensorToTensor_:function(e,t,r,n,s){let i=(0,l.convertToTensor)(e,"shape","raggedTensorToTensor","int32"),u=(0,l.convertToTensor)(t,"values","raggedTensorToTensor"),p=(0,l.convertToTensor)(r,"defaultValue","raggedTensorToTensor",u.dtype),c=n.map((e,t)=>(0,l.convertToTensor)(e,`tensors${t}`,"raggedTensorToTensor","int32"));return a.ENGINE.runKernel(o.RaggedTensorToTensor,{shape:i,values:u,defaultValue:p,rowPartitionTensors:c},{rowPartitionTypes:s})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aoss5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rand",()=>i);var a=e("../engine"),o=e("../util"),l=e("../util_base");let i=(0,e("./operation").op)({rand_:function(e,t,r){(0,l.assertNonNegativeIntegerDimensions)(e);let n=(0,o.sizeFromShape)(e),s=null;if(null==r||"float32"===r)s=new Float32Array(n);else if("int32"===r)s=new Int32Array(n);else if("bool"===r)s=new Uint8Array(n);else throw Error(`Unknown data type ${r}`);for(let e=0;e<n;e++)s[e]=t();return a.ENGINE.makeTensor(s,e,r)}})},{"../engine":"gtimw","../util":"2IDj3","../util_base":"2IDj3","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bhQOr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"randomGamma",()=>u);var a=e("../util_base"),o=e("./buffer"),l=e("./operation"),i=e("./rand_util");let u=(0,l.op)({randomGamma_:function(e,t,r=1,n="float32",s){if((0,a.assertNonNegativeIntegerDimensions)(e),null==r&&(r=1),null==n&&(n="float32"),"float32"!==n&&"int32"!==n)throw Error(`Unsupported data type ${n}`);let l=new(0,i.RandGamma)(t,r,n,s),u=(0,o.buffer)(e,n);for(let e=0;e<u.values.length;e++)u.values[e]=l.nextValue();return u.toTensor()}})},{"../util_base":"2IDj3","./buffer":"4NIGp","./operation":"hyTBr","./rand_util":"iYJog","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iYJog:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MPRandGauss",()=>l),s.export(r,"RandGamma",()=>i),s.export(r,"UniformRandom",()=>u),s.export(r,"jarqueBeraNormalityTest",()=>p),s.export(r,"expectArrayInMeanStdRange",()=>c);var a=e("seedrandom"),o=e("../test_util");class l{constructor(e,t,r,n,s){this.mean=e,this.stdDev=t,this.dtype=r,this.nextVal=NaN,this.truncated=n,this.truncated&&(this.upper=this.mean+2*this.stdDev,this.lower=this.mean-2*this.stdDev);let o=s||Math.random();this.random=a.alea(o.toString())}nextValue(){let e,t;if(!isNaN(this.nextVal)){let e=this.nextVal;return this.nextVal=NaN,e}let r=!1;for(;!r;){let n,s,a;do a=(n=2*this.random()-1)*n+(s=2*this.random()-1)*s;while(a>=1||0===a)let o=Math.sqrt(-2*Math.log(a)/a);e=this.mean+this.stdDev*n*o,t=this.mean+this.stdDev*s*o,(!this.truncated||this.isValidTruncated(e))&&(r=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return null==this.dtype||"float32"===this.dtype?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class i{constructor(e,t,r,n){this.alpha=e,this.beta=1/t,this.dtype=r;let s=n||Math.random();this.randu=a.alea(s.toString()),this.randn=new l(0,1,r,!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,r,n,s,a;for(;;){do n=this.randn.nextValue(),a=1+this.c*n;while(a<=0)if(a*=a*a,t=1-.331*(e=n*n)*e,r=.5*e+this.d*(1-a+Math.log(a)),(s=this.randu())<t||Math.log(s)<r)break}return a=1/this.beta*this.d*a,this.alpha<1&&(a*=Math.pow(this.randu(),1/this.alpha)),this.convertValue(a)}convertValue(e){return"float32"===this.dtype?e:Math.round(e)}}class u{constructor(e=0,t=1,r,n){if(this.canReturnFloat=()=>null==this.dtype||"float32"===this.dtype,this.min=e,this.range=t-e,this.dtype=r,null==n&&(n=Math.random()),"number"==typeof n&&(n=n.toString()),!this.canReturnFloat()&&this.range<=1)throw Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=a.alea(n)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}function p(e){let t=e.length/6*(Math.pow(function(e){let t=d(e),r=e.length,n=0,s=0;for(let a=0;a<r;a++){let r=e[a]-t;n+=Math.pow(r,2),s+=Math.pow(r,3)}return 1/r*s/Math.pow(1/(r-1)*n,1.5)}(e),2)+.25*Math.pow(function(e){let t=d(e),r=e.length,n=0,s=0;for(let a=0;a<r;a++){let r=e[a]-t;n+=Math.pow(r,2),s+=Math.pow(r,4)}return 1/r*s/Math.pow(1/r*n,2)}(e)-3,2));if(t>5.991)throw Error(`Invalid p-value for JB: ${t}`)}function c(e,t,r,n){null==n&&(n=(0,o.testEpsilon)());let s=d(e);(0,o.expectNumbersClose)(s,t,n),(0,o.expectNumbersClose)(function(e,t){let r=0;for(let n=0;n<e.length;n++){let s=e[n]-t;r+=s*s}return Math.sqrt(r/e.length)}(e,s),r,n)}function d(e){let t=0;for(let r=0;r<e.length;r++)t+=e[r];return t/e.length}},{seedrandom:"jMr1M","../test_util":"2NLFb","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jMr1M:[function(e,t,r,n){var s=e("12650d0e2f5e5e92"),a=e("2e9ff46cdee4aab4"),o=e("a04af32374227880"),l=e("65d05f6db8da652c"),i=e("1e972c6b140abbe7"),u=e("286eb9753e804cda"),p=e("a0d0bb1ebcf7d3f9");p.alea=s,p.xor128=a,p.xorwow=o,p.xorshift7=l,p.xor4096=i,p.tychei=u,t.exports=p},{"12650d0e2f5e5e92":"aGXNL","2e9ff46cdee4aab4":"dC9Rr",a04af32374227880:"kCsP2","65d05f6db8da652c":"bMmDv","1e972c6b140abbe7":"KuiuQ","286eb9753e804cda":"kwLis",a0d0bb1ebcf7d3f9:"2JQGO"}],aGXNL:[function(e,t,r,n){!function(e,t,r){function n(e){var t,r=this,n=(t=0xefc8249d,function(e){e=String(e);for(var r=0;r<e.length;r++){var n=.02519603282416938*(t+=e.charCodeAt(r));t=n>>>0,n-=t,n*=t,t=n>>>0,n-=t,t+=0x100000000*n}return(t>>>0)*23283064365386963e-26});r.next=function(){var e=2091639*r.s0+23283064365386963e-26*r.c;return r.s0=r.s1,r.s1=r.s2,r.s2=e-(r.c=0|e)},r.c=1,r.s0=n(" "),r.s1=n(" "),r.s2=n(" "),r.s0-=n(e),r.s0<0&&(r.s0+=1),r.s1-=n(e),r.s1<0&&(r.s1+=1),r.s2-=n(e),r.s2<0&&(r.s2+=1)}function s(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function a(e,t){var r=new n(e),a=t&&t.state,o=r.next;return o.int32=function(){return 0x100000000*r.next()|0},o.double=function(){return o()+(2097152*o()|0)*11102230246251565e-32},o.quick=o,a&&("object"==typeof a&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.alea=a}(0,t,"function"==typeof define&&define)},{}],dC9Rr:[function(e,t,r,n){!function(e,t,r){function n(e){var t=this,r="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:r+=e;for(var n=0;n<r.length+64;n++)t.x^=r.charCodeAt(n),t.next()}function s(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function a(e,t){var r=new n(e),a=t&&t.state,o=function(){return(r.next()>>>0)/0x100000000};return o.double=function(){do var e=r.next()>>>11,t=(r.next()>>>0)/0x100000000,n=(e+t)/2097152;while(0===n)return n},o.int32=r.next,o.quick=o,a&&("object"==typeof a&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.xor128=a}(0,t,"function"==typeof define&&define)},{}],kCsP2:[function(e,t,r,n){!function(e,t,r){function n(e){var t=this,r="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^(e^e<<1))|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:r+=e;for(var n=0;n<r.length+64;n++)t.x^=r.charCodeAt(n),n==r.length&&(t.d=t.x<<10^t.x>>>4),t.next()}function s(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function a(e,t){var r=new n(e),a=t&&t.state,o=function(){return(r.next()>>>0)/0x100000000};return o.double=function(){do var e=r.next()>>>11,t=(r.next()>>>0)/0x100000000,n=(e+t)/2097152;while(0===n)return n},o.int32=r.next,o.quick=o,a&&("object"==typeof a&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.xorwow=a}(0,t,"function"==typeof define&&define)},{}],bMmDv:[function(e,t,r,n){!function(e,t,r){function n(e){var t=this;t.next=function(){var e,r,n=t.x,s=t.i;return e=n[s],e^=e>>>7,r=e^e<<24^((e=n[s+1&7])^e>>>10)^((e=n[s+3&7])^e>>>3)^((e=n[s+4&7])^e<<7),e=n[s+7&7],e^=e<<13,r^=e^e<<9,n[s]=r,t.i=s+1&7,r};var r,n=e,s=[];if(n===(0|n))s[0]=n;else for(r=0,n=""+n;r<n.length;++r)s[7&r]=s[7&r]<<15^n.charCodeAt(r)+s[r+1&7]<<13;for(;s.length<8;)s.push(0);for(r=0;r<8&&0===s[r];++r);for(8==r?s[7]=-1:s[r],t.x=s,t.i=0,r=256;r>0;--r)t.next()}function s(e,t){return t.x=e.x.slice(),t.i=e.i,t}function a(e,t){null==e&&(e=+new Date);var r=new n(e),a=t&&t.state,o=function(){return(r.next()>>>0)/0x100000000};return o.double=function(){do var e=r.next()>>>11,t=(r.next()>>>0)/0x100000000,n=(e+t)/2097152;while(0===n)return n},o.int32=r.next,o.quick=o,a&&(a.x&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.xorshift7=a}(0,t,"function"==typeof define&&define)},{}],KuiuQ:[function(e,t,r,n){!function(e,t,r){function n(e){var t=this;t.next=function(){var e,r,n=t.w,s=t.X,a=t.i;return t.w=n=n+0x61c88647|0,r=s[a+34&127],e=s[a=a+1&127],r^=r<<13,e^=e<<17,r^=r>>>15,e^=e>>>12,r=s[a]=r^e,t.i=a,r+(n^n>>>16)|0},!function(e,t){var r,n,s,a,o,l=[],i=128;for(t===(0|t)?(n=t,t=null):(t+="\0",n=0,i=Math.max(i,t.length)),s=0,a=-32;a<i;++a)t&&(n^=t.charCodeAt((a+32)%t.length)),0===a&&(o=n),n^=n<<10,n^=n>>>15,n^=n<<4,n^=n>>>13,a>=0&&(o=o+0x61c88647|0,s=0==(r=l[127&a]^=n+o)?s+1:0);for(s>=128&&(l[127&(t&&t.length||0)]=-1),s=127,a=512;a>0;--a)n=l[s+34&127],r=l[s=s+1&127],n^=n<<13,r^=r<<17,n^=n>>>15,r^=r>>>12,l[s]=n^r;e.w=o,e.X=l,e.i=s}(t,e)}function s(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function a(e,t){null==e&&(e=+new Date);var r=new n(e),a=t&&t.state,o=function(){return(r.next()>>>0)/0x100000000};return o.double=function(){do var e=r.next()>>>11,t=(r.next()>>>0)/0x100000000,n=(e+t)/2097152;while(0===n)return n},o.int32=r.next,o.quick=o,a&&(a.X&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.xor4096=a}(0,t,"function"==typeof define&&define)},{}],kwLis:[function(e,t,r,n){!function(e,t,r){function n(e){var t=this,r="";t.next=function(){var e=t.b,r=t.c,n=t.d,s=t.a;return e=e<<25^e>>>7^r,r=r-n|0,n=n<<24^n>>>8^s,s=s-e|0,t.b=e=e<<20^e>>>12^r,t.c=r=r-n|0,t.d=n<<16^r>>>16^s,t.a=s-e|0},t.a=0,t.b=0,t.c=-0x61c88647,t.d=0x517cc1b7,e===Math.floor(e)?(t.a=e/0x100000000|0,t.b=0|e):r+=e;for(var n=0;n<r.length+20;n++)t.b^=r.charCodeAt(n),t.next()}function s(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function a(e,t){var r=new n(e),a=t&&t.state,o=function(){return(r.next()>>>0)/0x100000000};return o.double=function(){do var e=r.next()>>>11,t=(r.next()>>>0)/0x100000000,n=(e+t)/2097152;while(0===n)return n},o.int32=r.next,o.quick=o,a&&("object"==typeof a&&s(a,r),o.state=function(){return s(r,{})}),o}t&&t.exports?t.exports=a:r&&r.amd?r(function(){return a}):this.tychei=a}(0,t,"function"==typeof define&&define)},{}],"2JQGO":[function(e,t,r,n){!function(r,n,s){var a,o="random",l=s.pow(256,6),i=s.pow(2,52),u=2*i;function p(e,t,p){var m=[],g=f(function e(t,r){var n,s=[],a=typeof t;if(r&&"object"==a)for(n in t)try{s.push(e(t[n],r-1))}catch(e){}return s.length?s:"string"==a?t:t+"\0"}((t=!0==t?{entropy:!0}:t||{}).entropy?[e,h(n)]:null==e?function(){try{var e;return a&&(e=a.randomBytes)?e=e(256):(e=new Uint8Array(256),(r.crypto||r.msCrypto).getRandomValues(e)),h(e)}catch(e){var t=r.navigator,s=t&&t.plugins;return[+new Date,r,s,r.screen,h(n)]}}():e,3),m),x=new c(m),v=function(){for(var e=x.g(6),t=l,r=0;e<i;)e=(e+r)*256,t*=256,r=x.g(1);for(;e>=u;)e/=2,t/=2,r>>>=1;return(e+r)/t};return v.int32=function(){return 0|x.g(4)},v.quick=function(){return x.g(4)/0x100000000},v.double=v,f(h(x.S),n),(t.pass||p||function(e,t,r,n){return(n&&(n.S&&d(n,x),e.state=function(){return d(x,{})}),r)?(s[o]=e,t):e})(v,g,"global"in t?t.global:this==s,t.state)}function c(e){var t,r=e.length,n=this,s=0,a=n.i=n.j=0,o=n.S=[];for(r||(e=[r++]);s<256;)o[s]=s++;for(s=0;s<256;s++)o[s]=o[a=255&a+e[s%r]+(t=o[s])],o[a]=t;(n.g=function(e){for(var t,r=0,s=n.i,a=n.j,o=n.S;e--;)t=o[s=255&s+1],r=256*r+o[255&(o[s]=o[a=255&a+t])+(o[a]=t)];return n.i=s,n.j=a,r})(256)}function d(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function f(e,t){for(var r,n=e+"",s=0;s<n.length;)t[255&s]=255&(r^=19*t[255&s])+n.charCodeAt(s++);return h(t)}function h(e){return String.fromCharCode.apply(0,e)}if(f(s.random(),n),t.exports){t.exports=p;try{a=e("55ffaba5e09143c0")}catch(e){}}else"function"==typeof define&&define.amd?define(function(){return p}):s["seed"+o]=p}("undefined"!=typeof self?self:this,[],Math)},{"55ffaba5e09143c0":"1arHq"}],cjE2b:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"randomNormal",()=>u);var a=e("../util_base"),o=e("./buffer"),l=e("./operation"),i=e("./rand_util");let u=(0,l.op)({randomNormal_:function(e,t=0,r=1,n,s){if((0,a.assertNonNegativeIntegerDimensions)(e),null!=n&&"bool"===n)throw Error(`Unsupported data type ${n}`);let l=new(0,i.MPRandGauss)(t,r,n,!1,s),u=(0,o.buffer)(e,n);for(let e=0;e<u.values.length;e++)u.values[e]=l.nextValue();return u.toTensor()}})},{"../util_base":"2IDj3","./buffer":"4NIGp","./operation":"hyTBr","./rand_util":"iYJog","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"19k9D":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"randomStandardNormal",()=>l);var a=e("./operation"),o=e("./random_normal");let l=(0,a.op)({randomStandardNormal_:function(e,t,r){if(null!=t&&"bool"===t)throw Error(`Unsupported data type ${t}`);return(0,o.randomNormal)(e,0,1,t,r)}})},{"./operation":"hyTBr","./random_normal":"cjE2b","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6DgfI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"randomUniform",()=>u);var a=e("../util_base"),o=e("./buffer"),l=e("./operation"),i=e("./rand_util");let u=(0,l.op)({randomUniform_:function(e,t=0,r=1,n="float32",s){(0,a.assertNonNegativeIntegerDimensions)(e);let l=(0,o.buffer)(e,n),u=new(0,i.UniformRandom)(t,r,null,s);for(let e=0;e<l.values.length;e++)l.values[e]=u.nextValue();return l.toTensor()}})},{"../util_base":"2IDj3","./buffer":"4NIGp","./operation":"hyTBr","./rand_util":"iYJog","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gIPaK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"randomUniformInt",()=>l);var a=e("./operation"),o=e("./random_uniform");let l=(0,a.op)({randomUniformInt_:function(e,t,r,n){return(0,o.randomUniform)(e,t,r,"int32",n)}})},{"./operation":"hyTBr","./random_uniform":"6DgfI","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3Dxwx":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"range",()=>l);var a=e("../engine"),o=e("../kernel_names");function l(e,t,r=1,n="float32"){if(0===r)throw Error("Cannot have a step of zero");return a.ENGINE.runKernel(o.Range,{},{start:e,stop:t,step:r,dtype:n})}},{"../engine":"gtimw","../kernel_names":"agfs7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lOWKf:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reciprocal",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({reciprocal_:function(e){let t=(0,l.convertToTensor)(e,"x","reciprocal");return a.ENGINE.runKernel(o.Reciprocal,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lnyoN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({relu_:function(e){let t=(0,l.convertToTensor)(e,"x","relu");return a.ENGINE.runKernel(o.Relu,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hKBJU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu6",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({relu6_:function(e){let t=(0,l.convertToTensor)(e,"x","relu6");return a.ENGINE.runKernel(o.Relu6,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8iYj6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({reverse_:function(e,t){let r=(0,l.convertToTensor)(e,"x","reverse");return a.ENGINE.runKernel(o.Reverse,{x:r},{dims:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2843m":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse1d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reverse");let u=(0,l.op)({reverse1d_:function(e){let t=(0,a.convertToTensor)(e,"x","reverse");return o.assert(1===t.rank,()=>`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),(0,i.reverse)(t,0)}})},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","./reverse":"8iYj6","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5Zgqr":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse2d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reverse");let u=(0,l.op)({reverse2d_:function(e,t){let r=(0,a.convertToTensor)(e,"x","reverse");return o.assert(2===r.rank,()=>`Error in reverse2D: x must be rank 2 but got rank ${r.rank}.`),(0,i.reverse)(r,t)}})},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","./reverse":"8iYj6","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hMOJv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse3d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reverse");let u=(0,l.op)({reverse3d_:function(e,t){let r=(0,a.convertToTensor)(e,"x","reverse");return o.assert(3===r.rank,()=>`Error in reverse3D: x must be rank 3 but got rank ${r.rank}.`),(0,i.reverse)(r,t)}})},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","./reverse":"8iYj6","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"55Bae":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse4d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reverse");let u=(0,l.op)({reverse4d_:function(e,t){let r=(0,a.convertToTensor)(e,"x","reverse");return o.assert(4===r.rank,()=>`Error in reverse4D: x must be rank 4 but got rank ${r.rank}.`),(0,i.reverse)(r,t)}})},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","./reverse":"8iYj6","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9tOvu":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"round",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({round_:function(e){let t=(0,l.convertToTensor)(e,"x","round");return a.ENGINE.runKernel(o.Round,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iLf1A:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rsqrt",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({rsqrt_:function(e){let t=(0,l.convertToTensor)(e,"x","rsqrt","float32");return a.ENGINE.runKernel(o.Rsqrt,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],l7aoL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"selu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({selu_:function(e){let t=(0,l.convertToTensor)(e,"x","selu");return a.ENGINE.runKernel(o.Selu,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iUOk8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"separableConv2d",()=>c);var a=e("../tensor_util_env"),o=e("../util"),l=e("./conv2d"),i=e("./depthwise_conv2d"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({separableConv2d_:function(e,t,r,n,s,u=[1,1],c="NHWC"){let d=(0,a.convertToTensor)(e,"x","separableConv2d"),f=(0,a.convertToTensor)(t,"depthwiseFilter","separableConv2d"),h=(0,a.convertToTensor)(r,"pointwiseFilter","separableConv2d"),m=d,g=!1;if(3===d.rank&&(g=!0,m=(0,p.reshape)(d,[1,d.shape[0],d.shape[1],d.shape[2]])),"NCHW"===c)throw Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");o.assert(4===m.rank,()=>`Error in separableConv2d: input must be rank 4, but got rank ${m.rank}.`),o.assert(4===f.rank,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${f.rank}.`),o.assert(4===h.rank,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${f.rank}.`),o.assert(1===h.shape[0],()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${h.shape[0]}.`),o.assert(1===h.shape[1],()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${h.shape[1]}.`);let x=f.shape[2],v=f.shape[3];o.assert(h.shape[2]===x*v,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${x*v}, but got ${h.shape[2]}.`);let y=(0,i.depthwiseConv2d)(m,f,n,s,c,u),_=(0,l.conv2d)(y,h,1,"valid",c);return g?(0,p.reshape)(_,[_.shape[1],_.shape[2],_.shape[3]]):_}})},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./conv2d":"l6vGH","./depthwise_conv2d":"gd3xg","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cfq5W:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"setdiff1dAsync",()=>i);var a=e("../tensor"),o=e("../tensor_util_env"),l=e("../util");let i=async function(e,t){let r=(0,o.convertToTensor)(e,"x","setdiff1d"),n=(0,o.convertToTensor)(t,"y","setdiff1d");l.assert(r.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${r.dtype}) and y (${n.dtype}).`),l.assert(1===r.rank,()=>`x should be 1D tensor, but got x (${r.shape}).`),l.assert(1===n.rank,()=>`y should be 1D tensor, but got y (${n.shape}).`);let s=await r.data(),i=new Set(await n.data()),u=0;for(let e=0;e<s.length;e++)!i.has(s[e])&&u++;let p=new(0,a.TensorBuffer)([u],r.dtype),c=new(0,a.TensorBuffer)([u],"int32");for(let e=0,t=0;e<s.length;e++)!i.has(s[e])&&(p.values[t]=s[e],c.values[t]=e,t++);return[p.toTensor(),c.toTensor()]}},{"../tensor":"8mprx","../tensor_util_env":"4hoNq","../util":"lLzfH","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lGhiA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sign",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sign_:function(e){let t=(0,l.convertToTensor)(e,"x","sign");return a.ENGINE.runKernel(o.Sign,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ciCGP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sin",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sin_:function(e){let t=(0,l.convertToTensor)(e,"x","sin","float32");return a.ENGINE.runKernel(o.Sin,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cqnkJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sinh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sinh_:function(e){let t=(0,l.convertToTensor)(e,"x","sinh");return a.ENGINE.runKernel(o.Sinh,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],g6fqX:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice1d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./slice");let u=(0,l.op)({slice1d_:function(e,t,r){let n=(0,a.convertToTensor)(e,"x","slice1d");return o.assert(1===n.rank,()=>`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),(0,i.slice)(n,[t],[r])}})},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","./slice":"dV0br","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],g7MwC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice2d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./slice");let u=(0,l.op)({slice2d_:function(e,t,r){let n=(0,a.convertToTensor)(e,"x","slice2d");return o.assert(2===n.rank,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),(0,i.slice)(n,t,r)}})},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","./slice":"dV0br","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eVyb0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice3d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./slice");let u=(0,l.op)({slice3d_:function(e,t,r){let n=(0,a.convertToTensor)(e,"x","slice3d");return o.assert(3===n.rank,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),(0,i.slice)(n,t,r)}})},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","./slice":"dV0br","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jQzWC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice4d",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./slice");let u=(0,l.op)({slice4d_:function(e,t,r){let n=(0,a.convertToTensor)(e,"x","slice4d");return o.assert(4===n.rank,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),(0,i.slice)(n,t,r)}})},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","./slice":"dV0br","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4d9ZW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softmax",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({softmax_:function(e,t=-1){let r=(0,l.convertToTensor)(e,"logits","softmax","float32");if(-1===t&&(t=r.rank-1),t!==r.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${r.rank} and dim was ${t}`);let n={dim:t};return a.ENGINE.runKernel(o.Softmax,{logits:r},n)}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4GoOf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fft",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../util");let i=(0,e("../operation").op)({fft_:function(e){return(0,l.assert)("complex64"===e.dtype,()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`),a.ENGINE.runKernel(o.FFT,{input:e})}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../util":"2IDj3","../operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9td2A":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ifft",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../util");let i=(0,e("../operation").op)({ifft_:function(e){return(0,l.assert)("complex64"===e.dtype,()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`),a.ENGINE.runKernel(o.IFFT,{input:e})}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../util":"2IDj3","../operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1kLeO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"irfft",()=>g);var a=e("../complex"),o=e("../concat"),l=e("../imag"),i=e("../mul"),u=e("../operation"),p=e("../real"),c=e("../reshape"),d=e("../reverse"),f=e("../scalar"),h=e("../slice"),m=e("./ifft");let g=(0,u.op)({irfft_:function(e){let t,r=e.shape[e.shape.length-1],n=e.size/r;if(r<=2){let s=(0,c.reshape)(e,[n,r]);t=(0,m.ifft)(s)}else{let s=[n,2*(r-1)],u=(0,c.reshape)((0,p.real)(e),[n,r]),g=(0,c.reshape)((0,l.imag)(e),[n,r]),x=(0,d.reverse)((0,h.slice)(u,[0,1],[n,r-2]),1),v=(0,i.mul)((0,d.reverse)((0,h.slice)(g,[0,1],[n,r-2]),1),(0,f.scalar)(-1)),y=(0,o.concat)([u,x],1),_=(0,o.concat)([g,v],1),b=(0,c.reshape)((0,a.complex)(y,_),[s[0],s[1]]);t=(0,m.ifft)(b)}if(t=(0,p.real)(t),3===e.rank&&0!==e.shape[0]){let r=t,n=e.shape[0];t=(0,c.reshape)(t,[n,t.shape[0]/n,t.shape[1]]),r.dispose()}return t}})},{"../complex":"kNXzJ","../concat":"gMgmG","../imag":"hTlEs","../mul":"1OlNG","../operation":"hyTBr","../real":"jx2td","../reshape":"aTsgx","../reverse":"8iYj6","../scalar":"forpx","../slice":"dV0br","./ifft":"9td2A","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kKu6i:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rfft",()=>x);var a=e("../../util"),o=e("../complex"),l=e("../concat"),i=e("../imag"),u=e("../operation"),p=e("../real"),c=e("../reshape"),d=e("../slice"),f=e("../split"),h=e("../zeros"),m=e("../zeros_like"),g=e("./fft");let x=(0,u.op)({rfft_:function(e,t){let r;(0,a.assert)("float32"===e.dtype,()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],s=e.size/n;if(null!=t&&t<n){let s=e.shape.map(e=>0),a=e.shape.map(e=>e);a[e.shape.length-1]=t,r=(0,d.slice)(e,s,a),n=t}else if(null!=t&&t>n){let s=e.shape.map(e=>e);s[e.shape.length-1]=t-n,r=(0,l.concat)([e,(0,h.zeros)(s)],e.shape.length-1),n=t}else r=e;let u=(0,m.zerosLike)(r),x=(0,c.reshape)((0,o.complex)(r,u),[s,n]),v=(0,g.fft)(x),y=Math.floor(n/2)+1,_=(0,p.real)(v),b=(0,i.imag)(v),k=(0,f.split)(_,[y,n-y],_.shape.length-1),T=(0,f.split)(b,[y,n-y],b.shape.length-1),w=r.shape.slice();return w[r.shape.length-1]=y,(0,c.reshape)((0,o.complex)(k[0],T[0]),w)}})},{"../../util":"2IDj3","../complex":"kNXzJ","../concat":"gMgmG","../imag":"hTlEs","../operation":"hyTBr","../real":"jx2td","../reshape":"aTsgx","../slice":"dV0br","../split":"ltt7k","../zeros":"egJAn","../zeros_like":"bDxUb","./fft":"4GoOf","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ltt7k:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"split",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({split_:function(e,t,r=0){let n=(0,l.convertToTensor)(e,"x","split");return a.ENGINE.runKernel(o.SplitV,{x:n},{numOrSizeSplits:t,axis:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"72ICX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squaredDifference",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),u=e("./broadcast_util");let p=(0,e("./operation").op)({squaredDifference_:function(e,t){let r=(0,i.convertToTensor)(e,"a","squaredDifference"),n=(0,i.convertToTensor)(t,"b","squaredDifference");[r,n]=(0,l.makeTypesMatch)(r,n),(0,u.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.SquaredDifference,s,{})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","./broadcast_util":"5OjHc","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3Urcw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squeeze",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reshape");let u=(0,l.op)({squeeze_:function(e,t){let r=(0,a.convertToTensor)(e,"x","squeeze","string_or_numeric");return(0,i.reshape)(r,(0,o.squeezeShape)(r.shape,t).newShape)}})},{"../tensor_util_env":"4hoNq","../util":"2IDj3","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"70ZzF":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stack",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({stack_:function(e,t=0){let r=(0,l.convertToTensorArray)(e,"tensors","stack","string_or_numeric");return i.assert(r.length>=1,()=>"Pass at least one tensor to tf.stack"),r.length>0&&i.assert(t<=r[0].rank,()=>"Axis must be<= rank of the tensor"),a.ENGINE.runKernel(o.Pack,r,{axis:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],elPQj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"step",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({step_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","step");return a.ENGINE.runKernel(o.Step,{x:r},{alpha:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],droI1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stridedSlice",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({stridedSlice_:function(e,t,r,n,s=0,i=0,u=0,p=0,c=0){let d=(0,l.convertToTensor)(e,"x","stridedSlice","string_or_numeric");return a.ENGINE.runKernel(o.StridedSlice,{x:d},{begin:t,end:r,strides:n,beginMask:s,endMask:i,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:c})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fVbhi:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tan",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({tan_:function(e){let t=(0,l.convertToTensor)(e,"x","tan","float32");return a.ENGINE.runKernel(o.Tan,{x:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6O0tO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor1d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t){(0,o.assertNonNull)(e);let r=(0,a.inferShape)(e,t);if(1!==r.length)throw Error("tensor1d() requires values to be a flat/TypedArray");return(0,l.makeTensor)(e,null,r,t)}},{"../tensor_util_env":"4hoNq","../util":"2IDj3","./tensor_ops_util":"f2WcV","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4WGwJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor2d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&2!==t.length)throw Error("tensor2d() requires shape to have two numbers");let n=(0,a.inferShape)(e,r);if(2!==n.length&&1!==n.length)throw Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"4hoNq","../util":"2IDj3","./tensor_ops_util":"f2WcV","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],GaNB4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor4d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&4!==t.length)throw Error("tensor4d() requires shape to have four numbers");let n=(0,a.inferShape)(e,r);if(4!==n.length&&1!==n.length)throw Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor4d() requires shape to be provided when `values` are a flat array");return(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"4hoNq","../util":"2IDj3","./tensor_ops_util":"f2WcV","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hRara:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor5d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&5!==t.length)throw Error("tensor5d() requires shape to have five numbers");let n=(0,a.inferShape)(e,r);if(5!==n.length&&1!==n.length)throw Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor5d() requires shape to be provided when `values` are a flat array");return(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"4hoNq","../util":"2IDj3","./tensor_ops_util":"f2WcV","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6cy9P":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor6d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&6!==t.length)throw Error("tensor6d() requires shape to have six numbers");let n=(0,a.inferShape)(e,r);if(6!==n.length&&1!==n.length)throw Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||n,(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"4hoNq","../util":"2IDj3","./tensor_ops_util":"f2WcV","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7IFMo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensorScatterUpdate",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./operation"),u=e("./scatter_nd_util");let p=(0,i.op)({tensorScatterUpdate_:function(e,t,r){let n=(0,l.convertToTensor)(e,"tensor","tensorScatterupdate"),s=(0,l.convertToTensor)(t,"indices","tensorScatterupdate","int32"),i=(0,l.convertToTensor)(r,"updates","tensorScatterupdate");if(u.validateInput(i,s,n.shape),n.dtype!==i.dtype)throw Error(`tensor and updates must have the same dtype, instead they are ${n.dtype} and ${i.dtype}.`);return a.ENGINE.runKernel(o.TensorScatterUpdate,{tensor:n,indices:s,updates:i},{})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","./scatter_nd_util":"fHXmM","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7xEje":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"topk",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({topk_:function(e,t=1,r=!0){let n=(0,l.convertToTensor)(e,"x","topk");if(0===n.rank)throw Error("topk() expects the input to be of rank 1 or higher");let s=n.shape[n.shape.length-1];if(t<0)throw Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>s)throw Error(`'k' passed to topk() must be<= the last dimension (${s}) but got ${t}`);let[i,u]=a.ENGINE.runKernel(o.TopK,{x:n},{k:t,sorted:r});return{values:i,indices:u}}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1GTNp":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"truncatedNormal",()=>u);var a=e("../util_base"),o=e("./buffer"),l=e("./operation"),i=e("./rand_util");let u=(0,l.op)({truncatedNormal_:function(e,t=0,r=1,n,s){if((0,a.assertNonNegativeIntegerDimensions)(e),null!=n&&"bool"===n)throw Error("Unsupported data type $ { dtype }");let l=new(0,i.MPRandGauss)(t,r,n,!0,s),u=(0,o.buffer)(e,n);for(let e=0;e<u.values.length;e++)u.values[e]=l.nextValue();return u.toTensor()}})},{"../util_base":"2IDj3","./buffer":"4NIGp","./operation":"hyTBr","./rand_util":"iYJog","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5hwsi":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unique",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({unique_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","unique","string_or_numeric");(0,i.assert)(r.rank>0,()=>"The input tensor must be at least 1D");let[n,s]=a.ENGINE.runKernel(o.Unique,{x:r},{axis:t});return{values:n,indices:s}}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"2IDj3","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"89hnB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unsortedSegmentSum",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({unsortedSegmentSum_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","unsortedSegmentSum"),s=(0,l.convertToTensor)(t,"segmentIds","unsortedSegmentSum","int32");return(0,i.assert)((0,i.isInt)(r),()=>"numSegments must be of dtype int"),a.ENGINE.runKernel(o.UnsortedSegmentSum,{x:n,segmentIds:s},{numSegments:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"2IDj3","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3KTTp":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unstack",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let u=(0,e("./operation").op)({unstack_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","unstack","string_or_numeric");return i.assert(t>=-r.shape.length&&t<r.shape.length,()=>`Axis = ${t} is not in [-${r.shape.length}, ${r.shape.length})`),a.ENGINE.runKernel(o.Unpack,{value:r},{axis:t})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util":"lLzfH","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],c9heh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"upperBound",()=>o);var a=e("./search_sorted");function o(e,t){return(0,a.searchSorted)(e,t,"right")}},{"./search_sorted":"lDhLu","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4R7Zb":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"variable",()=>o);var a=e("../engine");function o(e,t=!0,r,n){return a.ENGINE.makeVariable(e,t,r,n)}},{"../engine":"gtimw","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"96SOt":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"whereAsync",()=>l);var a=e("../backends/where_impl"),o=e("../tensor_util_env");let l=async function(e){let t=(0,o.convertToTensor)(e,"condition","whereAsync","bool"),r=await t.data(),n=(0,a.whereImpl)(t.shape,r);return e!==t&&t.dispose(),n}},{"../backends/where_impl":"7GBoB","../tensor_util_env":"4hoNq","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7GBoB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"whereImpl",()=>o);var a=e("../ops/buffer");function o(e,t){let r=[];for(let e=0;e<t.length;e++)t[e]&&r.push(e);let n=(0,a.buffer)(e,"int32"),s=(0,a.buffer)([r.length,e.length],"int32");for(let t=0;t<r.length;t++){let a=n.indexToLoc(r[t]),o=t*e.length;s.values.set(a,o)}return s.toTensor()}},{"../ops/buffer":"4NIGp","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3g3bN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"booleanMaskAsync",()=>c);var a=e("../tensor_util_env"),o=e("../util"),l=e("./gather"),i=e("./reshape"),u=e("./squeeze"),p=e("./where_async");let c=async function(e,t,r){let n=(0,a.convertToTensor)(e,"tensor","boolMask"),s=(0,a.convertToTensor)(t,"mask","boolMask","bool"),c=null==r?0:r,d=s.rank,f=n.shape;o.assert(d>0,()=>"mask cannot be scalar"),o.assertShapesMatch(f.slice(c,c+d),s.shape,"mask's shape must match the first K dimensions of tensor's shape,");let h=1;for(let e=c;e<c+d;e++)h*=f[e];let m=f.slice(0,c).concat([h],f.slice(c+d)),g=(0,i.reshape)(n,m),x=(0,i.reshape)(s,[-1]),v=await (0,p.whereAsync)(x),y=(0,u.squeeze)(v,[1]),_=(0,l.gather)(g,y,c);return e!==n&&n.dispose(),t!==s&&s.dispose(),y.dispose(),g.dispose(),x.dispose(),v.dispose(),_}},{"../tensor_util_env":"4hoNq","../util":"lLzfH","./gather":"3E7pK","./reshape":"aTsgx","./squeeze":"3Urcw","./where_async":"96SOt","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"275QJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"movingAverage",()=>m);var a=e("../tensor_util"),o=e("../tensor_util_env"),l=e("../util"),i=e("./add"),u=e("./div"),p=e("./mul"),c=e("./operation"),d=e("./pow"),f=e("./scalar"),h=e("./sub");let m=(0,c.op)({movingAverage_:function(e,t,r,n,s=!0){let c=(0,o.convertToTensor)(e,"v","movingAverage"),m=(0,o.convertToTensor)(t,"x","movingAverage"),g=(0,o.convertToTensor)(r,"decay","movingAverage");(0,a.assertTypesMatch)(c,m),l.assert(l.arraysEqual(c.shape,m.shape),()=>"Shape mismatch in v and x");let x=(0,f.scalar)(1),v=(0,h.sub)(x,g),y=(0,p.mul)((0,h.sub)(m,c),v);if(s){l.assert(null!=n,()=>"When using zeroDebias: true, step is required.");let e=(0,o.convertToTensor)(n,"step","movingAverage");y=(0,u.div)(y,(0,h.sub)(x,(0,d.pow)(g,e)))}return(0,i.add)(c,y)}})},{"../tensor_util":"j3qzf","../tensor_util_env":"4hoNq","../util":"lLzfH","./add":"hFQoV","./div":"41SAh","./mul":"1OlNG","./operation":"hyTBr","./pow":"5RrXs","./scalar":"forpx","./sub":"AdEY0","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"32FPG":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scatterND",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util_base"),u=e("./operation"),p=e("./scatter_nd_util");let c=(0,u.op)({scatterND_:function(e,t,r){(0,i.assertNonNegativeIntegerDimensions)(r);let n=(0,l.convertToTensor)(e,"indices","scatterND","int32"),s=(0,l.convertToTensor)(t,"updates","scatterND");return p.validateInput(s,n,r),a.ENGINE.runKernel(o.ScatterNd,{indices:n,updates:s},{shape:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","../util_base":"2IDj3","./operation":"hyTBr","./scatter_nd_util":"fHXmM","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],flkys:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseToDense",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../ops/sparse_to_dense_util"),i=e("../tensor_util_env"),u=e("../util_base");let p=(0,e("./operation").op)({sparseToDense_:function(e,t,r,n=0){(0,u.assertNonNegativeIntegerDimensions)(r);let s=(0,i.convertToTensor)(e,"sparseIndices","sparseToDense","int32"),p=(0,i.convertToTensor)(t,"sparseValues","sparseToDense","string_or_numeric"),c=(0,i.convertToTensor)(n,"defaultValue","sparseToDense",p.dtype);return l.validateInput(s,p,r,c),a.ENGINE.runKernel(o.SparseToDense,{sparseIndices:s,sparseValues:p,defaultValue:c},{outputShape:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../ops/sparse_to_dense_util":"dYtZH","../tensor_util_env":"4hoNq","../util_base":"2IDj3","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dYtZH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r,n){if("int32"!==e.dtype)throw Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);let s=e.rank>0?e.shape[0]:1,a=e.rank>1?e.shape[1]:1;if(r.length!==a)throw Error(`outputShape has incorrect number of elements:, ${r.length}, should be: ${a}.`);let o=t.size;if(0!==t.rank&&(1!==t.rank||o!==s))throw Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${s}]`);if(t.dtype!==n.dtype)throw Error("sparseValues.dtype must match defaultValues.dtype")}s.defineInteropFlag(r),s.export(r,"validateInput",()=>a)},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eTAMF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherND",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({gatherND_:function(e,t){let r=(0,l.convertToTensor)(t,"indices","gatherND","int32"),n=(0,l.convertToTensor)(e,"x","gatherND","string_or_numeric");return a.ENGINE.runKernel(o.GatherNd,{params:n,indices:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../tensor_util_env":"4hoNq","./operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],doPmo:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dropout",()=>m);var a=e("../tensor"),o=e("../tensor_util_env"),l=e("../util"),i=e("./add"),u=e("./div"),p=e("./dropout_util"),c=e("./floor"),d=e("./mul"),f=e("./operation"),h=e("./random_uniform");let m=(0,f.op)({dropout_:function(e,t,r,n){let s=(0,o.convertToTensor)(e,"x","dropout");if(l.assert("float32"===s.dtype,()=>`x has to be a floating point tensor since it's going to be scaled, but got a ${s.dtype} tensor instead.`),l.assert(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),0===t)return e instanceof a.Tensor?s.clone():s;let f=(0,p.getNoiseShape)(s,r),m=1-t,g=(0,u.div)((0,c.floor)((0,i.add)((0,h.randomUniform)(f,0,1,"float32",n),m)),m);return(0,d.mul)(s,g)}})},{"../tensor":"8mprx","../tensor_util_env":"4hoNq","../util":"lLzfH","./add":"hFQoV","./div":"41SAh","./dropout_util":"ZWPYw","./floor":"gvsUY","./mul":"1OlNG","./operation":"hyTBr","./random_uniform":"6DgfI","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ZWPYw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getNoiseShape",()=>o);var a=e("../util");function o(e,t){if(null==t)return e.shape.slice();if(a.arraysEqual(e.shape,t))return t;if(e.shape.length===t.length){let r=[];for(let n=0;n<e.shape.length;n++)null==t[n]&&null!=e.shape[n]?r.push(e.shape[n]):r.push(t[n]);return r}return t}},{"../util":"lLzfH","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gkBkm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"enclosingPowerOfTwo",()=>o),s.export(r,"cosineWindow",()=>l);var a=e("./tensor1d");function o(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function l(e,t,r){let n=1-e%2,s=new Float32Array(e);for(let a=0;a<e;++a){let o=2*Math.PI*a/(e+n-1);s[a]=t-r*Math.cos(o)}return(0,a.tensor1d)(s,"float32")}},{"./tensor1d":"6O0tO","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cRqRa:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"inTopKAsync",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor");let i=async function(e,t,r=1){let n=(0,a.convertToTensor)(e,"predictions","inTopK"),s=(0,a.convertToTensor)(t,"targets","inTopK");(0,o.assert)(n.rank>1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),(0,o.assert)(n.rank-1===s.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${s.rank}`),(0,o.assertShapesMatch)(n.shape.slice(0,n.shape.length-1),s.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let i=n.shape[n.shape.length-1];(0,o.assert)(r>0&&r<=i,()=>`'k' passed to inTopK() must be > 0 &&<= the predictions last dimension (${i}), but got ${r}`);let u=await n.data(),p=await s.data(),[c,d]=[u.length/i,i],f=(0,o.getTypedArrayFromDType)("bool",c);for(let e=0;e<c;e++){let t=e*d,n=u.subarray(t,t+d),s=[];for(let e=0;e<n.length;e++)s.push({value:n[e],index:e});s.sort((e,t)=>t.value-e.value),f[e]=0;for(let t=0;t<r;t++)if(s[t].index===p[e]){f[e]=1;break}}return e!==n&&n.dispose(),t!==s&&s.dispose(),(0,l.tensor)(f,s.shape,"bool")}},{"../tensor_util_env":"4hoNq","../util":"2IDj3","./tensor":"gToZD","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fa2Yg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2d",()=>a.conv2d),s.export(r,"depthwiseConv2d",()=>o.depthwiseConv2d),s.export(r,"matMul",()=>l.matMul);var a=e("./fused/conv2d"),o=e("./fused/depthwise_conv2d"),l=e("./fused/mat_mul")},{"./fused/conv2d":"4Zmqk","./fused/depthwise_conv2d":"7GmMh","./fused/mat_mul":"1gjNc","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4Zmqk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2d",()=>_);var a=e("../../engine"),o=e("../../gradients"),l=e("../../kernel_names"),i=e("../../tensor_util"),u=e("../../tensor_util_env"),p=e("../../util"),c=e("../add"),d=e("../broadcast_util"),f=e("../conv2d"),h=e("../conv2d_backprop_filter"),m=e("../conv2d_backprop_input"),g=e("../conv_util"),x=e("../fused_util"),v=e("../operation"),y=e("../reshape");let _=(0,v.op)({fusedConv2d_:function({x:e,filter:t,strides:r,pad:n,dataFormat:s="NHWC",dilations:v=[1,1],dimRoundingMode:_,bias:b,activation:k="linear",preluActivationWeights:T,leakyreluAlpha:w}){let I,j;if(k=k||"linear",!1===(0,x.shouldFuse)(a.ENGINE.state.gradientDepth,k)){p.assert("NHWC"===s,()=>`Error in fused conv2d: got dataFormat of ${s} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let a=(0,f.conv2d)(e,t,r,n,s,v,_);return null!=b&&(a=(0,c.add)(a,b)),(0,x.applyActivation)(a,k,T,w)}let C=(0,u.convertToTensor)(e,"x","conv2d","float32"),N=(0,u.convertToTensor)(t,"filter","conv2d","float32"),S=C,E=!1;3===C.rank&&(E=!0,S=(0,y.reshape)(C,[1,C.shape[0],C.shape[1],C.shape[2]])),p.assert(4===S.rank,()=>`Error in fused conv2d: input must be rank 4, but got rank ${S.rank}.`),p.assert(4===N.rank,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${N.rank}.`),g.checkPadOnDimRoundingMode("fused conv2d",n,_);let A="NHWC"===s?S.shape[3]:S.shape[1];p.assert(N.shape[2]===A,()=>`Error in conv2d: depth of input (${A}) must match input depth for filter ${N.shape[2]}.`),p.assert(g.eitherStridesOrDilationsAreOne(r,v),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${r} and dilations '${v}'`);let F=g.computeConv2DInfo(S.shape,N.shape,r,v,n,_);if(null!=b&&(I=(0,u.convertToTensor)(b,"bias","fused conv2d"),[I]=(0,i.makeTypesMatch)(I,C),"NHWC"===s?d.assertAndGetBroadcastShape(F.outShape,I.shape):(p.assert(I.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${I.shape.length}.`),p.assert(0===I.shape.length||I.shape[0]===F.outChannels||1===I.shape[0],()=>`Error in fused conv2d: bias shape (${I.shape}) is not compatible with the number of output channels (${F.outChannels})`))),null!=T){let e=T.shape;if(p.assert(e.length<=1||3===e.length,()=>`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}.`),1===e.length)p.assert(1===e[0]||e[0]===F.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${e}) is not compatible with the number of output channels (${F.outChannels}).`);else if(3===e.length)try{d.assertAndGetBroadcastShape(e,F.outShape)}catch(t){throw Error(`Error in fused conv2d: PReLU activation weights (${e}) is not compatible with the output shape of the conv2d (${F.outShape}).`)}j=(0,u.convertToTensor)(T,"prelu weights","fused conv2d")}let R=(e,t)=>{p.assert("NHWC"===s,()=>`Error in gradient of fused conv2D: got dataFormat of ${s} but only NHWC is currently supported.`);let[a,o,l,i]=t,u=(0,x.getFusedDyActivation)(e,l,k);p.assert(g.tupleValuesAreOne(v),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${v}'`);let c=[(0,m.conv2DBackpropInput)(o.shape,u,a,r,n),(0,h.conv2DBackpropFilter)(o,u,a.shape,r,n)];if(null!=i){let e=(0,x.getFusedBiasGradient)(i,u);c.push(e)}return c},D={x:S,filter:N,bias:I,preluActivationWeights:j},P={strides:r,pad:n,dataFormat:s,dilations:v,dimRoundingMode:_,activation:k,leakyreluAlpha:w};return null==b?(0,o.customGrad)((e,t,r)=>{let n=a.ENGINE.runKernel(l.FusedConv2D,D,P);return r([t,e,n]),E&&(n=(0,y.reshape)(n,[n.shape[1],n.shape[2],n.shape[3]])),{value:n,gradFunc:R}})(S,N):(0,o.customGrad)((e,t,r,n)=>{let s=a.ENGINE.runKernel(l.FusedConv2D,D,P);return n([t,e,s,r]),E&&(s=(0,y.reshape)(s,[s.shape[1],s.shape[2],s.shape[3]])),{value:s,gradFunc:R}})(S,N,I)}})},{"../../engine":"gtimw","../../gradients":"3aQK6","../../kernel_names":"agfs7","../../tensor_util":"j3qzf","../../tensor_util_env":"4hoNq","../../util":"lLzfH","../add":"hFQoV","../broadcast_util":"5OjHc","../conv2d":"l6vGH","../conv2d_backprop_filter":"eg4J4","../conv2d_backprop_input":"f5LCJ","../conv_util":"i0dk6","../fused_util":"dJmcU","../operation":"hyTBr","../reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eg4J4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropFilter",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../util"),i=e("./conv_util"),u=e("./operation"),p=e("./reshape");let c=(0,u.op)({conv2DBackpropFilter_:function(e,t,r,n,s,u="NHWC",c){let d=e;3===e.rank&&(d=(0,p.reshape)(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let f=t;3===f.rank&&(f=(0,p.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2]])),l.assert(4===d.rank,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${d.shape}.`),l.assert(4===f.rank,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${f.shape}.`),l.assert(4===r.length,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${r}.`);let h="NHWC"===u?d.shape[3]:d.shape[1],m="NHWC"===u?f.shape[3]:f.shape[1];l.assert(h===r[2],()=>`Error in conv2dDerFilter: depth of input ${h}) must match input depth in filter (${r[2]}.`),l.assert(m===r[3],()=>`Error in conv2dDerFilter: depth of dy (${m}) must match output depth for filter (${r[3]}).`),i.checkPadOnDimRoundingMode("conv2dDerFilter",s,c);let g={x:d,dy:f};return a.ENGINE.runKernel(o.Conv2DBackpropFilter,g,{strides:n,pad:s,dataFormat:u,dimRoundingMode:c,filterShape:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","../util":"lLzfH","./conv_util":"i0dk6","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dJmcU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getFusedDyActivation",()=>g),s.export(r,"getFusedBiasGradient",()=>x),s.export(r,"applyActivation",()=>v),s.export(r,"shouldFuse",()=>y);var a=e("./broadcast_util"),o=e("./elu"),l=e("./leaky_relu"),i=e("./mul"),u=e("./prelu"),p=e("./relu"),c=e("./relu6"),d=e("./reshape"),f=e("./sigmoid"),h=e("./step"),m=e("./sum");function g(e,t,r){if(null==r||"linear"===r)return e;if("relu"===r)return(0,i.mul)(e,(0,h.step)(t));throw Error(`Cannot compute gradient for fused activation ${r}.`)}function x(e,t){let r=t,n=a.getReductionAxes(e.shape,t.shape);return n.length>0&&(r=(0,m.sum)(r,n)),(0,d.reshape)(r,e.shape)}function v(e,t,r,n){if("linear"===t)return e;if("relu"===t)return(0,p.relu)(e);if("elu"===t)return(0,o.elu)(e);if("relu6"===t)return(0,c.relu6)(e);if("prelu"===t)return(0,u.prelu)(e,r);else if("leakyrelu"===t)return(0,l.leakyRelu)(e,n);else if("sigmoid"===t)return(0,f.sigmoid)(e);throw Error(`Unknown fused activation ${t}.`)}let y=(e,t)=>!(e>0)||"linear"===t},{"./broadcast_util":"5OjHc","./elu":"dBwXu","./leaky_relu":"cbLfe","./mul":"1OlNG","./prelu":"3aTLU","./relu":"lnyoN","./relu6":"hKBJU","./reshape":"aTsgx","./sigmoid":"1G17C","./step":"elPQj","./sum":"gHwwi","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7GmMh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2d",()=>_);var a=e("../../engine"),o=e("../../gradients"),l=e("../../kernel_names"),i=e("../../tensor_util"),u=e("../../tensor_util_env"),p=e("../../util"),c=e("../add"),d=e("../broadcast_util"),f=e("../conv_util"),h=e("../depthwise_conv2d"),m=e("../depthwise_conv2d_native_backprop_filter"),g=e("../depthwise_conv2d_native_backprop_input"),x=e("../fused_util"),v=e("../operation"),y=e("../reshape");let _=(0,v.op)({fusedDepthwiseConv2d_:function({x:e,filter:t,strides:r,pad:n,dataFormat:s="NHWC",dilations:v=[1,1],dimRoundingMode:_,bias:b,activation:k="linear",preluActivationWeights:T,leakyreluAlpha:w}){let I,j;if(!1===(0,x.shouldFuse)(a.ENGINE.state.gradientDepth,k)){let a=(0,h.depthwiseConv2d)(e,t,r,n,s,v,_);return null!=b&&(a=(0,c.add)(a,b)),(0,x.applyActivation)(a,k,T,w)}let C=(0,u.convertToTensor)(e,"x","depthwiseConv2d","float32"),N=(0,u.convertToTensor)(t,"filter","depthwiseConv2d","float32"),S=C,E=!1;3===C.rank&&(E=!0,S=(0,y.reshape)(C,[1,C.shape[0],C.shape[1],C.shape[2]])),p.assert(4===S.rank,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${S.rank}.`),p.assert(4===N.rank,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${N.rank}.`),p.assert(S.shape[3]===N.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${S.shape[3]}) must match the inChannels dimension in filter ${N.shape[2]}.`),null==v&&(v=[1,1]),p.assert(f.eitherStridesOrDilationsAreOne(r,v),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${v}'`),f.checkPadOnDimRoundingMode("fused depthwiseConv2d",n,_);let A=f.computeConv2DInfo(S.shape,N.shape,r,v,n,_,!0);null!=b&&(I=(0,u.convertToTensor)(b,"bias","fused conv2d"),[I]=(0,i.makeTypesMatch)(I,C),d.assertAndGetBroadcastShape(A.outShape,I.shape)),null!=T&&(j=(0,u.convertToTensor)(T,"prelu weights","fused depthwiseConv2d"));let F=(e,t)=>{p.assert(f.tupleValuesAreOne(v),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${v}'`);let[s,a,o,l]=t,i=(0,x.getFusedDyActivation)(e,o,k),u=(0,g.depthwiseConv2dNativeBackpropInput)(a.shape,i,s,r,n,v,_),c=(0,m.depthwiseConv2dNativeBackpropFilter)(a,i,s.shape,r,n,v,_);return null!=l?[u,c,(0,x.getFusedBiasGradient)(I,i)]:[u,c]},R={x:S,filter:N,bias:I,preluActivationWeights:j},D={strides:r,pad:n,dataFormat:s,dilations:v,dimRoundingMode:_,activation:k,leakyreluAlpha:w};return null==b?(0,o.customGrad)((e,t,r)=>{let n=a.ENGINE.runKernel(l.FusedDepthwiseConv2D,R,D);return r([t,e,n]),E&&(n=(0,y.reshape)(n,[n.shape[1],n.shape[2],n.shape[3]])),{value:n,gradFunc:F}})(S,N):(0,o.customGrad)((e,t,r,n)=>{let s=a.ENGINE.runKernel(l.FusedDepthwiseConv2D,R,D);return n([t,e,s,r]),E&&(s=(0,y.reshape)(s,[s.shape[1],s.shape[2],s.shape[3]])),{value:s,gradFunc:F}})(S,N,I)}})},{"../../engine":"gtimw","../../gradients":"3aQK6","../../kernel_names":"agfs7","../../tensor_util":"j3qzf","../../tensor_util_env":"4hoNq","../../util":"lLzfH","../add":"hFQoV","../broadcast_util":"5OjHc","../conv_util":"i0dk6","../depthwise_conv2d":"gd3xg","../depthwise_conv2d_native_backprop_filter":"2SM9P","../depthwise_conv2d_native_backprop_input":"bmRr0","../fused_util":"dJmcU","../operation":"hyTBr","../reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2SM9P":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropFilter",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("./operation"),i=e("./reshape");let u=(0,l.op)({depthwiseConv2dNativeBackpropFilter_:function(e,t,r,n,s,l=[1,1],u){let p=e;3===e.rank&&(p=(0,i.reshape)(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let c=t;3===c.rank&&(c=(0,i.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let d={x:p,dy:c};return a.ENGINE.runKernel(o.DepthwiseConv2dNativeBackpropFilter,d,{strides:n,pad:s,dimRoundingMode:u,dilations:l,filterShape:r})}})},{"../engine":"gtimw","../kernel_names":"agfs7","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bmRr0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropInput",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("./operation"),i=e("./reshape");let u=(0,l.op)({depthwiseConv2dNativeBackpropInput_:function(e,t,r,n,s,l=[1,1],u){let p=t,c=!1;3===t.rank&&(c=!0,p=(0,i.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let d={dy:p,filter:r},f=a.ENGINE.runKernel(o.DepthwiseConv2dNativeBackpropInput,d,{strides:n,pad:s,dimRoundingMode:u,dilations:l,inputShape:e});return c?(0,i.reshape)(f,[f.shape[1],f.shape[2],f.shape[3]]):f}})},{"../engine":"gtimw","../kernel_names":"agfs7","./operation":"hyTBr","./reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1gjNc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"matMul",()=>x);var a=e("../../engine"),o=e("../../gradients"),l=e("../../kernel_names"),i=e("../../tensor_util"),u=e("../../tensor_util_env"),p=e("../../util"),c=e("../add"),d=e("../broadcast_util"),f=e("../fused_util"),h=e("../mat_mul"),m=e("../operation"),g=e("../reshape");let x=(0,m.op)({fusedMatMul_:function({a:e,b:t,transposeA:r=!1,transposeB:n=!1,bias:s,activation:m="linear",preluActivationWeights:x,leakyreluAlpha:v=.2}){let y,_;if(!1===(0,f.shouldFuse)(a.ENGINE.state.gradientDepth,m)){let a=(0,h.matMul)(e,t,r,n);return null!=s&&(a=(0,c.add)(a,s)),(0,f.applyActivation)(a,m,x,v)}let b=(0,u.convertToTensor)(e,"a","fused matMul"),k=(0,u.convertToTensor)(t,"b","fused matMul");[b,k]=(0,i.makeTypesMatch)(b,k);let T=r?b.shape[b.rank-2]:b.shape[b.rank-1],w=n?k.shape[k.rank-1]:k.shape[k.rank-2],I=r?b.shape[b.rank-1]:b.shape[b.rank-2],j=n?k.shape[k.rank-2]:k.shape[k.rank-1],C=b.shape.slice(0,-2),N=k.shape.slice(0,-2),S=p.sizeFromShape(C),E=p.sizeFromShape(N);p.assert(T===w,()=>`Error in fused matMul: inner shapes (${T}) and (${w}) of Tensors with shapes ${b.shape} and ${k.shape} and transposeA=${r} and transposeB=${n} must match.`);let A=d.assertAndGetBroadcastShape(b.shape.slice(0,-2),k.shape.slice(0,-2)).concat([I,j]),F=r?(0,g.reshape)(b,[S,T,I]):(0,g.reshape)(b,[S,I,T]),R=n?(0,g.reshape)(k,[E,j,w]):(0,g.reshape)(k,[E,w,j]);null!=s&&(y=(0,u.convertToTensor)(s,"bias","fused matMul"),[y]=(0,i.makeTypesMatch)(y,b),d.assertAndGetBroadcastShape(A,y.shape)),null!=x&&(_=(0,u.convertToTensor)(x,"prelu weights","fused matMul"));let D=(e,t)=>{let a,o,[l,i,u,p]=t,c=(0,f.getFusedDyActivation)((0,g.reshape)(e,u.shape),u,m);return(r||n?!r&&n?(a=(0,h.matMul)(c,i,!1,!1),o=(0,h.matMul)(c,l,!0,!1)):r&&!n?(a=(0,h.matMul)(i,c,!1,!0),o=(0,h.matMul)(l,c,!1,!1)):(a=(0,h.matMul)(i,c,!0,!0),o=(0,h.matMul)(c,l,!0,!0)):(a=(0,h.matMul)(c,i,!1,!0),o=(0,h.matMul)(l,c,!0,!1)),null!=s)?[a,o,(0,f.getFusedBiasGradient)(p,c)]:[a,o]},P={a:F,b:R,bias:y,preluActivationWeights:_},$={transposeA:r,transposeB:n,activation:m,leakyreluAlpha:v};return null==s?(0,o.customGrad)((e,t,r)=>{let n=a.ENGINE.runKernel(l._FusedMatMul,P,$);return r([e,t,n]),{value:(0,g.reshape)(n,A),gradFunc:D}})(F,R):(0,o.customGrad)((e,t,r,n)=>{let s=a.ENGINE.runKernel(l._FusedMatMul,P,$);return n([e,t,s,r]),{value:(0,g.reshape)(s,A),gradFunc:D}})(F,R,y)}})},{"../../engine":"gtimw","../../gradients":"3aQK6","../../kernel_names":"agfs7","../../tensor_util":"j3qzf","../../tensor_util_env":"4hoNq","../../util":"lLzfH","../add":"hFQoV","../broadcast_util":"5OjHc","../fused_util":"dJmcU","../mat_mul":"apoIX","../operation":"hyTBr","../reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lBTZD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"hammingWindow",()=>l);var a=e("../operation"),o=e("../signal_ops_util");let l=(0,a.op)({hammingWindow_:function(e){return(0,o.cosineWindow)(e,.54,.46)}})},{"../operation":"hyTBr","../signal_ops_util":"gkBkm","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6vwjv":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"hannWindow",()=>l);var a=e("../operation"),o=e("../signal_ops_util");let l=(0,a.op)({hannWindow_:function(e){return(0,o.cosineWindow)(e,.5,.5)}})},{"../operation":"hyTBr","../signal_ops_util":"gkBkm","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aSMoZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"frame",()=>c);var a=e("../concat"),o=e("../fill"),l=e("../operation"),i=e("../reshape"),u=e("../slice"),p=e("../tensor2d");let c=(0,l.op)({frame_:function(e,t,r,n=!1,s=0){let l=0,c=[];for(;l+t<=e.size;)c.push((0,u.slice)(e,l,t)),l+=r;if(n)for(;l<e.size;){let n=l+t-e.size,i=(0,a.concat)([(0,u.slice)(e,l,t-n),(0,o.fill)([n],s)]);c.push(i),l+=r}return 0===c.length?(0,p.tensor2d)([],[0,t]):(0,i.reshape)((0,a.concat)(c),[c.length,t])}})},{"../concat":"gMgmG","../fill":"8mmbD","../operation":"hyTBr","../reshape":"aTsgx","../slice":"dV0br","../tensor2d":"4WGwJ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"29DQL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stft",()=>c);var a=e("../mul"),o=e("../operation"),l=e("../signal_ops_util"),i=e("../spectral/rfft"),u=e("./frame"),p=e("./hann_window");let c=(0,o.op)({stft_:function(e,t,r,n,s=p.hannWindow){null==n&&(n=(0,l.enclosingPowerOfTwo)(t));let o=(0,u.frame)(e,t,r),c=(0,a.mul)(o,s(t));return(0,i.rfft)(c,n)}})},{"../mul":"1OlNG","../operation":"hyTBr","../signal_ops_util":"gkBkm","../spectral/rfft":"kKu6i","./frame":"aSMoZ","./hann_window":"6vwjv","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bMR9v:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cropAndResize",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util");let u=(0,e("../operation").op)({cropAndResize_:function(e,t,r,n,s="bilinear",u=0){let p=(0,l.convertToTensor)(e,"image","cropAndResize"),c=(0,l.convertToTensor)(t,"boxes","cropAndResize","float32"),d=(0,l.convertToTensor)(r,"boxInd","cropAndResize","int32"),f=c.shape[0];return i.assert(4===p.rank,()=>`Error in cropAndResize: image must be rank 4,but got rank ${p.rank}.`),i.assert(2===c.rank&&4===c.shape[1],()=>`Error in cropAndResize: boxes must be have size [${f},4] but had shape ${c.shape}.`),i.assert(1===d.rank&&d.shape[0]===f,()=>`Error in cropAndResize: boxInd must be have size [${f}] but had shape ${c.shape}.`),i.assert(2===n.length,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),i.assert(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),i.assert("bilinear"===s||"nearest"===s,()=>`method must be bilinear or nearest, but was ${s}`),a.ENGINE.runKernel(o.CropAndResize,{image:p,boxes:c,boxInd:d},{method:s,extrapolationValue:u,cropSize:n})}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../tensor_util_env":"4hoNq","../../util":"lLzfH","../operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2sCb9":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"flipLeftRight",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util");let u=(0,e("../operation").op)({flipLeftRight_:function(e){let t=(0,l.convertToTensor)(e,"image","flipLeftRight","float32");return i.assert(4===t.rank,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`),a.ENGINE.runKernel(o.FlipLeftRight,{image:t},{})}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../tensor_util_env":"4hoNq","../../util":"lLzfH","../operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6hwzb":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"grayscaleToRGB",()=>u);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../operation"),i=e("../tile");let u=(0,l.op)({grayscaleToRGB_:function(e){let t=(0,a.convertToTensor)(e,"image","grayscaleToRGB"),r=t.rank-1,n=t.shape[r];o.assert(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),o.assert(1===n,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`);let s=Array(t.rank);return s.fill(1,0,r),s[r]=3,(0,i.tile)(t,s)}})},{"../../tensor_util_env":"4hoNq","../../util":"lLzfH","../operation":"hyTBr","../tile":"8W0dk","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jxs1e:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rgbToGrayscale",()=>d);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../cast"),i=e("../einsum"),u=e("../expand_dims"),p=e("../operation"),c=e("../tensor1d");let d=(0,p.op)({rgbToGrayscale_:function(e){let t,r=(0,a.convertToTensor)(e,"image","RGBToGrayscale"),n=r.rank-1,s=r.shape[n];o.assert(r.rank>=2,()=>`Error in RGBToGrayscale: images must be at least rank 2, but got rank ${r.rank}.`),o.assert(3===s,()=>`Error in RGBToGrayscale: last dimension of an RGB image should be size 3, but got size ${s}.`);let p=r.dtype,d=(0,l.cast)(r,"float32"),f=(0,c.tensor1d)([.2989,.587,.114]);switch(r.rank){case 2:t=(0,i.einsum)("ij,j->i",d,f);break;case 3:t=(0,i.einsum)("ijk,k->ij",d,f);break;case 4:t=(0,i.einsum)("ijkl,l->ijk",d,f);break;case 5:t=(0,i.einsum)("ijklm,m->ijkl",d,f);break;case 6:t=(0,i.einsum)("ijklmn,n->ijklm",d,f);break;default:throw Error("Not a valid tensor rank.")}return t=(0,u.expandDims)(t,-1),(0,l.cast)(t,p)}})},{"../../tensor_util_env":"4hoNq","../../util":"lLzfH","../cast":"hLsoh","../einsum":"K8tpc","../expand_dims":"5ptrQ","../operation":"hyTBr","../tensor1d":"6O0tO","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4tETa":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rotateWithOffset",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util");let u=(0,e("../operation").op)({rotateWithOffset_:function(e,t,r=0,n=.5){let s=(0,l.convertToTensor)(e,"image","rotateWithOffset","float32");return i.assert(4===s.rank,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${s.rank}.`),a.ENGINE.runKernel(o.RotateWithOffset,{image:s},{radians:t,fillValue:r,center:n})}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../tensor_util_env":"4hoNq","../../util":"lLzfH","../operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6xovH":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppression",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../nonmax_util");let u=(0,e("../operation").op)({nonMaxSuppression_:function(e,t,r,n=.5,s=-1/0){let u=(0,l.convertToTensor)(e,"boxes","nonMaxSuppression","float32"),p=(0,l.convertToTensor)(t,"scores","nonMaxSuppression","float32"),c=(0,i.nonMaxSuppSanityCheck)(u,p,r,n,s);r=c.maxOutputSize;let d={maxOutputSize:r,iouThreshold:n=c.iouThreshold,scoreThreshold:s=c.scoreThreshold};return a.ENGINE.runKernel(o.NonMaxSuppressionV3,{boxes:u,scores:p},d)}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../tensor_util_env":"4hoNq","../nonmax_util":"8HrVI","../operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8HrVI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppSanityCheck",()=>o);var a=e("../util");function o(e,t,r,n,s,o){null==n&&(n=.5),null==s&&(s=-1/0),null==o&&(o=0);let l=e.shape[0];return r=Math.min(r,l),a.assert(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),a.assert(2===e.rank,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),a.assert(4===e.shape[1],()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),a.assert(1===t.rank,()=>"scores must be a 1D tensor"),a.assert(t.shape[0]===l,()=>`scores has incompatible shape with boxes. Expected ${l}, but was ${t.shape[0]}`),a.assert(0<=o&&o<=1,()=>`softNmsSigma must be in [0, 1], but was '${o}'`),{maxOutputSize:r,iouThreshold:n,scoreThreshold:s,softNmsSigma:o}}},{"../util":"lLzfH","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],k322Y:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionAsync",()=>u);var a=e("../../backends/non_max_suppression_impl"),o=e("../../tensor_util_env"),l=e("../nonmax_util"),i=e("../tensor1d");let u=async function(e,t,r,n=.5,s=-1/0){let u=(0,o.convertToTensor)(e,"boxes","nonMaxSuppressionAsync"),p=(0,o.convertToTensor)(t,"scores","nonMaxSuppressionAsync"),c=(0,l.nonMaxSuppSanityCheck)(u,p,r,n,s);r=c.maxOutputSize,n=c.iouThreshold,s=c.scoreThreshold;let d=await Promise.all([u.data(),p.data()]),f=d[0],h=d[1],{selectedIndices:m}=(0,a.nonMaxSuppressionV3Impl)(f,h,r,n,s);return u!==e&&u.dispose(),p!==t&&p.dispose(),(0,i.tensor1d)(m,"int32")}},{"../../backends/non_max_suppression_impl":"6IYIX","../../tensor_util_env":"4hoNq","../nonmax_util":"8HrVI","../tensor1d":"6O0tO","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6IYIX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV3Impl",()=>o),s.export(r,"nonMaxSuppressionV4Impl",()=>l),s.export(r,"nonMaxSuppressionV5Impl",()=>i);var a=e("./non_max_suppression_util");function o(e,t,r,n,s){return u(e,t,r,n,s,0)}function l(e,t,r,n,s,a){return u(e,t,r,n,s,0,!1,a,!0)}function i(e,t,r,n,s,a){return u(e,t,r,n,s,a,!0)}function u(e,t,r,n,s,o,l=!1,i=!1,c=!1){let d=[];for(let e=0;e<t.length;e++)t[e]>s&&d.push({score:t[e],boxIndex:e,suppressBeginIndex:0});d.sort(p);let f=o>0?-.5/o:0,h=[],m=[];for(;h.length<r&&d.length>0;){let t=d.pop(),{score:r,boxIndex:o,suppressBeginIndex:l}=t;if(r<s)break;let i=!1;for(let r=h.length-1;r>=l;--r){let a=function(e,t,r){let n=e.subarray(4*t,4*t+4),s=e.subarray(4*r,4*r+4),a=Math.min(n[0],n[2]),o=Math.min(n[1],n[3]),l=Math.max(n[0],n[2]),i=Math.max(n[1],n[3]),u=Math.min(s[0],s[2]),p=Math.min(s[1],s[3]),c=Math.max(s[0],s[2]),d=Math.max(s[1],s[3]),f=(l-a)*(i-o),h=(c-u)*(d-p);if(f<=0||h<=0)return 0;let m=Math.max(Math.min(l,c)-Math.max(a,u),0)*Math.max(Math.min(i,d)-Math.max(o,p),0);return m/(f+h-m)}(e,o,h[r]);if(a>=n){i=!0;break}if(t.score=t.score*function(e,t,r){let n=Math.exp(t*r*r);return r<=e?n:0}(n,f,a),t.score<=s)break}t.suppressBeginIndex=h.length,!i&&(t.score===r?(h.push(o),m.push(t.score)):t.score>s&&(0,a.binaryInsert)(d,t,p))}let g=h.length,x=r-g;i&&x>0&&(h.push(...Array(x).fill(0)),m.push(...Array(x).fill(0)));let v={selectedIndices:h};return l&&(v.selectedScores=m),c&&(v.validOutputs=g),v}function p(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}},{"./non_max_suppression_util":"aOA9P","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aOA9P:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r){let n=o(e,t,r);e.splice(n<0?-(n+1):n,0,t)}function o(e,t,r){return function(e,t,r){let n=0,s=e.length,a=0,o=!1;for(;n<s;){let l=r(t,e[a=n+(s-n>>>1)]);l>0?n=a+1:(s=a,o=!l)}return o?n:-n-1}(e,t,r||l)}function l(e,t){return e>t?1:e<t?-1:0}s.defineInteropFlag(r),s.export(r,"binaryInsert",()=>a),s.export(r,"binarySearch",()=>o)},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cP9xy:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionWithScore",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../nonmax_util");let u=(0,e("../operation").op)({nonMaxSuppressionWithScore_:function(e,t,r,n=.5,s=-1/0,u=0){let p=(0,l.convertToTensor)(e,"boxes","nonMaxSuppression"),c=(0,l.convertToTensor)(t,"scores","nonMaxSuppression"),d=(0,i.nonMaxSuppSanityCheck)(p,c,r,n,s,u);r=d.maxOutputSize,n=d.iouThreshold,s=d.scoreThreshold;let f={maxOutputSize:r,iouThreshold:n,scoreThreshold:s,softNmsSigma:u=d.softNmsSigma},h=a.ENGINE.runKernel(o.NonMaxSuppressionV5,{boxes:p,scores:c},f);return{selectedIndices:h[0],selectedScores:h[1]}}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../tensor_util_env":"4hoNq","../nonmax_util":"8HrVI","../operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"340Q3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionWithScoreAsync",()=>u);var a=e("../../backends/non_max_suppression_impl"),o=e("../../tensor_util_env"),l=e("../nonmax_util"),i=e("../tensor1d");let u=async function(e,t,r,n=.5,s=-1/0,u=0){let p=(0,o.convertToTensor)(e,"boxes","nonMaxSuppressionAsync"),c=(0,o.convertToTensor)(t,"scores","nonMaxSuppressionAsync"),d=(0,l.nonMaxSuppSanityCheck)(p,c,r,n,s,u);r=d.maxOutputSize,n=d.iouThreshold,s=d.scoreThreshold,u=d.softNmsSigma;let f=await Promise.all([p.data(),c.data()]),h=f[0],m=f[1],{selectedIndices:g,selectedScores:x}=(0,a.nonMaxSuppressionV5Impl)(h,m,r,n,s,u);return p!==e&&p.dispose(),c!==t&&c.dispose(),{selectedIndices:(0,i.tensor1d)(g,"int32"),selectedScores:(0,i.tensor1d)(x)}}},{"../../backends/non_max_suppression_impl":"6IYIX","../../tensor_util_env":"4hoNq","../nonmax_util":"8HrVI","../tensor1d":"6O0tO","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gHKAK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionPadded",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../nonmax_util");let u=(0,e("../operation").op)({nonMaxSuppressionPadded_:function(e,t,r,n=.5,s=-1/0,u=!1){let p=(0,l.convertToTensor)(e,"boxes","nonMaxSuppression"),c=(0,l.convertToTensor)(t,"scores","nonMaxSuppression"),d=(0,i.nonMaxSuppSanityCheck)(p,c,r,n,s,null),f=d.maxOutputSize,h=d.iouThreshold,m=d.scoreThreshold,g=a.ENGINE.runKernel(o.NonMaxSuppressionV4,{boxes:p,scores:c},{maxOutputSize:f,iouThreshold:h,scoreThreshold:m,padToMaxOutputSize:u});return{selectedIndices:g[0],validOutputs:g[1]}}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../tensor_util_env":"4hoNq","../nonmax_util":"8HrVI","../operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2v3kJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionPaddedAsync",()=>p);var a=e("../../backends/non_max_suppression_impl"),o=e("../../tensor_util_env"),l=e("../nonmax_util"),i=e("../scalar"),u=e("../tensor1d");let p=async function(e,t,r,n=.5,s=-1/0,p=!1){let c=(0,o.convertToTensor)(e,"boxes","nonMaxSuppressionAsync"),d=(0,o.convertToTensor)(t,"scores","nonMaxSuppressionAsync"),f=(0,l.nonMaxSuppSanityCheck)(c,d,r,n,s,null),h=f.maxOutputSize,m=f.iouThreshold,g=f.scoreThreshold,[x,v]=await Promise.all([c.data(),d.data()]),{selectedIndices:y,validOutputs:_}=(0,a.nonMaxSuppressionV4Impl)(x,v,h,m,g,p);return c!==e&&c.dispose(),d!==t&&d.dispose(),{selectedIndices:(0,u.tensor1d)(y,"int32"),validOutputs:(0,i.scalar)(_,"int32")}}},{"../../backends/non_max_suppression_impl":"6IYIX","../../tensor_util_env":"4hoNq","../nonmax_util":"8HrVI","../scalar":"forpx","../tensor1d":"6O0tO","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gLSq4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinear",()=>c);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util"),u=e("../operation"),p=e("../reshape");let c=(0,u.op)({resizeBilinear_:function(e,t,r=!1,n=!1){let s=(0,l.convertToTensor)(e,"images","resizeBilinear");i.assert(3===s.rank||4===s.rank,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${s.rank}.`),i.assert(2===t.length,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),i.assert(!1===n||!1===r,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let u=s,c=!1;3===s.rank&&(c=!0,u=(0,p.reshape)(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let[]=t,d={images:u},f=a.ENGINE.runKernel(o.ResizeBilinear,d,{alignCorners:r,halfPixelCenters:n,size:t});return c?(0,p.reshape)(f,[f.shape[1],f.shape[2],f.shape[3]]):f}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../tensor_util_env":"4hoNq","../../util":"lLzfH","../operation":"hyTBr","../reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3UtcM":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeNearestNeighbor",()=>c);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util"),u=e("../operation"),p=e("../reshape");let c=(0,u.op)({resizeNearestNeighbor_:function(e,t,r=!1,n=!1){let s=(0,l.convertToTensor)(e,"images","resizeNearestNeighbor");i.assert(3===s.rank||4===s.rank,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${s.rank}.`),i.assert(2===t.length,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),i.assert("float32"===s.dtype||"int32"===s.dtype,()=>"`images` must have `int32` or `float32` as dtype"),i.assert(!1===n||!1===r,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let u=s,c=!1;3===s.rank&&(c=!0,u=(0,p.reshape)(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let[]=t,d={images:u},f=a.ENGINE.runKernel(o.ResizeNearestNeighbor,d,{alignCorners:r,halfPixelCenters:n,size:t});return c?(0,p.reshape)(f,[f.shape[1],f.shape[2],f.shape[3]]):f}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../tensor_util_env":"4hoNq","../../util":"lLzfH","../operation":"hyTBr","../reshape":"aTsgx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4R5Wc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"threshold",()=>I);var a=e("../tensor1d"),o=e("../operation"),l=e("../cast"),i=e("../split"),u=e("../bincount"),p=e("../less_equal"),c=e("../greater"),d=e("../sum"),f=e("../add"),h=e("../mul"),m=e("../div"),g=e("../sub"),x=e("../round"),v=e("../where"),y=e("../fill"),_=e("../slice"),b=e("../range"),k=e("../tensor"),T=e("../../util"),w=e("../../tensor_util_env");let I=(0,o.op)({threshold_:function(e,t="binary",r=!1,n=.5){let s,o,I,j,C=(0,w.convertToTensor)(e,"image","threshold"),N=C.shape[0]*C.shape[1],S=(0,h.mul)((0,a.tensor1d)([n]),255);if(T.assert(3===C.rank,()=>`Error in threshold: image must be rank 3,but got rank ${C.rank}.`),T.assert(3===C.shape[2]||1===C.shape[2],()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${C.shape[2]}.`),T.assert("int32"===C.dtype||"float32"===C.dtype,()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${C.dtype}.`),T.assert("otsu"===t||"binary"===t,()=>`Method must be binary or otsu, but was ${t}`),3===C.shape[2]){[s,o,I]=(0,i.split)(C,[1,1,1],-1);let e=(0,h.mul)(s,.2989),t=(0,h.mul)(o,.587),r=(0,h.mul)(I,.114);j=(0,f.add)((0,f.add)(e,t),r)}else j=e;"otsu"===t&&(S=function(e,t){let r,n,s,o,l,i,u=(0,a.tensor1d)([-1]),p=(0,a.tensor1d)([0]),x=(0,a.tensor1d)([0]);for(let k=0;k<e.size-1;k++){r=(0,_.slice)(e,0,k+1),n=(0,_.slice)(e,k+1),l=(0,m.div)((0,d.sum)(r),t),i=(0,m.div)((0,d.sum)(n),t);let T=(0,d.sum)((0,h.mul)(r,(0,b.range)(0,r.size)));s=(0,m.div)(T,(0,d.sum)(r));let w=(0,y.fill)(n.shape,r.size),I=(0,f.add)((0,b.range)(0,n.size),w),j=(0,h.mul)(n,I);o=(0,m.div)((0,d.sum)(j),(0,d.sum)(n));let C=(0,g.sub)(s,o),N=(0,g.sub)(s,o),S=(0,h.mul)(l,i);x=(0,h.mul)((0,h.mul)(S,C),N);let E=(0,c.greater)(x,p);p=(0,v.where)(E,x,p),u=(0,v.where)(E,(0,a.tensor1d)([k]),u)}return u}((0,u.bincount)((0,l.cast)((0,x.round)(j),"int32"),(0,k.tensor)([]),256),N));let E=r?(0,p.lessEqual)(j,S):(0,c.greater)(j,S);return(0,l.cast)((0,h.mul)(E,255),"int32")}})},{"../tensor1d":"6O0tO","../operation":"hyTBr","../cast":"hLsoh","../split":"ltt7k","../bincount":"2K5KM","../less_equal":"hr4Wx","../greater":"2eOHm","../sum":"gHwwi","../add":"hFQoV","../mul":"1OlNG","../div":"41SAh","../sub":"AdEY0","../round":"9tOvu","../where":"kHB4a","../fill":"8mmbD","../slice":"dV0br","../range":"3Dxwx","../tensor":"gToZD","../../util":"lLzfH","../../tensor_util_env":"4hoNq","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"473XX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transform",()=>u);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util");let u=(0,e("../operation").op)({transform_:function(e,t,r="nearest",n="constant",s=0,u){let p=(0,l.convertToTensor)(e,"image","transform","float32"),c=(0,l.convertToTensor)(t,"transforms","transform","float32");return i.assert(4===p.rank,()=>`Error in transform: image must be rank 4,but got rank ${p.rank}.`),i.assert(2===c.rank&&(c.shape[0]===p.shape[0]||1===c.shape[0])&&8===c.shape[1],()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),i.assert(null==u||2===u.length,()=>`Error in transform: outputShape must be [height, width] or null, but got ${u}.`),a.ENGINE.runKernel(o.Transform,{image:p,transforms:c},{interpolation:r,fillMode:n,fillValue:s,outputShape:u})}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../tensor_util_env":"4hoNq","../../util":"lLzfH","../operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1tGXA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bandPart",()=>b);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../greater_equal"),i=e("../less"),u=e("../less_equal"),p=e("../logical_and"),c=e("../minimum"),d=e("../neg"),f=e("../operation"),h=e("../range"),m=e("../reshape"),g=e("../stack"),x=e("../sub"),v=e("../unstack"),y=e("../where"),_=e("../zeros");let b=(0,f.op)({bandPart_:function(e,t,r){let n,s,f=(0,a.convertToTensor)(e,"a","bandPart");(0,o.assert)(f.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${f.rank}.`);let b=f.shape,[k,T]=f.shape.slice(-2);"number"==typeof t?((0,o.assert)(t%1==0,()=>`bandPart(): numLower must be an integer, got ${t}.`),(0,o.assert)(t<=k,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${k}).`),n=(0,a.convertToTensor)(t<0?k:t,"numLower","bandPart")):((0,o.assert)("int32"===t.dtype,()=>"bandPart(): numLower's dtype must be an int32."),n=(0,y.where)((0,i.less)(t,0),k,(0,c.minimum)(t,k))),"number"==typeof r?((0,o.assert)(r%1==0,()=>`bandPart(): numUpper must be an integer, got ${r}.`),(0,o.assert)(r<=T,()=>`bandPart(): numUpper (${r}) must not be greater than the number of columns (${T}).`),s=(0,a.convertToTensor)(r<0?T:r,"numUpper","bandPart")):((0,o.assert)("int32"===r.dtype,()=>"bandPart(): numUpper's dtype must be an int32."),s=(0,y.where)((0,i.less)(r,0),T,(0,c.minimum)(r,T)));let w=(0,m.reshape)((0,h.range)(0,k,1,"int32"),[-1,1]),I=(0,h.range)(0,T,1,"int32"),j=(0,x.sub)(w,I),C=(0,p.logicalAnd)((0,u.lessEqual)(j,n),(0,l.greaterEqual)(j,(0,d.neg)(s))),N=(0,_.zeros)([k,T],f.dtype);return(0,m.reshape)((0,g.stack)((0,v.unstack)((0,m.reshape)(f,[-1,k,T])).map(e=>(0,y.where)(C,e,N))),b)}})},{"../../tensor_util_env":"4hoNq","../../util":"2IDj3","../greater_equal":"dNsYe","../less":"lAnag","../less_equal":"hr4Wx","../logical_and":"2GD4u","../minimum":"a0QkP","../neg":"2F5Dw","../operation":"hyTBr","../range":"3Dxwx","../reshape":"aTsgx","../stack":"70ZzF","../sub":"AdEY0","../unstack":"3KTTp","../where":"kHB4a","../zeros":"egJAn","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9OK9E":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gramSchmidt",()=>g);var a=e("../../engine"),o=e("../../util"),l=e("../div"),i=e("../mul"),u=e("../norm"),p=e("../operation"),c=e("../split"),d=e("../squeeze"),f=e("../stack"),h=e("../sub"),m=e("../sum");let g=(0,p.op)({gramSchmidt_:function(e){let t;if(Array.isArray(e)){t=!1,(0,o.assert)(null!=e&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let t=1;t<e.length;++t)(0,o.assert)(e[t].shape[0]===r,()=>`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[t].shape[0]} vs. ${r})`)}else t=!0,e=(0,c.split)(e,e.shape[0],0).map(e=>(0,d.squeeze)(e,[0]));(0,o.assert)(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let r=[],n=e;for(let t=0;t<e.length;++t)r.push(a.ENGINE.tidy(()=>{let e=n[t];if(t>0)for(let n=0;n<t;++n){let t=(0,i.mul)((0,m.sum)((0,i.mul)(r[n],e)),r[n]);e=(0,h.sub)(e,t)}return(0,l.div)(e,(0,u.norm)(e,"euclidean"))}));return t?(0,f.stack)(r,0):r}})},{"../../engine":"gtimw","../../util":"2IDj3","../div":"41SAh","../mul":"1OlNG","../norm":"imIRJ","../operation":"hyTBr","../split":"ltt7k","../squeeze":"3Urcw","../stack":"70ZzF","../sub":"AdEY0","../sum":"gHwwi","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fHIwp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"qr",()=>C);var a=e("../../engine"),o=e("../../globals"),l=e("../../util"),i=e("../clone"),u=e("../concat"),p=e("../div"),c=e("../eye"),d=e("../greater"),f=e("../mat_mul"),h=e("../mul"),m=e("../neg"),g=e("../norm"),x=e("../operation"),v=e("../reshape"),y=e("../slice"),_=e("../stack"),b=e("../sub"),k=e("../tensor2d"),T=e("../transpose"),w=e("../unstack"),I=e("../where");function j(e,t=!1){return a.ENGINE.tidy(()=>{(0,l.assert)(2===e.shape.length,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let r=e.shape[0],n=e.shape[1],s=(0,c.eye)(r),x=(0,i.clone)(e),v=(0,k.tensor2d)([[1]],[1,1]),_=(0,i.clone)(v),w=r>=n?n:r;for(let e=0;e<w;++e){let t=x,l=_,c=s;[_,x,s]=a.ENGINE.tidy(()=>{let t=(0,y.slice)(x,[e,e],[r-e,1]),a=(0,g.norm)(t),o=(0,y.slice)(x,[e,e],[1,1]),l=(0,I.where)((0,d.greater)(o,0),(0,k.tensor2d)([[-1]]),(0,k.tensor2d)([[1]])),c=(0,b.sub)(o,(0,h.mul)(l,a)),w=(0,p.div)(t,c);_=1===w.shape[0]?(0,i.clone)(v):(0,u.concat)([v,(0,y.slice)(w,[1,0],[w.shape[0]-1,w.shape[1]])],0);let j=(0,m.neg)((0,p.div)((0,f.matMul)(l,c),a)),C=(0,y.slice)(x,[e,0],[r-e,n]),N=(0,h.mul)(j,_),S=(0,T.transpose)(_);if(0===e)x=(0,b.sub)(C,(0,f.matMul)(N,(0,f.matMul)(S,C)));else{let t=(0,b.sub)(C,(0,f.matMul)(N,(0,f.matMul)(S,C)));x=(0,u.concat)([(0,y.slice)(x,[0,0],[e,n]),t],0)}let E=(0,T.transpose)(N),A=(0,y.slice)(s,[0,e],[r,s.shape[1]-e]);if(0===e)s=(0,b.sub)(A,(0,f.matMul)((0,f.matMul)(A,_),E));else{let t=(0,b.sub)(A,(0,f.matMul)((0,f.matMul)(A,_),E));s=(0,u.concat)([(0,y.slice)(s,[0,0],[r,e]),t],1)}return[_,x,s]}),(0,o.dispose)([t,l,c])}return!t&&r>n&&(s=(0,y.slice)(s,[0,0],[r,n]),x=(0,y.slice)(x,[0,0],[n,n])),[s,x]})}let C=(0,x.op)({qr_:function(e,t=!1){if((0,l.assert)(e.rank>=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),2===e.rank)return j(e,t);{let r=e.shape.slice(0,e.shape.length-2).reduce((e,t)=>e*t),n=(0,w.unstack)((0,v.reshape)(e,[r,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),s=[],a=[];return n.forEach(e=>{let[r,n]=j(e,t);s.push(r),a.push(n)}),[(0,v.reshape)((0,_.stack)(s,0),e.shape),(0,v.reshape)((0,_.stack)(a,0),e.shape)]}}})},{"../../engine":"gtimw","../../globals":"6oj2G","../../util":"2IDj3","../clone":"etnty","../concat":"gMgmG","../div":"41SAh","../eye":"4tXnX","../greater":"2eOHm","../mat_mul":"apoIX","../mul":"1OlNG","../neg":"2F5Dw","../norm":"imIRJ","../operation":"hyTBr","../reshape":"aTsgx","../slice":"dV0br","../stack":"70ZzF","../sub":"AdEY0","../tensor2d":"4WGwJ","../transpose":"lLEyz","../unstack":"3KTTp","../where":"kHB4a","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lgspK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"absoluteDifference",()=>d);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../abs"),i=e("../loss_ops_utils"),u=e("../operation"),p=e("../sub"),c=e("./compute_weighted_loss");let d=(0,u.op)({absoluteDifference_:function(e,t,r,n=i.Reduction.SUM_BY_NONZERO_WEIGHTS){let s=(0,a.convertToTensor)(e,"labels","absoluteDifference"),u=(0,a.convertToTensor)(t,"predictions","absoluteDifference"),d=null;null!=r&&(d=(0,a.convertToTensor)(r,"weights","absoluteDifference")),(0,o.assertShapesMatch)(s.shape,u.shape,"Error in absoluteDifference: ");let f=(0,l.abs)((0,p.sub)(s,u));return(0,c.computeWeightedLoss)(f,d,n)}})},{"../../tensor_util_env":"4hoNq","../../util":"2IDj3","../abs":"14Cig","../loss_ops_utils":"fL8nB","../operation":"hyTBr","../sub":"AdEY0","./compute_weighted_loss":"bv9VN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fL8nB:[function(e,t,r,n){var s,a,o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"Reduction",()=>a),(s=a||(a={}))[s.NONE=0]="NONE",s[s.MEAN=1]="MEAN",s[s.SUM=2]="SUM",s[s.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bv9VN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"computeWeightedLoss",()=>g);var a=e("../../tensor_util_env"),o=e("../cast"),l=e("../div"),i=e("../loss_ops_utils"),u=e("../mean"),p=e("../mul"),c=e("../not_equal"),d=e("../ones"),f=e("../operation"),h=e("../scalar"),m=e("../sum");let g=(0,f.op)({computeWeightedLoss_:function(e,t,r=i.Reduction.SUM_BY_NONZERO_WEIGHTS){let n=(0,a.convertToTensor)(e,"losses","computeWeightedLoss"),s=null;null!=t&&(s=(0,a.convertToTensor)(t,"weights","computeWeightedLoss"));let f=null==s?n:(0,p.mul)(n,s);if(r===i.Reduction.NONE)return f;if(r===i.Reduction.SUM)return(0,m.sum)(f);if(r===i.Reduction.MEAN)if(null==s)return(0,u.mean)(f);else{let e=n.size/s.size,t=(0,l.div)((0,m.sum)(f),(0,m.sum)(s));return e>1?(0,l.div)(t,(0,h.scalar)(e)):t}if(r===i.Reduction.SUM_BY_NONZERO_WEIGHTS)if(null==s)return(0,l.div)((0,m.sum)(f),(0,h.scalar)(n.size));else{let e=(0,p.mul)(s,(0,d.ones)(n.shape)),t=(0,o.cast)((0,m.sum)((0,c.notEqual)(e,(0,h.scalar)(0))),"float32");return(0,l.div)((0,m.sum)(f),t)}throw Error(`Unknown reduction: ${r}`)}})},{"../../tensor_util_env":"4hoNq","../cast":"hLsoh","../div":"41SAh","../loss_ops_utils":"fL8nB","../mean":"bxfIu","../mul":"1OlNG","../not_equal":"lxSCb","../ones":"dl3Yg","../operation":"hyTBr","../scalar":"forpx","../sum":"gHwwi","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],a4RKl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cosineDistance",()=>h);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../loss_ops_utils"),i=e("../mul"),u=e("../operation"),p=e("../scalar"),c=e("../sub"),d=e("../sum"),f=e("./compute_weighted_loss");let h=(0,u.op)({cosineDistance_:function(e,t,r,n,s=l.Reduction.SUM_BY_NONZERO_WEIGHTS){let u=(0,a.convertToTensor)(e,"labels","cosineDistance"),h=(0,a.convertToTensor)(t,"predictions","cosineDistance"),m=null;null!=n&&(m=(0,a.convertToTensor)(n,"weights","cosineDistance")),(0,o.assertShapesMatch)(u.shape,h.shape,"Error in cosineDistance: ");let g=(0,p.scalar)(1),x=(0,c.sub)(g,(0,d.sum)((0,i.mul)(u,h),r,!0));return(0,f.computeWeightedLoss)(x,m,s)}})},{"../../tensor_util_env":"4hoNq","../../util":"2IDj3","../loss_ops_utils":"fL8nB","../mul":"1OlNG","../operation":"hyTBr","../scalar":"forpx","../sub":"AdEY0","../sum":"gHwwi","./compute_weighted_loss":"bv9VN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gttQl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"hingeLoss",()=>h);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../loss_ops_utils"),i=e("../mul"),u=e("../operation"),p=e("../relu"),c=e("../scalar"),d=e("../sub"),f=e("./compute_weighted_loss");let h=(0,u.op)({hingeLoss_:function(e,t,r,n=l.Reduction.SUM_BY_NONZERO_WEIGHTS){let s=(0,a.convertToTensor)(e,"labels","hingeLoss"),u=(0,a.convertToTensor)(t,"predictions","hingeLoss"),h=null;null!=r&&(h=(0,a.convertToTensor)(r,"weights","hingeLoss")),(0,o.assertShapesMatch)(s.shape,u.shape,"Error in hingeLoss: ");let m=(0,c.scalar)(1);s=(0,d.sub)((0,i.mul)((0,c.scalar)(2),s),m);let g=(0,p.relu)((0,d.sub)(m,(0,i.mul)(s,u)));return(0,f.computeWeightedLoss)(g,h,n)}})},{"../../tensor_util_env":"4hoNq","../../util":"2IDj3","../loss_ops_utils":"fL8nB","../mul":"1OlNG","../operation":"hyTBr","../relu":"lnyoN","../scalar":"forpx","../sub":"AdEY0","./compute_weighted_loss":"bv9VN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gsRA1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"huberLoss",()=>x);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../abs"),i=e("../add"),u=e("../loss_ops_utils"),p=e("../minimum"),c=e("../mul"),d=e("../operation"),f=e("../scalar"),h=e("../square"),m=e("../sub"),g=e("./compute_weighted_loss");let x=(0,d.op)({huberLoss_:function(e,t,r,n=1,s=u.Reduction.SUM_BY_NONZERO_WEIGHTS){let d=(0,a.convertToTensor)(e,"labels","huberLoss"),x=(0,a.convertToTensor)(t,"predictions","huberLoss"),v=null;null!=r&&(v=(0,a.convertToTensor)(r,"weights","huberLoss")),(0,o.assertShapesMatch)(d.shape,x.shape,"Error in huberLoss: ");let y=(0,f.scalar)(n),_=(0,l.abs)((0,m.sub)(x,d)),b=(0,p.minimum)(_,y),k=(0,m.sub)(_,b),T=(0,i.add)((0,c.mul)((0,f.scalar)(.5),(0,h.square)(b)),(0,c.mul)(y,k));return(0,g.computeWeightedLoss)(T,v,s)}})},{"../../tensor_util_env":"4hoNq","../../util":"2IDj3","../abs":"14Cig","../add":"hFQoV","../loss_ops_utils":"fL8nB","../minimum":"a0QkP","../mul":"1OlNG","../operation":"hyTBr","../scalar":"forpx","../square":"kpUEg","../sub":"AdEY0","./compute_weighted_loss":"bv9VN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],i4Xhu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logLoss",()=>g);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../add"),i=e("../log"),u=e("../loss_ops_utils"),p=e("../mul"),c=e("../neg"),d=e("../operation"),f=e("../scalar"),h=e("../sub"),m=e("./compute_weighted_loss");let g=(0,d.op)({logLoss_:function(e,t,r,n=1e-7,s=u.Reduction.SUM_BY_NONZERO_WEIGHTS){let d=(0,a.convertToTensor)(e,"labels","logLoss"),g=(0,a.convertToTensor)(t,"predictions","logLoss"),x=null;null!=r&&(x=(0,a.convertToTensor)(r,"weights","logLoss")),(0,o.assertShapesMatch)(d.shape,g.shape,"Error in logLoss: ");let v=(0,f.scalar)(1),y=(0,f.scalar)(n),_=(0,c.neg)((0,p.mul)(d,(0,i.log)((0,l.add)(g,y)))),b=(0,p.mul)((0,h.sub)(v,d),(0,i.log)((0,l.add)((0,h.sub)(v,g),y))),k=(0,h.sub)(_,b);return(0,m.computeWeightedLoss)(k,x,s)}})},{"../../tensor_util_env":"4hoNq","../../util":"2IDj3","../add":"hFQoV","../log":"eViUW","../loss_ops_utils":"fL8nB","../mul":"1OlNG","../neg":"2F5Dw","../operation":"hyTBr","../scalar":"forpx","../sub":"AdEY0","./compute_weighted_loss":"bv9VN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6AiUv":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"meanSquaredError",()=>c);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../loss_ops_utils"),i=e("../operation"),u=e("../squared_difference"),p=e("./compute_weighted_loss");let c=(0,i.op)({meanSquaredError_:function(e,t,r,n=l.Reduction.SUM_BY_NONZERO_WEIGHTS){let s=(0,a.convertToTensor)(e,"labels","meanSquaredError"),i=(0,a.convertToTensor)(t,"predictions","meanSquaredError"),c=null;null!=r&&(c=(0,a.convertToTensor)(r,"weights","meanSquaredError")),(0,o.assertShapesMatch)(s.shape,i.shape,"Error in meanSquaredError: ");let d=(0,u.squaredDifference)(s,i);return(0,p.computeWeightedLoss)(d,c,n)}})},{"../../tensor_util_env":"4hoNq","../../util":"2IDj3","../loss_ops_utils":"fL8nB","../operation":"hyTBr","../squared_difference":"72ICX","./compute_weighted_loss":"bv9VN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2PWd6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sigmoidCrossEntropy",()=>y);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../abs"),i=e("../add"),u=e("../exp"),p=e("../log1p"),c=e("../loss_ops_utils"),d=e("../mul"),f=e("../neg"),h=e("../operation"),m=e("../relu"),g=e("../scalar"),x=e("../sub"),v=e("./compute_weighted_loss");let y=(0,h.op)({sigmoidCrossEntropy_:function(e,t,r,n=0,s=c.Reduction.SUM_BY_NONZERO_WEIGHTS){var h;let y,_,b,k,T,w=(0,a.convertToTensor)(e,"multiClassLabels","sigmoidCrossEntropy"),I=(0,a.convertToTensor)(t,"logits","sigmoidCrossEntropy"),j=null;if(null!=r&&(j=(0,a.convertToTensor)(r,"weights","sigmoidCrossEntropy")),(0,o.assertShapesMatch)(w.shape,I.shape,"Error in sigmoidCrossEntropy: "),n>0){let e=(0,g.scalar)(n),t=(0,g.scalar)(1),r=(0,g.scalar)(.5);w=(0,i.add)((0,d.mul)(w,(0,x.sub)(t,e)),(0,d.mul)(r,e))}let C=(h=w,y=(0,a.convertToTensor)(h,"labels","sigmoidCrossEntropyWithLogits"),_=(0,a.convertToTensor)(I,"logits","sigmoidCrossEntropyWithLogits"),(0,o.assertShapesMatch)(y.shape,_.shape,"Error in sigmoidCrossEntropyWithLogits: "),b=(0,m.relu)(_),k=(0,d.mul)(_,y),T=(0,p.log1p)((0,u.exp)((0,f.neg)((0,l.abs)(_)))),(0,i.add)((0,x.sub)(b,k),T));return(0,v.computeWeightedLoss)(C,j,s)}})},{"../../tensor_util_env":"4hoNq","../../util":"2IDj3","../abs":"14Cig","../add":"hFQoV","../exp":"kUZlF","../log1p":"9BkXU","../loss_ops_utils":"fL8nB","../mul":"1OlNG","../neg":"2F5Dw","../operation":"hyTBr","../relu":"lnyoN","../scalar":"forpx","../sub":"AdEY0","./compute_weighted_loss":"bv9VN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kIzlr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softmaxCrossEntropy",()=>T);var a=e("../../gradients"),o=e("../../tensor_util_env"),l=e("../../util"),i=e("../add"),u=e("../axis_util"),p=e("../cast"),c=e("../div"),d=e("../exp"),f=e("../log_sum_exp"),h=e("../loss_ops_utils"),m=e("../mul"),g=e("../neg"),x=e("../operation"),v=e("../reshape"),y=e("../scalar"),_=e("../sub"),b=e("../sum"),k=e("./compute_weighted_loss");let T=(0,x.op)({softmaxCrossEntropy_:function(e,t,r,n=0,s=h.Reduction.SUM_BY_NONZERO_WEIGHTS){let x=(0,o.convertToTensor)(e,"onehotLabels","softmaxCrossEntropy"),T=(0,o.convertToTensor)(t,"logits","softmaxCrossEntropy"),w=null;if(null!=r&&(w=(0,o.convertToTensor)(r,"weights","softmaxCrossEntropy")),(0,l.assertShapesMatch)(x.shape,T.shape,"Error in softmaxCrossEntropy: "),n>0){let e=(0,y.scalar)(n),t=(0,y.scalar)(1),r=(0,y.scalar)(x.shape[1]);x=(0,i.add)((0,m.mul)(x,(0,_.sub)(t,e)),(0,c.div)(e,r))}let I=function(e,t,r=-1){if(-1===r&&(r=t.rank-1),r!==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 ${r}`);return(0,a.customGrad)((e,t,n)=>{let s=(0,f.logSumExp)(t,[r],!0),a=(0,_.sub)((0,p.cast)(t,"float32"),s);n([e,a]);let o=(0,g.neg)((0,m.mul)(a,e));return{value:(0,b.sum)(o,[r]),gradFunc:(e,t)=>{let[n,s]=t,a=(0,u.expandShapeToKeepDim)(e.shape,[r]);return[(0,m.mul)((0,v.reshape)(e,a),(0,_.sub)((0,p.cast)(n,"float32"),(0,d.exp)(s))),(0,m.mul)((0,v.reshape)(e,a),(0,_.sub)((0,d.exp)(s),(0,p.cast)(n,"float32")))]}}})(e,t)}(x,T);return(0,k.computeWeightedLoss)(I,w,s)}})},{"../../gradients":"3aQK6","../../tensor_util_env":"4hoNq","../../util":"2IDj3","../add":"hFQoV","../axis_util":"9jSs8","../cast":"hLsoh","../div":"41SAh","../exp":"kUZlF","../log_sum_exp":"3NSXY","../loss_ops_utils":"fL8nB","../mul":"1OlNG","../neg":"2F5Dw","../operation":"hyTBr","../reshape":"aTsgx","../scalar":"forpx","../sub":"AdEY0","../sum":"gHwwi","./compute_weighted_loss":"bv9VN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6nkYV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseFillEmptyRows",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({sparseFillEmptyRows_:function(e,t,r,n){let s=(0,l.convertToTensor)(e,"indices","sparseFillEmptyRows","int32"),i=(0,l.convertToTensor)(t,"values","sparseFillEmptyRows"),u=(0,l.convertToTensor)(r,"denseShape","sparseFillEmptyRows","int32"),p=(0,l.convertToTensor)(n,"defaultValue","sparseFillEmptyRows",i.dtype);if(2!==s.rank)throw Error(`Indices should be Tensor2D but received shape ${s.shape}`);if(1!==i.rank)throw Error(`Values should be Tensor1D but received shape ${i.shape}`);if(1!==u.rank)throw Error(`Dense shape should be Tensor1D but received shape ${u.shape}`);if(0!==p.rank)throw Error(`Default value should be a scalar but received shape ${p.shape}`);let c=a.ENGINE.runKernel(o.SparseFillEmptyRows,{indices:s,values:i,denseShape:u,defaultValue:p});return{outputIndices:c[0],outputValues:c[1],emptyRowIndicator:c[2],reverseIndexMap:c[3]}}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../tensor_util_env":"4hoNq","../operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7zvNq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseReshape",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({sparseReshape_:function(e,t,r){let n=(0,l.convertToTensor)(e,"inputIndices","sparseReshape","int32"),s=(0,l.convertToTensor)(t,"inputShape","sparseReshape","int32"),i=(0,l.convertToTensor)(r,"newShape","sparseReshape","int32");if(2!==n.rank)throw Error(`Input indices should be Tensor2D but received shape ${n.shape}`);if(1!==s.rank)throw Error(`Input shape should be Tensor1D but received shape ${s.shape}`);if(1!==i.rank)throw Error(`New shape should be Tensor1D but received shape ${i.shape}`);let u=a.ENGINE.runKernel(o.SparseReshape,{inputIndices:n,inputShape:s,newShape:i});return{outputIndices:u[0],outputShape:u[1]}}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../tensor_util_env":"4hoNq","../operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3Esy8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentMean",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({sparseSegmentMean_:function(e,t,r){let n=(0,l.convertToTensor)(e,"data","sparseSegmentMean"),s=(0,l.convertToTensor)(t,"indices","sparseSegmentMean","int32"),i=(0,l.convertToTensor)(r,"segmentIds","sparseSegmentMean","int32");if(n.rank<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.rank)throw Error(`Indices should be Tensor1D but received shape ${s.shape}`);if(1!==i.rank)throw Error(`Segment ids should be Tensor1D but received shape ${i.shape}`);return a.ENGINE.runKernel(o.SparseSegmentMean,{data:n,indices:s,segmentIds:i})}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../tensor_util_env":"4hoNq","../operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],xgJTL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentSum",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({sparseSegmentSum_:function(e,t,r){let n=(0,l.convertToTensor)(e,"data","sparseSegmentSum"),s=(0,l.convertToTensor)(t,"indices","sparseSegmentSum","int32"),i=(0,l.convertToTensor)(r,"segmentIds","sparseSegmentSum","int32");if(n.rank<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.rank)throw Error(`Indices should be Tensor1D but received shape ${s.shape}`);if(1!==i.rank)throw Error(`Segment ids should be Tensor1D but received shape ${i.shape}`);return a.ENGINE.runKernel(o.SparseSegmentSum,{data:n,indices:s,segmentIds:i})}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../tensor_util_env":"4hoNq","../operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],f02Nx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringNGrams",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({stringNGrams_:function(e,t,r,n,s,i,u,p){let c=(0,l.convertToTensor)(e,"data","stringNGrams","string");if("string"!==c.dtype)throw Error("Data must be of datatype string");if(1!==c.shape.length)throw Error(`Data must be a vector, saw: ${c.shape}`);let d=(0,l.convertToTensor)(t,"dataSplits","stringNGrams");if("int32"!==d.dtype)throw Error("Data splits must be of datatype int32");let f=a.ENGINE.runKernel(o.StringNGrams,{data:c,dataSplits:d},{separator:r,nGramWidths:n,leftPad:s,rightPad:i,padWidth:u,preserveShortSequences:p});return{nGrams:f[0],nGramsSplits:f[1]}}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../tensor_util_env":"4hoNq","../operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],j1RPV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringSplit",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({stringSplit_:function(e,t,r=!0){let n=(0,l.convertToTensor)(e,"input","stringSplit","string"),s=(0,l.convertToTensor)(t,"delimiter","stringSplit","string");if(1!==n.rank)throw Error(`Input should be Tensor1D but received shape ${n.shape}`);if(0!==s.rank)throw Error(`Delimiter should be a scalar but received shape ${s.shape}`);let i=a.ENGINE.runKernel(o.StringSplit,{input:n,delimiter:s},{skipEmpty:r});return{indices:i[0],values:i[1],shape:i[2]}}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../tensor_util_env":"4hoNq","../operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iata8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringToHashBucketFast",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({stringToHashBucketFast_:function(e,t){let r=(0,l.convertToTensor)(e,"input","stringToHashBucketFast","string");if(t<=0)throw Error("Number of buckets must be at least 1");return a.ENGINE.runKernel(o.StringToHashBucketFast,{input:r},{numBuckets:t})}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../tensor_util_env":"4hoNq","../operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"190yW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"staticRegexReplace",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({staticRegexReplace_:function(e,t,r,n=!0){let s=(0,l.convertToTensor)(e,"input","staticRegexReplace","string");return a.ENGINE.runKernel(o.StaticRegexReplace,{x:s},{pattern:t,rewrite:r,replaceGlobal:n})}})},{"../../engine":"gtimw","../../kernel_names":"agfs7","../../tensor_util_env":"4hoNq","../operation":"hyTBr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eGNXM:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"train",()=>a);let a=e("./optimizers/optimizer_constructors").OptimizerConstructors},{"./optimizers/optimizer_constructors":"d3oPN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4yPRe":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nextFrame",()=>o);let a="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:"undefined"!=typeof setImmediate?setImmediate:e=>e();function o(){return new Promise(e=>a(()=>e()))}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jev91:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"upcastType",()=>m.upcastType),s.export(r,"slice_util",()=>h),s.export(r,"segment_util",()=>S),s.export(r,"fromUint8ToStringArray",()=>E),s.export(r,"fromStringArrayToUint8",()=>A);var a=e("../util"),o=e("../ops/axis_util");s.exportAll(o,r);var l=e("../ops/broadcast_util");s.exportAll(l,r);var i=e("../ops/concat_util");s.exportAll(i,r);var u=e("../ops/conv_util");s.exportAll(u,r);var p=e("../ops/fused_util");s.exportAll(p,r);var c=e("../ops/fused_types");s.exportAll(c,r);var d=e("../ops/ragged_to_dense_util");s.exportAll(d,r);var f=e("../ops/reduce_util");s.exportAll(f,r);var h=e("../ops/slice_util"),m=e("../types"),g=e("../ops/rotate_util");s.exportAll(g,r);var x=e("../ops/array_ops_util");s.exportAll(x,r);var v=e("../ops/gather_nd_util");s.exportAll(v,r);var y=e("../ops/scatter_nd_util");s.exportAll(y,r);var _=e("../ops/selu_util");s.exportAll(_,r),s.exportAll(p,r);var b=e("../ops/erf_util");s.exportAll(b,r);var k=e("../log");s.exportAll(k,r);var T=e("../backends/complex_util");s.exportAll(T,r);var w=e("../backends/einsum_util");s.exportAll(w,r);var I=e("../ops/split_util");s.exportAll(I,r);var j=e("../ops/sparse/sparse_fill_empty_rows_util");s.exportAll(j,r);var C=e("../ops/sparse/sparse_reshape_util");s.exportAll(C,r);var N=e("../ops/sparse/sparse_segment_reduction_util");s.exportAll(N,r);var S=e("../ops/segment_util");function E(e){try{return e.map(e=>(0,a.decodeString)(e))}catch(e){throw Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function A(e){return e.map(e=>(0,a.encodeString)(e))}},{"../util":"lLzfH","../ops/axis_util":"9jSs8","../ops/broadcast_util":"5OjHc","../ops/concat_util":"4pDJm","../ops/conv_util":"i0dk6","../ops/fused_util":"dJmcU","../ops/fused_types":"f2gPc","../ops/ragged_to_dense_util":"6DH3G","../ops/reduce_util":"1t0sW","../ops/slice_util":"6gLLd","../types":"h2NB8","../ops/rotate_util":"9O0o6","../ops/array_ops_util":"2fESp","../ops/gather_nd_util":"cHYcB","../ops/scatter_nd_util":"fHXmM","../ops/selu_util":"di6Qx","../ops/erf_util":"7RgLC","../log":"iR40T","../backends/complex_util":"32E5i","../backends/einsum_util":"cWyNX","../ops/split_util":"2eF2V","../ops/sparse/sparse_fill_empty_rows_util":"1HpUD","../ops/sparse/sparse_reshape_util":"8zF3a","../ops/sparse/sparse_segment_reduction_util":"7g44P","../ops/segment_util":"9uyJx","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4pDJm":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"assertParamsConsistent",()=>o),s.export(r,"computeOutShape",()=>l);var a=e("../util");function o(e,t){let r=e[0].length;e.forEach((e,t)=>{a.assert(e.length===r,()=>`Error in concat${r}D: rank of tensors[${t}] must be the same as the rank of the rest (${r})`)}),a.assert(t>=0&&t<r,()=>`Error in concat${r}D: axis must be between 0 and ${r-1}.`);let n=e[0];e.forEach((e,s)=>{for(let o=0;o<r;o++)a.assert(o===t||e[o]===n[o],()=>`Error in concat${r}D: Shape of tensors[${s}] (${e}) does not match the shape of the rest (${n}) along the non-concatenated axis ${s}.`)})}function l(e,t){let r=e[0].slice();for(let n=1;n<e.length;n++)r[t]+=e[n][t];return r}},{"../util":"lLzfH","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],f2gPc:[function(e,t,r,n){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r)},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6DH3G":[function(e,t,r,n){var s,a,o=e("@parcel/transformer-js/src/esmodule-helpers.js");function l(e,t,r){let n=[];if(null==r&&null==t)return n;if(null==t)for(;n.length<e+r.length;)n.push(-1);else n=t.slice();if(null==r)return n;if(e+r.length!==n.length)throw Error(`rt input.shape and shape=${t} are incompatible: rt input.rank = ${e+r.length}, but shape.rank = ${n.length}`);for(let s=1;s<r.length;++s){let a=r[s],o=n[n.length-r.length+s],l=n[o];if(a>=0)if(l>=0){if(l!==a)throw Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${s+e}] = ${a} but shape[${s+e}] = ${l}`)}else n[o]=a}return n}function i(e){let t={FIRST_DIM_SIZE:a.FIRST_DIM_SIZE,VALUE_ROWIDS:a.VALUE_ROWIDS,ROW_LENGTHS:a.ROW_LENGTHS,ROW_SPLITS:a.ROW_SPLITS,ROW_LIMITS:a.ROW_LIMITS,ROW_STARTS:a.ROW_STARTS},r=[];for(let n of e)if(n in t)r.push(t[n]);else break;return r}function u(e){return 0===e.length?0:e[0]===a.FIRST_DIM_SIZE?e.length-1:e.length}function p(e,t){if(null==e||null==t)return;let r=e.length,n=t.length;if(r>=n)throw Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${r} must be less than ragged tensor input flatValues.rank = ${n})`);for(let s=0;s<Math.min(r,n-1);++s){let r=e[s],n=t[s+1];if(r>=0&&n>=0&&1!==r&&r!==n)throw Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${s-e.length}] = ${r} but ragged tensor input.flatValues.shape[${s-e.length}] = ${n}`)}}o.defineInteropFlag(r),o.export(r,"RowPartitionType",()=>a),o.export(r,"combineRaggedTensorToTensorShapes",()=>l),o.export(r,"getRowPartitionTypesHelper",()=>i),o.export(r,"getRaggedRank",()=>u),o.export(r,"validateDefaultValueShape",()=>p),(s=a||(a={}))[s.FIRST_DIM_SIZE=0]="FIRST_DIM_SIZE",s[s.VALUE_ROWIDS=1]="VALUE_ROWIDS",s[s.ROW_LENGTHS=2]="ROW_LENGTHS",s[s.ROW_SPLITS=3]="ROW_SPLITS",s[s.ROW_LIMITS=4]="ROW_LIMITS",s[s.ROW_STARTS=5]="ROW_STARTS"},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1t0sW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PARALLELIZE_THRESHOLD",()=>o),s.export(r,"computeOptimalWindowSize",()=>l);var a=e("../util");let o=30;function l(e){return e<=o?e:(0,a.nearestDivisor)(e,Math.floor(Math.sqrt(e)))}},{"../util":"2IDj3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9O0o6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r){return[r*("number"==typeof e?e:e[0]),t*("number"==typeof e?e:e[1])]}s.defineInteropFlag(r),s.export(r,"getImageCenter",()=>a)},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2fESp":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r,n=!0){let s=[];if(n)(s=s.concat(t.slice(0))).push(e[0]/r),s=s.concat(e.slice(1));else{s=s.concat(e[0]);let r=t.length;for(let n=0;n<r;++n)s=s.concat([e[n+1]/t[n],t[n]]);s=s.concat(e.slice(r+1))}return s}function o(e,t,r=!0){let n=[];if(r){n.push(t);for(let r=t+1;r<e;++r)r<=2*t?(n.push(r),n.push(r-(t+1))):n.push(r)}else{let r=[],s=[];for(let n=1;n<e;++n)n>=2*t+1||n%2==1?s.push(n):r.push(n);n.push(...r),n.push(0),n.push(...s)}return n}function l(e,t,r,n=!0){let s=[];n?s.push(e[0]/r):s.push(e[0]*r);for(let r=1;r<e.length;++r)r<=t.length?n?s.push(t[r-1]*e[r]):s.push(e[r]/t[r-1]):s.push(e[r]);return s}function i(e,t){let r=[0];for(let n=0;n<t;++n)r.push(e[n][0]);return r}function u(e,t,r){let n=e.slice(0,1);for(let s=0;s<r;++s)n.push(e[s+1]-t[s][0]-t[s][1]);return n}s.defineInteropFlag(r),s.export(r,"getReshaped",()=>a),s.export(r,"getPermuted",()=>o),s.export(r,"getReshapedPermuted",()=>l),s.export(r,"getSliceBeginCoords",()=>i),s.export(r,"getSliceSize",()=>u)},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],di6Qx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SELU_SCALEALPHA",()=>a),s.export(r,"SELU_SCALE",()=>o);let a=1.7580993408473768,o=1.0507009873554805},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7RgLC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ERF_P",()=>a),s.export(r,"ERF_A1",()=>o),s.export(r,"ERF_A2",()=>l),s.export(r,"ERF_A3",()=>i),s.export(r,"ERF_A4",()=>u),s.export(r,"ERF_A5",()=>p);let a=.3275911,o=.254829592,l=-.284496736,i=1.421413741,u=-1.453152027,p=1.061405429},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"32E5i":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){if(e.length!==t.length)throw Error(`Cannot merge real and imag arrays of different lengths. real:${e.length}, imag: ${t.length}.`);let r=new Float32Array(2*e.length);for(let n=0;n<r.length;n+=2)r[n]=e[n/2],r[n+1]=t[n/2];return r}function o(e){let t=new Float32Array(e.length/2),r=new Float32Array(e.length/2);for(let n=0;n<e.length;n+=2)t[n/2]=e[n],r[n/2]=e[n+1];return{real:t,imag:r}}function l(e){let t=Math.ceil(e.length/4),r=new Float32Array(t),n=new Float32Array(t);for(let t=0;t<e.length;t+=4)r[Math.floor(t/4)]=e[t],n[Math.floor(t/4)]=e[t+1];return{real:r,imag:n}}function i(e){let t=Math.floor(e.length/4),r=new Float32Array(t),n=new Float32Array(t);for(let t=2;t<e.length;t+=4)r[Math.floor(t/4)]=e[t],n[Math.floor(t/4)]=e[t+1];return{real:r,imag:n}}function u(e,t){return{real:e[2*t],imag:e[2*t+1]}}function p(e,t,r,n){e[2*n]=t,e[2*n+1]=r}function c(e,t){let r=new Float32Array(e/2),n=new Float32Array(e/2);for(let s=0;s<Math.ceil(e/2);s++){let a=(t?2:-2)*Math.PI*(s/e);r[s]=Math.cos(a),n[s]=Math.sin(a)}return{real:r,imag:n}}function d(e,t,r){let n=(r?2:-2)*Math.PI*(e/t);return{real:Math.cos(n),imag:Math.sin(n)}}s.defineInteropFlag(r),s.export(r,"mergeRealAndImagArrays",()=>a),s.export(r,"splitRealAndImagArrays",()=>o),s.export(r,"complexWithEvenIndex",()=>l),s.export(r,"complexWithOddIndex",()=>i),s.export(r,"getComplexWithIndex",()=>u),s.export(r,"assignToTypedArray",()=>p),s.export(r,"exponents",()=>c),s.export(r,"exponent",()=>d)},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cWyNX:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"decodeEinsumEquation",()=>l),s.export(r,"getEinsumPermutation",()=>i),s.export(r,"checkEinsumDimSizes",()=>u),s.export(r,"getEinsumComputePath",()=>p),s.export(r,"isIdentityPermutation",()=>c);var a=e("../util_base");let o=/->/g;function l(e,t){let r=((e=e.replace(/\s/g,"")).length-e.replace(o,"").length)/2;if(r<1)throw Error("Equations without an arrow are not supported.");if(r>1)throw Error('Equation must contain exactly one arrow ("->").');let[n,s]=e.split("->");(0,a.assert)(-1===n.indexOf("..."),()=>'The ellipsis notation ("...") is not supported yet.');let l=n.split(","),i=l.length;if(t!==i)throw Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw Error("Support for more than 2 input tensors is not implemented yet.");let u=[];for(let e=0;e<s.length;++e){let t=s[e];if(!l.some(e=>-1!==e.indexOf(t)))throw Error(`Output subscripts contain the label ${t} not present in the input subscripts.`);-1===u.indexOf(t)&&u.push(t)}for(let e=0;e<n.length;++e){let t=n[e];-1===u.indexOf(t)&&","!==t&&u.push(t)}let p=Array(l.length);for(let e=0;e<i;++e){if(new Set(l[e].split("")).size!==l[e].length)throw Error(`Found duplicate axes in input component ${l[e]}. Support for duplicate axes in input is not implemented yet.`);p[e]=[];for(let t=0;t<l[e].length;++t)p[e].push(u.indexOf(l[e][t]))}let c=u.length,d=s.length,f=[];for(let e=d;e<c;++e)f.push(e);return{allDims:u,summedDims:f,idDims:p}}function i(e,t){let r=Array(e);r.fill(-1);for(let e=0;e<t.length;++e)r[t[e]]=e;let n=[];for(let t=0;t<e;++t)-1===r[t]&&n.push(t);return{permutationIndices:r=r.filter(e=>-1!==e),expandDims:n}}function u(e,t,r){let n=Array(e);for(let e=0;e<r.length;++e){let s=r[e].shape;for(let r=0;r<t[e].length;++r)void 0===n[t[e][r]]?n[t[e][r]]=s[r]:(0,a.assert)(n[t[e][r]]===s[r],()=>`Expected dimension ${n[t[e][r]]} at axis ${r} of input shaped ${JSON.stringify(s)}, but got dimension ${s[r]}`)}}function p(e,t){let r=[],n=0;0===e.length&&e.push(-1),n=e.length+1;for(let e=0;e<n;++e)r.push([]);let s=[];for(let n=0;n<e.length;++n)for(let a of function(e,t){let r=[];for(let n=0;n<e.length;++n)(0===e[n].length||-1!==e[n].indexOf(t)||-1===t)&&r.push(n);return r}(t,e[n]))-1===s.indexOf(a)&&(r[n].push(a),s.push(a));return{path:e,steps:r}}function c(e){return e.every((e,t)=>e===t)}},{"../util_base":"2IDj3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2eF2V":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prepareSplitSize",()=>o);var a=e("../util");function o(e,t,r=0){let n=[];if("number"==typeof t)(0,a.assert)(e.shape[r]%t==0,()=>"Number of splits must evenly divide the axis."),n=Array(t).fill(e.shape[r]/t);else{let s=t.reduce((e,t)=>(-1===t&&(e+=1),e),0);(0,a.assert)(s<=1,()=>"There should be only one negative value in split array.");let o=t.indexOf(-1);if(-1!==o){let n=t.reduce((e,t)=>t>0?e+t:e);t[o]=e.shape[r]-n}(0,a.assert)(e.shape[r]===t.reduce((e,t)=>e+t),()=>"The sum of sizes must match the size of the axis dimension."),n=t}return n}},{"../util":"2IDj3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1HpUD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){return`Received SparseTensor with denseShape[0] = 0 but indices.shape[0] = ${e}`}function o(e,t){return`indices(${e}, 0) is invalid: ${t}< 0`}function l(e,t,r){return`indices(${e}, 0) is invalid: ${t} >= ${r}`}s.defineInteropFlag(r),s.export(r,"getSparseFillEmptyRowsIndicesDenseShapeMismatch",()=>a),s.export(r,"getSparseFillEmptyRowsNegativeIndexErrorMessage",()=>o),s.export(r,"getSparseFillEmptyRowsOutOfRangeIndexErrorMessage",()=>l)},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8zF3a":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getSparseReshapeMultipleNegativeOneOutputDimErrorMessage",()=>o),s.export(r,"getSparseReshapeNegativeOutputDimErrorMessage",()=>l),s.export(r,"getSparseReshapeEmptyTensorZeroOutputDimErrorMessage",()=>i),s.export(r,"getSparseReshapeInputOutputMultipleErrorMessage",()=>u),s.export(r,"getSparseReshapeInputOutputMismatchErrorMessage",()=>p);var a=e("../../util");function o(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function l(e,t){return`size ${e} must be non-negative, not ${t}`}function i(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function u(e,t){let r=(0,a.sizeFromShape)(e),n=(0,a.sizeFromShape)(t);return`Input to reshape is a SparseTensor with ${r} dense values, but the requested shape requires a multiple of ${n}. inputShape=${e} outputShape= ${t}`}function p(e,t){let r=(0,a.sizeFromShape)(e),n=(0,a.sizeFromShape)(t);return`Input to reshape is a tensor with ${r} dense values, but the requested shape has ${n}. inputShape=${e} outputShape=${t}`}},{"../../util":"2IDj3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7g44P":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(){return"segment ids must be >= 0"}function o(){return"segment ids are not increasing"}function l(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function i(e,t,r){return`Bad: indices[${e}] == ${t} out of range [0, ${r})`}s.defineInteropFlag(r),s.export(r,"getSparseSegmentReductionNegativeSegmentIdsErrorMessage",()=>a),s.export(r,"getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage",()=>o),s.export(r,"getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage",()=>l),s.export(r,"getSparseSegmentReductionIndicesOutOfRangeErrorMessage",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9uyJx":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"segOpComputeOptimalWindowSize",()=>l),s.export(r,"computeOutShape",()=>i),s.export(r,"collectGatherOpShapeInfo",()=>u);var a=e("../util"),o=e("./reduce_util");function l(e,t){let r,n=!1;for(e<=o.PARALLELIZE_THRESHOLD?(r=e,n=!0):r=(0,a.nearestDivisor)(e,Math.floor(Math.sqrt(e)));!n;)r>t||r===e?n=!0:r=(0,a.nearestDivisor)(e,r+1);return r}function i(e,t,r){let n=[],s=e.length;for(let a=0;a<s;a++)a!==t?n.push(e[a]):n.push(r);return n}function u(e,t,r,n){let s=t.shape.length,a=e.shape.length;if(0!==n&&(n<-s||n>s))throw Error(`Expect batchDims in the range of [-${s}, ${s}], but got ${n}`);if(n<0&&(n+=s),n>a)throw Error(`batchDims (${n}) must be less than rank(x) ( ${a}).`);if(r<n)throw Error(`batchDims (${n}) must be less than or equal to axis (${r}).`);for(let r=0;r<n;++r)if(e.shape[r]!==t.shape[r])throw Error(`x.shape[${r}]: ${e.shape[r]} should be equal to indices.shape[${r}]: ${t.shape[r]}.`);let o=e.shape[r],l=[],i=1,u=1,p=1;for(let t=0;t<n;++t)l.push(e.shape[t]),i*=e.shape[t];for(let t=n;t<r;t++)l.push(e.shape[t]),u*=e.shape[t];for(let e=n;e<s;e++)l.push(t.shape[e]);for(let t=r+1;t<a;t++)l.push(e.shape[t]),p*=e.shape[t];return{batchSize:i,sliceSize:p,outerSize:u,dimSize:o,outputShape:l}}},{"../util":"2IDj3","./reduce_util":"1t0sW","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dPoeu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV3Impl",()=>a.nonMaxSuppressionV3Impl),s.export(r,"nonMaxSuppressionV4Impl",()=>a.nonMaxSuppressionV4Impl),s.export(r,"nonMaxSuppressionV5Impl",()=>a.nonMaxSuppressionV5Impl),s.export(r,"whereImpl",()=>o.whereImpl);var a=e("./non_max_suppression_impl"),o=e("./where_impl")},{"./non_max_suppression_impl":"6IYIX","./where_impl":"7GBoB","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7lxVT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"GraphModel",()=>a.GraphModel),s.export(r,"loadGraphModel",()=>a.loadGraphModel),s.export(r,"loadGraphModelSync",()=>a.loadGraphModelSync),s.export(r,"deregisterOp",()=>o.deregisterOp),s.export(r,"registerOp",()=>o.registerOp),s.export(r,"version_converter",()=>l.version),e("./flags");var a=e("./executor/graph_model"),o=e("./operations/custom_op/register"),l=e("./version")},{"./flags":"lw7yd","./executor/graph_model":"edxxy","./operations/custom_op/register":"3biEy","./version":"ahnqu","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lw7yd:[function(e,t,r,n){(0,e("@tensorflow/tfjs-core").env)().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.")})},{"@tensorflow/tfjs-core":"hADTC"}],edxxy:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TFHUB_SEARCH_PARAM",()=>p),s.export(r,"DEFAULT_MODEL_NAME",()=>c),s.export(r,"GraphModel",()=>d),s.export(r,"loadGraphModel",()=>f),s.export(r,"loadGraphModelSync",()=>h);var a=e("@tensorflow/tfjs-core"),o=e("../operations/operation_mapper"),l=e("./graph_executor"),i=e("./resource_manager"),u=e("@tensorflow/tfjs-core/dist/io/io_utils");let p="?tfjs-format=file",c="model.json";class d{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}constructor(e,t={},r=a.io){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=r,null==t&&(this.loadOptions={}),this.resourceManager=new(0,i.ResourceManager)}findIOHandler(){let e=this.modelUrl;if(null!=e.load)this.handler=e;else if(null!=this.loadOptions.requestInit)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{let t=this.io.getLoadHandlers(e,this.loadOptions);if(0===t.length)t.push(this.io.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}load(){if(this.findIOHandler(),null==this.handler.load)throw Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=this.handler.load();return a.util.isPromise(e)?e.then(e=>null==e.getWeightStream?this.loadSync(e):this.loadStreaming(e)):this.loadSync(e)}loadSync(e){let t=this.io.decodeWeights(e.weightData,e.weightSpecs);return this.loadWithWeightMap(e,t)}async loadStreaming(e){if(null==e.getWeightStream)throw Error("Model artifacts missing streamWeights function");let t=await (0,u.decodeWeightsStream)(e.getWeightStream(),e.weightSpecs);return this.loadWithWeightMap(e,t)}loadWithWeightMap(e,t){this.artifacts=e;let r=this.artifacts.modelTopology,n=this.artifacts.signature;if(null!=this.artifacts.userDefinedMetadata){let e=this.artifacts.userDefinedMetadata;null!=e.signature&&(n=e.signature),null!=e.structuredOutputKeys&&(this.structuredOutputKeys=e.structuredOutputKeys)}if(this.signature=n,this.version=`${r.versions.producer}.${r.versions.minConsumer}`,this.executor=new(0,l.GraphExecutor)(o.OperationMapper.Instance.transformGraph(r,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(t),this.executor.resourceManager=this.resourceManager,null!=e.modelInitializer&&null!=e.modelInitializer.node){let t=o.OperationMapper.Instance.transformGraph(e.modelInitializer);this.initializer=new(0,l.GraphExecutor)(t),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=e.initializerSignature}return!0}async save(e,t){if("string"==typeof e){let t=this.io.getSaveHandlers(e);if(0===t.length)throw Error(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw Error(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}addStructuredOutputNames(e){if(this.structuredOutputKeys){let t=e instanceof a.Tensor?[e]:e,r={};return t.forEach((e,t)=>r[this.structuredOutputKeys[t]]=e),r}return e}predict(e,t){let r=this.execute(e,this.outputNodes);return this.addStructuredOutputNames(r)}async predictAsync(e,t){let r=await this.executeAsync(e,this.outputNodes);return this.addStructuredOutputNames(r)}normalizeInputs(e){var t;if(!(e instanceof a.Tensor)&&!Array.isArray(e)){let r=null==(t=this.signature)?void 0:t.inputs;if(null!=r)for(let t in r){let n=r[t];null!=n.resourceId&&(e[t]=this.resourceIdToCapturedInput[n.resourceId])}return e}e=Array.isArray(e)?e:[e];let r=Object.keys(this.resourceIdToCapturedInput).length;if(e.length+r!==this.inputNodes.length)throw Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-r} non-resource placeholders, while there are ${e.length} input tensors provided.`);let n=0;return this.inputNodes.reduce((t,r)=>{var s,a,o;let l=null==(o=null==(a=null==(s=this.signature)?void 0:s.inputs)?void 0:a[r])?void 0:o.resourceId;return null!=l?t[r]=this.resourceIdToCapturedInput[l]:t[r]=e[n++],t},{})}normalizeOutputs(e){return Array.isArray(e=e||this.outputNodes)?e:[e]}executeInitializerGraph(){return null==this.initializer?[]:null==this.initializerSignature?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return null==this.initializer?[]:null==this.initializerSignature?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(e){if(this.resourceIdToCapturedInput={},this.initializerSignature){let t=this.initializerSignature.outputs,r=Object.keys(t);for(let n=0;n<r.length;n++){let s=t[r[n]];this.resourceIdToCapturedInput[s.resourceId]=e[n]}}}execute(e,t){null==this.resourceIdToCapturedInput&&this.setResourceIdToCapturedInput(this.executeInitializerGraph()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let r=this.executor.execute(e,t);return r.length>1?r:r[0]}async executeAsync(e,t){null==this.resourceIdToCapturedInput&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let r=await this.executor.executeAsync(e,t);return r.length>1?r:r[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,r)=>(t[r]=[e[r]],t),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&(0,a.dispose)(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}}async function f(e,t={},r=a.io){var n;if(null==e)throw Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");null==t&&(t={}),t.fromTFHub&&"string"==typeof e&&((n=e).endsWith("/")||(n+="/"),e=`${n}${c}${p}`);let s=new d(e,t,r);return await s.load(),s}function h(e){let t;if(null==e)throw Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");if(e instanceof Array){let[r,n]=e;if(!r)throw Error("modelJSON must be the first element of the array");if(!n||!(n instanceof ArrayBuffer))throw Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in r))throw Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in r))throw Error("Model JSON is missing 'weightsManifest'");let s=a.io.getWeightSpecs(r.weightsManifest),o=a.io.getModelArtifactsForJSONSync(r,s,n);t=a.io.fromMemorySync(o)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=a.io.fromMemorySync(e);else throw Error("Unknown model format");let r=new d(t);return r.load(),r}},{"@tensorflow/tfjs-core":"hADTC","../operations/operation_mapper":"ej3zv","./graph_executor":"5Yh4i","./resource_manager":"90eK8","@tensorflow/tfjs-core/dist/io/io_utils":"kNa3U","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ej3zv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"OperationMapper",()=>N),s.export(r,"decodeBase64",()=>S),s.export(r,"parseStringParam",()=>E),s.export(r,"getStringParam",()=>A),s.export(r,"getBoolParam",()=>F),s.export(r,"getNumberParam",()=>R),s.export(r,"parseDtypeParam",()=>D),s.export(r,"getFuncParam",()=>P),s.export(r,"getDtypeParam",()=>$),s.export(r,"getDtypeArrayParam",()=>M),s.export(r,"parseTensorShapeParam",()=>O),s.export(r,"getTensorShapeParam",()=>B),s.export(r,"getNumericArrayParam",()=>q),s.export(r,"getStringArrayParam",()=>L),s.export(r,"getTensorShapeArrayParam",()=>V),s.export(r,"getBoolArrayParam",()=>G);var a=e("@tensorflow/tfjs-core"),o=e("../data/compiled_api"),l=e("./custom_op/register"),i=e("./executors/utils"),u=e("./op_list/arithmetic"),p=e("./op_list/basic_math"),c=e("./op_list/control"),d=e("./op_list/convolution"),f=e("./op_list/creation"),h=e("./op_list/dynamic"),m=e("./op_list/evaluation"),g=e("./op_list/graph"),x=e("./op_list/hash_table"),v=e("./op_list/image"),y=e("./op_list/logical"),_=e("./op_list/matrices"),b=e("./op_list/normalization"),k=e("./op_list/reduction"),T=e("./op_list/slice_join"),w=e("./op_list/sparse"),I=e("./op_list/spectral"),j=e("./op_list/string"),C=e("./op_list/transformation");class N{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[].concat(...[u,p,c,d,f,h,m,g,x,v,y,_,b,k,T,w,I,j,C].map(e=>e.json));this.opMappers=e.reduce((e,t)=>(e[t.tfOpName]=t,e),{})}transformGraph(e,t={}){let r=e.node,n=[],s=[],a=[],o=r.reduce((e,t)=>(e[t.name]=this.mapNode(t),t.op.startsWith("Placeholder")?n.push(e[t.name]):"Const"===t.op?s.push(e[t.name]):(null==t.input||0===t.input.length)&&a.push(e[t.name]),e),{}),l=[],u=[],p={},c={};null!=t&&(p=this.mapSignatureEntries(t.inputs),c=this.mapSignatureEntries(t.outputs));let d=Object.keys(o);d.forEach(e=>{let t=o[e];t.inputNames.forEach((e,r)=>{let[n,,s]=(0,i.getNodeNameAndIndex)(e),a=o[n];if(null!=a.outputs){let e=a.outputs.indexOf(s);if(-1!==e){let s=`${n}:${e}`;t.inputNames[r]=s}}t.inputs.push(a),a.children.push(t)})}),0===Object.keys(c).length?d.forEach(e=>{let t=o[e];0===t.children.length&&u.push(t)}):Object.keys(c).forEach(e=>{let[t]=(0,i.getNodeNameAndIndex)(e),r=o[t];null!=r&&(r.signatureKey=c[e],u.push(r))}),Object.keys(p).length>0?Object.keys(p).forEach(e=>{let[t]=(0,i.getNodeNameAndIndex)(e),r=o[t];r&&(r.signatureKey=p[e],l.push(r))}):l=n;let f={};null!=e.library&&null!=e.library.function&&(f=e.library.function.reduce((e,t)=>(e[t.signature.name]=this.mapFunction(t),e),{}));let h={nodes:o,inputs:l,outputs:u,weights:s,placeholders:n,signature:t,functions:f};return a.length>0&&(h.initNodes=a),h}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,r)=>(t[e[r].name]=r,t),{})}mapNode(e){let t=(0,l.getRegisteredOp)(e.op)||this.opMappers[e.op]||{};null==e.attr&&(e.attr={});let r={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(e=>e.startsWith("^")?e.slice(1):e),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};return null!=t.inputs&&(r.inputParams=t.inputs.reduce((e,t)=>(e[t.name]={type:t.type,inputIndexStart:t.start,inputIndexEnd:t.end},e),{})),null!=t.attrs&&(r.attrParams=t.attrs.reduce((t,r)=>{let n,s=r.type;switch(r.type){case"string":void 0===(n=A(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=A(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":void 0===(n=L(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=L(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":void 0===(n=R(e.attr,r.tfName,r.defaultValue||0))&&r.tfDeprecatedName&&(n=R(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":void 0===(n=q(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=q(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":void 0===(n=F(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=F(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":void 0===(n=G(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=G(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":void 0===(n=B(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=B(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":void 0===(n=V(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=V(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":void 0===(n=$(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=$(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":void 0===(n=M(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=M(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":void 0===(n=P(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=P(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return t[r.name]={value:n,type:s},t},{})),r}mapFunction(e){let t=e.nodeDef,r=[],n={};null!=t&&(n=t.reduce((e,t)=>(e[t.name]=this.mapNode(t),"Const"===t.op&&r.push(e[t.name]),e),{}));let s=[],a=[];e.signature.inputArg.forEach(e=>{let[t]=(0,i.getNodeNameAndIndex)(e.name),r={name:t,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:D(e.type),type:"dtype"}},children:[]};r.signatureKey=e.name,s.push(r),n[t]=r}),Object.keys(n).forEach(e=>{let t=n[e];t.inputNames.forEach((e,r)=>{let[s,,a]=(0,i.getNodeNameAndIndex)(e),o=n[s];if(null!=o.outputs){let e=o.outputs.indexOf(a);if(-1!==e){let n=`${s}:${e}`;t.inputNames[r]=n}}t.inputs.push(o),o.children.push(t)})});let o=e.ret;e.signature.outputArg.forEach(e=>{let[t,r]=(0,i.getNodeNameAndIndex)(o[e.name]),s=n[t];null!=s&&(s.defaultOutput=r,a.push(s))});let l=this.mapArgsToSignature(e);return{nodes:n,inputs:s,outputs:a,weights:r,placeholders:[],signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((e,t)=>(e[t.name]=this.mapArgToTensorInfo(t),e),{}),outputs:e.signature.outputArg.reduce((t,r)=>(t[r.name]=this.mapArgToTensorInfo(r,e.ret),t),{})}}mapArgToTensorInfo(e,t){let r=e.name;return null!=t&&(r=t[r]),{name:r,dtype:e.type}}}function S(e){let t=(0,a.env)().global;if(void 0!==t.atob)return t.atob(e);if("undefined"!=typeof Buffer)return new Buffer(e,"base64").toString();throw Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function E(e,t){let r=Array.isArray(e)?String.fromCharCode.apply(null,e):S(e);return t?r:r.toLowerCase()}function A(e,t,r,n=!1){let s=e[t];return null!=s?E(s.s,n):r}function F(e,t,r){let n=e[t];return n?n.b:r}function R(e,t,r){let n=e[t]||{},s=null!=n.i?n.i:null!=n.f?n.f:r;return"number"==typeof s?s:parseInt(s,10)}function D(e){switch("string"==typeof e&&(e=o.DataType[e]),e){case o.DataType.DT_FLOAT:case o.DataType.DT_HALF:return"float32";case o.DataType.DT_INT32:case o.DataType.DT_INT64:case o.DataType.DT_INT8:case o.DataType.DT_UINT8:return"int32";case o.DataType.DT_BOOL:return"bool";case o.DataType.DT_DOUBLE:return"float32";case o.DataType.DT_STRING:return"string";case o.DataType.DT_COMPLEX64:case o.DataType.DT_COMPLEX128:return"complex64";default:return null}}function P(e,t,r){let n=e[t];return n&&n.func?n.func.name:r}function $(e,t,r){let n=e[t];return n&&n.type?D(n.type):r}function M(e,t,r){let n=e[t];return n&&n.list&&n.list.type?n.list.type.map(e=>D(e)):r}function O(e){if(!e.unknownRank)return null!=e.dim?e.dim.map(e=>"number"==typeof e.size?e.size:parseInt(e.size,10)):[]}function B(e,t,r){let n=e[t];return n&&n.shape?O(n.shape):r}function q(e,t,r){let n=e[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(e=>"number"==typeof e?e:parseInt(e,10)):r}function L(e,t,r,n=!1){let s=e[t];return s&&s.list&&s.list.s?s.list.s.map(e=>E(e,n)):r}function V(e,t,r){let n=e[t];return n&&n.list&&n.list.shape?n.list.shape.map(e=>O(e)):r}function G(e,t,r){let n=e[t];return n&&n.list&&n.list.b?n.list.b:r}},{"@tensorflow/tfjs-core":"hADTC","../data/compiled_api":"jVwYl","./custom_op/register":"3biEy","./executors/utils":"5HlwR","./op_list/arithmetic":"dnqzi","./op_list/basic_math":"aodvD","./op_list/control":"6stVg","./op_list/convolution":"ioAh2","./op_list/creation":"c8hZ1","./op_list/dynamic":"krXWL","./op_list/evaluation":"51XtZ","./op_list/graph":"hj9TP","./op_list/hash_table":"l5569","./op_list/image":"2aP53","./op_list/logical":"eLMDT","./op_list/matrices":"7ZaWz","./op_list/normalization":"n0SnQ","./op_list/reduction":"14doz","./op_list/slice_join":"kxbie","./op_list/sparse":"gPm24","./op_list/spectral":"5fzdr","./op_list/string":"3dEn3","./op_list/transformation":"c3DS0","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jVwYl:[function(e,t,r,n){var s,a,o,l,i,u=e("@parcel/transformer-js/src/esmodule-helpers.js");u.defineInteropFlag(r),u.export(r,"DataType",()=>l),u.export(r,"SaverDef",()=>i),(s=l||(l={}))[s.DT_INVALID=0]="DT_INVALID",s[s.DT_FLOAT=1]="DT_FLOAT",s[s.DT_DOUBLE=2]="DT_DOUBLE",s[s.DT_INT32=3]="DT_INT32",s[s.DT_UINT8=4]="DT_UINT8",s[s.DT_INT16=5]="DT_INT16",s[s.DT_INT8=6]="DT_INT8",s[s.DT_STRING=7]="DT_STRING",s[s.DT_COMPLEX64=8]="DT_COMPLEX64",s[s.DT_INT64=9]="DT_INT64",s[s.DT_BOOL=10]="DT_BOOL",s[s.DT_QINT8=11]="DT_QINT8",s[s.DT_QUINT8=12]="DT_QUINT8",s[s.DT_QINT32=13]="DT_QINT32",s[s.DT_BFLOAT16=14]="DT_BFLOAT16",s[s.DT_QINT16=15]="DT_QINT16",s[s.DT_QUINT16=16]="DT_QUINT16",s[s.DT_UINT16=17]="DT_UINT16",s[s.DT_COMPLEX128=18]="DT_COMPLEX128",s[s.DT_HALF=19]="DT_HALF",s[s.DT_RESOURCE=20]="DT_RESOURCE",s[s.DT_VARIANT=21]="DT_VARIANT",s[s.DT_UINT32=22]="DT_UINT32",s[s.DT_UINT64=23]="DT_UINT64",s[s.DT_FLOAT_REF=101]="DT_FLOAT_REF",s[s.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",s[s.DT_INT32_REF=103]="DT_INT32_REF",s[s.DT_UINT8_REF=104]="DT_UINT8_REF",s[s.DT_INT16_REF=105]="DT_INT16_REF",s[s.DT_INT8_REF=106]="DT_INT8_REF",s[s.DT_STRING_REF=107]="DT_STRING_REF",s[s.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",s[s.DT_INT64_REF=109]="DT_INT64_REF",s[s.DT_BOOL_REF=110]="DT_BOOL_REF",s[s.DT_QINT8_REF=111]="DT_QINT8_REF",s[s.DT_QUINT8_REF=112]="DT_QUINT8_REF",s[s.DT_QINT32_REF=113]="DT_QINT32_REF",s[s.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF",s[s.DT_QINT16_REF=115]="DT_QINT16_REF",s[s.DT_QUINT16_REF=116]="DT_QUINT16_REF",s[s.DT_UINT16_REF=117]="DT_UINT16_REF",s[s.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",s[s.DT_HALF_REF=119]="DT_HALF_REF",s[s.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",s[s.DT_VARIANT_REF=121]="DT_VARIANT_REF",s[s.DT_UINT32_REF=122]="DT_UINT32_REF",s[s.DT_UINT64_REF=123]="DT_UINT64_REF",(o=(a=i||(i={})).CheckpointFormatVersion||(a.CheckpointFormatVersion={}))[o.LEGACY=0]="LEGACY",o[o.V1=1]="V1",o[o.V2=2]="V2"},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3biEy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"registerOp",()=>o),s.export(r,"getRegisteredOp",()=>l),s.export(r,"deregisterOp",()=>i);let a={};function o(e,t){a[e]={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t}}function l(e){return a[e]}function i(e){delete a[e]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5HlwR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getParamValue",()=>o),s.export(r,"getTensor",()=>l),s.export(r,"getTensorsForCurrentContext",()=>i),s.export(r,"getNodeNameAndIndex",()=>u),s.export(r,"parseNodeName",()=>c),s.export(r,"split",()=>d),s.export(r,"getPadding",()=>f),s.export(r,"cloneTensor",()=>h);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s){let o=t.inputParams[e];if(o&&void 0!==o.inputIndexStart){let e=o.inputIndexStart,i=0===o.inputIndexEnd?void 0:void 0===o.inputIndexEnd?e+1:o.inputIndexEnd,u=e<0?t.inputNames.length+e:e;if("tensor"===o.type)return l(t.inputNames[u],r,n,s);if("tensors"===o.type){let a=t.inputs.slice(e,i);return t.inputNames.slice(e,i).filter((e,t)=>{var r;return(null==(r=a[t])?void 0:r.op)!=="NoOp"}).map(e=>l(e,r,n,s))}let p=l(t.inputNames[u],r,n,s),c=p.dataSync();return"number"===o.type?c[0]:a.util.toNestedArray(p.shape,c)}let i=t.attrParams[e];return i&&i.value}function l(e,t,r,n){let[s,a]=c(e,r);if(null!=n){let e=n.getHashTableHandleByName(s);if(null!=e)return e}let o=r.currentContextIds.find(e=>!!t[p(s,e)]);return void 0!==o?t[p(s,o)][a]:void 0}function i(e,t,r){return t[p(e,r.currentContextId)]}function u(e,t){let[r,n,s]=c(e,t);return[p(r,t&&t.currentContextId),n,s]}function p(e,t){return t?`${e}-${t}`:e}function c(e,t){let r;if(""===e)return["",0,void 0];let n=null!=t&&null!=t.parseNodeNameCache;if(n){let r=t.parseNodeNameCache.get(e);if(null!=r)return r}let s=e.split(":");if(1===s.length)r=[e,0,void 0];else{let e=s[0],t=3===s.length?s[1]:void 0;r=[e,Number(s[s.length-1]),t]}return n&&t.parseNodeNameCache.set(e,r),r}function d(e,t){let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}function f(e,t,r){let n=o("pad",e,t,r);if("explicit"===n){n=o("explicitPaddings",e,t,r);let s=[[0,0],[0,0],[0,0],[0,0]];for(let e=0;e<4;e++)s[e][0]=n[2*e],s[e][1]=n[2*e+1];return s}return n}function h(e){return e.kept?e:(0,a.clone)(e)}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dnqzi:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aodvD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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:"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}]},{tfOpName:"IsFinite",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsInf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6stVg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ioAh2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],c8hZ1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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:"RandomUniformInt",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number"},{tfName:"maxval",name:"maxval",type:"number"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,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"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],krXWL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"51XtZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hj9TP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],l5569:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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"}]},{tfOpName:"InitializeTable",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]},{tfOpName:"InitializeTableV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2aP53":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eLMDT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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}]},{tfOpName:"BitwiseAnd",category:"logical",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7ZaWz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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"}]},{tfOpName:"MatrixBandPart",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"numLower",type:"tensor"},{start:1,name:"numUpper",type:"tensor"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],n0SnQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"14doz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{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"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kxbie:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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}]},{tfOpName:"TensorScatterUpdate",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"values",type:"tensor"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gPm24:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5fzdr":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3dEn3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{tfOpName:"StaticRegexReplace",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"pattern",name:"pattern",type:"string"},{tfName:"rewrite",name:"rewrite",type:"string"},{tfName:"replace_global",name:"replaceGlobal",type:"bool"}]},{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"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],c3DS0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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:"EnsureShape",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:[]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5Yh4i":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"GraphExecutor",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../operations/executors/utils"),l=e("../operations/operation_executor"),i=e("./execution_context"),u=e("./model_analysis");class p{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(t=>e[t].map(e=>e.id));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{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),{})}constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=",",this._functions={},this._functionExecutorMap={},this.keepIntermediateTensors=!1,this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,null!=e.functions&&Object.keys(e.functions).forEach(t=>{this._functionExecutorMap[t]=new p(e.functions[t],this)})}getCompilationKey(e,t){let r=e.map(e=>e.name).sort(),n=t.map(e=>e.name).sort();return r.join(this.SEPARATOR)+"--"+n.join(this.SEPARATOR)}compile(e,t){let r=(0,u.getExecutionSubgraph)(e,t,this.weightMap,this._initNodes),{missingInputs:n,dynamicNode:s,syncInputs:a}=r;if(null!=s)throw 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 [${a}]`);if(n.length>0){let r=t.map(e=>e.name),s=Object.keys(e);throw Error(`Cannot compute the outputs [${r}] from the provided inputs [${s}]. Missing the following inputs: [${n}]`)}let o=(0,u.getNodesInTopologicalOrder)(this.graph,r),l=(0,u.getNodeLiveUntilMap)(o);return{orderedNodes:o,nodeLiveUntilMap:l}}cloneAndKeepTensor(e){if(null==e)return null;let t=e.clone();return(0,a.keep)(t),t}cloneTensorList(e){return e?e.map(e=>this.cloneAndKeepTensor(e)):null}cloneTensorMap(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,this.cloneTensorList(t)]))}execute(e,t){this.disposeIntermediateTensors();let r=Object.keys(e=this.mapInputs(e)).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let n=r.map(e=>this.graph.nodes[(0,o.parseNodeName)(e)[0]]),s=t.map(e=>(0,o.parseNodeName)(e)[0]),u=new Set(s),p=s.map(e=>this.graph.nodes[e]);0===p.length&&(p=this._outputs);let c=this.getCompilationKey(n,p),d=this.compiledMap.get(c);null==d&&(d=this.compile(e,p),this.compiledMap.set(c,d));try{this.keepIntermediateTensors=(0,a.env)().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(e){this.keepIntermediateTensors=!1,console.warn(e.message)}let f={},h={};return(0,a.tidy)(()=>{let r=new(0,i.ExecutionContext)(this.weightMap,f,h,this.functionExecutorMap,this.parseNodeNameCache),n=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(e).forEach(t=>{let[s,a]=(0,o.parseNodeName)(t,r),l=[];l[a]=e[t],n[s]=l,this.keepIntermediateTensors&&(this.clonedTensorsMap[s]=this.cloneTensorList(l))});let s=this.getFrozenTensorIds(n),{orderedNodes:p,nodeLiveUntilMap:c}=d;for(let e of p){if(n[e.name])continue;let t=(0,l.executeOp)(e,n,r,this._resourceManager);if(a.util.isPromise(t))throw Error(`The execution of the op '${e.op}' returned a promise. Please use model.executeAsync() instead.`);n[e.name]=t,this.keepIntermediateTensors&&(this.clonedTensorsMap[e.name]=this.cloneTensorList(t)),this.checkTensorForDisposalWithNodeLiveUntilInfo(e,n,r,s,u,c.get(e.name))}return null==this.parent&&r.dispose(s),t.map(e=>(0,o.getTensor)(e,n,r))})}getFrozenTensorIds(e){return new Set([].concat.apply([],Object.keys(e).map(t=>e[t]).map(e=>e.map(e=>e.id))))}checkTensorForDisposal(e,t,r,n,s,a,l){if(!((0,u.isControlFlow)(t)||a.has(e))){for(let n of r[e])null!=n&&(l[n.id]=(l[n.id]||0)+t.children.length);for(let e of t.inputs){if((0,u.isControlFlow)(e))continue;let t=(0,o.getTensorsForCurrentContext)(e.name,r,n);if(null!=t)for(let e of t){if(!e||e.kept||s.has(e.id))continue;let t=l[e.id];1===t?(e.dispose(),delete l[e.id]):null!=t&&l[e.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(e,t,r,n,s,a){if(!(0,u.isControlFlow)(e)&&null!=a){for(let e of a)if(!((0,u.isControlFlow)(e)||s.has(e.name)))for(let s of(0,o.getTensorsForCurrentContext)(e.name,t,r))!s||s.kept||n.has(s.id)||s.dispose()}}async executeAsync(e,t){return this._executeAsync(e,t)}disposeIntermediateTensors(){this.clonedTensorsMap&&(Object.values(this.clonedTensorsMap).forEach(e=>{for(let t of e)t&&!t.isDisposed&&t.dispose()}),this.clonedTensorsMap=null)}getIntermediateTensors(){return this.clonedTensorsMap}async _executeAsync(e,t,r=!1,n={},s={}){this.disposeIntermediateTensors(),r||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));try{this.keepIntermediateTensors=(0,a.env)().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(e){this.keepIntermediateTensors=!1,console.warn(e.message)}let l=new(0,i.ExecutionContext)(this.weightMap,n,s,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let u=await this.executeWithControlFlow(e,l,t,r),p=t.map(e=>(0,o.getTensor)(e,u,l)),c=new Set([...p.map(e=>e.id),...Object.keys(e).map(t=>e[t].id),...this.weightIds]);return Object.values(u).forEach(e=>{e.forEach(e=>{!e||e.isDisposed||c.has(e.id)||e.dispose()})}),null==this.parent&&l.dispose(c),p}async executeFunctionAsync(e,t,r){let n=e.reduce((e,t,r)=>(e[this.inputs[r].name]=t,e),{});return this._executeAsync(n,this.outputNodes,!0,t,r)}async executeWithControlFlow(e,t,r,n){let s=Object.keys(e),a=s.map(e=>this.graph.nodes[(0,o.parseNodeName)(e)[0]]),l=r.map(e=>(0,o.parseNodeName)(e)[0]),i=new Set(l),p=l.map(e=>this.graph.nodes[e]);0===p.length&&(p=this._outputs);let{usedNodes:c,missingInputs:d,dynamicNode:f,syncInputs:h}=(0,u.getExecutionSubgraph)(e,p,this.weightMap,this._initNodes),m=[...a,...this.graph.weights,...this._initNodes||[]].map(e=>({node:e,contexts:t.currentContext})),g=Object.assign({},this.weightMap);Object.keys(e).forEach(t=>{let[r,n]=(0,o.parseNodeName)(t),s=[];s[n]=e[t],g[r]=s});let x={},v=this.getFrozenTensorIds(g),y={};for(;m.length>0;){let e=this.processStack(a,m,t,g,y,v,i,x,c);await Promise.all(e)}null!=f||n||console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let _=p.filter(e=>!(0,u.isControlFlow)(e)&&!(0,o.getTensor)(e.name,g,t)).map(e=>e.name);if(_.length>0){let e="";throw null!=f&&(e=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${h}]`),Error(`Cannot compute the outputs [${_}] from the provided inputs [${s}]. Consider providing the following inputs: [${d}]. ${e}`)}return g}processStack(e,t,r,n,s,i,u,p,c){let d=[];for(;t.length>0;){let e=t.pop();r.currentContext=e.contexts;let f="";if("Enter"===e.node.op&&(0,o.getParamValue)("isConstant",e.node,n,r)&&([f]=(0,o.getNodeNameAndIndex)(e.node.name,r)),null==n[e.node.name]){let h=(0,l.executeOp)(e.node,n,r,this._resourceManager);f||([f]=(0,o.getNodeNameAndIndex)(e.node.name,r));let m=r.currentContext;a.util.isPromise(h)?d.push(h.then(a=>(n[f]=a,this.keepIntermediateTensors&&(this.clonedTensorsMap[f]=this.cloneTensorList(a)),r.currentContext=m,this.checkTensorForDisposal(f,e.node,n,r,i,u,p),this.processChildNodes(e.node,t,r,n,s,c),a))):(n[f]=h,this.keepIntermediateTensors&&(this.clonedTensorsMap[f]=this.cloneTensorList(h)),this.checkTensorForDisposal(f,e.node,n,r,i,u,p),this.processChildNodes(e.node,t,r,n,s,c))}else this.processChildNodes(e.node,t,r,n,s,c)}return d}processChildNodes(e,t,r,n,s,a){e.children.forEach(e=>{let[l]=(0,o.getNodeNameAndIndex)(e.name,r);!s[l]&&a.has(e.name)&&("Merge"===e.op?e.inputNames.some(e=>!!(0,o.getTensor)(e,n,r))&&(s[l]=!0,t.push({contexts:r.currentContext,node:e})):e.inputNames.every(e=>!!(0,o.getTensor)(e,n,r))&&(s[l]=!0,t.push({contexts:r.currentContext,node:e})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(e=>e.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let r=e[t],[n]=(0,o.parseNodeName)(t),s=this.graph.nodes[n];if(s.attrParams.shape&&s.attrParams.shape.value){let e=s.attrParams.shape.value,t=e.length===r.shape.length&&r.shape.every((t,r)=>-1===e[r]||e[r]===t);a.util.assert(t,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${e}], but was [${r.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&a.util.assert(r.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${r.dtype}`)})}mapInputs(e){var t,r;let n={};for(let s in e){let a=null==(r=null==(t=this._signature)?void 0:t.inputs)?void 0:r[s];null!=a?n[a.name]=e[s]:n[s]=e[s]}return n}checkInputs(e){let t=Object.keys(e).filter(e=>{let[t]=(0,o.parseNodeName)(e);return null==this.graph.nodes[t]});if(t.length>0)throw Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(e=>{var t,r;let n=null==(r=null==(t=this._signature)?void 0:t.outputs)?void 0:r[e];return null!=n?n.name:e},{})}checkOutputs(e){e.forEach(e=>{let[t]=(0,o.parseNodeName)(e);if(!this.graph.nodes[t])throw Error(`The output '${e}' is not found in the graph`)})}}},{"@tensorflow/tfjs-core":"hADTC","../operations/executors/utils":"5HlwR","../operations/operation_executor":"jQwBO","./execution_context":"RqD6m","./model_analysis":"kqHTr","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jQwBO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>N);var a=e("@tensorflow/tfjs-core"),o=e("./custom_op/node_value_impl"),l=e("./custom_op/register"),i=e("./executors/arithmetic_executor"),u=e("./executors/basic_math_executor"),p=e("./executors/control_executor"),c=e("./executors/convolution_executor"),d=e("./executors/creation_executor"),f=e("./executors/dynamic_executor"),h=e("./executors/evaluation_executor"),m=e("./executors/graph_executor"),g=e("./executors/hash_table_executor"),x=e("./executors/image_executor"),v=e("./executors/logical_executor"),y=e("./executors/matrices_executor"),_=e("./executors/normalization_executor"),b=e("./executors/ragged_executor"),k=e("./executors/reduction_executor"),T=e("./executors/slice_join_executor"),w=e("./executors/sparse_executor"),I=e("./executors/spectral_executor"),j=e("./executors/string_executor"),C=e("./executors/transformation_executor");function N(e,t,r,n,s=a.tidy){let S=((e,t,r)=>{switch(e.category){case"arithmetic":return s(()=>i.executeOp(e,t,r));case"basic_math":return s(()=>u.executeOp(e,t,r));case"control":return p.executeOp(e,t,r);case"convolution":return s(()=>c.executeOp(e,t,r));case"creation":return s(()=>d.executeOp(e,t,r));case"dynamic":return f.executeOp(e,t,r);case"evaluation":return s(()=>h.executeOp(e,t,r));case"image":return s(()=>x.executeOp(e,t,r));case"graph":return s(()=>m.executeOp(e,t,r));case"logical":return s(()=>v.executeOp(e,t,r));case"matrices":return s(()=>y.executeOp(e,t,r));case"normalization":return s(()=>_.executeOp(e,t,r));case"ragged":return s(()=>b.executeOp(e,t,r));case"reduction":return s(()=>k.executeOp(e,t,r));case"slice_join":return s(()=>T.executeOp(e,t,r));case"sparse":return s(()=>w.executeOp(e,t,r));case"spectral":return s(()=>I.executeOp(e,t,r));case"string":return s(()=>j.executeOp(e,t,r));case"transformation":return s(()=>C.executeOp(e,t,r));case"hash_table":return g.executeOp(e,t,r,n);case"custom":let a=(0,l.getRegisteredOp)(e.op);if(a&&a.customExecutor)return a.customExecutor(new(0,o.NodeValueImpl)(e,t,r));throw TypeError(`Custom op ${e.op} is not registered.`);default:throw TypeError(`Unknown op '${e.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,r);return a.util.isPromise(S)?S.then(e=>[].concat(e)):[].concat(S)}},{"@tensorflow/tfjs-core":"hADTC","./custom_op/node_value_impl":"eybSd","./custom_op/register":"3biEy","./executors/arithmetic_executor":"aRYK5","./executors/basic_math_executor":"13Nub","./executors/control_executor":"cORBu","./executors/convolution_executor":"8v2C7","./executors/creation_executor":"iZBgV","./executors/dynamic_executor":"boeiz","./executors/evaluation_executor":"2Wwvd","./executors/graph_executor":"7NhkA","./executors/hash_table_executor":"8aJJs","./executors/image_executor":"bjBkW","./executors/logical_executor":"bLfko","./executors/matrices_executor":"9dcJo","./executors/normalization_executor":"ijF4h","./executors/ragged_executor":"2NxHF","./executors/reduction_executor":"aPxOS","./executors/slice_join_executor":"jugxk","./executors/sparse_executor":"bo1UF","./executors/spectral_executor":"a9k3w","./executors/string_executor":"iQDRL","./executors/transformation_executor":"lGcIS","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eybSd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"NodeValueImpl",()=>l);var a=e("../executors/utils"),o=e("../operation_mapper");class l{constructor(e,t,r){this.node=e,this.tensorMap=t,this.context=r,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(e=>this.getInput(e)),null!=e.rawAttrs&&(this.attrs=Object.keys(e.rawAttrs).reduce((e,t)=>(e[t]=this.getAttr(t),e),{}))}getInput(e){return(0,a.getTensor)(e,this.tensorMap,this.context)}getAttr(e,t){let r=this.node.rawAttrs[e];if(null!=r.tensor)return(0,a.getTensor)(e,this.tensorMap,this.context);if(null!=r.i||null!=r.f)return(0,o.getNumberParam)(this.node.rawAttrs,e,t);if(null!=r.s)return(0,o.getStringParam)(this.node.rawAttrs,e,t);if(null!=r.b)return(0,o.getBoolParam)(this.node.rawAttrs,e,t);if(null!=r.shape)return(0,o.getTensorShapeParam)(this.node.rawAttrs,e,t);if(null!=r.type)return(0,o.getDtypeParam)(this.node.rawAttrs,e,t);if(null!=r.list){if(null!=r.list.i||null!=r.list.f)return(0,o.getNumericArrayParam)(this.node.rawAttrs,e,t);if(null!=r.list.s)return(0,o.getStringArrayParam)(this.node.rawAttrs,e,t);if(null!=r.list.shape)return(0,o.getTensorShapeArrayParam)(this.node.rawAttrs,e,t);if(null!=r.list.b)return(0,o.getBoolArrayParam)(this.node.rawAttrs,e,t);if(null!=r.list.type)return(0,o.getDtypeArrayParam)(this.node.rawAttrs,e,t)}return t}}},{"../executors/utils":"5HlwR","../operation_mapper":"ej3zv","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aRYK5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[n.add((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"AddN":return[n.addN((0,o.getParamValue)("tensors",e,t,r))];case"FloorMod":case"Mod":return[n.mod((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"Mul":return[n.mul((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"RealDiv":case"Div":return[n.div((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"DivNoNan":return[n.divNoNan((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"FloorDiv":return[n.floorDiv((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"Sub":return[n.sub((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"Minimum":return[n.minimum((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"Maximum":return[n.maximum((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"Pow":return[n.pow((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"SquaredDifference":return[n.squaredDifference((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="arithmetic"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7UYmk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r);var a=e("./ops");s.exportAll(a,r)},{"./ops":"fwPwu","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"13Nub":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"Abs":case"ComplexAbs":return[n.abs((0,o.getParamValue)("x",e,t,r))];case"Acos":return[n.acos((0,o.getParamValue)("x",e,t,r))];case"Acosh":return[n.acosh((0,o.getParamValue)("x",e,t,r))];case"Asin":return[n.asin((0,o.getParamValue)("x",e,t,r))];case"Asinh":return[n.asinh((0,o.getParamValue)("x",e,t,r))];case"Atan":return[n.atan((0,o.getParamValue)("x",e,t,r))];case"Atan2":return[n.atan2((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("y",e,t,r))];case"Atanh":return[n.atanh((0,o.getParamValue)("x",e,t,r))];case"Ceil":return[n.ceil((0,o.getParamValue)("x",e,t,r))];case"Complex":return[n.complex((0,o.getParamValue)("real",e,t,r),(0,o.getParamValue)("imag",e,t,r))];case"Cos":return[n.cos((0,o.getParamValue)("x",e,t,r))];case"Cosh":return[n.cosh((0,o.getParamValue)("x",e,t,r))];case"Elu":return[n.elu((0,o.getParamValue)("x",e,t,r))];case"Erf":return[n.erf((0,o.getParamValue)("x",e,t,r))];case"Exp":return[n.exp((0,o.getParamValue)("x",e,t,r))];case"Expm1":return[n.expm1((0,o.getParamValue)("x",e,t,r))];case"Floor":return[n.floor((0,o.getParamValue)("x",e,t,r))];case"Log":return[n.log((0,o.getParamValue)("x",e,t,r))];case"Log1p":return[n.log1p((0,o.getParamValue)("x",e,t,r))];case"Imag":return[n.imag((0,o.getParamValue)("x",e,t,r))];case"Neg":return[n.neg((0,o.getParamValue)("x",e,t,r))];case"Reciprocal":return[n.reciprocal((0,o.getParamValue)("x",e,t,r))];case"Real":return[n.real((0,o.getParamValue)("x",e,t,r))];case"Relu":return[n.relu((0,o.getParamValue)("x",e,t,r))];case"Round":return[n.round((0,o.getParamValue)("x",e,t,r))];case"Selu":return[n.selu((0,o.getParamValue)("x",e,t,r))];case"Sigmoid":return[n.sigmoid((0,o.getParamValue)("x",e,t,r))];case"Sin":return[n.sin((0,o.getParamValue)("x",e,t,r))];case"Sign":return[n.sign((0,o.getParamValue)("x",e,t,r))];case"Sinh":return[n.sinh((0,o.getParamValue)("x",e,t,r))];case"Softplus":return[n.softplus((0,o.getParamValue)("x",e,t,r))];case"Sqrt":return[n.sqrt((0,o.getParamValue)("x",e,t,r))];case"Square":return[n.square((0,o.getParamValue)("x",e,t,r))];case"Tanh":return[n.tanh((0,o.getParamValue)("x",e,t,r))];case"Tan":return[n.tan((0,o.getParamValue)("x",e,t,r))];case"ClipByValue":return[n.clipByValue((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("clipValueMin",e,t,r),(0,o.getParamValue)("clipValueMax",e,t,r))];case"Relu6":return[n.relu6((0,o.getParamValue)("x",e,t,r))];case"Rsqrt":return[n.rsqrt((0,o.getTensor)(e.inputNames[0],t,r))];case"LeakyRelu":return[n.leakyRelu((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("alpha",e,t,r))];case"Prelu":return[n.prelu((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("alpha",e,t,r))];case"IsNan":return[n.isNaN((0,o.getTensor)(e.inputNames[0],t,r))];case"IsInf":return[n.isInf((0,o.getTensor)(e.inputNames[0],t,r))];case"IsFinite":return[n.isFinite((0,o.getTensor)(e.inputNames[0],t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="basic_math"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cORBu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>u),s.export(r,"CATEGORY",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../../executor/tensor_array"),l=e("../../executor/tensor_list"),i=e("./utils");let u=async(e,t,r)=>{switch(e.op){case"If":case"StatelessIf":{let n=(0,i.getParamValue)("thenBranch",e,t,r),s=(0,i.getParamValue)("elseBranch",e,t,r),a=(0,i.getParamValue)("cond",e,t,r),o=(0,i.getParamValue)("args",e,t,r);if((await a.data())[0])return r.functionMap[n].executeFunctionAsync(o,r.tensorArrayMap,r.tensorListMap);return r.functionMap[s].executeFunctionAsync(o,r.tensorArrayMap,r.tensorListMap)}case"While":case"StatelessWhile":{let n=(0,i.getParamValue)("body",e,t,r),s=(0,i.getParamValue)("cond",e,t,r),a=(0,i.getParamValue)("args",e,t,r),o=await r.functionMap[s].executeFunctionAsync(a,r.tensorArrayMap,r.tensorListMap),l=a.map(e=>e.id),u=await o[0].data();o.forEach(e=>{e.kept||-1!==l.indexOf(e.id)||e.dispose()});let p=a;for(;u[0];){let e=p,t=(p=await r.functionMap[n].executeFunctionAsync(p,r.tensorArrayMap,r.tensorListMap)).map(e=>e.id);e.forEach(e=>{e.kept||-1!==l.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()});let a=await r.functionMap[s].executeFunctionAsync(p,r.tensorArrayMap,r.tensorListMap);u=await a[0].data(),a.forEach(e=>{e.kept||-1!==l.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()})}return p}case"LoopCond":{let n=(0,i.getParamValue)("pred",e,t,r);return[(0,i.cloneTensor)(n)]}case"Switch":{let n=(0,i.getParamValue)("pred",e,t,r),s=(0,i.getParamValue)("data",e,t,r);return s.kept||(s=(0,i.cloneTensor)(s)),(await n.data())[0]?[void 0,s]:[s,void 0]}case"Merge":{let n=e.inputNames.find(e=>void 0!==(0,i.getTensor)(e,t,r));if(n){let e=(0,i.getTensor)(n,t,r);return[(0,i.cloneTensor)(e)]}return}case"Enter":{let n=(0,i.getParamValue)("frameName",e,t,r),s=(0,i.getParamValue)("tensor",e,t,r);return r.enterFrame(n),[(0,i.cloneTensor)(s)]}case"Exit":{let n=(0,i.getParamValue)("tensor",e,t,r);return r.exitFrame(),[(0,i.cloneTensor)(n)]}case"NextIteration":{let n=(0,i.getParamValue)("tensor",e,t,r);return r.nextIteration(),[(0,i.cloneTensor)(n)]}case"TensorArrayV3":{let n=(0,i.getParamValue)("size",e,t,r),s=(0,i.getParamValue)("dtype",e,t,r),l=(0,i.getParamValue)("elementShape",e,t,r),u=(0,i.getParamValue)("dynamicSize",e,t,r),p=(0,i.getParamValue)("clearAfterRead",e,t,r),c=(0,i.getParamValue)("identicalElementShapes",e,t,r),d=(0,i.getParamValue)("name",e,t,r),f=new(0,o.TensorArray)(d,s,n,l,c,u,p);return r.addTensorArray(f),[f.idTensor,(0,a.scalar)(1)]}case"TensorArrayWriteV3":{let n=(0,i.getParamValue)("tensorArrayId",e,t,r),s=(0,i.getParamValue)("index",e,t,r),a=(0,i.getParamValue)("tensor",e,t,r),o=r.getTensorArray(n.id);return o.write(s,a),[o.idTensor]}case"TensorArrayReadV3":{let n=(0,i.getParamValue)("tensorArrayId",e,t,r),s=(0,i.getParamValue)("index",e,t,r);return[r.getTensorArray(n.id).read(s)]}case"TensorArrayGatherV3":{let n=(0,i.getParamValue)("tensorArrayId",e,t,r),s=(0,i.getParamValue)("indices",e,t,r),a=(0,i.getParamValue)("dtype",e,t,r);return[r.getTensorArray(n.id).gather(s,a)]}case"TensorArrayScatterV3":{let n=(0,i.getParamValue)("tensorArrayId",e,t,r),s=(0,i.getParamValue)("indices",e,t,r),a=(0,i.getParamValue)("tensor",e,t,r),o=r.getTensorArray(n.id);return o.scatter(s,a),[o.idTensor]}case"TensorArrayConcatV3":{let n=(0,i.getParamValue)("tensorArrayId",e,t,r),s=r.getTensorArray(n.id),a=(0,i.getParamValue)("dtype",e,t,r);return[s.concat(a)]}case"TensorArraySplitV3":{let n=(0,i.getParamValue)("tensorArrayId",e,t,r),s=(0,i.getParamValue)("tensor",e,t,r),a=(0,i.getParamValue)("lengths",e,t,r),o=r.getTensorArray(n.id);return o.split(a,s),[o.idTensor]}case"TensorArraySizeV3":{let n=(0,i.getParamValue)("tensorArrayId",e,t,r),s=r.getTensorArray(n.id);return[(0,a.scalar)(s.size(),"int32")]}case"TensorArrayCloseV3":{let n=(0,i.getParamValue)("tensorArrayId",e,t,r),s=r.getTensorArray(n.id);return s.clearAndClose(),[s.idTensor]}case"TensorListSetItem":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=(0,i.getParamValue)("index",e,t,r),a=(0,i.getParamValue)("tensor",e,t,r),o=r.getTensorList(n.id);return o.setItem(s,a),[o.idTensor]}case"TensorListGetItem":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=(0,i.getParamValue)("index",e,t,r),a=(0,i.getParamValue)("elementShape",e,t,r),o=(0,i.getParamValue)("elementDType",e,t,r);return[r.getTensorList(n.id).getItem(s,a,o)]}case"TensorListScatterV2":case"TensorListScatter":{let n=(0,i.getParamValue)("indices",e,t,r),s=(0,i.getParamValue)("tensor",e,t,r),a=(0,i.getParamValue)("elementShape",e,t,r),o=(0,i.getParamValue)("numElements",e,t,r),u=(0,l.scatter)(s,n,a,o);return r.addTensorList(u),[u.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let n,s=(0,i.getParamValue)("elementShape",e,t,r),a=(0,i.getParamValue)("elementDType",e,t,r);n="TensorListReserve"===e.op?"numElements":"maxNumElements";let o=(0,i.getParamValue)(n,e,t,r),u="TensorListReserve"===e.op?-1:o,p=(0,l.reserve)(s,a,o,u);return r.addTensorList(p),[p.idTensor]}case"TensorListGather":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=(0,i.getParamValue)("indices",e,t,r),a=(0,i.getParamValue)("elementShape",e,t,r),o=(0,i.getParamValue)("elementDType",e,t,r);return[r.getTensorList(n.id).gather(s,o,a)]}case"TensorListStack":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=(0,i.getParamValue)("elementShape",e,t,r),a=(0,i.getParamValue)("elementDType",e,t,r),o=(0,i.getParamValue)("numElements",e,t,r);return[r.getTensorList(n.id).stack(s,a,o)]}case"TensorListFromTensor":{let n=(0,i.getParamValue)("tensor",e,t,r),s=(0,i.getParamValue)("elementShape",e,t,r),a=(0,i.getParamValue)("elementDType",e,t,r),o=(0,l.fromTensor)(n,s,a);return r.addTensorList(o),[o.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=r.getTensorList(n.id),a=(0,i.getParamValue)("dtype",e,t,r),o=(0,i.getParamValue)("elementShape",e,t,r);return[s.concat(a,o)]}case"TensorListPushBack":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=(0,i.getParamValue)("tensor",e,t,r),a=r.getTensorList(n.id);return a.pushBack(s),[a.idTensor]}case"TensorListPopBack":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=(0,i.getParamValue)("elementShape",e,t,r),a=(0,i.getParamValue)("elementDType",e,t,r);return[r.getTensorList(n.id).popBack(s,a)]}case"TensorListSplit":{let n=(0,i.getParamValue)("tensor",e,t,r),s=(0,i.getParamValue)("elementShape",e,t,r),a=(0,i.getParamValue)("lengths",e,t,r),o=(0,l.split)(n,a,s);return r.addTensorList(o),[o.idTensor]}case"TensorListLength":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=r.getTensorList(n.id);return[(0,a.scalar)(s.size(),"int32")]}case"TensorListResize":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=(0,i.getParamValue)("size",e,t,r),a=r.getTensorList(n.id).resize(s);return r.addTensorList(a),[a.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},p="control"},{"@tensorflow/tfjs-core":"hADTC","../../executor/tensor_array":"1G3B1","../../executor/tensor_list":"ibPMh","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1G3B1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TensorArray",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./tensor_utils");class l{constructor(e,t,r,n,s,o,l){this.name=e,this.dtype=t,this.maxSize=r,this.elementShape=n,this.identicalElementShapes=s,this.dynamicSize=o,this.clearAfterRead=l,this.tensors=[],this.closed_=!1,this.idTensor=(0,a.scalar)(0),(0,a.keep)(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{null!=e&&e.has(t.tensor.id)||t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(e=>this.read(e))}write(e,t){if(this.closed_)throw Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let r=this.tensors[e]||{};if(t.dtype!==this.dtype)throw 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(0===this.size()&&(null==this.elementShape||0===this.elementShape.length)&&(this.elementShape=t.shape),(0,o.assertShapesMatchAllowUndefinedSize)(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),r.read)throw Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(r.written)throw Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);r.tensor=t,(0,a.keep)(t),r.written=!0,this.tensors[e]=r}writeMany(e,t){if(e.length!==t.length)throw Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((e,r)=>this.write(e,t[r]))}gather(e,t){if(t&&t!==this.dtype)throw Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let t=0;t<this.size();t++)e.push(t)}if(0===e.length)return(0,a.tensor)([],[0].concat(this.elementShape));let r=this.readMany(e);return(0,o.assertShapesMatchAllowUndefinedSize)(this.elementShape,r[0].shape,"TensorArray shape mismatch: "),(0,a.stack)(r,0)}concat(e){if(e&&e!==this.dtype)throw Error(`TensorArray dtype is ${this.dtype} but concat requested dtype ${e}`);if(0===this.size())return(0,a.tensor)([],[0].concat(this.elementShape));let t=[];for(let e=0;e<this.size();e++)t.push(e);let r=this.readMany(t);return(0,o.assertShapesMatchAllowUndefinedSize)(this.elementShape,r[0].shape,`TensorArray shape mismatch: tensor array shape (${this.elementShape}) vs first tensor shape (${r[0].shape})`),(0,a.concat)(r,0)}scatter(e,t){if(t.dtype!==this.dtype)throw Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);if(e.length!==t.shape[0])throw Error(`Expected len(indices) == tensor.shape[0], but saw: ${e.length} vs. ${t.shape[0]}`);let r=Math.max(...e);if(!this.dynamicSize&&r>=this.maxSize)throw Error(`Max index must be< array size (${r} vs. ${this.maxSize})`);this.writeMany(e,(0,a.unstack)(t,0))}split(e,t){if(t.dtype!==this.dtype)throw Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let r=0,n=e.map(e=>r+=e);if(r!==t.shape[0])throw Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is ${r}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw 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 s=0===r?0:t.size/r,o=[];(0,a.tidy)(()=>{t=(0,a.reshape)(t,[1,r,s]);for(let r=0;r<e.length;++r){let l=[0,0===r?0:n[r-1],0],i=[1,e[r],s];o[r]=(0,a.reshape)((0,a.slice)(t,l,i),this.elementShape)}return o});let l=[];for(let t=0;t<e.length;t++)l[t]=t;this.writeMany(l,o)}}},{"@tensorflow/tfjs-core":"hADTC","./tensor_utils":"ffUkT","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ffUkT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"assertShapesMatchAllowUndefinedSize",()=>o),s.export(r,"fullDefinedShape",()=>l),s.export(r,"inferElementShape",()=>i),s.export(r,"mergeElementShape",()=>u);var a=e("@tensorflow/tfjs-core");function o(e,t,r=""){if("number"!=typeof e&&"number"!=typeof t){a.util.assert(e.length===t.length,()=>r+` Shapes ${e} and ${t} must match`);for(let n=0;n<e.length;n++){let s=e[n],o=t[n];a.util.assert(s<0||o<0||s===o,()=>r+` Shapes ${e} and ${t} must match`)}}}function l(e){return!("number"==typeof e||e.some(e=>e<0))}function i(e,t,r){let n=u(e,r),s=!l(n);if(s&&0===t.length)throw Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${n}`);if(s&&t.forEach(e=>{n=u(e.shape,n)}),!l(n))throw Error(`Non-fully-defined elementShape: ${n}`);return n}function u(e,t){if("number"==typeof e)return t;if("number"==typeof t)return e;if(e.length!==t.length)throw Error(`Incompatible ranks during merge: ${e} vs. ${t}`);let r=[];for(let n=0;n<e.length;++n){let s=e[n],a=t[n];if(s>=0&&a>=0&&s!==a)throw Error(`Incompatible shape during merge: ${e} vs. ${t}`);r[n]=s>=0?s:a}return r}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ibPMh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TensorList",()=>l),s.export(r,"fromTensor",()=>i),s.export(r,"reserve",()=>u),s.export(r,"scatter",()=>p),s.export(r,"split",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./tensor_utils");class l{get id(){return this.idTensor.id}constructor(e,t,r,n=-1){this.tensors=e,this.elementShape=t,this.elementDtype=r,null!=e&&e.forEach(e=>{if(r!==e.dtype)throw Error(`Invalid data types; op elements ${r}, but list elements ${e.dtype}`);(0,o.assertShapesMatchAllowUndefinedSize)(t,e.shape,"TensorList shape mismatch: "),(0,a.keep)(e)}),this.idTensor=(0,a.scalar)(0),this.maxNumElements=n,(0,a.keep)(this.idTensor)}copy(){return new l([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{null!=e&&e.has(t.id)||t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,r=-1){if(t!==this.elementDtype)throw Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(-1!==r&&this.tensors.length!==r)throw Error(`Operation expected a list with ${r} elements but got a list with ${this.tensors.length} elements.`);(0,o.assertShapesMatchAllowUndefinedSize)(e,this.elementShape,"TensorList shape mismatch: ");let n=(0,o.inferElementShape)(this.elementShape,this.tensors,e);return(0,a.tidy)(()=>{let e=this.tensors.map(e=>(0,a.reshape)(e,n));return(0,a.stack)(e,0)})}popBack(e,t){if(t!==this.elementDtype)throw Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(0===this.size())throw Error("Trying to pop from an empty list.");let r=(0,o.inferElementShape)(this.elementShape,this.tensors,e),n=this.tensors.pop();return n.kept=!1,(0,o.assertShapesMatchAllowUndefinedSize)(n.shape,e,"TensorList shape mismatch: "),(0,a.reshape)(n,r)}pushBack(e){if(e.dtype!==this.elementDtype)throw Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if((0,o.assertShapesMatchAllowUndefinedSize)(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw Error("Trying to push element into a full list.");(0,a.keep)(e),this.tensors.push(e)}resize(e){if(e<0)throw Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(-1!==this.maxNumElements&&e>this.maxNumElements)throw Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);let t=new l([],this.elementShape,this.elementDtype,this.maxNumElements);t.tensors.length=e;for(let r=0;r<Math.min(this.tensors.length,e);++r)t.tensors[r]=this.tensors[r];return t}getItem(e,t,r){if(r!==this.elementDtype)throw Error(`Invalid data types; op elements ${r}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(null==this.tensors[e])throw Error(`element at index ${e} is null.`);(0,o.assertShapesMatchAllowUndefinedSize)(this.tensors[e].shape,t,"TensorList shape mismatch: ");let n=(0,o.inferElementShape)(this.elementShape,this.tensors,t);return(0,a.reshape)(this.tensors[e],n)}setItem(e,t){if(t.dtype!==this.elementDtype)throw Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||-1!==this.maxNumElements&&e>=this.maxNumElements)throw Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);(0,o.assertShapesMatchAllowUndefinedSize)(this.elementShape,t.shape,"TensorList shape mismatch: "),(0,a.keep)(t),null!=this.tensors[e]&&(this.tensors[e].kept=!1),this.tensors[e]=t}gather(e,t,r){if(t!==this.elementDtype)throw Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);(0,o.assertShapesMatchAllowUndefinedSize)(this.elementShape,r,"TensorList shape mismatch: "),e=e.slice(0,this.size());let n=(0,o.inferElementShape)(this.elementShape,this.tensors,r);return 0===e.length?(0,a.tensor)([],[0].concat(n)):(0,a.tidy)(()=>{let t=e.map(e=>(0,a.reshape)(this.tensors[e],n));return(0,a.stack)(t,0)})}concat(e,t){if(e&&e!==this.elementDtype)throw Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);(0,o.assertShapesMatchAllowUndefinedSize)(this.elementShape,t,"TensorList shape mismatch: ");let r=(0,o.inferElementShape)(this.elementShape,this.tensors,t);return 0===this.size()?(0,a.tensor)([],[0].concat(r)):(0,a.tidy)(()=>{let e=this.tensors.map(e=>(0,a.reshape)(e,r));return(0,a.concat)(e,0)})}}function i(e,t,r){let n=e.dtype;if(e.shape.length<1)throw Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==r)throw Error(`Invalid data types; op elements ${e.dtype}, but list elements ${r}`);let s=e.shape.slice(1);return(0,o.assertShapesMatchAllowUndefinedSize)(s,t,"TensorList shape mismatch: "),new l((0,a.unstack)(e),t,n)}function u(e,t,r,n){return new l([],e,t,n)}function p(e,t,r,n){if(t.length!==e.shape[0])throw Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let s=Math.max(...t);if(null!=n&&-1!==n&&s>=n)throw Error(`Max index must be< array size (${s} vs. ${n})`);let o=new l([],r,e.dtype,n),i=(0,a.unstack)(e,0);return t.forEach((e,t)=>{o.setItem(e,i[t])}),o}function c(e,t,r){let n=0,s=t.map(e=>n+=e);if(n!==e.shape[0])throw 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}`);let i=e.shape.slice(1),u=(0,o.mergeElementShape)(i,r),p=0===n?0:e.size/n,c=(0,a.tidy)(()=>{let r=[];e=(0,a.reshape)(e,[1,n,p]);for(let n=0;n<t.length;++n){let o=[0,0===n?0:s[n-1],0],l=[1,t[n],p];r[n]=(0,a.reshape)((0,a.slice)(e,o,l),u)}return e.dispose(),r}),d=new l([],r,e.dtype,t.length);for(let e=0;e<c.length;e++)d.setItem(e,c[e]);return d}},{"@tensorflow/tfjs-core":"hADTC","./tensor_utils":"ffUkT","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8v2C7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>i),s.export(r,"CATEGORY",()=>u);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");function l(e,t,r){let[n,s]=(0,o.getParamValue)("fusedOps",e,t,r),a="biasadd"===n,l="prelu"===s,i=(0,o.getParamValue)("numArgs",e,t,r);if(a){if(l&&2!==i)throw Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!l&&a&&1!==i)throw Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if("fusedbatchnorm"===n)throw Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let u=(0,o.getParamValue)("strides",e,t,r),p=(0,o.getPadding)(e,t,r),c=(0,o.getParamValue)("dataFormat",e,t,r).toUpperCase(),d=(0,o.getParamValue)("dilations",e,t,r),[f,h]=(0,o.getParamValue)("args",e,t,r);return a||(h=f,f=void 0),{stride:u,pad:p,dataFormat:c,dilations:d,biasArg:f,preluArg:h,activationFunc:s,leakyreluAlpha:(0,o.getParamValue)("leakyreluAlpha",e,t,r)}}let i=(e,t,r,n=a)=>{switch(e.op){case"Conv1D":{let s=(0,o.getParamValue)("stride",e,t,r),a=(0,o.getParamValue)("pad",e,t,r),l=(0,o.getParamValue)("dataFormat",e,t,r).toUpperCase(),i=(0,o.getParamValue)("dilation",e,t,r);return[n.conv1d((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("filter",e,t,r),s,a,l,i)]}case"Conv2D":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getPadding)(e,t,r),l=(0,o.getParamValue)("dataFormat",e,t,r).toUpperCase(),i=(0,o.getParamValue)("dilations",e,t,r);return[n.conv2d((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("filter",e,t,r),[s[1],s[2]],a,l,[i[1],i[2]])]}case"_FusedConv2D":{let{stride:s,pad:a,dataFormat:i,dilations:u,biasArg:p,preluArg:c,activationFunc:d,leakyreluAlpha:f}=l(e,t,r);return[n.fused.conv2d({x:(0,o.getParamValue)("x",e,t,r),filter:(0,o.getParamValue)("filter",e,t,r),strides:[s[1],s[2]],pad:a,dataFormat:i,dilations:[u[1],u[2]],bias:p,activation:d,preluActivationWeights:c,leakyreluAlpha:f})]}case"FusedDepthwiseConv2dNative":{let{stride:s,pad:a,dataFormat:i,dilations:u,biasArg:p,preluArg:c,activationFunc:d,leakyreluAlpha:f}=l(e,t,r);return[n.fused.depthwiseConv2d({x:(0,o.getParamValue)("x",e,t,r),filter:(0,o.getParamValue)("filter",e,t,r),strides:[s[1],s[2]],pad:a,dataFormat:i,dilations:[u[1],u[2]],bias:p,activation:d,preluActivationWeights:c,leakyreluAlpha:f})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let s=(0,o.getParamValue)("outputShape",e,t,r),a=(0,o.getParamValue)("strides",e,t,r),l=(0,o.getPadding)(e,t,r);return[n.conv2dTranspose((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("filter",e,t,r),s,[a[1],a[2]],l)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getPadding)(e,t,r),l=(0,o.getParamValue)("dilations",e,t,r),i=(0,o.getParamValue)("dataFormat",e,t,r).toUpperCase();return[n.depthwiseConv2d((0,o.getParamValue)("input",e,t,r),(0,o.getParamValue)("filter",e,t,r),[s[1],s[2]],a,i,[l[1],l[2]])]}case"Conv3D":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getParamValue)("pad",e,t,r),l=(0,o.getParamValue)("dataFormat",e,t,r).toUpperCase(),i=(0,o.getParamValue)("dilations",e,t,r);return[n.conv3d((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("filter",e,t,r),[s[1],s[2],s[3]],a,l,[i[1],i[2],i[3]])]}case"AvgPool":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getParamValue)("pad",e,t,r),l=(0,o.getParamValue)("kernelSize",e,t,r);return[n.avgPool((0,o.getParamValue)("x",e,t,r),[l[1],l[2]],[s[1],s[2]],a)]}case"MaxPool":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getParamValue)("pad",e,t,r),l=(0,o.getParamValue)("kernelSize",e,t,r);return[n.maxPool((0,o.getParamValue)("x",e,t,r),[l[1],l[2]],[s[1],s[2]],a)]}case"MaxPoolWithArgmax":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getParamValue)("pad",e,t,r),l=(0,o.getParamValue)("kernelSize",e,t,r),i=(0,o.getParamValue)("includeBatchInIndex",e,t,r),{result:u,indexes:p}=n.maxPoolWithArgmax((0,o.getParamValue)("x",e,t,r),[l[1],l[2]],[s[1],s[2]],a,i);return[u,p]}case"AvgPool3D":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getParamValue)("pad",e,t,r),l=(0,o.getParamValue)("kernelSize",e,t,r);return[n.avgPool3d((0,o.getParamValue)("x",e,t,r),[l[1],l[2],l[3]],[s[1],s[2],s[3]],a)]}case"MaxPool3D":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getParamValue)("pad",e,t,r),l=(0,o.getParamValue)("kernelSize",e,t,r);return[n.maxPool3d((0,o.getParamValue)("x",e,t,r),[l[1],l[2],l[3]],[s[1],s[2],s[3]],a)]}case"Dilation2D":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getParamValue)("pad",e,t,r),l=(0,o.getParamValue)("dilations",e,t,r),i=s[1],u=s[2],p=l[1],c=l[2];return[n.dilation2d((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("filter",e,t,r),[i,u],a,[p,c],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},u="convolution"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iZBgV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"Fill":{let s=(0,o.getParamValue)("shape",e,t,r),a=(0,o.getParamValue)("dtype",e,t,r),l=(0,o.getParamValue)("value",e,t,r);return[n.fill(s,l,a)]}case"LinSpace":{let s=(0,o.getParamValue)("start",e,t,r),a=(0,o.getParamValue)("stop",e,t,r),l=(0,o.getParamValue)("num",e,t,r);return[n.linspace(s,a,l)]}case"Multinomial":{let s=(0,o.getParamValue)("logits",e,t,r),a=(0,o.getParamValue)("numSamples",e,t,r),l=(0,o.getParamValue)("seed",e,t,r);return[n.multinomial(s,a,l)]}case"OneHot":{let s=(0,o.getParamValue)("indices",e,t,r),a=(0,o.getParamValue)("depth",e,t,r),l=(0,o.getParamValue)("onValue",e,t,r),i=(0,o.getParamValue)("offValue",e,t,r),u=(0,o.getParamValue)("dtype",e,t,r);return[n.oneHot(s,a,l,i,u)]}case"Ones":return[n.ones((0,o.getParamValue)("shape",e,t,r),(0,o.getParamValue)("dtype",e,t,r))];case"OnesLike":return[n.onesLike((0,o.getParamValue)("x",e,t,r))];case"RandomStandardNormal":return[n.randomStandardNormal((0,o.getParamValue)("shape",e,t,r),(0,o.getParamValue)("dtype",e,t,r),(0,o.getParamValue)("seed",e,t,r))];case"RandomUniform":return[n.randomUniform((0,o.getParamValue)("shape",e,t,r),(0,o.getParamValue)("minval",e,t,r),(0,o.getParamValue)("maxval",e,t,r),(0,o.getParamValue)("dtype",e,t,r))];case"RandomUniformInt":return[n.randomUniformInt((0,o.getParamValue)("shape",e,t,r),(0,o.getParamValue)("minval",e,t,r),(0,o.getParamValue)("maxval",e,t,r),(0,o.getParamValue)("seed",e,t,r))];case"Range":{let s=(0,o.getParamValue)("start",e,t,r),a=(0,o.getParamValue)("stop",e,t,r),l=(0,o.getParamValue)("step",e,t,r);return[n.range(s,a,l,(0,o.getParamValue)("dtype",e,t,r))]}case"TruncatedNormal":{let s=(0,o.getParamValue)("shape",e,t,r),a=(0,o.getParamValue)("mean",e,t,r),l=(0,o.getParamValue)("stdDev",e,t,r),i=(0,o.getParamValue)("seed",e,t,r);return[n.truncatedNormal(s,a,l,(0,o.getParamValue)("dtype",e,t,r),i)]}case"Zeros":return[n.zeros((0,o.getParamValue)("shape",e,t,r),(0,o.getParamValue)("dtype",e,t,r))];case"ZerosLike":return[n.zerosLike((0,o.getParamValue)("x",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="creation"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],boeiz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>i),s.export(r,"CATEGORY",()=>u);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");function l(e,t,r){let n=(0,o.getParamValue)("boxes",e,t,r),s=(0,o.getParamValue)("scores",e,t,r),a=(0,o.getParamValue)("maxOutputSize",e,t,r),l=(0,o.getParamValue)("iouThreshold",e,t,r);return{boxes:n,scores:s,maxOutputSize:a,iouThreshold:l,scoreThreshold:(0,o.getParamValue)("scoreThreshold",e,t,r),softNmsSigma:(0,o.getParamValue)("softNmsSigma",e,t,r)}}let i=async(e,t,r,n,s=a)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:n,scores:a,maxOutputSize:o,iouThreshold:i,scoreThreshold:u,softNmsSigma:p}=l(e,t,r),c=await s.image.nonMaxSuppressionWithScoreAsync(n,a,o,i,u,p);return[c.selectedIndices,c.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:n,scores:a,maxOutputSize:i,iouThreshold:u,scoreThreshold:p}=l(e,t,r),c=(0,o.getParamValue)("padToMaxOutputSize",e,t,r),d=await s.image.nonMaxSuppressionPaddedAsync(n,a,i,u,p,c);return[d.selectedIndices,d.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:n,scores:a,maxOutputSize:o,iouThreshold:i,scoreThreshold:u}=l(e,t,r);return[await s.image.nonMaxSuppressionAsync(n,a,o,i,u)]}case"Where":{let n=s.cast((0,o.getParamValue)("condition",e,t,r),"bool"),a=[await s.whereAsync(n)];return n.dispose(),a}case"ListDiff":return s.setdiff1dAsync((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("y",e,t,r));default:throw TypeError(`Node type ${e.op} is not implemented`)}},u="dynamic"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2Wwvd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"LowerBound":{let s=(0,o.getParamValue)("sortedSequence",e,t,r),a=(0,o.getParamValue)("values",e,t,r);return[n.lowerBound(s,a)]}case"TopKV2":{let s=(0,o.getParamValue)("x",e,t,r),a=(0,o.getParamValue)("k",e,t,r),l=(0,o.getParamValue)("sorted",e,t,r),i=n.topk(s,a,l);return[i.values,i.indices]}case"UpperBound":{let s=(0,o.getParamValue)("sortedSequence",e,t,r),a=(0,o.getParamValue)("values",e,t,r);return[n.upperBound(s,a)]}case"Unique":{let s=(0,o.getParamValue)("x",e,t,r),a=n.unique(s);return[a.values,a.indices]}case"UniqueV2":{let s=(0,o.getParamValue)("x",e,t,r),a=(0,o.getParamValue)("axis",e,t,r),l=n.unique(s,a);return[l.values,l.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="evaluation"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7NhkA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let s=(0,o.getParamValue)("default",e,t,r);return[(0,o.getTensor)(e.name,t,r)||s];case"Placeholder":return[(0,o.getTensor)(e.name,t,r)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let n=(0,o.getParamValue)("x",e,t,r);return[(0,o.cloneTensor)(n)]}case"IdentityN":return(0,o.getParamValue)("x",e,t,r).map(e=>(0,o.cloneTensor)(e));case"Snapshot":let l=(0,o.getParamValue)("x",e,t,r);return[(0,o.cloneTensor)(l)];case"Shape":return[n.tensor1d((0,o.getParamValue)("x",e,t,r).shape,"int32")];case"ShapeN":return(0,o.getParamValue)("x",e,t,r).map(e=>n.tensor1d(e.shape));case"Size":return[n.scalar((0,o.getParamValue)("x",e,t,r).size,"int32")];case"Rank":return[n.scalar((0,o.getParamValue)("x",e,t,r).rank,"int32")];case"NoOp":return[n.scalar(1)];case"Print":let i=(0,o.getParamValue)("x",e,t,r),u=(0,o.getParamValue)("data",e,t,r),p=(0,o.getParamValue)("message",e,t,r),c=(0,o.getParamValue)("summarize",e,t,r);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(p);for(let e=0;e<u.length;e++)console.log(Array.prototype.slice.call(u[e].dataSync()).slice(0,c));return[i];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="graph"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8aJJs":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("../../executor/hash_table"),o=e("./utils");let l=async(e,t,r,n)=>{switch(e.op){case"HashTable":case"HashTableV2":{let s=n.getHashTableHandleByName(e.name);if(null!=s)return[s];{let s=(0,o.getParamValue)("keyDType",e,t,r),l=(0,o.getParamValue)("valueDType",e,t,r),i=new(0,a.HashTable)(s,l);return n.addHashTable(e.name,i),[i.handle]}}case"InitializeTable":case"InitializeTableV2":case"LookupTableImport":case"LookupTableImportV2":{let s=(0,o.getParamValue)("tableHandle",e,t,r,n),a=(0,o.getParamValue)("keys",e,t,r),l=(0,o.getParamValue)("values",e,t,r),i=n.getHashTableById(s.id);return[await i.import(a,l)]}case"LookupTableFind":case"LookupTableFindV2":{let s=(0,o.getParamValue)("tableHandle",e,t,r,n),a=(0,o.getParamValue)("keys",e,t,r),l=(0,o.getParamValue)("defaultValue",e,t,r),i=n.getHashTableById(s.id);return[await i.find(a,l)]}case"LookupTableSize":case"LookupTableSizeV2":{let s=(0,o.getParamValue)("tableHandle",e,t,r,n);return[n.getHashTableById(s.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="hash_table"},{"../../executor/hash_table":"3eJW4","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3eJW4":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"HashTable",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter");class l{get id(){return this.handle.id}constructor(e,t){this.keyDType=e,this.valueDType=t,this.handle=(0,a.scalar)(0),this.tensorMap=new Map,(0,a.keep)(this.handle)}clearAndClose(){this.tensorMap.forEach(e=>e.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return o.scalar(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);let r=await e.data();return this.tensorMap.forEach(e=>e.dispose()),this.tensorMap.clear(),(0,a.tidy)(()=>{let e=(0,a.unstack)(t),n=r.length,s=e.length;a.util.assert(n===s,()=>`The number of elements doesn't match, keys has ${n} elements, the values has ${s} elements.`);for(let t=0;t<n;t++){let n=r[t],s=e[t];(0,a.keep)(s),this.tensorMap.set(n,s)}return this.handle})}async find(e,t){this.checkKeyAndValueTensor(e,t);let r=await e.data();return(0,a.tidy)(()=>{let e=[];for(let n=0;n<r.length;n++){let s=r[n],a=this.findWithDefault(s,t);e.push(a)}return(0,a.stack)(e)})}findWithDefault(e,t){let r=this.tensorMap.get(e);return null!=r?r:t}checkKeyAndValueTensor(e,t){if(e.dtype!==this.keyDType)throw Error(`Expect key dtype ${this.keyDType}, but got ${e.dtype}`);if(t.dtype!==this.valueDType)throw Error(`Expect value dtype ${this.valueDType}, but got ${t.dtype}`)}}},{"@tensorflow/tfjs-core":"hADTC","@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bjBkW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"ResizeBilinear":{let s=(0,o.getParamValue)("images",e,t,r),a=(0,o.getParamValue)("size",e,t,r),l=(0,o.getParamValue)("alignCorners",e,t,r),i=(0,o.getParamValue)("halfPixelCenters",e,t,r);return[n.image.resizeBilinear(s,[a[0],a[1]],l,i)]}case"ResizeNearestNeighbor":{let s=(0,o.getParamValue)("images",e,t,r),a=(0,o.getParamValue)("size",e,t,r),l=(0,o.getParamValue)("alignCorners",e,t,r),i=(0,o.getParamValue)("halfPixelCenters",e,t,r);return[n.image.resizeNearestNeighbor(s,[a[0],a[1]],l,i)]}case"CropAndResize":{let s=(0,o.getParamValue)("image",e,t,r),a=(0,o.getParamValue)("boxes",e,t,r),l=(0,o.getParamValue)("boxInd",e,t,r),i=(0,o.getParamValue)("cropSize",e,t,r),u=(0,o.getParamValue)("method",e,t,r),p=(0,o.getParamValue)("extrapolationValue",e,t,r);return[n.image.cropAndResize(s,a,l,i,u,p)]}case"ImageProjectiveTransformV3":{let s=(0,o.getParamValue)("images",e,t,r),a=(0,o.getParamValue)("transforms",e,t,r),l=(0,o.getParamValue)("outputShape",e,t,r),i=(0,o.getParamValue)("fillValue",e,t,r),u=(0,o.getParamValue)("interpolation",e,t,r),p=(0,o.getParamValue)("fillMode",e,t,r);return[n.image.transform(s,a,u.toLowerCase(),p.toLowerCase(),i,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="image"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bLfko:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"Equal":return[n.equal((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"NotEqual":return[n.notEqual((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"Greater":return[n.greater((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"GreaterEqual":return[n.greaterEqual((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"Less":return[n.less((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"LessEqual":return[n.lessEqual((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"LogicalAnd":return[n.logicalAnd((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"LogicalNot":return[n.logicalNot((0,o.getParamValue)("a",e,t,r))];case"LogicalOr":return[n.logicalOr((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"Select":case"SelectV2":return[n.where((0,o.getParamValue)("condition",e,t,r),(0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"BitwiseAnd":return[n.bitwiseAnd((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="logical"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9dcJo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[n.matMul((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r),(0,o.getParamValue)("transposeA",e,t,r),(0,o.getParamValue)("transposeB",e,t,r))];case"Einsum":return[n.einsum((0,o.getParamValue)("equation",e,t,r),...(0,o.getParamValue)("tensors",e,t,r))];case"Transpose":return[n.transpose((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("perm",e,t,r))];case"_FusedMatMul":let[s,l]=(0,o.getParamValue)("fusedOps",e,t,r),i="prelu"===l,u=(0,o.getParamValue)("numArgs",e,t,r),p=(0,o.getParamValue)("leakyreluAlpha",e,t,r);if("biasadd"===s){if(i&&2!==u)throw Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&1!==u)throw Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[c,d]=(0,o.getParamValue)("args",e,t,r);return[n.fused.matMul({a:(0,o.getParamValue)("a",e,t,r),b:(0,o.getParamValue)("b",e,t,r),transposeA:(0,o.getParamValue)("transposeA",e,t,r),transposeB:(0,o.getParamValue)("transposeB",e,t,r),bias:c,activation:l,preluActivationWeights:d,leakyreluAlpha:p})];case"MatrixBandPart":return[n.linalg.bandPart((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("numLower",e,t,r),(0,o.getParamValue)("numUpper",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="matrices"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ijF4h:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"EuclideanNorm":return[n.euclideanNorm((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("axis",e,t,r),(0,o.getParamValue)("keepDims",e,t,r))];case"FusedBatchNorm":case"FusedBatchNormV2":case"FusedBatchNormV3":return[n.batchNorm((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("mean",e,t,r),(0,o.getParamValue)("variance",e,t,r),(0,o.getParamValue)("offset",e,t,r),(0,o.getParamValue)("scale",e,t,r),(0,o.getParamValue)("epsilon",e,t,r))];case"LRN":return[n.localResponseNormalization((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("radius",e,t,r),(0,o.getParamValue)("bias",e,t,r),(0,o.getParamValue)("alpha",e,t,r),(0,o.getParamValue)("beta",e,t,r))];case"Softmax":return[n.softmax((0,o.getParamValue)("x",e,t,r))];case"LogSoftmax":return[n.logSoftmax((0,o.getParamValue)("x",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="normalization"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2NxHF":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"RaggedGather":{let{outputNestedSplits:s,outputDenseValues:a}=n.raggedGather((0,o.getParamValue)("paramsNestedSplits",e,t,r),(0,o.getParamValue)("paramsDenseValues",e,t,r),(0,o.getParamValue)("indices",e,t,r),(0,o.getParamValue)("outputRaggedRank",e,t,r));return s.concat(a)}case"RaggedRange":{let{rtNestedSplits:s,rtDenseValues:a}=n.raggedRange((0,o.getParamValue)("starts",e,t,r),(0,o.getParamValue)("limits",e,t,r),(0,o.getParamValue)("splits",e,t,r));return[s,a]}case"RaggedTensorToTensor":return[n.raggedTensorToTensor((0,o.getParamValue)("shape",e,t,r),(0,o.getParamValue)("values",e,t,r),(0,o.getParamValue)("defaultValue",e,t,r),(0,o.getParamValue)("rowPartitionTensors",e,t,r),(0,o.getParamValue)("rowPartitionTypes",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="ragged"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aPxOS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"Max":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("keepDims",e,t,r);return[n.max((0,o.getParamValue)("x",e,t,r),s,a)]}case"Mean":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("keepDims",e,t,r);return[n.mean((0,o.getParamValue)("x",e,t,r),s,a)]}case"Min":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("keepDims",e,t,r);return[n.min((0,o.getParamValue)("x",e,t,r),s,a)]}case"Sum":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("keepDims",e,t,r);return[n.sum((0,o.getParamValue)("x",e,t,r),s,a)]}case"All":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("keepDims",e,t,r);return[n.all((0,o.getParamValue)("x",e,t,r),s,a)]}case"Any":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("keepDims",e,t,r);return[n.any((0,o.getParamValue)("x",e,t,r),s,a)]}case"ArgMax":{let s=(0,o.getParamValue)("axis",e,t,r);return[n.argMax((0,o.getParamValue)("x",e,t,r),s)]}case"ArgMin":{let s=(0,o.getParamValue)("axis",e,t,r);return[n.argMin((0,o.getParamValue)("x",e,t,r),s)]}case"Prod":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("keepDims",e,t,r);return[n.prod((0,o.getParamValue)("x",e,t,r),s,a)]}case"Cumprod":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("exclusive",e,t,r),l=(0,o.getParamValue)("reverse",e,t,r);return[n.cumprod((0,o.getParamValue)("x",e,t,r),s,a,l)]}case"Cumsum":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("exclusive",e,t,r),l=(0,o.getParamValue)("reverse",e,t,r);return[n.cumsum((0,o.getParamValue)("x",e,t,r),s,a,l)]}case"Bincount":let s=(0,o.getParamValue)("x",e,t,r),l=(0,o.getParamValue)("weights",e,t,r),i=(0,o.getParamValue)("size",e,t,r);return[n.bincount(s,l,i)];case"DenseBincount":{let s=(0,o.getParamValue)("x",e,t,r),a=(0,o.getParamValue)("weights",e,t,r),l=(0,o.getParamValue)("size",e,t,r),i=(0,o.getParamValue)("binaryOutput",e,t,r);return[n.denseBincount(s,a,l,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="reduction"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jugxk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>i),s.export(r,"CATEGORY",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),l=e("./utils");let i=(e,t,r,n=o)=>{switch(e.op){case"ConcatV2":case"Concat":{let s=(0,l.getParamValue)("n",e,t,r),a=(0,l.getParamValue)("axis",e,t,r),o=(0,l.getParamValue)("tensors",e,t,r);return o=o.slice(0,s),[n.concat(o,a)]}case"Gather":{let s=(0,l.getParamValue)("x",e,t,r),a=(0,l.getParamValue)("indices",e,t,r);return[n.gather(s,n.cast(a,"int32"),0)]}case"GatherV2":{let s=(0,l.getParamValue)("axis",e,t,r),a=(0,l.getParamValue)("batchDims",e,t,r),o=(0,l.getParamValue)("x",e,t,r),i=(0,l.getParamValue)("indices",e,t,r);return[n.gather(o,n.cast(i,"int32"),s,a)]}case"Reverse":{let s=(0,l.getParamValue)("dims",e,t,r),a=[];for(let e=0;e<s.length;e++)s[e]&&a.push(e);let o=(0,l.getParamValue)("x",e,t,r);return[n.reverse(o,a)]}case"ReverseV2":{let s=(0,l.getParamValue)("axis",e,t,r),a=(0,l.getParamValue)("x",e,t,r);return[n.reverse(a,s)]}case"Slice":{let s=(0,l.getParamValue)("begin",e,t,r),a=(0,l.getParamValue)("size",e,t,r);return[n.slice((0,l.getParamValue)("x",e,t,r),s,a)]}case"StridedSlice":{let s=(0,l.getParamValue)("begin",e,t,r),a=(0,l.getParamValue)("end",e,t,r),o=(0,l.getParamValue)("strides",e,t,r),i=(0,l.getParamValue)("beginMask",e,t,r),u=(0,l.getParamValue)("endMask",e,t,r),p=(0,l.getParamValue)("ellipsisMask",e,t,r),c=(0,l.getParamValue)("newAxisMask",e,t,r),d=(0,l.getParamValue)("shrinkAxisMask",e,t,r),f=(0,l.getParamValue)("x",e,t,r);return[n.stridedSlice(f,s,a,o,i,u,p,c,d)]}case"Pack":return(0,a.tidy)(()=>{let s=(0,l.getParamValue)("axis",e,t,r),o=(0,l.getParamValue)("tensors",e,t,r),i=o[0].shape,u=n.squeeze(o[0]).shape,p=o.map(e=>{let t=a.util.arraysEqual(e.shape,i);if(!t&&!a.util.arraysEqual(n.squeeze(e).shape,u))throw Error("the input tensors shape does not match");return t?e:n.reshape(e,i)});return[n.stack(p,s)]});case"Unpack":{let s=(0,l.getParamValue)("axis",e,t,r),a=(0,l.getParamValue)("tensor",e,t,r);return n.unstack(a,s)}case"Tile":{let s=(0,l.getParamValue)("reps",e,t,r);return[n.tile((0,l.getParamValue)("x",e,t,r),s)]}case"Split":case"SplitV":{let s=(0,l.getParamValue)("axis",e,t,r),a=(0,l.getParamValue)("numOrSizeSplits",e,t,r),o=(0,l.getParamValue)("x",e,t,r);return n.split(o,a,s)}case"ScatterNd":{let s=(0,l.getParamValue)("indices",e,t,r),a=(0,l.getParamValue)("values",e,t,r),o=(0,l.getParamValue)("shape",e,t,r);return[n.scatterND(s,a,o)]}case"GatherNd":{let s=(0,l.getParamValue)("x",e,t,r),a=(0,l.getParamValue)("indices",e,t,r);return[n.gatherND(s,a)]}case"SparseToDense":{let s=(0,l.getParamValue)("sparseIndices",e,t,r),a=(0,l.getParamValue)("outputShape",e,t,r),o=(0,l.getParamValue)("sparseValues",e,t,r),i=(0,l.getParamValue)("defaultValue",e,t,r);return[n.sparseToDense(s,o,a,o.dtype===i.dtype?i:n.cast(i,o.dtype))]}case"TensorScatterUpdate":{let s=(0,l.getParamValue)("indices",e,t,r),a=(0,l.getParamValue)("values",e,t,r),o=(0,l.getParamValue)("tensor",e,t,r);return[n.tensorScatterUpdate(o,s,a)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},u="slice_join"},{"@tensorflow/tfjs-core":"hADTC","@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bo1UF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"SparseFillEmptyRows":{let{outputIndices:s,outputValues:a,emptyRowIndicator:l,reverseIndexMap:i}=n.sparse.sparseFillEmptyRows((0,o.getParamValue)("indices",e,t,r),(0,o.getParamValue)("values",e,t,r),(0,o.getParamValue)("denseShape",e,t,r),(0,o.getParamValue)("defaultValue",e,t,r));return[s,a,l,i]}case"SparseReshape":{let{outputIndices:s,outputShape:a}=n.sparse.sparseReshape((0,o.getParamValue)("inputIndices",e,t,r),(0,o.getParamValue)("inputShape",e,t,r),(0,o.getParamValue)("newShape",e,t,r));return[s,a]}case"SparseSegmentMean":return[n.sparse.sparseSegmentMean((0,o.getParamValue)("data",e,t,r),(0,o.getParamValue)("indices",e,t,r),(0,o.getParamValue)("segmentIds",e,t,r))];case"SparseSegmentSum":return[n.sparse.sparseSegmentSum((0,o.getParamValue)("data",e,t,r),(0,o.getParamValue)("indices",e,t,r),(0,o.getParamValue)("segmentIds",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="sparse"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],a9k3w:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"FFT":return[n.fft((0,o.getParamValue)("x",e,t,r))];case"IFFT":return[n.ifft((0,o.getParamValue)("x",e,t,r))];case"RFFT":return[n.rfft((0,o.getParamValue)("x",e,t,r))];case"IRFFT":return[n.irfft((0,o.getParamValue)("x",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="spectral"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iQDRL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"StaticRegexReplace":return[n.string.staticRegexReplace((0,o.getParamValue)("input",e,t,r),(0,o.getParamValue)("pattern",e,t,r),(0,o.getParamValue)("rewrite",e,t,r),(0,o.getParamValue)("replaceGlobal",e,t,r))];case"StringNGrams":{let{nGrams:s,nGramsSplits:a}=n.string.stringNGrams((0,o.getParamValue)("data",e,t,r),(0,o.getParamValue)("dataSplits",e,t,r),(0,o.getParamValue)("separator",e,t,r),(0,o.getParamValue)("nGramWidths",e,t,r),(0,o.getParamValue)("leftPad",e,t,r),(0,o.getParamValue)("rightPad",e,t,r),(0,o.getParamValue)("padWidth",e,t,r),(0,o.getParamValue)("preserveShortSequences",e,t,r));return[s,a]}case"StringSplit":{let{indices:s,values:a,shape:l}=n.string.stringSplit((0,o.getParamValue)("input",e,t,r),(0,o.getParamValue)("delimiter",e,t,r),(0,o.getParamValue)("skipEmpty",e,t,r));return[s,a,l]}case"StringToHashBucketFast":return[n.string.stringToHashBucketFast((0,o.getParamValue)("input",e,t,r),(0,o.getParamValue)("numBuckets",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="string"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lGcIS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"Cast":return[n.cast((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("dtype",e,t,r))];case"ExpandDims":{let s=(0,o.getParamValue)("axis",e,t,r);return[n.expandDims((0,o.getParamValue)("x",e,t,r),s)]}case"Squeeze":{let s=(0,o.getParamValue)("axis",e,t,r);return[n.squeeze((0,o.getParamValue)("x",e,t,r),s)]}case"Reshape":return[n.reshape((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("shape",e,t,r))];case"EnsureShape":return[n.ensureShape((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("shape",e,t,r))];case"MirrorPad":return[n.mirrorPad((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("padding",e,t,r),(0,o.getParamValue)("mode",e,t,r))];case"PadV2":case"Pad":return[n.pad((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("padding",e,t,r),(0,o.getParamValue)("constantValue",e,t,r))];case"SpaceToBatchND":{let s=(0,o.getParamValue)("blockShape",e,t,r),a=(0,o.getParamValue)("paddings",e,t,r);return[n.spaceToBatchND((0,o.getParamValue)("x",e,t,r),s,a)]}case"BatchToSpaceND":{let s=(0,o.getParamValue)("blockShape",e,t,r),a=(0,o.getParamValue)("crops",e,t,r);return[n.batchToSpaceND((0,o.getParamValue)("x",e,t,r),s,a)]}case"DepthToSpace":{let s=(0,o.getParamValue)("blockSize",e,t,r),a=(0,o.getParamValue)("dataFormat",e,t,r).toUpperCase();return[n.depthToSpace((0,o.getParamValue)("x",e,t,r),s,a)]}case"BroadcastTo":return[n.broadcastTo((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("shape",e,t,r))];case"BroadcastArgs":return[n.broadcastArgs((0,o.getParamValue)("s0",e,t,r),(0,o.getParamValue)("s1",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="transformation"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"7UYmk","./utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],RqD6m:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ExecutionContext",()=>a);class a{constructor(e={},t={},r={},n={},s){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=r,this.functionMap=n,this.parseNodeNameCache=s,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;t<this.contexts.length-1;t++){let r=this.contexts.slice(0,this.contexts.length-t);e.push(this.contextIdforContexts(r))}e.push(""),this._currentContextIds=e}contextIdforContexts(e){return e?e.map(e=>0===e.id&&0===e.iterationId?"":`${e.frameName}-${e.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw 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 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)}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kqHTr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getExecutionSubgraph",()=>o),s.export(r,"getNodesInTopologicalOrder",()=>l),s.export(r,"getNodeLiveUntilMap",()=>u),s.export(r,"isControlFlow",()=>f),s.export(r,"isDynamicShape",()=>h),s.export(r,"isHashTable",()=>m);var a=e("../operations/executors/utils");function o(e,t,r,n){let s=new Set,o=[],l=null,i=null,u=new Set,p=new Set(Object.keys(e).map(e=>(0,a.parseNodeName)(e)[0])),c=new Set((n=n||[]).map(e=>(0,a.parseNodeName)(e.name)[0])),d=[...t];for(;d.length>0;){let e=d.pop();if((f(e)||h(e)||m(e))&&null==l&&(i=(l=e).children.map(e=>e.name).filter(e=>s.has(e))),s.add(e.name),!(null!=r[e.name]||p.has(e.name)||c.has(e.name))){if(0===e.inputs.length){o.push(e.name);continue}e.inputs.forEach(e=>{u.has(e.name)||(u.add(e.name),d.push(e))})}}return{inputs:e,outputs:t,usedNodes:s,missingInputs:o,dynamicNode:l,syncInputs:i}}function l(e,t){let{usedNodes:r,inputs:n}=t,s=Object.keys(n).map(e=>(0,a.parseNodeName)(e)[0]).map(t=>e.nodes[t]),o=e.initNodes||[],l=e=>r.has("string"==typeof e?e:e.name);function u(e){return[...new Map(e.map(e=>[e.name,e])).values()]}let p=u([...s,...e.weights,...o]).filter(l),c=u([...p,...Object.values(e.nodes)]).filter(l),d=new Map(c.map(e=>[e.name,e])),f={};for(let e of c)for(let t of(f[e.name]=f[e.name]||0,e.children))l(t)||(f[t.name]=1/0),f[t.name]=(f[t.name]||0)+1;let h=Object.entries(f).filter(([,e])=>0===e).map(([e])=>e),m=[...h];for(;h.length>0;){let e=h.pop();for(let t of d.get(e).children.filter(l))0==--f[t.name]&&(m.push(t.name),h.push(t.name))}let g=function(e,t){let r=new Map(e.map(e=>[e.name,e])),n=t.map(e=>e.name),s=new Set(n);for(;n.length>0;){let e=n.pop();for(let t of r.get(e).children)!r.has(t.name)||s.has(t.name)||(s.add(t.name),n.push(t.name))}return e.filter(e=>s.has(e.name))}(m.map(e=>d.get(e)),p);return function(e,t){let r=new Map(e.map((e,t)=>[e.name,t])),n=new Set(t.map(e=>e.name)),s=e=>n.has("string"==typeof e?e:e.name),a=new Set(e.map(e=>e.name)),o=e=>a.has("string"==typeof e?e:e.name);for(let t of e){for(let e of t.children.filter(o)){if(!r.has(e.name))throw new i(`Child ${e.name} of node ${t.name} is unreachable.`);if(r.get(t.name)>r.get(e.name))throw new i(`Node ${t.name} is scheduled to run after its child ${e.name}.`)}if(!s(t))for(let e of t.inputs){if(!r.has(e.name))throw new i(`Input ${e.name} of node ${t.name} is unreachable.`);if(r.get(e.name)>r.get(t.name))throw new i(`Node ${t.name} is scheduled to run before its input ${e.name}.`)}}}(g,p),g}class i extends Error{constructor(e){super(`NodesExecutionOrderError: ${e}`)}}function u(e){let t=new Map(e.map((e,t)=>[e.name,t])),r=Number.MAX_SAFE_INTEGER,n=e.map((e,t)=>f(e)?r:t),s=e=>{let r=n[t.get(e.name)];return null==r?-1:r},a=e.map((e,t)=>e.children.map(s).reduce((e,t)=>Math.max(e,t),n[t])),o=new Map;for(let t=0;t<e.length;++t){let n=a[t];if(n===r)continue;let s=e[t],l=e[n];o.has(l.name)||o.set(l.name,[]),o.get(l.name).push(s)}return o}let p=new Set(["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"]),c=new Set(["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"]),d=new Set(["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"]);function f(e){return p.has(e.op)}function h(e){return c.has(e.op)}function m(e){return d.has(e.op)}},{"../operations/executors/utils":"5HlwR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"90eK8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResourceManager",()=>a);class a{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]}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ahnqu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version",()=>a);let a="4.22.0"},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3OB47":[function(e,t,r,n){(function(){function e(e){var t=0;return function(){return t<e.length?{done:!1,value:e[t++]}:{done:!0}}}var t,r="function"==typeof Object.defineProperties?Object.defineProperty:function(e,t,r){return e==Array.prototype||e==Object.prototype||(e[t]=r.value),e},n=function(e){e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var t=0;t<e.length;++t){var r=e[t];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")}(this);function s(e,t){if(t)e:{var s=n;e=e.split(".");for(var a=0;a<e.length-1;a++){var o=e[a];if(!(o in s))break e;s=s[o]}(t=t(a=s[e=e[e.length-1]]))!=a&&null!=t&&r(s,e,{configurable:!0,writable:!0,value:t})}}function a(t){var r="undefined"!=typeof Symbol&&Symbol.iterator&&t[Symbol.iterator];return r?r.call(t):{next:e(t)}}function o(e){if(!(e instanceof Array)){e=a(e);for(var t,r=[];!(t=e.next()).done;)r.push(t.value);e=r}return e}s("Symbol",function(e){function t(e,t){this.h=e,r(this,"description",{configurable:!0,writable:!0,value:t})}if(e)return e;t.prototype.toString=function(){return this.h};var n="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",s=0;return function e(r){if(this instanceof e)throw TypeError("Symbol is not a constructor");return new t(n+(r||"")+"_"+s++,r)}}),s("Symbol.iterator",function(t){if(t)return t;t=Symbol("Symbol.iterator");for(var s="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),a=0;a<s.length;a++){var o=n[s[a]];"function"==typeof o&&"function"!=typeof o.prototype[t]&&r(o.prototype,t,{configurable:!0,writable:!0,value:function(){var t;return(t={next:t=e(this)})[Symbol.iterator]=function(){return this},t}})}return t});var l="function"==typeof Object.assign?Object.assign:function(e,t){for(var r=1;r<arguments.length;r++){var n=arguments[r];if(n)for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e};s("Object.assign",function(e){return e||l});var i,u,p="function"==typeof Object.create?Object.create:function(e){function t(){}return t.prototype=e,new t};if("function"==typeof Object.setPrototypeOf)u=Object.setPrototypeOf;else{e:{var c={};try{c.__proto__={a:!0},Z=c.a;break e}catch(e){}Z=!1}u=Z?function(e,t){if(e.__proto__=t,e.__proto__!==t)throw TypeError(e+" is not extensible");return e}:null}var d=u;function f(e,t){if(e.prototype=p(t.prototype),e.prototype.constructor=e,d)d(e,t);else for(var r in t)if("prototype"!=r)if(Object.defineProperties){var n=Object.getOwnPropertyDescriptor(t,r);n&&Object.defineProperty(e,r,n)}else e[r]=t[r];e.za=t.prototype}function h(){this.m=!1,this.j=null,this.i=void 0,this.h=1,this.v=this.s=0,this.l=null}function m(e){if(e.m)throw TypeError("Generator is already running");e.m=!0}function g(e,t){e.l={ma:t,na:!0},e.h=e.s||e.v}function x(e,t,r){return e.h=r,{value:t}}function v(e){this.h=new h,this.i=e}function y(e,t,r,n){try{var s=t.call(e.h.j,r);if(!(s instanceof Object))throw TypeError("Iterator result "+s+" is not an object");if(!s.done)return e.h.m=!1,s;var a=s.value}catch(t){return e.h.j=null,g(e.h,t),_(e)}return e.h.j=null,n.call(e.h,a),_(e)}function _(e){for(;e.h.h;)try{var t=e.i(e.h);if(t)return e.h.m=!1,{value:t.value,done:!1}}catch(t){e.h.i=void 0,g(e.h,t)}if(e.h.m=!1,e.h.l){if(t=e.h.l,e.h.l=null,t.na)throw t.ma;return{value:t.return,done:!0}}return{value:void 0,done:!0}}function b(e){this.next=function(t){return m(e.h),e.h.j?t=y(e,e.h.j.next,t,e.h.u):(e.h.u(t),t=_(e)),t},this.throw=function(t){return m(e.h),e.h.j?t=y(e,e.h.j.throw,t,e.h.u):(g(e.h,t),t=_(e)),t},this.return=function(t){var r;return m(e.h),(r=e.h.j)?y(e,"return"in r?r.return:function(e){return{value:e,done:!0}},t,e.h.return):(e.h.return(t),_(e))},this[Symbol.iterator]=function(){return this}}function k(e){var t=new b(new v(e));function r(e){return t.next(e)}function n(e){return t.throw(e)}return new Promise(function(e,s){!function t(a){a.done?e(a.value):Promise.resolve(a.value).then(r,n).then(t,s)}(t.next())})}function T(e){return e||Array.prototype.fill}h.prototype.u=function(e){this.i=e},h.prototype.return=function(e){this.l={return:e},this.h=this.v},s("Promise",function(e){function t(e){this.i=0,this.j=void 0,this.h=[],this.u=!1;var t=this.l();try{e(t.resolve,t.reject)}catch(e){t.reject(e)}}function r(){this.h=null}function s(e){return e instanceof t?e:new t(function(t){t(e)})}if(e)return e;r.prototype.i=function(e){if(null==this.h){this.h=[];var t=this;this.j(function(){t.m()})}this.h.push(e)};var o=n.setTimeout;r.prototype.j=function(e){o(e,0)},r.prototype.m=function(){for(;this.h&&this.h.length;){var e=this.h;this.h=[];for(var t=0;t<e.length;++t){var r=e[t];e[t]=null;try{r()}catch(e){this.l(e)}}}this.h=null},r.prototype.l=function(e){this.j(function(){throw e})},t.prototype.l=function(){function e(e){return function(n){r||(r=!0,e.call(t,n))}}var t=this,r=!1;return{resolve:e(this.I),reject:e(this.m)}},t.prototype.I=function(e){if(e===this)this.m(TypeError("A Promise cannot resolve to itself"));else if(e instanceof t)this.L(e);else{switch(typeof e){case"object":var r=null!=e;break;case"function":r=!0;break;default:r=!1}r?this.F(e):this.s(e)}},t.prototype.F=function(e){var t=void 0;try{t=e.then}catch(e){this.m(e);return}"function"==typeof t?this.M(t,e):this.s(e)},t.prototype.m=function(e){this.v(2,e)},t.prototype.s=function(e){this.v(1,e)},t.prototype.v=function(e,t){if(0!=this.i)throw Error("Cannot settle("+e+", "+t+"): Promise already settled in state"+this.i);this.i=e,this.j=t,2===this.i&&this.K(),this.H()},t.prototype.K=function(){var e=this;o(function(){if(e.D()){var t=n.console;void 0!==t&&t.error(e.j)}},1)},t.prototype.D=function(){if(this.u)return!1;var e=n.CustomEvent,t=n.Event,r=n.dispatchEvent;return void 0===r||("function"==typeof e?e=new e("unhandledrejection",{cancelable:!0}):"function"==typeof t?e=new t("unhandledrejection",{cancelable:!0}):(e=n.document.createEvent("CustomEvent")).initCustomEvent("unhandledrejection",!1,!0,e),e.promise=this,e.reason=this.j,r(e))},t.prototype.H=function(){if(null!=this.h){for(var e=0;e<this.h.length;++e)l.i(this.h[e]);this.h=null}};var l=new r;return t.prototype.L=function(e){var t=this.l();e.T(t.resolve,t.reject)},t.prototype.M=function(e,t){var r=this.l();try{e.call(t,r.resolve,r.reject)}catch(e){r.reject(e)}},t.prototype.then=function(e,r){function n(e,t){return"function"==typeof e?function(t){try{s(e(t))}catch(e){a(e)}}:t}var s,a,o=new t(function(e,t){s=e,a=t});return this.T(n(e,s),n(r,a)),o},t.prototype.catch=function(e){return this.then(void 0,e)},t.prototype.T=function(e,t){function r(){switch(n.i){case 1:e(n.j);break;case 2:t(n.j);break;default:throw Error("Unexpected state: "+n.i)}}var n=this;null==this.h?l.i(r):this.h.push(r),this.u=!0},t.resolve=s,t.reject=function(e){return new t(function(t,r){r(e)})},t.race=function(e){return new t(function(t,r){for(var n=a(e),o=n.next();!o.done;o=n.next())s(o.value).T(t,r)})},t.all=function(e){var r=a(e),n=r.next();return n.done?s([]):new t(function(e,t){var a=[],o=0;do a.push(void 0),o++,s(n.value).T(function(t){return function(r){a[t]=r,0==--o&&e(a)}}(a.length-1),t),n=r.next();while(!n.done)})},t}),s("Array.prototype.keys",function(e){return e||function(){var e,t,r,n,s;return e=this,t=function(e){return e},e instanceof String&&(e+=""),r=0,n=!1,(s={next:function(){if(!n&&r<e.length){var s=r++;return{value:t(s,e[s]),done:!1}}return n=!0,{done:!0,value:void 0}}})[Symbol.iterator]=function(){return s},s}}),s("Array.prototype.fill",function(e){return e||function(e,t,r){var n=this.length||0;for(0>t&&(t=Math.max(0,n+t)),(null==r||r>n)&&(r=n),0>(r=Number(r))&&(r=Math.max(0,n+r)),t=Number(t||0);t<r;t++)this[t]=e;return this}}),s("Int8Array.prototype.fill",T),s("Uint8Array.prototype.fill",T),s("Uint8ClampedArray.prototype.fill",T),s("Int16Array.prototype.fill",T),s("Uint16Array.prototype.fill",T),s("Int32Array.prototype.fill",T),s("Uint32Array.prototype.fill",T),s("Float32Array.prototype.fill",T),s("Float64Array.prototype.fill",T),s("Object.is",function(e){return e||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}}),s("Array.prototype.includes",function(e){return e||function(e,t){var r=this;r instanceof String&&(r=String(r));var n=r.length;for(0>(t=t||0)&&(t=Math.max(t+n,0));t<n;t++){var s=r[t];if(s===e||Object.is(s,e))return!0}return!1}}),s("String.prototype.includes",function(e){return e||function(e,t){if(null==this)throw TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(e instanceof RegExp)throw TypeError("First argument to String.prototype.includes must not be a regular expression");return -1!==this.indexOf(e,t||0)}});var w=this||self;function I(e,t){e=e.split(".");var r,n=w;for((e[0]in n)||void 0===n.execScript||n.execScript("var "+e[0]);e.length&&(r=e.shift());)e.length||void 0===t?n=n[r]&&n[r]!==Object.prototype[r]?n[r]:n[r]={}:n[r]=t}function j(e){var t;return(t=w.navigator)&&(t=t.userAgent)||(t=""),-1!=t.indexOf(e)}var C=Array.prototype.map?function(e,t){return Array.prototype.map.call(e,t,void 0)}:function(e,t){for(var r=e.length,n=Array(r),s="string"==typeof e?e.split(""):e,a=0;a<r;a++)a in s&&(n[a]=t.call(void 0,s[a],a,e));return n},N={},S=null;function E(){if(!S){S={};for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),t=["+/=","+/","-_=","-_.","-_"],r=0;5>r;r++){var n=e.concat(t[r].split(""));N[r]=n;for(var s=0;s<n.length;s++){var a=n[s];void 0===S[a]&&(S[a]=s)}}}}var A="undefined"!=typeof Uint8Array,F=!(j("Trident")||j("MSIE"))&&"function"==typeof w.btoa;function R(e){if(!F){var t;void 0===t&&(t=0),E(),t=N[t];for(var r=Array(Math.floor(e.length/3)),n=t[64]||"",s=0,a=0;s<e.length-2;s+=3){var o=e[s],l=e[s+1],i=e[s+2],u=t[o>>2];o=t[(3&o)<<4|l>>4],l=t[(15&l)<<2|i>>6],i=t[63&i],r[a++]=u+o+l+i}switch(u=0,i=n,e.length-s){case 2:i=t[(15&(u=e[s+1]))<<2]||n;case 1:e=e[s],r[a]=t[e>>2]+t[(3&e)<<4|u>>4]+i+n}return r.join("")}for(t="";10240<e.length;)t+=String.fromCharCode.apply(null,e.subarray(0,10240)),e=e.subarray(10240);return btoa(t+=String.fromCharCode.apply(null,e))}var D=RegExp("[-_.]","g");function P(e){switch(e){case"-":return"+";case"_":return"/";case".":return"=";default:return""}}function $(e){if(!F){var t,r,n,s,a;return(n=3*(r=(t=e).length)/4)%3?n=Math.floor(n):-1!="=.".indexOf(t[r-1])&&(n=-1!="=.".indexOf(t[r-2])?n-2:n-1),s=new Uint8Array(n),a=0,function(e,t){function r(t){for(;n<e.length;){var r=e.charAt(n++),s=S[r];if(null!=s)return s;if(!/^[\s\xa0]*$/.test(r))throw Error("Unknown base64 encoding at char: "+r)}return t}E();for(var n=0;;){var s=r(-1),a=r(0),o=r(64),l=r(64);if(64===l&&-1===s)break;t(s<<2|a>>4),64!=o&&(t(a<<4&240|o>>2),64!=l&&t(o<<6&192|l))}}(t,function(e){s[a++]=e}),a!==n?s.subarray(0,a):s}D.test(e)&&(e=e.replace(D,P)),e=atob(e);for(var o=new Uint8Array(e.length),l=0;l<e.length;l++)o[l]=e.charCodeAt(l);return o}function M(){return Q||(Q=new Uint8Array(0))}var O={},B="function"==typeof Uint8Array.prototype.slice,q=0,L=0;function V(e){var t=0>e,r=(e=Math.abs(e))>>>0;e=Math.floor((e-r)/0x100000000),t&&(t=(r=a(z(r,e))).next().value,e=r.next().value,r=t),q=r>>>0,L=e>>>0}var G="function"==typeof BigInt;function z(e,t){return t=~t,e?e=~e+1:t+=1,[e,t]}function U(e,t){this.i=e>>>0,this.h=t>>>0}function X(e){if(!e)return ee||(ee=new U(0,0));if(!/^-?\d+$/.test(e))return null;if(16>e.length)V(Number(e));else if(G)q=Number((e=BigInt(e))&BigInt(0xffffffff))>>>0,L=Number(e>>BigInt(32)&BigInt(0xffffffff));else{var t=+("-"===e[0]);L=q=0;for(var r=e.length,n=t,s=(r-t)%6+t;s<=r;n=s,s+=6)n=Number(e.slice(n,s)),L*=1e6,0x100000000<=(q=1e6*q+n)&&(L+=q/0x100000000|0,q%=0x100000000);t&&(e=(t=a(z(q,L))).next().value,t=t.next().value,q=e,L=t)}return new U(q,L)}function W(e,t){return Error("Invalid wire type: "+e+" (at position "+t+")")}function H(){return Error("Failed to read varint, encoding is invalid.")}function K(e,t){return Error("Tried to read past the end of the data "+t+" >"+e)}function J(){throw Error("Invalid UTF8")}function Y(e,t){return t=String.fromCharCode.apply(null,t),null==e?t:e+t}var Z,Q,ee,et,er,en=void 0,es="undefined"!=typeof TextDecoder,ea="undefined"!=typeof TextEncoder;function eo(e){if(e!==O)throw Error("illegal external caller")}function el(e,t){if(eo(t),this.V=e,null!=e&&0===e.length)throw Error("ByteString should be constructed with non-empty values")}function ei(){return eR||(eR=new el(null,O))}function eu(e){eo(O);var t=e.V;return null==(t=null==t||A&&null!=t&&t instanceof Uint8Array?t:"string"==typeof t?$(t):null)?t:e.V=t}function ep(e,t){this.i=null,this.m=!1,this.h=this.j=this.l=0,ec(this,e,t)}function ec(e,t,r){e.S=void 0!==(r=void 0===r?{}:r).S&&r.S,t&&(e.i=(t=function(e){if("string"==typeof e)return{buffer:$(e),C:!1};if(Array.isArray(e))return{buffer:new Uint8Array(e),C:!1};if(e.constructor===Uint8Array)return{buffer:e,C:!1};if(e.constructor===ArrayBuffer)return{buffer:new Uint8Array(e),C:!1};if(e.constructor===el)return{buffer:eu(e)||M(),C:!0};if(e instanceof Uint8Array)return{buffer:new Uint8Array(e.buffer,e.byteOffset,e.byteLength),C:!1};throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, a ByteString or an Array of numbers")}(t)).buffer,e.m=t.C,e.l=0,e.j=e.i.length,e.h=e.l)}function ed(e,t){if(e.h=t,t>e.j)throw K(e.j,t)}function ef(e){var t=e.i,r=e.h,n=t[r++],s=127&n;if(128&n&&(s|=(127&(n=t[r++]))<<7,128&n&&(s|=(127&(n=t[r++]))<<14,128&n&&(s|=(127&(n=t[r++]))<<21,128&n&&(s|=(n=t[r++])<<28,128&n&&128&t[r++]&&128&t[r++]&&128&t[r++]&&128&t[r++]&&128&t[r++])))))throw H();return ed(e,r),s}function eh(e,t){if(0>t)throw Error("Tried to read a negative byte length: "+t);var r=e.h,n=r+t;if(n>e.j)throw K(t,e.j-r);return e.h=n,r}ep.prototype.reset=function(){this.h=this.l};var em=[];function eg(){this.h=[]}function ex(e,t,r){for(;0<r||127<t;)e.h.push(127&t|128),t=(t>>>7|r<<25)>>>0,r>>>=7;e.h.push(t)}function ev(e,t){for(;127<t;)e.h.push(127&t|128),t>>>=7;e.h.push(t)}function ey(e,t){if(em.length){var r=em.pop();ec(r,e,t),e=r}else e=new ep(e,t);this.h=e,this.j=this.h.h,this.i=this.l=-1,this.setOptions(t)}function e_(e){var t=e.h;if(t.h==t.j)return!1;e.j=e.h.h;var r=ef(e.h)>>>0;if(t=r>>>3,!(0<=(r&=7)&&5>=r))throw W(r,e.j);if(1>t)throw Error("Invalid field number: "+t+" (at position "+e.j+")");return e.l=t,e.i=r,!0}eg.prototype.length=function(){return this.h.length},eg.prototype.end=function(){var e=this.h;return this.h=[],e},ey.prototype.setOptions=function(e){e=void 0===e?{}:e,this.ca=void 0!==e.ca&&e.ca},ey.prototype.reset=function(){this.h.reset(),this.j=this.h.h,this.i=this.l=-1};var eb=[];function ek(){this.j=[],this.i=0,this.h=new eg}function eT(e,t){0!==t.length&&(e.j.push(t),e.i+=t.length)}var ew="function"==typeof Symbol&&"symbol"==typeof Symbol()?Symbol():void 0;function eI(e,t){return ew?e[ew]|=t:void 0!==e.A?e.A|=t:(Object.defineProperties(e,{A:{value:t,configurable:!0,writable:!0,enumerable:!1}}),t)}function ej(e,t){ew?e[ew]&&(e[ew]&=~t):void 0!==e.A&&(e.A&=~t)}function eC(e){var t;return null==(t=ew?e[ew]:e.A)?0:t}function eN(e,t){ew?e[ew]=t:void 0!==e.A?e.A=t:Object.defineProperties(e,{A:{value:t,configurable:!0,writable:!0,enumerable:!1}})}function eS(e,t){eN(t,-51&e)}function eE(e,t){eN(t,(18|e)&-41)}var eA={};function eF(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)&&e.constructor===Object}var eR,eD,eP=[];function e$(e){if(2&eC(e.o))throw Error("Cannot mutate an immutable Message")}function eM(e){var t=e.length;(t=t?e[t-1]:void 0)&&eF(t)?t.g=1:(t={},e.push((t.g=1,t)))}function eO(e){var t=e.i+e.G;return e.B||(e.B=e.o[t]={})}function eB(e,t){return -1===t?null:t>=e.i?e.B?e.B[t]:void 0:e.o[t+e.G]}function eq(e,t,r,n){e$(e),eL(e,t,r,n)}function eL(e,t,r,n){e.j&&(e.j=void 0),t>=e.i||n?eO(e)[t]=r:(e.o[t+e.G]=r,(e=e.B)&&t in e&&delete e[t])}function eV(e,t,r,n){var s=eB(e,t);Array.isArray(s)||(s=eD);var a=eC(s);if(1&a||eI(s,1),n)2&a||eI(s,2),1&r||Object.freeze(s);else{n=!(2&r);var o,l=2&a;1&r||!l?n&&16&a&&!l&&ej(s,16):(eI(o=Array.prototype.slice.call(s),1),eL(e,t,s=o))}return s}function eG(e,t){var r=eB(e,t),n=null==r?r:"number"==typeof r||"NaN"===r||"Infinity"===r||"-Infinity"===r?Number(r):void 0;return null!=n&&n!==r&&eL(e,t,n),n}function ez(e,t,r,n,s){e.h||(e.h={});var a=e.h[r],o=eV(e,r,3,s);if(!a){var l=o;a=[];var i=!!(16&eC(e.o));o=!!(2&eC(l));var u=l;!s&&o&&(l=Array.prototype.slice.call(l));for(var p=o,c=0;c<l.length;c++){var d=l[c],f=t,h=!1;if(void 0!==(d=Array.isArray(d)?new f(d):h?new f:void 0)){var m=h=eC(f=d.o);o&&(m|=2),i&&(m|=16),m!=h&&eN(f,m),f=m,p=p||!!(2&f),a.push(d)}}return e.h[r]=a,t=33|(i=eC(l)),i!=(t=p?-9&t:8|t)&&(Object.isFrozen(p=l)&&(p=Array.prototype.slice.call(p)),eN(p,t),l=p),u!==l&&eL(e,r,l),(s||n&&o)&&eI(a,2),n&&Object.freeze(a),a}return s||(s=Object.isFrozen(a),n&&!s?Object.freeze(a):!n&&s&&(a=Array.prototype.slice.call(a),e.h[r]=a)),a}function eU(e,t,r){var n=!!(2&eC(e.o));if(t=ez(e,t,r,n,n),e=eV(e,r,3,n),!(n||8&eC(e))){for(n=0;n<t.length;n++){if(2&eC((r=t[n]).o)){var s=e1(r,!1);s.j=r}else s=r;r!==s&&(t[n]=s,e[n]=s.o)}eI(e,8)}return t}function eX(e,t,r){if(null!=r&&"number"!=typeof r)throw Error("Value of float/double field must be a number|null|undefined, found "+typeof r+": "+r);eq(e,t,r)}function eW(e,t,r,n,s){e$(e);var a=ez(e,r,t,!1,!1);return r=null!=n?n:new r,e=eV(e,t,2,!1),void 0!=s?(a.splice(s,0,r),e.splice(s,0,r.o)):(a.push(r),e.push(r.o)),r.C()&&ej(e,8),r}function eH(e,t){return null==e?t:e}function eK(e,t,r){return r=void 0===r?0:r,eH(eG(e,t),r)}function eJ(e,t,r,n){var s=eC(e);n=n?!!(16&s):void 0,e=Array.prototype.slice.call(e);for(var a=0;a<e.length;a++)e[a]=function e(t,r,n,s){if(null!=t){if(Array.isArray(t))t=eJ(t,r,n,void 0!==s);else if(eF(t)){var a,o={};for(a in t)o[a]=e(t[a],r,n,s);t=o}else t=r(t,s);return t}}(e[a],t,r,n);return r(s,e),e}function eY(e){return e.ja===eA?e.toJSON():function(e){switch(typeof e){case"number":return isFinite(e)?e:String(e);case"object":if(e)if(Array.isArray(e)){if(0!=(128&eC(e)))return eM(e=Array.prototype.slice.call(e)),e}else{if(A&&null!=e&&e instanceof Uint8Array)return R(e);if(e instanceof el){var t=e.V;return null==t?"":"string"==typeof t?t:e.V=R(t)}}}return e}(e)}function eZ(e,t){128&e&&eM(t)}function eQ(e,t,r,n,s,a,o){if(e=e.h&&e.h[r]){var l;if(2&(n=eC(e))?n=e:(eE(n,a=C(e,e0)),Object.freeze(a),n=a),e$(t),o=null==n?eD:(eI(l=[],1),l),null!=n){for(e=0,a=!!n.length;e<n.length;e++){var i=n[e];a=a&&!(2&eC(i.o)),o[e]=i.o}a=8*!!a|1,((e=eC(o))&a)!==a&&(Object.isFrozen(o)&&(o=Array.prototype.slice.call(o)),eN(o,e|a)),t.h||(t.h={}),t.h[r]=n}else t.h&&(t.h[r]=void 0);eL(t,r,o,s)}else eq(t,r,function e(t,r,n){if(n=void 0===n?eE:n,null!=t){if(A&&t instanceof Uint8Array)return t.length?new el(new Uint8Array(t),O):ei();if(Array.isArray(t)){var s=eC(t);return 2&s||(r&&!(32&s)&&(16&s||0===s)?eN(t,2|s):4&(r=eC(t=eJ(t,e,4&s?eE:n,!0)))&&2&r&&Object.freeze(t)),t}return t.ja===eA?e0(t):t}}(n,a,o),s)}function e0(e){return 2&eC(e.o)||eI((e=e1(e,!0)).o,2),e}function e1(e,r){var n=e.o,s=[];eI(s,16);var a=e.constructor.h;if(a&&s.push(a),a=e.B){s.length=n.length,s.fill(void 0,s.length,n.length);var o={};s[s.length-1]=o}0!=(128&eC(n))&&eM(s),r=r||e.C()?eE:eS,o=e.constructor,t=s,s=new o(s),t=void 0,e.R&&(s.R=e.R.slice()),o=!!(16&eC(n));for(var l=a?n.length-1:n.length,i=0;i<l;i++)eQ(e,s,i-e.G,n[i],!1,o,r);if(a)for(var u in a)eQ(e,s,+u,a[u],!0,o,r);return s}function e2(e,r,n){null==e&&(e=t),t=void 0;var s,a=this.constructor.i||0,o=0<a,l=this.constructor.h,i=!1;if(null==e){var u=48,p=!0;o&&(a=0,u|=128),eN(e=l?[l]:[],u)}else{if(!Array.isArray(e)||l&&l!==e[0])throw Error();var c=u=eI(e,0);if((p=0!=(16&c))&&((i=0!=(32&c))||(c|=32)),o){if(128&c)a=0;else if(0<e.length){var d=e[e.length-1];if(eF(d)&&"g"in d){a=0,c|=128,delete d.g;var f,h=!0;for(f in d){h=!1;break}h&&e.pop()}}}else if(128&c)throw Error();u!==c&&eN(e,c)}this.G=(l?0:-1)-a,this.h=void 0,this.o=e;e:{if(a=(l=this.o.length)-1,l&&eF(l=this.o[a])){this.B=l,this.i=a-this.G;break e}void 0!==r&&-1<r?(this.i=Math.max(r,a+1-this.G),this.B=void 0):this.i=Number.MAX_VALUE}if(!o&&this.B&&"g"in this.B)throw Error('Unexpected "g" flag in sparse object of message that is not a group type.');if(n)for(r=p&&!i&&!0,o=this.i,p=0;p<n.length;p++)(i=n[p])<o?(i+=this.G,(a=e[i])?e3(a,r):e[i]=eD):(s||(s=eO(this)),(a=s[i])?e3(a,r):s[i]=eD)}function e3(e,t){if(Array.isArray(e)){var r=eC(e),n=1;!t||2&r||(n|=16),(r&n)!==n&&eN(e,r|n)}}function e4(e,t,r){if(r){var n,s={};for(n in r){var a=r[n],o=a.ra;o||(s.J=a.xa||a.oa.W,a.ia?(s.aa=tt(a.ia),o=function(e){return function(t,r,n){return e.J(t,r,n,e.aa)}}(s)):a.ka?(s.Z=tr(a.da.P,a.ka),o=function(e){return function(t,r,n){return e.J(t,r,n,e.Z)}}(s)):o=s.J,a.ra=o),o(t,e,a.da),s={J:s.J,aa:s.aa,Z:s.Z}}}var l=e;if(l=l.R){eT(t,t.h.end());for(var i=0;i<l.length;i++)eT(t,eu(l[i])||M())}}eN(eP,23),eD=Object.freeze(eP),e2.prototype.toJSON=function(){return eJ(this.o,eY,eZ)},e2.prototype.C=function(){return!!(2&eC(this.o))},e2.prototype.ja=eA,e2.prototype.toString=function(){return this.o.toString()};var e6=Symbol();function e5(e,t,r){return e[e6]||(e[e6]=function(e,n){return t(e,n,r)})}function e7(e){var t=e[e6];if(!t){var r=th(e);t=function(e,t){return tm(e,t,r)},e[e6]=t}return t}function e8(e,t){var r=e[t];return"function"==typeof r&&0===r.length&&(r=r(),e[t]=r),Array.isArray(r)&&(tu in r||tn in r||0<r.length&&"function"==typeof r[0])?r:void 0}function e9(e,t,r,n,s,a){t.P=e[0];var o=1;if(e.length>o&&"number"!=typeof e[o]){var l=e[o++];r(t,l)}for(;o<e.length;){r=e[o++];for(var i=o+1;i<e.length&&"number"!=typeof e[i];)i++;switch(l=e[o++],i-=o){case 0:n(t,r,l);break;case 1:(i=e8(e,o))?(o++,s(t,r,l,i)):n(t,r,l,e[o++]);break;case 2:s(t,r,l,i=e8(e,i=o++),e[o++]);break;case 3:a(t,r,l,e[o++],e[o++],e[o++]);break;case 4:a(t,r,l,e[o++],e[o++],e[o++],e[o++]);break;default:throw Error("unexpected number of binary field arguments: "+i)}}return t}var te=Symbol();function tt(e){var t=e[te];if(!t){var r=ti(e);t=function(e,t){return tg(e,t,r)},e[te]=t}return t}function tr(e,t){var r=e[te];return r||(r=function(e,r){return e4(e,r,t)},e[te]=r),r}var tn=Symbol();function ts(e,t){e.push(t)}function ta(e,t,r){e.push(t,r.W)}function to(e,t,r,n){var s=tt(n),a=ti(n).P,o=r.W;e.push(t,function(e,t,r){return o(e,t,r,a,s)})}function tl(e,t,r,n,s,a){var o=tr(n,a),l=r.W;e.push(t,function(e,t,r){return l(e,t,r,n,o)})}function ti(e){var t=e[tn];return t||(t=e9(e,e[tn]=[],ts,ta,to,tl),tu in e&&tn in e&&(e.length=0)),t}var tu=Symbol();function tp(e,t){e[0]=t}function tc(e,t,r,n){var s=r.U;e[t]=n?function(e,t,r){return s(e,t,r,n)}:s}function td(e,t,r,n,s){var a=r.U,o=e7(n),l=th(n).P;e[t]=function(e,t,r){return a(e,t,r,l,o,s)}}function tf(e,t,r,n,s,a,o){var l=r.U,i=e5(n,s,a);e[t]=function(e,t,r){return l(e,t,r,n,i,o)}}function th(e){var t=e[tu];return t||(t=e9(e,e[tu]={},tp,tc,td,tf),tu in e&&tn in e&&(e.length=0)),t}function tm(e,t,r){for(;e_(t)&&4!=t.i;){var n=t.l,s=r[n];if(!s){var a=r[0];a&&(a=a[n])&&(s=r[n]=function(e){var t,r=(t=e.ia)?e7(t):(t=e.wa)?e5(e.da.P,t,e.ka):void 0,n=e.da,s=e.oa.U;return r?function(e,t){return s(e,t,n,r)}:function(e,t){return s(e,t,n)}}(a))}if(!s||!s(t,e,n)){s=t,n=e,a=s.j,function e(t){switch(t.i){case 0:if(0!=t.i)e(t);else e:{t=t.h;for(var r=t.h,n=r+10,s=t.i;r<n;)if(0==(128&s[r++])){ed(t,r);break e}throw H()}break;case 1:ed(t=t.h,t.h+8);break;case 2:2!=t.i?e(t):(r=ef(t.h)>>>0,ed(t=t.h,t.h+r));break;case 5:ed(t=t.h,t.h+4);break;case 3:for(r=t.l;;){if(!e_(t))throw Error("Unmatched start-group tag: stream EOF");if(4==t.i){if(t.l!=r)throw Error("Unmatched end-group tag");break}e(t)}break;default:throw W(t.i,t.j)}}(s);var o=s;if(!o.ca){if(s=o.h.h-a,o.h.h=a,o=o.h,0==s)s=ei();else{if(a=eh(o,s),o.S&&o.m)s=o.i.subarray(a,a+s);else{o=o.i;var l=a;s=l===(s=a+s)?M():B?o.slice(l,s):new Uint8Array(o.subarray(l,s))}s=0==s.length?ei():new el(s,O)}(a=n.R)?a.push(s):n.R=[s]}}}return e}function tg(e,t,r){for(var n=r.length,s=1==n%2,a=+!!s;a<n;a+=2)(0,r[a+1])(t,e,r[a]);e4(e,t,s?r[0]:void 0)}function tx(e,t){return{U:e,W:t}}var tv=tx(function(e,t,r){if(5!==e.i)return!1;var n=(e=e.h).i,s=e.h,a=n[s],o=n[s+1],l=n[s+2];return n=n[s+3],ed(e,e.h+4),e=2*((o=(a|o<<8|l<<16|n<<24)>>>0)>>31)+1,a=o>>>23&255,o&=8388607,eq(t,r,255==a?o?NaN:1/0*e:0==a?1401298464324817e-60*e*o:e*Math.pow(2,a-150)*(o+8388608)),!0},function(e,t,r){if(null!=(t=eG(t,r))){ev(e.h,8*r+5),e=e.h;var n=+t;0===n?0<1/n?q=L=0:(L=0,q=0x80000000):isNaN(n)?(L=0,q=0x7fffffff):34028234663852886e22<(n=(r=0>n?-0x80000000:0)?-n:n)?(L=0,q=(0x7f800000|r)>>>0):11754943508222875e-54>n?(L=0,q=(r|(n=Math.round(n/1401298464324817e-60)))>>>0):(t=Math.floor(Math.log(n)/Math.LN2),n*=Math.pow(2,-t),0x1000000<=(n=Math.round(8388608*n))&&++t,L=0,q=(r|t+127<<23|8388607&n)>>>0),r=q,e.h.push(r>>>0&255),e.h.push(r>>>8&255),e.h.push(r>>>16&255),e.h.push(r>>>24&255)}}),ty=tx(function(e,t,r){if(0!==e.i)return!1;var n=e.h,s=0,a=e=0,o=n.i,l=n.h;do{var i=o[l++];s|=(127&i)<<a,a+=7}while(32>a&&128&i)for(32<a&&(e|=(127&i)>>4),a=3;32>a&&128&i;a+=7)e|=(127&(i=o[l++]))<<a;if(ed(n,l),128>i)n=s>>>0,(e=0x80000000&(i=e>>>0))&&(i=~i>>>0,0==(n=~n+1>>>0)&&(i=i+1>>>0)),n=0x100000000*i+(n>>>0);else throw H();return eq(t,r,e?-n:n),!0},function(e,t,r){null!=(t=eB(t,r))&&("string"==typeof t&&X(t),null!=t&&(ev(e.h,8*r),"number"==typeof t?(e=e.h,V(t),ex(e,q,L)):(r=X(t),ex(e.h,r.i,r.h))))}),t_=tx(function(e,t,r){return 0===e.i&&(eq(t,r,ef(e.h)),!0)},function(e,t,r){if(null!=(t=eB(t,r))&&null!=t)if(ev(e.h,8*r),e=e.h,0<=(r=t))ev(e,r);else{for(t=0;9>t;t++)e.h.push(127&r|128),r>>=7;e.h.push(1)}}),tb=tx(function(e,t,r){if(2!==e.i)return!1;var n=ef(e.h)>>>0,s=eh(e=e.h,n);if(e=e.i,es){var a,o=e;(a=et)||(a=et=new TextDecoder("utf-8",{fatal:!0})),e=s+n,o=0===s&&e===o.length?o:o.subarray(s,e);try{var l=a.decode(o)}catch(e){if(void 0===en){try{a.decode(new Uint8Array([128]))}catch(e){}try{a.decode(new Uint8Array([97])),en=!0}catch(e){en=!1}}throw en||(et=void 0),e}}else{n=(l=s)+n,s=[];for(var i,u,p=null;l<n;)128>(i=e[l++])?s.push(i):224>i?l>=n?J():(u=e[l++],194>i||128!=(192&u)?(l--,J()):s.push((31&i)<<6|63&u)):240>i?l>=n-1?J():128!=(192&(u=e[l++]))||224===i&&160>u||237===i&&160<=u||128!=(192&(o=e[l++]))?(l--,J()):s.push((15&i)<<12|(63&u)<<6|63&o):244>=i?l>=n-2?J():128!=(192&(u=e[l++]))||0!=(i<<28)+(u-144)>>30||128!=(192&(o=e[l++]))||128!=(192&(a=e[l++]))?(l--,J()):(i=((7&i)<<18|(63&u)<<12|(63&o)<<6|63&a)-65536,s.push((i>>10&1023)+55296,(1023&i)+56320)):J(),8192<=s.length&&(p=Y(p,s),s.length=0);l=Y(p,s)}return eq(t,r,l),!0},function(e,t,r){if(null!=(t=eB(t,r))){if(ea){0;t=(er||(er=new TextEncoder)).encode(t)}else{for(var n=0,s=new Uint8Array(3*t.length),a=0;a<t.length;a++){var o=t.charCodeAt(a);if(128>o)s[n++]=o;else{if(2048>o)s[n++]=o>>6|192;else{if(55296<=o&&57343>=o){if(56319>=o&&a<t.length){var l=t.charCodeAt(++a);if(56320<=l&&57343>=l){o=1024*(o-55296)+l-56320+65536,s[n++]=o>>18|240,s[n++]=o>>12&63|128,s[n++]=o>>6&63|128,s[n++]=63&o|128;continue}a--}0;o=65533}s[n++]=o>>12|224,s[n++]=o>>6&63|128}s[n++]=63&o|128}}t=n===s.length?s:s.subarray(0,n)}ev(e.h,8*r+2),ev(e.h,t.length),eT(e,e.h.end()),eT(e,t)}}),tk=tx(function(e,t,r,n,s){if(2!==e.i)return!1;t=eW(t,r,n),r=e.h.j,n=ef(e.h)>>>0;var a=e.h.h+n,o=a-r;if(0>=o&&(e.h.j=a,s(t,e,void 0,void 0,void 0),o=a-e.h.h),o)throw Error("Message parsing ended unexpectedly. Expected to read "+(n+" bytes, instead read ")+(n-o)+" bytes, either the data ended unexpectedly or the message misreported its own length");return e.h.h=a,e.h.j=r,!0},function(e,t,r,n,s){if(null!=(t=eU(t,n,r)))for(n=0;n<t.length;n++){var a=e;ev(a.h,8*r+2);var o=a.h.end();eT(a,o),o.push(a.i),a=o,s(t[n],e),o=e;var l=a.pop();for(l=o.i+o.h.length()-l;127<l;)a.push(127&l|128),l>>>=7,o.i++;a.push(l),o.i++}});function tT(e){return function(t,r){e:{if(eb.length){var n=eb.pop();n.setOptions(r),ec(n.h,t,r),t=n}else t=new ey(t,r);try{var s=th(e),a=tm(new s.P,t,s);break e}finally{(s=t.h).i=null,s.m=!1,s.l=0,s.j=0,s.h=0,s.S=!1,t.l=-1,t.i=-1,100>eb.length&&eb.push(t)}}return a}}function tw(e){return function(){var t=new ek;tg(this,t,ti(e)),eT(t,t.h.end());for(var r=new Uint8Array(t.i),n=t.j,s=n.length,a=0,o=0;o<s;o++){var l=n[o];r.set(l,a),a+=l.length}return t.j=[r],r}}function tI(e){e2.call(this,e)}f(tI,e2);var tj=[tI,1,t_,2,tv,3,tb,4,tb];function tC(e){e2.call(this,e,-1,tN)}tI.prototype.l=tw(tj),f(tC,e2),tC.prototype.addClassification=function(e,t){return eW(this,1,tI,e,t),this};var tN=[1],tS=tT([tC,1,tk,tj]);function tE(e){e2.call(this,e)}f(tE,e2);var tA=[tE,1,tv,2,tv,3,tv,4,tv,5,tv];function tF(e){e2.call(this,e,-1,tR)}tE.prototype.l=tw(tA),f(tF,e2);var tR=[1],tD=tT([tF,1,tk,tA]);function tP(e){e2.call(this,e)}f(tP,e2);var t$=[tP,1,tv,2,tv,3,tv,4,tv,5,tv,6,ty],tM=tT(t$);function tO(e,t,r){if(r=e.createShader(0===r?e.VERTEX_SHADER:e.FRAGMENT_SHADER),e.shaderSource(r,t),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS))throw Error("Could not compile WebGL shader.\n\n"+e.getShaderInfoLog(r));return r}function tB(e){return{x:eK(e,1),y:eK(e,2),z:eK(e,3),visibility:null!=eG(e,4)?eK(e,4):void 0}}function tq(e,t){this.i=e,this.h=t,this.m=0}function tL(e,t,r){return(function(e,t){var r=e.h;if(void 0===e.s){var n=tO(r,"\n attribute vec2 aVertex;\n attribute vec2 aTex;\n varying vec2 vTex;\n void main(void) {\n gl_Position = vec4(aVertex, 0.0, 1.0);\n vTex = aTex;\n }",0),s=tO(r,"\n precision mediump float;\n varying vec2 vTex;\n uniform sampler2D sampler0;\n void main(){\n gl_FragColor = texture2D(sampler0, vTex);\n }",1),a=r.createProgram();if(r.attachShader(a,n),r.attachShader(a,s),r.linkProgram(a),!r.getProgramParameter(a,r.LINK_STATUS))throw Error("Could not compile WebGL program.\n\n"+r.getProgramInfoLog(a));n=e.s=a,r.useProgram(n),s=r.getUniformLocation(n,"sampler0"),e.l={O:r.getAttribLocation(n,"aVertex"),N:r.getAttribLocation(n,"aTex"),ya:s},e.v=r.createBuffer(),r.bindBuffer(r.ARRAY_BUFFER,e.v),r.enableVertexAttribArray(e.l.O),r.vertexAttribPointer(e.l.O,2,r.FLOAT,!1,0,0),r.bufferData(r.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),r.STATIC_DRAW),r.bindBuffer(r.ARRAY_BUFFER,null),e.u=r.createBuffer(),r.bindBuffer(r.ARRAY_BUFFER,e.u),r.enableVertexAttribArray(e.l.N),r.vertexAttribPointer(e.l.N,2,r.FLOAT,!1,0,0),r.bufferData(r.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),r.STATIC_DRAW),r.bindBuffer(r.ARRAY_BUFFER,null),r.uniform1i(s,0)}n=e.l,r.useProgram(e.s),r.canvas.width=t.width,r.canvas.height=t.height,r.viewport(0,0,t.width,t.height),r.activeTexture(r.TEXTURE0),e.i.bindTexture2d(t.glName),r.enableVertexAttribArray(n.O),r.bindBuffer(r.ARRAY_BUFFER,e.v),r.vertexAttribPointer(n.O,2,r.FLOAT,!1,0,0),r.enableVertexAttribArray(n.N),r.bindBuffer(r.ARRAY_BUFFER,e.u),r.vertexAttribPointer(n.N,2,r.FLOAT,!1,0,0),r.bindFramebuffer(r.DRAW_FRAMEBUFFER?r.DRAW_FRAMEBUFFER:r.FRAMEBUFFER,null),r.clearColor(0,0,0,0),r.clear(r.COLOR_BUFFER_BIT),r.colorMask(!0,!0,!0,!0),r.drawArrays(r.TRIANGLE_FAN,0,4),r.disableVertexAttribArray(n.O),r.disableVertexAttribArray(n.N),r.bindBuffer(r.ARRAY_BUFFER,null),e.i.bindTexture2d(0)}(e,t),"function"==typeof e.h.canvas.transferToImageBitmap)?Promise.resolve(e.h.canvas.transferToImageBitmap()):r?Promise.resolve(e.h.canvas):"function"==typeof createImageBitmap?createImageBitmap(e.h.canvas):(void 0===e.j&&(e.j=document.createElement("canvas")),new Promise(function(t){e.j.height=e.h.canvas.height,e.j.width=e.h.canvas.width,e.j.getContext("2d",{}).drawImage(e.h.canvas,0,0,e.h.canvas.width,e.h.canvas.height),t(e.j)}))}function tV(e){this.h=e}tP.prototype.l=tw(t$);var tG=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]);function tz(e,t){return t+e}function tU(e){if(this.h=e,this.listeners={},this.l={},this.L={},this.s={},this.v={},this.M=this.u=this.ga=!0,this.I=Promise.resolve(),this.fa="",this.D={},this.locateFile=e&&e.locateFile||tz,"object"==typeof window)var t=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if("undefined"!=typeof location)t=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.ha=t,e.options){t=a(Object.keys(e.options));for(var r=t.next();!r.done;r=t.next()){r=r.value;var n=e.options[r].default;void 0!==n&&(this.l[r]="function"==typeof n?n():n)}}}function tX(e,t){var r;return k(function(n){return t in e.L?n.return(e.L[t]):(r=fetch(e.locateFile(t,"")).then(function(e){return e.arrayBuffer()}),e.L[t]=r,n.return(r))})}function tW(e){return(void 0===e&&(e=0),1===e)?"selfie_segmentation_landscape.tflite":"selfie_segmentation.tflite"}function tH(e){var t=this;e=e||{},this.h=new tU({locateFile:e.locateFile,files:function(e){return[{simd:!0,url:"selfie_segmentation_solution_simd_wasm_bin.js"},{simd:!1,url:"selfie_segmentation_solution_wasm_bin.js"},{data:!0,url:tW(e.modelSelection)}]},graph:{url:"selfie_segmentation.binarypb"},listeners:[{wants:["segmentation_mask","image_transformed"],outs:{image:{type:"texture",stream:"image_transformed"},segmentationMask:{type:"texture",stream:"segmentation_mask"}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"object"==typeof window&&void 0!==window.navigator&&("iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document)},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelSelection:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value"},onChange:function(e){var r,n,s;return k(function(a){return 1==a.h?(n="third_party/mediapipe/modules/selfie_segmentation/"+(r=tW(e)),x(a,tX(t.h,r),2)):(s=a.i,t.h.overrideFile(n,s),a.return(!0))})}}}})}(i=tU.prototype).close=function(){return this.j&&this.j.delete(),Promise.resolve()},i.reset=function(){var e=this;return k(function(t){e.j&&(e.j.reset(),e.s={},e.v={}),t.h=0})},i.setOptions=function(e,t){var r=this;if(t=t||this.h.options){for(var n=[],s=[],o={},l=a(Object.keys(e)),i=l.next();!i.done;o={X:o.X,Y:o.Y},i=l.next())if(!((i=i.value)in this.l&&this.l[i]===e[i])){this.l[i]=e[i];var u=t[i];void 0!==u&&(u.onChange&&(o.X=u.onChange,o.Y=e[i],n.push(function(e){return function(){return k(function(t){if(1==t.h)return x(t,e.X(e.Y),2);!0===t.i&&(r.u=!0),t.h=0})}}(o))),u.graphOptionXref&&(i=Object.assign({},{calculatorName:"",calculatorIndex:0},u.graphOptionXref,{valueNumber:1===u.type?e[i]:0,valueBoolean:0===u.type&&e[i],valueString:2===u.type?e[i]:""}),s.push(i)))}(0!==n.length||0!==s.length)&&(this.u=!0,this.H=(void 0===this.H?[]:this.H).concat(s),this.F=(void 0===this.F?[]:this.F).concat(n))}},i.initialize=function(){var e=this;return k(function(t){var r,n,s,l,i,u,p,c,d,f,h,m,g,v,y,_,b,T,w,I,j,C,N,S;return 1==t.h?x(t,k(function(t){switch(t.h){case 1:if(!e.ga)return t.return();return r=void 0===e.h.files?[]:"function"==typeof e.h.files?e.h.files(e.l):e.h.files,x(t,k(function(e){switch(e.h){case 1:return e.s=2,x(e,WebAssembly.instantiate(tG),4);case 4:e.h=3,e.s=0;break;case 2:return e.s=0,e.l=null,e.return(!1);case 3:return e.return(!0)}}),2);case 2:if(n=t.i,"object"==typeof window){var a,m;return a={locateFile:e.locateFile},window.createMediapipeSolutionsWasm=a,m={locateFile:e.locateFile},window.createMediapipeSolutionsPackedAssets=m,u=r.filter(function(e){return void 0!==e.data}),p=r.filter(function(e){return void 0===e.data}),c=Promise.all(u.map(function(t){var r=tX(e,t.url);if(void 0!==t.path){var n=t.path;r=r.then(function(t){return e.overrideFile(n,t),Promise.resolve(t)})}return r})),d=Promise.all(p.map(function(t){var r,s;return void 0===t.simd||t.simd&&n||!t.simd&&!n?(r=e.locateFile(t.url,e.ha),(s=document.createElement("script")).setAttribute("src",r),s.setAttribute("crossorigin","anonymous"),new Promise(function(e){s.addEventListener("load",function(){e()},!1),s.addEventListener("error",function(){e()},!1),document.body.appendChild(s)})):Promise.resolve()})).then(function(){var t,r,n;return k(function(s){if(1==s.h)return t=window.createMediapipeSolutionsWasm,r=window.createMediapipeSolutionsPackedAssets,n=e,x(s,t(r),2);n.i=s.i,s.h=0})}),f=k(function(t){return e.h.graph&&e.h.graph.url?t=x(t,tX(e,e.h.graph.url),0):(t.h=0,t=void 0),t}),x(t,Promise.all([d,c,f]),7)}if("function"!=typeof importScripts)throw Error("solutions can only be loaded on a web page or in a web worker");return s=r.filter(function(e){return void 0===e.simd||e.simd&&n||!e.simd&&!n}).map(function(t){return e.locateFile(t.url,e.ha)}),importScripts.apply(null,o(s)),l=e,x(t,createMediapipeSolutionsWasm(Module),6);case 6:l.i=t.i,e.m=new OffscreenCanvas(1,1),e.i.canvas=e.m,i=e.i.GL.createContext(e.m,{antialias:!1,alpha:!1,va:"undefined"!=typeof WebGL2RenderingContext?2:1}),e.i.GL.makeContextCurrent(i),t.h=4;break;case 7:if(e.m=document.createElement("canvas"),!(h=e.m.getContext("webgl2",{}))&&!(h=e.m.getContext("webgl",{})))return alert("Failed to create WebGL canvas context when passing video frame."),t.return();e.K=h,e.i.canvas=e.m,e.i.createContext(e.m,!0,!0,{});case 4:e.j=new e.i.SolutionWasm,e.ga=!1,t.h=0}}),2):3!=t.h?x(t,k(function(t){if(1==t.h){if(e.h.graph&&e.h.graph.url&&e.fa===e.h.graph.url)return t.return();if(e.u=!0,!e.h.graph||!e.h.graph.url){t.h=2;return}return e.fa=e.h.graph.url,x(t,tX(e,e.h.graph.url),3)}for(2!=t.h&&(m=t.i,e.j.loadGraph(m)),v=(g=a(Object.keys(e.D))).next();!v.done;v=g.next())y=v.value,e.j.overrideFile(y,e.D[y]);if(e.D={},e.h.listeners)for(b=(_=a(e.h.listeners)).next();!b.done;b=_.next())!function(e,t){for(var r=t.name||"$",n=[].concat(o(t.wants)),s=new e.i.StringList,l=a(t.wants),i=l.next();!i.done;i=l.next())s.push_back(i.value);l=e.i.PacketListener.implement({onResults:function(s){for(var o,l,i,u,p,c,d,f,h,m,g,v,y,_,b={},T=0;T<t.wants.length;++T)b[n[T]]=s.get(T);var w=e.listeners[r];w&&(e.I=(o=t.outs,k(function(t){switch(t.h){case 1:if(!o)return t.return(b);for(l={},i=0,p=(u=a(Object.keys(o))).next();!p.done;p=u.next())"string"!=typeof(c=o[p.value])&&"texture"===c.type&&void 0!==b[c.stream]&&++i;1<i&&(e.M=!1),p=(d=a(Object.keys(o))).next();case 2:if(p.done){t.h=4;break}if("string"==typeof(h=o[f=p.value]))return y=l,_=f,x(t,function(e,t,r){var n;return k(function(s){return"number"==typeof r||r instanceof Uint8Array||r instanceof e.i.Uint8BlobList?s.return(r):r instanceof e.i.Texture2dDataOut?((n=e.v[t])||(n=new tq(e.i,e.K),e.v[t]=n),s.return(tL(n,r,e.M))):s.return(void 0)})}(e,f,b[h]),14);if(m=b[h.stream],"detection_list"===h.type){if(m){for(var r=m.getRectList(),n=m.getLandmarksList(),s=m.getClassificationsList(),T=[],w=0;w<r.size();++w){var I=tM(r.get(w)),j=eK(I,1),C=eK(I,2),N=eK(I,3),S=eK(I,4),E=eK(I,5,0),A=void 0;A=void 0===A?0:A,I={la:{sa:j,ta:C,height:N,width:S,rotation:E,pa:eH(eB(I,6),A)},ea:eU(tD(n.get(w)),tE,1).map(tB),ba:eU(tS(s.get(w)),tI,1).map(function(e){var t=eB(e,1);return{index:null==t?0:t,qa:eK(e,2),label:null!=eB(e,3)?eH(eB(e,3),""):void 0,displayName:null!=eB(e,4)?eH(eB(e,4),""):void 0}})},T.push(I)}r=T}else r=[];l[f]=r,t.h=7;break}if("proto_list"===h.type){if(m){for(n=0,r=Array(m.size());n<m.size();n++)r[n]=m.get(n);m.delete()}else r=[];l[f]=r,t.h=7;break}if(void 0===m){t.h=3;break}if("float_list"===h.type||"proto"===h.type){l[f]=m,t.h=7;break}if("texture"!==h.type)throw Error("Unknown output config type: '"+h.type+"'");return(g=e.v[f])||(g=new tq(e.i,e.K),e.v[f]=g),x(t,tL(g,m,e.M),13);case 13:v=t.i,l[f]=v;case 7:h.transform&&l[f]&&(l[f]=h.transform(l[f])),t.h=3;break;case 14:y[_]=t.i;case 3:p=d.next(),t.h=2;break;case 4:return t.return(l)}})).then(function(r){r=w(r);for(var s=0;s<t.wants.length;++s){var a=b[n[s]];"object"==typeof a&&a.hasOwnProperty&&a.hasOwnProperty("delete")&&a.delete()}r&&(e.I=r)}))}}),e.j.attachMultiListener(s,l),s.delete()}(e,b.value);T=e.l,e.l={},e.setOptions(T),t.h=0}),3):x(t,k(function(t){switch(t.h){case 1:if(!e.u)return t.return();if(!e.F){t.h=2;break}I=(w=a(e.F)).next();case 3:if(I.done){t.h=5;break}return x(t,(0,I.value)(),4);case 4:I=w.next(),t.h=3;break;case 5:e.F=void 0;case 2:if(e.H){for(j=new e.i.GraphOptionChangeRequestList,N=(C=a(e.H)).next();!N.done;N=C.next())S=N.value,j.push_back(S);e.j.changeOptions(j),j.delete(),e.H=void 0}e.u=!1,t.h=0}}),0)})},i.overrideFile=function(e,t){this.j?this.j.overrideFile(e,t):this.D[e]=t},i.clearOverriddenFiles=function(){this.D={},this.j&&this.j.clearOverriddenFiles()},i.send=function(e,t){var r,n,s,o,l,i,u,p,c,d=this;return k(function(f){switch(f.h){case 1:if(!d.h.inputs)return f.return();return r=1e3*(null==t?performance.now():t),x(f,d.I,2);case 2:return x(f,d.initialize(),3);case 3:for(n=new d.i.PacketDataList,o=(s=a(Object.keys(e))).next();!o.done;o=s.next())if(l=o.value,i=d.h.inputs[l]){e:{var h=e[l];switch(i.type){case"video":var m=d.s[i.stream];if(m||(m=new tq(d.i,d.K),d.s[i.stream]=m),0===m.m&&(m.m=m.i.createTexture()),"undefined"!=typeof HTMLVideoElement&&h instanceof HTMLVideoElement)var g=h.videoWidth,v=h.videoHeight;else"undefined"!=typeof HTMLImageElement&&h instanceof HTMLImageElement?(g=h.naturalWidth,v=h.naturalHeight):(g=h.width,v=h.height);v={glName:m.m,width:g,height:v},(g=m.h).canvas.width=v.width,g.canvas.height=v.height,g.activeTexture(g.TEXTURE0),m.i.bindTexture2d(m.m),g.texImage2D(g.TEXTURE_2D,0,g.RGBA,g.RGBA,g.UNSIGNED_BYTE,h),m.i.bindTexture2d(0),m=v;break e;case"detections":for((m=d.s[i.stream])||(m=new tV(d.i),d.s[i.stream]=m),m.data||(m.data=new m.h.DetectionListData),m.data.reset(h.length),v=0;v<h.length;++v){g=h[v];var y=m.data,_=y.setBoundingBox,b=v,k=g.la,T=new tP;if(eX(T,1,k.sa),eX(T,2,k.ta),eX(T,3,k.height),eX(T,4,k.width),eX(T,5,k.rotation),eq(T,6,k.pa),k=T.l(),_.call(y,b,k),g.ea)for(y=0;y<g.ea.length;++y){T=g.ea[y],b=(_=m.data).addNormalizedLandmark,k=v,T=Object.assign({},T,{visibility:T.visibility?T.visibility:0});var w=new tE;eX(w,1,T.x),eX(w,2,T.y),eX(w,3,T.z),T.visibility&&eX(w,4,T.visibility),T=w.l(),b.call(_,k,T)}if(g.ba)for(y=0;y<g.ba.length;++y)b=(_=m.data).addClassification,k=v,T=g.ba[y],eX(w=new tI,2,T.qa),T.index&&eq(w,1,T.index),T.label&&eq(w,3,T.label),T.displayName&&eq(w,4,T.displayName),T=w.l(),b.call(_,k,T)}m=m.data;break e;default:m={}}}switch(u=m,p=i.stream,i.type){case"video":n.pushTexture2d(Object.assign({},u,{stream:p,timestamp:r}));break;case"detections":(c=u).stream=p,c.timestamp=r,n.pushDetectionList(c);break;default:throw Error("Unknown input config type: '"+i.type+"'")}}return d.j.send(n),x(f,d.I,4);case 4:n.delete(),f.h=0}})},i.onResults=function(e,t){this.listeners[t||"$"]=e},I("Solution",tU),I("OptionType",{BOOL:0,NUMBER:1,ua:2,0:"BOOL",1:"NUMBER",2:"STRING"}),(i=tH.prototype).close=function(){return this.h.close(),Promise.resolve()},i.onResults=function(e){this.h.onResults(e)},i.initialize=function(){var e=this;return k(function(t){return x(t,e.h.initialize(),0)})},i.reset=function(){this.h.reset()},i.send=function(e){var t=this;return k(function(r){return x(r,t.h.send(e),0)})},i.setOptions=function(e){this.h.setOptions(e)},I("SelfieSegmentation",tH),I("VERSION","0.1.1675465747")}).call(this)},{}],"3qRAd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r);var a=e("./base");s.exportAll(a,r),e("./register_all_kernels")},{"./base":"iJ5HC","./register_all_kernels":"lOREp","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iJ5HC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version_webgl",()=>l.version),s.export(r,"webgl",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./backend_webgl"),l=e("./version"),i=e("./webgl");s.exportAll(i,r),a.device_util.isBrowser()&&(0,a.registerBackend)("webgl",()=>new(0,o.MathBackendWebGL),2);let u={forceHalfFloat:i.forceHalfFloat}},{"@tensorflow/tfjs-core":"hADTC","./backend_webgl":"kocjS","./version":"4j4u9","./webgl":"2uHRt","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kocjS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EPSILON_FLOAT32",()=>I),s.export(r,"EPSILON_FLOAT16",()=>j),s.export(r,"getBinaryCache",()=>N),s.export(r,"MathBackendWebGL",()=>E),e("./flags_webgl");var a=e("@tensorflow/tfjs-core"),o=e("./canvas_util"),l=e("./decode_matrix_gpu"),i=e("./decode_matrix_packed_gpu"),u=e("./encode_float_gpu"),p=e("./encode_float_packed_gpu"),c=e("./encode_matrix_gpu"),d=e("./encode_matrix_packed_gpu"),f=e("./gpgpu_context"),h=e("./gpgpu_math"),m=e("./kernel_utils/shared"),g=e("./pack_gpu"),x=e("./reshape_packed_gpu"),v=e("./tex_util"),y=e("./texture_manager"),_=e("./unaryop_gpu"),b=e("./unaryop_packed_gpu"),k=e("./unpack_gpu"),T=e("./webgl_util");let w=a.kernel_impls.whereImpl,I=1e-7,j=1e-4,C={};function N(e){return e in C||(C[e]={}),C[e]}let S=(0,a.env)().getNumber("CPU_HANDOFF_SIZE_THRESHOLD");class E extends a.KernelBackend{nextDataId(){return E.nextDataId++}constructor(e){let 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,!(0,a.env)().getBool("HAS_WEBGL"))throw Error("WebGL is not supported on this device");if(null!=e){if(e instanceof f.GPGPUContext)t=e;else{let r=(0,o.getWebGLContext)((0,a.env)().getNumber("WEBGL_VERSION"),e);t=new(0,f.GPGPUContext)(r)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let e=(0,o.getWebGLContext)((0,a.env)().getNumber("WEBGL_VERSION"));t=new(0,f.GPGPUContext)(e),this.binaryCache=N((0,a.env)().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new(0,y.TextureManager)(this.gpgpu),this.numMBBeforeWarning=null==(0,a.env)().global.screen?1024:(0,a.env)().global.screen.height*(0,a.env)().global.screen.width*window.devicePixelRatio*600/1024/1024,this.texData=new(0,a.DataStorage)(this,(0,a.engine)())}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(e,t,r,n,s,a){let o=this.makeTensorInfo(t,r),l=this.texData.get(o.dataId);l.isPacked=!1,l.texture={texture:e,texShape:[n,s]},l.texShape=[n,s];let i=T.getShapeAs3D(t),u=new(0,c.EncodeMatrixProgram)(i,!1,a),p=this.runWebGLProgram(u,[o],r,[[n,s]]);return p.shape=t,l.texture=null,this.disposeIntermediateTensorInfo(o),p.dataId}write(e,t,r){if(((0,a.env)().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||(0,a.env)().getBool("DEBUG"))&&this.checkNumericalProblems(e),"complex64"===r&&null!=e)throw Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let n={id:this.nextDataId()};return this.texData.set(n,{shape:t,dtype:r,values:e,usage:v.TextureUsage.UPLOAD,refCount:1}),n}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,r,n,s){if((0,a.env)().getBool("DEBUG")&&this.checkNumericalProblems(t),"complex64"===n)throw Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:r,dtype:n,values:t,usage:v.TextureUsage.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t,r,{values:n,dtype:s,complexTensorInfos:o,slice:l,shape:i,isPacked:u}=this.texData.get(e);if(null!=l){let t;t=u?new(0,b.UnaryOpPackedProgram)(i,_.CLONE):new(0,_.UnaryOpProgram)(i,_.CLONE);let r=this.runWebGLProgram(t,[{dataId:e,shape:i,dtype:s}],s),n=this.readSync(r.dataId);return this.disposeIntermediateTensorInfo(r),n}if(null!=n)return this.convertAndCacheOnCPU(e);if("string"===s)return n;let p=null!=this.activeTimers;if(p&&(t=a.util.now()),"complex64"===s){let e=this.readSync(o.real.dataId),t=this.readSync(o.imag.dataId);r=a.backend_util.mergeRealAndImagArrays(e,t)}else r=this.getValuesFromTexture(e);return p&&(this.downloadWaitMs+=a.util.now()-t),this.convertAndCacheOnCPU(e,r)}async read(e){let t,r;if(this.pendingRead.has(e)){let t=this.pendingRead.get(e);return new Promise(e=>t.push(e))}let{values:n,shape:s,slice:o,dtype:l,complexTensorInfos:i,isPacked:u}=this.texData.get(e);if(null!=o){let t;t=u?new(0,b.UnaryOpPackedProgram)(s,_.CLONE):new(0,_.UnaryOpProgram)(s,_.CLONE);let r=this.runWebGLProgram(t,[{dataId:e,shape:s,dtype:l}],l),n=this.read(r.dataId);return this.disposeIntermediateTensorInfo(r),n}if(null!=n)return this.convertAndCacheOnCPU(e);if((0,a.env)().getBool("DEBUG")&&!(0,a.env)().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&2===(0,a.env)().getNumber("WEBGL_VERSION"))throw Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let p=null;if("complex64"!==l&&(0,a.env)().get("WEBGL_BUFFER_SUPPORTED")){t=this.decode(e);let r=this.texData.get(t.dataId);p=this.gpgpu.createBufferFromTexture(r.texture.texture,...v.getDenseTexShape(s))}if(this.pendingRead.set(e,[]),"complex64"!==l&&await this.gpgpu.createAndWaitForFence(),"complex64"===l){let e=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),t=e[0],n=e[1];r=a.backend_util.mergeRealAndImagArrays(t,n)}else if(null==p)r=this.getValuesFromTexture(e);else{let e=a.util.sizeFromShape(s);r=this.gpgpu.downloadFloat32MatrixFromBuffer(p,e)}if(null!=t&&this.disposeIntermediateTensorInfo(t),null!=p){let e=this.gpgpu.gl;T.callAndCheck(e,()=>e.deleteBuffer(p))}let c=this.convertAndCacheOnCPU(e,r),d=this.pendingRead.get(e);return this.pendingRead.delete(e),d.forEach(e=>e(c)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&(0,a.engine)().removeDataId(e,this),this.pendingDeletes--),c}readToGPU(e,t={}){let{values:r,shape:n,slice:s,dtype:o,isPacked:l,texture:i}=this.texData.get(e);if("complex64"===o)throw Error("Does not support reading texture for complex64 dtype.");if(null!=s){let r;r=l?new(0,b.UnaryOpPackedProgram)(n,_.CLONE):new(0,_.UnaryOpProgram)(n,_.CLONE);let s=this.runWebGLProgram(r,[{dataId:e,shape:n,dtype:o}],o),a=this.readToGPU(s,t);return this.disposeIntermediateTensorInfo(s),a}if(null==i)if(null!=r)throw Error("Data is not on GPU but on CPU.");else throw Error("There is no data on GPU or CPU.");let u=this.decode(e,t.customTexShape);return Object.assign({tensorRef:(0,a.engine)().makeTensorFromTensorInfo(u)},this.texData.get(u.dataId).texture)}bufferSync(e){let t=this.readSync(e.dataId);if("string"===e.dtype)try{let r=t.map(e=>a.util.decodeString(e));return(0,a.buffer)(e.shape,e.dtype,r)}catch(e){throw Error("Failed to decode encoded string bytes into utf-8")}return(0,a.buffer)(e.shape,e.dtype,t)}checkNumericalProblems(e){if(null!=e)for(let t=0;t<e.length;t++){let r=e[t];if(!T.canBeRepresented(r)){if((0,a.env)().getBool("WEBGL_RENDER_FLOAT32_CAPABLE"))throw Error(`The value ${r} cannot be represented with your current settings. Consider enabling float32 rendering: 'tf.env().set('WEBGL_RENDER_FLOAT32_ENABLED', true);'`);throw Error(`The value ${r} cannot be represented on this device.`)}}}getValuesFromTexture(e){let{shape:t,dtype:r,isPacked:n}=this.texData.get(e),s=a.util.sizeFromShape(t);if((0,a.env)().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")){let r=this.decode(e),n=this.texData.get(r.dataId),a=this.gpgpu.downloadMatrixFromPackedTexture(n.texture.texture,...v.getDenseTexShape(t)).subarray(0,s);return this.disposeIntermediateTensorInfo(r),a}let o=(0,a.env)().getBool("WEBGL_PACK")&&!0===n,l=o?T.getShapeAs3D(t):t,i=o?new(0,p.EncodeFloatPackedProgram)(l):new(0,u.EncodeFloatProgram)(l),c=this.runWebGLProgram(i,[{shape:l,dtype:r,dataId:e}],"float32"),d=this.texData.get(c.dataId),f=this.gpgpu.downloadByteEncodedFloatMatrixFromOutputTexture(d.texture.texture,d.texShape[0],d.texShape[1]).subarray(0,s);return this.disposeIntermediateTensorInfo(c),f}timerAvailable(){return(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0}time(e){let t=this.activeTimers,r=[],n=!1;null==this.programTimersStack?(this.programTimersStack=r,n=!0):this.activeTimers.push(r),this.activeTimers=r,e();let s=a.util.flatten(this.activeTimers.map(e=>e.query)).filter(e=>null!=e),o=a.util.flatten(this.activeTimers.map(e=>e.name)).filter(e=>null!=e);this.activeTimers=t,n&&(this.programTimersStack=null);let l={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if((0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let e=await Promise.all(s);l.kernelMs=a.util.sum(e),l.getExtraProfileInfo=()=>e.map((e,t)=>({name:o[t],ms:e})).map(e=>`${e.name}: ${e.ms}`).join(", ")}else l.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,l})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:a.util.now(),endMs:null}}endTimer(e){return(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.endQuery():e.endMs=a.util.now(),e}async getQueryTime(e){return(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.waitForQueryAndGetTime(e):e.endMs-e.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:r}=this.texData.get(e);return null!=r&&(this.disposeData(r.real.dataId,t),this.disposeData(r.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:r,texShape:n,usage:s,isPacked:a,slice:o}=this.texData.get(e),l=o&&o.origDataId||e,i=this.dataRefCount.get(l);i>1?this.dataRefCount.set(l,i-1):(this.dataRefCount.delete(l),null!=t&&(this.numBytesInGPU-=this.computeBytes(n,r),this.textureManager.releaseTexture(t,n,s,a)));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=S){return(0,a.env)().getBool("WEBGL_CPU_FORWARD")&&e.every(e=>null==this.texData.get(e.dataId).texture&&a.util.sizeFromShape(e.shape)<t)}getGPGPUContext(){return this.gpgpu}where(e){a.backend_util.warn("tf.where() in webgl locks the UI thread. Call tf.whereAsync() instead");let t=e.dataSync();return w(e.shape,t)}packedUnaryOp(e,t,r){let n=new(0,b.UnaryOpPackedProgram)(e.shape,t),s=this.compileAndRun(n,[e],r);return(0,a.engine)().makeTensorFromTensorInfo(s)}abs(e){if(this.shouldExecuteOnCPU([e])&&"complex64"!==e.dtype){let t=(0,m.simpleAbsImplCPU)(this.texData.get(e.dataId).values);return this.makeOutput(e.shape,e.dtype,t)}if((0,a.env)().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,_.ABS,e.dtype);let t=new(0,_.UnaryOpProgram)(e.shape,_.ABS),r=this.compileAndRun(t,[e]);return(0,a.engine)().makeTensorFromTensorInfo(r)}makeTensorInfo(e,t,r){let n;if("string"===t&&null!=r&&r.length>0&&a.util.isString(r[0])){let s=r.map(e=>a.util.encodeString(e));n=this.write(s,e,t)}else n=this.write(r,e,t);return this.texData.get(n).usage=null,{dataId:n,shape:e,dtype:t}}makeOutput(e,t,r){return(0,a.engine)().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,r),this)}unpackTensor(e){let t=new(0,k.UnpackProgram)(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new(0,g.PackProgram)(e.shape);return this.runWebGLProgram(t,[e],e.dtype,null,!0)}packedReshape(e,t){let r=[T.getBatchDim(e.shape),...T.getRowsCols(e.shape)],n={dtype:e.dtype,shape:r,dataId:e.dataId},s=[T.getBatchDim(t),...T.getRowsCols(t)],a=new(0,x.ReshapePackedProgram)(s,r),o=this.runWebGLProgram(a,[n],e.dtype,[r],!0);return{dataId:o.dataId,shape:t,dtype:o.dtype}}decode(e,t){let r,{isPacked:n,shape:s,dtype:o}=this.texData.get(e);if(null!=t){let e=a.util.sizeFromShape(s),r=t[0]*t[1]*4;a.util.assert(e<=r,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let u=T.getShapeAs3D(s);r=n?new(0,i.DecodeMatrixPackedProgram)(u):new(0,l.DecodeMatrixProgram)(u);let p=[null!=t?t:v.getDenseTexShape(u)],c=this.runWebGLProgram(r,[{shape:u,dtype:o,dataId:e}],o,p,!0,t);return{dtype:o,shape:s,dataId:c.dataId}}runWebGLProgram(e,t,r,n,s=!1,o){let l,i=this.makeTensorInfo(e.outputShape,r),u=this.texData.get(i.dataId);if(e.packedOutput&&(u.isPacked=!0),e.outPackingScheme===v.PackingScheme.DENSE&&(u.texShape=(null!=o?o:v.getDenseTexShape(e.outputShape)).map(e=>2*e)),null!=e.outTexUsage&&(u.usage=e.outTexUsage),0===a.util.sizeFromShape(i.shape))return u.values=a.util.getTypedArrayFromDType(i.dtype,0),i;let p=[],c=t.map(t=>{if("complex64"===t.dtype)throw Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let r=this.texData.get(t.dataId);if(null==r.texture){if(!e.packedInputs&&a.util.sizeFromShape(t.shape)<=(0,a.env)().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:t.shape,texData:null,isUniform:!0,uniformValues:r.values};e.packedInputs&&(r.isPacked=!0,r.shape=t.shape)}if(this.uploadToGPU(t.dataId),!!r.isPacked!=!!e.packedInputs)t=r.isPacked?this.unpackTensor(t):this.packTensor(t),p.push(t),r=this.texData.get(t.dataId);else if(r.isPacked&&!T.isReshapeFree(r.shape,t.shape)){let e=t,n=t.shape;t.shape=r.shape,t=this.packedReshape(t,n),p.push(t),r=this.texData.get(t.dataId),e.shape=n}return{shape:t.shape,texData:r,isUniform:!1}});this.uploadToGPU(i.dataId);let d={shape:i.shape,texData:u,isUniform:!1},f=h.makeShaderKey(e,c,d),m=this.getAndSaveBinary(f,()=>h.compileProgram(this.gpgpu,e,c,d)),g=null!=this.activeTimers;g&&(l=this.startTimer()),(0,a.env)().get("ENGINE_COMPILE_ONLY")||h.runProgram(this.gpgpu,m,c,d,n),p.forEach(e=>this.disposeIntermediateTensorInfo(e)),g&&(l=this.endTimer(l),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(l)}));let x=(0,a.env)().getNumber("WEBGL_FLUSH_THRESHOLD");if(x>0){let e=a.util.now();e-this.lastGlFlushTime>x&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=e)}if(!(0,a.env)().getBool("WEBGL_LAZILY_UNPACK")&&u.isPacked&&!1===s){let e=this.unpackTensor(i);return this.disposeIntermediateTensorInfo(i),e}return i}compileAndRun(e,t,r,n,s=!1){return r=r||t[0].dtype,this.runWebGLProgram(e,t,r,n,s)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||((0,a.env)().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),null!=this.canvas&&"undefined"!=typeof HTMLCanvasElement&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return null==this.floatPrecisionValue&&(this.floatPrecisionValue=(0,a.tidy)(()=>{if(!(0,a.env)().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=(0,a.env)().getBool("DEBUG");(0,a.env)().set("DEBUG",!1);let t=this.abs((0,a.scalar)(1e-8)).dataSync()[0];if((0,a.env)().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return 32===this.floatPrecision()?I:j}uploadToGPU(e){let t,r=this.texData.get(e),{shape:n,dtype:s,values:o,texture:l,usage:i,isPacked:u}=r;if(null!=l)return;let p=null!=this.activeTimers;p&&(t=a.util.now());let f=r.texShape;if(null==f&&(r.texShape=f=T.getTextureShapeFromLogicalShape(n,u)),null!=o){let e,l=T.getShapeAs3D(n),i=f[1],h=f[0],m=o instanceof Uint8Array||o instanceof Uint8ClampedArray;(u||!m)&&([i,h]=v.getPackedMatrixTextureShapeWidthHeight(f[0],f[1])),e=u?new(0,d.EncodeMatrixPackedProgram)(l,m):new(0,c.EncodeMatrixProgram)(l,m);let g=m?[h,i]:f,x=this.makeTensorInfo(g,s),y=this.texData.get(x.dataId);m?y.usage=v.TextureUsage.PIXELS:y.usage=v.TextureUsage.UPLOAD,y.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(x.dataId),i,h,o);let _=[[h,i]],b=this.runWebGLProgram(e,[x],s,_,!0),k=this.texData.get(b.dataId);r.texShape=k.texShape,r.isPacked=k.isPacked,r.usage=k.usage,(0,a.env)().get("ENGINE_COMPILE_ONLY")?this.disposeData(b.dataId):(r.texture=k.texture,r.values=null,this.texData.delete(b.dataId)),this.disposeIntermediateTensorInfo(x),p&&(this.uploadWaitMs+=a.util.now()-t)}else r.texture=this.acquireTexture(f,i,s,u)}convertAndCacheOnCPU(e,t){let r=this.texData.get(e),{dtype:n}=r;return null!=t&&(r.values=function(e,t){if("float32"===t||"complex64"===t)return e;if("int32"===t||"bool"===t){let r="int32"===t?new Int32Array(e.length):new Uint8Array(e.length);for(let t=0;t<r.length;++t)r[t]=Math.round(e[t]);return r}throw Error(`Unknown dtype ${t}`)}(t,n)),r.values}acquireTexture(e,t,r,n){if(this.numBytesInGPU+=this.computeBytes(e,r),!this.warnedAboutMemory&&this.numBytesInGPU>1048576*this.numMBBeforeWarning){let e=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${e} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,n)}computeBytes(e,t){return e[0]*e[1]*a.util.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)}for(let[,t]of Object.entries(this.binaryCache)){let r=new Promise(e=>{try{this.checkCompletion_(t),e(!0)}catch(e){throw e}});e.push(r)}return Promise.all(e)}async checkCompletionAsync_(e){return this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(e):(await (0,a.nextFrame)(),this.checkCompletionAsync_(e))}checkCompletion_(e){if(!1===this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.gl.LINK_STATUS)){if(console.log(this.gpgpu.gl.getProgramInfoLog(e.webGLProgram)),!1===this.gpgpu.gl.getShaderParameter(e.fragmentShader,this.gpgpu.gl.COMPILE_STATUS))throw T.logShaderSourceAndInfoLog(e.source,this.gpgpu.gl.getShaderInfoLog(e.fragmentShader)),Error("Failed to compile fragment shader.");throw Error("Failed to link vertex and fragment shaders.")}return!0}getUniformLocations(){for(let e of Object.values(this.binaryCache)){this.gpgpu.buildVao(e.webGLProgram);let{variablesLocations:t,customUniformLocations:r,infLoc:n,nanLoc:s,outShapeLocation:a,outShapeStridesLocation:o,outTexShapeLocation:l}=(0,h.getUniformLocations)(this.gpgpu,e.program,e.webGLProgram);e.variablesLocations=t,e.customUniformLocations=r,e.infLoc=n,e.nanLoc=s,e.outShapeLocation=a,e.outShapeStridesLocation=o,e.outTexShapeLocation=l}}createTensorFromGPUData(e,t,r){e.channels=e.channels||"RGBA";let{texture:n,height:s,width:o,channels:l}=e,i=(0,a.engine)().backend;if(!i.gpgpu.gl.isTexture(n))throw Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let u=i.writeTexture(n,t,r,s,o,l);return(0,a.engine)().makeTensorFromDataId(u,t,r,i)}}E.nextDataId=0},{"./flags_webgl":"68mZX","@tensorflow/tfjs-core":"hADTC","./canvas_util":"45XFH","./decode_matrix_gpu":"2UeOM","./decode_matrix_packed_gpu":"1hjAY","./encode_float_gpu":"atnH0","./encode_float_packed_gpu":"fY0wW","./encode_matrix_gpu":"llrtn","./encode_matrix_packed_gpu":"hMhmd","./gpgpu_context":"hJTBE","./gpgpu_math":"aCqaC","./kernel_utils/shared":"awGPZ","./pack_gpu":"knhaV","./reshape_packed_gpu":"bzKQT","./tex_util":"kxvAY","./texture_manager":"6Kc6r","./unaryop_gpu":"dKkzg","./unaryop_packed_gpu":"5kSmi","./unpack_gpu":"fLNDa","./webgl_util":"hSqB7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"68mZX":[function(e,t,r,n){var s=e("@tensorflow/tfjs-core"),a=e("./webgl_util");let o=(0,s.env)();o.registerFlag("HAS_WEBGL",()=>o.getNumber("WEBGL_VERSION")>0),o.registerFlag("WEBGL_VERSION",()=>(0,a.isWebGLVersionEnabled)(2)?2:+!!(0,a.isWebGLVersionEnabled)(1)),o.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1),o.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>2===o.get("WEBGL_VERSION")),o.registerFlag("WEBGL_CPU_FORWARD",()=>!0),o.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1),o.registerFlag("WEBGL_PACK",()=>o.getBool("HAS_WEBGL")),o.registerFlag("WEBGL_PACK_NORMALIZATION",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_CLIP",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_REDUCE",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_LAZILY_UNPACK",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_CONV_IM2COL",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_CONV2DTRANSPOSE",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>(0,a.getWebGLMaxTextureSize)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>(0,a.getMaxTexturesInShader)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=o.getNumber("WEBGL_VERSION");return 0===e?0:(0,a.getWebGLDisjointQueryTimerVersion)(e)}),o.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>o.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!s.device_util.isMobile()),o.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>(0,a.isCapableOfRenderingToFloatTexture)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>!o.getBool("WEBGL_FORCE_F16_TEXTURES")&&o.getBool("WEBGL_RENDER_FLOAT32_CAPABLE")),o.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>(0,a.isDownloadFloatTextureEnabled)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_FENCE_API_ENABLED",()=>(0,a.isWebGLFenceEnabled)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>4*!!o.getBool("WEBGL_RENDER_FLOAT32_ENABLED")),o.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if("number"!=typeof e)throw Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be a number but got ${e}.`);if(e<0&&-1!==e)throw Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)}),o.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>s.device_util.isMobile()?1:-1,e=>{if("number"!=typeof e)throw Error(`WEBGL_FLUSH_THRESHOLD must be a number but got ${e}.`);if(e<0&&-1!==e)throw Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)}),o.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128),o.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1),o.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5),o.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128),o.registerFlag("WEBGL_EXP_CONV",()=>!1),o.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>o.getBool("IS_TEST")),o.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0),o.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1),o.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1),o.registerFlag("ENGINE_COMPILE_ONLY",()=>!1)},{"@tensorflow/tfjs-core":"hADTC","./webgl_util":"hSqB7"}],hSqB7:[function(e,t,r,n){let s,a;var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"callAndCheck",()=>p),o.export(r,"canBeRepresented",()=>c),o.export(r,"getWebGLErrorMessage",()=>d),o.export(r,"getExtensionOrThrow",()=>f),o.export(r,"createVertexShader",()=>h),o.export(r,"createFragmentShader",()=>m),o.export(r,"logShaderSourceAndInfoLog",()=>x),o.export(r,"createProgram",()=>v),o.export(r,"linkProgram",()=>y),o.export(r,"validateProgram",()=>_),o.export(r,"createStaticVertexBuffer",()=>b),o.export(r,"createStaticIndexBuffer",()=>k),o.export(r,"getNumChannels",()=>T),o.export(r,"createTexture",()=>w),o.export(r,"validateTextureSize",()=>I),o.export(r,"createFramebuffer",()=>j),o.export(r,"bindVertexBufferToProgramAttribute",()=>C),o.export(r,"bindTextureUnit",()=>N),o.export(r,"unbindTextureUnit",()=>S),o.export(r,"getProgramUniformLocationOrThrow",()=>E),o.export(r,"getProgramUniformLocation",()=>A),o.export(r,"bindTextureToProgramUniformSampler",()=>F),o.export(r,"bindCanvasToFramebuffer",()=>R),o.export(r,"bindColorTextureToFramebuffer",()=>D),o.export(r,"unbindColorTextureFromFramebuffer",()=>P),o.export(r,"validateFramebuffer",()=>$),o.export(r,"getFramebufferErrorMessage",()=>M),o.export(r,"getBatchDim",()=>q),o.export(r,"getRowsCols",()=>L),o.export(r,"getShapeAs3D",()=>V),o.export(r,"getTextureShapeFromLogicalShape",()=>G),o.export(r,"isReshapeFree",()=>z),o.export(r,"getWebGLMaxTextureSize",()=>U),o.export(r,"resetMaxTextureSize",()=>X),o.export(r,"resetMaxTexturesInShader",()=>W),o.export(r,"getMaxTexturesInShader",()=>H),o.export(r,"getWebGLDisjointQueryTimerVersion",()=>K),o.export(r,"hasExtension",()=>J),o.export(r,"isWebGLVersionEnabled",()=>Y),o.export(r,"isCapableOfRenderingToFloatTexture",()=>Z),o.export(r,"isDownloadFloatTextureEnabled",()=>Q),o.export(r,"isWebGLFenceEnabled",()=>et),o.export(r,"assertNotComplex",()=>er);var l=e("@tensorflow/tfjs-core"),i=e("./canvas_util"),u=e("./tex_util");function p(e,t){let r=t();return(0,l.env)().getBool("DEBUG")&&function(e){let t=e.getError();if(t!==e.NO_ERROR)throw Error("WebGL Error: "+d(e,t))}(e),r}function c(e){return!!((0,l.env)().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||0===e||596e-10<Math.abs(e)&&65504>Math.abs(e))}function d(e,t){switch(t){case e.NO_ERROR:return"NO_ERROR";case e.INVALID_ENUM:return"INVALID_ENUM";case e.INVALID_VALUE:return"INVALID_VALUE";case e.INVALID_OPERATION:return"INVALID_OPERATION";case e.INVALID_FRAMEBUFFER_OPERATION:return"INVALID_FRAMEBUFFER_OPERATION";case e.OUT_OF_MEMORY:return"OUT_OF_MEMORY";case e.CONTEXT_LOST_WEBGL:return"CONTEXT_LOST_WEBGL";default:return`Unknown error code ${t}`}}function f(e,t){return O(e,()=>e.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function h(e,t){let r=O(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(p(e,()=>e.shaderSource(r,t)),p(e,()=>e.compileShader(r)),!1===e.getShaderParameter(r,e.COMPILE_STATUS))throw console.log(e.getShaderInfoLog(r)),Error("Failed to compile vertex shader.");return r}function m(e,t){let r=O(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(p(e,()=>e.shaderSource(r,t)),p(e,()=>e.compileShader(r)),(0,l.env)().get("ENGINE_COMPILE_ONLY"))return r;if(!1===e.getShaderParameter(r,e.COMPILE_STATUS))throw x(t,e.getShaderInfoLog(r)),Error("Failed to compile fragment shader.");return r}let g=/ERROR: [0-9]+:([0-9]+):/g;function x(e,t){let r=g.exec(t);if(null==r){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let n=+r[1],s=e.split("\n"),a=s.length.toString().length+2,o=s.map((e,t)=>l.util.rightPad((t+1).toString(),a)+e),i=0;for(let e=0;e<o.length;e++)i=Math.max(o[e].length,i);let u=o.slice(0,n-1),p=o.slice(n-1,n),c=o.slice(n);console.log(u.join("\n")),console.log(t.split("\n")[0]),console.log(`%c ${l.util.rightPad(p[0],i)}`,"border:1px solid red; background-color:#e3d2d2; color:#a61717"),console.log(c.join("\n"))}function v(e){return O(e,()=>e.createProgram(),"Unable to create WebGLProgram.")}function y(e,t){if(p(e,()=>e.linkProgram(t)),!(0,l.env)().get("ENGINE_COMPILE_ONLY")&&!1===e.getProgramParameter(t,e.LINK_STATUS))throw console.log(e.getProgramInfoLog(t)),Error("Failed to link vertex and fragment shaders.")}function _(e,t){if(p(e,()=>e.validateProgram(t)),!1===e.getProgramParameter(t,e.VALIDATE_STATUS))throw console.log(e.getProgramInfoLog(t)),Error("Shader program validation failed.")}function b(e,t){let r=O(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return p(e,()=>e.bindBuffer(e.ARRAY_BUFFER,r)),p(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),r}function k(e,t){let r=O(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return p(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,r)),p(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),r}function T(){return 2===(0,l.env)().getNumber("WEBGL_VERSION")?1:4}function w(e){return O(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function I(e,t){let r=(0,l.env)().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0)throw Error(`Requested texture size [${e}x${t}] is invalid.`);if(e>r||t>r)throw Error(`Requested texture size [${e}x${t}] greater than WebGL maximum on this browser / GPU [${r}x${r}].`)}function j(e){return O(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function C(e,t,r,n,s,a,o){let l=e.getAttribLocation(t,r);return -1!==l&&(p(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),p(e,()=>e.vertexAttribPointer(l,s,e.FLOAT,!1,a,o)),p(e,()=>e.enableVertexAttribArray(l)),!0)}function N(e,t,r){B(e,r),p(e,()=>e.activeTexture(e.TEXTURE0+r)),p(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function S(e,t){B(e,t),p(e,()=>e.activeTexture(e.TEXTURE0+t)),p(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function E(e,t,r){return O(e,()=>e.getUniformLocation(t,r),'uniform "'+r+'" not present in program.')}function A(e,t,r){return e.getUniformLocation(t,r)}function F(e,t,r,n){p(e,()=>N(e,t,n)),p(e,()=>e.uniform1i(r,n))}function R(e){p(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),p(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),p(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function D(e,t,r){p(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,r)),p(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function P(e,t){p(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),p(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function $(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw Error("Error binding framebuffer: "+M(e,t))}function M(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 O(e,t,r){let n=p(e,()=>t());if(null==n)throw Error(r);return n}function B(e,t){let r=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+e.TEXTURE0;if(n<e.TEXTURE0||n>r){let e=`[gl.TEXTURE0, gl.TEXTURE${r}]`;throw Error(`textureUnit must be in ${e}.`)}}function q(e,t=2){return l.util.sizeFromShape(e.slice(0,e.length-t))}function L(e){if(0===e.length)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function V(e){let t=[1,1,1];return 0!==e.length&&(1!==e.length||1!==e[0])&&(t=[q(e),...L(e)]),t}function G(e,t=!1){let r=(0,l.env)().getNumber("WEBGL_MAX_TEXTURE_SIZE"),n=(0,l.env)().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");n===1/0&&(0,l.env)().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(n=r/2),t&&(r*=2,n*=2,1===(e=e.map((t,r)=>r>=e.length-2?l.util.nearestLargerEven(e[r]):e[r])).length&&(e=[2,e[0]])),2!==e.length&&(e=l.util.squeezeShape(e).newShape);let s=l.util.sizeFromShape(e),a=null;e.length<=1&&s<=r?a=[1,s]:2===e.length&&e[0]<=r&&e[1]<=r?a=e:3===e.length&&e[0]*e[1]<=r&&e[2]<=r?a=[e[0]*e[1],e[2]]:3===e.length&&e[0]<=r&&e[1]*e[2]<=r?a=[e[0],e[1]*e[2]]:4===e.length&&e[0]*e[1]*e[2]<=r&&e[3]<=r?a=[e[0]*e[1]*e[2],e[3]]:4===e.length&&e[0]<=r&&e[1]*e[2]*e[3]<=r&&(a=[e[0],e[1]*e[2]*e[3]]);let o=null!=a&&Math.max(...a)>n&&Math.min(...a)<=(t?2:1)&&Math.min(...a)>0;if(null==a||o)if(t){let t=q(e),r=2,n=2;e.length&&([r,n]=L(e)),s=r/2*t*(n/2),a=l.util.sizeToSquarishShape(s).map(e=>2*e)}else a=l.util.sizeToSquarishShape(s);return a}function z(e,t){if(e=e.slice(-2),t=t.slice(-2),l.util.arraysEqual(e,t)||!e.length||!t.length||0===e[0]||0===e[1]||0===t[0]||0===t[1])return!0;if(e.length!==t.length){let r=e[e.length-1],n=t[t.length-1];if(r===n||r%2==0&&n%2==0&&(1===e[0]||1===t[0]))return!0}return e[1]===t[1]&&e[0]%2==0&&t[0]%2==0}function U(e){if(null==s){let t=(0,i.getWebGLContext)(e);s=t.getParameter(t.MAX_TEXTURE_SIZE)}return s}function X(){s=null}function W(){a=null}function H(e){if(null==a){let t=(0,i.getWebGLContext)(e);a=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,a)}function K(e){if(0===e)return 0;let t=(0,i.getWebGLContext)(e);return J(t,"EXT_disjoint_timer_query_webgl2")&&2===e?2:+!!J(t,"EXT_disjoint_timer_query")}function J(e,t){return null!=e.getExtension(t)}function Y(e){try{let t=(0,i.getWebGLContext)(e);if(null!=t)return!0}catch(e){console.log("Error when getting WebGL context: ",e)}return!1}function Z(e){if(0===e)return!1;let t=(0,i.getWebGLContext)(e);if(1===e){if(!J(t,"OES_texture_float"))return!1}else if(!J(t,"EXT_color_buffer_float"))return!1;return ee(t)}function Q(e){if(0===e)return!1;let t=(0,i.getWebGLContext)(e);if(1===e){if(!J(t,"OES_texture_float")||!J(t,"WEBGL_color_buffer_float"))return!1}else{if(J(t,"EXT_color_buffer_float"))return ee(t);let e="EXT_color_buffer_half_float";if(J(t,e)){var r,n;let s,a,o,l,i=t.getExtension(e);return r=t,n=i,s=(0,u.getTextureConfig)(r,n),a=r.createTexture(),r.bindTexture(r.TEXTURE_2D,a),r.texImage2D(r.TEXTURE_2D,0,s.internalFormatHalfFloat,1,1,0,s.textureFormatFloat,s.textureTypeHalfFloat,null),o=r.createFramebuffer(),r.bindFramebuffer(r.FRAMEBUFFER,o),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,a,0),l=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE,r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(a),r.deleteFramebuffer(o),l}return!1}return ee(t)}function ee(e){let t=(0,u.getTextureConfig)(e),r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r),e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);let n=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,n),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);let s=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(r),e.deleteFramebuffer(n),s}function et(e){return 2===e&&null!=(0,i.getWebGLContext)(e).fenceSync}function er(e,t){Array.isArray(e)||(e=[e]),e.forEach(e=>{null!=e&&l.util.assert("complex64"!==e.dtype,()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}},{"@tensorflow/tfjs-core":"hADTC","./canvas_util":"45XFH","./tex_util":"kxvAY","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"45XFH":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clearWebGLContext",()=>i),s.export(r,"setWebGLContext",()=>u),s.export(r,"getWebGLContext",()=>function e(t,r){if(!(t in o)||null!=r){let e=function(e,t){if(1!==e&&2!==e)throw Error("Cannot get WebGL rendering context, WebGL is disabled.");let r=null==t?function(e){if(!(0,a.env)().getBool("IS_SAFARI")&&"undefined"!=typeof OffscreenCanvas&&2===e)return new OffscreenCanvas(300,150);if("undefined"!=typeof document)return document.createElement("canvas");throw Error("Cannot create a canvas in this context")}(e):t;return(r.addEventListener("webglcontextlost",t=>{t.preventDefault(),delete o[e]},!1),(0,a.env)().getBool("SOFTWARE_WEBGL_ENABLED")&&(l.failIfMajorPerformanceCaveat=!1),1===e)?r.getContext("webgl",l)||r.getContext("experimental-webgl",l):r.getContext("webgl2",l)}(t,r);if(null===e)return console.log("Could not get context for WebGL version",t),null;o[t]=e}let n=o[t];return null==n||n.isContextLost()?(delete o[t],e(t)):(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),o[t])});var a=e("@tensorflow/tfjs-core");let o={},l={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function i(e){delete o[e]}function u(e,t){o[e]=t}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kxvAY:[function(e,t,r,n){var s,a,o,l,i,u,p=e("@parcel/transformer-js/src/esmodule-helpers.js");p.defineInteropFlag(r),p.export(r,"PackingScheme",()=>l),p.export(r,"TextureUsage",()=>i),p.export(r,"PhysicalTextureType",()=>u),p.export(r,"getUnpackedMatrixTextureShapeWidthHeight",()=>d),p.export(r,"getUnpackedArraySizeFromMatrixSize",()=>f),p.export(r,"getColorMatrixTextureShapeWidthHeight",()=>h),p.export(r,"getDenseTexShape",()=>m),p.export(r,"getMatrixSizeFromUnpackedArraySize",()=>g),p.export(r,"decodeMatrixFromUnpackedColorRGBAArray",()=>x),p.export(r,"getPackedMatrixTextureShapeWidthHeight",()=>v),p.export(r,"getPackedRGBAArraySizeFromMatrixShape",()=>y),p.export(r,"getTextureConfig",()=>_);var c=e("@tensorflow/tfjs-core");function d(e,t){return[t,e]}function f(e,t){return e*t}function h(e,t){return[4*t,e]}function m(e){let t=Math.ceil(c.util.sizeFromShape(e)/4);return c.util.sizeToSquarishShape(t)}function g(e,t){if(e%t!=0)throw Error(`unpackedSize (${e}) must be a multiple of ${t}`);return e/t}function x(e,t,r){let n=e.length*r/4;if(t.length<n)throw Error(`matrix length (${t.length}) must be >= ${n}`);let s=0;for(let n=0;n<e.length;n+=4)for(let a=0;a<r;a++)t[s++]=e[n+a]}function v(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function y(e,t){let[r,n]=v(e,t);return r*n*4}function _(e,t){let r,n,s,a,o,l,i,u,p,d;return 2===(0,c.env)().getNumber("WEBGL_VERSION")?(r=e.R32F,n=e.R16F,s=e.RGBA16F,a=e.RGBA32F,o=e.RED,i=4,u=1,p=e.HALF_FLOAT,d=e.FLOAT,l=e.RGBA8):(r=e.RGBA,n=e.RGBA,s=e.RGBA,a=e.RGBA,o=e.RGBA,i=4,u=4,p=null!=t?t.HALF_FLOAT_OES:null,d=e.FLOAT,l=e.RGBA),{internalFormatFloat:r,internalFormatHalfFloat:n,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:a,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:i,defaultNumChannels:u,textureTypeHalfFloat:p,textureTypeFloat:d}}(s=l||(l={}))[s.DENSE=0]="DENSE",s[s.SHARED_BATCH=1]="SHARED_BATCH",(a=i||(i={}))[a.RENDER=0]="RENDER",a[a.UPLOAD=1]="UPLOAD",a[a.PIXELS=2]="PIXELS",a[a.DOWNLOAD=3]="DOWNLOAD",(o=u||(u={}))[o.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",o[o.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",o[o.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",o[o.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",o[o.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2UeOM":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DecodeMatrixProgram",()=>u);var a=e("./glsl_version"),o=e("./gpgpu_math"),l=e("./shader_compiler_util"),i=e("./tex_util");class u{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=i.PackingScheme.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=(0,a.getGlslDifferences)();this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { ${this.enableShapeUniforms?l.getOutputLogicalCoordinatesFromFlatIndexByUniform(["r","c","d"],e):l.getLogicalCoordinatesFromFlatIndex(["r","c","d"],e)} return ivec3(r, c, d); } void main() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1])); int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y); vec4 result = vec4(0.); for (int i=0; i<4; i++) { int flatIndex = index + i; ivec3 rc = outCoordsFromFlatIndex(flatIndex); result[i] = getA(rc.x, rc.y, rc.z); } ${t.output} = result; } `}}},{"./glsl_version":"5v0d7","./gpgpu_math":"aCqaC","./shader_compiler_util":"ll5XN","./tex_util":"kxvAY","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5v0d7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getGlslDifferences",()=>o);var a=e("@tensorflow/tfjs-core");function o(){let e,t,r,n,s,o,l,i,u,p;return 2===(0,a.env)().getNumber("WEBGL_VERSION")?(e="#version 300 es",t="in",r="out",n="in",s="texture",o="outputColor",l="out vec4 outputColor;",i=(0,a.env)().getBool("WEBGL2_ISNAN_CUSTOM")?` bool isnan_custom(float val) { uint floatToUint = floatBitsToUint(val); return (floatToUint & 0x7fffffffu) > 0x7f800000u; } bvec4 isnan_custom(vec4 val) { return bvec4(isnan_custom(val.x), isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w)); } #define isnan(value) isnan_custom(value) `:"",u="",p=` #define round(value) newRound(value) int newRound(float value) { return int(floor(value + 0.5)); } ivec4 newRound(vec4 value) { return ivec4(floor(value + vec4(0.5))); } `):(e="",t="attribute",r="varying",n="varying",s="texture2D",o="gl_FragColor",l="",i=` #define isnan(value) isnan_custom(value) bool isnan_custom(float val) { return (val > 0. || val< 1. || val == 0.) ? false : true; } bvec4 isnan_custom(vec4 val) { return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w)); } `,u=` uniform float INFINITY; bool isinf(float val) { return abs(val) == INFINITY; } bvec4 isinf(vec4 val) { return equal(abs(val), vec4(INFINITY)); } `,p=` int round(float value) { return int(floor(value + 0.5)); } ivec4 round(vec4 value) { return ivec4(floor(value + vec4(0.5))); } `),{version:e,attribute:t,varyingVs:r,varyingFs:n,texture2D:s,output:o,defineOutput:l,defineSpecialNaN:i,defineSpecialInf:u,defineRound:p}}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aCqaC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"compileProgram",()=>i),s.export(r,"getUniformLocations",()=>u),s.export(r,"runProgram",()=>c),s.export(r,"makeShaderKey",()=>d),s.export(r,"useShapeUniforms",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("./shader_compiler"),l=e("./webgl_util");function i(e,t,r,n){let s=r.map((e,r)=>{let n={logicalShape:e.shape,texShape:e.isUniform?null:e.texData.texShape,isUniform:e.isUniform,isPacked:!e.isUniform&&e.texData.isPacked,flatOffset:null};return null!=e.texData&&null!=e.texData.slice&&e.texData.slice.flatOffset>0&&(n.flatOffset=e.texData.slice.flatOffset),{name:t.variableNames[r],shapeInfo:n}}),i=s.map(e=>e.shapeInfo),p={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},c=o.makeShader(s,p,t),d=(0,l.createFragmentShader)(e.gl,c),f=e.createProgram(d);return(0,a.env)().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:d,source:c,webGLProgram:f,inShapeInfos:i,outShapeInfo:p,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(e.buildVao(f),Object.assign({program:t,fragmentShader:d,source:c,webGLProgram:f,inShapeInfos:i,outShapeInfo:p},u(e,t,f)))}function u(e,t,r){let n,s,o,l=[],i=[],u=null,p=null;for(let n of(p=e.getUniformLocation(r,"NAN",!1),1===(0,a.env)().getNumber("WEBGL_VERSION")&&(u=e.getUniformLocation(r,"INFINITY",!1)),t.variableNames)){let s={name:n,uniform:e.getUniformLocation(r,n,!1),offset:e.getUniformLocation(r,`offset${n}`,!1)};t.enableShapeUniforms&&(s.shape=e.getUniformLocation(r,`${n}Shape`,!1),s.texShape=e.getUniformLocation(r,`${n}TexShape`,!1)),l.push(s)}if(t.enableShapeUniforms&&(n=e.getUniformLocation(r,"outShape",!1),o=e.getUniformLocation(r,"outShapeStrides",!1),s=e.getUniformLocation(r,"outTexShape",!1)),t.customUniforms)for(let n of t.customUniforms)i.push(e.getUniformLocation(r,n.name,!1));return{variablesLocations:l,customUniformLocations:i,infLoc:u,nanLoc:p,outShapeLocation:n,outShapeStridesLocation:o,outTexShapeLocation:s}}function p(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach((e,r)=>{let n=e.logicalShape,s=t[r],o=s.shape;if(!a.util.arraysEqual(n,o))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${n} and ${o} must match`);if(e.isUniform&&s.isUniform)return;let l=e.texShape,i=s.isUniform?null:s.texData.texShape;if(!a.util.arraysEqual(l,i))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${l} and ${i} must match`)})}function c(e,t,r,n,s){t.program.enableShapeUniforms||(p(t.inShapeInfos,r),p([t.outShapeInfo],[n]));let l=n.texData.texture,i=n.texData.texShape;n.texData.isPacked?e.setOutputPackedMatrixTexture(l.texture,i[0],i[1]):e.setOutputMatrixTexture(l.texture,i[0],i[1]),e.setProgram(t.webGLProgram),e.bindVertexArray(t.webGLProgram.vao),1===(0,a.env)().getNumber("WEBGL_VERSION")&&null!==t.infLoc&&e.gl.uniform1f(t.infLoc,1/0),null!==t.nanLoc&&e.gl.uniform1f(t.nanLoc,NaN);for(let n=0;n<r.length;++n){let s=r[n],{uniform:l,offset:i,shape:u,texShape:p}=t.variablesLocations[n];if(u){let{uniformShape:r}=o.getUniformInfoFromShape(t.program.packedInputs,s.shape,s.texData.texShape);switch(r.length){case 1:e.gl.uniform1iv(u,new Int32Array(r));break;case 2:e.gl.uniform2iv(u,new Int32Array(r));break;case 3:e.gl.uniform3iv(u,new Int32Array(r));break;case 4:e.gl.uniform4iv(u,new Int32Array(r))}}if(p&&e.gl.uniform2i(p,s.texData.texShape[0],s.texData.texShape[1]),null!=l){if(s.isUniform){if(2>a.util.sizeFromShape(s.shape))e.gl.uniform1f(l,s.uniformValues[0]);else{let t=s.uniformValues;t instanceof Float32Array||(t=new Float32Array(t)),e.gl.uniform1fv(l,t)}continue}null!=s.texData.slice&&null!=i&&e.gl.uniform1i(i,s.texData.slice.flatOffset),e.setInputMatrixTexture(s.texData.texture.texture,l,n)}}let u=t.outShapeLocation;if(u)switch(n.shape.length){case 1:e.gl.uniform1iv(u,new Int32Array(n.shape));break;case 2:e.gl.uniform2iv(u,new Int32Array(n.shape));break;case 3:e.gl.uniform3iv(u,new Int32Array(n.shape));break;case 4:e.gl.uniform4iv(u,new Int32Array(n.shape))}if(t.outShapeStridesLocation){let r=a.util.computeStrides(n.shape);switch(n.shape.length){case 2:e.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(r));break;case 3:e.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(r));break;case 4:e.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(r))}}if(t.outTexShapeLocation&&e.gl.uniform2i(t.outTexShapeLocation,n.texData.texShape[0],n.texData.texShape[1]),t.program.customUniforms&&s)for(let r=0;r<t.program.customUniforms.length;++r){let n=t.program.customUniforms[r],a=t.customUniformLocations[r],o=s[r];if("float"===n.type)e.gl.uniform1fv(a,o);else if("vec2"===n.type)e.gl.uniform2fv(a,o);else if("vec3"===n.type)e.gl.uniform3fv(a,o);else if("vec4"===n.type)e.gl.uniform4fv(a,o);else if("int"===n.type)e.gl.uniform1iv(a,o);else if("ivec2"===n.type)e.gl.uniform2iv(a,o);else if("ivec3"===n.type)e.gl.uniform3iv(a,o);else if("ivec4"===n.type)e.gl.uniform4iv(a,o);else throw Error(`uniform type ${n.type} is not supported yet.`)}e.executeProgram()}function d(e,t,r){let n="";t.concat(r).forEach(t=>{let s=null!=t.texData&&null!=t.texData.slice&&t.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!t.isUniform){let l=t.texData.texShape,{useSqueezeShape:i,uniformShape:u,keptDims:p}=o.getUniformInfoFromShape(e.packedInputs,t.shape,l),c="",d="",f="";if(1===u.length&&e.packedInputs){let e=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];c=`${e[0]>1}_${e[1]>1}`}else if(2!==u.length||e.packedInputs){if(u.length>2&&!e.packedInputs){let e=a.util.computeStrides(u);f=`${e[0]===l[1]}_${e[e.length-1]===l[1]}`}}else d=`${u[0]>1}_${u[1]>1}`;let h=t.shape.length,m=2===u.length&&a.util.arraysEqual(t.shape,l),g=1===a.util.sizeFromShape(t.shape),x=a.backend_util.getBroadcastDims(t.shape,r.shape),v=!e.packedInputs&&h===r.shape.length&&a.util.arraysEqual(l,r.texData.texShape),y=e.packedInputs||u.length>2?"":`${l[0]>1}_${l[1]>1}`;n+=`${h}_${v}_${i?p:""}_${u.length}_${g}_${x}_${m}_${c}_${d}_${f}_${y}_${s}`}else{let e=t.isUniform?"uniform":t.texData.texShape;n+=`${t.shape}_${e}_${s}`}});let s=e.userCode,l=e.constructor.name;return l+("_"+n+"_"+s+`${(0,a.env)().getNumber("WEBGL_VERSION")}`)}function f(e){return(0,a.env)().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}},{"@tensorflow/tfjs-core":"hADTC","./shader_compiler":"2b0aL","./webgl_util":"hSqB7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2b0aL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"makeShader",()=>u),s.export(r,"getCoordsDataType",()=>x),s.export(r,"getUniformInfoFromShape",()=>v),s.export(r,"squeezeInputInfo",()=>y);var a=e("@tensorflow/tfjs-core"),o=e("./glsl_version"),l=e("./shader_compiler_util");let{getBroadcastDims:i}=a.backend_util;function u(e,t,r){var n,s,u,b;let k,T,w=[];if(e.forEach(e=>{let t=a.util.sizeFromShape(e.shapeInfo.logicalShape);if(e.shapeInfo.isUniform?w.push(`uniform float ${e.name}${t>1?`[${t}]`:""};`):(w.push(`uniform sampler2D ${e.name};`),w.push(`uniform int offset${e.name};`)),r.enableShapeUniforms){let{uniformShape:t}=v(r.packedInputs,e.shapeInfo.logicalShape,e.shapeInfo.texShape);switch(t.length){case 1:w.push(`uniform int ${e.name}Shape;`);break;case 2:w.push(`uniform ivec2 ${e.name}Shape;`);break;case 3:w.push(`uniform ivec3 ${e.name}Shape;`);break;case 4:w.push(`uniform ivec4 ${e.name}Shape;`)}w.push(`uniform ivec2 ${e.name}TexShape;`)}}),r.enableShapeUniforms){switch(t.logicalShape.length){case 1:w.push("uniform int outShape;");break;case 2:w.push("uniform ivec2 outShape;"),w.push("uniform int outShapeStrides;");break;case 3:w.push("uniform ivec3 outShape;"),w.push("uniform ivec2 outShapeStrides;");break;case 4:w.push("uniform ivec4 outShape;"),w.push("uniform ivec3 outShapeStrides;")}w.push("uniform ivec2 outTexShape;")}r.customUniforms&&r.customUniforms.forEach(e=>{w.push(`uniform ${e.type} ${e.name}${e.arrayIndex?`[${e.arrayIndex}]`:""};`)});let I=w.join("\n"),j=e.map(e=>(function(e,t,r=!1,n){let s="";r?s+=function e(t,r){switch(t.shapeInfo.logicalShape.length){case 0:let n,s,l;return s="get"+(n=t.name).charAt(0).toUpperCase()+n.slice(1),l=(0,o.getGlslDifferences)(),` vec4 ${s}() { return ${l.texture2D}(${n}, halfCR); } `;case 1:return function(e,t){let r=e.name,n="get"+r.charAt(0).toUpperCase()+r.slice(1),s=e.shapeInfo.texShape,a=(0,o.getGlslDifferences)();if(t)return` vec4 ${n}(int index) { ivec2 packedTexShape = ivec2(ceil(float(${r}TexShape[0]) / 2.0), ceil(float(${r}TexShape[1]) / 2.0)); vec2 uv = packedUVfrom1D( packedTexShape[0], packedTexShape[1], index); return ${a.texture2D}(${r}, uv); } `;let l=[Math.ceil(s[0]/2),Math.ceil(s[1]/2)];return` vec4 ${n}(int index) { vec2 uv = packedUVfrom1D( ${l[0]}, ${l[1]}, index); return ${a.texture2D}(${r}, uv); } `}(t,r);case 2:return function(e,t){let r=e.shapeInfo.logicalShape,n=e.name,s="get"+n.charAt(0).toUpperCase()+n.slice(1),l=e.shapeInfo.texShape,i=l[0],u=l[1],p=(0,o.getGlslDifferences)();if(null!=l&&a.util.arraysEqual(r,l))return t?` vec4 ${s}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${n}TexShape[1], ${n}TexShape[0]); return ${p.texture2D}(${n}, uv); } `:` vec4 ${s}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${u}.0, ${i}.0); return ${p.texture2D}(${n}, uv); } `;if(t)return` vec4 ${s}(int row, int col) { ivec2 packedTexShape = ivec2(ceil(float(${n}TexShape[0]) / 2.0), ceil(float(${n}TexShape[1]) / 2.0)); int valuesPerRow = int(ceil(float(${n}Shape[1]) / 2.0)); vec2 uv = packedUVfrom2D(valuesPerRow, packedTexShape[0], packedTexShape[1], row, col); return ${p.texture2D}(${n}, uv); } `;let c=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)],d=Math.ceil(r[1]/2);return` vec4 ${s}(int row, int col) { vec2 uv = packedUVfrom2D(${d}, ${c[0]}, ${c[1]}, row, col); return ${p.texture2D}(${n}, uv); } `}(t,r);case 3:return function(t,r){let n=t.shapeInfo.logicalShape,s=t.name,a="get"+s.charAt(0).toUpperCase()+s.slice(1),l=t.shapeInfo.texShape,i=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];if(1===n[0]){let s=y(t,n.slice(1));return` ${e(s,r)} vec4 ${a}(int b, int row, int col) { return ${a}(${_(["b","row","col"],[1,2])}); } `}let u=(0,o.getGlslDifferences)();if(r)return` vec4 ${a}(int b, int row, int col) { ivec2 packedTexShape = ivec2(ceil(float(${s}TexShape[0]) / 2.0), ceil(float(${s}TexShape[1]) / 2.0)); int valuesPerRow = int(ceil(float(${s}Shape[2]) / 2.0)); int texelsInBatch = valuesPerRow * int(ceil(float(${s}Shape[1]) / 2.0)); vec2 uv = packedUVfrom3D( packedTexShape[0], packedTexShape[1], texelsInBatch, valuesPerRow, b, row, col); return ${u.texture2D}(${s}, uv); } `;let p=i[0],c=i[1],d=Math.ceil(n[2]/2),f=d*Math.ceil(n[1]/2);return` vec4 ${a}(int b, int row, int col) { vec2 uv = packedUVfrom3D( ${p}, ${c}, ${f}, ${d}, b, row, col); return ${u.texture2D}(${s}, uv); } `}(t,r);default:return function(e,t){let r=e.name,n="get"+r.charAt(0).toUpperCase()+r.slice(1),s=(0,o.getGlslDifferences)();if(t)return` vec4 ${n}(int b2, int b, int row, int col) { int valuesPerRow = int(ceil(float(${r}Shape[3]) / 2.0)); int texelsInBatch = valuesPerRow * int(ceil(float(${r}Shape[2]) / 2.0)); int index = b * texelsInBatch + (row / 2) * valuesPerRow + (col / 2); texelsInBatch *= ${r}Shape[1]; index = b2 * texelsInBatch + index; ivec2 packedTexShape = ivec2(ceil(float(${r}TexShape[0]) / 2.0), ceil(float(${r}TexShape[1]) / 2.0)); int texR = index / packedTexShape[1]; int texC = index - texR * packedTexShape[1]; vec2 uv = (vec2(texC, texR) + halfCR) / vec2(packedTexShape[1], packedTexShape[0]); return ${s.texture2D}(${r}, uv); } `;let a=e.shapeInfo.logicalShape,l=a.length,i=e.shapeInfo.texShape,u=[Math.ceil(i[0]/2),Math.ceil(i[1]/2)],p=u[0],c=u[1],d=Math.ceil(a[l-1]/2),f=d*Math.ceil(a[l-2]/2),h="int b, int row, int col",m=`b * ${f} + (row / 2) * ${d} + (col / 2)`;for(let e=2;e<l-1;e++)h=`int b${e}, `+h,f*=a[l-e-1],m=`b${e} * ${f} + `+m;return` vec4 ${n}(${h}) { int index = ${m}; int texR = index / ${c}; int texC = index - texR * ${c}; vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${c}, ${p}); return ${s.texture2D}(${r}, uv); } `}(t,r)}}(e,n):s+=function e(t,r=!1){let n=t.shapeInfo.logicalShape;switch(n.length){case 0:return function(e,t){let r=e.name,n="get"+r.charAt(0).toUpperCase()+r.slice(1);if(e.shapeInfo.isUniform)return`float ${n}() {return ${r};}`;let[s,a]=e.shapeInfo.texShape;if(1===s&&1===a)return` float ${n}() { return sampleTexture(${r}, halfCR); } `;let o=m(r);if(t)return` float ${n}() { vec2 uv = uvFromFlat(${r}TexShape[0], ${r}TexShape[1], ${o}); return sampleTexture(${r}, uv); } `;let[l,i]=e.shapeInfo.texShape;return` float ${n}() { vec2 uv = uvFromFlat(${l}, ${i}, ${o}); return sampleTexture(${r}, uv); } `}(t,r);case 1:return function(e,t){let r=e.name,n="get"+r.charAt(0).toUpperCase()+r.slice(1);if(e.shapeInfo.isUniform)return` float ${n}(int index) { ${g(e)} } `;let s=e.shapeInfo.texShape,a=s[0],o=s[1];if(1===o&&1===a)return` float ${n}(int index) { return sampleTexture(${r}, halfCR); } `;let l=m(r);return 1===o?t?` float ${n}(int index) { vec2 uv = vec2(0.5, (float(index + ${l}) + 0.5) / float(${r}TexShape[0])); return sampleTexture(${r}, uv); } `:` float ${n}(int index) { vec2 uv = vec2(0.5, (float(index + ${l}) + 0.5) / ${a}.0); return sampleTexture(${r}, uv); } `:1===a?t?` float ${n}(int index) { vec2 uv = vec2((float(index + ${l}) + 0.5) / float(${r}TexShape[1]), 0.5); return sampleTexture(${r}, uv); } `:` float ${n}(int index) { vec2 uv = vec2((float(index + ${l}) + 0.5) / ${o}.0, 0.5); return sampleTexture(${r}, uv); } `:t?` float ${n}(int index) { vec2 uv = uvFromFlat(${r}TexShape[0], ${r}TexShape[1], index + ${l}); return sampleTexture(${r}, uv); } `:` float ${n}(int index) { vec2 uv = uvFromFlat(${a}, ${o}, index + ${l}); return sampleTexture(${r}, uv); } `}(t,r);case 2:return function(t,r){let n=t.shapeInfo.logicalShape,s=t.name,o="get"+s.charAt(0).toUpperCase()+s.slice(1),l=t.shapeInfo.texShape;if(null!=l&&a.util.arraysEqual(n,l)){if(r)return` float ${o}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${s}TexShape[1], ${s}TexShape[0]); return sampleTexture(${s}, uv); } `;let e=l[0],t=l[1];return` float ${o}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${t}.0, ${e}.0); return sampleTexture(${s}, uv); } `}let{newShape:i,keptDims:u}=a.util.squeezeShape(n);if(i.length<n.length){let n=y(t,i);return` ${e(n,r)} float ${o}(int row, int col) { return ${o}(${_(["row","col"],u)}); } `}if(t.shapeInfo.isUniform)return` float ${o}(int row, int col) { int index = round(dot(vec2(row, col), vec2(${n[1]}, 1))); ${g(t)} } `;let p=l[0],c=l[1],d=m(s);return 1===c?r?` float ${o}(int row, int col) { float index = dot(vec3(row, col, ${d}), vec3(${s}Shape[1], 1, 1)); vec2 uv = vec2(0.5, (index + 0.5) / float(${s}TexShape[0])); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col) { float index = dot(vec3(row, col, ${d}), vec3(${n[1]}, 1, 1)); vec2 uv = vec2(0.5, (index + 0.5) / ${p}.0); return sampleTexture(${s}, uv); } `:1===p?r?` float ${o}(int row, int col) { float index = dot(vec3(row, col, ${d}), vec3(${s}Shape[1], 1, 1)); vec2 uv = vec2((index + 0.5) / float(${s}TexShape[1]), 0.5); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col) { float index = dot(vec3(row, col, ${d}), vec3(${n[1]}, 1, 1)); vec2 uv = vec2((index + 0.5) / ${c}.0, 0.5); return sampleTexture(${s}, uv); } `:r?` float ${o}(int row, int col) { // Explicitly use integer operations as dot() only works on floats. int index = row * ${s}Shape[1] + col + ${d}; vec2 uv = uvFromFlat(${s}TexShape[0], ${s}TexShape[1], index); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col) { // Explicitly use integer operations as dot() only works on floats. int index = row * ${n[1]} + col + ${d}; vec2 uv = uvFromFlat(${p}, ${c}, index); return sampleTexture(${s}, uv); } `}(t,r);case 3:return function(t,r){let n=t.shapeInfo.logicalShape,s=t.name,o="get"+s.charAt(0).toUpperCase()+s.slice(1),l=n[1]*n[2],i=n[2],{newShape:u,keptDims:p}=a.util.squeezeShape(n);if(u.length<n.length){let n=y(t,u);return` ${e(n,r)} float ${o}(int row, int col, int depth) { return ${o}(${_(["row","col","depth"],p)}); } `}if(t.shapeInfo.isUniform)return` float ${o}(int row, int col, int depth) { int index = round(dot(vec3(row, col, depth), vec3(${l}, ${i}, 1))); ${g(t)} } `;let c=t.shapeInfo.texShape,d=c[0],f=c[1],h=t.shapeInfo.flatOffset;if(f===l&&null==h)return r?` float ${o}(int row, int col, int depth) { int stride1 = ${s}Shape[2]; float texR = float(row); float texC = dot(vec2(col, depth), vec2(stride1, 1)); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${s}TexShape[1], ${s}TexShape[0]); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col, int depth) { float texR = float(row); float texC = dot(vec2(col, depth), vec2(${i}, 1)); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${f}.0, ${d}.0); return sampleTexture(${s}, uv); } `;if(f===i&&null==h)return r?` float ${o}(int row, int col, int depth) { float texR = dot(vec2(row, col), vec2(${s}Shape[1], 1)); float texC = float(depth); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${s}TexShape[1], ${s}TexShape[0]); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col, int depth) { float texR = dot(vec2(row, col), vec2(${n[1]}, 1)); float texC = float(depth); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${f}.0, ${d}.0); return sampleTexture(${s}, uv); } `;let x=m(s);return r?` float ${o}(int row, int col, int depth) { // Explicitly use integer operations as dot() only works on floats. int stride0 = ${s}Shape[1] * ${s}Shape[2]; int stride1 = ${s}Shape[2]; int index = row * stride0 + col * stride1 + depth + ${x}; vec2 uv = uvFromFlat(${s}TexShape[0], ${s}TexShape[1], index); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col, int depth) { // Explicitly use integer operations as dot() only works on floats. int index = row * ${l} + col * ${i} + depth + ${x}; vec2 uv = uvFromFlat(${d}, ${f}, index); return sampleTexture(${s}, uv); } `}(t,r);case 4:return function(t,r){let n=t.shapeInfo.logicalShape,s=t.name,o="get"+s.charAt(0).toUpperCase()+s.slice(1),l=n[3],i=n[2]*l,u=n[1]*i,{newShape:p,keptDims:c}=a.util.squeezeShape(n);if(p.length<n.length){let n=y(t,p);return` ${e(n,r)} float ${o}(int row, int col, int depth, int depth2) { return ${o}(${_(["row","col","depth","depth2"],c)}); } `}if(t.shapeInfo.isUniform)return` float ${o}(int row, int col, int depth, int depth2) { int index = round(dot(vec4(row, col, depth, depth2), vec4(${u}, ${i}, ${l}, 1))); ${g(t)} } `;let d=t.shapeInfo.flatOffset,f=t.shapeInfo.texShape,h=f[0],x=f[1],v=`int stride2 = ${s}Shape[3];`,b=`int stride1 = ${s}Shape[2] * stride2;`,k=`int stride0 = ${s}Shape[1] * stride1;`;if(x===u&&null==d)return r?` float ${o}(int row, int col, int depth, int depth2) { ${v} ${b} float texR = float(row); float texC = dot(vec3(col, depth, depth2), vec3(stride1, stride2, 1)); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${s}TexShape[1], ${s}TexShape[0]); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col, int depth, int depth2) { float texR = float(row); float texC = dot(vec3(col, depth, depth2), vec3(${i}, ${l}, 1)); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${x}.0, ${h}.0); return sampleTexture(${s}, uv); } `;if(x===l&&null==d)return r?` float ${o}(int row, int col, int depth, int depth2) { float texR = dot(vec3(row, col, depth), vec3(${s}Shape[1] * ${s}Shape[2], ${s}Shape[2], 1)); float texC = float(depth2); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${s}TexShape[1], ${s}TexShape[0]); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col, int depth, int depth2) { float texR = dot(vec3(row, col, depth), vec3(${n[1]*n[2]}, ${n[2]}, 1)); float texC = float(depth2); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${x}.0, ${h}.0); return sampleTexture(${s}, uv); } `;let T=m(s);return r?` float ${o}(int row, int col, int depth, int depth2) { // Explicitly use integer operations as dot() only works on floats. ${v} ${b} ${k} int index = row * stride0 + col * stride1 + depth * stride2 + depth2; vec2 uv = uvFromFlat(${s}TexShape[0], ${s}TexShape[1], index + ${T}); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col, int depth, int depth2) { // Explicitly use integer operations as dot() only works on floats. int index = row * ${u} + col * ${i} + depth * ${l} + depth2; vec2 uv = uvFromFlat(${h}, ${x}, index + ${T}); return sampleTexture(${s}, uv); } `}(t,r);case 5:return function(t){let r=t.shapeInfo.logicalShape,n=t.name,s="get"+n.charAt(0).toUpperCase()+n.slice(1),o=r[4],l=r[3]*o,i=r[2]*l,u=r[1]*i,{newShape:p,keptDims:c}=a.util.squeezeShape(r);if(p.length<r.length){let r=y(t,p);return` ${e(r)} float ${s}(int row, int col, int depth, int depth2, int depth3) { return ${s}(${_(["row","col","depth","depth2","depth3"],c)}); } `}if(t.shapeInfo.isUniform)return` float ${s}(int row, int col, int depth, int depth2, int depth3) { float index = dot( vec4(row, col, depth, depth2), vec4(${u}, ${i}, ${l}, ${o})) + depth3; ${g(t)} } `;let d=t.shapeInfo.flatOffset,f=t.shapeInfo.texShape,h=f[0],x=f[1];if(x===u&&null==d)return` float ${s}(int row, int col, int depth, int depth2, int depth3) { int texR = row; float texC = dot(vec4(col, depth, depth2, depth3), vec4(${i}, ${l}, ${o}, 1)); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${x}.0, ${h}.0); return sampleTexture(${n}, uv); } `;if(x===o&&null==d)return` float ${s}(int row, int col, int depth, int depth2, int depth3) { float texR = dot( vec4(row, col, depth, depth2), vec4(${r[1]*r[2]*r[3]}, ${r[2]*r[3]}, ${r[3]}, 1)); int texC = depth3; vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${x}.0, ${h}.0); return sampleTexture(${n}, uv); } `;let v=m(n);return` float ${s}(int row, int col, int depth, int depth2, int depth3) { // Explicitly use integer operations as dot() only works on floats. int index = row * ${u} + col * ${i} + depth * ${l} + depth2 * ${o} + depth3 + ${v}; vec2 uv = uvFromFlat(${h}, ${x}, index); return sampleTexture(${n}, uv); } `}(t);case 6:return function(t){let r=t.shapeInfo.logicalShape,n=t.name,s="get"+n.charAt(0).toUpperCase()+n.slice(1),{newShape:o,keptDims:l}=a.util.squeezeShape(r);if(o.length<r.length){let r=y(t,o);return` ${e(r)} float ${s}(int row, int col, int depth, int depth2, int depth3, int depth4) { return ${s}(${_(["row","col","depth","depth2","depth3","depth4"],l)}); } `}let i=r[5],u=r[4]*i,p=r[3]*u,c=r[2]*p,d=r[1]*c;if(t.shapeInfo.isUniform)return` float ${s}(int row, int col, int depth, int depth2, int depth3, int depth4) { int index = round(dot( vec4(row, col, depth, depth2), vec4(${d}, ${c}, ${p}, ${u})) + dot( vec2(depth3, depth4), vec2(${i}, 1))); ${g(t)} } `;let f=t.shapeInfo.flatOffset,h=t.shapeInfo.texShape,x=h[0],v=h[1];if(v===d&&null==f)return` float ${s}(int row, int col, int depth, int depth2, int depth3, int depth4) { int texR = row; float texC = dot(vec4(col, depth, depth2, depth3), vec4(${c}, ${p}, ${u}, ${i})) + float(depth4); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${v}.0, ${x}.0); return sampleTexture(${n}, uv); } `;if(v===i&&null==f)return` float ${s}(int row, int col, int depth, int depth2, int depth3, int depth4) { float texR = dot(vec4(row, col, depth, depth2), vec4(${r[1]*r[2]*r[3]*r[4]}, ${r[2]*r[3]*r[4]}, ${r[3]*r[4]}, ${r[4]})) + float(depth3); int texC = depth4; vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${v}.0, ${x}.0); return sampleTexture(${n}, uv); } `;let b=m(n);return` float ${s}(int row, int col, int depth, int depth2, int depth3, int depth4) { // Explicitly use integer operations as dot() only works on floats. int index = row * ${d} + col * ${c} + depth * ${p} + depth2 * ${u} + depth3 * ${i} + depth4 + ${b}; vec2 uv = uvFromFlat(${x}, ${v}, index); return sampleTexture(${n}, uv); } `}(t);default:throw Error(`${n.length}-D input sampling is not yet supported`)}}(e,n);let l=e.shapeInfo.logicalShape,u=t.logicalShape;return l.length<=u.length&&(r?s+=function(e,t){let r,n=e.name,s=n.charAt(0).toUpperCase()+n.slice(1),o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length,u=i(e.shapeInfo.logicalShape,t.logicalShape),p=x(l),c=l-o,d=["x","y","z","w","u","v"];r=0===o?"":l<2&&u.length>=1?"coords = 0;":u.map(e=>`coords.${d[e+c]} = 0;`).join("\n");let f="";f=l<2&&o>0?"coords":e.shapeInfo.logicalShape.map((e,t)=>`coords.${d[t+c]}`).join(", ");let h="return outputValue;",m=1===a.util.sizeFromShape(e.shapeInfo.logicalShape),g=1===a.util.sizeFromShape(t.logicalShape);if(1!==o||m||g){if(m&&!g)h=1===l?` return vec4(outputValue.x, outputValue.x, 0., 0.); `:` return vec4(outputValue.x); `;else if(u.length){let e=o-2,t=o-1;u.indexOf(e)>-1&&u.indexOf(t)>-1?h="return vec4(outputValue.x);":u.indexOf(e)>-1?h="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":u.indexOf(t)>-1&&(h="return vec4(outputValue.xx, outputValue.zz);")}}else h=` return vec4(outputValue.xy, outputValue.xy); `;return` vec4 ${"get"+s+"AtOutCoords"}() { ${p} coords = getOutputCoords(); ${r} vec4 outputValue = get${s}(${f}); ${h} } `}(e,t):s+=function(e,t){let r,n=e.name,s=n.charAt(0).toUpperCase()+n.slice(1),o="get"+s+"AtOutCoords",l=t.texShape,u=e.shapeInfo.texShape,p=e.shapeInfo.logicalShape.length,c=t.logicalShape.length;if(!e.shapeInfo.isUniform&&p===c&&null==e.shapeInfo.flatOffset&&a.util.arraysEqual(u,l))return` float ${o}() { return sampleTexture(${n}, resultUV); } `;let d=x(c),f=i(e.shapeInfo.logicalShape,t.logicalShape),h=c-p,m=["x","y","z","w","u","v"];r=0===p?"":c<2&&f.length>=1?"coords = 0;":f.map(e=>`coords.${m[e+h]} = 0;`).join("\n");let g="";return g=c<2&&p>0?"coords":e.shapeInfo.logicalShape.map((e,t)=>`coords.${m[t+h]}`).join(", "),` float ${o}() { ${d} coords = getOutputCoords(); ${r} return get${s}(${g}); } `}(e,t)),s})(e,t,r.packedInputs,r.enableShapeUniforms)).join("\n"),C=t.texShape,N=(0,o.getGlslDifferences)(),S=(n=N,` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${n.texture2D}(textureSampler, uv).r; } `),E=(s=N,`${s.version} precision highp float; precision highp int; precision highp sampler2D; ${s.varyingFs} vec2 resultUV; ${s.defineOutput} const vec2 halfCR = vec2(0.5, 0.5); struct ivec5 { int x; int y; int z; int w; int u; }; struct ivec6 { int x; int y; int z; int w; int u; int v; }; uniform float NAN; ${s.defineSpecialNaN} ${s.defineSpecialInf} ${s.defineRound} int imod(int x, int y) { return x - y * (x / y); } int idiv(int a, int b, float sign) { int res = a / b; int mod = imod(a, b); if (sign< 0. && mod != 0) { res -= 1; } return res; } //Based on the work of Dave Hoskins //https://www.shadertoy.com/view/4djSRW #define HASHSCALE1 443.8975 float random(float seed){ vec2 p = resultUV * seed; vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1); p3 += dot(p3, p3.yzx + 19.19); return fract((p3.x + p3.y) * p3.z); } ${p} ${c} ${d} `);return t.isPacked?(k=function(e,t,r){switch(e.length){case 0:return h();case 1:var n,s;let o;return n=t,s=r,1===(o=[Math.ceil(n[0]/2),Math.ceil(n[1]/2)])[0]?s?` int getOutputCoords() { return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0)); } `:` int getOutputCoords() { return 2 * int(resultUV.x * ${o[1]}.0); } `:1===o[1]?s?` int getOutputCoords() { return 2 * int(resultUV.y * ceil(float(outTexShape[0]) / 2.0)); } `:` int getOutputCoords() { return 2 * int(resultUV.y * ${o[0]}.0); } `:s?` int getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); ivec2 resTexRC = ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); return 2 * (resTexRC.x * packedTexShape[1] + resTexRC.y); } `:` int getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${o[0]}, ${o[1]})); return 2 * (resTexRC.x * ${o[1]} + resTexRC.y); } `;case 2:var l=e,i=t,u=r;let p=[Math.ceil(i[0]/2),Math.ceil(i[1]/2)];if(a.util.arraysEqual(l,i))return u?` 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])); } `:` ivec2 getOutputCoords() { return 2 * ivec2(resultUV.yx * vec2(${p[0]}, ${p[1]})); } `;let c=Math.ceil(l[1]/2);return u?` ivec2 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); int texelsInLogicalRow = int(ceil(float(outShape[1]) / 2.0)); ivec2 resTexRC = ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); int index = resTexRC.x * packedTexShape[1] + resTexRC.y; int r = 2 * (index / texelsInLogicalRow); int c = imod(index, texelsInLogicalRow) * 2; return ivec2(r, c); } `:` ivec2 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${p[0]}, ${p[1]})); int index = resTexRC.x * ${p[1]} + resTexRC.y; int r = 2 * (index / ${c}); int c = imod(index, ${c}) * 2; return ivec2(r, c); } `;case 3:var d=e,f=t,m=r;if(m)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)); int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[1]) / 2.0)); ivec2 resTexRC = ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); int index = resTexRC.x * packedTexShape[1] + resTexRC.y; int b = index / texelsInBatch; index -= b * texelsInBatch; int r = 2 * (index / texelsInLogicalRow); int c = imod(index, texelsInLogicalRow) * 2; return ivec3(b, r, c); } `;let g=[Math.ceil(f[0]/2),Math.ceil(f[1]/2)],x=Math.ceil(d[2]/2),v=x*Math.ceil(d[1]/2);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${g[0]}, ${g[1]})); int index = resTexRC.x * ${g[1]} + resTexRC.y; int b = index / ${v}; index -= b * ${v}; int r = 2 * (index / ${x}); int c = imod(index, ${x}) * 2; return ivec3(b, r, c); } `;default:return function(e,t,r){if(r)return` ivec4 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); ivec2 resTexRC = ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); int index = resTexRC.x * packedTexShape[1] + resTexRC.y; int texelsInLogicalRow = int(ceil(float(outShape[3]) / 2.0)); int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[2]) / 2.0)); int texelsInBatchN = texelsInBatch * outShape[1]; int b2 = index / texelsInBatchN; index -= b2 * texelsInBatchN; int b = index / texelsInBatch; index -= b * texelsInBatch; int r = 2 * (index / texelsInLogicalRow); int c = imod(index, texelsInLogicalRow) * 2; return ivec4(b2, b, r, c); } `;let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],s=Math.ceil(e[e.length-1]/2),a=s*Math.ceil(e[e.length-2]/2),o=a,l="",i="b, r, c";for(let t=2;t<e.length-1;t++)o*=e[e.length-t-1],l=` int b${t} = index / ${o}; index -= b${t} * ${o}; `+l,i=`b${t}, `+i;return` ivec${e.length} getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${n[0]}, ${n[1]})); int index = resTexRC.x * ${n[1]} + resTexRC.y; ${l} int b = index / ${a}; index -= b * ${a}; int r = 2 * (index / ${s}); int c = imod(index, ${s}) * 2; return ivec${e.length}(${i}); } `}(e,t,r)}}(t.logicalShape,C,r.enableShapeUniforms),u=N,T=` void setOutput(vec4 val) { ${u.output} = val; } `):(k=function(e,t,r){switch(e.length){case 0:return h();case 1:return n=t,s=r,1===n[0]?s?` int getOutputCoords() { return int(resultUV.x * float(outTexShape[1])); } `:` int getOutputCoords() { return int(resultUV.x * ${n[1]}.0); } `:1===n[1]?s?` int getOutputCoords() { return int(resultUV.y * float(outTexShape[0])); } `:` int getOutputCoords() { return int(resultUV.y * ${n[0]}.0); } `:s?` int getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); return resTexRC.x * outTexShape[1] + resTexRC.y; } `:` int getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${n[0]}, ${n[1]})); return resTexRC.x * ${n[1]} + resTexRC.y; } `;case 2:return o=e,i=t,u=r,a.util.arraysEqual(o,i)?u?` ivec2 getOutputCoords() { return ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); } `:` ivec2 getOutputCoords() { return ivec2(resultUV.yx * vec2(${i[0]}, ${i[1]})); } `:1===o[1]?u?` ivec2 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; return ivec2(index, 0); } `:` ivec2 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${i[0]}, ${i[1]})); int index = resTexRC.x * ${i[1]} + resTexRC.y; return ivec2(index, 0); } `:1===o[0]?u?` ivec2 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; return ivec2(0, index); } `:` ivec2 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${i[0]}, ${i[1]})); int index = resTexRC.x * ${i[1]} + resTexRC.y; return ivec2(0, index); } `:u?` ivec2 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; int r = index / outShape[1]; int c = index - r * outShape[1]; return ivec2(r, c); } `:` ivec2 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${i[0]}, ${i[1]})); int index = resTexRC.x * ${i[1]} + resTexRC.y; int r = index / ${o[1]}; int c = index - r * ${o[1]}; return ivec2(r, c); } `;case 3:var n,s,o,i,u,p,c,d,f,m=e,g=t,x=r;if(x){let e=l.getOutputLogicalCoordinatesFromFlatIndexByUniform(["r","c","d"],m);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; ${e} return ivec3(r, c, d); } `}let v=l.getLogicalCoordinatesFromFlatIndex(["r","c","d"],m);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${g[0]}, ${g[1]})); int index = resTexRC.x * ${g[1]} + resTexRC.y; ${v} return ivec3(r, c, d); } `;case 4:var y=e,_=t,b=r;if(b){let e=l.getOutputLogicalCoordinatesFromFlatIndexByUniform(["r","c","d","d2"],y);return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; ${e} return ivec4(r, c, d, d2); } `}let k=l.getLogicalCoordinatesFromFlatIndex(["r","c","d","d2"],y);return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${_[0]}, ${_[1]})); int index = resTexRC.x * ${_[1]} + resTexRC.y; ${k} return ivec4(r, c, d, d2); } `;case 5:let T;return p=e,c=t,T=l.getLogicalCoordinatesFromFlatIndex(["r","c","d","d2","d3"],p),` ivec5 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${c[0]}, ${c[1]})); int index = resTexRC.x * ${c[1]} + resTexRC.y; ${T} ivec5 outShape = ivec5(r, c, d, d2, d3); return outShape; } `;case 6:let w;return d=e,f=t,w=l.getLogicalCoordinatesFromFlatIndex(["r","c","d","d2","d3","d4"],d),` ivec6 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${f[0]}, ${f[1]})); int index = resTexRC.x * ${f[1]} + resTexRC.y; ${w} ivec6 result = ivec6(r, c, d, d2, d3, d4); return result; } `;default:throw Error(`${e.length}-D output sampling is not yet supported`)}}(t.logicalShape,C,r.enableShapeUniforms),b=N,T=` void setOutput(float val) { ${b.output} = vec4(val, 0, 0, 0); } `),r.packedInputs&&(E+=f),[E,S,T,I,k,j,r.userCode].join("\n")}let p=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texelIndex = index / 2; int texR = texelIndex / texNumC; int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } `,c=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); int texR = texelIndex / texNumC; int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } `,d=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2); int texR = index / texNumC; int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } `,f=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? (modCoord.y == 0. ? frag.r : frag.g) : (modCoord.y == 0. ? frag.b : frag.a); } float getChannel(vec4 frag, int dim) { float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } `;function h(){return` int getOutputCoords() { return 0; } `}function m(e){return`offset${e}`}function g(e){let t=e.name,r=a.util.sizeFromShape(e.shapeInfo.logicalShape);return r<2?`return ${t};`:` for (int i = 0; i < ${r}; i++) { if (i == index) { return ${t}[i]; } } `}function x(e){if(e<=1)return"int";if(2===e)return"ivec2";if(3===e)return"ivec3";if(4===e)return"ivec4";if(5===e)return"ivec5";else if(6===e)return"ivec6";else throw Error(`GPU for rank ${e} is not yet supported`)}function v(e,t,r){let{newShape:n,keptDims:s}=a.util.squeezeShape(t),o=t.length,l=e&&3===o&&1===t[0],i=l?t.slice(1):n,u=!e&&o>1&&!a.util.arraysEqual(t,r)&&n.length<o||l,p=u?i:t;return{useSqueezeShape:u,uniformShape:p,keptDims:s}}function y(e,t){let r=JSON.parse(JSON.stringify(e));return r.shapeInfo.logicalShape=t,r}function _(e,t){return t.map(t=>e[t]).join(", ")}},{"@tensorflow/tfjs-core":"hADTC","./glsl_version":"5v0d7","./shader_compiler_util":"ll5XN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ll5XN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getLogicalCoordinatesFromFlatIndex",()=>o),s.export(r,"getOutputLogicalCoordinatesFromFlatIndexByUniform",()=>l),s.export(r,"getLogicalCoordinatesFromFlatIndexByUniform",()=>i),s.export(r,"dotify",()=>p),s.export(r,"getFlatIndexFrom3D",()=>c),s.export(r,"getFlatIndexFrom3DOutput",()=>d),s.export(r,"ENCODE_FLOAT_SNIPPET",()=>f);var a=e("@tensorflow/tfjs-core");function o(e,t,r="index"){let n=a.util.computeStrides(t);return n.map((t,s)=>{let a=`int ${e[s]} = ${r} / ${t}`,o=s===n.length-1?`int ${e[s+1]} = ${r} - ${e[s]} * ${t}`:`index -= ${e[s]} * ${t}`;return`${a}; ${o};`}).join("")}function l(e,t,r="index"){let n=a.util.computeStrides(t);return n.map((t,s)=>{let a=`int ${e[s]} = ${r} / outShapeStrides[${s}]`,o=s===n.length-1?`int ${e[s+1]} = ${r} - ${e[s]} * outShapeStrides[${s}]`:`index -= ${e[s]} * outShapeStrides[${s}]`;return`${a}; ${o};`}).join("")}function i(e,t,r="index"){let n=function(e,t){let r=e.length,n=e.map(e=>`${t}[${e}]`),s=Array(r-1);s[r-2]=n[r-1];for(let e=r-3;e>=0;--e)s[e]=`(${s[e+1]} * ${n[e+1]})`;return s}(e.map((e,t)=>t),t);return n.map((t,s)=>{let a=`int ${e[s]} = ${r} / ${n[s]}`,o=s===n.length-1?`int ${e[s+1]} = ${r} - ${e[s]} * ${n[s]}`:`index -= ${e[s]} * ${n[s]}`;return`${a}; ${o};`}).join("")}function u(e){return 1===e.length?`${e[0]}`:`vec${e.length}(${e.join(",")})`}function p(e,t){if(e.length!==t.length)throw Error(`Vectors to be dotted must be of the same length -got ${e.length} and ${t.length}`);let r=[],n=Math.floor(e.length/4),s=e.length%4;for(let s=0;s<n;s++){let n=e.slice(4*s,4*s+4),a=t.slice(4*s,4*s+4);r.push(`${u(n)}, ${u(a)}`)}if(0!==s){let s=e.slice(4*n),a=t.slice(4*n);1===s.length&&(s=s.map(e=>`float(${e})`),a=a.map(e=>`float(${e})`)),r.push(`${u(s)}, ${u(a)}`)}return r.map((e,t)=>`dot(${e})`).join("+")}function c(e){let t=a.util.computeStrides(e).map(e=>e.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; } `}function d(){return` int getFlatIndex(ivec3 coords) { return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z; } `}let f=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; lowp vec4 encode_float(highp float v) { if (isnan(v)) { return vec4(255, 255, 255, 255); } highp float av = abs(v); if(av< FLOAT_MIN) { return vec4(0.0, 0.0, 0.0, 0.0); } else if(v >FLOAT_MAX) { return vec4(0.0, 0.0, 128.0, 127.0) / 255.0; } else if(v< -FLOAT_MAX) { return vec4(0.0, 0.0, 128.0, 255.0) / 255.0; } highp vec4 c = vec4(0,0,0,0); highp float e = floor(log2(av)); highp float m = exp2(fract(log2(av))) - 1.0; c[2] = floor(128.0 * m); m -= c[2] / 128.0; c[1] = floor(32768.0 * m); m -= c[1] / 32768.0; c[0] = floor(8388608.0 * m); highp float ebias = e + 127.0; c[3] = floor(ebias / 2.0); ebias -= c[3] * 2.0; c[2] += floor(ebias) * 128.0; c[3] += 128.0 * step(0.0, -v); return c / 255.0; } `},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1hjAY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DecodeMatrixPackedProgram",()=>u);var a=e("./glsl_version"),o=e("./gpgpu_math"),l=e("./shader_compiler_util"),i=e("./tex_util");class u{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=i.PackingScheme.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=(0,a.getGlslDifferences)();this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { ${this.enableShapeUniforms?l.getOutputLogicalCoordinatesFromFlatIndexByUniform(["r","c","d"],e):l.getLogicalCoordinatesFromFlatIndex(["r","c","d"],e)} return ivec3(r, c, d); } void main() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1])); int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y); vec4 result = vec4(0.); for (int i=0; i<4; i++) { int flatIndex = index + i; ivec3 rc = outCoordsFromFlatIndex(flatIndex); result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z)); } ${t.output} = result; } `}}},{"./glsl_version":"5v0d7","./gpgpu_math":"aCqaC","./shader_compiler_util":"ll5XN","./tex_util":"kxvAY","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],atnH0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EncodeFloatProgram",()=>i);var a=e("./glsl_version"),o=e("./shader_compiler_util"),l=e("./tex_util");class i{constructor(e){this.variableNames=["A"],this.outTexUsage=l.TextureUsage.DOWNLOAD;let t=(0,a.getGlslDifferences)();this.outputShape=e,this.userCode=` ${o.ENCODE_FLOAT_SNIPPET} void main() { float x = getAAtOutCoords(); ${t.output} = encode_float(x); } `}}},{"./glsl_version":"5v0d7","./shader_compiler_util":"ll5XN","./tex_util":"kxvAY","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fY0wW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EncodeFloatPackedProgram",()=>i);var a=e("./glsl_version"),o=e("./shader_compiler_util"),l=e("./tex_util");class i{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=l.TextureUsage.DOWNLOAD;let t=(0,a.getGlslDifferences)();this.outputShape=e,this.userCode=` ${o.ENCODE_FLOAT_SNIPPET} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${t.output} = encode_float(x); } `}}},{"./glsl_version":"5v0d7","./shader_compiler_util":"ll5XN","./tex_util":"kxvAY","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],llrtn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EncodeMatrixProgram",()=>u);var a=e("./glsl_version"),o=e("./gpgpu_math"),l=e("./shader_compiler_util");let i={R:0,G:1,B:2,A:3};class u{constructor(e,t=!1,r="RGBA"){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let n=(0,a.getGlslDifferences)();this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);let s="result";t&&(s="floor(result * 255. + 0.5)");let u="";for(let e=0;e<r.length;e++){let t=r[e];u+=` if(offset == ${e}) { result = values[${i[t]}]; }`}this.userCode=` ${this.enableShapeUniforms?l.getFlatIndexFrom3DOutput():l.getFlatIndexFrom3D(e)} void main() { ivec3 coords = getOutputCoords(); int flatIndex = getFlatIndex(coords); float result = 0.; int offset = imod(flatIndex, ${r.length}); flatIndex = idiv(flatIndex, ${r.length}, 1.); int r = flatIndex / texShape[1]; if (r < texShape[0]) { int c = imod(flatIndex, texShape[1]); vec2 uv = (vec2(c, r) + halfCR) / vec2(texShape[1], texShape[0]); vec4 values = ${n.texture2D}(A, uv); ${u} } ${n.output} = vec4(${s}, 0., 0., 0.); } `}}},{"./glsl_version":"5v0d7","./gpgpu_math":"aCqaC","./shader_compiler_util":"ll5XN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hMhmd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EncodeMatrixPackedProgram",()=>i);var a=e("./glsl_version"),o=e("./gpgpu_math"),l=e("./shader_compiler_util");class i{constructor(e,t=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.customUniforms=[{name:"texShape",type:"ivec2"}];let r=(0,a.getGlslDifferences)();this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);let n="",s="result";t&&(s="floor(result * 255. + 0.5)");for(let t=0;t<=1;t++)for(let s=0;s<=1;s++){let a=2*t+s;n+=` localCoords = coords; if(localCoords[2] + ${s} < ${this.enableShapeUniforms?"outShape[2]":`${e[2]}`}) { localCoords[2] += ${s}; if (localCoords[1] + ${t} < ${this.enableShapeUniforms?"outShape[1]":`${e[1]}`}) { localCoords[1] += ${t}; flatIndex = getFlatIndex(localCoords); offset = imod(flatIndex, 4); flatIndex = idiv(flatIndex, 4, 1.); int r = flatIndex / texShape[1]; int c = imod(flatIndex, texShape[1]); vec2 uv = (vec2(c, r) + halfCR) / vec2(texShape[1], texShape[0]); values = ${r.texture2D}(A, uv); if (offset == 0) { result[${a}] = values[0]; } else if (offset == 1) { result[${a}] = values[1]; } else if (offset == 2) { result[${a}] = values[2]; } else { result[${a}] = values[3]; } } } `}this.userCode=` ${this.enableShapeUniforms?l.getFlatIndexFrom3DOutput():l.getFlatIndexFrom3D(e)} void main() { ivec3 coords = getOutputCoords(); vec4 result = vec4(0.); int flatIndex, r, c, offset; ivec3 localCoords; vec2 uv; vec4 values; ${n} ${r.output} = ${s}; } `}}},{"./glsl_version":"5v0d7","./gpgpu_math":"aCqaC","./shader_compiler_util":"ll5XN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hJTBE:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"GPGPUContext",()=>p),s.export(r,"linearSearchLastTrue",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./canvas_util"),l=e("./gpgpu_util"),i=e("./tex_util"),u=e("./webgl_util");class p{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let t=(0,a.env)().getNumber("WEBGL_VERSION");if(null!=e?(this.gl=e,(0,o.setWebGLContext)(t,e)):this.gl=(0,o.getWebGLContext)(t),e=this.gl,2===(0,a.env)().getNumber("WEBGL_VERSION")){let t=e;this.createVertexArray=()=>u.callAndCheck(t,()=>t.createVertexArray()),this.bindVertexArray=e=>u.callAndCheck(t,()=>t.bindVertexArray(e)),this.deleteVertexArray=e=>u.callAndCheck(t,()=>t.deleteVertexArray(e)),this.getVertexArray=()=>u.callAndCheck(t,()=>t.getParameter(t.VERTEX_ARRAY_BINDING))}else if(null!=e){let t=e.getExtension("OES_vertex_array_object");if(null==t)throw Error("All WebGL1 implementations are expected to offer OES_vertex_array_object.");this.createVertexArray=()=>u.callAndCheck(e,()=>t.createVertexArrayOES()),this.bindVertexArray=r=>u.callAndCheck(e,()=>t.bindVertexArrayOES(r)),this.deleteVertexArray=r=>u.callAndCheck(e,()=>t.deleteVertexArrayOES(r)),this.getVertexArray=()=>u.callAndCheck(e,()=>e.getParameter(t.VERTEX_ARRAY_BINDING_OES))}let r="WEBGL_color_buffer_float",n="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),1===(0,a.env)().getNumber("WEBGL_VERSION")){let e="OES_texture_half_float";if(this.textureFloatExtension=u.getExtensionOrThrow(this.gl,"OES_texture_float"),u.hasExtension(this.gl,e))this.textureHalfFloatExtension=u.getExtensionOrThrow(this.gl,e);else if((0,a.env)().get("WEBGL_FORCE_F16_TEXTURES"))throw 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(r),u.hasExtension(this.gl,n))this.colorBufferHalfFloatExtension=u.getExtensionOrThrow(this.gl,n);else if((0,a.env)().get("WEBGL_FORCE_F16_TEXTURES"))throw Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(r="EXT_color_buffer_float",u.hasExtension(this.gl,r))this.colorBufferFloatExtension=this.gl.getExtension(r);else if(u.hasExtension(this.gl,n))this.colorBufferHalfFloatExtension=this.gl.getExtension(n);else throw Error("GL context does not support color renderable floats");this.vertexBuffer=l.createVertexBuffer(this.gl),this.indexBuffer=l.createIndexBuffer(this.gl),this.framebuffer=u.createFramebuffer(this.gl),this.textureConfig=i.getTextureConfig(this.gl,this.textureHalfFloatExtension)}get debug(){return(0,a.env)().getBool("DEBUG")}dispose(){if(this.disposed)return;null!=this.program&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),null!=this.outputTexture&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;u.callAndCheck(e,()=>e.finish()),u.callAndCheck(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),u.callAndCheck(e,()=>e.deleteFramebuffer(this.framebuffer)),u.callAndCheck(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),u.callAndCheck(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),u.callAndCheck(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),l.createFloat32MatrixTexture(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),l.createFloat16MatrixTexture(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),l.createUnsignedBytesMatrixTexture(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),l.uploadPixelDataToTexture(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,r,n){this.throwIfDisposed(),l.uploadDenseMatrixToTexture(this.gl,e,t,r,n,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),l.createFloat16PackedMatrixTexture(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),l.createPackedMatrixTexture(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(u.unbindColorTextureFromFramebuffer(this.gl,this.framebuffer),this.outputTexture=null),u.callAndCheck(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,r){return this.downloadMatrixDriver(e,()=>l.downloadByteEncodedFloatMatrixFromOutputTexture(this.gl,t,r,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,r,n,s,a){return l.downloadPackedMatrixFromBuffer(this.gl,e,t,r,n,s,a,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return l.downloadFloat32MatrixFromBuffer(this.gl,e,t)}createBufferFromTexture(e,t,r){this.bindTextureToFrameBuffer(e);let n=l.createBufferFromOutputTexture(this.gl,t,r,this.textureConfig);return this.unbindTextureToFrameBuffer(),n}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,r;if((0,a.env)().getBool("WEBGL_FENCE_API_ENABLED")){let n=e.fenceSync(e.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),r=()=>{let t=e.clientWaitSync(n,0,0);return t===e.ALREADY_SIGNALED||t===e.CONDITION_SATISFIED},t=n}else(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),r=()=>this.isQueryAvailable(t,(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):r=()=>!0;return{query:t,isFencePassed:r}}downloadMatrixFromPackedTexture(e,t,r){return this.downloadMatrixDriver(e,()=>l.downloadMatrixFromPackedOutputTexture(this.gl,t,r))}createProgram(e){this.throwIfDisposed();let t=this.gl;null==this.vertexShader&&(this.vertexShader=l.createVertexShader(t));let r=u.createProgram(t);u.callAndCheck(t,()=>t.attachShader(r,this.vertexShader)),u.callAndCheck(t,()=>t.attachShader(r,e)),u.linkProgram(t,r);let n=Object.assign(r,{vao:this.createVertexArray()});return this.debug&&u.validateProgram(t,n),n}buildVao(e){this.setProgram(e),this.bindVertexArray(e.vao);let t=this.gl;u.callAndCheck(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),l.bindVertexProgramAttributeStreams(t,e,this.vertexBuffer)}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),null!=e&&(u.callAndCheck(this.gl,()=>this.gl.deleteProgram(e)),this.deleteVertexArray(e.vao))}setProgram(e){this.throwIfDisposed(),this.program=e,null!=this.program&&this.debug&&u.validateProgram(this.gl,this.program),u.callAndCheck(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,r=!0){return(this.throwIfDisposed(),r)?u.getProgramUniformLocationOrThrow(this.gl,e,t):u.getProgramUniformLocation(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),u.callAndCheck(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,r){this.throwIfDisposed(),this.throwIfNoProgram(),u.bindTextureToProgramUniformSampler(this.gl,e,t,r)}setOutputMatrixTexture(e,t,r){this.setOutputMatrixTextureDriver(e,r,t)}setOutputPackedMatrixTexture(e,t,r){this.throwIfDisposed();let[n,s]=i.getPackedMatrixTextureShapeWidthHeight(t,r);this.setOutputMatrixTextureDriver(e,n,s)}setOutputMatrixWriteRegion(e,t,r,n){this.setOutputMatrixWriteRegionDriver(r,e,n,t)}setOutputPackedMatrixWriteRegion(e,t,r,n){throw Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){null!=this.program&&u.validateProgram(this.gl,this.program),u.validateFramebuffer(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&(console.assert(this.getVertexArray()===this.program.vao,"VAO changed between setProgram and executeProgram!"),this.debugValidate()),u.callAndCheck(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),u.callAndCheck(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=u.getExtensionOrThrow(this.gl,2===(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(2===(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){let e=this.gl,t=this.getQueryTimerExtensionWebGL2(),r=e.createQuery();return e.beginQuery(t.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(2===(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){let e=this.gl,t=this.getQueryTimerExtensionWebGL2();e.endQuery(t.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await a.util.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(0===t)return null;if(2===t){let t=this.gl;return t.getQueryParameter(e,t.QUERY_RESULT)/1e6}{let t=this.getQueryTimerExtensionWebGL1();return t.getQueryObjectEXT(e,t.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(0===t)return!0;if(2===t){let t=this.gl,r=this.getQueryTimerExtensionWebGL2(),n=t.getQueryParameter(e,t.QUERY_RESULT_AVAILABLE);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),n&&!this.disjoint}{let t=this.getQueryTimerExtensionWebGL1(),r=t.getQueryObjectEXT(e,t.QUERY_RESULT_AVAILABLE_EXT);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(t.GPU_DISJOINT_EXT)),r&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=c(this.itemsToPoll.map(e=>e.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:e}=this.itemsToPoll[t];e()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){let r;this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1||("setTimeoutCustom"in(0,a.env)().platform&&(r=(0,a.env)().platform.setTimeoutCustom.bind((0,a.env)().platform)),a.util.repeatedTry(()=>(this.pollItems(),0===this.itemsToPoll.length),()=>0,null,r))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),u.bindColorTextureToFramebuffer(this.gl,e,this.framebuffer),this.debug&&u.validateFramebuffer(this.gl)}unbindTextureToFrameBuffer(){null!=this.outputTexture?(u.bindColorTextureToFramebuffer(this.gl,this.outputTexture,this.framebuffer),this.debug&&u.validateFramebuffer(this.gl)):u.unbindColorTextureFromFramebuffer(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let r=t();return this.unbindTextureToFrameBuffer(),r}setOutputMatrixTextureDriver(e,t,r){this.throwIfDisposed();let n=this.gl;u.bindColorTextureToFramebuffer(n,e,this.framebuffer),this.debug&&u.validateFramebuffer(n),this.outputTexture=e,u.callAndCheck(n,()=>n.viewport(0,0,t,r)),u.callAndCheck(n,()=>n.scissor(0,0,t,r))}setOutputMatrixWriteRegionDriver(e,t,r,n){this.throwIfDisposed(),u.callAndCheck(this.gl,()=>this.gl.scissor(e,t,r,n))}throwIfDisposed(){if(this.disposed)throw Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(null==this.program)throw Error("No GPU program is currently set.")}}function c(e){let t=0;for(;t<e.length&&e[t]();++t);return t-1}},{"@tensorflow/tfjs-core":"hADTC","./canvas_util":"45XFH","./gpgpu_util":"ae4xK","./tex_util":"kxvAY","./webgl_util":"hSqB7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ae4xK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"createVertexShader",()=>u),s.export(r,"createVertexBuffer",()=>p),s.export(r,"createIndexBuffer",()=>c),s.export(r,"getInternalFormatForFloat32MatrixTexture",()=>f),s.export(r,"createFloat32MatrixTexture",()=>h),s.export(r,"getInternalFormatForFloat16MatrixTexture",()=>m),s.export(r,"createFloat16MatrixTexture",()=>g),s.export(r,"getInternalFormatForUnsignedBytesMatrixTexture",()=>x),s.export(r,"createUnsignedBytesMatrixTexture",()=>v),s.export(r,"getInternalFormatForPackedMatrixTexture",()=>y),s.export(r,"createPackedMatrixTexture",()=>_),s.export(r,"getInternalFormatForFloat16PackedMatrixTexture",()=>b),s.export(r,"createFloat16PackedMatrixTexture",()=>k),s.export(r,"bindVertexProgramAttributeStreams",()=>T),s.export(r,"uploadDenseMatrixToTexture",()=>w),s.export(r,"uploadPixelDataToTexture",()=>I),s.export(r,"createBufferFromOutputTexture",()=>j),s.export(r,"downloadFloat32MatrixFromBuffer",()=>C),s.export(r,"downloadByteEncodedFloatMatrixFromOutputTexture",()=>N),s.export(r,"downloadPackedMatrixFromBuffer",()=>S),s.export(r,"downloadMatrixFromPackedOutputTexture",()=>E);var a=e("@tensorflow/tfjs-core"),o=e("./glsl_version"),l=e("./tex_util"),i=e("./webgl_util");function u(e){let t=(0,o.getGlslDifferences)(),r=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; ${t.varyingVs} vec2 resultUV; void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; }`;return i.createVertexShader(e,r)}function p(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 i.createStaticVertexBuffer(e,t)}function c(e){let t=new Uint16Array([0,1,2,2,1,3]);return i.createStaticIndexBuffer(e,t)}function d(e,t,r,n,s,o){i.validateTextureSize(t,r);let l=i.createTexture(e),u=e.TEXTURE_2D;return i.callAndCheck(e,()=>e.bindTexture(u,l)),i.callAndCheck(e,()=>e.texParameteri(u,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),i.callAndCheck(e,()=>e.texParameteri(u,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),i.callAndCheck(e,()=>e.texParameteri(u,e.TEXTURE_MIN_FILTER,e.NEAREST)),i.callAndCheck(e,()=>e.texParameteri(u,e.TEXTURE_MAG_FILTER,e.NEAREST)),1===(0,a.env)().getNumber("WEBGL_VERSION")?i.callAndCheck(e,()=>e.texImage2D(u,0,n,t,r,0,s,o,null)):i.callAndCheck(e,()=>e.texStorage2D(u,1,n,t,r)),i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:l,texShape:[r,t]}}function f(e){return e.internalFormatFloat}function h(e,t,r,n){let[s,a]=l.getUnpackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,f(n),n.textureFormatFloat,e.FLOAT)}function m(e){return e.internalFormatHalfFloat}function g(e,t,r,n){let[s,a]=l.getUnpackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,m(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function x(e){return e.downloadTextureFormat}function v(e,t,r,n){let[s,a]=l.getUnpackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,x(n),e.RGBA,e.UNSIGNED_BYTE)}function y(e){return e.internalFormatPackedFloat}function _(e,t,r,n){let[s,a]=l.getPackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,y(n),e.RGBA,e.FLOAT)}function b(e){return e.internalFormatPackedHalfFloat}function k(e,t,r,n){let[s,a]=l.getPackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,b(n),e.RGBA,n.textureTypeHalfFloat)}function T(e,t,r){return i.callAndCheck(e,()=>e.bindBuffer(e.ARRAY_BUFFER,r)),i.bindVertexBufferToProgramAttribute(e,t,"clipSpacePos",r,3,20,0)&&i.bindVertexBufferToProgramAttribute(e,t,"uv",r,2,20,12)}function w(e,t,r,n,s,o){let l,u,p;i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,t)),s instanceof Uint8Array?(l=new Uint8Array(r*n*4),u=e.UNSIGNED_BYTE,p=e.RGBA):(l=new Float32Array(r*n*4),u=e.FLOAT,p=o.internalFormatPackedFloat),l.set(s),2===(0,a.env)().getNumber("WEBGL_VERSION")?i.callAndCheck(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,r,n,e.RGBA,u,l)):i.callAndCheck(e,()=>e.texImage2D(e.TEXTURE_2D,0,p,r,n,0,e.RGBA,u,l)),i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function I(e,t,r){i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,t)),r.data instanceof Uint8Array?2===(0,a.env)().getNumber("WEBGL_VERSION")?i.callAndCheck(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,r.width,r.height,e.RGBA,e.UNSIGNED_BYTE,r.data)):i.callAndCheck(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,r.width,r.height,0,e.RGBA,e.UNSIGNED_BYTE,r.data)):2===(0,a.env)().getNumber("WEBGL_VERSION")?i.callAndCheck(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,r)):i.callAndCheck(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,r)),i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function j(e,t,r,n){let s=e.createBuffer();i.callAndCheck(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,s));let a=16*t*r;return i.callAndCheck(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,a,e.STREAM_READ)),i.callAndCheck(e,()=>e.readPixels(0,0,r,t,e.RGBA,e.FLOAT,0)),i.callAndCheck(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),s}function C(e,t,r){let n=new Float32Array(r);return e.bindBuffer(e.PIXEL_PACK_BUFFER,t),e.getBufferSubData(e.PIXEL_PACK_BUFFER,0,n),e.bindBuffer(e.PIXEL_PACK_BUFFER,null),n}function N(e,t,r,n){let[s,a]=l.getUnpackedMatrixTextureShapeWidthHeight(t,r),o=new Uint8Array(l.getUnpackedArraySizeFromMatrixSize(t*r,4));return i.callAndCheck(e,()=>e.readPixels(0,0,s,a,n.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function S(e,t,r,n,s,a,o,i){let u=new Float32Array(l.getPackedRGBAArraySizeFromMatrixShape(a,o));return e.bindBuffer(e.PIXEL_PACK_BUFFER,t),e.getBufferSubData(e.PIXEL_PACK_BUFFER,0,u),e.bindBuffer(e.PIXEL_PACK_BUFFER,null),u}function E(e,t,r){let n=new Float32Array(t*r*4);return i.callAndCheck(e,()=>e.readPixels(0,0,r,t,e.RGBA,e.FLOAT,n)),n}},{"@tensorflow/tfjs-core":"hADTC","./glsl_version":"5v0d7","./tex_util":"kxvAY","./webgl_util":"hSqB7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],awGPZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addImplCPU",()=>a),s.export(r,"bincountImplCPU",()=>o),s.export(r,"bincountReduceImplCPU",()=>l),s.export(r,"bitwiseAndImplCPU",()=>i),s.export(r,"castImplCPU",()=>u),s.export(r,"ceilImplCPU",()=>p),s.export(r,"concatImplCPU",()=>c),s.export(r,"equalImplCPU",()=>d),s.export(r,"expImplCPU",()=>f),s.export(r,"expm1ImplCPU",()=>h),s.export(r,"floorImplCPU",()=>m),s.export(r,"gatherNdImplCPU",()=>g),s.export(r,"gatherV2ImplCPU",()=>x),s.export(r,"greaterEqualImplCPU",()=>y),s.export(r,"greaterImplCPU",()=>v),s.export(r,"lessEqualImplCPU",()=>b),s.export(r,"lessImplCPU",()=>_),s.export(r,"linSpaceImplCPU",()=>k),s.export(r,"logImplCPU",()=>T),s.export(r,"maxImplCPU",()=>w),s.export(r,"maximumImplCPU",()=>I),s.export(r,"minimumImplCPU",()=>j),s.export(r,"multiplyImplCPU",()=>C),s.export(r,"negImplCPU",()=>N),s.export(r,"notEqualImplCPU",()=>S),s.export(r,"prodImplCPU",()=>E),s.export(r,"raggedGatherImplCPU",()=>A),s.export(r,"raggedRangeImplCPU",()=>F),s.export(r,"raggedTensorToTensorImplCPU",()=>R),s.export(r,"scatterImplCPU",()=>$),s.export(r,"sigmoidImplCPU",()=>M),s.export(r,"simpleAbsImplCPU",()=>O),s.export(r,"sliceImplCPU",()=>B),s.export(r,"sparseFillEmptyRowsImplCPU",()=>q),s.export(r,"sparseReshapeImplCPU",()=>L),s.export(r,"sparseSegmentReductionImplCPU",()=>V),s.export(r,"sqrtImplCPU",()=>G),s.export(r,"staticRegexReplaceImplCPU",()=>z),s.export(r,"stridedSliceImplCPU",()=>U),s.export(r,"stringNGramsImplCPU",()=>X),s.export(r,"stringSplitImplCPU",()=>W),s.export(r,"stringToHashBucketFastImplCPU",()=>H),s.export(r,"subImplCPU",()=>K),s.export(r,"rangeImplCPU",()=>D),s.export(r,"rsqrtImplCPU",()=>P),s.export(r,"tileImplCPU",()=>J),s.export(r,"topKImplCPU",()=>Y),s.export(r,"transposeImplCPU",()=>Z),s.export(r,"uniqueImplCPU",()=>Q);let{addImpl:a,bincountImpl:o,bincountReduceImpl:l,bitwiseAndImpl:i,castImpl:u,ceilImpl:p,concatImpl:c,equalImpl:d,expImpl:f,expm1Impl:h,floorImpl:m,gatherNdImpl:g,gatherV2Impl:x,greaterImpl:v,greaterEqualImpl:y,lessImpl:_,lessEqualImpl:b,linSpaceImpl:k,logImpl:T,maxImpl:w,maximumImpl:I,minimumImpl:j,multiplyImpl:C,negImpl:N,notEqualImpl:S,prodImpl:E,raggedGatherImpl:A,raggedRangeImpl:F,raggedTensorToTensorImpl:R,rangeImpl:D,rsqrtImpl:P,scatterImpl:$,sigmoidImpl:M,simpleAbsImpl:O,sliceImpl:B,sparseFillEmptyRowsImpl:q,sparseReshapeImpl:L,sparseSegmentReductionImpl:V,sqrtImpl:G,staticRegexReplaceImpl:z,stridedSliceImpl:U,stringNGramsImpl:X,stringSplitImpl:W,stringToHashBucketFastImpl:H,subImpl:K,tileImpl:J,topKImpl:Y,transposeImpl:Z,uniqueImpl:Q}=e("@tensorflow/tfjs-backend-cpu/dist/shared")},{"@tensorflow/tfjs-backend-cpu/dist/shared":"191q9","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"191q9":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"simpleAbsImpl",()=>a.simpleAbsImpl),s.export(r,"addImpl",()=>o.addImpl),s.export(r,"bincountImpl",()=>l.bincountImpl),s.export(r,"bincountReduceImpl",()=>l.bincountReduceImpl),s.export(r,"bitwiseAndImpl",()=>i.bitwiseAndImpl),s.export(r,"castImpl",()=>u.castImpl),s.export(r,"ceilImpl",()=>p.ceilImpl),s.export(r,"concatImpl",()=>c.concatImpl),s.export(r,"equalImpl",()=>d.equalImpl),s.export(r,"expImpl",()=>f.expImpl),s.export(r,"expm1Impl",()=>h.expm1Impl),s.export(r,"floorImpl",()=>m.floorImpl),s.export(r,"floorDivImpl",()=>g.floorDivImpl),s.export(r,"gatherNdImpl",()=>x.gatherNdImpl),s.export(r,"gatherV2Impl",()=>v.gatherV2Impl),s.export(r,"greaterImpl",()=>y.greaterImpl),s.export(r,"greaterEqualImpl",()=>_.greaterEqualImpl),s.export(r,"lessImpl",()=>b.lessImpl),s.export(r,"lessEqualImpl",()=>k.lessEqualImpl),s.export(r,"linSpaceImpl",()=>T.linSpaceImpl),s.export(r,"logImpl",()=>w.logImpl),s.export(r,"maxImpl",()=>I.maxImpl),s.export(r,"maximumImpl",()=>j.maximumImpl),s.export(r,"minimumImpl",()=>C.minimumImpl),s.export(r,"multiplyImpl",()=>N.multiplyImpl),s.export(r,"negImpl",()=>S.negImpl),s.export(r,"notEqualImpl",()=>E.notEqualImpl),s.export(r,"prodImpl",()=>A.prodImpl),s.export(r,"raggedGatherImpl",()=>F.raggedGatherImpl),s.export(r,"raggedRangeImpl",()=>R.raggedRangeImpl),s.export(r,"raggedTensorToTensorImpl",()=>D.raggedTensorToTensorImpl),s.export(r,"rangeImpl",()=>P.rangeImpl),s.export(r,"rsqrtImpl",()=>$.rsqrtImpl),s.export(r,"scatterImpl",()=>M.scatterImpl),s.export(r,"sigmoidImpl",()=>O.sigmoidImpl),s.export(r,"sliceImpl",()=>B.sliceImpl),s.export(r,"sparseFillEmptyRowsImpl",()=>q.sparseFillEmptyRowsImpl),s.export(r,"sparseReshapeImpl",()=>L.sparseReshapeImpl),s.export(r,"sparseSegmentReductionImpl",()=>V.sparseSegmentReductionImpl),s.export(r,"sqrtImpl",()=>G.sqrtImpl),s.export(r,"squaredDifferenceImpl",()=>z.squaredDifferenceImpl),s.export(r,"staticRegexReplaceImpl",()=>U.staticRegexReplaceImpl),s.export(r,"stridedSliceImpl",()=>X.stridedSliceImpl),s.export(r,"stringNGramsImpl",()=>W.stringNGramsImpl),s.export(r,"stringSplitImpl",()=>H.stringSplitImpl),s.export(r,"stringToHashBucketFastImpl",()=>K.stringToHashBucketFastImpl),s.export(r,"subImpl",()=>J.subImpl),s.export(r,"tileImpl",()=>Y.tileImpl),s.export(r,"topKImpl",()=>Z.topKImpl),s.export(r,"transposeImpl",()=>Q.transposeImpl),s.export(r,"uniqueImpl",()=>ee.uniqueImpl);var a=e("./kernels/Abs"),o=e("./kernels/Add"),l=e("./kernels/Bincount_impl"),i=e("./kernels/BitwiseAnd"),u=e("./kernels/Cast"),p=e("./kernels/Ceil"),c=e("./kernels/Concat_impl"),d=e("./kernels/Equal"),f=e("./kernels/Exp"),h=e("./kernels/Expm1"),m=e("./kernels/Floor"),g=e("./kernels/FloorDiv"),x=e("./kernels/GatherNd_Impl"),v=e("./kernels/GatherV2_impl"),y=e("./kernels/Greater"),_=e("./kernels/GreaterEqual"),b=e("./kernels/Less"),k=e("./kernels/LessEqual"),T=e("./kernels/LinSpace_impl"),w=e("./kernels/Log"),I=e("./kernels/Max_impl"),j=e("./kernels/Maximum"),C=e("./kernels/Minimum"),N=e("./kernels/Multiply"),S=e("./kernels/Neg"),E=e("./kernels/NotEqual"),A=e("./kernels/Prod"),F=e("./kernels/RaggedGather_impl"),R=e("./kernels/RaggedRange_impl"),D=e("./kernels/RaggedTensorToTensor_impl"),P=e("./kernels/Range_impl"),$=e("./kernels/Rsqrt"),M=e("./kernels/Scatter_impl"),O=e("./kernels/Sigmoid"),B=e("./kernels/Slice"),q=e("./kernels/SparseFillEmptyRows_impl"),L=e("./kernels/SparseReshape_impl"),V=e("./kernels/SparseSegmentReduction_impl"),G=e("./kernels/Sqrt"),z=e("./kernels/SquaredDifference"),U=e("./kernels/StaticRegexReplace"),X=e("./kernels/StridedSlice_impl"),W=e("./kernels/StringNGrams_impl"),H=e("./kernels/StringSplit_impl"),K=e("./kernels/StringToHashBucketFast_impl"),J=e("./kernels/Sub"),Y=e("./kernels/Tile_impl"),Z=e("./kernels/TopK_impl"),Q=e("./kernels/Transpose_impl"),ee=e("./kernels/Unique_impl")},{"./kernels/Abs":"b1Yz0","./kernels/Add":"cQSIz","./kernels/Bincount_impl":"epZZc","./kernels/BitwiseAnd":"dGELQ","./kernels/Cast":"6EKy0","./kernels/Ceil":"jMdYD","./kernels/Concat_impl":"3KJ3m","./kernels/Equal":"hOgtZ","./kernels/Exp":"hPUQx","./kernels/Expm1":"a5XSW","./kernels/Floor":"l7WfX","./kernels/FloorDiv":"bq9X7","./kernels/GatherNd_Impl":"lNnuV","./kernels/GatherV2_impl":"bdusj","./kernels/Greater":"fMRwP","./kernels/GreaterEqual":"l1SE7","./kernels/Less":"evneQ","./kernels/LessEqual":"5IGAH","./kernels/LinSpace_impl":"7NuXo","./kernels/Log":"bwxVX","./kernels/Max_impl":"40ZTk","./kernels/Maximum":"1Q4kc","./kernels/Minimum":"faufz","./kernels/Multiply":"7NGDi","./kernels/Neg":"70PGK","./kernels/NotEqual":"jrWXP","./kernels/Prod":"9ym2m","./kernels/RaggedGather_impl":"jXMcg","./kernels/RaggedRange_impl":"gugLL","./kernels/RaggedTensorToTensor_impl":"4XZln","./kernels/Range_impl":"lJ7QP","./kernels/Rsqrt":"bv39b","./kernels/Scatter_impl":"7vWDN","./kernels/Sigmoid":"feZfA","./kernels/Slice":"6zAVh","./kernels/SparseFillEmptyRows_impl":"dD1sk","./kernels/SparseReshape_impl":"dVRjD","./kernels/SparseSegmentReduction_impl":"2pDT7","./kernels/Sqrt":"1aPpb","./kernels/SquaredDifference":"JN6BO","./kernels/StaticRegexReplace":"7kidZ","./kernels/StridedSlice_impl":"f1AZ6","./kernels/StringNGrams_impl":"8eCIi","./kernels/StringSplit_impl":"iLC5O","./kernels/StringToHashBucketFast_impl":"2o0m3","./kernels/Sub":"lwW2V","./kernels/Tile_impl":"hNB7q","./kernels/TopK_impl":"cdOVN","./kernels/Transpose_impl":"dnOuT","./kernels/Unique_impl":"3PIkU","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],b1Yz0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"simpleAbsImpl",()=>l),s.export(r,"abs",()=>i),s.export(r,"absConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let t=new Float32Array(e.length);for(let r=0;r<e.length;++r)t[r]=Math.abs(e[r]);return t}let i=e=>{let{x:t}=e.inputs,r=e.backend;(0,o.assertNotComplex)(t,"abs");let n=new Float32Array(a.util.sizeFromShape(t.shape));return n=l(r.data.get(t.dataId).values),r.makeOutput(n,t.shape,t.dtype)},u={kernelName:a.Abs,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2r9V1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"assertNotComplex",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t){Array.isArray(e)||(e=[e]),e.forEach(e=>{null!=e&&a.util.assert("complex64"!==e.dtype,()=>`${t} does not support complex64 tensors in the CPU backend.`)})}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cQSIz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addImpl",()=>i),s.export(r,"addComplexImpl",()=>u),s.export(r,"add",()=>p),s.export(r,"addConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e+t),u=(0,l.createComplexBinaryKernelImpl)((e,t,r,n)=>({real:e+r,imag:t+n})),p=(0,l.binaryKernelFunc)(a.Add,i,u),c={kernelName:a.Add,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],baeuU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"createSimpleBinaryKernelImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e){return(t,r,n,s,o)=>{let l=a.backend_util.assertAndGetBroadcastShape(t,r),i=l.length,u=a.util.computeStrides(l),p=a.util.sizeFromShape(l),c=a.util.getTypedArrayFromDType(o,p),d=t.length,f=r.length,h=a.util.computeStrides(t),m=a.util.computeStrides(r),g=a.backend_util.getBroadcastDims(t,l),x=a.backend_util.getBroadcastDims(r,l);if(g.length+x.length===0)for(let t=0;t<c.length;++t)c[t]=e(n[t%n.length],s[t%s.length]);else for(let t=0;t<c.length;++t){let r=a.util.indexToLoc(t,i,u),o=r.slice(-d);g.forEach(e=>o[e]=0);let l=a.util.locToIndex(o,d,h),p=r.slice(-f);x.forEach(e=>p[e]=0);let v=a.util.locToIndex(p,f,m);c[t]=e(n[l],s[v])}return[c,l]}}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8IMG3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"binaryKernelFunc",()=>u),s.export(r,"createComplexBinaryKernelImpl",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../kernels/Cast"),i=e("../kernels/Complex");function u(e,t,r,n){return null==r?({inputs:r,backend:s})=>{let{a:l,b:i}=r;(0,o.assertNotComplex)([l,i],e);let u=s.data.get(l.dataId).values,p=s.data.get(i.dataId).values,c="string"===l.dtype?a.backend_util.fromUint8ToStringArray(u):u,d="string"===l.dtype?a.backend_util.fromUint8ToStringArray(p):p,f=n||l.dtype,[h,m]=t(l.shape,i.shape,c,d,f);return s.makeTensorInfo(m,f,h)}:({inputs:e,backend:s})=>{let{a,b:o}=e;if("complex64"===a.dtype||"complex64"===o.dtype){let e=(0,l.cast)({inputs:{x:a},backend:s,attrs:{dtype:"complex64"}}),t=s.data.get(e.dataId),n=t.complexTensorInfos.real,u=t.complexTensorInfos.imag,p=s.data.get(n.dataId).values,c=s.data.get(u.dataId).values,d=(0,l.cast)({inputs:{x:o},backend:s,attrs:{dtype:"complex64"}}),f=s.data.get(d.dataId),h=f.complexTensorInfos.real,m=f.complexTensorInfos.imag,g=s.data.get(h.dataId).values,x=s.data.get(m.dataId).values,[v,y,_]=r(a.shape,o.shape,p,c,g,x),b=s.makeTensorInfo(_,"float32",v),k=s.makeTensorInfo(_,"float32",y),T=(0,i.complex)({inputs:{real:b,imag:k},backend:s});return s.disposeIntermediateTensorInfo(e),s.disposeIntermediateTensorInfo(d),s.disposeIntermediateTensorInfo(b),s.disposeIntermediateTensorInfo(k),T}{let e=s.data.get(a.dataId).values,r=s.data.get(o.dataId).values,l=n||a.dtype,[i,u]=t(a.shape,o.shape,e,r,l);return s.makeTensorInfo(u,l,i)}}}function p(e){return(t,r,n,s,o,l)=>{let i=a.backend_util.assertAndGetBroadcastShape(t,r),u=a.util.sizeFromShape(i),p=i.length,c=a.util.computeStrides(i),d=a.util.getTypedArrayFromDType("float32",u),f=a.util.getTypedArrayFromDType("float32",u),h=a.backend_util.getBroadcastDims(t,i),m=a.backend_util.getBroadcastDims(r,i),g=a.backend_util.mergeRealAndImagArrays(n,s),x=a.backend_util.mergeRealAndImagArrays(o,l),v=t.length,y=a.util.computeStrides(t),_=r.length,b=a.util.computeStrides(r);if(h.length+m.length===0)for(let t=0;t<d.length;t++){let r=t%g.length,n=t%x.length,s=e(g[2*r],g[2*r+1],x[2*n],x[2*n+1]);d[t]=s.real,f[t]=s.imag}else for(let t=0;t<d.length;t++){let r=a.util.indexToLoc(t,p,c),n=r.slice(-v);h.forEach(e=>n[e]=0);let s=a.util.locToIndex(n,v,y),o=r.slice(-_);m.forEach(e=>o[e]=0);let l=a.util.locToIndex(o,_,b),i=e(g[2*s],g[2*s+1],x[2*l],x[2*l+1]);d[t]=i.real,f[t]=i.imag}return[d,f,i]}}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","../kernels/Cast":"6EKy0","../kernels/Complex":"di9tc","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6EKy0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"castImpl",()=>c),s.export(r,"cast",()=>d),s.export(r,"castConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/zeros_impl"),i=e("./Complex"),u=e("./Identity"),p=e("./Real");function c(e,t,r,n){if("int32"===n)return[t,"int32",Int32Array.from(e)];if("bool"===n){let n=a.util.toTypedArray([0],r),[s,l]=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e!==t))(t,[],e,n,"bool");return[l,"bool",s]}throw Error(`Error in Cast: failed to cast ${r} to ${n}`)}function d(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{dtype:o}=n;if("complex64"===o){if("complex64"===s.dtype)return(0,u.identity)({inputs:{x:s},backend:r});let e=(0,l.zeros)(r,s.shape,s.dtype),t=d({inputs:{x:s},backend:r,attrs:{dtype:"float32"}}),n=(0,i.complex)({inputs:{real:t,imag:e},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),n}if("complex64"===s.dtype){let e=(0,p.real)({inputs:{input:s},backend:r}),t=d({inputs:{x:e},backend:r,attrs:{dtype:o}});return r.disposeIntermediateTensorInfo(e),t}if(!a.util.hasEncodingLoss(s.dtype,o)){let e=(0,u.identity)({inputs:{x:s},backend:r});return{dataId:e.dataId,shape:e.shape,dtype:o}}let[f,h,m]=c(r.data.get(s.dataId).values,s.shape,s.dtype,o);return r.makeTensorInfo(f,h,m)}let f={kernelName:a.Cast,backendName:"cpu",kernelFunc:d}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/zeros_impl":"cvcrj","./Complex":"di9tc","./Identity":"lz9gJ","./Real":"2dRsO","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cvcrj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zeros",()=>function e(t,r,n="float32"){if("complex64"===n){let n=e(t,r,"float32"),s=e(t,r,"float32");return(0,o.complex)({inputs:{real:n,imag:s},backend:t})}let s=a.util.makeZerosTypedArray(a.util.sizeFromShape(r),n);return t.makeTensorInfo(r,n,s)});var a=e("@tensorflow/tfjs-core"),o=e("../kernels/Complex")},{"@tensorflow/tfjs-core":"hADTC","../kernels/Complex":"di9tc","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],di9tc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{real:n,imag:s}=t,a=r.data.get(n.dataId).values,o=r.data.get(s.dataId).values,l=r.makeTensorInfo(n.shape,"complex64");return r.data.get(l.dataId).complexTensorInfos={real:r.makeTensorInfo(n.shape,"float32",a),imag:r.makeTensorInfo(s.shape,"float32",o)},l}s.defineInteropFlag(r),s.export(r,"complex",()=>a),s.export(r,"complexConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Complex,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lz9gJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{x:n}=t;return r.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}s.defineInteropFlag(r),s.export(r,"identity",()=>a),s.export(r,"identityConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Identity,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2dRsO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{input:n}=t,s=r.data.get(n.dataId).complexTensorInfos.real,a=r.data.get(s.dataId).values;return r.makeTensorInfo(s.shape,s.dtype,a)}s.defineInteropFlag(r),s.export(r,"real",()=>a),s.export(r,"realConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Real,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],epZZc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bincountImpl",()=>o),s.export(r,"bincountReduceImpl",()=>l);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s){let o=a.util.sizeFromShape(n),l=a.util.makeZerosTypedArray(s,r);for(let r=0;r<e.length;r++){let n=e[r];if(n<0)throw Error("Input x must be non-negative!");n>=s||(o>0?l[n]+=t[r]:l[n]+=1)}return l}function l(e,t,r,n=!1){let s=e.shape[0],o=e.shape[1],i=(0,a.buffer)([s,r],t.dtype);for(let a=0;a<s;a++)for(let s=0;s<o;s++){let o=e.get(a,s);if(o<0)throw Error("Input x must be non-negative!");o>=r||(n?i.set(1,a,o):t.size>0?i.set(i.get(a,o)+t.get(a,s),a,o):i.set(i.get(a,o)+1,a,o))}return i}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dGELQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bitwiseAndImpl",()=>i),s.export(r,"bitwiseAnd",()=>u),s.export(r,"bitwiseAndConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e&t),u=(0,l.binaryKernelFunc)(a.BitwiseAnd,i),p={kernelName:a.BitwiseAnd,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jMdYD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ceilImpl",()=>i),s.export(r,"ceil",()=>u),s.export(r,"ceilConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.ceil(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Ceil,i),p={kernelName:a.Ceil,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_impl":"8SJuR","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8SJuR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"createSimpleUnaryImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e){return(t,r,n)=>{let s=a.util.getArrayFromDType(r,t.length);for(let r=0;r<t.length;++r)s[r]=e(t[r],n);return s}}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gUSss:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unaryKernelFunc",()=>i),s.export(r,"unaryKernelFuncFromImpl",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./unary_impl");function i(e,t,r){return u(e,(0,l.createSimpleUnaryImpl)(t),r)}function u(e,t,r){return({inputs:n,attrs:s,backend:l})=>{let i,{x:u}=n;(0,o.assertNotComplex)(u,e);let p=l.data.get(u.dataId).values;if("string"===u.dtype){if(!Array.isArray(p))throw Error("String tensor's value was not an instance of Array");i=a.backend_util.fromUint8ToStringArray(p)}else i=p;let c=r||u.dtype,d=t(i,c,s);return l.makeTensorInfo(u.shape,c,d)}}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./unary_impl":"8SJuR","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3KJ3m":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concatImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=a.util.getArrayFromDType(r,a.util.sizeFromShape(t));if(n&&"string"!==r){let t=0;e.forEach(e=>{let r=a.util.sizeFromShape(e.shape);s.set(e.vals,t),t+=r})}else{let n=0;e.forEach(e=>{let o="string"===r?a.backend_util.fromUint8ToStringArray(e.vals):e.vals,l=0;for(let r=0;r<e.shape[0];++r){let a=r*t[1]+n;for(let t=0;t<e.shape[1];++t)s[a+t]=o[l++]}n+=e.shape[1]})}return s}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hOgtZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"equalImpl",()=>i),s.export(r,"equal",()=>u),s.export(r,"equalConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e===t)),u=(0,l.binaryKernelFunc)(a.Equal,i,null,"bool"),p={kernelName:a.Equal,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hPUQx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expImpl",()=>i),s.export(r,"exp",()=>u),s.export(r,"expConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.exp(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Exp,i,"float32"),p={kernelName:a.Exp,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_impl":"8SJuR","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],a5XSW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expm1Impl",()=>i),s.export(r,"expm1",()=>u),s.export(r,"expm1Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.expm1(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Expm1,i),p={kernelName:a.Expm1,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_impl":"8SJuR","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],l7WfX:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floorImpl",()=>i),s.export(r,"floor",()=>u),s.export(r,"floorConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.floor(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Floor,i),p={kernelName:a.Floor,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_impl":"8SJuR","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bq9X7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floorDivImpl",()=>i),s.export(r,"floorDiv",()=>u),s.export(r,"floorDivConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.floor(e/t)),u=(0,l.binaryKernelFunc)(a.FloorDiv,i,null,"int32"),p={kernelName:a.FloorDiv,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lNnuV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherNdImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o,l,i,u){let p=(0,a.buffer)([n,o],r);for(let r=0;r<n;r++){let n=[],a=0;for(let t=0;t<s;t++){let o=e[r*s+t];a+=o*l[t],n.push(o)}if(a<0||a>=u/o)throw Error(`Invalid indices: ${n} does not index into ${i}`);for(let e=0;e<o;e++)p.values[r*o+e]=t.get(...t.indexToLoc(a*o+e))}return p}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bdusj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherV2Impl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r){let n=(0,a.buffer)(r,e.dtype);for(let r=0;r<n.size;++r){let s=n.indexToLoc(r).slice(),a=s[0],o=s[2],l=t.locToIndex([a,o]);s[2]=t.values[l];let i=e.locToIndex(s);0<=i&&i<e.values.length&&(n.values[r]=e.values[i])}return n}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fMRwP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greaterImpl",()=>i),s.export(r,"greater",()=>u),s.export(r,"greaterConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e>t)),u=(0,l.binaryKernelFunc)(a.Greater,i,null,"bool"),p={kernelName:a.Greater,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],l1SE7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greaterEqualImpl",()=>i),s.export(r,"greaterEqual",()=>u),s.export(r,"greaterEqualConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e>=t)),u=(0,l.binaryKernelFunc)(a.GreaterEqual,i,null,"bool"),p={kernelName:a.GreaterEqual,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],evneQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lessImpl",()=>i),s.export(r,"less",()=>u),s.export(r,"lessConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e<t)),u=(0,l.binaryKernelFunc)(a.Less,i,null,"bool"),p={kernelName:a.Less,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5IGAH":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lessEqualImpl",()=>i),s.export(r,"lessEqual",()=>u),s.export(r,"lessEqualConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e<=t)),u=(0,l.binaryKernelFunc)(a.LessEqual,i,null,"bool"),p={kernelName:a.LessEqual,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7NuXo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"linSpaceImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r){let n=(t-e)/(r-1),s=a.util.makeZerosTypedArray(r,"float32");s[0]=e;for(let e=1;e<s.length;e++)s[e]=s[e-1]+n;return s}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bwxVX:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logImpl",()=>i),s.export(r,"log",()=>u),s.export(r,"logConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.log(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Log,i),p={kernelName:a.Log,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_impl":"8SJuR","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"40ZTk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=a.util.getTypedArrayFromDType(n,a.util.sizeFromShape(r));for(let r=0;r<s.length;++r){let n=r*t,a=e[n];for(let r=0;r<t;++r){let t=e[n+r];(Number.isNaN(t)||t>a)&&(a=t)}s[r]=a}return s}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1Q4kc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maximumImpl",()=>i),s.export(r,"maximum",()=>u),s.export(r,"maximumConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.max(e,t)),u=(0,l.binaryKernelFunc)(a.Maximum,i),p={kernelName:a.Maximum,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],faufz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"minimumImpl",()=>i),s.export(r,"minimum",()=>u),s.export(r,"minimumConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.min(e,t)),u=(0,l.binaryKernelFunc)(a.Minimum,i),p={kernelName:a.Minimum,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7NGDi":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multiplyImpl",()=>i),s.export(r,"multiplyComplexImpl",()=>u),s.export(r,"multiply",()=>p),s.export(r,"multiplyConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e*t),u=(0,l.createComplexBinaryKernelImpl)((e,t,r,n)=>({real:e*r-t*n,imag:e*n+t*r})),p=(0,l.binaryKernelFunc)(a.Multiply,i,u),c={kernelName:a.Multiply,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"70PGK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"negImpl",()=>i),s.export(r,"neg",()=>u),s.export(r,"negConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Multiply");function i(e,t,r){let n=a.util.createScalarValue(-1,r);return(0,l.multiplyImpl)([],t,n,e,r)}function u(e){let{inputs:t,backend:r}=e,{x:n}=t;(0,o.assertNotComplex)(n,"neg");let[s,a]=i(r.data.get(n.dataId).values,n.shape,n.dtype);return r.makeTensorInfo(a,n.dtype,s)}let p={kernelName:a.Neg,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Multiply":"7NGDi","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jrWXP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"notEqualImpl",()=>i),s.export(r,"notEqual",()=>u),s.export(r,"notEqualConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e!==t)),u=(0,l.binaryKernelFunc)(a.NotEqual,i,null,"bool"),p={kernelName:a.NotEqual,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9ym2m":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prodImpl",()=>i),s.export(r,"prod",()=>u),s.export(r,"prodConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e,t,r,n){let[s,o]=a.backend_util.computeOutAndReduceShapes(e,n),l=(0,a.upcastType)(t,"int32"),i=a.util.makeZerosTypedArray(a.util.sizeFromShape(s),l),u=a.util.sizeFromShape(o);for(let e=0;e<i.length;++e){let t=e*u,n=1;for(let e=0;e<u;++e)n*=r[t+e];i[e]=n}return{outVals:i,outShape:s,outDtype:l}}function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:u,keepDims:p}=n;(0,o.assertNotComplex)(s,"prod");let c=s.shape.length,d=a.util.parseAxisParam(u,s.shape),f=a.backend_util.getAxesPermutation(d,c),h=d,m=s,g=[];null!=f&&(g.push(m=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:f}})),h=a.backend_util.getInnerMostAxes(h.length,c));let x=r.data.get(m.dataId).values,{outVals:v,outShape:y,outDtype:_}=i(m.shape,m.dtype,x,h),b=y;return p&&(b=a.backend_util.expandShapeToKeepDim(y,d)),g.forEach(e=>r.disposeIntermediateTensorInfo(e)),r.makeTensorInfo(b,_,v)}let p={kernelName:a.Prod,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Transpose":"jCE2o","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jCE2o:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transpose",()=>i),s.export(r,"transposeConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose_impl");function i(e){let{inputs:t,attrs:r,backend:n}=e,{x:s}=t,{perm:a}=r;(0,o.assertNotComplex)(s,"transpose");let i=Array(s.shape.length);for(let e=0;e<i.length;e++)i[e]=s.shape[a[e]];let u=n.data.get(s.dataId).values,p=(0,l.transposeImpl)(u,s.shape,s.dtype,a,i);return{dataId:n.write(p,i,s.dtype),shape:i,dtype:s.dtype}}let u={kernelName:a.Transpose,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Transpose_impl":"dnOuT","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dnOuT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transposeImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s){let o=t.length,l=a.util.sizeFromShape(t),i=a.util.computeStrides(t),u=a.util.computeStrides(s),p=a.util.getTypedArrayFromDType(r,a.util.sizeFromShape(s));for(let t=0;t<l;++t){let r=a.util.indexToLoc(t,o,i),s=Array(r.length);for(let e=0;e<s.length;e++)s[e]=r[n[e]];p[a.util.locToIndex(s,o,u)]=e[t]}return p}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jXMcg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedGatherImpl",()=>l);var a=e("@tensorflow/tfjs-core");function o(e,t){let r=e.slice(0,t);for(;r.length<t;)r.push(1);for(let n=t;n<e.length;n++)r[t-1]*=e[n];return r}function l(e,t,r,n,s,l,i,u){let p,c,d,f;if(0===e.length)throw Error("paramsNestedSplits must be non empty");if(0===t[0].length)throw Error("Split tensors must not be scalars");let h=t[0][0]-1;if(l.forEach((e,t)=>{if(e<0||e>=h){let r=a.util.indexToLoc(t,i.length,a.util.computeStrides(i)).join(",");throw Error(`indices[${r}] = ${e} is not in [0, ${h})`)}}),0===n.length)throw Error("params.rank must be nonzero");let{outSplits:m,valueSlices:g,numValues:x}=function(e,t,r,n){let s=[],a=0,o=Array(t.length-1+r.length).fill(null).map(()=>[0]);for(let e=0;e<r.length;++e){let t=r[e],s=e===r.length-1?n:r[e+1].length;if(0===t.length)throw Error("Ragged splits may not be empty");if(t[0]<0)throw Error("Ragged splits must be non-negative");if(t[t.length-1]>s)throw Error("Ragged splits must not point past values");for(let e=1;e<t.length;++e)if(t[e-1]>t[e])throw Error("Ragged splits must be sorted in ascending order")}let l=1;for(let e=0;e<t.length-1;++e){l*=t[e];let r=t[e+1];for(let t=1;t<l+1;++t)o[e].push(t*r)}for(let n=0;n<e.length;++n){let l=e[n],i=e[n]+1;for(let e=0;e<r.length;++e){let n=r[e],s=e+t.length-1;if(s>=0){let e=o[s],t=e[e.length-1]-n[l];for(let e=l;e<i;++e)o[s].push(n[e+1]+t)}l=n[l],i=n[i]}i!==l&&(s.push([l,i]),a+=i-l)}return{outSplits:o,valueSlices:s,numValues:a}}(l,i,e,n[0]),v=function(e){let t=[];for(let r=0;r<e.length;++r){let n=e[r].length,s=a.util.getArrayFromDType("int32",n);t.push(s),e[r].forEach((e,t)=>s[t]=e)}return t}(m),y=((p=n.slice())[0]=x,c=a.util.getArrayFromDType(s,a.util.sizeFromShape(p)),f=0===(d=r.length)?0:d/n[0],!function(e,t,r,n,s,a){let l=o(t,2)[1],i=o(a,2)[1],u=0;for(let t of r)for(let r=t[0];r<t[1];++r){for(let t=0;t<n;++t)s[u*i+t]=e[r*l+t];++u}}(r,n,g,f,c,p),[c,p]);return[v,y[0],y[1]]}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gugLL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedRangeImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o,l){if(t.length>1)throw Error("starts must be a scalar or vector");if(s.length>1)throw Error("limits must be a scalar or vector");if(l.length>1)throw Error("deltas must be a scalar or vector");let i=0===t.length,u=0===s.length,p=0===l.length,c=[];i||c.push(t[0]),u||c.push(s[0]),p||c.push(l[0]);for(let e=1;e<c.length;++e)if(c[e]!==c[e-1])throw Error("starts, limits, and deltas must have the same shape");let d=0===c.length?1:c[0],f=a.util.getArrayFromDType("int32",d+1);f[0]=0;for(let t=0;t<d;++t){let r,s=i?e[0]:e[t],a=u?n[0]:n[t],l=p?o[0]:o[t];if(0===l)throw Error("Requires delta != 0");if(l>0&&a<s||l<0&&a>s)r=0;else if((r=Math.ceil(Math.abs((a-s)/l)))>0x7fffffff)throw Error("Requires ((limit - start) / delta)<= 2147483647");f[t+1]=f[t]+r}let h=f[d],m=a.util.getArrayFromDType(r,h),g=0;for(let t=0;t<d;++t){let r=f[t+1]-f[t],n=i?e[0]:e[t],s=p?o[0]:o[t];for(let e=0;e<r;++e)m[g++]=n,n+=s}return[f,m]}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4XZln":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedTensorToTensorImpl",()=>p);var a=e("@tensorflow/tfjs-core"),o=a.backend_util.RowPartitionType;class l{constructor(e,t,r,n,s,o,l,i,u,p){this.shape=e,this.shapeShape=t,this.values=r,this.valuesShape=n,this.valuesDType=s,this.defaultValue=o,this.defaultValueShape=l,this.rowPartitionValues=i,this.rowPartitionValuesShapes=u,this.rowPartitionTypes=a.backend_util.getRowPartitionTypesHelper(p),this.raggedRank=a.backend_util.getRaggedRank(this.rowPartitionTypes)}getRowPartitionTypeByDimension(e){return this.rowPartitionTypes[0]===o.FIRST_DIM_SIZE?this.rowPartitionTypes[e+1]:this.rowPartitionTypes[e]}getRowPartitionTensor(e){return this.rowPartitionTypes[0]===o.FIRST_DIM_SIZE?this.rowPartitionValues[e+1]:this.rowPartitionValues[e]}getMaxWidth(e){let t=this.getRowPartitionTensor(e-1);switch(this.getRowPartitionTypeByDimension(e-1)){case o.VALUE_ROWIDS:return l.getMaxWidthValueRowID(t);case o.ROW_SPLITS:return l.getMaxWidthRowSplit(t);default:throw Error(`Cannot handle partition type ${o[this.getRowPartitionTypeByDimension(e-1)]}`)}}static getMaxWidthRowSplit(e){let t=e.length;if(0===t||1===t)return 0;let r=0;for(let n=0;n<t-1;++n){let t=e[n+1]-e[n];t>r&&(r=t)}return r}static getMaxWidthValueRowID(e){let t=e.length;if(0===t)return 0;let r=0,n=e[0],s=0;for(let a=1;a<t;++a){let t=e[a];t!==n&&(n=t,s=Math.max(a-r,s),r=a)}return Math.max(t-r,s)}tensorShapeFromTensor(e,t,r=!0){if(0===t.length){if(-1===e[0])return[];throw Error("The only valid scalar shape tensor is the fully unknown shape specified as -1.")}return u(e,r)}calculateOutputSize(e){let t=this.valuesShape,r=this.defaultValueShape;a.backend_util.validateDefaultValueShape(r,t);let n=this.tensorShapeFromTensor(this.shape,this.shapeShape),s=a.backend_util.combineRaggedTensorToTensorShapes(this.raggedRank,n,t);s[0]<0&&(s[0]=e);for(let e=1;e<=this.raggedRank;++e)s[e]<0&&(s[e]=this.getMaxWidth(e));return s}calculateFirstParentOutputIndex(e,t,r){let n=Math.min(e,r),s=[],o=0;for(let e=0;e<n;++e,o+=t)s.push(o);for(let t=n;t<e;++t)s.push(-1);return a.util.assert(s.length===e,()=>"Final length of result must be equal to firstDimension."),s}calculateOutputIndexRowSplit(e,t,r,n){let s=e.length,a=[];for(let o=0;o<s-1;++o){let s=e[o+1]-e[o],l=Math.min(n,s),i=t[o];-1===i&&(l=0);for(let e=0;e<l;++e)a.push(i),i+=r;for(let e=0;e<s-l;++e)a.push(-1)}if(s>0&&a.length!==e[s-1])throw Error("Invalid row split size.");return a}calculateOutputIndexValueRowID(e,t,r,n){let s=e.length,a=[];if(0===s)return[];let o=0,l=e[0];if(l>=t.length)throw Error(`Got currentValueRowId=${l}, which is not less than ${t.length}`);let i=t[l];a.push(i);for(let u=1;u<s;++u){let s=e[u];if(s===l)i>=0&&(++o<n?i+=r:i=-1);else{if(o=0,l=s,s>=t.length)throw Error(`Got nextValueRowId=${s} which is not less than ${t.length}`);i=t[s]}a.push(i)}if(a.length!==e.length)throw Error("Invalid row ids.");return a}calculateOutputIndex(e,t,r,n){let s=this.getRowPartitionTensor(e),a=this.getRowPartitionTypeByDimension(e);switch(a){case o.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,t,r,n);case o.ROW_SPLITS:if(s.length-1>t.length)throw Error(`Row partition size is greater than output size: ${s.length-1} > ${t.length}`);return this.calculateOutputIndexRowSplit(s,t,r,n);default:throw Error(`Unsupported partition type: ${o[a]}`)}}getFirstDimensionSize(){let e=this.rowPartitionValues[0];if(0===this.rowPartitionTypes.length)throw Error("No row_partition_types given.");let t=this.rowPartitionTypes[0];switch(t){case o.FIRST_DIM_SIZE:return e[0];case o.VALUE_ROWIDS:throw Error("Cannot handle VALUE_ROWIDS in first dimension.");case o.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw Error(`Cannot handle type ${o[t]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),t=this.calculateOutputSize(e),r=Array(this.raggedRank+1);r[r.length-1]=1;for(let e=r.length-2;e>=0;--e)r[e]=r[e+1]*t[e+1];let n=u(t,!1),s=a.util.getArrayFromDType(this.valuesDType,a.util.sizeFromShape(n));if(r[0]*t[0]>0){let a=this.calculateFirstParentOutputIndex(e,r[0],t[0]);for(let e=1;e<=this.raggedRank;++e)a=this.calculateOutputIndex(e-1,a,r[e],t[e]);this.setOutput(this.raggedRank,a,s,n)}return[n,s]}setOutput(e,t,r,n){if(0===r.length)return;let s=this.values,o=n.slice();o=o.slice(e+1);let l=a.util.sizeFromShape(o),u=t.length,p=this.defaultValue;if(p.length!==l&&1!==p.length){let e=this.defaultValueShape;(0,a.tidy)(()=>{let t=(0,a.reshape)(p,e);p=(0,a.broadcastTo)(t,o).dataSync()})}let c=0,d=0,f=0;for(let e=0;e<=u;++e){let n=e<u?t[e]:-1;if(n===f){++f;continue}if(d<f){let e=s.subarray(c*l);i(r.subarray(d*l),e,(f-d)*l)}if(e>=u&&(n=Math.floor(r.length/l)),n>f)if(1===this.defaultValue.length)r.subarray(f*l,n*l).fill(this.defaultValue[0]),f=n;else for(;n>f;)i(r.slice(f*l),p,l),++f;n<0?(c=e+1,d=f):(c=e,f=(d=f)+1)}}}function i(e,t,r){for(let n=0;n<r;n++)e[n]=t[n]}function u(e,t){let r=[];for(let n of e){if(n<0){if(!t)throw Error(`Dimension ${n} must be >= 0`);if(n<-1)throw Error(`Dimension ${n} must be >= -1`);n=-1}r.push(n)}return r}function p(e,t,r,n,s,a,o,i,u,p){return new l(e,t,r,n,s,a,o,i,u,p).compute()}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lJ7QP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rangeImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=e===t,o=e<t&&r<0,l=t<e&&r>1;if(s||o||l)return a.util.makeZerosTypedArray(0,n);let i=Math.abs(Math.ceil((t-e)/r)),u=a.util.makeZerosTypedArray(i,n);t<e&&1===r&&(r=-1),u[0]=e;for(let e=1;e<u.length;e++)u[e]=u[e-1]+r;return u}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bv39b:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rsqrtImpl",()=>i),s.export(r,"rsqrt",()=>u),s.export(r,"rsqrtConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>1/Math.sqrt(e)),u=(0,l.unaryKernelFuncFromImpl)(a.Rsqrt,i),p={kernelName:a.Rsqrt,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_impl":"8SJuR","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7vWDN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scatterImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o,l,i,u,p){let c=e.values,d=t.values;if(0===n)return(0,a.buffer)(r,t.dtype);let f=u instanceof a.TensorBuffer?u:(0,a.buffer)([n/s,s],t.dtype);"string"==typeof u||"number"==typeof u?f.values.fill(u):"boolean"==typeof u&&f.values.fill(+u);for(let e=0;e<o;e++){let a=[],o=0;for(let t=0;t<l;t++){let r=c[e*l+t];a.push(r),o+=r*i[t]}if(o<0||o>=n/s)throw Error(`Invalid indices: ${a} does not index into ${r}`);for(let r=0;r<s;r++)p?f.values[o*s+r]+=d[e*s+r]:f.values[o*s+r]=0===t.rank?d[0]:d[e*s+r]}return f}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],feZfA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sigmoidImpl",()=>i),s.export(r,"sigmoid",()=>u),s.export(r,"sigmoidConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>1/(1+Math.exp(-e))),u=(0,l.unaryKernelFunc)(a.Sigmoid,e=>1/(1+Math.exp(-e))),p={kernelName:a.Sigmoid,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_impl":"8SJuR","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6zAVh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sliceImpl",()=>l),s.export(r,"slice",()=>i),s.export(r,"sliceConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e,t,r,n,s){let o=a.slice_util.isSliceContinous(n,t,r),l=a.util.sizeFromShape(r),i=a.util.computeStrides(n);if(o){let r=a.slice_util.computeFlatOffset(t,i);return"string"===s?e.slice(r,r+l):e.subarray(r,r+l)}let u="string"===s?a.backend_util.fromUint8ToStringArray(e):e,p=(0,a.buffer)(n,s,u),c=(0,a.buffer)(r,s);for(let e=0;e<c.size;++e){let r=c.indexToLoc(e),n=r.map((e,r)=>e+t[r]);c.set(p.get(...n),...r)}return"string"===s?a.backend_util.fromStringArrayToUint8(c.values):c.values}function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{begin:i,size:u}=n;(0,o.assertNotComplex)(s,"slice");let[p,c]=a.slice_util.parseSliceParams(s,i,u);a.slice_util.assertParamsValid(s,p,c);let d=l(r.data.get(s.dataId).values,p,c,s.shape,s.dtype);return r.makeTensorInfo(c,s.dtype,d)}let u={kernelName:a.Slice,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dD1sk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseFillEmptyRowsImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o,l){let i=t[0],u=o[0],p=Array(u),c=Array(i),d=t[1];if(0===u){if(0!==i)throw Error(a.backend_util.getSparseFillEmptyRowsIndicesDenseShapeMismatch(i));return[a.util.getArrayFromDType(r,0),[0,d],a.util.getArrayFromDType(s,0),p,c]}let f=!0,h=0,m=Array(u).fill(0);for(let t=0;t<i;++t){let r=e[t*d];if(r<0)throw Error(a.backend_util.getSparseFillEmptyRowsNegativeIndexErrorMessage(t,r));if(r>=u)throw Error(a.backend_util.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(t,r,u));++m[r],f=f&&r>=h,h=r}let g=!0;for(let e=0;e<u;++e){let t=0===m[e];p[e]=t,g=g&&!t,m[e]=Math.max(m[e],1),e>0&&(m[e]+=m[e-1])}if(g&&f){for(let e=0;e<i;++e)c[e]=e;return[e,[i,d],n,p,c]}{let t=m[u-1],o=a.util.getArrayFromDType(r,t*d),f=a.util.getArrayFromDType(s,t),h=Array(u).fill(0);for(let t=0;t<i;++t){let r=e[t*d],s=h[r],a=(0===r?0:m[r-1])+s;h[r]++;for(let r=0;r<d;++r)o[a*d+r]=e[t*d+r];f[a]=n[t],c[t]=a}for(let e=0;e<u;++e)if(0===h[e]){let t=0===e?0:m[e-1];o[t*d+0]=e;for(let e=1;e<d;++e)o[t*d+e]=0;f[t]=l}return[o,[t,d],f,p,c]}}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dVRjD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseReshapeImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s){let o=a.util.sizeFromShape(n),l=t[0],i=s.length,u=[],p=1,c=-1;for(let e=0;e<i;++e){let t=s[e];if(-1===t){if(-1!==c)throw Error(a.backend_util.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(c,e));c=e,u.push(1)}else{if(t<0)throw Error(a.backend_util.getSparseReshapeNegativeOutputDimErrorMessage(e,t));p*=t,u.push(t)}}if(-1!==c){if(p<=0)throw Error(a.backend_util.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage());let e=Math.trunc(o/p);if(p*e!==o)throw Error(a.backend_util.getSparseReshapeInputOutputMultipleErrorMessage(n,u));u[c]=e}if(a.util.sizeFromShape(u)!==o)throw Error(a.backend_util.getSparseReshapeInputOutputMismatchErrorMessage(n,u));let d=n.length,f=[];if(d>0){f[d-1]=1;for(let e=d-2;e>=0;--e)f[e]=f[e+1]*n[e+1]}let h=[];if(i>0){h[i-1]=1;for(let e=i-2;e>=0;--e)h[e]=h[e+1]*u[e+1]}let m=a.util.getArrayFromDType(r,l*i);for(let t=0;t<l;++t){let r=0;for(let n=0;n<d;++n)r+=e[t*d+n]*f[n];for(let e=0;e<i;++e)m[t*i+e]=Math.trunc(r/h[e]),r%=h[e]}return[m,[l,i],u]}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2pDT7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentReductionImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,l=!1,i=0){let u=n.length,p=[t[0],e.length/t[0]],c=p[1],d=u>0?s[u-1]+1:0;if(d<0)throw Error(a.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let f=t.slice();f[0]=d;let h=f.reduce((e,t)=>e*t,1),m=a.util.getArrayFromDType(r,h);if(0===u)return d>0&&m.fill(i),[m,f];if(d<=0)throw Error(a.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let g=0,x=1,v=0,y=s[0];for(;;){let t=0;if(x<u){if(y===(t=s[x])){++x;continue}if(y>=t)throw Error(a.backend_util.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(y<0||y>=d)throw Error(a.backend_util.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y,d));y>v&&m.fill(i,v*c,y*c);for(let t=g;t<x;++t){let r=n[t];if(r<0||r>=p[0])throw Error(a.backend_util.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(t,n[t],p[0]));for(let t=0;t<c;t++)m[y*c+t]+=e[r*c+t]}if(l)for(let e=0;e<c;e++)m[y*c+e]/=x-g;if(g=x,++x,v=y+1,y=t,x>u)break}return v<d&&m.fill(i,v*c,d*c),[m,f]}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1aPpb":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sqrtImpl",()=>i),s.export(r,"sqrt",()=>u),s.export(r,"sqrtConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.sqrt(e)),u=(0,l.unaryKernelFunc)(a.Sqrt,e=>Math.sqrt(e)),p={kernelName:a.Sqrt,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_impl":"8SJuR","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],JN6BO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squaredDifferenceImpl",()=>i),s.export(r,"squaredDifference",()=>u),s.export(r,"squaredDifferenceConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>{let r=e-t;return r*r}),u=(0,l.binaryKernelFunc)(a.SquaredDifference,i),p={kernelName:a.SquaredDifference,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7kidZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"staticRegexReplaceImpl",()=>i),s.export(r,"staticRegexReplaceConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)((e,t)=>{let{pattern:r,replaceGlobal:n,rewrite:s}=t;return e.replace(new RegExp(r,n?"g":""),s)}),u=(0,l.unaryKernelFuncFromImpl)(a.StaticRegexReplace,i),p={kernelName:a.StaticRegexReplace,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_impl":"8SJuR","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],f1AZ6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stridedSliceImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=(0,a.buffer)(e,t.dtype);for(let e=0;e<s.size;e++){let a=s.indexToLoc(e),o=Array(a.length);for(let e=0;e<o.length;e++)o[e]=a[e]*r[e]+n[e];s.set(t.get(...o),...a)}return s}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8eCIi":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringNGramsImpl",()=>l);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t,r,n,s,o){this.separator=a.util.encodeString(e),this.nGramWidths=t,this.leftPad=a.util.encodeString(r),this.rightPad=a.util.encodeString(n),this.padWidth=s,this.preserveShort=o}getPadWidth(e){return Math.min(this.padWidth<0?e-1:this.padWidth,e-1)}getNumNGrams(e,t){return Math.max(0,e+2*this.getPadWidth(t)-t+1)}createNGrams(e,t,r,n,s,a){for(let o=0;o<s;++o){let l,i=this.getPadWidth(a),u=Math.max(0,i-o),p=Math.max(0,i-(s-(o+1))),c=a-(u+p),d=t+(u>0?0:o-i);l=0+u*this.leftPad.length;for(let t=0;t<c;++t)l+=e[d+t].length;l+=p*this.rightPad.length,l+=(u+p+c-1)*this.separator.length,r[n+o]=new Uint8Array(l);let f=r[n+o],h=0,m=e=>e.forEach(e=>f[h++]=e);for(let e=0;e<u;++e)m(this.leftPad),m(this.separator);for(let t=0;t<c-1;++t)m(e[d+t]),m(this.separator);if(c>0){m(e[d+c-1]);for(let e=0;e<p;++e)m(this.separator),m(this.rightPad)}else{for(let e=0;e<p-1;++e)m(this.rightPad),m(this.separator);m(this.rightPad)}}}compute(e,t){let r=e.length,n=t.length;if(n>0){let e=t[0];if(0!==e)throw Error(`First split value must be 0, got ${e}`);for(let s=1;s<n;++s){let n=t[s]>=e;if(!(n=n&&t[s]<=r))throw Error(`Invalid split value ${t[s]}, must be in [${e}, ${r}]`);e=t[s]}if(e!==r)throw Error(`Last split value must be data size. Expected ${r}, got ${e}`)}let s=n-1,o=a.util.getArrayFromDType("int32",n);if(0===r||0===n){let e=Array(r);for(let e=0;e<=s;++e)o[e]=0;return[e,o]}o[0]=0;for(let e=1;e<=s;++e){let r=t[e]-t[e-1],n=0;this.nGramWidths.forEach(e=>{n+=this.getNumNGrams(r,e)}),this.preserveShort&&r>0&&0===n&&(n=1),o[e]=o[e-1]+n}let l=Array(o[s]);for(let r=0;r<s;++r){let n=t[r],s=o[r];if(this.nGramWidths.forEach(a=>{let o=t[r+1]-t[r],i=this.getNumNGrams(o,a);this.createNGrams(e,n,l,s,i,a),s+=i}),this.preserveShort&&s===o[r]){let a=t[r+1]-t[r];if(0===a)continue;let o=a+2*this.padWidth;this.createNGrams(e,n,l,s,1,o)}}return[l,o]}}function l(e,t,r,n,s,a,l,i){return new o(r,n,s,a,l,i).compute(e,t)}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iLC5O:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringSplitImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r){let n=e.length,s=[],o=0,l=0,i=Array(n);for(let a=0;a<n;++a){let n=s.length;!function(e,t,r,n){if(!e.length)return;if(0===t.length){for(let t=0;t<e.length;++t)n.push(e.subarray(t,t+1));return}if(1===t.length){let s=t[0],a=e.indexOf(s);for(;-1!==a;){let t=e.subarray(0,a);r&&0===t.length||n.push(t),a=(e=e.subarray(a+1)).indexOf(s)}r&&0===e.length||n.push(e);return}let s=0;for(let a=0;a<e.length+1;a++)if(a===e.length||-1!==t.indexOf(e[a])){let t=e.subarray(s,a);r&&0===t.length||n.push(t),s=a+1}}(e[a],t,r,s);let u=s.length-n;i[a]=u,o+=u,l=Math.max(l,u)}let u=a.util.getArrayFromDType("int32",2*o),p=Array(o),c=[n,l],d=0;for(let e=0;e<n;++e)for(let t=0;t<i[e];++t)u[2*d]=e,u[2*d+1]=t,p[d]=s[d],++d;return[u,p,c]}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2o0m3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringToHashBucketFastImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t){let r=a.util.getArrayFromDType("int32",e.length);for(let n=0;n<e.length;++n)r[n]=a.util.fingerPrint64(e[n]).modulo(t).getLowBitsUnsigned();return r}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lwW2V:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"subImpl",()=>i),s.export(r,"subComplexImpl",()=>u),s.export(r,"sub",()=>p),s.export(r,"subConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e-t),u=(0,l.createComplexBinaryKernelImpl)((e,t,r,n)=>({real:e-r,imag:t-n})),p=(0,l.binaryKernelFunc)(a.Sub,i,u),c={kernelName:a.Sub,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hNB7q:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tileImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t){let r=Array(e.rank);for(let n=0;n<r.length;n++)r[n]=e.shape[n]*t[n];let n=(0,a.buffer)(r,e.dtype);for(let t=0;t<n.values.length;++t){let r=n.indexToLoc(t),s=Array(e.rank);for(let t=0;t<s.length;t++)s[t]=r[t]%e.shape[t];let a=e.locToIndex(s);n.values[t]=e.values[a]}return n}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cdOVN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"topKImpl",()=>l);var a=e("@tensorflow/tfjs-core");let o=(e,t)=>{let r=t.value-e.value;return 0===r?e.index-t.index:r};function l(e,t,r,n,s){let l=t[t.length-1],[i,u]=[e.length/l,l],p=a.util.getTypedArrayFromDType(r,i*n),c=a.util.getTypedArrayFromDType("int32",i*n);for(let t=0;t<i;t++){let r=t*u,l=e.subarray(r,r+u),i=Array(l.length);l.forEach((e,t)=>i[t]={value:e,index:t}),n<i.length&&(!function e(t,r,n=0,s=t.length-1){for(;s>n;){if(s-n>600){let a=s-n+1,o=r-n+1,l=Math.log(a),i=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*i*(a-i)/a)*Math.sign(o-a/2),p=Math.max(n,Math.floor(r-o*i/a+u)),c=Math.min(s,Math.floor(r+(a-o)*i/a+u));e(t,r,p,c)}let l=t[r],i=n,u=s;for(a.util.swap(t,n,r),o(t[s],l)>0&&a.util.swap(t,n,s);i<u;){for(a.util.swap(t,i,u),i++,u--;0>o(t[i],l);)i+=1;for(;o(t[u],l)>0;)u-=1}0===o(t[n],l)?a.util.swap(t,n,u):(u+=1,a.util.swap(t,u,s)),u<=r&&(n=u+1),r<=u&&(s=u-1)}}(i,n),i=i.slice(0,n)),s&&i.sort(o);let d=t*n,f=p.subarray(d,d+n),h=c.subarray(d,d+n);for(let e=0;e<n;e++)f[e]=i[e].value,h[e]=i[e].index}let d=t.slice();return d[d.length-1]=n,[(0,a.buffer)(d,r,p),(0,a.buffer)(d,"int32",c)]}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3PIkU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"uniqueImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=a.util.parseAxisParam(t,r)[0],o=[1,r[0],1];for(let e=0;e<s;e++)o[0]*=r[e];o[1]=r[s];for(let e=s+1;e<r.length;e++)o[2]*=r[e];let l=new Map,i=new Int32Array(r[s]),u=new(0,a.TensorBuffer)(o,n,e),p=[],c=1===o[0]&&1===o[2];for(let t=0;t<r[s];t++){let r;if(c)r=e[t].toString();else{let e=[];for(let r=0;r<o[0];r++)for(let n=0;n<o[2];n++)e.push(u.get(r,t,n));r=e.join(",")}let n=l.get(r);if(null!=n)i[t]=n;else{let e=l.size;l.set(r,e),i[t]=e,p.push(t)}}let d=o.slice();d[1]=l.size;let f=new(0,a.TensorBuffer)(d,n);p.forEach((e,t)=>{for(let r=0;r<o[0];r++)for(let n=0;n<o[2];n++)f.set(u.get(r,e,n),r,t,n)});let h=r.slice();return h[s]=d[1],{outputValues:f.values,outputShape:h,indices:i}}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],knhaV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PackProgram",()=>i);var a=e("./gpgpu_math"),o=e("./packing_util"),l=e("./shader_compiler");class i{constructor(e){if(this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length),0===this.rank)this.userCode=` void main() { setOutput(vec4(getA(), 0., 0., 0.)); } `;else{let e=(0,o.getChannels)("rc",this.rank),t=(0,l.getCoordsDataType)(this.rank),r=this.getOutOfBoundsCondition(e),n=this.getSetup(e),s=this.getOutput(e);this.userCode=` void main() { ${t} rc = getOutputCoords(); if(${r}) { setOutput(vec4(0)); } else { ${n} setOutput(vec4(${s})); } } `}}getSourceCoordsArr(e){let t=[];for(let r=0;r<=1;r++)for(let n=0;n<=1;n++){let s=`${0===r?"r":"rp1"}, ${0===n?"c":"cp1"}`;for(let t=2;t<this.rank;t++)s=`${e[e.length-1-t]},`+s;t.push(s)}return t}getOutOfBoundsCondition(e){if(1===this.rank)return`rc >${this.enableShapeUniforms?"outShape":this.outputShape[0]}`;let t="";for(let r=this.rank-2;r<this.rank;r++)t+=`${e[r]} >= ${this.enableShapeUniforms?`outShape[${r}]`:this.outputShape[r]}`,r<this.rank-1&&(t+="||");return t}getSetup(e){if(1===this.rank)return"";let t=e.slice(-2),r=this.enableShapeUniforms?`outShape[${this.rank} - 1]`:this.outputShape[this.rank-1],n=this.enableShapeUniforms?`outShape[${this.rank} - 2]`:this.outputShape[this.rank-2];return` int r = ${t[0]}; int c = ${t[1]}; int rp1 = r + 1; int cp1 = c + 1; bool cEdge = cp1 >= ${r}; bool rEdge = rp1 >= ${n}; `}getOutput(e){let t=this.getSourceCoordsArr(e);if(1===this.rank){let e=this.enableShapeUniforms?"outShape":this.outputShape[0];return`getA(rc), (rc + 1 >= ${e} ? 0. : getA(rc + 1)), 0, 0`}return`getA(${t[0]}), cEdge ? 0. : getA(${t[1]}), rEdge ? 0. : getA(${t[2]}), rEdge || cEdge ? 0. : getA(${t[3]})`}}},{"./gpgpu_math":"aCqaC","./packing_util":"gX790","./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gX790:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){return["x","y","z","w","u","v"].slice(0,t).map(t=>`${e}.${t}`)}function o(e,t){return 1===t?[e]:a(e,t)}function l(e,t){if(1===e)return"rc";let r="";for(let n=0;n<e;n++)r+=t[n],n<e-1&&(r+=",");return r}s.defineInteropFlag(r),s.export(r,"getVecChannels",()=>a),s.export(r,"getChannels",()=>o),s.export(r,"getSourceCoords",()=>l)},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bzKQT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ReshapePackedProgram",()=>l);var a=e("./gpgpu_math"),o=e("./shader_compiler_util");class l{constructor(e,t){var r;let n;this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);let s="";for(let e=0;e<4;e++){let t="thisRC = rc;";e%2==1&&(t+="thisRC.z += 1;"),e>1&&(t+="thisRC.y += 1;"),s+=` ${t} ${e>0?"if(thisRC.y< rows && thisRC.z < cols){":""} int flatIndex = getFlatIndex(thisRC); ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex); vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z)); result[${e}] = getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${e>0?"}":""} `}this.userCode=` ${r=t,n=this.enableShapeUniforms?o.getLogicalCoordinatesFromFlatIndexByUniform(["r","c","d"],"inputShape"):o.getLogicalCoordinatesFromFlatIndex(["r","c","d"],r),` ivec3 inputCoordsFromReshapedOutCoords(int index) { ${n} return ivec3(r, c, d); } `} ${this.enableShapeUniforms?o.getFlatIndexFrom3DOutput():o.getFlatIndexFrom3D(e)} void main() { ivec3 rc = getOutputCoords(); vec4 result = vec4(0.); ivec3 thisRC; int rows = ${this.enableShapeUniforms?"outShape[1]":e[1]}; int cols = ${this.enableShapeUniforms?"outShape[2]":e[2]}; ${s} setOutput(result); } `}}},{"./gpgpu_math":"aCqaC","./shader_compiler_util":"ll5XN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6Kc6r":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TextureManager",()=>i),s.export(r,"computeBytes",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_util"),l=e("./tex_util");class i{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(e,t,r){let n,s=p(t,r),a=c(e,s,r);a in this.freeTextures||(this.freeTextures[a]=[]),a in this.usedTextures||(this.usedTextures[a]=[]);let o=u(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,r);if(this.freeTextures[a].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=o,this.log();let e=this.freeTextures[a].pop();return this.usedTextures[a].push(e),e}return s===l.PhysicalTextureType.PACKED_2X2_FLOAT32?n=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):s===l.PhysicalTextureType.PACKED_2X2_FLOAT16?n=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):s===l.PhysicalTextureType.UNPACKED_FLOAT32?n=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):s===l.PhysicalTextureType.UNPACKED_FLOAT16?n=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):s===l.PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE&&(n=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[a].push(n),this.numUsedTextures++,this._numBytesAllocated+=o,this.log(),n}releaseTexture(e,t,r,n){if(null==this.freeTextures)return;let s=p(r,n),o=c(t,s,n);o in this.freeTextures||(this.freeTextures[o]=[]);let l=u(t,s,this.gpgpu.gl,this.gpgpu.textureConfig,n),i=(0,a.env)().getNumber("WEBGL_DELETE_TEXTURE_THRESHOLD");-1!==i&&this._numBytesAllocated>i?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=l):(this.freeTextures[o].push(e),this.numFreeTextures++,this._numBytesFree+=l),this.numUsedTextures--;let d=this.usedTextures[o],f=d&&d.indexOf(e);if(null==f||f<0)throw Error("Cannot release a texture that was never provided by this texture manager");d[f]=d[d.length-1],d.pop(),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(null!=this.freeTextures){for(let e in this.freeTextures)this.freeTextures[e].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});for(let e in this.usedTextures)this.usedTextures[e].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 u(e,t,r,n,s){let a,i=function(e,t){switch(e){case l.PhysicalTextureType.PACKED_2X2_FLOAT32:return(0,o.getInternalFormatForPackedMatrixTexture)(t);case l.PhysicalTextureType.PACKED_2X2_FLOAT16:return(0,o.getInternalFormatForFloat16PackedMatrixTexture)(t);case l.PhysicalTextureType.UNPACKED_FLOAT32:return(0,o.getInternalFormatForFloat32MatrixTexture)(t);case l.PhysicalTextureType.UNPACKED_FLOAT16:return(0,o.getInternalFormatForFloat16MatrixTexture)(t);case l.PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE:return(0,o.getInternalFormatForUnsignedBytesMatrixTexture)(t);default:throw Error(`Unknown physical texture type ${e}`)}}(t,n);if(s){let[t,r]=(0,l.getPackedMatrixTextureShapeWidthHeight)(e[0],e[1]);a=t*r}else{let[t,r]=(0,l.getUnpackedMatrixTextureShapeWidthHeight)(e[0],e[1]);a=t*r}return a*function(e,t){if(t===e.R32F)return 4;if(t===e.R16F)return 2;if(t===e.RGBA32F)return 16;if(t===e.RGBA)return 16;if(t===e.RGBA16F)return 8;else if(t===e.RGBA8)return 4;throw Error(`Unknown internal format ${t}`)}(r,i)}function p(e,t){if(e===l.TextureUsage.UPLOAD)return l.PhysicalTextureType.PACKED_2X2_FLOAT32;if(e===l.TextureUsage.RENDER||null==e)return(0,a.env)().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?t?l.PhysicalTextureType.PACKED_2X2_FLOAT32:l.PhysicalTextureType.UNPACKED_FLOAT32:t?l.PhysicalTextureType.PACKED_2X2_FLOAT16:l.PhysicalTextureType.UNPACKED_FLOAT16;if(e===l.TextureUsage.DOWNLOAD||e===l.TextureUsage.PIXELS)return l.PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE;throw Error(`Unknown logical texture type ${e}`)}function c(e,t,r){return`${e[0]}_${e[1]}_${t}_${r}`}},{"@tensorflow/tfjs-core":"hADTC","./gpgpu_util":"ae4xK","./tex_util":"kxvAY","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dKkzg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"UnaryOpProgram",()=>o),s.export(r,"CHECK_NAN_SNIPPET",()=>l),s.export(r,"LINEAR",()=>i),s.export(r,"ABS",()=>u),s.export(r,"STEP",()=>p),s.export(r,"ELU",()=>c),s.export(r,"RELU",()=>d),s.export(r,"RELU6",()=>f),s.export(r,"CLONE",()=>h),s.export(r,"SIGMOID",()=>m);var a=e("./gpgpu_math");class o{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length),this.userCode=` float unaryOperation(float x) { ${t} } void main() { float x = getAAtOutCoords(); float y = unaryOperation(x); setOutput(y); } `}}let l="if (isnan(x)) return x;",i="return x;",u="return abs(x);";function p(e=0){return l+` return x > 0.0 ? 1.0 : float(${e}); `}let c="return (x >= 0.0) ? x : (exp(x) - 1.0);",d=l+` return (x< 0.0) ? 0.0 : x; `,f=l+` return (x < 0.0) ? 0.0 : min(6.0, x); `,h="return x;",m="return 1.0 / (1.0 + exp(-1.0 * x));"},{"./gpgpu_math":"aCqaC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5kSmi":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LINEAR",()=>o),s.export(r,"ELU",()=>l),s.export(r,"RELU",()=>i),s.export(r,"RELU6",()=>u),s.export(r,"SIGMOID",()=>p),s.export(r,"UnaryOpPackedProgram",()=>c);var a=e("./gpgpu_math");let o="return x;",l=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0); result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0); result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; `,i=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; result.g = isNaN.g ? x.g : result.g; result.b = isNaN.b ? x.b : result.b; result.a = isNaN.a ? x.a : result.a; return result; `,u=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; result.g = isNaN.g ? x.g : result.g; result.b = isNaN.b ? x.b : result.b; result.a = isNaN.a ? x.a : result.a; return result; `,p="return 1.0 / (1.0 + exp(-1.0 * x));";class c{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length),this.userCode=` vec4 unaryOperation(vec4 x) { ${t} } void main() { vec4 x = getAAtOutCoords(); vec4 y = unaryOperation(x); setOutput(y); } `}}},{"./gpgpu_math":"aCqaC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fLNDa:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"UnpackProgram",()=>i);var a=e("./gpgpu_math"),o=e("./packing_util"),l=e("./shader_compiler");class i{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);let t=e.length,r=(0,o.getChannels)("rc",t),n=(0,l.getCoordsDataType)(t),s=(0,o.getSourceCoords)(t,r),i=r.slice(-2),u=t<=1?"rc":`vec2(${i.join(",")})`;this.userCode=` void main() { ${n} rc = getOutputCoords(); vec4 packedInput = getA(${s}); setOutput(getChannel(packedInput, ${u})); } `}}},{"./gpgpu_math":"aCqaC","./packing_util":"gX790","./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4j4u9":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version",()=>a);let a="4.22.0"},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2uHRt":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MathBackendWebGL",()=>i.MathBackendWebGL),s.export(r,"setWebGLContext",()=>u.setWebGLContext),s.export(r,"GPGPUContext",()=>p.GPGPUContext),s.export(r,"gpgpu_util",()=>o),s.export(r,"webgl_util",()=>l),s.export(r,"forceHalfFloat",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_util"),l=e("./webgl_util"),i=e("./backend_webgl"),u=e("./canvas_util"),p=e("./gpgpu_context");function c(){(0,a.env)().set("WEBGL_FORCE_F16_TEXTURES",!0)}},{"@tensorflow/tfjs-core":"hADTC","./gpgpu_util":"ae4xK","./webgl_util":"hSqB7","./backend_webgl":"kocjS","./canvas_util":"45XFH","./gpgpu_context":"hJTBE","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lOREp:[function(e,t,r,n){var s=e("@tensorflow/tfjs-core"),a=e("./kernels/_FusedMatMul"),o=e("./kernels/Abs"),l=e("./kernels/Acos"),i=e("./kernels/Acosh"),u=e("./kernels/Add"),p=e("./kernels/AddN"),c=e("./kernels/All"),d=e("./kernels/Any"),f=e("./kernels/ArgMax"),h=e("./kernels/ArgMin"),m=e("./kernels/Asin"),g=e("./kernels/Asinh"),x=e("./kernels/Atan"),v=e("./kernels/Atan2"),y=e("./kernels/Atanh"),_=e("./kernels/AvgPool"),b=e("./kernels/AvgPool3D"),k=e("./kernels/AvgPool3DGrad"),T=e("./kernels/AvgPoolGrad"),w=e("./kernels/BatchMatMul"),I=e("./kernels/BatchNorm"),j=e("./kernels/BatchToSpaceND"),C=e("./kernels/Bincount"),N=e("./kernels/BitwiseAnd"),S=e("./kernels/BroadcastArgs"),E=e("./kernels/Cast"),A=e("./kernels/Ceil"),F=e("./kernels/ClipByValue"),R=e("./kernels/Complex"),D=e("./kernels/ComplexAbs"),P=e("./kernels/Concat"),$=e("./kernels/Conv2D"),M=e("./kernels/Conv2DBackpropFilter"),O=e("./kernels/Conv2DBackpropInput"),B=e("./kernels/Conv3D"),q=e("./kernels/Conv3DBackpropFilterV2"),L=e("./kernels/Conv3DBackpropInputV2"),V=e("./kernels/Cos"),G=e("./kernels/Cosh"),z=e("./kernels/CropAndResize"),U=e("./kernels/Cumprod"),X=e("./kernels/Cumsum"),W=e("./kernels/DenseBincount"),H=e("./kernels/DepthToSpace"),K=e("./kernels/DepthwiseConv2dNative"),J=e("./kernels/DepthwiseConv2dNativeBackpropFilter"),Y=e("./kernels/DepthwiseConv2dNativeBackpropInput"),Z=e("./kernels/Diag"),Q=e("./kernels/Dilation2D"),ee=e("./kernels/Einsum"),et=e("./kernels/Elu"),er=e("./kernels/EluGrad"),en=e("./kernels/Equal"),es=e("./kernels/Erf"),ea=e("./kernels/Exp"),eo=e("./kernels/ExpandDims"),el=e("./kernels/Expm1"),ei=e("./kernels/FFT"),eu=e("./kernels/Fill"),ep=e("./kernels/FlipLeftRight"),ec=e("./kernels/Floor"),ed=e("./kernels/FloorDiv"),ef=e("./kernels/FromPixels"),eh=e("./kernels/FusedConv2D"),em=e("./kernels/FusedDepthwiseConv2D"),eg=e("./kernels/GatherNd"),ex=e("./kernels/GatherV2"),ev=e("./kernels/Greater"),ey=e("./kernels/GreaterEqual"),e_=e("./kernels/Identity"),eb=e("./kernels/IFFT"),ek=e("./kernels/Imag"),eT=e("./kernels/IsFinite"),ew=e("./kernels/IsInf"),eI=e("./kernels/IsNaN"),ej=e("./kernels/LeakyRelu"),eC=e("./kernels/Less"),eN=e("./kernels/LessEqual"),eS=e("./kernels/LinSpace"),eE=e("./kernels/Log"),eA=e("./kernels/Log1p"),eF=e("./kernels/LogicalAnd"),eR=e("./kernels/LogicalNot"),eD=e("./kernels/LogicalOr"),eP=e("./kernels/LRN"),e$=e("./kernels/LRNGrad"),eM=e("./kernels/Max"),eO=e("./kernels/Maximum"),eB=e("./kernels/MaxPool"),eq=e("./kernels/MaxPool3D"),eL=e("./kernels/MaxPool3DGrad"),eV=e("./kernels/MaxPoolGrad"),eG=e("./kernels/MaxPoolWithArgmax"),ez=e("./kernels/Mean"),eU=e("./kernels/Min"),eX=e("./kernels/Minimum"),eW=e("./kernels/MirrorPad"),eH=e("./kernels/Mod"),eK=e("./kernels/Multinomial"),eJ=e("./kernels/Multiply"),eY=e("./kernels/Neg"),eZ=e("./kernels/NonMaxSuppressionV3"),eQ=e("./kernels/NonMaxSuppressionV4"),e0=e("./kernels/NonMaxSuppressionV5"),e1=e("./kernels/NotEqual"),e2=e("./kernels/OneHot"),e3=e("./kernels/OnesLike"),e4=e("./kernels/Pack"),e6=e("./kernels/PadV2"),e5=e("./kernels/Pow"),e7=e("./kernels/Prelu"),e8=e("./kernels/Prod"),e9=e("./kernels/RaggedGather"),te=e("./kernels/RaggedRange"),tt=e("./kernels/RaggedTensorToTensor"),tr=e("./kernels/Range"),tn=e("./kernels/Real"),ts=e("./kernels/RealDiv"),ta=e("./kernels/Reciprocal"),to=e("./kernels/Relu"),tl=e("./kernels/Relu6"),ti=e("./kernels/Reshape"),tu=e("./kernels/ResizeBilinear"),tp=e("./kernels/ResizeBilinearGrad"),tc=e("./kernels/ResizeNearestNeighbor"),td=e("./kernels/ResizeNearestNeighborGrad"),tf=e("./kernels/Reverse"),th=e("./kernels/RotateWithOffset"),tm=e("./kernels/Round"),tg=e("./kernels/Rsqrt"),tx=e("./kernels/ScatterNd"),tv=e("./kernels/SearchSorted"),ty=e("./kernels/Select"),t_=e("./kernels/Selu"),tb=e("./kernels/Sigmoid"),tk=e("./kernels/Sign"),tT=e("./kernels/Sin"),tw=e("./kernels/Sinh"),tI=e("./kernels/Slice"),tj=e("./kernels/Softmax"),tC=e("./kernels/Softplus"),tN=e("./kernels/SpaceToBatchND"),tS=e("./kernels/SparseFillEmptyRows"),tE=e("./kernels/SparseReshape"),tA=e("./kernels/SparseSegmentMean"),tF=e("./kernels/SparseSegmentSum"),tR=e("./kernels/SparseToDense"),tD=e("./kernels/SplitV"),tP=e("./kernels/Sqrt"),t$=e("./kernels/Square"),tM=e("./kernels/SquaredDifference"),tO=e("./kernels/StaticRegexReplace"),tB=e("./kernels/Step"),tq=e("./kernels/StridedSlice"),tL=e("./kernels/StringNGrams"),tV=e("./kernels/StringSplit"),tG=e("./kernels/StringToHashBucketFast"),tz=e("./kernels/Sub"),tU=e("./kernels/Sum"),tX=e("./kernels/Tan"),tW=e("./kernels/Tanh"),tH=e("./kernels/TensorScatterUpdate"),tK=e("./kernels/Tile"),tJ=e("./kernels/TopK"),tY=e("./kernels/Transform"),tZ=e("./kernels/Transpose"),tQ=e("./kernels/Unique"),t0=e("./kernels/Unpack"),t1=e("./kernels/UnsortedSegmentSum"),t2=e("./kernels/ZerosLike");for(let e of[a._fusedMatMulConfig,o.absConfig,l.acosConfig,i.acoshConfig,u.addConfig,p.addNConfig,c.allConfig,d.anyConfig,f.argMaxConfig,h.argMinConfig,m.asinConfig,g.asinhConfig,x.atanConfig,v.atan2Config,y.atanhConfig,_.avgPoolConfig,b.avgPool3DConfig,k.avgPool3DGradConfig,T.avgPoolGradConfig,w.batchMatMulConfig,I.batchNormConfig,j.batchToSpaceNDConfig,C.bincountConfig,N.bitwiseAndConfig,S.broadcastArgsConfig,E.castConfig,A.ceilConfig,F.clipByValueConfig,R.complexConfig,D.complexAbsConfig,P.concatConfig,$.conv2DConfig,M.conv2DBackpropFilterConfig,O.conv2DBackpropInputConfig,B.conv3DConfig,q.conv3DBackpropFilterV2Config,L.conv3DBackpropInputConfig,V.cosConfig,G.coshConfig,z.cropAndResizeConfig,U.cumprodConfig,X.cumsumConfig,W.denseBincountConfig,H.depthToSpaceConfig,K.depthwiseConv2dNativeConfig,J.depthwiseConv2dNativeBackpropFilterConfig,Y.depthwiseConv2dNativeBackpropInputConfig,Z.diagConfig,Q.dilation2DConfig,ee.einsumConfig,et.eluConfig,er.eluGradConfig,en.equalConfig,es.erfConfig,ea.expConfig,eo.expandDimsConfig,el.expm1Config,ei.fftConfig,eu.fillConfig,ep.flipLeftRightConfig,ec.floorConfig,ed.floorDivConfig,ef.fromPixelsConfig,eh.fusedConv2DConfig,em.fusedDepthwiseConv2DConfig,eg.gatherNdConfig,ex.gatherV2Config,ev.greaterConfig,ey.greaterEqualConfig,e_.identityConfig,eb.ifftConfig,ek.imagConfig,eT.isFiniteConfig,ew.isInfConfig,eI.isNaNConfig,ej.leakyReluConfig,eC.lessConfig,eN.lessEqualConfig,eS.linSpaceConfig,eE.logConfig,eA.log1pConfig,eF.logicalAndConfig,eR.logicalNotConfig,eD.logicalOrConfig,eP.LRNConfig,e$.LRNGradConfig,eM.maxConfig,eO.maximumConfig,eB.maxPoolConfig,eq.maxPool3DConfig,eL.maxPool3DGradConfig,eV.maxPoolGradConfig,eG.maxPoolWithArgmaxConfig,ez.meanConfig,eU.minConfig,eX.minimumConfig,eW.mirrorPadConfig,eH.modConfig,eK.multinomialConfig,eJ.multiplyConfig,eY.negConfig,eZ.nonMaxSuppressionV3Config,eQ.nonMaxSuppressionV4Config,e0.nonMaxSuppressionV5Config,e1.notEqualConfig,e2.oneHotConfig,e3.onesLikeConfig,e4.packConfig,e6.padV2Config,e5.powConfig,e7.preluConfig,e8.prodConfig,e9.raggedGatherConfig,te.raggedRangeConfig,tt.raggedTensorToTensorConfig,tr.rangeConfig,tn.realConfig,ts.realDivConfig,ta.reciprocalConfig,to.reluConfig,tl.relu6Config,ti.reshapeConfig,tu.resizeBilinearConfig,tp.resizeBilinearGradConfig,tc.resizeNearestNeighborConfig,td.resizeNearestNeighborGradConfig,tf.reverseConfig,th.rotateWithOffsetConfig,tm.roundConfig,tg.rsqrtConfig,tx.scatterNdConfig,tv.searchSortedConfig,ty.selectConfig,t_.seluConfig,tb.sigmoidConfig,tk.signConfig,tT.sinConfig,tw.sinhConfig,tI.sliceConfig,tj.softmaxConfig,tC.softplusConfig,tN.spaceToBatchNDConfig,tS.sparseFillEmptyRowsConfig,tE.sparseReshapeConfig,tA.sparseSegmentMeanConfig,tF.sparseSegmentSumConfig,tR.sparseToDenseConfig,tD.splitVConfig,tP.sqrtConfig,t$.squareConfig,tM.squaredDifferenceConfig,tO.staticRegexReplaceConfig,tB.stepConfig,tq.stridedSliceConfig,tL.stringNGramsConfig,tV.stringSplitConfig,tG.stringToHashBucketFastConfig,tz.subConfig,tU.sumConfig,tX.tanConfig,tW.tanhConfig,tH.tensorScatterUpdateConfig,tK.tileConfig,tJ.topKConfig,tY.transformConfig,tZ.transposeConfig,tQ.uniqueConfig,t0.unpackConfig,t1.unsortedSegmentSumConfig,t2.zerosLikeConfig])(0,s.registerKernel)(e)},{"@tensorflow/tfjs-core":"hADTC","./kernels/_FusedMatMul":"dbpcl","./kernels/Abs":"6kZIS","./kernels/Acos":"kgy9W","./kernels/Acosh":"fxAdY","./kernels/Add":"9QAnf","./kernels/AddN":"kENeZ","./kernels/All":"aW1qf","./kernels/Any":"btup1","./kernels/ArgMax":"i7MTm","./kernels/ArgMin":"2w91t","./kernels/Asin":"4gYKq","./kernels/Asinh":"5NnHk","./kernels/Atan":"iCFXP","./kernels/Atan2":"APiHf","./kernels/Atanh":"iDemk","./kernels/AvgPool":"k7gqw","./kernels/AvgPool3D":"VrUzp","./kernels/AvgPool3DGrad":"iwWTr","./kernels/AvgPoolGrad":"6Ox0Z","./kernels/BatchMatMul":"5xFjy","./kernels/BatchNorm":"26EfT","./kernels/BatchToSpaceND":"fOvcB","./kernels/Bincount":"cfh9f","./kernels/BitwiseAnd":"akJQ9","./kernels/BroadcastArgs":"6qx51","./kernels/Cast":"fCMGT","./kernels/Ceil":"2zhjk","./kernels/ClipByValue":"ak2fs","./kernels/Complex":"2jgL8","./kernels/ComplexAbs":"gZbzn","./kernels/Concat":"4EIsT","./kernels/Conv2D":"7OelL","./kernels/Conv2DBackpropFilter":"icoxO","./kernels/Conv2DBackpropInput":"cuDGO","./kernels/Conv3D":"9vocp","./kernels/Conv3DBackpropFilterV2":"aUm6h","./kernels/Conv3DBackpropInputV2":"ed3i7","./kernels/Cos":"hISJD","./kernels/Cosh":"fCz01","./kernels/CropAndResize":"aB6ZH","./kernels/Cumprod":"W8WvW","./kernels/Cumsum":"iP6uh","./kernels/DenseBincount":"Z8KyU","./kernels/DepthToSpace":"c1dLi","./kernels/DepthwiseConv2dNative":"9L8uJ","./kernels/DepthwiseConv2dNativeBackpropFilter":"91Gmp","./kernels/DepthwiseConv2dNativeBackpropInput":"4U1yX","./kernels/Diag":"47X9m","./kernels/Dilation2D":"iuRFf","./kernels/Einsum":"aFDJk","./kernels/Elu":"eoMmw","./kernels/EluGrad":"Fcdo2","./kernels/Equal":"dd8t8","./kernels/Erf":"cAYE0","./kernels/Exp":"5Bqs2","./kernels/ExpandDims":"iZAhl","./kernels/Expm1":"aAy9G","./kernels/FFT":"hvZGW","./kernels/Fill":"cTMIP","./kernels/FlipLeftRight":"kJm6F","./kernels/Floor":"lQvGn","./kernels/FloorDiv":"9gJF4","./kernels/FromPixels":"7o6pu","./kernels/FusedConv2D":"bX0bx","./kernels/FusedDepthwiseConv2D":"fLpvm","./kernels/GatherNd":"3zja3","./kernels/GatherV2":"aCEdT","./kernels/Greater":"1Xjbf","./kernels/GreaterEqual":"kJPfU","./kernels/Identity":"eH68D","./kernels/IFFT":"5tF5H","./kernels/Imag":"lIWnW","./kernels/IsFinite":"2sUBb","./kernels/IsInf":"gDSDP","./kernels/IsNaN":"cBR9s","./kernels/LeakyRelu":"9THSD","./kernels/Less":"hcdH8","./kernels/LessEqual":"kYw7M","./kernels/LinSpace":"9wq53","./kernels/Log":"k5eu0","./kernels/Log1p":"iTdfZ","./kernels/LogicalAnd":"cs5BO","./kernels/LogicalNot":"2CzzD","./kernels/LogicalOr":"3NoAJ","./kernels/LRN":"hDfav","./kernels/LRNGrad":"1QDvH","./kernels/Max":"15AIZ","./kernels/Maximum":"apiBX","./kernels/MaxPool":"bLGeN","./kernels/MaxPool3D":"88kSn","./kernels/MaxPool3DGrad":"lj8jK","./kernels/MaxPoolGrad":"e2UoK","./kernels/MaxPoolWithArgmax":"eue0R","./kernels/Mean":"eyzN2","./kernels/Min":"dIWud","./kernels/Minimum":"dkrAD","./kernels/MirrorPad":"hiTbr","./kernels/Mod":"HrpnP","./kernels/Multinomial":"023g2","./kernels/Multiply":"exqRf","./kernels/Neg":"8Dggw","./kernels/NonMaxSuppressionV3":"cAAs8","./kernels/NonMaxSuppressionV4":"2rIMJ","./kernels/NonMaxSuppressionV5":"kQF6C","./kernels/NotEqual":"fcGpz","./kernels/OneHot":"fI3HW","./kernels/OnesLike":"dZiwf","./kernels/Pack":"lEeEU","./kernels/PadV2":"6Katd","./kernels/Pow":"dN6YC","./kernels/Prelu":"3ZqQw","./kernels/Prod":"7pkku","./kernels/RaggedGather":"lNiXX","./kernels/RaggedRange":"4g5B2","./kernels/RaggedTensorToTensor":"2ARTj","./kernels/Range":"1qqQJ","./kernels/Real":"hXKZs","./kernels/RealDiv":"iTd5N","./kernels/Reciprocal":"3U322","./kernels/Relu":"bWdfN","./kernels/Relu6":"4vqNA","./kernels/Reshape":"6JJRX","./kernels/ResizeBilinear":"cEb6n","./kernels/ResizeBilinearGrad":"d9Mfx","./kernels/ResizeNearestNeighbor":"bmwc8","./kernels/ResizeNearestNeighborGrad":"fKCQq","./kernels/Reverse":"iCykH","./kernels/RotateWithOffset":"iNfzI","./kernels/Round":"dfB9N","./kernels/Rsqrt":"l8Us1","./kernels/ScatterNd":"eM9xS","./kernels/SearchSorted":"a5air","./kernels/Select":"kGIjr","./kernels/Selu":"jZ73b","./kernels/Sigmoid":"j3au9","./kernels/Sign":"kv0Rb","./kernels/Sin":"fA8xk","./kernels/Sinh":"cGJA0","./kernels/Slice":"1rG2n","./kernels/Softmax":"cDakL","./kernels/Softplus":"2JM9U","./kernels/SpaceToBatchND":"6fRfC","./kernels/SparseFillEmptyRows":"eum8a","./kernels/SparseReshape":"3RE2p","./kernels/SparseSegmentMean":"kCBJu","./kernels/SparseSegmentSum":"apllm","./kernels/SparseToDense":"6aFw3","./kernels/SplitV":"fWOc9","./kernels/Sqrt":"O6srq","./kernels/Square":"coIP7","./kernels/SquaredDifference":"1YoVr","./kernels/StaticRegexReplace":"jo3Rv","./kernels/Step":"3RjTY","./kernels/StridedSlice":"725nD","./kernels/StringNGrams":"8Pm3f","./kernels/StringSplit":"g8CU1","./kernels/StringToHashBucketFast":"6PYfa","./kernels/Sub":"eCliL","./kernels/Sum":"6yTIe","./kernels/Tan":"lAEh4","./kernels/Tanh":"2aYdz","./kernels/TensorScatterUpdate":"1J1EG","./kernels/Tile":"kIunT","./kernels/TopK":"4sTNd","./kernels/Transform":"kaMdV","./kernels/Transpose":"6x6Ts","./kernels/Unique":"a99la","./kernels/Unpack":"c9jMA","./kernels/UnsortedSegmentSum":"794cJ","./kernels/ZerosLike":"9lTC1"}],dbpcl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"_fusedMatMul",()=>l),s.export(r,"_fusedMatMulConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./BatchMatMul_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{a:s,b:a,bias:l,preluActivationWeights:i}=t,{transposeA:u,transposeB:p,activation:c,leakyreluAlpha:d}=n;return(0,o.batchMatMulImpl)({a:s,b:a,transposeA:u,transposeB:p,backend:r,bias:l,preluActivationWeights:i,leakyreluAlpha:d,activation:c})}let i={kernelName:a._FusedMatMul,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./BatchMatMul_impl":"11rB3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"11rB3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MATMUL_SHARED_DIM_THRESHOLD",()=>d),s.export(r,"batchMatMulImpl",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../mulmat_packed_gpu"),i=e("./Multiply"),u=e("./Reshape"),p=e("./Sum"),c=e("./Transpose");let d=1e3;function f({a:e,b:t,transposeA:r,transposeB:n,backend:s,bias:f=null,preluActivationWeights:h=null,leakyreluAlpha:m=0,activation:g=null}){let x,v=e.shape.length,y=t.shape.length,_=r?e.shape[v-2]:e.shape[v-1],b=n?t.shape[y-1]:t.shape[y-2],k=r?e.shape[v-1]:e.shape[v-2],T=n?t.shape[y-2]:t.shape[y-1],w=e.shape.slice(0,-2),I=t.shape.slice(0,-2),j=a.util.sizeFromShape(w),C=a.util.sizeFromShape(I),N=a.broadcast_util.assertAndGetBroadcastShape(e.shape.slice(0,-2),t.shape.slice(0,-2)).concat([k,T]);a.util.assert(_===b,()=>`Error in matMul: inner shapes (${_}) and (${b}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${r} and transposeB=${n} must match.`);let S=r?[j,_,k]:[j,k,_],E=n?[C,T,b]:[C,b,T],A=(0,u.reshape)({inputs:{x:e},backend:s,attrs:{shape:S}}),F=(0,u.reshape)({inputs:{x:t},backend:s,attrs:{shape:E}}),R=[A,F],D=Math.max(j,C),P=r?A.shape[1]:A.shape[2],$=null!=f,M=null!=h,O="leakyrelu"===g,B=null!=g?(0,o.mapActivationToShaderProgram)(g,!0):null,q=$||M||O||null!=B;if((1===k||1===T)&&P>d&&!1===q){let e=A,t=F;r&&(e=(0,c.transpose)({inputs:{x:A},backend:s,attrs:{perm:[0,2,1]}}),R.push(e)),n&&(t=(0,c.transpose)({inputs:{x:F},backend:s,attrs:{perm:[0,2,1]}}),R.push(t));let a=1!==T,o=1===T,l=e;a&&(l=(0,u.reshape)({inputs:{x:e},backend:s,attrs:{shape:[D,P,1]}}),R.push(l));let d=t;o&&(d=(0,u.reshape)({inputs:{x:t},backend:s,attrs:{shape:[D,1,P]}}),R.push(d));let f=(0,i.multiply)({inputs:{a:l,b:d},backend:s});x=(0,p.sum)({inputs:{x:f},backend:s,attrs:{axis:1===T?2:1,keepDims:!0}}),R.push(f)}else{let o=(0,a.upcastType)(e.dtype,t.dtype),i=new(0,l.MatMulPackedProgram)(S,E,[D,k,T],r,n,$,B,M,O),u=[A,F];if(null!=f&&u.push(f),M&&u.push(h),O){let e=s.makeTensorInfo([],"float32",a.util.createScalarValue(m,"float32"));u.push(e),R.push(e)}x=s.runWebGLProgram(i,u,o)}let L=(0,u.reshape)({inputs:{x:x},backend:s,attrs:{shape:N}});for(let e of(R.push(x),R))s.disposeIntermediateTensorInfo(e);return L}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../mulmat_packed_gpu":"dESVa","./Multiply":"exqRf","./Reshape":"6JJRX","./Sum":"6yTIe","./Transpose":"6x6Ts","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eRfJh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CHECK_NAN_SNIPPET_UNARY",()=>f),s.export(r,"unaryKernelFunc",()=>h),s.export(r,"binaryKernelFunc",()=>m),s.export(r,"mapActivationToShaderProgram",()=>g);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernels/Complex"),u=e("../kernels/LeakyRelu"),p=e("../kernels/Prelu"),c=e("../unaryop_gpu"),d=e("../unaryop_packed_gpu");let f="if (isnan(x)) return x;";function h({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:r,dtype:n}){return({inputs:s,backend:o})=>{let l,{x:i}=s,u=n||i.dtype;if(o.shouldExecuteOnCPU([i])&&null!=r){let e=r(o.texData.get(i.dataId).values,u);return o.makeTensorInfo(i.shape,u,e)}return l=(0,a.env)().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&null!=t?new(0,d.UnaryOpPackedProgram)(i.shape,t):new(0,c.UnaryOpProgram)(i.shape,e),o.runWebGLProgram(l,[i],u)}}function m({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:r=!1,supportsComplex:n=!1,cpuKernelImpl:s,dtype:u}){return({inputs:p,backend:c})=>{let d,{a:f,b:h}=p;if(n&&"complex64"===f.dtype){let t=c.texData.get(f.dataId),r=c.texData.get(h.dataId),[n,s]=[[t.complexTensorInfos.real,r.complexTensorInfos.real],[t.complexTensorInfos.imag,r.complexTensorInfos.imag]].map(t=>{let[r,n]=t,s={dataId:r.dataId,dtype:r.dtype,shape:f.shape},l={dataId:n.dataId,dtype:n.dtype,shape:h.shape},i=new(0,o.BinaryOpProgram)(e,f.shape,h.shape);return c.runWebGLProgram(i,[s,l],(0,a.upcastType)(r.dtype,n.dtype))}),l=(0,i.complex)({inputs:{real:n,imag:s},backend:c});return c.disposeIntermediateTensorInfo(n),c.disposeIntermediateTensorInfo(s),l}let m=u||(0,a.upcastType)(f.dtype,h.dtype);if(("string"===f.dtype||"string"===h.dtype||c.shouldExecuteOnCPU([f,h]))&&null!=s){let e=c.texData.get(f.dataId).values,t=c.texData.get(h.dataId).values,r="string"===f.dtype?a.backend_util.fromUint8ToStringArray(e):e,n="string"===f.dtype?a.backend_util.fromUint8ToStringArray(t):t,[o,l]=s(f.shape,h.shape,r,n,m),i=c.makeTensorInfo(l,m);return c.texData.get(i.dataId).values=o,i}return d=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&null!=t?new(0,l.BinaryOpPackedProgram)(t,f.shape,h.shape,r):new(0,o.BinaryOpProgram)(e,f.shape,h.shape),c.runWebGLProgram(d,[f,h],m)}}function g(e,t=!1){if("linear"===e)return t?d.LINEAR:c.LINEAR;if("relu"===e)return t?d.RELU:c.RELU;if("elu"===e)return t?d.ELU:c.ELU;if("relu6"===e)return t?d.RELU6:c.RELU6;if("prelu"===e)return t?p.PRELU_PACKED:p.PRELU;else if("leakyrelu"===e)return t?u.LEAKYRELU_PACKED:u.LEAKYRELU;else if("sigmoid"===e)return t?d.SIGMOID:c.SIGMOID;throw Error(`Activation ${e} has not been implemented for the WebGL backend.`)}},{"@tensorflow/tfjs-core":"hADTC","../binaryop_gpu":"a2Mj7","../binaryop_packed_gpu":"fwruC","../kernels/Complex":"2jgL8","../kernels/LeakyRelu":"9THSD","../kernels/Prelu":"3ZqQw","../unaryop_gpu":"dKkzg","../unaryop_packed_gpu":"5kSmi","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],a2Mj7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CHECK_NAN_SNIPPET",()=>l),s.export(r,"SQUARED_DIFFERENCE",()=>i),s.export(r,"BinaryOpProgram",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_math");let l=` if (isnan(a)) return a; if (isnan(b)) return b; `,i="return (a - b) * (a - b);";class u{constructor(e,t,r){this.variableNames=["A","B"],this.outputShape=a.backend_util.assertAndGetBroadcastShape(t,r),this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length),this.userCode=` float binaryOperation(float a, float b) { ${e} } void main() { float a = getAAtOutCoords(); float b = getBAtOutCoords(); setOutput(binaryOperation(a, b)); } `}}},{"@tensorflow/tfjs-core":"hADTC","./gpgpu_math":"aCqaC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fwruC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CHECK_NAN_SNIPPET_PACKED",()=>u),s.export(r,"ELU_DER",()=>p),s.export(r,"NOT_EQUAL",()=>c),s.export(r,"BinaryOpPackedProgram",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_math"),l=e("./packing_util"),i=e("./shader_compiler");let u=` 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; `,p=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); `,c=` return vec4(notEqual(a, b)); `;class d{constructor(e,t,r,n=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=a.backend_util.assertAndGetBroadcastShape(t,r);let s=this.outputShape.length;this.enableShapeUniforms=(0,o.useShapeUniforms)(s);let u="";if(n)if(0===s||1===a.util.sizeFromShape(this.outputShape))u=` result.y = 0.; result.z = 0.; result.w = 0.; `;else{let e=(0,i.getCoordsDataType)(s);if(u=` ${e} coords = getOutputCoords(); `,1===s)this.enableShapeUniforms?u+=` result.y = (coords + 1) >= outShape ? 0. : result.y; result.z = 0.; result.w = 0.; `:u+=` result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y; result.z = 0.; result.w = 0.; `;else{let e=(0,l.getChannels)("coords",s);this.enableShapeUniforms?u+=` bool nextRowOutOfBounds = (${e[s-2]} + 1) >= outShape[${s} - 2]; bool nextColOutOfBounds = (${e[s-1]} + 1) >= outShape[${s} - 1]; result.y = nextColOutOfBounds ? 0. : result.y; result.z = nextRowOutOfBounds ? 0. : result.z; result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w; `:u+=` bool nextRowOutOfBounds = (${e[s-2]} + 1) >= ${this.outputShape[s-2]}; bool nextColOutOfBounds = (${e[s-1]} + 1) >= ${this.outputShape[s-1]}; result.y = nextColOutOfBounds ? 0. : result.y; result.z = nextRowOutOfBounds ? 0. : result.z; result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w; `}}this.userCode=` vec4 binaryOperation(vec4 a, vec4 b) { ${e} } void main() { vec4 a = getAAtOutCoords(); vec4 b = getBAtOutCoords(); vec4 result = binaryOperation(a, b); ${u} setOutput(result); } `}}},{"@tensorflow/tfjs-core":"hADTC","./gpgpu_math":"aCqaC","./packing_util":"gX790","./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2jgL8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"complex",()=>l),s.export(r,"complexConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Identity");function l(e){let{inputs:t,backend:r}=e,{real:n,imag:s}=t,a=r.makeTensorInfo(n.shape,"complex64");return r.texData.get(a.dataId).complexTensorInfos={real:(0,o.identity)({inputs:{x:n},backend:r}),imag:(0,o.identity)({inputs:{x:s},backend:r})},a}let i={kernelName:a.Complex,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./Identity":"eH68D","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eH68D:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{x:n}=t;return r.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}s.defineInteropFlag(r),s.export(r,"identity",()=>a),s.export(r,"identityConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Identity,backendName:"webgl",kernelFunc:a}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9THSD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LEAKYRELU",()=>i),s.export(r,"LEAKYRELU_PACKED",()=>u),s.export(r,"leakyRelu",()=>p),s.export(r,"leakyReluConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu");let i="return (a< 0.) ? b * a : a;",u=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); `;function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{alpha:p}=n,c=r.makeTensorInfo([],"float32",a.util.createScalarValue(p,"float32")),d=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new(0,l.BinaryOpPackedProgram)(u,s.shape,c.shape):new(0,o.BinaryOpProgram)(i,s.shape,c.shape),f=r.runWebGLProgram(d,[s,c],"float32");return r.disposeIntermediateTensorInfo(c),f}let c={kernelName:a.LeakyRelu,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../binaryop_gpu":"a2Mj7","../binaryop_packed_gpu":"fwruC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3ZqQw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PRELU",()=>i),s.export(r,"PRELU_PACKED",()=>u),s.export(r,"prelu",()=>p),s.export(r,"preluConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu");let i="return (a< 0.) ? b * a : a;",u=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); `;function p(e){let{inputs:t,backend:r}=e,{x:n,alpha:s}=t,p=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new(0,l.BinaryOpPackedProgram)(u,n.shape,s.shape):new(0,o.BinaryOpProgram)(i,n.shape,s.shape);return r.runWebGLProgram(p,[n,s],"float32")}let c={kernelName:a.Prelu,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../binaryop_gpu":"a2Mj7","../binaryop_packed_gpu":"fwruC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dESVa:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MatMulPackedProgram",()=>o);var a=e("./gpgpu_math");class o{constructor(e,t,r,n=!1,s=!1,o=!1,l=null,i=!1,u=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=r,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);let p=Math.ceil((n?e[1]:e[2])/2),c=n?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],d=s?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",h="";l&&(f=i?`vec4 activation(vec4 a) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${l} }`:u?`vec4 activation(vec4 a) { vec4 b = getLeakyreluAlphaAtOutCoords(); ${l} }`:`vec4 activation(vec4 x) { ${l} }`,h="result = activation(result);"),o&&this.variableNames.push("bias"),i&&this.variableNames.push("preluActivationWeights"),u&&this.variableNames.push("leakyreluAlpha");let m="rc.x",g="rc.x";e[0]<t[0]?m=`imod(rc.x, ${e[0]})`:t[0]<e[0]&&(g=`imod(rc.x, ${t[0]})`),this.userCode=` ${f} // Don't use uniform for sharedDimensionPacked for performance. const float sharedDimension = ${p}.0; vec4 dot2x2ARowBCol(ivec3 rc) { vec4 result = vec4(0); int batchA = ${m}; int batchB = ${g}; for (int i = 0; i < ${p}; i++) { vec4 a = getMatrixA(batchA, ${n?"i * 2, rc.y":"rc.y, i * 2"}); vec4 b = getMatrixB(batchB, ${s?"rc.z, i * 2":"i * 2, rc.z"}); // These swizzled products need to be separately added. // See: https://github.com/tensorflow/tfjs/issues/1735 result += (${c[0]} * ${d[0]}); result += (${c[1]} * ${d[1]}); } return result; } void main() { ivec3 rc = getOutputCoords(); vec4 result = dot2x2ARowBCol(rc); ${o?"result += getBiasAtOutCoords();":""} ${h} setOutput(result); } `}}},{"./gpgpu_math":"aCqaC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],exqRf:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multiply",()=>d),s.export(r,"multiplyConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_complex_gpu"),l=e("../binaryop_gpu"),i=e("../binaryop_packed_gpu"),u=e("../kernel_utils/shared"),p=e("./Complex");let c="return a * b;";function d(e){let t,{inputs:r,backend:n}=e,{a:s,b:d}=r,f=a.backend_util.upcastType(s.dtype,d.dtype);if("complex64"===s.dtype){let e=n.texData.get(s.dataId),t=n.texData.get(d.dataId),r=new(0,o.BinaryOpComplexProgram)(o.COMPLEX_MULTIPLY.REAL,s.shape,d.shape),a=new(0,o.BinaryOpComplexProgram)(o.COMPLEX_MULTIPLY.IMAG,s.shape,d.shape),l=[{dataId:e.complexTensorInfos.real.dataId,dtype:e.complexTensorInfos.real.dtype,shape:s.shape},{dataId:e.complexTensorInfos.imag.dataId,dtype:e.complexTensorInfos.imag.dtype,shape:s.shape},{dataId:t.complexTensorInfos.real.dataId,dtype:t.complexTensorInfos.real.dtype,shape:d.shape},{dataId:t.complexTensorInfos.imag.dataId,dtype:t.complexTensorInfos.imag.dtype,shape:d.shape}],i=n.runWebGLProgram(r,l,"float32"),u=n.runWebGLProgram(a,l,"float32"),c=(0,p.complex)({inputs:{real:i,imag:u},backend:n});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(u),c}if(n.shouldExecuteOnCPU([s,d])){let e=n.texData.get(s.dataId),t=n.texData.get(d.dataId),[r,a]=(0,u.multiplyImplCPU)(s.shape,d.shape,e.values,t.values,f),o=n.makeTensorInfo(a,f);return n.texData.get(o.dataId).values=r,o}return t=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new(0,i.BinaryOpPackedProgram)(c,s.shape,d.shape):new(0,l.BinaryOpProgram)(c,s.shape,d.shape),n.runWebGLProgram(t,[s,d],f)}let f={kernelName:a.Multiply,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"hADTC","../binaryop_complex_gpu":"5ELtE","../binaryop_gpu":"a2Mj7","../binaryop_packed_gpu":"fwruC","../kernel_utils/shared":"awGPZ","./Complex":"2jgL8","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5ELtE":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"COMPLEX_MULTIPLY",()=>o),s.export(r,"BinaryOpComplexProgram",()=>l);var a=e("@tensorflow/tfjs-core");let o={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"};class l{constructor(e,t,r){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=a.backend_util.assertAndGetBroadcastShape(t,r),this.userCode=` float binaryOpComplex( float areal, float aimag, float breal, float bimag) { ${e} } void main() { float areal = getARealAtOutCoords(); float aimag = getAImagAtOutCoords(); float breal = getBRealAtOutCoords(); float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } `}}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6JJRX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reshape",()=>i),s.export(r,"reshapeConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reshape"),l=e("../webgl_util");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{shape:i}=n,u=a.util.sizeFromShape(s.shape),p=a.util.inferFromImplicitShape(i,u),c=a.util.sizeFromShape(p);a.util.assert(u===c,()=>`The new shape (${p}) has ${c} elements and the old shape (${s.shape}) has ${u} elements. The new shape and old shape must have the same number of elements.`);let d=r.texData.get(s.dataId);return!d.isPacked||(0,l.isReshapeFree)(s.shape,p)||null!==d.texture&&(0,l.isReshapeFree)(d.shape,p)?(r.incRef(s.dataId),{dataId:s.dataId,shape:p,dtype:s.dtype}):(0,o.packedReshape)(s,p,r)}let u={kernelName:a.Reshape,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/reshape":"3gkiM","../webgl_util":"hSqB7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3gkiM":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"packedReshape",()=>l);var a=e("../reshape_packed_gpu"),o=e("../webgl_util");function l(e,t,r){let n=[(0,o.getBatchDim)(e.shape),...(0,o.getRowsCols)(e.shape)],s={dtype:e.dtype,shape:n,dataId:e.dataId},l=[(0,o.getBatchDim)(t),...(0,o.getRowsCols)(t)],i=new(0,a.ReshapePackedProgram)(l,n),u=r.runWebGLProgram(i,[s],e.dtype,[n],!0);return{dataId:u.dataId,shape:t,dtype:u.dtype}}},{"../reshape_packed_gpu":"bzKQT","../webgl_util":"hSqB7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6yTIe":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sum",()=>l),s.export(r,"sumConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Sum_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:a,keepDims:l}=n;return(0,o.sumImpl)(s,a,l,r)}let i={kernelName:a.Sum,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./Sum_impl":"4awjE","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4awjE":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sumImpl",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("./Reshape"),i=e("./Transpose_impl");function u(e,t,r,n){let s=e.shape.length,u=a.util.parseAxisParam(t,e.shape),p=u,c=a.backend_util.getAxesPermutation(p,s),d=null!=c,f=e;d&&(f=(0,i.transposeImpl)(e,c,n),p=a.backend_util.getInnerMostAxes(p.length,s)),a.backend_util.assertAxesAreInnerMostDims("sum",p,s);let[h,m]=a.backend_util.computeOutAndReduceShapes(f.shape,p),g=h;r&&(g=a.backend_util.expandShapeToKeepDim(h,u));let x=a.util.sizeFromShape(m),v=a.util.sizeFromShape(e.shape),y=(0,l.reshape)({inputs:{x:f},attrs:{shape:[v/x,x]},backend:n}),_=(0,a.sumOutType)(e.dtype),b=(0,o.reduce)(y,_,"sum",n),k=(0,l.reshape)({inputs:{x:b},attrs:{shape:g},backend:n});return n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),d&&n.disposeIntermediateTensorInfo(f),k}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/reduce":"ghhUV","./Reshape":"6JJRX","./Transpose_impl":"iUCh6","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ghhUV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reduce",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../mean_gpu"),l=e("../reduce_gpu");function i(e,t,r,n){let s=function(e){let t=[];for(;0===t.length||1!==t[t.length-1].outSize;){let r=t.length?t[t.length-1].outSize:e[1],n=a.backend_util.computeOptimalWindowSize(r);t.push({inSize:r,windowSize:n,outSize:Math.ceil(r/n)})}return t}(e.shape),i=e;for(let a=0;a<s.length;a++){let u,p,{inSize:c,windowSize:d,outSize:f}=s[a];u="mean"===r?0===a?new(0,o.MeanProgram)({windowSize:d,inSize:c,batchSize:e.shape[0],outSize:f},c):new(0,o.MeanProgram)({windowSize:d,inSize:c,batchSize:e.shape[0],outSize:f}):new(0,l.ReduceProgram)({windowSize:d,inSize:c,batchSize:e.shape[0],outSize:f},r),p=i,i=n.runWebGLProgram(u,[i],t),p.dataId!==e.dataId&&n.disposeIntermediateTensorInfo(p)}return i}},{"@tensorflow/tfjs-core":"hADTC","../mean_gpu":"c7FVY","../reduce_gpu":"b5nkK","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],c7FVY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MeanProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t){this.variableNames=["x"];let{windowSize:r,batchSize:n,inSize:s,outSize:o}=e;this.outputShape=[n,o];let l=4*Math.floor(r/4),i=r%4,u="sumValue += dot(values, ones);";if(null!=t){let e=1/t;u=`sumValue += dot(values * ${a.util.isInt(e)?e.toPrecision(2):e}, ones);`}let p="";s%r>0&&(p=` if (inIdx< 0 || inIdx >= ${s}) { return 0.0; } `),this.userCode=` const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); float getValue(int batch, int inIdx) { ${p} return getX(batch, inIdx); } void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; int outIdx = coords[1]; int inOffset = outIdx * ${r}; float sumValue = 0.0; for (int i = 0; i< ${l}; i += 4) { int inIdx = inOffset + i; vec4 values = vec4( getValue(batch, inIdx), getValue(batch, inIdx + 1), getValue(batch, inIdx + 2), getValue(batch, inIdx + 3) ); ${u} } int inIdx = inOffset + ${l}; if (${1===i}) { vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0); ${u} } else if (${2===i}) { vec4 values = vec4( getValue(batch, inIdx), getValue(batch, inIdx + 1), 0.0, 0.0); ${u} } else if (${3===i}) { vec4 values = vec4( getValue(batch, inIdx), getValue(batch, inIdx + 1), getValue(batch, inIdx + 2), 0.0); ${u} } setOutput(sumValue); } `}}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],b5nkK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ReduceProgram",()=>a);class a{constructor(e,t){this.variableNames=["x"];let{windowSize:r,batchSize:n,inSize:s,outSize:a}=e;this.outputShape=[n,a];let o="0.0",l="";"prod"===t?o="1.0":"min"===t?(o="1.0 / 1e-20",l="min"):"max"===t&&(o="-1.0 / 1e-20",l="max");let i=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"sum"===t?i="sumValue":"prod"===t?i="prodValue":"all"===t?i="allValue":"any"===t&&(i="anyValue");let u=4*Math.floor(r/4),p=r%4,c=` if (${"sum"===t}) { sumValue += dot(values, ones); } else if (${"prod"===t}) { vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]); prodValue *= tmp[0] * tmp[1]; } else { minMaxValue = ${l}(values, minMaxValue); if (${"min"===t} || ${"max"===t}) { minMaxValue = ${l}(values, minMaxValue); bvec4 isNaN = isnan(values); if (isNaN.r || isNaN.g || isNaN.b || isNaN.a) { minMaxValue = vec4(NAN); } } } `,d="vec4";"all"===t?(o="1.0",c=` bool reducedAllValue = all(values); float floatedReducedAllValue = float(reducedAllValue); allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0); `,d="bvec4"):"any"===t&&(o="0.0",c=` bool reducedAnyValue = any(values); float floatedReducedAnyValue = float(reducedAnyValue); anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0); `,d="bvec4");let f="";s%r>0&&(f=` if (inIdx< 0 || inIdx >= ${s}) { return initializationValue; } `),this.userCode=` const float initializationValue = ${o}; const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); float getValue(int batch, int inIdx) { ${f} return getX(batch, inIdx); } void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; int outIdx = coords[1]; int inOffset = outIdx * ${r}; vec4 minMaxValue = vec4(${o}); float prodValue = 1.0; float sumValue = 0.0; float allValue = 1.0; float anyValue = 0.0; for (int i = 0; i< ${u}; i += 4) { int inIdx = inOffset + i; ${d} values = ${d}( getValue(batch, inIdx), getValue(batch, inIdx + 1), getValue(batch, inIdx + 2), getValue(batch, inIdx + 3) ); ${c} } int inIdx = inOffset + ${u}; if (${1===p}) { ${d} values = ${d}( getValue(batch, inIdx), initializationValue, initializationValue, initializationValue ); ${c} } else if (${2===p}) { ${d} values = ${d}( getValue(batch, inIdx), getValue(batch, inIdx + 1), initializationValue, initializationValue ); ${c} } else if (${3===p}) { ${d} values = ${d}( getValue(batch, inIdx), getValue(batch, inIdx + 1), getValue(batch, inIdx + 2), initializationValue ); ${c} } setOutput(${i}); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iUCh6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transposeImpl",()=>u),s.export(r,"transposeImplCPU",()=>o.transposeImplCPU);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../transpose_gpu"),i=e("../transpose_packed_gpu");function u(e,t,r){let n=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,i.TransposePackedProgram)(e.shape,t):new(0,l.TransposeProgram)(e.shape,t);return r.runWebGLProgram(n,[e],e.dtype)}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","../transpose_gpu":"3q0QI","../transpose_packed_gpu":"ctjyZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3q0QI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TransposeProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t){this.variableNames=["A"];let r=Array(e.length);for(let n=0;n<r.length;n++)r[n]=e[t[n]];this.outputShape=r,this.rank=r.length;let n=(0,a.getCoordsDataType)(this.rank),s=function(e){let t=e.length;if(t>6)throw Error(`Transpose for rank ${t} is not yet supported`);let r=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],n=Array(t);for(let t=0;t<e.length;t++)n[e[t]]=r[t];return n.join()}(t);this.userCode=` void main() { ${n} resRC = getOutputCoords(); setOutput(getA(${s})); } `}}},{"./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ctjyZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TransposePackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0;let r=Array(e.length);for(let n=0;n<r.length;n++)r[n]=e[t[n]];if(this.outputShape=r,this.rank=r.length,this.rank>6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let n=(0,o.getCoordsDataType)(this.rank),s=(0,a.getVecChannels)("rc",this.rank),l=Array(this.rank);for(let e=0;e<t.length;e++)l[t[e]]=s[e];let i=`vec2(${l.slice(-2).join()})`,u=`++${s[this.rank-1]} < ${r[this.rank-1]}`,p=`getChannel(getA(${l.join()}), ${i})`;this.userCode=` void main() { ${n} rc = getOutputCoords(); vec4 result = vec4(0.); result[0] = ${p}; if(${u}) { result[1] = ${p}; } --${s[this.rank-1]}; if(++${s[this.rank-2]} < ${r[this.rank-2]}) { result[2] = ${p}; if(${u}) { result[3] = ${p}; } } setOutput(result); } `}}},{"./packing_util":"gX790","./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6x6Ts":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transpose",()=>l),s.export(r,"transposeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Transpose_impl");function l(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:a}=r,{perm:l}=s,i=Array(a.shape.length);for(let e=0;e<i.length;e++)i[e]=a.shape[l[e]];if(n.shouldExecuteOnCPU([a])){let e=n.texData.get(a.dataId).values,r=(0,o.transposeImplCPU)(e,a.shape,a.dtype,l,i);t=n.makeTensorInfo(i,a.dtype),n.texData.get(t.dataId).values=r}else t=(0,o.transposeImpl)(a,l,n);return t}let i={kernelName:a.Transpose,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./Transpose_impl":[["transposeImpl","iUCh6"],["transposeImplCPU","awGPZ"]],"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6kZIS":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"abs",()=>p),s.export(r,"absConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../unaryop_gpu"),i=e("../unaryop_packed_gpu");let u="return abs(x);";function p(e){let t,{inputs:r,backend:n}=e,{x:s}=r;if(n.shouldExecuteOnCPU([s])&&"complex64"!==s.dtype){let e=n.texData.get(s.dataId),t=(0,o.simpleAbsImplCPU)(e.values);return n.makeTensorInfo(s.shape,s.dtype,t)}return t=(0,a.env)().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new(0,i.UnaryOpPackedProgram)(s.shape,u):new(0,l.UnaryOpProgram)(s.shape,u),n.runWebGLProgram(t,[s],s.dtype)}let c={kernelName:a.Abs,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","../unaryop_gpu":"dKkzg","../unaryop_packed_gpu":"5kSmi","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kgy9W:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acos",()=>i),s.export(r,"acosConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` if (abs(x) > 1.) { return NAN; } return acos(x); `,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Acos,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../unaryop_gpu":"dKkzg","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fxAdY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acosh",()=>i),s.export(r,"acoshConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` if (x< 1.0) return NAN; return log(x + sqrt(x * x - 1.0));`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Acosh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../unaryop_gpu":"dKkzg","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9QAnf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addKernelFunc",()=>u),s.export(r,"addConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return a + b;",u=(0,o.binaryKernelFunc)({opSnippet:i,packedOpSnippet:i,supportsComplex:!0,cpuKernelImpl:l.addImplCPU}),p={kernelName:a.Add,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kENeZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addN",()=>u),s.export(r,"addNConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../addn_gpu"),l=e("../addn_packed_gpu"),i=e("./Identity");function u(e){let{inputs:t,backend:r}=e;if(1===t.length)return(0,i.identity)({inputs:{x:t[0]},backend:r});if(t.length>(0,a.env)().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let e=Math.floor(t.length/2),n=u({inputs:t.slice(0,e),backend:r}),s=u({inputs:t.slice(e),backend:r});return u({inputs:[n,s],backend:r})}let n=t.map(e=>e.dtype).reduce((e,t)=>(0,a.upcastType)(e,t)),s=t.map(e=>e.shape),p=(0,a.env)().getBool("WEBGL_PACK")?new(0,l.AddNPackedProgram)(t[0].shape,s):new(0,o.AddNProgram)(t[0].shape,s);return r.runWebGLProgram(p,t,n)}let p={kernelName:a.AddN,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../addn_gpu":"g41ds","../addn_packed_gpu":"8RUDo","./Identity":"eH68D","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],g41ds:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AddNProgram",()=>a);class a{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((e,t)=>`T${t}`);let r=[];this.variableNames.forEach(e=>{r.push(`float v${e} = get${e}AtOutCoords();`)});let n=this.variableNames.map(e=>`v${e}`).join(" + ");this.userCode=` void main() { ${r.join("\n ")} float result = ${n}; setOutput(result); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8RUDo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AddNPackedProgram",()=>a);class a{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((e,t)=>`T${t}`);let r=[];this.variableNames.forEach(e=>{r.push(`vec4 v${e} = get${e}AtOutCoords();`)});let n=this.variableNames.map(e=>`v${e}`).join(" + ");this.userCode=` void main() { ${r.join("\n ")} vec4 result = ${n}; setOutput(result); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aW1qf:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"all",()=>u),s.export(r,"allConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("./Reshape"),i=e("./Transpose");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r,{axis:p,keepDims:c}=s,d=u.shape.length,f=a.util.parseAxisParam(p,u.shape),h=f,m=a.backend_util.getAxesPermutation(h,d),g=u;null!=m&&(g=(0,i.transpose)({inputs:{x:u},backend:n,attrs:{perm:m}}),h=a.backend_util.getInnerMostAxes(h.length,d)),a.backend_util.assertAxesAreInnerMostDims("all",h,d);let[x,v]=a.backend_util.computeOutAndReduceShapes(g.shape,h),y=a.util.sizeFromShape(v),_=(0,l.reshape)({inputs:{x:g},backend:n,attrs:{shape:[-1,y]}}),b=(0,o.reduce)(_,_.dtype,"all",n);if(c){let e=a.backend_util.expandShapeToKeepDim(x,f);t=(0,l.reshape)({inputs:{x:b},backend:n,attrs:{shape:e}})}else t=(0,l.reshape)({inputs:{x:b},backend:n,attrs:{shape:x}});return n.disposeIntermediateTensorInfo(_),n.disposeIntermediateTensorInfo(b),null!=m&&n.disposeIntermediateTensorInfo(g),t}let p={kernelName:a.All,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/reduce":"ghhUV","./Reshape":"6JJRX","./Transpose":"6x6Ts","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],btup1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"any",()=>u),s.export(r,"anyConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("./Reshape"),i=e("./Transpose");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r,{axis:p,keepDims:c}=s,d=u.shape.length,f=a.util.parseAxisParam(p,u.shape),h=f,m=a.backend_util.getAxesPermutation(h,d),g=u;null!=m&&(g=(0,i.transpose)({inputs:{x:u},backend:n,attrs:{perm:m}}),h=a.backend_util.getInnerMostAxes(h.length,d)),a.backend_util.assertAxesAreInnerMostDims("any",h,d);let[x,v]=a.backend_util.computeOutAndReduceShapes(g.shape,h),y=a.util.sizeFromShape(v),_=(0,l.reshape)({inputs:{x:g},backend:n,attrs:{shape:[-1,y]}}),b=(0,o.reduce)(_,_.dtype,"any",n);if(c){let e=a.backend_util.expandShapeToKeepDim(x,f);t=(0,l.reshape)({inputs:{x:b},backend:n,attrs:{shape:e}})}else t=(0,l.reshape)({inputs:{x:b},backend:n,attrs:{shape:x}});return n.disposeIntermediateTensorInfo(_),n.disposeIntermediateTensorInfo(b),null!=m&&n.disposeIntermediateTensorInfo(g),t}let p={kernelName:a.Any,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/reduce":"ghhUV","./Reshape":"6JJRX","./Transpose":"6x6Ts","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],i7MTm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMax",()=>i),s.export(r,"argMaxConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/arg_min_max"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i}=n,u=a.util.parseAxisParam(i,s.shape),p=a.backend_util.getAxesPermutation(u,s.shape.length),c=s,d=[];null!=p&&(d.push(c=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:p}})),u=a.backend_util.getInnerMostAxes(u.length,c.shape.length)),a.backend_util.assertAxesAreInnerMostDims("argMax",[u[0]],c.shape.length);let f=(0,o.argMinMaxReduce)(r,c,u[0],"max");return d.forEach(e=>r.disposeIntermediateTensorInfo(e)),f}let u={kernelName:a.ArgMax,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/arg_min_max":"4W0ve","./Transpose":"6x6Ts","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4W0ve":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMinMaxReduce",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../argminmax_gpu"),l=e("../argminmax_packed_gpu"),i=e("../kernels/Reshape");function u(e,t,r,n){let s=[r];if(a.backend_util.assertAxesAreInnerMostDims("arg"+n.charAt(0).toUpperCase()+n.slice(1),s,t.shape.length),!(0,a.env)().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let r=[],l=e.texData.get(t.dataId),u=null!==l&&l.isPacked,p=t;u&&r.push(p=e.unpackTensor(t));let[c,d]=a.backend_util.computeOutAndReduceShapes(p.shape,s),f=a.util.sizeFromShape(d),h=(0,i.reshape)({inputs:{x:p},backend:e,attrs:{shape:[-1,f]}});r.push(h);let m=function e(t,r,n,s=null){let l=r.shape[0],i=r.shape[1];null!=s&&(l=s.shape[0],i=s.shape[1]);let u=a.backend_util.computeOptimalWindowSize(i),p={windowSize:u,inSize:i,batchSize:l,outSize:Math.ceil(i/u)},c=new(0,o.ArgMinMaxProgram)(p,n,null==s),d=[r];null!=s&&d.push(s);let f=t.runWebGLProgram(c,d,"int32");if(1===f.shape[1])return f;let h=e(t,r,n,f);return t.disposeIntermediateTensorInfo(f),h}(e,h,n);r.push(m);let g=(0,i.reshape)({inputs:{x:m},backend:e,attrs:{shape:c}});return r.forEach(t=>e.disposeIntermediateTensorInfo(t)),g}return function e(t,r,n,s=null){let o=null!=s?s.shape:r.shape,i=o[o.length-1],u=a.backend_util.computeOptimalWindowSize(i),p=new(0,l.ArgMinMaxPackedProgram)(o,u,n,null==s),c=null==s?[r]:[r,s],d=t.runWebGLProgram(p,c,"int32");if(d.shape.length===r.shape.length){let s=e(t,r,n,d);return t.disposeIntermediateTensorInfo(d),s}return d}(e,t,n)}},{"@tensorflow/tfjs-core":"hADTC","../argminmax_gpu":"7YiW2","../argminmax_packed_gpu":"bQj26","../kernels/Reshape":"6JJRX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7YiW2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ArgMinMaxProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["A"];let{windowSize:n,batchSize:s,outSize:a}=e;r||this.variableNames.push("bestIndicesA"),this.outputShape=[s,a],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; int outIdx = coords[1]; int inOffset = outIdx * ${n}; int bestIndex = inOffset; float bestValue = getA(batch, bestIndex); for (int i = 0; i< ${n}; i++) { int inIdx = ${r?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));"}; float candidate = getA(batch, inIdx); if (candidate ${"max"===t?">":"<"} bestValue) { bestValue = candidate; bestIndex = inIdx; } } setOutput(float(bestIndex)); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bQj26:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ArgMinMaxPackedProgram",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./packing_util"),l=e("./shader_compiler");class i{constructor(e,t,r,n){let s,i;this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,a.util.assert(e.length>2,()=>`Packed arg${r.charAt(0).toUpperCase()+r.slice(1)} supports only inputs with rank above 2.`);let u=Math.ceil(e[e.length-1]/t);this.outputShape=e.slice(0,-1),u>1&&this.outputShape.push(u),n||this.variableNames.push("bestIndicesA");let p=this.outputShape,c=p.length,d=(0,l.getCoordsDataType)(c),f=(0,o.getChannels)("coords",c);if(1===u){i=c+1;let e=(0,l.getCoordsDataType)(i);s=` ${e} sourceLocR = ${e}(${f.join()}, 0); ++${f[c-1]}; ${e} sourceLocG = ${e}(${f.join()}, 0); ++${f[c-2]}; ${e} sourceLocA = ${e}(${f.join()}, 0); --${f[c-1]}; ${e} sourceLocB = ${e}(${f.join()}, 0); --${f[c-2]};`}else i=c,s=` ${d} sourceLocR = coords; ++${f[c-1]}; ${d} sourceLocG = coords; ++${f[c-2]}; ${d} sourceLocA = coords; --${f[c-1]}; ${d} sourceLocB = coords; --${f[c-2]};`;let h=["x","y","z","w","u","v"].slice(0,i),m="."+h[i-1],g=h.map(e=>"int "+e),x=(0,o.getChannels)("sourceLocR",i-1).concat("inIdx.r"),v=(0,o.getChannels)("sourceLocG",i-1).concat("inIdx.g"),y=(0,o.getChannels)("sourceLocB",i-1).concat("inIdx.b"),_=(0,o.getChannels)("sourceLocA",i-1).concat("inIdx.a"),b="max"===r?"greaterThan":"lessThan",k=n?"":` inIdx = round(vec4(getBestIndicesAChannel(${x.join()}), getBestIndicesAChannel(${v.join()}), getBestIndicesAChannel(${y.join()}), getBestIndicesAChannel(${_.join()})));`,T=`vec4( getAChannel(${x.join()}), hasNextCol ? getAChannel(${v.join()}) : 0., hasNextRow ? getAChannel(${y.join()}) : 0., hasNextRow && hasNextCol ? getAChannel(${_.join()}) : 0.)`,w=n?"":` float getBestIndicesAChannel(${g.join()}) { return getChannel(getBestIndicesA(${h.join()}), vec2(${h.slice(-2).join()})); }`;this.userCode=` float getAChannel(${g.join()}) { return getChannel(getA(${h.join()}), vec2(${h.slice(-2).join()})); } ${w} void main() { ${d} coords = getOutputCoords(); bool hasNextCol = ${f[c-1]}< ${p[c-1]-1}; bool hasNextRow = ${f[c-2]} < ${p[c-2]-1}; ${s} ivec4 srcIdx = ivec4(sourceLocR${m}, sourceLocG${m}, sourceLocB${m}, sourceLocA${m}) * ${t}; ivec4 inIdx = srcIdx; vec4 bestIndex = vec4(inIdx); vec4 bestValue = ${T}; for (int i = 0; i < ${t}; i++) { inIdx = srcIdx; ${k} vec4 candidate = ${T}; bvec4 nan = isnan(candidate); bvec4 replace = bvec4( vec4(${b}(candidate, bestValue)) * (vec4(1.0) - vec4(nan))); bestValue = vec4(replace.x ? candidate.x : bestValue.x, replace.y ? candidate.y : bestValue.y, replace.z ? candidate.z : bestValue.z, replace.w ? candidate.w : bestValue.w); bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace)); srcIdx++; } setOutput(bestIndex); } `}}},{"@tensorflow/tfjs-core":"hADTC","./packing_util":"gX790","./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2w91t":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMin",()=>i),s.export(r,"argMinConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/arg_min_max"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i}=n,u=a.util.parseAxisParam(i,s.shape),p=a.backend_util.getAxesPermutation(u,s.shape.length),c=s,d=[];null!=p&&(d.push(c=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:p}})),u=a.backend_util.getInnerMostAxes(u.length,c.shape.length)),a.backend_util.assertAxesAreInnerMostDims("argMin",[u[0]],c.shape.length);let f=(0,o.argMinMaxReduce)(r,c,u[0],"min");return d.forEach(e=>r.disposeIntermediateTensorInfo(e)),f}let u={kernelName:a.ArgMin,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/arg_min_max":"4W0ve","./Transpose":"6x6Ts","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4gYKq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asin",()=>i),s.export(r,"asinConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` if (abs(x) > 1.) { return NAN; } return asin(x); `,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Asin,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../unaryop_gpu":"dKkzg","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5NnHk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asinh",()=>i),s.export(r,"asinhConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+"return log(x + sqrt(x * x + 1.0));",i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Asinh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../unaryop_gpu":"dKkzg","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iCFXP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan",()=>i),s.export(r,"atanConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` return atan(x); `,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Atan,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../unaryop_gpu":"dKkzg","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],APiHf:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan2",()=>c),s.export(r,"atan2Config",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernel_utils/kernel_funcs_utils");let u=o.CHECK_NAN_SNIPPET+` return atan(a, b); `,p=` vec4 result = atan(a, b); 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); `+l.CHECK_NAN_SNIPPET_PACKED+` return result; `,c=(0,i.binaryKernelFunc)({opSnippet:u,packedOpSnippet:p}),d={kernelName:a.Atan2,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"hADTC","../binaryop_gpu":"a2Mj7","../binaryop_packed_gpu":"fwruC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iDemk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atanh",()=>i),s.export(r,"atanhConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` if ((x< -1.0) || (x >1.0)) return NAN; return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Atanh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../unaryop_gpu":"dKkzg","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],k7gqw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool",()=>u),s.export(r,"avgPoolConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../pool_gpu"),l=e("../webgl_util"),i=e("./Identity");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t;(0,l.assertNotComplex)(s,"avgPool");let{filterSize:u,strides:p,pad:c,dimRoundingMode:d}=n;a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(p,1),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${p} and dilations '1'`);let f=a.backend_util.computePool2DInfo(s.shape,u,p,1,c,d);if(1===f.filterWidth&&1===f.filterHeight&&a.util.arraysEqual(f.inShape,f.outShape))return(0,i.identity)({inputs:{x:s},backend:r});let h=new(0,o.Pool2DProgram)(f,"avg",!1);return r.runWebGLProgram(h,[s],"float32")}let p={kernelName:a.AvgPool,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../pool_gpu":"6Iq2c","../webgl_util":"hSqB7","./Identity":"eH68D","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6Iq2c":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Pool2DProgram",()=>a),s.export(r,"Pool3DProgram",()=>o);class a{constructor(e,t,r,n=!1,s=!1){if(this.variableNames=["x"],"avg"===t&&r)throw Error("Cannot compute positions for average pool.");let a=e.filterWidth,o=e.strideHeight,l=e.strideWidth,i=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterHeight,c=e.effectiveFilterWidth,d=e.padInfo.top,f=e.padInfo.left;this.outputShape=e.outShape;let h="avg"===t,m=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,x="0.0";if(h||(x="-1.0 / 1e-20"),r){this.userCode=` const ivec2 strides = ivec2(${o}, ${l}); const ivec2 pads = ivec2(${d}, ${f}); void main() { ivec4 coords = getOutputCoords(); int batch = coords[0]; int d = coords[3]; ivec2 xRCCorner = coords.yz * strides - pads; int xRCorner = xRCCorner.x; int xCCorner = xRCCorner.y; // max/min x(?, ?, d) to get y(yR, yC, d). // ? = to be determined float minMaxValue = 0.0; float minMaxValueFound = 0.0; int minMaxPosition = 0; float avgValue = 0.0; for (int wR = 0; wR< ${p}; wR += ${i}) { int xR = xRCorner + wR; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int wC = 0; wC< ${c}; wC += ${u}) { int xC = xCCorner + wC; if (xC < 0 || xC >= ${e.inWidth}) { continue; } float value = getX(batch, xR, xC, d); // If a min / max value has already been found, use it. If not, // use the current value. float currMinMaxValue = mix( value, minMaxValue, minMaxValueFound); if (value >= currMinMaxValue) { minMaxValue = value; minMaxValueFound = 1.0; minMaxPosition = ${n?s?m:g:`wR * ${c} + wC`}; } } } setOutput(float(minMaxPosition)); } `;return}let v=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(v="avgValue / max(count, 1.0)");let y=4*Math.floor(a/4),_=a%4,b=` if (${h}) { avgValue += dot(values, ones); } else { minMaxValue = max(values, minMaxValue); } `;this.userCode=` const ivec2 strides = ivec2(${o}, ${l}); const ivec2 pads = ivec2(${d}, ${f}); const float initializationValue = ${x}; const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); float count = 0.0; float getValue(int batch, int xR, int xC, int d) { if (xC< 0 || xC >= ${e.inWidth}) { return initializationValue; } count += 1.0; return getX(batch, xR, xC, d); } void main() { ivec4 coords = getOutputCoords(); int batch = coords[0]; int d = coords[3]; ivec2 xRCCorner = coords.yz * strides - pads; int xRCorner = xRCCorner.x; int xCCorner = xRCCorner.y; // max/min x(?, ?, d) to get y(yR, yC, d). // ? = to be determined vec4 minMaxValue = vec4(${x}); float avgValue = 0.0; count = 0.0; for (int wR = 0; wR< ${p}; wR += ${i}) { int xR = xRCorner + wR; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int wC = 0; wC< ${y}; wC += 4) { int xC = xCCorner + wC * ${u}; vec4 values = vec4( getValue(batch, xR, xC, d), getValue(batch, xR, xC + ${u}, d), getValue(batch, xR, xC + 2 * ${u}, d), getValue(batch, xR, xC + 3 * ${u}, d) ); ${b} } int xC = xCCorner + ${y}; if (${1===_}) { vec4 values = vec4( getValue(batch, xR, xC, d), initializationValue, initializationValue, initializationValue ); ${b} } else if (${2===_}) { vec4 values = vec4( getValue(batch, xR, xC, d), getValue(batch, xR, xC + ${u}, d), initializationValue, initializationValue ); ${b} } else if (${3===_}) { vec4 values = vec4( getValue(batch, xR, xC, d), getValue(batch, xR, xC + ${u}, d), getValue(batch, xR, xC + 2 * ${u}, d), initializationValue ); ${b} } } setOutput(${v}); } `}}class o{constructor(e,t,r,n=!1,s=!1){if(this.variableNames=["x"],"avg"===t&&r)throw Error("Cannot compute positions for average pool.");let a=e.filterWidth,o=e.strideDepth,l=e.strideHeight,i=e.strideWidth,u=e.dilationDepth,p=e.dilationHeight,c=e.dilationWidth,d=e.effectiveFilterDepth,f=e.effectiveFilterHeight,h=e.effectiveFilterWidth,m=e.padInfo.front,g=e.padInfo.top,x=e.padInfo.left;this.outputShape=e.outShape;let v="avg"===t,y="0.0";if(v||(y="-1.0 / 1e-20"),r){this.userCode=` const ivec3 strides = ivec3(${o}, ${l}, ${i}); const ivec3 pads = ivec3(${m}, ${g}, ${x}); void main() { ivec5 coords = getOutputCoords(); int batch = coords.x; int ch = coords.u; ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; int xDCorner = xCorner.x; int xRCorner = xCorner.y; int xCCorner = xCorner.z; // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch). // ? = to be determined float minMaxValue = 0.0; float minMaxValueFound = 0.0; int minMaxPosition = 0; for (int wD = 0; wD < ${d}; wD += ${u}) { int xD = xDCorner + wD; if (xD < 0 || xD >= ${e.inDepth}) { continue; } for (int wR = 0; wR< ${f}; wR += ${p}) { int xR = xRCorner + wR; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int wC = 0; wC< ${h}; wC += ${c}) { int xC = xCCorner + wC; if (xC < 0 || xC >= ${e.inWidth}) { continue; } float value = getX(batch, xD, xR, xC, ch); // If a min / max value has already been found, use it. If not, // use the current value. float currMinMaxValue = mix( value, minMaxValue, minMaxValueFound); if (value >= currMinMaxValue) { minMaxValue = value; minMaxValueFound = 1.0; minMaxPosition = ${n?s?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${f} * ${h} + wR * ${h} + wC`}; } } } } setOutput(float(minMaxPosition)); } `;return}let _=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(_="avgValue / max(count, 1.0)");let b=4*Math.floor(a/4),k=a%4,T=` if (${v}) { avgValue += dot(values, ones); } else { minMaxValue = max(values, minMaxValue); } `;this.userCode=` const ivec3 strides = ivec3(${o}, ${l}, ${i}); const ivec3 pads = ivec3(${m}, ${g}, ${x}); const float initializationValue = ${y}; const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); float count = 0.0; float getValue(int batch, int xD, int xR, int xC, int ch) { if (xC< 0 || xC >= ${e.inWidth}) { return initializationValue; } count += 1.0; return getX(batch, xD, xR, xC, ch); } void main() { ivec5 coords = getOutputCoords(); int batch = coords.x; int ch = coords.u; ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; int xDCorner = xCorner.x; int xRCorner = xCorner.y; int xCCorner = xCorner.z; // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch). // ? = to be determined vec4 minMaxValue = vec4(${y}); float avgValue = 0.0; count = 0.0; for (int wD = 0; wD< ${d}; wD += ${u}) { int xD = xDCorner + wD; if (xD < 0 || xD >= ${e.inDepth}) { continue; } for (int wR = 0; wR< ${f}; wR += ${p}) { int xR = xRCorner + wR; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int wC = 0; wC< ${b}; wC += 4) { int xC = xCCorner + wC * ${c}; vec4 values = vec4( getValue(batch, xD, xR, xC, ch), getValue(batch, xD, xR, xC + ${c}, ch), getValue(batch, xD, xR, xC + 2 * ${c}, ch), getValue(batch, xD, xR, xC + 3 * ${c}, ch) ); ${T} } int xC = xCCorner + ${b}; if (${1===k}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), initializationValue, initializationValue, initializationValue ); ${T} } else if (${2===k}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), getValue(batch, xD, xR, xC + ${c}, ch), initializationValue, initializationValue ); ${T} } else if (${3===k}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), getValue(batch, xD, xR, xC + ${c}, ch), getValue(batch, xD, xR, xC + 2 * ${c}, ch), initializationValue ); ${T} } } } setOutput(${_}); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],VrUzp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3D",()=>l),s.export(r,"avgPool3DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../pool_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{filterSize:l,strides:i,pad:u,dimRoundingMode:p,dataFormat:c}=n,d=a.backend_util.computePool3DInfo(s.shape,l,i,[1,1,1],u,p,c),f=new(0,o.Pool3DProgram)(d,"avg",!1);return r.runWebGLProgram(f,[s],"float32")}let i={kernelName:a.AvgPool3D,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../pool_gpu":"6Iq2c","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iwWTr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3DGrad",()=>l),s.export(r,"avgPool3DGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../avg_pool_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:l}=t,{filterSize:i,strides:u,pad:p,dimRoundingMode:c}=n,d=a.backend_util.computePool3DInfo(l.shape,i,u,[1,1,1],p,c),f=new(0,o.AvgPool3DBackpropProgram)(d);return r.runWebGLProgram(f,[s],l.dtype)}let i={kernelName:a.AvgPool3DGrad,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../avg_pool_backprop_gpu":"lP4g7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lP4g7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AvgPool2DBackpropProgram",()=>a),s.export(r,"AvgPool3DBackpropProgram",()=>o);class a{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,r=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=e.dilationHeight,o=e.dilationWidth,l=e.effectiveFilterHeight,i=e.effectiveFilterWidth,u=l-1-e.padInfo.top,p=i-1-e.padInfo.left;this.userCode=` const ivec2 pads = ivec2(${u}, ${p}); const float avgMultiplier = float(${1/(t*r)}); void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int d = coords[3]; ivec2 dyRCCorner = coords.yz - pads; int dyRCorner = dyRCCorner.x; int dyCCorner = dyRCCorner.y; // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d). // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; for (int wR = 0; wR< ${l}; wR += ${a}) { float dyR = float(dyRCorner + wR) / ${n}.0; if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { continue; } int idyR = int(dyR); for (int wC = 0; wC< ${i}; wC+= ${o}) { float dyC = float(dyCCorner + wC) / ${s}.0; if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || fract(dyC) > 0.0) { continue; } int idyC = int(dyC); float dyValue = getDy(b, idyR, idyC, d); dotProd += dyValue * avgMultiplier; } } setOutput(dotProd); } `}}class o{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,r=e.filterHeight,n=e.filterWidth,s=e.strideDepth,a=e.strideHeight,o=e.strideWidth,l=e.dilationDepth,i=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterDepth,c=e.effectiveFilterHeight,d=e.effectiveFilterWidth,f=p-1-e.padInfo.front,h=c-1-e.padInfo.top,m=d-1-e.padInfo.left;this.userCode=` const ivec3 pads = ivec3(${f}, ${h}, ${m}); const float avgMultiplier = float(${1/(t*r*n)}); void main() { ivec5 coords = getOutputCoords(); int batch = coords.x; int ch = coords.u; ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; int dyDCorner = dyCorner.x; int dyRCorner = dyCorner.y; int dyCCorner = dyCorner.z; // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get // dx(xD, xR, xC, ch). // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; for (int wD = 0; wD< ${p}; wD += ${l}) { float dyD = float(dyDCorner + wD) / ${s}.0; if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) { continue; } int idyD = int(dyD); for (int wR = 0; wR< ${c}; wR += ${i}) { float dyR = float(dyRCorner + wR) / ${a}.0; if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { continue; } int idyR = int(dyR); for (int wC = 0; wC< ${d}; wC += ${u}) { float dyC = float(dyCCorner + wC) / ${o}.0; if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || fract(dyC) > 0.0) { continue; } int idyC = int(dyC); float dyValue = getDy(batch, idyD, idyR, idyC, ch); dotProd += dyValue * avgMultiplier; } } } setOutput(dotProd); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6Ox0Z":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPoolGrad",()=>i),s.export(r,"avgPoolGradConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../avg_pool_backprop_gpu"),l=e("../webgl_util");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:i}=t;(0,l.assertNotComplex)([s,i],"avgPoolGrad");let{filterSize:u,strides:p,pad:c}=n,d=a.backend_util.computePool2DInfo(i.shape,u,p,1,c),f=new(0,o.AvgPool2DBackpropProgram)(d);return r.runWebGLProgram(f,[s],i.dtype)}let u={kernelName:a.AvgPoolGrad,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../avg_pool_backprop_gpu":"lP4g7","../webgl_util":"hSqB7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5xFjy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchMatMul",()=>l),s.export(r,"batchMatMulConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./BatchMatMul_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{a:s,b:a}=t,{transposeA:l,transposeB:i}=n;return(0,o.batchMatMulImpl)({a:s,b:a,transposeA:l,transposeB:i,backend:r})}let i={kernelName:a.BatchMatMul,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./BatchMatMul_impl":"11rB3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"26EfT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm",()=>i),s.export(r,"batchNormConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../batchnorm_gpu"),l=e("../batchnorm_packed_gpu");let i=({inputs:e,backend:t,attrs:r})=>{let{x:n,mean:s,variance:i,offset:u,scale:p}=e;a.util.assert(s.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),a.util.assert(null==u||s.shape.length===u.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),a.util.assert(null==p||s.shape.length===p.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:c}=r;null==c&&(c=.001);let d=[n,s,i],f=null;null!=u&&(f=u.shape,d.push(u));let h=null;null!=p&&(h=p.shape,d.push(p));let m=(0,a.env)().getBool("WEBGL_PACK_NORMALIZATION")?new(0,l.BatchNormPackedProgram)(n.shape,s.shape,i.shape,f,h,c):new(0,o.BatchNormProgram)(n.shape,s.shape,i.shape,f,h,c);return t.runWebGLProgram(m,d,d[0].dtype)},u={kernelName:a.FusedBatchNorm,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../batchnorm_gpu":"40xQV","../batchnorm_packed_gpu":"cWuEj","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"40xQV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"BatchNormProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t,r,n,s,o){this.outputShape=[],this.variableNames=["x","mean","variance"],a.backend_util.assertAndGetBroadcastShape(e,t),a.backend_util.assertAndGetBroadcastShape(e,r);let l="0.0";null!=n&&(a.backend_util.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),l="getOffsetAtOutCoords()");let i="1.0";null!=s&&(a.backend_util.assertAndGetBroadcastShape(e,s),this.variableNames.push("scale"),i="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { float x = getXAtOutCoords(); float mean = getMeanAtOutCoords(); float variance = getVarianceAtOutCoords(); float offset = ${l}; float scale = ${i}; float inv = scale * inversesqrt(variance + float(${o})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } `}}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cWuEj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"BatchNormPackedProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t,r,n,s,o){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],a.backend_util.assertAndGetBroadcastShape(e,t),a.backend_util.assertAndGetBroadcastShape(e,r);let l="vec4(0.0)";null!=n&&(a.backend_util.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),l="getOffsetAtOutCoords()");let i="vec4(1.0)";null!=s&&(a.backend_util.assertAndGetBroadcastShape(e,s),this.variableNames.push("scale"),i="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { vec4 offset = ${l}; vec4 scale = ${i}; vec4 x = getXAtOutCoords(); vec4 mean = getMeanAtOutCoords(); vec4 variance = getVarianceAtOutCoords(); vec4 inv = scale * inversesqrt(variance + vec4(${o})); setOutput((x - mean) * inv + offset); } `}}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fOvcB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchToSpaceND",()=>u),s.export(r,"batchToSpaceNDConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape"),l=e("./Slice"),i=e("./Transpose");let u=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockShape:u,crops:p}=n;a.util.assert(s.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let c=u.reduce((e,t)=>e*t),d=a.backend_util.getReshaped(s.shape,u,c),f=a.backend_util.getPermuted(d.length,u.length),h=a.backend_util.getReshapedPermuted(s.shape,u,c),m=a.backend_util.getSliceBeginCoords(p,u.length),g=a.backend_util.getSliceSize(h,p,u.length),x=[],v=(0,o.reshape)({inputs:{x:s},backend:r,attrs:{shape:d}}),y=(0,i.transpose)({inputs:{x:v},backend:r,attrs:{perm:f}}),_=(0,o.reshape)({inputs:{x:y},backend:r,attrs:{shape:h}}),b=(0,l.slice)({inputs:{x:_},backend:r,attrs:{begin:m,size:g}});return x.push(v),x.push(y),x.push(_),x.forEach(e=>r.disposeIntermediateTensorInfo(e)),b},p={kernelName:a.BatchToSpaceND,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","./Reshape":"6JJRX","./Slice":"1rG2n","./Transpose":"6x6Ts","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1rG2n":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice",()=>u),s.export(r,"sliceConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../slice_gpu"),i=e("../slice_packed_gpu");function u(e){let t,r,n,s,u,{inputs:p,backend:c,attrs:d}=e,{x:f}=p,{begin:h,size:m}=d,[g,x]=a.slice_util.parseSliceParams(f,h,m);if(a.slice_util.assertParamsValid(f,g,x),0===a.util.sizeFromShape(x))return c.makeTensorInfo(x,f.dtype,[]);if(c.shouldExecuteOnCPU([f])||"string"===f.dtype){let e=c.texData.get(f.dataId),t=(0,o.sliceImplCPU)(e.values,g,x,f.shape,f.dtype);return c.makeTensorInfo(x,f.dtype,t)}let{isPacked:v}=c.texData.get(f.dataId),y=a.slice_util.isSliceContinous(f.shape,g,x);if(v||!y){let e=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,i.SlicePackedProgram)(x):new(0,l.SliceProgram)(x),t=[g];return c.runWebGLProgram(e,[f],f.dtype,t)}return c.uploadToGPU(f.dataId),t=c.texData.get(f.dataId),r=c.makeTensorInfo(x,f.dtype),Object.assign(n=c.texData.get(r.dataId),t),n.refCount=1,n.shape=x,n.dtype=f.dtype,s=a.slice_util.computeFlatOffset(g,a.util.computeStrides(f.shape)),t.slice&&(s+=t.slice.flatOffset),n.slice={flatOffset:s,origDataId:t.slice&&t.slice.origDataId||f.dataId},u=c.dataRefCount.get(n.slice.origDataId)||1,c.dataRefCount.set(n.slice.origDataId,u+1),r}let p={kernelName:a.Slice,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","../slice_gpu":"kzCiq","../slice_packed_gpu":"7UT3d","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kzCiq:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SliceProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e){let t;this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let r=(0,a.getCoordsDataType)(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=function(e){if(1===e)return"sourceLoc";if(e<=6)return l.slice(0,e).map(e=>"sourceLoc."+e).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}(this.rank),s=e.map((e,t)=>`sourceLoc.${l[t]} = start[${t}] + coords.${l[t]};`);t=` ${r} sourceLoc; ${r} coords = getOutputCoords(); ${s.join("\n")} `,this.userCode=` void main() { ${t} setOutput(getSource(${n})); } `}}let l=["x","y","z","w","u","v"]},{"./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7UT3d":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SlicePackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{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=(0,o.getCoordsDataType)(this.rank),r=(0,a.getChannels)("coords",this.rank),n=(0,a.getChannels)("sourceLoc",this.rank),s=1===this.rank?"sourceLoc":`vec2(${n.slice(-2).join()})`,l=`getChannel(getSource(${n.join()}), ${s})`,i=` result.x = ${l}; if (++${r[this.rank-1]}< ${e[this.rank-1]}) { ++${n[this.rank-1]}; result.y = ${l}; --${n[this.rank-1]}; } `,u=1===this.rank?"":` --${r[this.rank-1]}; if (++${r[this.rank-2]} < ${e[this.rank-2]}) { ++${n[this.rank-2]}; result.z = ${l}; if (++${r[this.rank-1]} < ${e[this.rank-1]}) { ++${n[this.rank-1]}; result.w = ${l}; } } `,p=this.rank<=4?`sourceLoc = coords + ${t}(${e.map((e,t)=>`start[${t}]`).join()});`:e.map((e,t)=>`${n[t]} = ${r[t]} + start[${t}];`).join("\n");this.userCode=` void main() { ${t} coords = getOutputCoords(); ${t} sourceLoc; ${p} vec4 result = vec4(0.); ${i} ${u} setOutput(result); } `}}},{"./packing_util":"gX790","./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cfh9f:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bincount",()=>l),s.export(r,"bincountConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,weights:a}=t,{size:l}=n,i=r.readSync(s.dataId),u=r.readSync(a.dataId),p=(0,o.bincountImplCPU)(i,u,a.dtype,a.shape,l);return r.makeTensorInfo([l],a.dtype,p)}let i={kernelName:a.Bincount,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],akJQ9:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"BITWISEAND",()=>u),s.export(r,"BITWISEAND_UNPACKED",()=>p),s.export(r,"bitwiseAnd",()=>c),s.export(r,"bitwiseAndConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernel_utils/shared");let u=` int r = int(a.r) & int(b.r); int g = int(a.g) & int(b.g); int rb = int(a.b) & int(b.b); int ra = int(a.a) & int(b.a); return vec4(r, g, rb, ra); `,p=` return float(int(a.r) & int(b.r)); `;function c(e){let t,{inputs:r,backend:n}=e,{a:s,b:c}=r,d=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS"),f=(0,a.env)().getNumber("WEBGL_VERSION");if(n.shouldExecuteOnCPU([s,c])||1===f){let e=n.texData.get(s.dataId).values,t=n.texData.get(c.dataId).values,[r,a]=(0,i.bitwiseAndImplCPU)(s.shape,c.shape,e,t,s.dtype),o=n.makeTensorInfo(a,s.dtype);return n.texData.get(o.dataId).values=r,o}return t=d?new(0,l.BinaryOpPackedProgram)(u,s.shape,c.shape,!1):new(0,o.BinaryOpProgram)(p,s.shape,c.shape),n.runWebGLProgram(t,[s,c],s.dtype)}let d={kernelName:a.BitwiseAnd,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"hADTC","../binaryop_gpu":"a2Mj7","../binaryop_packed_gpu":"fwruC","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6qx51":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"broadcastArgs",()=>o),s.export(r,"broadcastArgsConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r}=e,{s0:n,s1:s}=t,o=r.readSync(n.dataId),l=r.readSync(s.dataId),i=a.backend_util.assertAndGetBroadcastShape(Array.from(o),Array.from(l));return r.makeTensorInfo([i.length],"int32",Int32Array.from(i))}let l={kernelName:a.BroadcastArgs,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fCMGT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cast",()=>d),s.export(r,"castConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("./Complex"),i=e("./Identity"),u=e("./NotEqual"),p=e("./Real"),c=e("../kernel_utils/int");function d(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{dtype:f}=n;if("complex64"===f){if("complex64"===s.dtype)return(0,i.identity)({inputs:{x:s},backend:r});let e=a.zeros(s.shape),t=d({inputs:{x:s},backend:r,attrs:{dtype:"float32"}}),n=(0,l.complex)({inputs:{real:t,imag:e},backend:r});return e.dispose(),r.disposeIntermediateTensorInfo(t),n}if("complex64"===s.dtype){let e=(0,p.real)({inputs:{input:s},backend:r}),t=d({inputs:{x:e},backend:r,attrs:{dtype:f}});return r.disposeIntermediateTensorInfo(e),t}if(!a.util.hasEncodingLoss(s.dtype,f)){let e=(0,i.identity)({inputs:{x:s},backend:r});return{dataId:e.dataId,shape:e.shape,dtype:f}}if(r.shouldExecuteOnCPU([s])){let e=r.texData.get(s.dataId).values,[t,n,a]=(0,o.castImplCPU)(e,s.shape,s.dtype,f);return r.makeTensorInfo(t,n,a)}if("int32"===f)return(0,c.int)(s,r);if("bool"===f){let e=r.makeTensorInfo([],"bool",a.util.getTypedArrayFromDType("bool",1)),t=(0,u.notEqual)({inputs:{a:s,b:e},backend:r});return r.disposeIntermediateTensorInfo(e),t}throw Error(`Error in Cast: failed to cast ${s.dtype} to ${f}`)}let f={kernelName:a.Cast,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","./Complex":"2jgL8","./Identity":"eH68D","./NotEqual":"fcGpz","./Real":"hXKZs","../kernel_utils/int":"6FBp4","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fcGpz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"notEqual",()=>i),s.export(r,"notEqualConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=(0,o.binaryKernelFunc)({opSnippet:"return float(a != b);",cpuKernelImpl:l.notEqualImplCPU,dtype:"bool"}),u={kernelName:a.NotEqual,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hXKZs:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"real",()=>l),s.export(r,"realConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Identity");function l(e){let{inputs:t,backend:r}=e,{input:n}=t,s=r.texData.get(n.dataId);return(0,o.identity)({inputs:{x:s.complexTensorInfos.real},backend:r})}let i={kernelName:a.Real,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./Identity":"eH68D","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6FBp4":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"int",()=>o);var a=e("../unaryop_gpu");function o(e,t){let r=new(0,a.UnaryOpProgram)(e.shape,"return float(int(x));"),n=t.runWebGLProgram(r,[e],"int32");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}},{"../unaryop_gpu":"dKkzg","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2zhjk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ceil",()=>u),s.export(r,"ceilConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return ceil(x);",u=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:i,cpuKernelImpl:l.ceilImplCPU}),p={kernelName:a.Ceil,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ak2fs:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clipByValue",()=>i),s.export(r,"clipByValueConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../clip_gpu"),l=e("../clip_packed_gpu");function i(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:i}=r,{clipValueMin:u,clipValueMax:p}=s;return t=(0,a.env)().getBool("WEBGL_PACK_CLIP")?new(0,l.ClipPackedProgram)(i.shape):new(0,o.ClipProgram)(i.shape),n.runWebGLProgram(t,[i],i.dtype,[[u],[p]])}let u={kernelName:a.ClipByValue,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../clip_gpu":"10VVT","../clip_packed_gpu":"3qtEI","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"10VVT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ClipProgram",()=>a);class a{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(); if (isnan(value)) { setOutput(value); return; } setOutput(clamp(value, minVal, maxVal)); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3qtEI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ClipPackedProgram",()=>a);class a{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(); if (any(isnan(value))) { setOutput(value); return; } setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gZbzn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"complexAbs",()=>i),s.export(r,"complexAbsConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../complex_abs_gpu");function l(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}function i(e){let{inputs:t,backend:r}=e,{x:n}=t,s=r.texData.get(n.dataId),a=new(0,o.ComplexAbsProgram)(n.shape),i=[l(n,s.complexTensorInfos.real),l(n,s.complexTensorInfos.imag)];return r.runWebGLProgram(a,i,i[0].dtype)}let u={kernelName:a.ComplexAbs,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../complex_abs_gpu":"5nlPA","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5nlPA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ComplexAbsProgram",()=>a);class a{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); float mx = max(re, im); // sadly the length function in glsl is not underflow-safe // (at least not on Intel GPUs). So the safe solution is // to ensure underflow-safety in all cases. setOutput( mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4EIsT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat",()=>i),s.export(r,"concatConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./Concat_impl"),l=e("./Identity");function i(e){let{inputs:t,backend:r,attrs:n}=e,{axis:s}=n,i=a.util.parseAxisParam(s,t[0].shape)[0],u=t.map(e=>e.shape);a.backend_util.assertParamsConsistent(u,i);let p=a.backend_util.computeOutShape(t.map(e=>e.shape),i);if(0===a.util.sizeFromShape(p))return r.makeTensorInfo(p,t[0].dtype,[]);let c=t.filter(e=>a.util.sizeFromShape(e.shape)>0);return 1===c.length?(0,l.identity)({inputs:{x:c[0]},backend:r}):(0,o.concatImpl)(c,i,r)}let u={kernelName:a.Concat,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","./Concat_impl":"9oWks","./Identity":"eH68D","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9oWks":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concatImpl",()=>function e(t,r,n){var s,m,g;let x,v=t[0].dtype;if("complex64"===v){let s=t.map(e=>(0,f.real)({inputs:{input:e},backend:n})),a=t.map(e=>(0,d.imag)({inputs:{input:e},backend:n})),o=e(s,r,n),l=e(a,r,n),i=(0,c.complex)({inputs:{real:o,imag:l},backend:n});return s.forEach(e=>n.disposeIntermediateTensorInfo(e)),a.forEach(e=>n.disposeIntermediateTensorInfo(e)),n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),i}let y=n.shouldExecuteOnCPU(t);if("string"===v&&(y=!0),y){let e=t.map(e=>{let t=a.util.sizeFromShape(e.shape.slice(r));return(0,h.reshape)({inputs:{x:e},backend:n,attrs:{shape:[-1,t]}})}),s=e.map(e=>({vals:n.readSync(e.dataId),shape:e.shape})),o=a.backend_util.computeOutShape(e.map(e=>e.shape),1),l=1===e[0].shape[0],u=(0,i.concatImplCPU)(s,o,v,l),p=a.backend_util.computeOutShape(t.map(e=>e.shape),r),c=n.makeTensorInfo(p,v,u);return e.forEach(e=>n.disposeIntermediateTensorInfo(e)),c}let _=t.filter(e=>a.util.sizeFromShape(e.shape)>0),b=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&_[0].shape.length>1;if(1===_.length){let e=b?new(0,u.UnaryOpProgram)(t[0].shape,u.CLONE):new(0,p.UnaryOpPackedProgram)(t[0].shape,u.CLONE);return n.runWebGLProgram(e,t,v)}let k=(0,a.env)().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(_.length>k){let t=[];for(let s=0;s<_.length;s+=k){let a=_.slice(s,s+k);t.push(e(a,r,n))}let s=e(t,r,n);for(let e of t)n.disposeIntermediateTensorInfo(e);return s}if(b){let e=new(0,l.ConcatPackedProgram)(_.map(e=>e.shape),r);return n.runWebGLProgram(e,_,v)}let{tensors2D:T,outShape:w}=(s=_,m=r,g=n,x=a.backend_util.computeOutShape(s.map(e=>e.shape),m),{tensors2D:s.map(e=>(0,h.reshape)({inputs:{x:e},attrs:{shape:[-1,a.util.sizeFromShape(e.shape.slice(m))]},backend:g})),outShape:x}),I=new(0,o.ConcatProgram)(T.map(e=>e.shape)),j=n.runWebGLProgram(I,T,v);T.forEach(e=>n.disposeIntermediateTensorInfo(e));let C=(0,h.reshape)({inputs:{x:j},attrs:{shape:w},backend:n});return n.disposeIntermediateTensorInfo(j),C});var a=e("@tensorflow/tfjs-core"),o=e("../concat_gpu"),l=e("../concat_packed_gpu"),i=e("../kernel_utils/shared"),u=e("../unaryop_gpu"),p=e("../unaryop_packed_gpu"),c=e("./Complex"),d=e("./Imag"),f=e("./Real"),h=e("./Reshape")},{"@tensorflow/tfjs-core":"hADTC","../concat_gpu":"bS8z6","../concat_packed_gpu":"4vhSy","../kernel_utils/shared":"awGPZ","../unaryop_gpu":"dKkzg","../unaryop_packed_gpu":"5kSmi","./Complex":"2jgL8","./Imag":"lIWnW","./Real":"hXKZs","./Reshape":"6JJRX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bS8z6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ConcatProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e){this.outputShape=[],this.outputShape=a.backend_util.computeOutShape(e,1),this.variableNames=e.map((e,t)=>`T${t}`);let t=Array(e.length-1);t[0]=e[0][1];for(let r=1;r<t.length;r++)t[r]=t[r-1]+e[r][1];let r=[`if (yC < ${t[0]}) setOutput(getT0(yR, yC));`];for(let e=1;e<t.length;e++){let n=t[e-1];r.push(`else if (yC < ${t[e]}) setOutput(getT${e}(yR, yC-${n}));`)}let n=t.length,s=t[t.length-1];r.push(`else setOutput(getT${n}(yR, yC-${s}));`),this.userCode=` void main() { ivec2 coords = getOutputCoords(); int yR = coords.x; int yC = coords.y; ${r.join("\n ")} } `}}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4vhSy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ConcatPackedProgram",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./packing_util"),l=e("./shader_compiler");class i{constructor(e,t){this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[],this.outputShape=a.backend_util.computeOutShape(e,t);let r=this.outputShape,n=r.length,s=(0,l.getCoordsDataType)(n),i=(0,o.getChannels)("coords",n),p=["x","y","z","w","u","v"].slice(0,n);this.variableNames=e.map((e,t)=>`T${t}`);let c=Array(e.length-1);c[0]=e[0][t];for(let r=1;r<c.length;r++)c[r]=c[r-1]+e[r][t];let d=p[t],f=p.slice(-2),h=p.join(),m=`if (${d} < ${c[0]}) { return getChannel( getT0(${h}), vec2(${f.join()})); }`;for(let e=1;e<c.length;e++){let t=c[e-1];m+=` if (${d} < ${c[e]} && ${d} >= ${c[e-1]}) { return getChannel( getT${e}(${u(p,d,t)}), vec2(${u(f,d,t)})); }`}let g=c.length,x=c[c.length-1];m+=` return getChannel( getT${g}(${u(p,d,x)}), vec2(${u(f,d,x)}));`,this.userCode=` float getValue(${p.map(e=>"int "+e)}) { ${m} } void main() { ${s} coords = getOutputCoords(); vec4 result = vec4(getValue(${i}), 0., 0., 0.); ${i[n-1]} = ${i[n-1]} + 1; if (${i[n-1]}< ${r[n-1]}) { result.g = getValue(${i}); } ${i[n-2]} = ${i[n-2]} + 1; if (${i[n-2]} < ${r[n-2]}) { result.a = getValue(${i}); } ${i[n-1]} = ${i[n-1]} - 1; if (${i[n-2]} < ${r[n-2]} && ${i[n-1]} < ${r[n-1]}) { result.b = getValue(${i}); } setOutput(result); } `}}function u(e,t,r){let n=e.indexOf(t);return e.map((e,t)=>t===n?`${e} - ${r}`:e).join()}},{"@tensorflow/tfjs-core":"hADTC","./packing_util":"gX790","./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lIWnW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"imag",()=>l),s.export(r,"imagConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Identity");function l(e){let{inputs:t,backend:r}=e,{input:n}=t,s=r.texData.get(n.dataId);return(0,o.identity)({inputs:{x:s.complexTensorInfos.imag},backend:r})}let i={kernelName:a.Imag,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./Identity":"eH68D","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7OelL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2d",()=>p),s.export(r,"conv2DConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu"),l=e("../conv_packed_gpu"),i=e("./Conv2D_impl"),u=e("./Reshape");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p,filter:c}=r,{strides:d,pad:f,dataFormat:h,dilations:m,dimRoundingMode:g}=s,x=a.backend_util.convertConv2DDataFormat(h),v=a.backend_util.computeConv2DInfo(p.shape,c.shape,d,m,f,g,!1,x);if(1===v.filterHeight&&1===v.filterWidth&&1===v.dilationHeight&&1===v.dilationWidth&&1===v.strideHeight&&1===v.strideWidth&&("SAME"===v.padInfo.type||"VALID"===v.padInfo.type))t=(0,i.conv2dByMatMul)({x:p,filter:c,convInfo:v,backend:n});else if(v.strideWidth<=2&&"channelsLast"===x&&(0,a.env)().getBool("WEBGL_EXP_CONV")){let e=new(0,l.Conv2DPackedProgram)(v),r=[[v.padInfo.top,v.padInfo.left],[v.strideHeight,v.strideWidth],[v.dilationHeight,v.dilationWidth],[v.inHeight,v.inWidth]];t=n.runWebGLProgram(e,[p,c],"float32",r)}else if((0,a.env)().getBool("WEBGL_CONV_IM2COL"))t=(0,i.conv2dWithIm2Row)({x:p,filter:c,convInfo:v,backend:n});else{let e=new(0,o.Conv2DProgram)(v);t=n.runWebGLProgram(e,[p,c],"float32")}let y=(0,u.reshape)({inputs:{x:t},backend:n,attrs:{shape:v.outShape}});return n.disposeIntermediateTensorInfo(t),y}let c={kernelName:a.Conv2D,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../conv_gpu":"e94Ho","../conv_packed_gpu":"crrN0","./Conv2D_impl":"3YhXn","./Reshape":"6JJRX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],e94Ho:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Conv2DProgram",()=>a),s.export(r,"Conv3DProgram",()=>o);class a{constructor(e,t=!1,r=null,n=!1,s=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let a=e.padInfo.top,o=e.padInfo.left,l=e.strideHeight,i=e.strideWidth,u=e.dilationHeight,p=e.dilationWidth,c=e.filterHeight,d=e.filterWidth,f=4*Math.floor(e.inChannels/4),h=e.inChannels%4,m="channelsLast"===e.dataFormat,g="",x="";r&&(g=n?`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${r} }`:s?`float activation(float a) { float b = getLeakyreluAlphaAtOutCoords(); ${r} }`:` float activation(float x) { ${r} } `,x="result = activation(result);"),t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` ${g} const ivec2 strides = ivec2(${l}, ${i}); const ivec2 pads = ivec2(${a}, ${o}); void main() { ivec4 coords = getOutputCoords(); int batch = coords[0]; int d2 = coords[${m?3:1}]; ivec2 xRCCorner = ivec2(coords[${m?1:2}], coords[${m?2:3}]) * strides - pads; int xRCorner = xRCCorner.x; int xCCorner = xRCCorner.y; // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2). // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; for (int wR = 0; wR< ${c}; wR++) { int xR = xRCorner + wR * ${u}; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int wC = 0; wC< ${d}; wC++) { int xC = xCCorner + wC * ${p}; if (xC < 0 || xC >= ${e.inWidth}) { continue; } for (int d1 = 0; d1< ${f}; d1 += 4) { vec4 wValues = vec4( getW(wR, wC, d1, d2), getW(wR, wC, d1 + 1, d2), getW(wR, wC, d1 + 2, d2), getW(wR, wC, d1 + 3, d2) ); if (${m}) { vec4 xValues = vec4( getX(batch, xR, xC, d1), getX(batch, xR, xC, d1 + 1), getX(batch, xR, xC, d1 + 2), getX(batch, xR, xC, d1 + 3) ); dotProd += dot(xValues, wValues); } else { vec4 xValues = vec4( getX(batch, d1, xR, xC), getX(batch, d1 + 1, xR, xC), getX(batch, d1 + 2, xR, xC), getX(batch, d1 + 3, xR, xC) ); dotProd += dot(xValues, wValues); } } if (${1===h}) { if (${m}) { dotProd += getX(batch, xR, xC, ${f}) * getW(wR, wC, ${f}, d2); } else { dotProd += getX(batch, ${f}, xR, xC) * getW(wR, wC, ${f}, d2); } } else if (${2===h}) { vec2 wValues = vec2( getW(wR, wC, ${f}, d2), getW(wR, wC, ${f} + 1, d2) ); if (${m}) { vec2 xValues = vec2( getX(batch, xR, xC, ${f}), getX(batch, xR, xC, ${f} + 1) ); dotProd += dot(xValues, wValues); } else { vec2 xValues = vec2( getX(batch, ${f}, xR, xC), getX(batch, ${f} + 1, xR, xC) ); dotProd += dot(xValues, wValues); } } else if (${3===h}) { vec3 wValues = vec3( getW(wR, wC, ${f}, d2), getW(wR, wC, ${f} + 1, d2), getW(wR, wC, ${f} + 2, d2) ); if (${m}) { vec3 xValues = vec3( getX(batch, xR, xC, ${f}), getX(batch, xR, xC, ${f} + 1), getX(batch, xR, xC, ${f} + 2) ); dotProd += dot(xValues, wValues); } else { vec3 xValues = vec3( getX(batch, ${f}, xR, xC), getX(batch, ${f} + 1, xR, xC), getX(batch, ${f} + 2, xR, xC) ); dotProd += dot(xValues, wValues); } } } } float result = dotProd; ${t?"result += getBiasAtOutCoords();":""} ${x} setOutput(result); } `}}class o{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,r=e.padInfo.top,n=e.padInfo.left,s=e.strideDepth,a=e.strideHeight,o=e.strideWidth,l=e.dilationDepth,i=e.dilationHeight,u=e.dilationWidth,p=e.filterDepth,c=e.filterHeight,d=e.filterWidth,f=4*Math.floor(e.inChannels/4),h=e.inChannels%4;this.userCode=` const ivec3 strides = ivec3(${s}, ${a}, ${o}); const ivec3 pads = ivec3(${t}, ${r}, ${n}); void main() { ivec5 coords = getOutputCoords(); int batch = coords.x; int d2 = coords.u; ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; int xFCorner = xFRCCorner.x; int xRCorner = xFRCCorner.y; int xCCorner = xFRCCorner.z; // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get // y(yF, yR, yC, d2). ? = to be determined. : = across all // values in that axis. float dotProd = 0.0; for (int wF = 0; wF < ${p}; wF++) { int xF = xFCorner + wF * ${l}; if (xF < 0 || xF >= ${e.inDepth}) { continue; } for (int wR = 0; wR< ${c}; wR++) { int xR = xRCorner + wR * ${i}; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int wC = 0; wC< ${d}; wC++) { int xC = xCCorner + wC * ${u}; if (xC < 0 || xC >= ${e.inWidth}) { continue; } for (int d1 = 0; d1< ${f}; d1 += 4) { vec4 xValues = vec4( getX(batch, xF, xR, xC, d1), getX(batch, xF, xR, xC, d1 + 1), getX(batch, xF, xR, xC, d1 + 2), getX(batch, xF, xR, xC, d1 + 3) ); vec4 wValues = vec4( getW(wF, wR, wC, d1, d2), getW(wF, wR, wC, d1 + 1, d2), getW(wF, wR, wC, d1 + 2, d2), getW(wF, wR, wC, d1 + 3, d2) ); dotProd += dot(xValues, wValues); } if (${1===h}) { dotProd += getX(batch, xF, xR, xC, ${f}) * getW(wF, wR, wC, ${f}, d2); } else if (${2===h}) { vec2 xValues = vec2( getX(batch, xF, xR, xC, ${f}), getX(batch, xF, xR, xC, ${f} + 1) ); vec2 wValues = vec2( getW(wF, wR, wC, ${f}, d2), getW(wF, wR, wC, ${f} + 1, d2) ); dotProd += dot(xValues, wValues); } else if (${3===h}) { vec3 xValues = vec3( getX(batch, xF, xR, xC, ${f}), getX(batch, xF, xR, xC, ${f} + 1), getX(batch, xF, xR, xC, ${f} + 2) ); vec3 wValues = vec3( getW(wF, wR, wC, ${f}, d2), getW(wF, wR, wC, ${f} + 1, d2), getW(wF, wR, wC, ${f} + 2, d2) ); dotProd += dot(xValues, wValues); } } } } setOutput(dotProd); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],crrN0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Conv2DPackedProgram",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_math");class l{constructor(e,t=!1,r=null,n=!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=e.outShape,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);let l=e.padInfo.left,i=e.strideWidth,u=e.dilationWidth,p=e.filterHeight,c=e.filterWidth,d=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let e=0;e<c;e++)d+=` vec4 xTexelC${2*e}; int xTexelC${2*e}Ready; vec4 xTexelC${2*e+1}; int xTexelC${2*e+1}Ready; vec4 xC${e};`;d+=` for (int r = 0; r < ${p}; r++) { for (int d1 = 0; d1 < ${e.inChannels}; d1 += 2) { `;for(let e=0;e<c;e++)d+=` xTexelC${2*e} = vec4(0.0); xTexelC${2*e}Ready = 0; xTexelC${2*e+1} = vec4(0.0); xTexelC${2*e+1}Ready = 0; xC${e} = vec4(0.0);`;d+=` xR = xRCorner + r * dilations[0]; if (xR >=0 && xR< inDims[0]) { `;for(let t=0;t<(c+1)/2;t++){let r=2*t;if(d+=` xC = xCCorner + ${r*u}; `,1===i){if(r<c&&(l%2==1?(d+=` xCOffset = xC + 1; if (xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${r}Ready == 0) { xTexelC${r} = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xCOffset + 1 >= inDims[1]) { xTexelC${r}.zw = vec2(0.0); } xTexelC${r}Ready = 1; } `,1===u&&r>0?d+=` xC${r} = vec4(xTexelC${r-2}.zw, xTexelC${r}.xy); `:d+=` xCOffset = xC + 1 - 2; if (xCOffset >= 0 && xCOffset< inDims[1]) { previous = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xCOffset + 1 >= inDims[1]) { previous.zw = vec2(0.0); } xC${r} = vec4(previous.zw, xTexelC${r}.xy); } else { xC${r} = vec4(0.0, 0.0, xTexelC${r}.xy); } `):d+=` if (xC >= 0 && xC< inDims[1] && xTexelC${r}Ready == 0) { xTexelC${r} = getX(batch, xR, xC, d1); if (xC + 1 >= inDims[1]) { xTexelC${r}.zw = vec2(0.0); } xTexelC${r}Ready = 1; } xC${r} = xTexelC${r}; `,r+1<c)){let e=l%2==0?a.util.nearestLargerEven(u):u;u%2==0&&l%2==1||u%2!=0&&l%2!=1?(d+=` xCOffset = xC + imod(pads[1], 2) + ${e}; if (xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${r+1}Ready == 0) { xTexelC${r+1} = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xCOffset + 1 >= inDims[1]) { xTexelC${r+1}.zw = vec2(0.0); } xTexelC${r+1}Ready = 1; } `,u>1?d+=` xCOffset -= 2; if (xCOffset >= 0 && xCOffset< inDims[1]) { previous = getX(batch, xR, xCOffset, d1); xC${r+1} = vec4(previous.zw, xTexelC${r+1}.xy); } else { xC${r+1} = vec4(0.0, 0.0, xTexelC${r+1}.xy); } `:d+=` xC${r+1} = vec4(xTexelC${r}.zw, xTexelC${r+1}.xy); `):1===e?d+=` xC${r+1} = xTexelC${r}; `:d+=` xCOffset = xC + ${e}; if (xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${r+1}Ready == 0) { xTexelC${r+1} = getX(batch, xR, xCOffset, d1); if (xCOffset + 1 >= inDims[1]) { xTexelC${r+1}.zw = vec2(0.0); } xTexelC${r+1}Ready = 1; } xC${r+1} = xTexelC${r+1}; `}}else r<c&&(l%2==1?(d+=` xCOffset = xC + 1 - strides[1]; if(xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${r}Ready == 0) { xTexelC${r} = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xCOffset + 1 >= inDims[1]) { xTexelC${r}.zw = vec2(0.0); } xTexelC${r}Ready = 1; } if(xC + 1 >= 0 && xC + 1< inDims[1] && xTexelC${r+1}Ready == 0) { xTexelC${r+1} = getX(batch, xR, xC + 1, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xC + 2 >= inDims[1]) { xTexelC${r+1}.zw = vec2(0.0); } xTexelC${r+1}Ready = 1; } xC${r} = vec4(xTexelC${r}.zw, xTexelC${r+1}.zw); `,r+1<c&&(d+=` final = vec4(0.0); xCOffset = xC + 1 + strides[1]; if(xCOffset >= 0 && xCOffset< inDims[1]) { final = getX(batch, xR, xCOffset, d1); } xC${r+1} = vec4(xTexelC${r+1}.xy, final.xy); `)):(d+=` if(xC >= 0 && xC< inDims[1] && xTexelC${r}Ready == 0) { xTexelC${r} = getX(batch, xR, xC, d1); if (xC + 1 >= inDims[1]) { xTexelC${r}.zw = vec2(0.0); } xTexelC${r}Ready = 1; } xCOffset = xC + strides[1]; if(xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${r+1}Ready == 0) { xTexelC${r+1} = getX(batch, xR, xCOffset, d1); if (xCOffset + 1 >= inDims[1]) { xTexelC${r+1}.zw = vec2(0.); } xTexelC${r+1}Ready = 1; } xC${r} = vec4( xTexelC${r}.xy, xTexelC${r+1}.xy); `,r+1<c&&(d+=` xC${r+1} = vec4(xTexelC${r}.zw, xTexelC${r+1}.zw); `)));r<c&&(d+=` wTexel = getW(r, ${r}, d1, d2); dotProd += xC${r}.xxzz * vec4(wTexel.xy, wTexel.xy); if(d1 + 1 < ${e.inChannels}) { dotProd += xC${r}.yyww * vec4(wTexel.zw, wTexel.zw); } `,r+1<c&&(d+=` wTexel = getW(r, ${r+1}, d1, d2); dotProd += xC${r+1}.xxzz * vec4(wTexel.xy, wTexel.xy); if(d1 + 1 < ${e.inChannels}) { dotProd += xC${r+1}.yyww * vec4(wTexel.zw, wTexel.zw); } `))}d+=` } } } `;let f="",h="";r&&(f=n?`vec4 activation(vec4 a) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${r} }`:s?`vec4 activation(vec4 a) { vec4 b = getLeakyreluAlphaAtOutCoords(); ${r} }`:`vec4 activation(vec4 x) { ${r} }`,h="result = activation(result);"),t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` ${f} void main() { ivec4 coords = getOutputCoords(); int batch = coords.x; ivec2 xRCCorner = coords.yz * strides - pads; int d2 = coords.w; int xRCorner = xRCCorner.x; int xCCorner = xRCCorner.y; //intialize dotProd with a small epsilon seems to reduce GPU accuracy loss. vec4 dotProd = vec4(0.000000000000001); ${d} vec4 result = dotProd - vec4(0.000000000000001); ${t?"result += getBiasAtOutCoords();":""} ${h} setOutput(result); } `}}},{"@tensorflow/tfjs-core":"hADTC","./gpgpu_math":"aCqaC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3YhXn":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2dByMatMul",()=>h),s.export(r,"conv2dWithIm2Row",()=>m);var a=e("@tensorflow/tfjs-core"),o=e("../im2col_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils"),i=e("../mulmat_packed_gpu"),u=e("../webgl_util"),p=e("./BatchMatMul_impl"),c=e("./Identity"),d=e("./Reshape");function f(e,t){let r=e.length;return r>=3?t?[...e.slice(0,-3),e[r-3]*e[r-2],e[r-1]]:[...e.slice(0,-3),e[r-3],e[r-2]*e[r-1]]:!t&&1===r&&e[0]>1?[e[0],1]:null}function h({x:e,filter:t,convInfo:r,backend:n,bias:s=null,preluActivationWeights:o=null,leakyreluAlpha:l=0,activation:i=null}){let h,m=e.shape,g=n.texData.get(e.dataId),x=r.inChannels,v=m[0]*m[1]*m[2],y=r.outChannels,_="channelsLast"===r.dataFormat,b=[];if(null!=o){let e=f(o.shape,_);null!=e&&(o=(0,d.reshape)({inputs:{x:o},backend:n,attrs:{shape:e}}),b.push(o))}if(null!=s){let e=f(s.shape,_);null!=e&&(s=(0,d.reshape)({inputs:{x:s},backend:n,attrs:{shape:e}}),b.push(s))}if(!((1===v||1===y)&&x>p.MATMUL_SHARED_DIM_THRESHOLD)&&g.isPacked&&_&&null!=g.texture&&m[2]%2!=0&&a.util.arraysEqual(g.shape.slice(-3),m.slice(-3))){let f=m[0]*m[1]*(m[2]+1),x={dataId:e.dataId,shape:[1,f,r.inChannels],dtype:e.dtype},v=g.shape;g.shape=g.shape.slice(),g.shape[g.shape.length-2]++,a.util.assert(u.isReshapeFree(g.shape,x.shape),()=>`packed reshape ${g.shape} to ${x.shape} isn't free`);let y=(0,d.reshape)({inputs:{x:t},backend:n,attrs:{shape:[1,r.inChannels,r.outChannels]}});b.push(y);let _=(0,p.batchMatMulImpl)({a:x,b:y,backend:n,transposeA:!1,transposeB:!1,bias:s,activation:i,preluActivationWeights:o,leakyreluAlpha:l}),k=n.texData.get(_.dataId);a.util.assert(k.isPacked,()=>"batchMatMul result is expected to be packed"),g.shape=v,k.shape=r.outShape,(h=(0,c.identity)({inputs:{x:_},backend:n})).shape=r.outShape,b.push(_)}else{let a=r.outHeight*r.outWidth,u=(0,d.reshape)({inputs:{x:e},backend:n,attrs:{shape:_?[r.batchSize,a,r.inChannels]:[r.batchSize,r.inChannels,a]}}),c=(0,d.reshape)({inputs:{x:t},backend:n,attrs:{shape:[1,r.inChannels,r.outChannels]}}),f=(0,p.batchMatMulImpl)({a:_?u:c,b:_?c:u,transposeA:!_,transposeB:!1,backend:n,bias:s,activation:i,preluActivationWeights:o,leakyreluAlpha:l});h=(0,d.reshape)({inputs:{x:f},backend:n,attrs:{shape:r.outShape}}),b.push(u),b.push(c),b.push(f)}for(let e of b)n.disposeIntermediateTensorInfo(e);return h}function m({x:e,filter:t,convInfo:r,backend:n,bias:s=null,preluActivationWeights:u=null,leakyreluAlpha:p=0,activation:c=null}){let{filterWidth:h,filterHeight:m,inChannels:g,outWidth:x,outHeight:v,dataFormat:y}=r,_="channelsLast"===y,b=h*m*g,k=v*x,T=[r.batchSize,b,k],w=[];if(null!=u){let e=f(u.shape,_);null!=e&&(u=(0,d.reshape)({inputs:{x:u},backend:n,attrs:{shape:e}}),w.push(u))}if(null!=s){let e=f(s.shape,_);null!=e&&(s=(0,d.reshape)({inputs:{x:s},backend:n,attrs:{shape:e}}),w.push(s))}let I=(0,d.reshape)({inputs:{x:t},backend:n,attrs:{shape:[1,b,a.util.sizeFromShape(t.shape)/b]}});w.push(I);let j=new(0,o.Im2ColPackedProgram)(T,r),C=[e.shape,[r.padInfo.top,r.padInfo.left],[r.strideHeight,r.strideWidth],[r.dilationHeight,r.dilationWidth],[r.inChannels],[r.filterWidth*r.inChannels],[r.outWidth]],N=n.runWebGLProgram(j,[e],"float32",C),S=(0,d.reshape)({inputs:{x:N},backend:n,attrs:{shape:T}});w.push(N),w.push(S);let E=null!=s,A=null!=u,F="leakyrelu"===c,R=c?(0,l.mapActivationToShaderProgram)(c,!0):null,D=new(0,i.MatMulPackedProgram)(_?S.shape:I.shape,_?I.shape:S.shape,_?[r.batchSize,k,r.outChannels]:[r.batchSize,r.outChannels,k],!0,!1,E,R,A,F),P=_?[S,I]:[I,S];if(s&&P.push(s),A&&P.push(u),F){let e=n.makeTensorInfo([],"float32",a.util.createScalarValue(p,"float32"));P.push(e),w.push(e)}let $=n.runWebGLProgram(D,P,"float32"),M=(0,d.reshape)({inputs:{x:$},backend:n,attrs:{shape:r.outShape}});for(let e of(w.push($),w))n.disposeIntermediateTensorInfo(e);return M}},{"@tensorflow/tfjs-core":"hADTC","../im2col_packed_gpu":"5yoWf","../kernel_utils/kernel_funcs_utils":"eRfJh","../mulmat_packed_gpu":"dESVa","../webgl_util":"hSqB7","./BatchMatMul_impl":"11rB3","./Identity":"eH68D","./Reshape":"6JJRX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5yoWf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Im2ColPackedProgram",()=>l);var a=e("./glsl_version"),o=e("./gpgpu_math");class l{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec4"},{name:"pad",type:"ivec2"},{name:"stride",type:"ivec2"},{name:"dilation",type:"ivec2"},{name:"inChannels",type:"int"},{name:"itemsPerBlockRow",type:"int"},{name:"outWidth",type:"int"}],this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);let{dataFormat:r}=t,n=(0,a.getGlslDifferences)(),s="channelsLast"===r,l=s?1:2,i=s?2:3,u=this.enableShapeUniforms?"if(blockIndex< outShape[2] && pos < outShape[1]) {":`if(blockIndex < ${e[2]} && pos < ${e[1]}) {`,p="";for(let e=0;e<=1;e++)for(let t=0;t<=1;t++)p+=` blockIndex = rc.z + ${t}; pos = rc.y + ${e}; ${u} offsetY = int(blockIndex / outWidth) * stride[0] - pad[0]; d0 = offsetY + dilation[0] * (pos / itemsPerBlockRow); if(d0 < inputShape[${l}] && d0 >= 0) { // Use custom imod instead mod. On Intel GPU, mod may generate // unexpected value. // https://github.com/tensorflow/tfjs/issues/5447 offsetX = imod(blockIndex, outWidth) * stride[1] - pad[1]; d1 = offsetX + dilation[1] * (imod(pos, itemsPerBlockRow) / inChannels); if(d1< inputShape[${i}] && d1 >= 0) { ch = imod(pos, inChannels); if (${s}) { innerDims = vec2(d1, ch); result[${2*e+t}] = getChannel( getA(rc.x, d0, int(innerDims.x), int(innerDims.y)), innerDims); } else { innerDims = vec2(d0, d1); result[${2*e+t}] = getChannel( getA(rc.x, ch, int(innerDims.x), int(innerDims.y)), innerDims); } } } } `;this.userCode=` void main() { ivec3 rc = getOutputCoords(); vec4 result = vec4(0); int blockIndex, pos, offsetY, d0, offsetX, d1, ch; vec2 innerDims; ${p} ${n.output} = result; } `}}},{"./glsl_version":"5v0d7","./gpgpu_math":"aCqaC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],icoxO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropFilter",()=>l),s.export(r,"conv2DBackpropFilterConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,pad:u,dataFormat:p,dimRoundingMode:c,filterShape:d}=n,f=a.backend_util.convertConv2DDataFormat(p),h=a.backend_util.computeConv2DInfo(s.shape,d,i,1,u,c,!1,f),m=new(0,o.Conv2DDerFilterProgram)(h);return r.runWebGLProgram(m,[s,l],"float32")}let i={kernelName:a.Conv2DBackpropFilter,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../conv_backprop_gpu":"e7iMB","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],e7iMB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Conv2DDerFilterProgram",()=>a),s.export(r,"Conv2DDerInputProgram",()=>o),s.export(r,"Conv3DDerFilterProgram",()=>l),s.export(r,"Conv3DDerInputProgram",()=>i);class a{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,r=e.strideWidth,n=e.padInfo.top,s=e.padInfo.left,a="channelsLast"===e.dataFormat;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; int wC = coords.y; int d1 = coords.z; int d2 = coords.w; // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2). // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; for (int b = 0; b< ${e.batchSize}; b++) { for (int yR = 0; yR < ${e.outHeight}; yR++) { int xR = wR + yR * ${t} - ${n}; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int yC = 0; yC< ${e.outWidth}; yC++) { int xC = wC + yC * ${r} - ${s}; if (xC < 0 || xC >= ${e.inWidth}) { continue; } ${a?`float dyValue = getDy(b, yR, yC, d2); float xValue = getX(b, xR, xC, d1); dotProd += (xValue * dyValue);`:`float dyValue = getDy(b, d2, yR, yC); float xValue = getX(b, d1, xR, xC); dotProd += (xValue * dyValue);`} } } } setOutput(dotProd); } `}}class o{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,r=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a="channelsLast"===e.dataFormat,o=t-1-e.padInfo.top,l=r-1-e.padInfo.left;this.userCode=` const ivec2 pads = ivec2(${o}, ${l}); void main() { ivec4 coords = getOutputCoords(); int batch = coords[0]; int d1 = coords[${a?3:1}]; ivec2 dyCorner = ivec2(coords[${a?1:2}], coords[${a?2:3}]) - pads; int dyRCorner = dyCorner.x; int dyCCorner = dyCorner.y; // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1). // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; for (int wR = 0; wR< ${t}; wR++) { float dyR = float(dyRCorner + wR) / ${n}.0; if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { continue; } int idyR = int(dyR); int wRPerm = ${t} - 1 - wR; for (int wC = 0; wC< ${r}; wC++) { float dyC = float(dyCCorner + wC) / ${s}.0; if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || fract(dyC) > 0.0) { continue; } int idyC = int(dyC); int wCPerm = ${r} - 1 - wC; for (int d2 = 0; d2< ${e.outChannels}; d2++) { if (${a}) { float xValue = getDy(batch, idyR, idyC, d2); float wValue = getW(wRPerm, wCPerm, d1, d2); dotProd += xValue * wValue; } else { float xValue = getDy(batch, d2, idyR, idyC); float wValue = getW(wRPerm, wCPerm, d1, d2); dotProd += xValue * wValue; } } } } setOutput(dotProd); } `}}class l{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,r=e.strideHeight,n=e.strideWidth,s=e.padInfo.front,a=e.padInfo.top,o=e.padInfo.left;this.userCode=` void main() { ivec5 coords = getOutputCoords(); int wF = coords.x; int wR = coords.y; int wC = coords.z; int d1 = coords.w; int d2 = coords.u; float dotProd = 0.0; for (int b = 0; b < ${e.batchSize}; b++) { for (int yF = 0; yF < ${e.outDepth}; yF++) { int xF = wF + yF * ${t} - ${s}; if (xF < 0 || xF >= ${e.inDepth}) { continue; } for (int yR = 0; yR< ${e.outHeight}; yR++) { int xR = wR + yR * ${r} - ${a}; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int yC = 0; yC< ${e.outWidth}; yC++) { int xC = wC + yC * ${n} - ${o}; if (xC < 0 || xC >= ${e.inWidth}) { continue; } float dyValue = getDy(b, yF, yR, yC, d2); float xValue = getX(b, xF, xR, xC, d1); dotProd += (xValue * dyValue); } } } } setOutput(dotProd); } `}}class i{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,r=e.filterHeight,n=e.filterWidth,s=e.strideDepth,a=e.strideHeight,o=e.strideWidth,l=t-1-e.padInfo.front,i=r-1-e.padInfo.top,u=n-1-e.padInfo.left;this.userCode=` const ivec3 pads = ivec3(${l}, ${i}, ${u}); void main() { ivec5 coords = getOutputCoords(); int batch = coords.x; int d1 = coords.u; ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; int dyFCorner = dyCorner.x; int dyRCorner = dyCorner.y; int dyCCorner = dyCorner.z; float dotProd = 0.0; for (int wF = 0; wF< ${t}; wF++) { float dyF = float(dyFCorner + wF) / ${s}.0; if (dyF < 0.0 || dyF >= ${e.outDepth}.0 || fract(dyF) > 0.0) { continue; } int idyF = int(dyF); int wFPerm = ${t} - 1 - wF; for (int wR = 0; wR< ${r}; wR++) { float dyR = float(dyRCorner + wR) / ${a}.0; if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { continue; } int idyR = int(dyR); int wRPerm = ${r} - 1 - wR; for (int wC = 0; wC< ${n}; wC++) { float dyC = float(dyCCorner + wC) / ${o}.0; if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || fract(dyC) > 0.0) { continue; } int idyC = int(dyC); int wCPerm = ${n} - 1 - wC; for (int d2 = 0; d2< ${e.outChannels}; d2++) { float xValue = getDy(batch, idyF, idyR, idyC, d2); float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2); dotProd += xValue * wValue; } } } } setOutput(dotProd); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cuDGO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropInput",()=>i),s.export(r,"conv2DBackpropInputConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu"),l=e("../conv_backprop_packed_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:i}=t,{inputShape:u,strides:p,pad:c,dataFormat:d,dimRoundingMode:f}=n,h=a.backend_util.convertConv2DDataFormat(d),m=a.backend_util.computeConv2DInfo(u,i.shape,p,1,c,f,!1,h);if((0,a.env)().getBool("WEBGL_PACK_CONV2DTRANSPOSE")&&"channelsLast"===h){let e=[[m.strideHeight,m.strideWidth]],t=new(0,l.Conv2DDerInputPackedProgram)(m);return r.runWebGLProgram(t,[s,i],"float32",e)}{let e=new(0,o.Conv2DDerInputProgram)(m);return r.runWebGLProgram(e,[s,i],"float32")}}let u={kernelName:a.Conv2DBackpropInput,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../conv_backprop_gpu":"e7iMB","../conv_backprop_packed_gpu":"5Aqjf","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5Aqjf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Conv2DDerInputPackedProgram",()=>o);var a=e("./gpgpu_math");class o{constructor(e){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=e.inShape,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);let t=e.filterHeight,r=e.filterWidth,n=t-1-e.padInfo.top,s=r-1-e.padInfo.left;this.userCode=` const ivec2 pads = ivec2(${n}, ${s}); void main() { ivec4 coords = getOutputCoords(); int batch = coords[0]; int d1 = coords[3]; ivec2 dyCorner = ivec2(coords[1], coords[2]) - pads; int dyRCorner = dyCorner.x; int dyCCorner = dyCorner.y; vec4 result = vec4(0.); for (int wR = 0; wR< ${t}; wR++) { float dyR = float(dyRCorner + wR) / strides[0]; if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { continue; } int idyR = int(dyR); int wRPerm = ${t} - 1 - wR; for (int wC = 0; wC< ${r}; wC++) { int wCPerm = ${r} - 1 - wC; float dyC = float(dyCCorner + wC) / strides[1]; bool idyCVal = (dyC >= 0.0) && (dyC< ${e.outWidth}.0) && (fract(dyC) == 0.0); int idyC = int(dyC); float dyC2 = float(dyCCorner + wC + 1) / strides[1]; bool idyCVal2 = (dyC2 >= 0.0) && (dyC2< ${e.outWidth}.0) && (fract(dyC2) == 0.0); int idyC2 = int(dyC2); if (idyCVal && idyCVal2) { for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) { vec4 wValue = getW(wRPerm, wCPerm, d1, d2); vec4 dySample = getDy(batch, idyR, idyC, d2); vec4 dySample2 = (idyC / 2 == idyC2 / 2) ? dySample : getDy(batch, idyR, idyC2, d2); vec2 dyValue = mod(float(idyC), 2.) == 0. ? dySample.xy : dySample.zw; result.xy += vec2(dot(dyValue, wValue.xy), dot(dyValue, wValue.zw)); dyValue = mod(float(idyC2), 2.) == 0. ? dySample2.xy : dySample2.zw; result.zw += vec2(dot(dyValue, wValue.xy), dot(dyValue, wValue.zw)); } } else if (idyCVal) { for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) { vec4 wValue = getW(wRPerm, wCPerm, d1, d2); vec4 dySample = getDy(batch, idyR, idyC, d2); vec2 dyValue = mod(float(idyC), 2.) == 0. ? dySample.xy : dySample.zw; result.xy += vec2(dot(dyValue, wValue.xy), dot(dyValue, wValue.zw)); } } else if (idyCVal2) { for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) { vec4 wValue = getW(wRPerm, wCPerm, d1, d2); vec4 dySample = getDy(batch, idyR, idyC2, d2); vec2 dyValue = mod(float(idyC2), 2.) == 0. ? dySample.xy : dySample.zw; result.zw += vec2(dot(dyValue, wValue.xy), dot(dyValue, wValue.zw)); } } } } setOutput(result); } `}}},{"./gpgpu_math":"aCqaC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9vocp":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3D",()=>l),s.export(r,"conv3DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:l}=t,{strides:i,pad:u,dilations:p}=n,c=a.backend_util.computeConv3DInfo(s.shape,l.shape,i,p,u),d=new(0,o.Conv3DProgram)(c);return r.runWebGLProgram(d,[s,l],"float32")}let i={kernelName:a.Conv3D,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../conv_gpu":"e94Ho","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aUm6h:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3DBackpropFilterV2",()=>l),s.export(r,"conv3DBackpropFilterV2Config",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,pad:u,filterShape:p}=n,c=a.backend_util.computeConv3DInfo(s.shape,p,i,1,u),d=new(0,o.Conv3DDerFilterProgram)(c);return r.runWebGLProgram(d,[s,l],"float32")}let i={kernelName:a.Conv3DBackpropFilterV2,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../conv_backprop_gpu":"e7iMB","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ed3i7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3DBackpropInput",()=>l),s.export(r,"conv3DBackpropInputConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{pad:i,strides:u,inputShape:p}=n,c=a.backend_util.computeConv3DInfo(p,l.shape,u,1,i),d=new(0,o.Conv3DDerInputProgram)(c);return r.runWebGLProgram(d,[s,l],"float32")}let i={kernelName:a.Conv3DBackpropInputV2,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../conv_backprop_gpu":"e7iMB","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hISJD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cos",()=>p),s.export(r,"cosConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils");let i=l.CHECK_NAN_SNIPPET_UNARY+` return cos(x); `,u=` vec4 result = cos(x); bvec4 isNaN = isnan(x); ${o.CHECK_NAN_SNIPPET_PACKED} return result; `,p=(0,l.unaryKernelFunc)({opSnippet:i,packedOpSnippet:u}),c={kernelName:a.Cos,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../binaryop_packed_gpu":"fwruC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fCz01:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cosh",()=>i),s.export(r,"coshConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; `,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Cosh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aB6ZH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cropAndResize",()=>l),s.export(r,"cropAndResizeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../crop_and_resize_gpu");let l=e=>{let{inputs:t,backend:r,attrs:n}=e,{image:s,boxes:a,boxInd:l}=t,{cropSize:i,method:u,extrapolationValue:p}=n,c=new(0,o.CropAndResizeProgram)(s.shape,a.shape,i,u,p);return r.runWebGLProgram(c,[s,a,l],"float32")},i={kernelName:a.CropAndResize,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../crop_and_resize_gpu":"2Leic","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2Leic":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CropAndResizeProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[a,o,l,i]=e,[u]=t,[p,c]=r;this.outputShape=[u,p,c,i];let[d,f]=[`${o-1}.0`,`${l-1}.0`],[h,m,g]=p>1?[`${(o-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[x,v,y]=c>1?[`${(l-1)/(c-1)}`,"(x2-x1) * width_ratio",`x1*${f} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${f}`];this.userCode=` const float height_ratio = float(${h}); const float width_ratio = float(${x}); void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int y = coords[1]; int x = coords[2]; int d = coords[3]; // get box vals float y1 = getBoxes(b,0); float x1 = getBoxes(b,1); float y2 = getBoxes(b,2); float x2 = getBoxes(b,3); // get image in batch index int bInd = round(getBoxInd(b)); if(bInd< 0 || bInd >= ${a}) { return; } float height_scale = ${m}; float width_scale = ${v}; float in_y = ${g}; if( in_y< 0.0 || in_y >${d} ) { setOutput(float(${s})); return; } float in_x = ${y}; if( in_x< 0.0 || in_x >${f} ) { setOutput(float(${s})); return; } vec2 sourceFracIndexCR = vec2(in_x,in_y); if(${+("bilinear"===n)} == 1) { // Compute the four integer indices. ivec2 sourceFloorCR = ivec2(sourceFracIndexCR); ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR)); float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d); float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d); float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d); float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d); vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR); float top = topLeft + (topRight - topLeft) * fracCR.x; float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x; float newValue = top + (bottom - top) * fracCR.y; setOutput(newValue); } else { // Compute the coordinators of nearest neighbor point. ivec2 sourceNearestCR = ivec2(floor( sourceFracIndexCR + vec2(0.5,0.5))); float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d); setOutput(newValue); } } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],W8WvW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumprod",()=>i),s.export(r,"cumprodConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cum_gpu"),l=e("./Cum_impl");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:a,exclusive:i,reverse:u}=n;return(0,l.cumImpl)(o.CumOpType.Prod,s,r,a,i,u)}let u={kernelName:a.Cumprod,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cum_gpu":"alpdo","./Cum_impl":"jw1gV","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],alpdo:[function(e,t,r,n){var s,a,o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"CumOpType",()=>a),o.export(r,"CumProgram",()=>i);var l=e("./shader_compiler");(s=a||(a={})).Prod="*",s.Sum="+";class i{constructor(e,t,r,n){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let s=this.outputShape.length,o=this.op===a.Prod?"1.0":"0.0",i=r?o:`getX(${u(s,"coords",this.op)})`,c=this.outputShape[this.outputShape.length-1],d="",f="";r?(d=n?`end != ${c-1}`:"end != 0",f=n?"end + 1":"end - 1"):(d=n?`end + pow2< ${c}`:"end >= pow2",f=n?"end + pow2":"end - pow2"),this.userCode=` void main() { ${(0,l.getCoordsDataType)(s)} coords = getOutputCoords(); int end = ${p(s,"coords",this.op)}; float val = ${i}; int pow2 = int(pow(2.0, index)); if (${d}) { int idx = ${f}; ${p(s,"coords",this.op)} = idx; val ${this.op}= getX(${u(s,"coords",this.op)}); } setOutput(val); } `}}function u(e,t,r){if(1===e)return`${t}`;if(2===e)return`${t}.x, ${t}.y`;if(3===e)return`${t}.x, ${t}.y, ${t}.z`;if(4===e)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative ${r} for rank ${e} is not yet supported`)}function p(e,t,r){if(1===e)return`${t}`;if(2===e)return`${t}.y`;if(3===e)return`${t}.z`;if(4===e)return`${t}.w`;throw Error(`Cumulative ${r} for rank ${e} is not yet supported`)}},{"./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jw1gV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumImpl",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cum_gpu"),l=e("./Identity"),i=e("./Transpose");function u(e,t,r,n,s,u){let p=t.shape.length,c=a.backend_util.getAxesPermutation([n],p),d=t;null!=c&&(d=(0,i.transpose)({inputs:{x:t},backend:r,attrs:{perm:c}}));let f=a.backend_util.getInnerMostAxes(1,p)[0];if(f!==p-1)throw Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${n}`);let h=d.shape[f],m=(0,l.identity)({inputs:{x:d},backend:r});for(let t=0;t<=Math.ceil(Math.log2(h))-1;t++){let n=new(0,o.CumProgram)(e,d.shape,!1,u),s=[[t]],a=m;m=r.runWebGLProgram(n,[m],m.dtype,s),r.disposeIntermediateTensorInfo(a)}if(s){let t=new(0,o.CumProgram)(e,d.shape,s,u),n=m;m=r.runWebGLProgram(t,[m],m.dtype),r.disposeIntermediateTensorInfo(n)}if(null!=c){let e=a.backend_util.getUndoAxesPermutation(c),t=(0,i.transpose)({inputs:{x:m},backend:r,attrs:{perm:e}});return r.disposeIntermediateTensorInfo(m),r.disposeIntermediateTensorInfo(d),t}return m}},{"@tensorflow/tfjs-core":"hADTC","../cum_gpu":"alpdo","./Identity":"eH68D","./Transpose":"6x6Ts","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iP6uh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumsum",()=>i),s.export(r,"cumsumConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cum_gpu"),l=e("./Cum_impl");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:a,exclusive:i,reverse:u}=n;return(0,l.cumImpl)(o.CumOpType.Sum,s,r,a,i,u)}let u={kernelName:a.Cumsum,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cum_gpu":"alpdo","./Cum_impl":"jw1gV","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],Z8KyU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"denseBincount",()=>l),s.export(r,"denseBincountConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,weights:a}=t,{size:l,binaryOutput:i}=n;if(1===s.shape.length){let e=r.readSync(s.dataId),t=r.readSync(a.dataId),n=(0,o.bincountImplCPU)(e,t,a.dtype,a.shape,l);return r.makeTensorInfo([l],a.dtype,n)}if(2===s.shape.length){let e=r.bufferSync(s),t=r.bufferSync(a),n=(0,o.bincountReduceImplCPU)(e,t,l,i);return r.makeTensorInfo(n.shape,a.dtype,n.values)}throw Error(`Error in denseBincount: input must be at most rank 2, but got rank${s.shape.length}.`)}let i={kernelName:a.DenseBincount,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],c1dLi:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthToSpace",()=>l),s.export(r,"depthToSpaceConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../depth_to_space_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockSize:a,dataFormat:l}=n,i=s.shape[0],u="NHWC"===l?s.shape[1]:s.shape[2],p="NHWC"===l?s.shape[2]:s.shape[3],c="NHWC"===l?s.shape[3]:s.shape[1],d=u*a,f=p*a,h=c/(a*a),m=new(0,o.DepthToSpaceProgram)("NHWC"===l?[i,d,f,h]:[i,h,d,f],a,l);return r.runWebGLProgram(m,[s],s.dtype)}let i={kernelName:a.DepthToSpace,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../depth_to_space_gpu":"emPcj","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],emPcj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DepthToSpaceProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=r,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int h = ${this.getHeightCoordString()}; int w = ${this.getWidthCoordString()}; int d = ${this.getDepthCoordString()}; int in_h = h / ${t}; int offset_h = imod(h, ${t}); int in_w = w / ${t}; int offset_w = imod(w, ${t}); int offset_d = (offset_h * ${t} + offset_w) * ${this.getOutputDepthSize()}; int in_d = d + offset_d; float result = ${this.getInputSamplingString()}; setOutput(result); } `}getHeightCoordString(){return"NHWC"===this.dataFormat?"coords[1]":"coords[2]"}getWidthCoordString(){return"NHWC"===this.dataFormat?"coords[2]":"coords[3]"}getDepthCoordString(){return"NHWC"===this.dataFormat?"coords[3]":"coords[1]"}getOutputDepthSize(){return"NHWC"===this.dataFormat?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return"NHWC"===this.dataFormat?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9L8uJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNative",()=>i),s.export(r,"depthwiseConv2dNativeConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu_depthwise"),l=e("../conv_packed_gpu_depthwise");function i(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:i,filter:u}=r,{strides:p,pad:c,dilations:d,dimRoundingMode:f}=s,h=d;null==h&&(h=[1,1]),a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(p,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${p} and dilations '${h}'`);let m=a.backend_util.computeConv2DInfo(i.shape,u.shape,p,h,c,f,!0);t=(0,a.env)().getBool("WEBGL_PACK_DEPTHWISECONV")&&m.strideWidth<=2&&m.outChannels/m.inChannels==1?new(0,l.DepthwiseConvPacked2DProgram)(m):new(0,o.DepthwiseConv2DProgram)(m);let g=[[m.padInfo.top,m.padInfo.left],[m.strideHeight,m.strideWidth],[m.dilationHeight,m.dilationWidth],[m.inHeight,m.inWidth]];return n.runWebGLProgram(t,[i,u],"float32",g)}let u={kernelName:a.DepthwiseConv2dNative,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../conv_gpu_depthwise":"hZW35","../conv_packed_gpu_depthwise":"f0bET","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hZW35:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DepthwiseConv2DProgram",()=>o);var a=e("./gpgpu_math");class o{constructor(e,t=!1,r=null,n=!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=e.outShape,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);let o=e.filterHeight,l=e.filterWidth,i=e.outChannels/e.inChannels,u="",p="";r&&(u=n?`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${r} }`:s?`float activation(float a) { float b = getLeakyreluAlphaAtOutCoords(); ${r} }`:` float activation(float x) { ${r} } `,p="result = activation(result);"),t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` ${u} void main() { ivec4 coords = getOutputCoords(); int batch = coords.x; ivec2 xRCCorner = coords.yz * strides - pads; int d2 = coords.w; int d1 = d2 / ${i}; int q = d2 - d1 * ${i}; int xRCorner = xRCCorner.x; int xCCorner = xRCCorner.y; // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2). // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations. for (int wR = 0; wR< ${o}; wR++) { int xR = xRCorner + wR * dilations[0]; if (xR < 0 || xR >= inDims[0]) { continue; } for (int wC = 0; wC< ${l}; wC++) { int xC = xCCorner + wC * dilations[1]; if (xC < 0 || xC >= inDims[1]) { continue; } float xVal = getX(batch, xR, xC, d1); float wVal = getW(wR, wC, d1, q); dotProd += xVal * wVal; } } float result = dotProd; ${t?"result += getBiasAtOutCoords();":""} ${p} setOutput(result); } `}}},{"./gpgpu_math":"aCqaC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],f0bET:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DepthwiseConvPacked2DProgram",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_math");class l{constructor(e,t=!1,r=null,n=!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=e.outShape,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);let l=e.outChannels/e.inChannels,i=e.padInfo.left,u=e.strideWidth,p=e.dilationWidth,c=e.filterHeight,d=e.filterWidth,f=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let e=0;e<d;e++)f+=` vec4 xTexelC${2*e}; int xTexelC${2*e}Ready; vec4 xTexelC${2*e+1}; int xTexelC${2*e+1}Ready; vec4 xC${e};`;f+=` for (int r = 0; r < ${c}; r++) { `;for(let e=0;e<d;e++)f+=` xTexelC${2*e} = vec4(0.0); xTexelC${2*e}Ready = 0; xTexelC${2*e+1} = vec4(0.0); xTexelC${2*e+1}Ready = 0; xC${e} = vec4(0.0);`;f+=` xR = xRCorner + r * dilations[0]; if (xR >=0 && xR< inDims[0]) { `;for(let e=0;e<(d+1)/2;e++){let t=2*e;if(f+=` xC = xCCorner + ${t*p}; `,1===u){if(t<d&&(i%2==1?(f+=` xCOffset = xC + 1; if (xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${t}Ready == 0) { xTexelC${t} = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xCOffset + 1 >= inDims[1]) { xTexelC${t}.zw = vec2(0.0); } xTexelC${t}Ready = 1; } `,1===p&&t>0?f+=` xC${t} = vec4(xTexelC${t-2}.zw, xTexelC${t}.xy); `:f+=` xCOffset = xC + 1 - 2; if (xCOffset >= 0 && xCOffset< inDims[1]) { previous = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xCOffset + 1 >= inDims[1]) { previous.zw = vec2(0.0); } xC${t} = vec4(previous.zw, xTexelC${t}.xy); } else { xC${t} = vec4(0.0, 0.0, xTexelC${t}.xy); } `):f+=` if (xC >= 0 && xC< inDims[1] && xTexelC${t}Ready == 0) { xTexelC${t} = getX(batch, xR, xC, d1); if (xC + 1 >= inDims[1]) { xTexelC${t}.zw = vec2(0.0); } xTexelC${t}Ready = 1; } xC${t} = xTexelC${t}; `,t+1<d)){let e=i%2==0?a.util.nearestLargerEven(p):p;p%2==0&&i%2==1||p%2!=0&&i%2!=1?(f+=` xCOffset = xC + imod(pads[1], 2) + ${e}; if (xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${t+1}Ready == 0) { xTexelC${t+1} = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xCOffset + 1 >= inDims[1]) { xTexelC${t+1}.zw = vec2(0.0); } xTexelC${t+1}Ready = 1; } `,p>1?f+=` xCOffset -= 2; if (xCOffset >= 0 && xCOffset< inDims[1]) { previous = getX(batch, xR, xCOffset, d1); xC${t+1} = vec4(previous.zw, xTexelC${t+1}.xy); } else { xC${t+1} = vec4(0.0, 0.0, xTexelC${t+1}.xy); } `:f+=` xC${t+1} = vec4(xTexelC${t}.zw, xTexelC${t+1}.xy); `):1===e?f+=` xC${t+1} = xTexelC${t}; `:f+=` xCOffset = xC + ${e}; if (xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${t+1}Ready == 0) { xTexelC${t+1} = getX(batch, xR, xCOffset, d1); if (xCOffset + 1 >= inDims[1]) { xTexelC${t+1}.zw = vec2(0.0); } xTexelC${t+1}Ready = 1; } xC${t+1} = xTexelC${t+1}; `}}else t<d&&(i%2==1?(f+=` xCOffset = xC + 1 - strides[1]; if(xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${t}Ready == 0) { xTexelC${t} = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xCOffset + 1 >= inDims[1]) { xTexelC${t}.zw = vec2(0.0); } xTexelC${t}Ready = 1; } if(xC + 1 >= 0 && xC + 1< inDims[1] && xTexelC${t+1}Ready == 0) { xTexelC${t+1} = getX(batch, xR, xC + 1, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xC + 2 >= inDims[1]) { xTexelC${t+1}.zw = vec2(0.0); } xTexelC${t+1}Ready = 1; } xC${t} = vec4(xTexelC${t}.zw, xTexelC${t+1}.zw); `,t+1<d&&(f+=` final = vec4(0.0); xCOffset = xC + 1 + strides[1]; if(xCOffset >= 0 && xCOffset< inDims[1]) { final = getX(batch, xR, xCOffset, d1); } xC${t+1} = vec4(xTexelC${t+1}.xy, final.xy); `)):(f+=` if(xC >= 0 && xC< inDims[1] && xTexelC${t}Ready == 0) { xTexelC${t} = getX(batch, xR, xC, d1); if (xC + 1 >= inDims[1]) { xTexelC${t}.zw = vec2(0.0); } xTexelC${t}Ready = 1; } xCOffset = xC + strides[1]; if(xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${t+1}Ready == 0) { xTexelC${t+1} = getX(batch, xR, xCOffset, d1); if (xCOffset + 1 >= inDims[1]) { xTexelC${t+1}.zw = vec2(0.); } xTexelC${t+1}Ready = 1; } xC${t} = vec4( xTexelC${t}.xy, xTexelC${t+1}.xy); `,t+1<d&&(f+=` xC${t+1} = vec4(xTexelC${t}.zw, xTexelC${t+1}.zw); `)));t<d&&(f+=` wTexel = getW(r, ${t}, d1, q); dotProd += xC${t} * vec4(wTexel.xz, wTexel.xz); `,t+1<d&&(f+=` wTexel = getW(r, ${t+1}, d1, q); dotProd += xC${t+1} * vec4(wTexel.xz, wTexel.xz); `))}f+=` } } `;let h="",m="";r&&(h=n?`vec4 activation(vec4 a) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${r} }`:s?`vec4 activation(vec4 a) { vec4 b = getLeakyreluAlphaAtOutCoords(); ${r} }`:`vec4 activation(vec4 x) { ${r} }`,m="result = activation(result);"),t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` ${h} void main() { ivec4 coords = getOutputCoords(); int batch = coords.x; ivec2 xRCCorner = coords.yz * strides - pads; int d2 = coords.w; int d1 = d2 / ${l}; int q = d2 - d1 * ${l}; int xRCorner = xRCCorner.x; int xCCorner = xRCCorner.y; //intialize dotProd with a small epsilon seems to reduce GPU accuracy loss. vec4 dotProd = vec4(0.000000000000001); ${f} vec4 result = dotProd - vec4(0.000000000000001); ${t?"result += getBiasAtOutCoords();":""} ${m} setOutput(result); } `}}},{"@tensorflow/tfjs-core":"hADTC","./gpgpu_math":"aCqaC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"91Gmp":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropFilter",()=>l),s.export(r,"depthwiseConv2dNativeBackpropFilterConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu_depthwise");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,dilations:u,pad:p,dimRoundingMode:c,filterShape:d}=n,f=a.backend_util.computeConv2DInfo(s.shape,d,i,u,p,c,!0),h=new(0,o.DepthwiseConv2DDerFilterProgram)(f);return r.runWebGLProgram(h,[s,l],"float32")}let i={kernelName:a.DepthwiseConv2dNativeBackpropFilter,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../conv_backprop_gpu_depthwise":"3CkF8","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3CkF8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DepthwiseConv2DDerFilterProgram",()=>a),s.export(r,"DepthwiseConv2DDerInputProgram",()=>o);class a{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,r=e.strideWidth,n=e.padInfo.top,s=e.padInfo.left,a=e.outChannels/e.inChannels;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; int wC = coords.y; int d1 = coords.z; int dm = coords.w; int d2 = d1 * ${a} + dm; float dotProd = 0.0; // TO DO: Vec4 over the batch size for (int b = 0; b< ${e.batchSize}; b++) { for (int yR = 0; yR < ${e.outHeight}; yR++) { int xR = wR + yR * ${t} - ${n}; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int yC = 0; yC< ${e.outWidth}; yC++) { int xC = wC + yC * ${r} - ${s}; if (xC < 0 || xC >= ${e.inWidth}) { continue; } float dyValue = getDy(b, yR, yC, d2); float xValue = getX(b, xR, xC, d1); dotProd += (xValue * dyValue); } } } setOutput(dotProd); } `}}class o{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,r=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=t-1-e.padInfo.top,o=r-1-e.padInfo.left,l=e.outChannels/e.inChannels;this.userCode=` const ivec2 pads = ivec2(${a}, ${o}); void main() { ivec4 coords = getOutputCoords(); int batch = coords[0]; int d1 = coords[3]; ivec2 dyCorner = coords.yz - pads; int dyRCorner = dyCorner.x; int dyCCorner = dyCorner.y; float dotProd = 0.0; for (int wR = 0; wR< ${t}; wR++) { float dyR = float(dyRCorner + wR) / ${n}.0; if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { continue; } int idyR = int(dyR); int wRPerm = ${t} - 1 - wR; for (int wC = 0; wC< ${r}; wC++) { float dyC = float(dyCCorner + wC) / ${s}.0; if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || fract(dyC) > 0.0) { continue; } int idyC = int(dyC); int wCPerm = ${r} - 1 - wC; // TO DO: Vec4 over the channelMul for (int dm = 0; dm< ${l}; dm++) { int d2 = d1 * ${l} + dm; float xValue = getDy(batch, idyR, idyC, d2); float wValue = getW(wRPerm, wCPerm, d1, dm); dotProd += xValue * wValue; } } } setOutput(dotProd); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4U1yX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropInput",()=>l),s.export(r,"depthwiseConv2dNativeBackpropInputConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu_depthwise");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{strides:i,dilations:u,pad:p,dimRoundingMode:c,inputShape:d}=n,f=a.backend_util.computeConv2DInfo(d,l.shape,i,u,p,c,!0),h=new(0,o.DepthwiseConv2DDerInputProgram)(f);return r.runWebGLProgram(h,[s,l],"float32")}let i={kernelName:a.DepthwiseConv2dNativeBackpropInput,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../conv_backprop_gpu_depthwise":"3CkF8","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"47X9m":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"diag",()=>i),s.export(r,"diagConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../diag_gpu"),l=e("./Reshape");function i(e){let{inputs:t,backend:r}=e,{x:n}=t,s=[...n.shape,...n.shape],i=a.util.sizeFromShape(n.shape),u=(0,l.reshape)({inputs:{x:n},backend:r,attrs:{shape:[i]}}),p=new(0,o.DiagProgram)(i),c=r.runWebGLProgram(p,[u],u.dtype),d=(0,l.reshape)({inputs:{x:c},backend:r,attrs:{shape:s}});return r.disposeIntermediateTensorInfo(u),r.disposeIntermediateTensorInfo(c),d}let u={kernelName:a.Diag,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../diag_gpu":"cxP7S","./Reshape":"6JJRX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cxP7S:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DiagProgram",()=>a);class a{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); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iuRFf:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2D",()=>i),s.export(r,"dilation2DConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../dilation_gpu"),l=e("./Reshape");function i(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:i,filter:u}=r,{strides:p,pad:c,dilations:d}=s,f=a.backend_util.computeDilation2DInfo(i.shape,u.shape,p,c,"NHWC",d),h=new(0,o.Dilation2DProgram)(f);t=n.runWebGLProgram(h,[i,u],"float32");let m=(0,l.reshape)({inputs:{x:t},backend:n,attrs:{shape:f.outShape}});return n.disposeIntermediateTensorInfo(t),m}let u={kernelName:a.Dilation2D,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../dilation_gpu":"78Bry","./Reshape":"6JJRX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"78Bry":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Dilation2DProgram",()=>a);class a{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:r,padInfo:n,strideHeight:s,strideWidth:a,filterHeight:o,filterWidth:l,dilationHeight:i,dilationWidth:u}=e,{top:p,left:c}=n;this.userCode=` const ivec2 strides = ivec2(${s}, ${a}); const ivec2 pads = ivec2(${p}, ${c}); const float neg_infinity = -3.4e38; void main() { ivec4 coords = getOutputCoords(); int batch = coords.x; int d1 = coords.w; ivec2 outTopLeftCorner = coords.yz * strides - pads; int hBeg = outTopLeftCorner.x; int wBeg = outTopLeftCorner.y; float curVal = neg_infinity; for (int h = 0; h< ${o}; h++) { int hIn = hBeg + h * ${i}; if (hIn >= 0 && hIn< ${t}) { for (int w = 0; w < ${l}; w++) { int wIn = wBeg + w * ${u}; if (wIn >= 0 && wIn< ${r}) { float xVal = getX(batch, hIn, wIn, d1); float wVal = getW(h, w, d1); float val = xVal + wVal; if (val >curVal) { curVal = val; } } } } } float result = curVal; setOutput(result); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aFDJk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"einsum",()=>p),s.export(r,"einsumConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./Multiply"),l=e("./Reshape"),i=e("./Sum"),u=e("./Transpose");function p(e){let{inputs:t,backend:r,attrs:n}=e,{equation:s}=n,{allDims:p,summedDims:c,idDims:d}=a.backend_util.decodeEinsumEquation(s,t.length);a.backend_util.checkEinsumDimSizes(p.length,d,t);let{path:f,steps:h}=a.backend_util.getEinsumComputePath(c,d),m=h.length,g=null,x=p.length,v=[];for(let e=0;e<m;++e){for(let n of h[e]){let e,{permutationIndices:s,expandDims:i}=a.backend_util.getEinsumPermutation(x,d[n]);a.backend_util.isIdentityPermutation(s)?e=t[n]:(e=(0,u.transpose)({inputs:{x:t[n]},backend:r,attrs:{perm:s}}),v.push(e));let p=e.shape.slice();for(let e=0;e<i.length;++e)p.splice(i[e],0,1);a.util.arraysEqual(e.shape,p)||(e=(0,l.reshape)({inputs:{x:e},backend:r,attrs:{shape:p}}),v.push(e)),null===g?g=e:(g=(0,o.multiply)({inputs:{a:e,b:g},backend:r}),v.push(g))}e<m-1&&(f[e]>=0&&(g=(0,i.sum)({inputs:{x:g},backend:r,attrs:{axis:f[e]-(p.length-x),keepDims:!1}}),v.push(g)),x--)}for(let e of v)e!==g&&r.disposeIntermediateTensorInfo(e);return g}let c={kernelName:a.Einsum,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","./Multiply":"exqRf","./Reshape":"6JJRX","./Sum":"6yTIe","./Transpose":"6x6Ts","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eoMmw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"eluConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0); result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0); result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; `,i=(0,o.unaryKernelFunc)({opSnippet:"return (x >= 0.0) ? x : (exp(x) - 1.0);",packedOpSnippet:l}),u={kernelName:a.Elu,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],Fcdo2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"eluGrad",()=>u),s.export(r,"eluGradConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu");let i=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); `,u=e=>{let{inputs:t,backend:r}=e,{dy:n,y:s}=t,u=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new(0,l.BinaryOpPackedProgram)(i,n.shape,s.shape):new(0,o.BinaryOpProgram)("return (b >= 0.0) ? a : a * (b + 1.0);",n.shape,s.shape);return r.runWebGLProgram(u,[n,s],n.dtype)},p={kernelName:a.EluGrad,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../binaryop_gpu":"a2Mj7","../binaryop_packed_gpu":"fwruC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dd8t8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"equal",()=>u),s.export(r,"equalConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=` return vec4(equal(a, b)); `,u=(0,o.binaryKernelFunc)({opSnippet:"return float(a == b);",packedOpSnippet:i,dtype:"bool",cpuKernelImpl:l.equalImplCPU}),p={kernelName:a.Equal,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cAYE0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"erf",()=>i),s.export(r,"erfConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. float p = ${a.backend_util.ERF_P}; float a1 = ${a.backend_util.ERF_A1}; float a2 = ${a.backend_util.ERF_A2}; float a3 = ${a.backend_util.ERF_A3}; float a4 = ${a.backend_util.ERF_A4}; float a5 = ${a.backend_util.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)); `,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Erf,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5Bqs2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EXP",()=>i),s.export(r,"exp",()=>p),s.export(r,"expConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=o.CHECK_NAN_SNIPPET_UNARY+` return exp(x); `,u=` vec4 result = exp(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; result.g = isNaN.g ? x.g : result.g; result.b = isNaN.b ? x.b : result.b; result.a = isNaN.a ? x.a : result.a; return result; `,p=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:u,cpuKernelImpl:l.expImplCPU,dtype:"float32"}),c={kernelName:a.Exp,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iZAhl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expandDims",()=>l),s.export(r,"expandDimsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape");function l(e){let{inputs:t,attrs:r,backend:n}=e,{dim:s}=r,{input:l}=t,i=l.shape.length,u=l.shape.slice(),p=s;return s<0&&(a.util.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),p=i+s+1),u.splice(p,0,1),(0,o.reshape)({inputs:{x:l},backend:n,attrs:{shape:u}})}let i={kernelName:a.ExpandDims,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./Reshape":"6JJRX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aAy9G:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expm1",()=>u),s.export(r,"expm1Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return exp(x) - 1.0;",u=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:i,cpuKernelImpl:l.expm1ImplCPU}),p={kernelName:a.Expm1,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hvZGW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fft",()=>l),s.export(r,"fftConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./FFT_impl");function l(e){let{inputs:t,backend:r}=e,{input:n}=t;return(0,o.fftImpl)(n,!1,r)}let i={kernelName:a.FFT,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./FFT_impl":"h8mAX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],h8mAX:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fftImpl",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../fft_gpu"),l=e("./Complex"),i=e("./Reshape");function u(e,t,r){let n=r.texData.get(e.dataId),s=a.util.sizeFromShape(e.shape),u=e.shape[e.shape.length-1],p=(0,i.reshape)({inputs:{x:e},backend:r,attrs:{shape:[s/u,u]}}),c=p.shape,d=new(0,o.FFTProgram)("real",c,t),f=new(0,o.FFTProgram)("imag",c,t),h=[{dataId:n.complexTensorInfos.real.dataId,dtype:n.complexTensorInfos.real.dtype,shape:c},{dataId:n.complexTensorInfos.imag.dataId,dtype:n.complexTensorInfos.imag.dtype,shape:c}],m=r.runWebGLProgram(d,h,"float32"),g=r.runWebGLProgram(f,h,"float32"),x=(0,l.complex)({inputs:{real:m,imag:g},backend:r});r.disposeIntermediateTensorInfo(m),r.disposeIntermediateTensorInfo(g);let v=(0,i.reshape)({inputs:{x:x},backend:r,attrs:{shape:e.shape}});return r.disposeIntermediateTensorInfo(p),r.disposeIntermediateTensorInfo(x),v}},{"@tensorflow/tfjs-core":"hADTC","../fft_gpu":"h60p6","./Complex":"2jgL8","./Reshape":"6JJRX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],h60p6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FFTProgram",()=>a);class a{constructor(e,t,r){let n;this.variableNames=["real","imag"];let s=t[1];this.outputShape=t;let a=r?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,o=r?`${s}.0`:"1.0";if("real"===e)n="return real * expR - imag * expI;";else if("imag"===e)n="return real * expI + imag * expR;";else throw Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` const float exponentMultiplier = ${a}; float unaryOpComplex(float real, float expR, float imag, float expI) { ${n} } float mulMatDFT(int batch, int index) { float indexRatio = float(index) / float(${s}); float exponentMultiplierTimesIndexRatio = exponentMultiplier * indexRatio; float result = 0.0; for (int i = 0; i< ${s}; i++) { // x = (-2|2 * PI / N) * index * i; float x = exponentMultiplierTimesIndexRatio * float(i); float expR = cos(x); float expI = sin(x); float real = getReal(batch, i); float imag = getImag(batch, i); result += unaryOpComplex(real, expR, imag, expI) / ${o}; } return result; } void main() { ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cTMIP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fill",()=>l),s.export(r,"fillConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../fill_gpu");function l(e){let{backend:t,attrs:r}=e,{shape:n,value:s}=r,{dtype:l}=r;if("string"===(l=l||a.util.inferDtype(s))){let e=a.util.getArrayFromDType(l,a.util.sizeFromShape(n));return e.fill(s),t.makeTensorInfo(n,l,e)}{let e=new(0,o.FillProgram)(n,s),r=[[s]];return t.runWebGLProgram(e,[],l,r)}}let i={kernelName:a.Fill,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../fill_gpu":"19gjV","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"19gjV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FillProgram",()=>a);class a{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); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kJm6F:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"flipLeftRightConfig",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("../flip_left_right_gpu");let l={kernelName:a.FlipLeftRight,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:r}=e,n=new(0,o.FlipLeftRightProgram)(r.shape);return t.runWebGLProgram(n,[r],r.dtype)}}},{"@tensorflow/tfjs-core":"hADTC","../flip_left_right_gpu":"692MX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"692MX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FlipLeftRightProgram",()=>a);class a{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]; int coordX = ${t} - x - 1; float outputValue; if(coordX >= 0 && coordX< ${t}) { outputValue = getImage(coords[0], coords[1], coordX, coords[3]); } else { outputValue = getImage(coords[0], coords[1], coords[2], coords[3]); } setOutput(outputValue); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lQvGn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floor",()=>u),s.export(r,"floorConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return floor(x);",u=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:i,cpuKernelImpl:l.floorImplCPU}),p={kernelName:a.Floor,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9gJF4":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floorDiv",()=>u),s.export(r,"floorDivConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); if (ib != 0) { // Windows (D3D) wants guaranteed non-zero int division at compile-time. return float(idiv(ia, ib, s)); } else { return NAN; } `,i=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); ivec4 result = ivec4(0); vec4 s = sign(a) * sign(b); // Windows (D3D) wants guaranteed non-zero int division at compile-time. if (cond[0]) { result[0] = idiv(ia[0], ib[0], s[0]); } if (cond[1]) { result[1] = idiv(ia[1], ib[1], s[1]); } if (cond[2]) { result[2] = idiv(ia[2], ib[2], s[2]); } if (cond[3]) { result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); `,u=(0,o.binaryKernelFunc)({opSnippet:l,packedOpSnippet:i,dtype:"int32"}),p={kernelName:a.FloorDiv,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7o6pu":[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"fromPixelsConfig",()=>p);var o=e("@tensorflow/tfjs-core"),l=e("../tex_util"),i=e("./FromPixels_utils/from_pixels_gpu"),u=e("./FromPixels_utils/from_pixels_packed_gpu");let p={kernelName:o.FromPixels,backendName:"webgl",kernelFunc:function(e){let{inputs:t,backend:r,attrs:n}=e,{pixels:a}=t,{numChannels:p}=n,d="undefined"!=typeof HTMLVideoElement&&a instanceof HTMLVideoElement,f="undefined"!=typeof HTMLImageElement&&a instanceof HTMLImageElement,[h,m]=d?[a.videoWidth,a.videoHeight]:[a.width,a.height],g=[m,h],x=[m,h,p];if(f||d){let e=(0,o.env)().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(null==s||e!==c)&&(c=e,s=document.createElement("canvas").getContext("2d",{willReadFrequently:c})),s.canvas.width=h,s.canvas.height=m,s.drawImage(a,0,0,h,m),a=s.canvas}let v=r.makeTensorInfo(g,"int32");r.texData.get(v.dataId).usage=l.TextureUsage.PIXELS,r.gpgpu.uploadPixelDataToTexture(r.getTexture(v.dataId),a);let y=(0,o.env)().getBool("WEBGL_PACK")?new(0,u.FromPixelsPackedProgram)(x):new(0,i.FromPixelsProgram)(x),_=r.runWebGLProgram(y,[v],"int32");return r.disposeData(v.dataId),_}},c=(0,o.env)().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU")},{"@tensorflow/tfjs-core":"hADTC","../tex_util":"kxvAY","./FromPixels_utils/from_pixels_gpu":"7NrgY","./FromPixels_utils/from_pixels_packed_gpu":"kMcpX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7NrgY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FromPixelsProgram",()=>o);var a=e("../../glsl_version");class o{constructor(e){this.variableNames=["A"];let t=(0,a.getGlslDifferences)(),[r,n]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; int texC = coords[1]; int depth = coords[2]; vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${n}.0, ${r}.0); vec4 values = ${t.texture2D}(A, uv); float value; if (depth == 0) { value = values.r; } else if (depth == 1) { value = values.g; } else if (depth == 2) { value = values.b; } else if (depth == 3) { value = values.a; } setOutput(floor(value * 255.0 + 0.5)); } `}}},{"../../glsl_version":"5v0d7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kMcpX:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FromPixelsPackedProgram",()=>o);var a=e("../../glsl_version");class o{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=(0,a.getGlslDifferences)(),[r,n]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; int texC = coords[1]; int depth = coords[2]; vec4 result = vec4(0.); for(int row=0; row<=1; row++) { for(int col=0; col<=1; col++) { texC = coords[1] + row; depth = coords[2] + col; vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${n}.0, ${r}.0); vec4 values = ${t.texture2D}(A, uv); float value; if (depth == 0) { value = values.r; } else if (depth == 1) { value = values.g; } else if (depth == 2) { value = values.b; } else if (depth == 3) { value = values.a; } result[row * 2 + col] = floor(value * 255.0 + 0.5); } } ${t.output} = result; } `}}},{"../../glsl_version":"5v0d7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bX0bx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fusedConv2d",()=>c),s.export(r,"fusedConv2DConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu"),l=e("../conv_packed_gpu"),i=e("../kernel_utils/kernel_funcs_utils"),u=e("./Conv2D_impl"),p=e("./Reshape");function c(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:c,filter:d,bias:f,preluActivationWeights:h}=r,{strides:m,pad:g,dataFormat:x,dilations:v,dimRoundingMode:y,activation:_,leakyreluAlpha:b}=s,k=a.backend_util.convertConv2DDataFormat(x),T=a.backend_util.computeConv2DInfo(c.shape,d.shape,m,v,g,y,!1,k),w=[],I=null!=f,j=null!=h,C="leakyrelu"===_,N=()=>{let e=[c,d],t=(e,t)=>{if("NCHW"===t&&1===e.shape.length&&1!==e.shape[0]){let t=(0,p.reshape)({inputs:{x:e},backend:n,attrs:{shape:[e.shape[0],1,1]}});return w.push(t),t}return e};if(I&&e.push(t(f,x)),j&&e.push(t(h,x)),C){let t=n.makeTensorInfo([],"float32",a.util.createScalarValue(b,"float32"));e.push(t),w.push(t)}return e};if(1===T.filterHeight&&1===T.filterWidth&&1===T.dilationHeight&&1===T.dilationWidth&&1===T.strideHeight&&1===T.strideWidth&&("SAME"===T.padInfo.type||"VALID"===T.padInfo.type))t=(0,u.conv2dByMatMul)({x:c,filter:d,convInfo:T,backend:n,bias:f,activation:_,preluActivationWeights:h,leakyreluAlpha:b});else if(T.strideWidth<=2&&"channelsLast"===k&&(0,a.env)().getBool("WEBGL_EXP_CONV")){let e=_?(0,i.mapActivationToShaderProgram)(_,!0):null,r=new(0,l.Conv2DPackedProgram)(T,I,e,j,C),s=[[T.padInfo.top,T.padInfo.left],[T.strideHeight,T.strideWidth],[T.dilationHeight,T.dilationWidth],[T.inHeight,T.inWidth]],a=N();t=n.runWebGLProgram(r,a,"float32",s)}else if((0,a.env)().getBool("WEBGL_CONV_IM2COL"))t=(0,u.conv2dWithIm2Row)({x:c,filter:d,convInfo:T,backend:n,bias:f,activation:_,preluActivationWeights:h,leakyreluAlpha:b});else{let e=_?(0,i.mapActivationToShaderProgram)(_,!1):null,r=new(0,o.Conv2DProgram)(T,I,e,j,C),s=N();t=n.runWebGLProgram(r,s,"float32")}let S=(0,p.reshape)({inputs:{x:t},backend:n,attrs:{shape:T.outShape}});return w.push(t),w.forEach(e=>n.disposeIntermediateTensorInfo(e)),S}let d={kernelName:a.FusedConv2D,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"hADTC","../conv_gpu":"e94Ho","../conv_packed_gpu":"crrN0","../kernel_utils/kernel_funcs_utils":"eRfJh","./Conv2D_impl":"3YhXn","./Reshape":"6JJRX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fLpvm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fusedDepthwiseConv2D",()=>u),s.export(r,"fusedDepthwiseConv2DConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu_depthwise"),l=e("../conv_packed_gpu_depthwise"),i=e("../kernel_utils/kernel_funcs_utils");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u,filter:p,bias:c,preluActivationWeights:d}=r,{strides:f,pad:h,dilations:m,dimRoundingMode:g,activation:x,leakyreluAlpha:v}=s,y=[],_=m;null==_&&(_=[1,1]),a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(f,_),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${f} and dilations '${_}'`);let b=a.backend_util.computeConv2DInfo(u.shape,p.shape,f,_,h,g,!0),k=(0,a.env)().getBool("WEBGL_PACK_DEPTHWISECONV")&&b.strideWidth<=2&&b.outChannels/b.inChannels==1,T=x?(0,i.mapActivationToShaderProgram)(x,k):null,w=[u,p],I=null!=c,j=null!=d,C="leakyrelu"===x;if(I&&w.push(c),j&&w.push(d),C){let e=n.makeTensorInfo([],"float32",a.util.createScalarValue(v,"float32"));w.push(e),y.push(e)}t=k?new(0,l.DepthwiseConvPacked2DProgram)(b,I,T,j,C):new(0,o.DepthwiseConv2DProgram)(b,I,T,j,C);let N=[[b.padInfo.top,b.padInfo.left],[b.strideHeight,b.strideWidth],[b.dilationHeight,b.dilationWidth],[b.inHeight,b.inWidth]],S=n.runWebGLProgram(t,w,"float32",N);return y.forEach(e=>n.disposeIntermediateTensorInfo(e)),S}let p={kernelName:a.FusedDepthwiseConv2D,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../conv_gpu_depthwise":"hZW35","../conv_packed_gpu_depthwise":"f0bET","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3zja3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherNd",()=>u),s.export(r,"gatherNdConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../gather_nd_gpu"),l=e("../kernel_utils/shared"),i=e("./Reshape");function u(e){let{inputs:t,backend:r}=e,{params:n,indices:s}=t,u=s.shape,p=u[u.length-1],c=a.util.sizeFromShape(n.shape),[d,f,h,m]=a.backend_util.prepareAndValidate(n,s),g=(0,i.reshape)({inputs:{x:s},backend:r,attrs:{shape:[f,p]}}),x=(0,i.reshape)({inputs:{x:n},backend:r,attrs:{shape:[a.util.sizeFromShape(n.shape)/h,h]}});if(r.shouldExecuteOnCPU([n,s])||"string"===n.dtype){let e=r.readSync(s.dataId),t=r.bufferSync(n),a=(0,l.gatherNdImplCPU)(e,t,n.dtype,f,p,h,m,n.shape,c);return r.makeTensorInfo(d,n.dtype,a.values)}let v=new(0,o.GatherNDProgram)(p,m,[f,h],n.shape),y=r.runWebGLProgram(v,[x,g],x.dtype),_=(0,i.reshape)({inputs:{x:y},backend:r,attrs:{shape:d}});return r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(x),r.disposeIntermediateTensorInfo(y),_}let p={kernelName:a.GatherNd,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../gather_nd_gpu":"hyHwH","../kernel_utils/shared":"awGPZ","./Reshape":"6JJRX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hyHwH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"GatherNDProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r,n){this.sliceDim=e,this.strides=t,this.paramsShape=n,this.variableNames=["x","indices"],this.outputShape=r;let s=(0,a.getCoordsDataType)(r.length),o=` int index;`;for(let e=0;e<this.sliceDim;e++)o+=` index = round(getIndices(coords[0], ${e})); out_of_bounds = out_of_bounds || index < 0; out_of_bounds = out_of_bounds || index >= ${this.paramsShape[e]}; flattenIndex += index * ${this.strides[e]};`;this.userCode=` void main() { ${s} coords = getOutputCoords(); int flattenIndex = 0; bool out_of_bounds = false; ${o} setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1])); } `}}},{"./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aCEdT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherV2",()=>u),s.export(r,"gatherV2Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../gather_gpu"),l=e("../kernel_utils/shared"),i=e("./Reshape");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,indices:u}=t,{axis:p,batchDims:c}=n,d=a.util.parseAxisParam(p,s.shape)[0];if((0,a.env)().get("DEBUG")){let e=r.readSync(u.dataId),t=s.shape[d];for(let r=0;r<e.length;++r){let n=e[r];a.util.assert(n<=t-1&&n>=0,()=>`GatherV2: the index value ${n} is not in [0, ${t-1}]`)}}let f=a.backend_util.segment_util.collectGatherOpShapeInfo(s,u,d,c),h=a.util.sizeFromShape(u.shape),m=[],g=(0,i.reshape)({inputs:{x:s},backend:r,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),x=(0,i.reshape)({inputs:{x:u},backend:r,attrs:{shape:[f.batchSize,h/f.batchSize]}});m.push(g),m.push(x);let v=[f.batchSize,f.outerSize,h/f.batchSize,f.sliceSize];if(r.shouldExecuteOnCPU([s,u])||"string"===s.dtype){let e=r.bufferSync(x),t=r.bufferSync(g),n=(0,l.gatherV2ImplCPU)(t,e,v);return m.forEach(e=>r.disposeIntermediateTensorInfo(e)),r.makeTensorInfo(f.outputShape,n.dtype,n.values)}let y=new(0,o.GatherProgram)(g.shape,v),_=r.runWebGLProgram(y,[g,x],g.dtype);m.push(_);let b=(0,i.reshape)({inputs:{x:_},backend:r,attrs:{shape:f.outputShape}});return m.forEach(e=>r.disposeIntermediateTensorInfo(e)),b}let p={kernelName:a.GatherV2,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../gather_gpu":"6FjTo","../kernel_utils/shared":"awGPZ","./Reshape":"6JJRX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6FjTo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"GatherProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let r=(0,a.getCoordsDataType)(this.rank),n=function(e,t){let r=["resRC.x","resRC.y","resRC.z","resRC.w"],n=[];for(let t=0;t<e.length;t++)2===t?n.push("index"):n.push(`${r[t]}`);return n.join()}(e,0);this.userCode=` void main() { ${r} resRC = getOutputCoords(); int index = int(getIndices(resRC.x, resRC.z)); float inBounds = (index >= 0) && (index< ${e[2]}) ? 1.0 : 0.0; setOutput(inBounds * getA(${n})); } `}}},{"./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1Xjbf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greater",()=>u),s.export(r,"greaterConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=` return vec4(greaterThan(a, b)); `,u=(0,o.binaryKernelFunc)({opSnippet:"return float(a > b);",packedOpSnippet:i,cpuKernelImpl:l.greaterImplCPU,dtype:"bool"}),p={kernelName:a.Greater,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kJPfU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greaterEqual",()=>u),s.export(r,"greaterEqualConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=` return vec4(greaterThanEqual(a, b)); `,u=(0,o.binaryKernelFunc)({opSnippet:"return float(a >= b);",packedOpSnippet:i,dtype:"bool",cpuKernelImpl:l.greaterEqualImplCPU}),p={kernelName:a.GreaterEqual,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5tF5H":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ifft",()=>l),s.export(r,"ifftConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./FFT_impl");function l(e){let{inputs:t,backend:r}=e,{input:n}=t;return(0,o.fftImpl)(n,!0,r)}let i={kernelName:a.IFFT,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./FFT_impl":"h8mAX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2sUBb":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isFinite",()=>o),s.export(r,"isFiniteConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return float(!isnan(x) && !isinf(x));",dtype:"bool"}),l={kernelName:a.IsFinite,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gDSDP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isInf",()=>o),s.export(r,"isInfConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return float(isinf(x));",dtype:"bool"}),l={kernelName:a.IsInf,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cBR9s:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isNaN",()=>o),s.export(r,"isNaNConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return float(isnan(x));",dtype:"bool"}),l={kernelName:a.IsNan,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hcdH8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"less",()=>u),s.export(r,"lessConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=` return vec4(lessThan(a, b)); `,u=(0,o.binaryKernelFunc)({opSnippet:"return float(a< b);",packedOpSnippet:i,cpuKernelImpl:l.lessImplCPU,dtype:"bool"}),p={kernelName:a.Less,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kYw7M:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LESS_EQUAL",()=>i),s.export(r,"LESS_EQUAL_PACKED",()=>u),s.export(r,"lessEqual",()=>p),s.export(r,"lessEqualConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return float(a<= b);",u=` return vec4(lessThanEqual(a, b)); `,p=(0,o.binaryKernelFunc)({opSnippet:i,packedOpSnippet:u,cpuKernelImpl:l.lessEqualImplCPU,dtype:"bool"}),c={kernelName:a.LessEqual,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9wq53":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"linSpace",()=>l),s.export(r,"linSpaceConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{backend:t,attrs:r}=e,{start:n,stop:s,num:a}=r,l=(0,o.linSpaceImplCPU)(n,s,a);return t.makeTensorInfo([l.length],"float32",l)}let i={kernelName:a.LinSpace,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],k5eu0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log",()=>p),s.export(r,"logConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=o.CHECK_NAN_SNIPPET_UNARY+` return x< 0.0 ? 0./0. : log(x); `,u=` vec4 result = log(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r); result.g = isNaN.g ? x.g : (x.g < 0.0 ? 0./0. : result.g); 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; `,p=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:u,cpuKernelImpl:l.logImplCPU}),c={kernelName:a.Log,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iTdfZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log1p",()=>i),s.export(r,"log1pConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=o.CHECK_NAN_SNIPPET_UNARY+` return log(1.0 + x); `,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Log1p,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cs5BO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalAnd",()=>i),s.export(r,"logicalAndConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); `,i=(0,o.binaryKernelFunc)({opSnippet:"return float(a >= 1.0 && b >= 1.0);",packedOpSnippet:l,dtype:"bool"}),u={kernelName:a.LogicalAnd,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2CzzD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalNot",()=>o),s.export(r,"logicalNotConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return float(!(x >= 1.0));"}),l={kernelName:a.LogicalNot,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3NoAJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalOr",()=>i),s.export(r,"logicalOrConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); `,i=(0,o.binaryKernelFunc)({opSnippet:"return float(a >= 1.0 || b >= 1.0);",packedOpSnippet:l,dtype:"bool"}),u={kernelName:a.LogicalOr,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hDfav:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lrn",()=>i),s.export(r,"LRNConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../lrn_gpu"),l=e("../lrn_packed_gpu");let i=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{depthRadius:i,bias:u,alpha:p,beta:c}=n,d=(0,a.env)().getBool("WEBGL_PACK_NORMALIZATION")?new(0,l.LRNPackedProgram)(s.shape,i,u,p,c):new(0,o.LRNProgram)(s.shape,i,u,p,c);return r.runWebGLProgram(d,[s],s.dtype)},u={kernelName:a.LRN,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../lrn_gpu":"10tdx","../lrn_packed_gpu":"ae9ST","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"10tdx":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LRNProgram",()=>a);class a{constructor(e,t,r,n,s){let a;this.variableNames=["x"],this.outputShape=[];let o=e[3]-1;this.outputShape=e;let l=`float(${r}) + float(${n}) * sum`;a=.5===s?`inversesqrt(${l})`:1===s?`1.0/(${l})`:`exp(log(${l}) * float(-${s}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int r = coords[1]; int c = coords[2]; int d = coords[3]; float x = getX(b, r, c, d); float sum = 0.0; for (int j = -${t}; j<= ${t}; j++) { int idx = d + j; if (idx >= 0 && idx<= ${o}) { float z = getX(b, r, c, idx); sum += z * z; } } float val = x * ${a}; setOutput(val); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ae9ST:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LRNPackedProgram",()=>a);class a{constructor(e,t,r,n,s){let a;this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let o=e[3]-1;this.outputShape=e;let l=`float(${r}) + float(${n}) * sum`;a=.5===s?`inversesqrt(${l})`:1===s?`1.0/(${l})`:`exp(log(${l}) * float(-${s}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords.x; int r = coords.y; int c = coords.z; int d = coords.w; bool hasNextCol = d< ${this.outputShape[3]}; bool hasNextRow = c < ${this.outputShape[2]}; vec4 sum = vec4(0.); vec4 xFragAtOutputCoords = getX(b, r, c, d); vec4 xAtOutputCoords = vec4( getChannel(xFragAtOutputCoords, vec2(c, d)), hasNextCol ? getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0, hasNextRow ? getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0, (hasNextRow && hasNextCol) ? getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0 ); int firstChannel = d - ${t}; vec2 cache = vec2(0.); if(firstChannel >= 0){ vec4 firstChannelFrag = getX(b, r, c, firstChannel); cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel)); if(hasNextRow){ cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel)); } } ivec2 depth = ivec2(d, d + 1); for (int j = - ${t}; j<= ${t}; j++) { ivec2 idx = depth + j; bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0)); bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${o})); bool depthInRange = aboveLowerBound.x && belowUpperBound.x; bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y; if(depthInRange || depthPlusOneInRange){ vec4 z = vec4(0.); vec4 xFragAtCurrentDepth; z.xz = cache.xy; if(depthPlusOneInRange && hasNextCol){ xFragAtCurrentDepth = idx.y != d ? getX(b, r, c, idx.y) : xFragAtOutputCoords; z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y)); if(hasNextRow){ z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y)); } } cache.xy = z.yw; sum += z * z; } } vec4 result = xAtOutputCoords * ${a}; setOutput(result); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1QDvH":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lrnGrad",()=>l),s.export(r,"LRNGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../lrn_grad_gpu");let l=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s,y:a,dy:l}=t,{depthRadius:i,bias:u,alpha:p,beta:c}=n,d=new(0,o.LRNGradProgram)(s.shape,i,u,p,c);return r.runWebGLProgram(d,[s,a,l],s.dtype)},i={kernelName:a.LRNGrad,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../lrn_grad_gpu":"jps1r","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jps1r:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LRNGradProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=r,this.alpha=n,this.beta=s,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int r = coords[1]; int c = coords[2]; float result = 0.0; for (int d = 0; d< ${this.depth}; ++d) { int depthBegin = int(max(0.0, float(d - ${t}))); int depthEnd = int(min(float(${this.depth}), float(d + ${t} + 1))); const int MIN_DEPTH_BEGIN = 0; const int MAX_DEPTH_END = ${this.depth}; float norm = 0.0; for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) { if (k < depthBegin){ continue; } else if (k >= depthBegin && k< depthEnd) { norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k); } else { break; } } norm = float(${n}) * norm + float(${r}); for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){ if (k < depthBegin){ continue; } else if (k >= depthBegin && k< depthEnd){ float dyi = -2.0 * float(${n}) * float(${s}) * getInputImage(b, r, c, k) * getOutputImage(b, r, c, d) / norm; if (k == d) { dyi += pow(norm, -1.0 * ${s}); } if (k == coords[3]) { dyi *= getDy(b, r, c, d); result += dyi; } } else { break; } } } setOutput(result); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"15AIZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"max",()=>u),s.export(r,"maxConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("./Max_impl"),i=e("./Transpose_impl");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r,{reductionIndices:p,keepDims:c}=s,d=u.shape.length,f=a.util.parseAxisParam(p,u.shape),h=f,m=a.backend_util.getAxesPermutation(h,d),g=null!=m,x=n.shouldExecuteOnCPU([u]),v=u;if(g){if(x){let e=n.texData.get(v.dataId).values,t=Array(d);for(let e=0;e<t.length;e++)t[e]=u.shape[m[e]];let r=(0,i.transposeImplCPU)(e,u.shape,u.dtype,m,t);v=n.makeTensorInfo(t,u.dtype),n.texData.get(v.dataId).values=r}else v=(0,i.transposeImpl)(u,m,n);h=a.backend_util.getInnerMostAxes(h.length,d)}a.backend_util.assertAxesAreInnerMostDims("max",h,d);let[y,_]=a.backend_util.computeOutAndReduceShapes(v.shape,h),b=y;if(c&&(b=a.backend_util.expandShapeToKeepDim(y,f)),x){let e=n.texData.get(v.dataId).values,r=(0,o.maxImplCPU)(e,a.util.sizeFromShape(_),b,u.dtype);t=n.makeTensorInfo(b,u.dtype),n.texData.get(t.dataId).values=r}else t=(0,l.maxImpl)(v,_,b,n);return g&&n.disposeIntermediateTensorInfo(v),t}let p={kernelName:a.Max,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","./Max_impl":"aHCs4","./Transpose_impl":[["transposeImpl","iUCh6"],["transposeImplCPU","awGPZ"]],"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aHCs4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxImpl",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("../kernels/Reshape");function i(e,t,r,n){let s=a.util.sizeFromShape(t),i=a.util.sizeFromShape(e.shape),u=(0,l.reshape)({inputs:{x:e},attrs:{shape:[i/s,s]},backend:n}),p=(0,o.reduce)(u,e.dtype,"max",n),c=(0,l.reshape)({inputs:{x:p},attrs:{shape:r},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),c}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/reduce":"ghhUV","../kernels/Reshape":"6JJRX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],apiBX:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maximum",()=>d),s.export(r,"maximumConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernel_utils/kernel_funcs_utils"),u=e("../kernel_utils/shared");let p=o.CHECK_NAN_SNIPPET+` return max(a, b); `,c=` vec4 result = vec4(max(a, b)); 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); `+l.CHECK_NAN_SNIPPET_PACKED+` return result; `,d=(0,i.binaryKernelFunc)({opSnippet:p,packedOpSnippet:c,cpuKernelImpl:u.maximumImplCPU}),f={kernelName:a.Maximum,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"hADTC","../binaryop_gpu":"a2Mj7","../binaryop_packed_gpu":"fwruC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bLGeN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool",()=>u),s.export(r,"maxPoolConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../pool_gpu"),l=e("../webgl_util"),i=e("./Identity");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t;(0,l.assertNotComplex)(s,"maxPool");let{filterSize:u,strides:p,pad:c,dimRoundingMode:d}=n;a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(p,1),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${p} and dilations '1'`);let f=a.backend_util.computePool2DInfo(s.shape,u,p,1,c,d);if(1===f.filterWidth&&1===f.filterHeight&&a.util.arraysEqual(f.inShape,f.outShape))return(0,i.identity)({inputs:{x:s},backend:r});let h=new(0,o.Pool2DProgram)(f,"max",!1);return r.runWebGLProgram(h,[s],s.dtype)}let p={kernelName:a.MaxPool,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../pool_gpu":"6Iq2c","../webgl_util":"hSqB7","./Identity":"eH68D","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"88kSn":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3d",()=>l),s.export(r,"maxPool3DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../pool_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{filterSize:l,strides:i,pad:u,dataFormat:p,dimRoundingMode:c}=n,d=a.backend_util.computePool3DInfo(s.shape,l,i,[1,1,1],u,c,p),f=new(0,o.Pool3DProgram)(d,"max",!1);return r.runWebGLProgram(f,[s],s.dtype)}let i={kernelName:a.MaxPool3D,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../pool_gpu":"6Iq2c","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lj8jK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3DGrad",()=>i),s.export(r,"maxPool3DGradConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../max_pool_backprop_gpu"),l=e("../pool_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:i}=t,{filterSize:u,strides:p,pad:c,dimRoundingMode:d}=n,f=a.backend_util.computePool3DInfo(i.shape,u,p,[1,1,1],c,d),h=new(0,l.Pool3DProgram)(f,"max",!0),m=r.runWebGLProgram(h,[i],i.dtype),g=new(0,o.MaxPool3DBackpropProgram)(f),x=r.runWebGLProgram(g,[s,m],i.dtype);return r.disposeIntermediateTensorInfo(m),x}let u={kernelName:a.MaxPool3DGrad,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../max_pool_backprop_gpu":"3Mg5I","../pool_gpu":"6Iq2c","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3Mg5I":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MaxPool2DBackpropProgram",()=>a),s.export(r,"MaxPool3DBackpropProgram",()=>o);class a{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,r=e.strideWidth,n=e.dilationHeight,s=e.effectiveFilterHeight,a=e.effectiveFilterWidth,o=s-1-e.padInfo.top,l=a-1-e.padInfo.left;this.userCode=` const ivec2 pads = ivec2(${o}, ${l}); void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int d = coords[3]; ivec2 dyRCCorner = coords.yz - pads; int dyRCorner = dyRCCorner.x; int dyCCorner = dyRCCorner.y; // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d). // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; for (int wR = 0; wR< ${s}; wR += ${n}) { float dyR = float(dyRCorner + wR) / ${t}.0; if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { continue; } int idyR = int(dyR); for (int wC = 0; wC< ${a}; wC++) { float dyC = float(dyCCorner + wC) / ${r}.0; if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || fract(dyC) > 0.0) { continue; } int idyC = int(dyC); float dyValue = getDy(b, idyR, idyC, d); int maxPosValue = ${s*a-1} - int(getMaxPos(b, idyR, idyC, d)); // Get the current value, check it against the value from the // position matrix. int curPosValue = wR * ${a} + wC; float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); dotProd += dyValue * mask; } } setOutput(dotProd); } `}}class o{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,r=e.strideHeight,n=e.strideWidth,s=e.dilationDepth,a=e.dilationHeight,o=e.dilationWidth,l=e.effectiveFilterDepth,i=e.effectiveFilterHeight,u=e.effectiveFilterWidth,p=l-1-e.padInfo.front,c=i-1-e.padInfo.top,d=u-1-e.padInfo.left;this.userCode=` const ivec3 pads = ivec3(${p}, ${c}, ${d}); void main() { ivec5 coords = getOutputCoords(); int batch = coords.x; int ch = coords.u; ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; int dyDCorner = dyCorner.x; int dyRCorner = dyCorner.y; int dyCCorner = dyCorner.z; // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get // dx(xD, xR, xC, ch). // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; for (int wD = 0; wD< ${l}; wD += ${s}) { float dyD = float(dyDCorner + wD) / ${t}.0; if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) { continue; } int idyD = int(dyD); for (int wR = 0; wR< ${i}; wR += ${a}) { float dyR = float(dyRCorner + wR) / ${r}.0; if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { continue; } int idyR = int(dyR); for (int wC = 0; wC< ${u}; wC += ${o}) { float dyC = float(dyCCorner + wC) / ${n}.0; if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || fract(dyC) > 0.0) { continue; } int idyC = int(dyC); float dyValue = getDy(batch, idyD, idyR, idyC, ch); int maxPosValue = ${l*i*u-1} - int(getMaxPos(batch, idyD, idyR, idyC, ch)); // Get the current value, check it against the value from the // position matrix. int curPosValue = wD * ${i} * ${u} + wR * ${u} + wC; float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); dotProd += dyValue * mask; } } } setOutput(dotProd); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],e2UoK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolGrad",()=>u),s.export(r,"maxPoolGradConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../max_pool_backprop_gpu"),l=e("../pool_gpu"),i=e("../webgl_util");function u(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:u,output:p}=t;(0,i.assertNotComplex)([u,p],"maxPoolGrad");let{filterSize:c,strides:d,pad:f,dimRoundingMode:h}=n,m=a.backend_util.computePool2DInfo(u.shape,c,d,1,f,h),g=new(0,l.Pool2DProgram)(m,"max",!0),x=r.runWebGLProgram(g,[u],u.dtype),v=new(0,o.MaxPool2DBackpropProgram)(m),y=r.runWebGLProgram(v,[s,x],u.dtype);return r.disposeIntermediateTensorInfo(x),y}let p={kernelName:a.MaxPoolGrad,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../max_pool_backprop_gpu":"3Mg5I","../pool_gpu":"6Iq2c","../webgl_util":"hSqB7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eue0R:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmaxConfig",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./MaxPoolWithArgmax_impl");let l={kernelName:a.MaxPoolWithArgmax,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{x:n}=e,{filterSize:s,strides:l,pad:i,includeBatchInIndex:u}=t;a.util.assert(4===n.shape.length,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);let p=[1,1];a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(l,p),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${l} and dilations '${p}'`);let c=a.backend_util.computePool2DInfo(n.shape,s,l,p,i),[d,f]=(0,o.maxPoolWithArgmaxImpl)(n,u,c,r);return[d,f]}}},{"@tensorflow/tfjs-core":"hADTC","./MaxPoolWithArgmax_impl":"kNWzJ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kNWzJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmaxImpl",()=>o);var a=e("../pool_gpu");function o(e,t,r,n){let s=new(0,a.Pool2DProgram)(r,"max",!1),o=n.runWebGLProgram(s,[e],"float32");return s=new(0,a.Pool2DProgram)(r,"max",!0,!0,t),[o,n.runWebGLProgram(s,[e],"float32")]}},{"../pool_gpu":"6Iq2c","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eyzN2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"meanConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Mean_impl"),l=e("./Transpose_impl");let i={kernelName:a.Mean,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{x:n}=e,{keepDims:s,axis:i}=t,u=n.shape.length,p=a.util.parseAxisParam(i,n.shape),c=p,d=a.backend_util.getAxesPermutation(c,u),f=null!=d,h=r.shouldExecuteOnCPU([n]),m=[],g=n;if(f){if(h){let e=r.texData.get(g.dataId).values,t=Array(u);for(let e=0;e<t.length;e++)t[e]=n.shape[d[e]];let s=(0,l.transposeImplCPU)(e,n.shape,n.dtype,d,t);g=r.makeTensorInfo(t,n.dtype),r.texData.get(g.dataId).values=s}else g=(0,l.transposeImpl)(n,d,r);m.push(g),c=a.backend_util.getInnerMostAxes(c.length,u)}a.backend_util.assertAxesAreInnerMostDims("sum",c,u);let[x,v]=a.backend_util.computeOutAndReduceShapes(g.shape,c),y=x;s&&(y=a.backend_util.expandShapeToKeepDim(x,p));let _=(0,o.meanImpl)(g,v,y,r);for(let e of m)r.disposeIntermediateTensorInfo(e);return _}}},{"@tensorflow/tfjs-core":"hADTC","./Mean_impl":"iriUo","./Transpose_impl":[["transposeImpl","iUCh6"],["transposeImplCPU","awGPZ"]],"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iriUo:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"meanImpl",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("../kernels/Reshape");function i(e,t,r,n){let s=a.util.sizeFromShape(t),i=a.util.sizeFromShape(e.shape),u=(0,l.reshape)({inputs:{x:e},attrs:{shape:[i/s,s]},backend:n}),p=(0,o.reduce)(u,"float32","mean",n),c=(0,l.reshape)({inputs:{x:p},attrs:{shape:r},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),c}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/reduce":"ghhUV","../kernels/Reshape":"6JJRX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dIWud:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"min",()=>u),s.export(r,"minConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("./Reshape"),i=e("./Transpose");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r,{axis:p,keepDims:c}=s,d=u.shape.length,f=a.util.parseAxisParam(p,u.shape),h=f,m=a.backend_util.getAxesPermutation(h,d),g=u;null!=m&&(g=(0,i.transpose)({inputs:{x:u},backend:n,attrs:{perm:m}}),h=a.backend_util.getInnerMostAxes(h.length,u.shape.length)),a.backend_util.assertAxesAreInnerMostDims("min",h,d);let[x,v]=a.backend_util.computeOutAndReduceShapes(g.shape,h),y=a.util.sizeFromShape(v),_=(0,l.reshape)({inputs:{x:g},backend:n,attrs:{shape:[-1,y]}}),b=(0,o.reduce)(_,_.dtype,"min",n);if(c){let e=a.backend_util.expandShapeToKeepDim(x,f);t=(0,l.reshape)({inputs:{x:b},backend:n,attrs:{shape:e}})}else t=(0,l.reshape)({inputs:{x:b},backend:n,attrs:{shape:x}});return n.disposeIntermediateTensorInfo(_),n.disposeIntermediateTensorInfo(b),null!=m&&n.disposeIntermediateTensorInfo(g),t}let p={kernelName:a.Min,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/reduce":"ghhUV","./Reshape":"6JJRX","./Transpose":"6x6Ts","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dkrAD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"minimum",()=>d),s.export(r,"minimumConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernel_utils/kernel_funcs_utils"),u=e("../kernel_utils/shared");let p=o.CHECK_NAN_SNIPPET+` return min(a, b); `,c=` vec4 result = vec4(min(a, b)); 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); `+l.CHECK_NAN_SNIPPET_PACKED+` return result; `,d=(0,i.binaryKernelFunc)({opSnippet:p,packedOpSnippet:c,cpuKernelImpl:u.minimumImplCPU}),f={kernelName:a.Minimum,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"hADTC","../binaryop_gpu":"a2Mj7","../binaryop_packed_gpu":"fwruC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hiTbr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mirrorPadKernelFunc",()=>i),s.export(r,"mirrorPadConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../mirror_pad_gpu"),l=e("../mirror_pad_packed_gpu");let i=({inputs:e,backend:t,attrs:r})=>{let{x:n}=e,{paddings:s,mode:i}=r,u=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,l.MirrorPadPackedProgram)(n.shape,s,i):new(0,o.MirrorPadProgram)(n.shape,s,i);return t.runWebGLProgram(u,[n],n.dtype)},u={kernelName:a.MirrorPad,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../mirror_pad_gpu":"k1Kdk","../mirror_pad_packed_gpu":"4mdW8","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],k1Kdk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MirrorPadProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r){this.variableNames=["x"],this.outputShape=t.map((t,r)=>t[0]+e[r]+t[1]);let n=e.length,s=(0,a.getCoordsDataType)(n),o=t.map(e=>e[0]).join(","),l=t.map((t,r)=>t[0]+e[r]).join(","),i=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n),u=+("reflect"!==r);if(1===n){this.userCode=` int start = ${o}; int end = ${l}; void main() { int outC = getOutputCoords(); if (outC< start) { outC = start * 2 - outC - ${u}; } else if(outC >= end) { outC = (end - 1) * 2 - outC + ${u}; } setOutput(getX(outC - start)); } `;return}this.userCode=` ${s} start = ${s}(${o}); ${s} end = ${s}(${l}); void main() { ${s} outC = getOutputCoords(); for (int i = 0; i< ${n}; i++) { if (outC[i] < start[i]) { outC[i] = start[i] * 2 - outC[i] - ${u}; } else if(outC[i] >= end[i]) { outC[i] = (end[i] - 1) * 2 - outC[i] + ${u}; } } ${s} coords = outC - start; setOutput(getX(${i})); } `}}},{"./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4mdW8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MirrorPadPackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e,t,r){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((t,r)=>t[0]+e[r]+t[1]);let n=e.length,s=(0,o.getCoordsDataType)(n),l=t.map(e=>e[0]).join(","),i=t.map((t,r)=>t[0]+e[r]).join(","),u=(0,a.getChannels)("rc",n),p=(0,a.getChannels)("source",n),c=`${u[n-1]}< ${this.outputShape[n-1]}`,d=1===n?"source":`vec2(${p.slice(-2).join()})`,f=+("reflect"!==r),h="";if(1===n){let e=` ${s} source = rc; if (source < start) { source = start * 2 - source - ${f}; } else if (source >= end) { source = (end - 1) * 2 - source + ${f}; } source -= start; `;h=` ${s} rc = outputLoc; ${e} result[0] = getChannel(getX(${p.join()}), ${d}); ${u[n-1]} += 1; if(${c}) { ${e} result[1] = getChannel(getX(${p.join()}), ${d}); } `}else{let e=` ${s} source = rc; ${s} lt = ${s}(lessThan(source, start)); ${s} gte = ${s}(greaterThanEqual(source, end)); ${s} orig = 1 - (lt + gte); source = orig * source + lt * (start * 2 - source - ${f}) + gte * ((end - 1) * 2 - source + ${f}); source -= start; `;h=` ${s} rc = outputLoc; ${e} result[0] = getChannel(getX(${p.join()}), ${d}); ${u[n-1]} += 1; if(${c}) { ${e} result[1] = getChannel(getX(${p.join()}), ${d}); } rc = outputLoc; ${u[n-2]} += 1; if(${u[n-2]}< ${this.outputShape[n-2]}) { ${e} result[2] = getChannel(getX(${p.join()}), ${d}); ${u[n-1]} += 1; if(${c}) { ${e} result[3] = getChannel(getX(${p.join()}), ${d}); } } `}this.userCode=` const ${s} start = ${s}(${l}); const ${s} end = ${s}(${i}); void main() { ${s} outputLoc = getOutputCoords(); vec4 result = vec4(0.); ${h} setOutput(result); } `}}},{"./packing_util":"gX790","./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],HrpnP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mod",()=>p),s.export(r,"modConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils");let i=`if (b == 0.0) return NAN; return mod(a, b);`,u=` vec4 result = mod(a, b); bvec4 isNaN = equal(b, vec4(0.0)); `+o.CHECK_NAN_SNIPPET_PACKED+` return result; `,p=(0,l.binaryKernelFunc)({opSnippet:i,packedOpSnippet:u}),c={kernelName:a.Mod,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../binaryop_packed_gpu":"fwruC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"023g2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multinomial",()=>i),s.export(r,"multinomialConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../multinomial_gpu"),l=e("./Softmax");function i(e){let{inputs:t,backend:r,attrs:n}=e,{logits:s}=t,{numSamples:a,seed:i,normalized:u}=n,p=u?s:(0,l.softmax)({inputs:{logits:s},backend:r,attrs:{dim:s.shape.length-1}}),c=p.shape[0],d=p.shape[1],f=new(0,o.MultinomialProgram)(c,d,a),h=r.runWebGLProgram(f,[p],"int32",[[i]]);return u||r.disposeIntermediateTensorInfo(p),h}let u={kernelName:a.Multinomial,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../multinomial_gpu":"1tJSb","./Softmax":"cDakL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1tJSb":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MultinomialProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,r],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; float r = random(seed); float cdf = 0.0; for (int i = 0; i< ${t-1}; i++) { cdf += getProbs(batch, i); if (r < cdf) { setOutput(float(i)); return; } } // If no other event happened, last event happened. setOutput(float(${t-1})); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cDakL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softmax",()=>d),s.export(r,"softmaxConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("./Exp"),l=e("./Max"),i=e("./RealDiv"),u=e("./Reshape"),p=e("./Sub"),c=e("./Sum");function d(e){let{inputs:t,backend:r,attrs:n}=e,{logits:s}=t,{dim:d}=n,f=a.util.parseAxisParam([d],s.shape),h=(0,l.max)({inputs:{x:s},backend:r,attrs:{reductionIndices:f,keepDims:!1}}),m=a.backend_util.expandShapeToKeepDim(h.shape,f),g=(0,u.reshape)({inputs:{x:h},backend:r,attrs:{shape:m}}),x=(0,p.sub)({inputs:{a:s,b:g},backend:r}),v=(0,o.exp)({inputs:{x:x},backend:r}),y=(0,c.sum)({inputs:{x:v},backend:r,attrs:{axis:f,keepDims:!1}}),_=(0,u.reshape)({inputs:{x:y},backend:r,attrs:{shape:m}}),b=(0,i.realDiv)({inputs:{a:v,b:_},backend:r});return r.disposeIntermediateTensorInfo(h),r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(x),r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(y),r.disposeIntermediateTensorInfo(_),b}let f={kernelName:a.Softmax,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"hADTC","./Exp":"5Bqs2","./Max":"15AIZ","./RealDiv":"iTd5N","./Reshape":"6JJRX","./Sub":"eCliL","./Sum":"6yTIe","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iTd5N:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"realDiv",()=>u),s.export(r,"realDivConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` if (a == b) { return 1.0; }; return a / b;`,i=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; if(a.x == b.x) { result.x = 1.; } if(a.y == b.y) { result.y = 1.; } if(a.z == b.z) { result.z = 1.; } if(a.w == b.w) { result.w = 1.; } return result; `,u=(0,o.binaryKernelFunc)({opSnippet:l,packedOpSnippet:i,checkOutOfBounds:!0}),p={kernelName:a.RealDiv,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eCliL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sub",()=>u),s.export(r,"subConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return a - b;",u=(0,o.binaryKernelFunc)({opSnippet:i,packedOpSnippet:i,supportsComplex:!0,cpuKernelImpl:l.subImplCPU}),p={kernelName:a.Sub,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8Dggw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"neg",()=>c),s.export(r,"negConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../unaryop_gpu"),i=e("../unaryop_packed_gpu");let u=l.CHECK_NAN_SNIPPET+` return -x; `,p=` vec4 result = -x; bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; result.g = isNaN.g ? x.g : result.g; result.b = isNaN.b ? x.b : result.b; result.a = isNaN.a ? x.a : result.a; return result; `;function c(e){let t,{inputs:r,backend:n}=e,{x:s}=r;if(n.shouldExecuteOnCPU([s])){let e=n.texData.get(s.dataId),[t,r]=(0,o.negImplCPU)(e.values,s.shape,s.dtype);return n.makeTensorInfo(r,s.dtype,t)}return t=(0,a.env)().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new(0,i.UnaryOpPackedProgram)(s.shape,p):new(0,l.UnaryOpProgram)(s.shape,u),n.runWebGLProgram(t,[s],s.dtype)}let d={kernelName:a.Neg,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","../unaryop_gpu":"dKkzg","../unaryop_packed_gpu":"5kSmi","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cAAs8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV3",()=>l),s.export(r,"nonMaxSuppressionV3Config",()=>i);var a=e("@tensorflow/tfjs-core");let o=a.kernel_impls.nonMaxSuppressionV3Impl;function l(e){a.backend_util.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:l}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p}=n,{selectedIndices:c}=o(r.readSync(s.dataId),r.readSync(l.dataId),i,u,p);return r.makeTensorInfo([c.length],"int32",new Int32Array(c))}let i={kernelName:a.NonMaxSuppressionV3,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2rIMJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV4",()=>l),s.export(r,"nonMaxSuppressionV4Config",()=>i);var a=e("@tensorflow/tfjs-core");let o=a.kernel_impls.nonMaxSuppressionV4Impl;function l(e){a.backend_util.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:l}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p,padToMaxOutputSize:c}=n,{selectedIndices:d,validOutputs:f}=o(r.readSync(s.dataId),r.readSync(l.dataId),i,u,p,c);return[r.makeTensorInfo([d.length],"int32",new Int32Array(d)),r.makeTensorInfo([],"int32",new Int32Array([f]))]}let i={kernelName:a.NonMaxSuppressionV4,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kQF6C:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV5",()=>l),s.export(r,"nonMaxSuppressionV5Config",()=>i);var a=e("@tensorflow/tfjs-core");let o=a.kernel_impls.nonMaxSuppressionV5Impl;function l(e){a.backend_util.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:l}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p,softNmsSigma:c}=n,{selectedIndices:d,selectedScores:f}=o(r.readSync(s.dataId),r.readSync(l.dataId),i,u,p,c);return[r.makeTensorInfo([d.length],"int32",new Int32Array(d)),r.makeTensorInfo([f.length],"float32",new Float32Array(f))]}let i={kernelName:a.NonMaxSuppressionV5,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fI3HW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"oneHot",()=>i),s.export(r,"oneHotConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../onehot_gpu"),l=e("./Reshape");let i=e=>{let{inputs:t,backend:r,attrs:n}=e,{indices:s}=t,{dtype:i,depth:u,onValue:p,offValue:c}=n,d=a.util.sizeFromShape(s.shape),f=new(0,o.OneHotProgram)(d,u,p,c),h=(0,l.reshape)({inputs:{x:s},backend:r,attrs:{shape:[d]}}),m=r.runWebGLProgram(f,[h],i);r.disposeIntermediateTensorInfo(h);let g=[...s.shape,u],x=(0,l.reshape)({inputs:{x:m},backend:r,attrs:{shape:g}});return r.disposeIntermediateTensorInfo(m),x},u={kernelName:a.OneHot,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../onehot_gpu":"kI876","./Reshape":"6JJRX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kI876:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"OneHotProgram",()=>a);class a{constructor(e,t,r,n){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int index = round(getIndices(coords.x)); setOutput(mix(float(${n}), float(${r}), float(index == coords.y))); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dZiwf:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"onesLike",()=>c),s.export(r,"onesLikeConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Fill"),i=e("./Imag"),u=e("./Real"),p=e("./ZerosLike");function c(e){let{inputs:t,backend:r}=e,{x:n}=t;if("string"===n.dtype)throw Error("onesLike is not supported under string dtype");if("complex64"!==n.dtype)return(0,l.fill)({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:r});{let e=(0,u.real)({inputs:{input:n},backend:r}),t=c({inputs:{x:e},backend:r}),s=(0,i.imag)({inputs:{input:n},backend:r}),a=(0,p.zerosLike)({inputs:{x:s},backend:r}),l=(0,o.complex)({inputs:{real:t,imag:a},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(a),l}}let d={kernelName:a.OnesLike,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"hADTC","./Complex":"2jgL8","./Fill":"cTMIP","./Imag":"lIWnW","./Real":"hXKZs","./ZerosLike":"9lTC1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9lTC1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zerosLike",()=>p),s.export(r,"zerosLikeConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Fill"),i=e("./Imag"),u=e("./Real");function p(e){let{inputs:t,backend:r}=e,{x:n}=t;if("complex64"!==n.dtype)return(0,l.fill)({attrs:{shape:n.shape,dtype:n.dtype,value:"string"===n.dtype?"":0},backend:r});{let e=(0,u.real)({inputs:{input:n},backend:r}),t=p({inputs:{x:e},backend:r}),s=(0,i.imag)({inputs:{input:n},backend:r}),a=p({inputs:{x:s},backend:r}),l=(0,o.complex)({inputs:{real:t,imag:a},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(a),l}}let c={kernelName:a.ZerosLike,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","./Complex":"2jgL8","./Fill":"cTMIP","./Imag":"lIWnW","./Real":"hXKZs","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lEeEU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pack",()=>i),s.export(r,"packConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./Concat"),l=e("./ExpandDims");function i(e){let{inputs:t,backend:r,attrs:n}=e,{axis:s}=n;if(1===t.length)return(0,l.expandDims)({inputs:{input:t[0]},backend:r,attrs:{dim:s}});let i=t[0].shape,u=t[0].dtype;t.forEach(e=>{a.util.assertShapesMatch(i,e.shape,"All tensors passed to stack must have matching shapes"),a.util.assert(u===e.dtype,()=>"All tensors passed to stack must have matching dtypes")});let p=[],c=t.map(e=>{let t=(0,l.expandDims)({inputs:{input:e},backend:r,attrs:{dim:s}});return p.push(t),t}),d=(0,o.concat)({inputs:c,backend:r,attrs:{axis:s}});return p.forEach(e=>r.disposeIntermediateTensorInfo(e)),d}let u={kernelName:a.Pack,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","./Concat":"4EIsT","./ExpandDims":"iZAhl","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6Katd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"padV2",()=>u),s.export(r,"padV2Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../pad_gpu"),l=e("../pad_packed_gpu"),i=e("./Fill");let u=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{paddings:u,constantValue:p}=n;if(0===a.util.sizeFromShape(s.shape)){let e=u.map((e,t)=>e[0]+s.shape[t]+e[1]);return(0,i.fill)({backend:r,attrs:{shape:e,value:p,dtype:s.dtype}})}let c=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,l.PadPackedProgram)(s.shape,u,p):new(0,o.PadProgram)(s.shape,u,p),d=[[p]];return r.runWebGLProgram(c,[s],s.dtype,d)},p={kernelName:a.PadV2,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../pad_gpu":"4iwSV","../pad_packed_gpu":"d8IqG","./Fill":"cTMIP","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4iwSV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PadProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((t,r)=>t[0]+e[r]+t[1]);let n=e.length,s=(0,a.getCoordsDataType)(n),o=t.map(e=>e[0]).join(","),l=t.map((t,r)=>t[0]+e[r]).join(","),i=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n);if(1===n){this.userCode=` int start = ${o}; int end = ${l}; void main() { int outC = getOutputCoords(); if (outC< start || outC >= end) { setOutput(value); } else { setOutput(getX(outC - start)); } } `;return}this.userCode=` ${s} start = ${s}(${o}); ${s} end = ${s}(${l}); void main() { ${s} outC = getOutputCoords(); if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) { setOutput(value); } else { ${s} coords = outC - start; setOutput(getX(${i})); } } `}}},{"./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],d8IqG:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PadPackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e,t,r){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((t,r)=>t[0]+e[r]+t[1]);let n=e.length,s=(0,o.getCoordsDataType)(n),l=t.map(e=>e[0]).join(","),i=t.map((t,r)=>t[0]+e[r]).join(","),u=(0,a.getChannels)("rc",n),p=(0,a.getChannels)("source",n),c=`${u[n-1]}< ${this.outputShape[n-1]}`,d=1===n?"source":`vec2(${p.slice(-2).join()})`,f=[`${s} rc = outputLoc;`,`${u[n-1]} += 1; if(${c}) { `,1===n?"":`} rc = outputLoc; ${u[n-2]} += 1; if(${u[n-2]} < ${this.outputShape[n-2]}) {`,1===n?"":` ${u[n-1]} += 1; if(${c}) {`],h=1===n?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))",m="";for(let e=0,t=1===n?2:4;e<t;e++)m+=` ${f[e]} if (${h}) { result[${e}] = float(value); } else { ${s} source = rc - start; result[${e}] = getChannel(getX(${p.join()}), ${d}); } `;m+=1===n?"} ":"}}",this.userCode=` const ${s} start = ${s}(${l}); const ${s} end = ${s}(${i}); void main() { ${s} outputLoc = getOutputCoords(); vec4 result = vec4(0.); ${m} setOutput(result); } `}}},{"./packing_util":"gX790","./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dN6YC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pow",()=>p),s.export(r,"powConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils");let i=` if(a< 0.0 && floor(b) < b){ return NAN; } if (b == 0.0) { return 1.0; } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); `,u=` // 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); vec4 result = multiplier * pow(abs(a), b); // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS bvec4 isExpZero = equal(b, vec4(0.0)); result.r = isExpZero.r ? 1.0 : result.r; result.g = isExpZero.g ? 1.0 : result.g; result.b = isExpZero.b ? 1.0 : result.b; result.a = isExpZero.a ? 1.0 : result.a; 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); `+o.CHECK_NAN_SNIPPET_PACKED+` return result; `,p=(0,l.binaryKernelFunc)({opSnippet:i,packedOpSnippet:u}),c={kernelName:a.Pow,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../binaryop_packed_gpu":"fwruC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7pkku":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prod",()=>p),s.export(r,"prodConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("../kernel_utils/shared"),i=e("./Reshape"),u=e("./Transpose");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p}=r,{axis:c,keepDims:d}=s,f=p.shape.length,h=[],m=a.util.parseAxisParam(c,p.shape),g=m,x=a.backend_util.getAxesPermutation(g,f),v=p;if(null!=x&&(v=(0,u.transpose)({inputs:{x:p},backend:n,attrs:{perm:x}}),g=a.backend_util.getInnerMostAxes(g.length,f),h.push(v)),a.backend_util.assertAxesAreInnerMostDims("prod",g,f),n.shouldExecuteOnCPU([v])){let e=n.texData.get(v.dataId).values,{outVals:r,outShape:s,outDtype:a}=(0,l.prodImplCPU)(v.shape,v.dtype,e,g);t=n.makeTensorInfo(s,a,r)}else{let[e,r]=a.backend_util.computeOutAndReduceShapes(v.shape,g),s=a.util.sizeFromShape(r),l=(0,i.reshape)({inputs:{x:v},backend:n,attrs:{shape:[-1,s]}}),u=(0,a.sumOutType)(p.dtype),c=(0,o.reduce)(l,u,"prod",n);t=(0,i.reshape)({inputs:{x:c},backend:n,attrs:{shape:e}}),h.push(l),h.push(c)}if(d){h.push(t);let e=a.backend_util.expandShapeToKeepDim(t.shape,m);t=(0,i.reshape)({inputs:{x:t},backend:n,attrs:{shape:e}})}return h.forEach(e=>n.disposeIntermediateTensorInfo(e)),t}let c={kernelName:a.Prod,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/reduce":"ghhUV","../kernel_utils/shared":"awGPZ","./Reshape":"6JJRX","./Transpose":"6x6Ts","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lNiXX:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedGather",()=>l),s.export(r,"raggedGatherConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{paramsNestedSplits:s,paramsDenseValues:a,indices:l}=t,{outputRaggedRank:i}=n,u=s.map(e=>r.readSync(e.dataId)),p=s.map(e=>e.shape),c=r.readSync(a.dataId),d=r.readSync(l.dataId),[f,h,m]=(0,o.raggedGatherImplCPU)(u,p,c,a.shape,a.dtype,d,l.shape,i),g=f.map(e=>r.makeTensorInfo([e.length],"int32",e)),x=r.makeTensorInfo(m,a.dtype,h);return g.concat([x])}let i={kernelName:a.RaggedGather,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4g5B2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedRange",()=>l),s.export(r,"raggedRangeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{starts:n,limits:s,deltas:a}=t,l=r.readSync(n.dataId),i=r.readSync(s.dataId),u=r.readSync(a.dataId),[p,c]=(0,o.raggedRangeImplCPU)(l,n.shape,n.dtype,i,s.shape,u,a.shape);return[r.makeTensorInfo([p.length],"int32",p),r.makeTensorInfo([c.length],n.dtype,c)]}let i={kernelName:a.RaggedRange,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2ARTj":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedTensorToTensor",()=>l),s.export(r,"raggedTensorToTensorConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{shape:s,values:a,defaultValue:l,rowPartitionTensors:i}=t,{rowPartitionTypes:u}=n,p=r.readSync(s.dataId),c=r.readSync(a.dataId),d=r.readSync(l.dataId),f=i.map(e=>r.readSync(e.dataId)),h=i.map(e=>e.shape),[m,g]=(0,o.raggedTensorToTensorImplCPU)(p,s.shape,c,a.shape,a.dtype,d,l.shape,f,h,u);return r.makeTensorInfo(m,a.dtype,g)}let i={kernelName:a.RaggedTensorToTensor,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1qqQJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"range",()=>l),s.export(r,"rangeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");let l=e=>{let{backend:t,attrs:r}=e,{start:n,stop:s,step:a,dtype:l}=r,i=(0,o.rangeImplCPU)(n,s,a,l);return t.makeTensorInfo([i.length],l,i)},i={kernelName:a.Range,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3U322":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reciprocal",()=>o),s.export(r,"reciprocalConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return 1.0 / x;"}),l={kernelName:a.Reciprocal,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bWdfN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu",()=>u),s.export(r,"reluConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` return (x< 0.0) ? 0.0 : x; `,i=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; result.g = isNaN.g ? x.g : result.g; result.b = isNaN.b ? x.b : result.b; result.a = isNaN.a ? x.a : result.a; return result; `,u=(0,o.unaryKernelFunc)({opSnippet:l,packedOpSnippet:i}),p={kernelName:a.Relu,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../unaryop_gpu":"dKkzg","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4vqNA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu6",()=>u),s.export(r,"relu6Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` return (x< 0.0) ? 0.0 : min(6.0, x); `,i=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; result.g = isNaN.g ? x.g : result.g; result.b = isNaN.b ? x.b : result.b; result.a = isNaN.a ? x.a : result.a; return result; `,u=(0,o.unaryKernelFunc)({opSnippet:l,packedOpSnippet:i}),p={kernelName:a.Relu6,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../unaryop_gpu":"dKkzg","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cEb6n:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinear",()=>i),s.export(r,"resizeBilinearConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../resize_bilinear_gpu"),l=e("../resize_bilinear_packed_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{images:s}=t,{alignCorners:i,halfPixelCenters:u,size:p}=n,[c,d]=p,f=(0,a.env)().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new(0,l.ResizeBilinearPackedProgram)(s.shape,c,d,i,u):new(0,o.ResizeBilinearProgram)(s.shape,c,d,i,u);return r.runWebGLProgram(f,[s],"float32")}let u={kernelName:a.ResizeBilinear,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../resize_bilinear_gpu":"7ZFAw","../resize_bilinear_packed_gpu":"2OnKZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7ZFAw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeBilinearProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["A"],this.outputShape=[];let[a,o,l,i]=e;this.outputShape=[a,t,r,i];let u=[n&&t>1?o-1:o,n&&r>1?l-1:l],p=[n&&t>1?t-1:t,n&&r>1?r-1:r];this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${u[0]/p[0]}, ${u[1]/p[1]}); const vec2 inputShapeRC = vec2(${o}.0, ${l}.0); void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int d = coords[3]; ivec2 yRC = coords.yz; // Fractional source index. vec2 sourceFracIndexRC = ${s?"(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":"vec2(yRC) * effectiveInputOverOutputRatioRC"}; // Compute the four integer indices. ivec2 sourceFloorRC = ivec2(max(sourceFracIndexRC, vec2(0.0))); ivec2 sourceCeilRC = ivec2( min(inputShapeRC - 1.0, ceil(sourceFracIndexRC))); float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d); float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d); float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d); float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d); vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC); float top = topLeft + (topRight - topLeft) * fracRC.y; float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y; float newValue = top + (bottom - top) * fracRC.x; setOutput(newValue); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2OnKZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeBilinearPackedProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[a,o,l,i]=e;this.outputShape=[a,t,r,i];let u=[n&&t>1?o-1:o,n&&r>1?l-1:l],p=[n&&t>1?t-1:t,n&&r>1?r-1:r];this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${u[0]/p[0]}, ${u[1]/p[1]}, ${u[1]/p[1]}); const vec3 inputShapeRC = vec3(${o}.0, ${l}.0, ${l}.0); float getAValue(int b, int r, int c, int d) { return getChannel(getA(b, r, c, d), vec2(c, d)); } void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int d = coords[3]; // Calculate values for next column in yRC.z. ivec3 yRC = coords.yzz + ivec3(0, 0, 1); // Fractional source index. vec3 sourceFracIndexRC = ${s?"(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":"vec3(yRC) * effectiveInputOverOutputRatioRC"}; // Compute the four integer indices. ivec3 sourceFloorRC = ivec3(max(sourceFracIndexRC, vec3(0.0))); ivec3 sourceCeilRC = ivec3( min(inputShapeRC - 1.0, ceil(sourceFracIndexRC))); // Should we calculate next column and row elements in 2x2 packed cell. bool hasNextCol = d< ${i-1}; bool hasNextRow = coords.z < ${r-1}; // In parallel, construct four corners for all four components in // packed 2x2 cell. vec4 topLeft = vec4( getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d), hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1) : 0.0, hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d) : 0.0, (hasNextRow && hasNextCol) ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0); vec4 bottomLeft = vec4( getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d), hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1) : 0.0, hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d) : 0.0, (hasNextRow && hasNextCol) ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0); vec4 topRight = vec4( getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d), hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1) : 0.0, hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d) : 0.0, (hasNextRow && hasNextCol) ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0); vec4 bottomRight = vec4( getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d), hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1) : 0.0, hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d) : 0.0, (hasNextRow && hasNextCol) ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0); vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC); vec4 top = mix(topLeft, topRight, fracRC.yyzz); vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz); vec4 newValue = mix(top, bottom, fracRC.x); setOutput(newValue); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],d9Mfx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinearGrad",()=>l),s.export(r,"resizeBilinearGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../resize_bilinear_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s,dy:a}=t,{alignCorners:l}=n,i=new(0,o.ResizeBilinearBackpropProgram)(a.shape,s.shape,l);return r.runWebGLProgram(i,[a],a.dtype)}let i={kernelName:a.ResizeBilinearGrad,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../resize_bilinear_backprop_gpu":"aBvtN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aBvtN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeBilinearBackpropProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,n,s]=t,[,a,o]=e,l=[r&&a>1?n-1:n,r&&o>1?s-1:s],i=[r&&a>1?a-1:a,r&&o>1?o-1:o],u=l[0]/i[0],p=l[1]/i[1],c=1/u,d=1/p,f=2*Math.ceil(c)+2,h=2*Math.ceil(d)+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int d = coords[3]; int r = coords[1]; int c = coords[2]; float accumulator = 0.0; const float heightScale = float(${u}); const float widthScale = float(${p}); const float invHeightScale = float(${c}); const float invWidthScale = float(${d}); const int winHeight = int(${f}); const int winWidth = int(${h}); // Compute bounds for where in dy we will look float startRLerp = floor(float(r) * invHeightScale); int startDyR = int(startRLerp - float(winHeight / 2)); float startCLerp = floor(float(c) * invWidthScale); int startDyC = int(startCLerp - float(winWidth / 2)); // Loop over dy for (int dyROffset = 0; dyROffset< winHeight; dyROffset++) { int dyR = dyROffset + startDyR; // Guard against the window exceeding the bounds of dy if (dyR < 0 || dyR >= ${a}) { continue; } for (int dyCOffset = 0; dyCOffset< winWidth; dyCOffset++) { int dyC = dyCOffset + startDyC; // Guard against the window exceeding the bounds of dy if (dyC < 0 || dyC >= ${o}) { continue; } float dxR = float(dyR) * heightScale; int topDxRIndex = int(floor(dxR)); int bottomDxRIndex = int(min(ceil(dxR), ${n-1}.0)); float dxRLerp = dxR - float(topDxRIndex); float inverseDxRLerp = 1.0 - dxRLerp; float dxC = float(dyC) * widthScale; int leftDxCIndex = int(floor(dxC)); int rightDxCIndex = int(min(ceil(dxC), ${s-1}.0)); float dxCLerp = dxC - float(leftDxCIndex); float inverseDxCLerp = 1.0 - dxCLerp; if (r == topDxRIndex && c == leftDxCIndex) { // topLeft accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp; } if (r == topDxRIndex && c == rightDxCIndex) { // topRight accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp; } if (r == bottomDxRIndex && c == leftDxCIndex) { // bottomLeft accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp; } if (r == bottomDxRIndex && c == rightDxCIndex) { // bottomRight accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp; } } } // End loop over dy setOutput(accumulator); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bmwc8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeNearestNeighbor",()=>i),s.export(r,"resizeNearestNeighborConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../resize_nearest_neighbor_gpu"),l=e("../resize_nearest_neighbor_packed_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{images:s}=t,{alignCorners:i,halfPixelCenters:u,size:p}=n,[c,d]=p,f=(0,a.env)().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new(0,l.ResizeNearestNeighborPackedProgram)(s.shape,c,d,i,u):new(0,o.ResizeNearestNeighborProgram)(s.shape,c,d,i,u);return r.runWebGLProgram(f,[s],s.dtype)}let u={kernelName:a.ResizeNearestNeighbor,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../resize_nearest_neighbor_gpu":"wVl0D","../resize_nearest_neighbor_packed_gpu":"3V7Ml","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],wVl0D:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeNearestNeighborProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["A"],this.outputShape=[];let[a,o,l,i]=e;this.outputShape=[a,t,r,i];let u=[n&&t>1?o-1:o,n&&r>1?l-1:l],p=[n&&t>1?t-1:t,n&&r>1?r-1:r];this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${u[0]/p[0]}, ${u[1]/p[1]}); const vec2 inputShapeRC = vec2(${o}.0, ${l}.0); void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int d = coords[3]; ivec2 yRC = coords.yz; // Fractional source index. vec2 sourceFracIndexRC = ${s?"max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":"vec2(yRC) * effectiveInputOverOutputRatioRC"}; // Compute the coordinators of nearest neighbor point. ivec2 sourceNearestRC = ivec2( min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${n?"0.5":"0.0"}))); float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d); setOutput(newValue); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3V7Ml":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeNearestNeighborPackedProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[a,o,l,i]=e;this.outputShape=[a,t,r,i];let u=[n&&t>1?o-1:o,n&&r>1?l-1:l],p=[n&&t>1?t-1:t,n&&r>1?r-1:r];this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${u[0]/p[0]}, ${u[1]/p[1]}, ${u[1]/p[1]}); const vec3 inputShapeRC = vec3(${o}.0, ${l}.0, ${l}.0); float getAValue(int b, int r, int c, int d) { return getChannel(getA(b, r, c, d), vec2(c, d)); } void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int d = coords[3]; // Calculate values for next column in yRC.z. ivec3 yRC = coords.yzz + ivec3(0, 0, 1); // Fractional source index. vec3 sourceFracIndexRC = ${s?"max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":"vec3(yRC) * effectiveInputOverOutputRatioRC"}; // Compute the coordinators of nearest neighbor point. ivec3 sourceNearestRC = ivec3( min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${n?"0.5":"0.0"}))); // Should we calculate next column and row elements in 2x2 packed cell. bool hasNextCol = d< ${i-1}; bool hasNextRow = coords.z < ${r-1}; vec4 newValue = vec4( getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d), hasNextCol ? getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d + 1) : 0.0, hasNextRow ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d) : 0.0, (hasNextRow && hasNextCol) ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d + 1) : 0.0); setOutput(newValue); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fKCQq:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeNearestNeighborGrad",()=>l),s.export(r,"resizeNearestNeighborGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../resize_nearest_neighbor_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s,dy:a}=t,{alignCorners:l}=n,i=new(0,o.ResizeNearestNeigborBackpropProgram)(a.shape,s.shape,l);return r.runWebGLProgram(i,[a],a.dtype)}let i={kernelName:a.ResizeNearestNeighborGrad,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../resize_nearest_neighbor_backprop_gpu":"bY0wW","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bY0wW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeNearestNeigborBackpropProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,n,s]=t,[,a,o]=e,l=[r&&a>1?n-1:n,r&&o>1?s-1:s],i=[r&&a>1?a-1:a,r&&o>1?o-1:o],u=l[0]/i[0],p=l[1]/i[1],c=1/u,d=1/p,f=2*Math.ceil(c)+2,h=2*Math.ceil(d)+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int d = coords[3]; int r = coords[1]; int c = coords[2]; float accumulator = 0.0; const float heightScale = float(${u}); const float widthScale = float(${p}); const float invHeightScale = float(${c}); const float invWidthScale = float(${d}); const int winHeight = int(${f}); const int winWidth = int(${h}); // Compute bounds for where in dy we will look float startRLerp = floor(float(r) * invHeightScale); int startDyR = int(floor(startRLerp - float(winHeight / 2))); float startCLerp = floor(float(c) * invWidthScale); int startDyC = int(floor(startCLerp - float(winWidth / 2))); // Loop over dy for (int dyROffset = 0; dyROffset< winHeight; dyROffset++) { int dyR = dyROffset + startDyR; // Guard against the window exceeding the bounds of dy if (dyR < 0 || dyR >= ${a}) { continue; } for (int dyCOffset = 0; dyCOffset< winWidth; dyCOffset++) { int dyC = dyCOffset + startDyC; // Guard against the window exceeding the bounds of dy if (dyC < 0 || dyC >= ${o}) { continue; } float sourceFracRow = float(${l[0]}) * (float(dyR) / float(${i[0]})); float sourceFracCol = float(${l[1]}) * (float(dyC) / float(${i[1]})); int sourceNearestRow = int(min( float(int(${n}) - 1), ${r} ? float(round(sourceFracRow)) : float(floor(sourceFracRow)))); int sourceNearestCol = int(min( float(int(${s}) - 1), ${r} ? float(round(sourceFracCol)) : float(floor(sourceFracCol)))); if (r == sourceNearestRow && c == sourceNearestCol) { accumulator += getDy(b, dyR, dyC, d); } } } // End loop over dy setOutput(accumulator); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iCykH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse",()=>u),s.export(r,"reverseConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../reverse_gpu"),l=e("../reverse_packed_gpu"),i=e("./Identity");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{dims:u}=n,p=s.shape.length,c=a.util.parseAxisParam(u,s.shape);if(0===p)return(0,i.identity)({inputs:{x:s},backend:r});let d=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,l.ReversePackedProgram)(s.shape,c):new(0,o.ReverseProgram)(s.shape,c);return r.runWebGLProgram(d,[s],s.dtype)}let p={kernelName:a.Reverse,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../reverse_gpu":"hSL4y","../reverse_packed_gpu":"1BHMm","./Identity":"eH68D","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hSL4y:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ReverseProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t){this.variableNames=["x"];let r=e.length;if(r>4)throw Error(`WebGL backend: Reverse of rank-${r} tensor is not yet supported`);if(this.outputShape=e,1===r){this.userCode=` void main() { int coord = getOutputCoords(); setOutput(getX(${e[0]} - coord - 1)); } `;return}let n=e.map((r,n)=>-1!==t.indexOf(n)&&1!==e[n]?`${e[n]} - coords[${n}] - 1`:`coords[${n}]`).join(","),s=(0,a.getCoordsDataType)(r);this.userCode=` void main() { ${s} coords = getOutputCoords(); setOutput(getX(${n})); } `}}},{"./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1BHMm":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ReversePackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e,t){var r,n,s;this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let l=e.length;if(l>4)throw Error(`WebGL backend: Reverse of rank-${l} tensor is not yet supported`);this.outputShape=e;let i=(0,a.getChannels)("rc",l),u=`${i[l-1]} + 1< ${this.outputShape[l-1]}`,p=`${i[l-2]} + 1 < ${this.outputShape[l-2]}`,c=(0,o.getCoordsDataType)(l);function d(r){let n=e.map((n,s)=>{var a,o;return a=s,o=r,-1!==t.indexOf(a)&&1!==e[a]?`${e[a]} - ${o[a]} - 1`:`${o[a]}`}),s=n.join(","),a=n.slice(-2).join(",");return`getChannel(getX(${s}), vec2(${a}))`}1===l?this.userCode=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); result.r = getChannel(getX(${e[0]} - rc - 1), ${e[0]} - rc - 1); if(${u}){ result.g = getChannel(getX(${e[0]} - (rc + 1) - 1), ${e[0]} - (rc + 1) - 1); } setOutput(result); } `:this.userCode=` void main() { ${c} rc = getOutputCoords(); vec4 result = vec4(0.); result.r = ${d(i.slice())}; if(${u}){ result.g = ${(r=i.slice())[l-1]="("+r[l-1]+" + 1)",d(r)}; } if(${p}) { result.b = ${(n=i.slice())[l-2]="("+n[l-2]+" + 1)",d(n)}; if(${u}) { result.a = ${(s=i.slice())[l-1]="("+s[l-1]+" + 1)",s[l-2]="("+s[l-2]+" + 1)",d(s)}; } } setOutput(result); } `}}},{"./packing_util":"gX790","./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iNfzI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rotateWithOffsetConfig",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("../rotate_gpu");let l={kernelName:a.RotateWithOffset,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{image:n}=e,{radians:s,fillValue:l,center:i}=t,u=new(0,o.RotateProgram)(n.shape,l),[p,c]=a.backend_util.getImageCenter(i,n.shape[1],n.shape[2]),d=[[p,c,Math.sin(s),Math.cos(s)]];return r.runWebGLProgram(u,[n],n.dtype,d)}}},{"@tensorflow/tfjs-core":"hADTC","../rotate_gpu":"9uWUU","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9uWUU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"RotateProgram",()=>a);class a{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];let r=e[1],n=e[2];this.outputShape=e;let s="";s="number"==typeof t?`float outputValue = ${t.toFixed(2)};`:` vec3 fill = vec3(${t.join(",")}); float outputValue = fill[coords[3]];`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; int y = coords[1]; float coordXFloat = (float(x) - params[0]) * params[3] - (float(y) - params[1]) * params[2]; float coordYFloat = (float(x) - params[0]) * params[2] + (float(y) - params[1]) * params[3]; int coordX = int(round(coordXFloat + params[0])); int coordY = int(round(coordYFloat + params[1])); ${s} if(coordX >= 0 && coordX< ${n} && coordY >= 0 && coordY< ${r}) { outputValue = getImage(coords[0], coordY, coordX, coords[3]); } setOutput(outputValue); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dfB9N:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"round",()=>i),s.export(r,"roundConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); if ((x - base)< 0.5) { return floor(x); } else if ((x - base) >0.5) { return ceil(x); } else { if (mod(base, 2.0) == 0.0) { return base; } else { return base + 1.0; } } `,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Round,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],l8Us1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rsqrt",()=>i),s.export(r,"rsqrtConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=(0,o.unaryKernelFunc)({opSnippet:"return inversesqrt(x);",cpuKernelImpl:l.rsqrtImplCPU}),u={kernelName:a.Rsqrt,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eM9xS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scatterNd",()=>u),s.export(r,"scatterNdConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../scatter_gpu"),l=e("../scatter_packed_gpu"),i=e("./Reshape");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{indices:u,updates:p}=r,{shape:c}=s,{sliceRank:d,numUpdates:f,sliceSize:h,strides:m,outputSize:g}=a.backend_util.calculateShapes(p,u,c),x=[g/h,h];if(0===g)return n.makeTensorInfo(c,u.dtype);let v=(0,i.reshape)({inputs:{x:u},backend:n,attrs:{shape:[f,d]}}),y=(0,i.reshape)({inputs:{x:p},backend:n,attrs:{shape:[f,h]}}),_=n.makeTensorInfo([],"float32",new Float32Array([0]));t=(0,a.env)().getBool("WEBGL_PACK")?new(0,l.ScatterPackedProgram)(f,d,v.shape.length,y.shape.length,m,x):new(0,o.ScatterProgram)(f,d,v.shape.length,y.shape.length,m,x);let b=n.runWebGLProgram(t,[y,v,_],y.dtype),k=(0,i.reshape)({inputs:{x:b},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(_),k}let p={kernelName:a.ScatterNd,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../scatter_gpu":"bS7Ls","../scatter_packed_gpu":"h2mzl","./Reshape":"6JJRX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bS7Ls:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ScatterProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r,n,s,o,l=!0,i=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=o;let u=(0,a.getCoordsDataType)(s.length),p=(0,a.getCoordsDataType)(o.length),c="";1===r?c="i":2===r&&(c="i, j");let d=`getIndices(${c})`,f="";1===n?f="i":2===n&&(f="i, coords[1]");let h=`getUpdates(${f})`,m="";i&&(m="coords[0], coords[1]");let g=`getDefaultValue(${m})`;this.userCode=` ${u} strides = ${u}(${s}); void main() { ${p} coords = getOutputCoords(); float sum = 0.0; bool found = false; for (int i = 0; i< ${e}; i++) { int flattenedIndex = 0; for (int j = 0; j < ${t}; j++) { int index = round(${d}); flattenedIndex += index * ${t>1?"strides[j]":"strides"}; } if (flattenedIndex == coords[0]) { sum += ${h}; found = true; } } setOutput(mix(${g}, sum, float(found))); } `}}},{"./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],h2mzl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ScatterPackedProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r,n,s,o,l=!0,i=!1){this.variableNames=["updates","indices","defaultValue"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=o;let u=(0,a.getCoordsDataType)(s.length),p=(0,a.getCoordsDataType)(o.length),c="";1===r?c="i":2===r&&(c="i, j");let d=`getIndices(${c})`,f="";1===n?f="i":2===n&&(f="i, coords[1]");let h=`getUpdates(${f})`,m="";i&&(m="coords[0], coords[1]");let g=`getDefaultValue(${m})`;this.userCode=` ${u} strides = ${u}(${s}); void main() { ${p} coords = getOutputCoords(); vec4 sum = vec4(0.); vec4 found = vec4(0.); for (int i = 0; i< ${e}; i+=2) { ivec2 flattenedIndex = ivec2(0); for (int j = 0; j < ${t}; j+=2) { ivec4 index = round(${d}); flattenedIndex += index.xz * ${t>1?"strides[j]":"strides"}; if (j + 1< ${t}) { flattenedIndex += index.yw * ${t>1?"strides[j + 1]":"strides"}; } } if (flattenedIndex[0] == coords[0] || flattenedIndex[1] == coords[0] || flattenedIndex[0] == coords[0] + 1 || flattenedIndex[1] == coords[0] + 1) { vec4 updVals = ${h}; if (flattenedIndex[0] == coords[0]) { sum.xy += updVals.xy; found.xy = vec2(1.); } else if (flattenedIndex[0] == coords[0] + 1) { sum.zw += updVals.xy; found.zw = vec2(1.); } if (flattenedIndex[1] == coords[0]) { sum.xy += updVals.zw; found.xy = vec2(1.); } else if (flattenedIndex[1] == coords[0] + 1) { sum.zw += updVals.zw; found.zw = vec2(1.); } } } setOutput(mix(${g}, sum, found)); } `}}},{"./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],a5air:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"searchSorted",()=>l),s.export(r,"searchSortedConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../search_sorted_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{sortedSequence:s,values:a}=t,{side:l}=n,i=new(0,o.SearchSortedProgram)(s.shape[0],s.shape[1],a.shape[1],l),u=[[s.shape[1]]];return r.runWebGLProgram(i,[s,a],"int32",u)}let i={kernelName:a.SearchSorted,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../search_sorted_gpu":"9JK98","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9JK98":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SearchSortedProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t,r,n){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,r];let s=`for (int i = 0; i< ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,o=2===(0,a.env)().getNumber("WEBGL_VERSION")?"while (left< right) {":s;this.userCode=` int findBound(int batch, float value) { int left = 0; int right = numInputs; int mid; ${o} mid = (left + right) / 2; if (getSortedSequence(batch, mid) ${"left"===n?"<":"<="} value) { left = mid + 1; } else { right = mid; } } return right; } void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; int valueIndex = coords[1]; float value = getValues(batch, valueIndex); setOutput(float(findBound(batch, value))); } `}}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kGIjr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"select",()=>l),s.export(r,"selectConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../select_gpu");function l(e){let{inputs:t,backend:r}=e,{condition:n,t:s,e:l}=t,i=new(0,o.SelectProgram)(n.shape.length,s.shape,s.shape.length);return r.runWebGLProgram(i,[n,s,l],(0,a.upcastType)(s.dtype,l.dtype))}let i={kernelName:a.Select,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../select_gpu":"cCaia","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cCaia:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SelectProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r){let n,s;if(this.variableNames=["c","a","b"],this.outputShape=t,r>4)throw Error(`Where for rank ${r} is not yet supported`);if(1===r)s="resRC",n="resRC";else{let r=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[],o=[];for(let n=0;n<t.length;n++)o.push(`${r[n]}`),n<e&&a.push(`${r[n]}`);n=a.join(),s=o.join()}let o=(0,a.getCoordsDataType)(r);this.userCode=` void main() { ${o} resRC = getOutputCoords(); float cVal = getC(${n}); if (cVal >= 1.0) { setOutput(getA(${s})); } else { setOutput(getB(${s})); } } `}}},{"./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jZ73b:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"selu",()=>i),s.export(r,"seluConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` // Stable and Attracting Fixed Point (0, 1) for Normalized Weights. // see: https://arxiv.org/abs/1706.02515 float scaleAlpha = ${a.backend_util.SELU_SCALEALPHA}; float scale = ${a.backend_util.SELU_SCALE}; return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); `,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Selu,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],j3au9:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sigmoid",()=>p),s.export(r,"sigmoidConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=o.CHECK_NAN_SNIPPET_UNARY+` return 1.0 / (1.0 + exp(-1.0 * x)); `,u=` vec4 result = 1.0 / (1.0 + exp(-1.0 * x)); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; result.g = isNaN.g ? x.g : result.g; result.b = isNaN.b ? x.b : result.b; result.a = isNaN.a ? x.a : result.a; return result; `,p=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:u,cpuKernelImpl:l.sigmoidImplCPU}),c={kernelName:a.Sigmoid,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kv0Rb:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sign",()=>i),s.export(r,"signConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` if (isnan(x)) { return 0.0; } return sign(x); `,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Sign,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fA8xk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sin",()=>p),s.export(r,"sinConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils");let i=l.CHECK_NAN_SNIPPET_UNARY+` return sin(x); `,u=` vec4 result = sin(x); bvec4 isNaN = isnan(x); ${o.CHECK_NAN_SNIPPET_PACKED} return result; `,p=(0,l.unaryKernelFunc)({opSnippet:i,packedOpSnippet:u}),c={kernelName:a.Sin,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../binaryop_packed_gpu":"fwruC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cGJA0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sinh",()=>i),s.export(r,"sinhConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; `,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Sinh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2JM9U":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softplus",()=>i),s.export(r,"softplusConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; bool too_large = x > -threshold; bool too_small = x< threshold; float result; float exp_x = exp(x); if (too_large){ result = x; } else if (too_small){ result = exp_x; } else{ result = log(exp_x + 1.0); } return result; `,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Softplus,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6fRfC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"spaceToBatchND",()=>u),s.export(r,"spaceToBatchNDConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("./PadV2"),l=e("./Reshape"),i=e("./Transpose");let u=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockShape:u,paddings:p}=n;a.util.assert(s.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let c=u.reduce((e,t)=>e*t),d=[[0,0]];d.push(...p);for(let e=1+u.length;e<s.shape.length;++e)d.push([0,0]);let f=[],h=(0,o.padV2)({inputs:{x:s},backend:r,attrs:{paddings:d,constantValue:0}}),m=a.backend_util.getReshaped(h.shape,u,c,!1),g=a.backend_util.getPermuted(m.length,u.length,!1),x=a.backend_util.getReshapedPermuted(h.shape,u,c,!1),v=(0,l.reshape)({inputs:{x:h},backend:r,attrs:{shape:m}}),y=(0,i.transpose)({inputs:{x:v},backend:r,attrs:{perm:g}}),_=(0,l.reshape)({inputs:{x:y},backend:r,attrs:{shape:x}});return f.push(h),f.push(v),f.push(y),f.forEach(e=>r.disposeIntermediateTensorInfo(e)),_},p={kernelName:a.SpaceToBatchND,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","./PadV2":"6Katd","./Reshape":"6JJRX","./Transpose":"6x6Ts","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eum8a:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseFillEmptyRows",()=>l),s.export(r,"sparseFillEmptyRowsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{indices:n,values:s,denseShape:a,defaultValue:l}=t;if(1!==a.shape.length)throw Error(`Dense shape must be a vector, saw: ${a.shape}`);if(2!==n.shape.length)throw Error(`Indices must be a matrix, saw: ${n.shape}`);if(1!==s.shape.length)throw Error(`Values must be a vector, saw: ${s.shape}`);if(0!==l.shape.length)throw Error(`Default value must be a scalar, saw: ${l.shape}`);let i=r.readSync(n.dataId),u=r.readSync(s.dataId),p=r.readSync(a.dataId),c=r.readSync(l.dataId)[0],[d,f,h,m,g]=(0,o.sparseFillEmptyRowsImplCPU)(i,n.shape,n.dtype,u,s.dtype,p,c);return[r.makeTensorInfo(f,n.dtype,d),r.makeTensorInfo([f[0]],s.dtype,h),r.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(e=>Number(e)))),r.makeTensorInfo([g.length],n.dtype,new Int32Array(g))]}let i={kernelName:a.SparseFillEmptyRows,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3RE2p":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseReshape",()=>l),s.export(r,"sparseReshapeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{inputIndices:n,inputShape:s,newShape:a}=t;if(2!==n.shape.length)throw Error(`Input indices should be a matrix but received shape ${n.shape}`);if(1!==s.shape.length)throw Error(`Input shape should be a vector but received shape ${s.shape}`);if(1!==a.shape.length)throw Error(`Target shape should be a vector but received shape ${a.shape}`);let l=Array.from(r.readSync(s.dataId)),i=r.readSync(n.dataId),u=Array.from(r.readSync(a.dataId)),[p,c,d]=(0,o.sparseReshapeImplCPU)(i,n.shape,n.dtype,l,u);return[r.makeTensorInfo(c,n.dtype,p),r.makeTensorInfo([d.length],a.dtype,new Int32Array(d))]}let i={kernelName:a.SparseReshape,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kCBJu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentMean",()=>l),s.export(r,"sparseSegmentMeanConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{data:n,indices:s,segmentIds:a}=t;if(n.shape.length<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.shape.length)throw Error(`Indices should be a vector but received shape ${s.shape}`);if(1!==a.shape.length)throw Error(`Segment ids should be a vector but received shape ${a.shape}`);let l=r.readSync(n.dataId),i=r.readSync(s.dataId),u=r.readSync(a.dataId),[p,c]=(0,o.sparseSegmentReductionImplCPU)(l,n.shape,n.dtype,i,u,!0);return r.makeTensorInfo(c,n.dtype,p)}let i={kernelName:a.SparseSegmentMean,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],apllm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentSum",()=>l),s.export(r,"sparseSegmentSumConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{data:n,indices:s,segmentIds:a}=t;if(n.shape.length<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.shape.length)throw Error(`Indices should be a vector but received shape ${s.shape}`);if(1!==a.shape.length)throw Error(`Segment ids should be a vector but received shape ${a.shape}`);let l=r.readSync(n.dataId),i=r.readSync(s.dataId),u=r.readSync(a.dataId),[p,c]=(0,o.sparseSegmentReductionImplCPU)(l,n.shape,n.dtype,i,u);return r.makeTensorInfo(c,n.dtype,p)}let i={kernelName:a.SparseSegmentSum,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6aFw3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseToDense",()=>u),s.export(r,"sparseToDenseConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../scatter_gpu"),i=e("./Reshape");function u(e){let{inputs:t,backend:r,attrs:n}=e,{sparseIndices:s,sparseValues:u,defaultValue:p}=t,{outputShape:c}=n,{sliceRank:d,numUpdates:f,sliceSize:h,strides:m,outputSize:g}=a.backend_util.calculateShapes(u,s,c);if("string"===u.dtype){let e=r.bufferSync(s),t=r.bufferSync(u),n=a.util.decodeString(r.readSync(p.dataId)[0]),l=(0,o.scatterImplCPU)(e,t,c,g,h,f,d,m,n,!1);return r.makeTensorInfo(c,l.dtype,l.values)}let x=new(0,l.ScatterProgram)(f,d,s.shape.length,u.shape.length,m,[g,1],!1),v=r.runWebGLProgram(x,[u,s,p],u.dtype),y=(0,i.reshape)({inputs:{x:v},backend:r,attrs:{shape:c}});return r.disposeIntermediateTensorInfo(v),y}let p={kernelName:a.SparseToDense,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","../scatter_gpu":"bS7Ls","./Reshape":"6JJRX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fWOc9:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"splitV",()=>l),s.export(r,"splitVConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Slice");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{numOrSizeSplits:l,axis:i}=n,u=a.util.parseAxisParam(i,s.shape)[0],p=a.backend_util.prepareSplitSize(s,l,u),c=Array(s.shape.length).fill(0),d=s.shape.slice();return p.map(e=>{let t=[...d];t[u]=e;let n=(0,o.slice)({inputs:{x:s},backend:r,attrs:{begin:c,size:t}});return c[u]+=e,n})}let i={kernelName:a.SplitV,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./Slice":"1rG2n","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],O6srq:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sqrt",()=>u),s.export(r,"sqrtConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return sqrt(x);",u=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:i,cpuKernelImpl:l.sqrtImplCPU}),p={kernelName:a.Sqrt,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],coIP7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"square",()=>o),s.export(r,"squareConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return x * x;"}),l={kernelName:a.Square,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1YoVr":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squaredDifference",()=>i),s.export(r,"squaredDifferenceConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l="return (a - b) * (a - b);",i=(0,o.binaryKernelFunc)({opSnippet:l,packedOpSnippet:l}),u={kernelName:a.SquaredDifference,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jo3Rv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"staticRegexReplace",()=>l),s.export(r,"staticRegexReplaceConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t;if("string"!==s.dtype)throw Error("Input must be of datatype string");let l=r.readSync(s.dataId),i=a.backend_util.fromUint8ToStringArray(l),u=(0,o.staticRegexReplaceImplCPU)(i,"string",n);return r.makeTensorInfo(s.shape,"string",u)}let i={kernelName:a.StaticRegexReplace,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3RjTY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"step",()=>l),s.export(r,"stepConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../unaryop_gpu");function l({inputs:e,attrs:t,backend:r}){let{x:n}=e,s=o.CHECK_NAN_SNIPPET+` return x > 0.0 ? 1.0 : float(${t.alpha}); `,a=new(0,o.UnaryOpProgram)(n.shape,s);return r.runWebGLProgram(a,[n],n.dtype)}let i={kernelName:a.Step,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../unaryop_gpu":"dKkzg","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"725nD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stridedSlice",()=>p),s.export(r,"stridedSliceConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../strided_slice_gpu"),i=e("./Reshape"),u=e("./Slice");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p}=r,{begin:c,end:d,strides:f,beginMask:h,endMask:m,ellipsisMask:g,newAxisMask:x,shrinkAxisMask:v}=s,{finalShapeSparse:y,finalShape:_,isIdentity:b,sliceDim0:k,isSimpleSlice:T,begin:w,end:I,strides:j}=a.slice_util.sliceInfo(p.shape,c,d,f,h,m,g,x,v);if(b)t=(0,i.reshape)({inputs:{x:p},backend:n,attrs:{shape:_}});else if(k||T){a.util.assert(p.shape.length>=1,()=>`Input must have rank at least 1, got: ${p.shape.length}`);let e=a.slice_util.computeOutShape(w,I,j),r=(0,u.slice)({inputs:{x:p},backend:n,attrs:{begin:w,size:e}});t=(0,i.reshape)({inputs:{x:r},backend:n,attrs:{shape:_}}),n.disposeIntermediateTensorInfo(r)}else if(n.shouldExecuteOnCPU([p])){let e=n.readSync(p.dataId),r=(0,a.buffer)(p.shape,p.dtype,e),s=(0,o.stridedSliceImplCPU)(y,r,j,w);t=n.makeTensorInfo(_,p.dtype,s.values)}else{let e=new(0,l.StridedSliceProgram)(w,j,y);t=n.runWebGLProgram(e,[p],p.dtype)}let C=(0,i.reshape)({inputs:{x:t},backend:n,attrs:{shape:_}});return n.disposeIntermediateTensorInfo(t),C}let c={kernelName:a.StridedSlice,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","../strided_slice_gpu":"5f3PO","./Reshape":"6JJRX","./Slice":"1rG2n","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5f3PO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"StridedSliceProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r){this.variableNames=["x"],this.outputShape=r;let n=r.length,s=(0,a.getCoordsDataType)(r.length),o=(0,a.getCoordsDataType)(r.length),l="";if(1===n)l="coords * strides + begin";else{let e=0;l=r.map((t,n)=>(e++,1===r.length?`coords * strides[${n}] + begin[${n}]`:`coords[${e-1}] * strides[${n}] + begin[${n}]`)).join(",")}this.userCode=` ${s} begin = ${s}(${e}); ${s} strides = ${s}(${t}); void main() { ${o} coords = getOutputCoords(); setOutput(getX(${l})); } `}}},{"./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8Pm3f":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringNGrams",()=>l),s.export(r,"stringNGramsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{separator:s,nGramWidths:a,leftPad:l,rightPad:i,padWidth:u,preserveShortSequences:p}=n,{data:c,dataSplits:d}=t,f=r.readSync(c.dataId),h=r.readSync(d.dataId),[m,g]=(0,o.stringNGramsImplCPU)(f,h,s,a,l,i,u,p);return[r.makeTensorInfo([m.length],"string",m),r.makeTensorInfo(d.shape,"int32",g)]}let i={kernelName:a.StringNGrams,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],g8CU1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringSplit",()=>l),s.export(r,"stringSplitConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{skipEmpty:s}=n,{input:a,delimiter:l}=t;if("string"!==a.dtype)throw Error("Input must be of datatype string");if(1!==a.shape.length)throw Error(`Input must be a vector, got shape: ${a.shape}`);if(0!==l.shape.length)throw Error(`Delimiter must be a scalar, got shape: ${l.shape}`);let i=r.readSync(a.dataId),u=r.readSync(l.dataId)[0],[p,c,d]=(0,o.stringSplitImplCPU)(i,u,s),f=c.length;return[r.makeTensorInfo([f,2],"int32",p),r.makeTensorInfo([f],"string",c),r.makeTensorInfo([2],"int32",new Int32Array(d))]}let i={kernelName:a.StringSplit,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6PYfa":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringToHashBucketFast",()=>l),s.export(r,"stringToHashBucketFastConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{numBuckets:s}=n,{input:a}=t;if("string"!==a.dtype)throw Error("Input must be of datatype string");if(s<=0)throw Error("Number of buckets must be at least 1");let l=r.readSync(a.dataId),i=(0,o.stringToHashBucketFastImplCPU)(l,s);return r.makeTensorInfo(a.shape,"int32",i)}let i={kernelName:a.StringToHashBucketFast,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lAEh4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tan",()=>o),s.export(r,"tanConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return tan(x);"}),l={kernelName:a.Tan,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2aYdz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tanh",()=>i),s.export(r,"tanhConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); `,i=(0,o.unaryKernelFunc)({opSnippet:l}),u={kernelName:a.Tanh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/kernel_funcs_utils":"eRfJh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1J1EG":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensorScatterUpdate",()=>i),s.export(r,"tensorScatterUpdateConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../scatter_gpu"),l=e("./Reshape");function i(e){let{inputs:t,backend:r,attrs:n}=e,{tensor:s,indices:i,updates:u}=t,{}=n,{sliceRank:p,numUpdates:c,sliceSize:d,strides:f,outputSize:h}=a.backend_util.calculateShapes(u,i,s.shape),m=[h/d,d];if(0===h)return r.makeTensorInfo(s.shape,i.dtype);let g=(0,l.reshape)({inputs:{x:i},backend:r,attrs:{shape:[c,p]}}),x=(0,l.reshape)({inputs:{x:u},backend:r,attrs:{shape:[c,d]}}),v=(0,l.reshape)({inputs:{x:s},backend:r,attrs:{shape:m}}),y=new(0,o.ScatterProgram)(c,p,g.shape.length,x.shape.length,f,m,!1,!0),_=r.runWebGLProgram(y,[x,g,v],v.dtype),b=(0,l.reshape)({inputs:{x:_},backend:r,attrs:{shape:s.shape}});return r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(x),r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(_),b}let u={kernelName:a.TensorScatterUpdate,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../scatter_gpu":"bS7Ls","./Reshape":"6JJRX","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kIunT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tile",()=>i),s.export(r,"tileConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../tile_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{reps:i}=n;if("string"===s.dtype||s.shape.length>5){let e=r.readSync(s.dataId),t="string"===s.dtype?e.map(e=>a.util.decodeString(e)):e,n=(0,a.buffer)(s.shape,s.dtype,t),l=(0,o.tileImplCPU)(n,i);return r.makeTensorInfo(l.shape,l.dtype,l.values)}let u=new(0,l.TileProgram)(s.shape,i);return r.runWebGLProgram(u,[s],s.dtype)}let u={kernelName:a.Tile,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","../tile_gpu":"i97iV","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],i97iV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TileProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t){this.variableNames=["A"];let r=Array(e.length);for(let n=0;n<r.length;n++)r[n]=e[n]*t[n];this.outputShape=r,this.rank=r.length;let n=(0,a.getCoordsDataType)(this.rank),s=function(e){let t=e.length;if(t>5)throw Error(`Tile for rank ${t} is not yet supported`);if(1===t)return`imod(resRC, ${e[0]})`;let r=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],n=[];for(let t=0;t<e.length;t++)n.push(`imod(${r[t]}, ${e[t]})`);return n.join()}(e);this.userCode=` void main() { ${n} resRC = getOutputCoords(); setOutput(getA(${s})); } `}}},{"./shader_compiler":"2b0aL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4sTNd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"topK",()=>h),s.export(r,"topKConfig",()=>m);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../top_k_gpu"),i=e("./Fill"),u=e("./GatherV2"),p=e("./Reshape"),c=e("./Slice");function d(e,t){null!==t&&e.disposeIntermediateTensorInfo(t)}function f(e){let t=1;for(;t<e;)t*=2;return t}function h(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{k:h,sorted:m}=n,g=(0,a.env)().getNumber("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD"),x=(0,a.env)().getNumber("TOPK_K_CPU_HANDOFF_THRESHOLD"),v=s.shape,y=v[v.length-1];if(r.shouldExecuteOnCPU([s])||y<g||h>x){let e=r.readSync(s.dataId),[t,n]=(0,o.topKImplCPU)(e,v,s.dtype,h,m);return[r.makeTensorInfo(t.shape,t.dtype,t.values),r.makeTensorInfo(n.shape,n.dtype,n.values)]}if(0===h)return v[v.length-1]=0,[r.makeTensorInfo(v,s.dtype,[]),r.makeTensorInfo(v,"int32",[])];if(1===y)return[s,(0,i.fill)({attrs:{shape:v,dtype:"int32",value:0},backend:r})];let _=r.texData.get(s.dataId),b=null!==_&&_.isPacked,k=b?r.unpackTensor(s):s,T=a.util.sizeFromShape(v)/y,w=(0,p.reshape)({inputs:{x:k},attrs:{shape:[T,y]},backend:r});b&&d(r,k);let I=f(h),j=f(y),C=null,N=()=>null===C?[w,w]:[w,C],S=(e,t,n)=>{let s=N(),a=new(0,l.SwapProgram)(n),o=[[y],[+(null===C)],[-1/0],[e],[t]],i=C;C=r.runWebGLProgram(a,s,"int32",o),d(r,i)};for(let e=1;e<I;e*=2){let t=2*e;for(let r=e;r>=1;r/=2)S(t,r,[T,j])}for(let e=j;e>I;e/=2){let t=N(),n=new(0,l.MergeProgram)([T,e/2]),s=[[y],[+(null===C)],[I]],a=C;C=r.runWebGLProgram(n,t,"int32",s),d(r,a);let o=I/2,i=2*o;for(let e=o;e>=1;e/=2)S(i,e,C.shape)}let E=C;C=(0,c.slice)({inputs:{x:C},backend:r,attrs:{begin:0,size:[T,h]}}),d(r,E);let A=(0,u.gatherV2)({inputs:{x:w,indices:C},backend:r,attrs:{axis:1,batchDims:1}});d(r,w);let F=v.slice(0,-1);F.push(h),E=C,C=(0,p.reshape)({inputs:{x:C},attrs:{shape:F},backend:r}),d(r,E);let R=A;return A=(0,p.reshape)({inputs:{x:A},attrs:{shape:F},backend:r}),d(r,R),[A,C]}let m={kernelName:a.TopK,backendName:"webgl",kernelFunc:h}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","../top_k_gpu":"dWMjW","./Fill":"cTMIP","./GatherV2":"aCEdT","./Reshape":"6JJRX","./Slice":"1rG2n","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dWMjW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SwapProgram",()=>a),s.export(r,"MergeProgram",()=>o);class a{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]; int elemIdx = coords[1]; // We compare elements pair-wise within a group of size 2 * inc. // The comparing rule for each group alternates between ascending // and descending. Within each group, we compare each pair at // positions i and i+inc. To decide whether an element at position i // is x0 or x1, we mod it by 2 * inc, if the result is smaller than // inc, it is in the first half of the group, we denote it as x0, // otherwise we denote it as x1. // For example, as shown in the Bitonic top K paper referenced above, // Figure5(a) shows that element[1] is in the // second half of the group when group size is 2, but it is in the // first half of the group when group size is 4. bool isFirstInPair = imod(elemIdx, 2 * inc)< inc; int i = isFirstInPair ? elemIdx : elemIdx - inc; int i0 = firstPass == 1 ? i : int(getIndices(batch, i)); int i1 = firstPass == 1 ? i + inc : int(getIndices(batch, i + inc)); float x0 = i0 < n ? getX(batch, i0) : negativeInf; float x1 = i1 < n ? getX(batch, i1) : negativeInf; // Denotes which direction indices are in (ascending or descending). bool reverse = imod(elemIdx, 2 * dir) >= dir; bool isGreater = x0 > x1 || (x0 == x1 && i1 > i0); if (reverse == isGreater) { // Elements in opposite order of direction int iTemp = i0; i0 = i1; i1 = iTemp; } if (isFirstInPair) { setOutput(float(i0)); } else { setOutput(float(i1)); } } `}}class o{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(); int batch = coords[0]; int elemIdx = coords[1]; // The output size is half of the previous size. // If the previous sequence is | | | | _ _ _ _ | | | | _ _ _ _ (k=4), // we only need to output the indices at positions |, the indices at // positions _ can be thrown away, see Figure5(b) After Phase 2 // (Merge phase) in the Bitonic Top K paper referenced above. // For example, the paper shows we only need to output the orange bars. // The output sequence should look like this | | | | | | | |. // Because the sequence is halved, to map the output index back // to the previous sequence to find the corresponding value, // we need to double the index. When we double the index, // we basically interpolate a position, so 2i looks like // | _ | _ | _ | _ | _ | _ | _. We move the | to the first k position // of each 2k positions by - elemIdx % k. E.g. for output at // index 4,5,6,7, we want to get the corresponding element at // original index 8,9,10,11, for output at index 8,9,10,11, // we want to get the corresponding element at original index // 16,17,18,19, so on and so forth. int i = elemIdx< k ? elemIdx : (elemIdx * 2 - imod(elemIdx, k)); int i0 = firstPass == 1 ? i : int(getIndices(batch, i)); int i1 = firstPass == 1 ? i + k : int(getIndices(batch, i + k)); float x0 = getX(batch, i0); float x1 = i1 < n ? getX(batch, i1) : x0; setOutput(x0 >= x1 ? float(i0) : float(i1)); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kaMdV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transform",()=>l),s.export(r,"transformConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../transform_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{image:s,transforms:a}=t,{interpolation:l,fillMode:i,fillValue:u,outputShape:p}=n,[c,d,f,h]=s.shape,[m,g]=null!=p?p:[d,f],x=new(0,o.TransformProgram)(d,f,l,i,u,[c,m,g,h]);return r.runWebGLProgram(x,[s,a],"float32")}let i={kernelName:a.Transform,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../transform_gpu":"9ntCd","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9ntCd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TransformProgram",()=>a);class a{constructor(e,t,r,n,s,a){let o;switch(this.variableNames=["Image","Transforms"],this.outputShape=a,n){case"constant":default:o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4}this.userCode=` float mapCoord(float outCoord, float len) { float inCoord = outCoord; if(${o} == 2) { if (inCoord< 0.0) { if (len <= 1.0) { inCoord = 0.0; } else { float sz2 = 2.0 * len; if (inCoord < sz2) { inCoord = sz2 * float(int(float(-inCoord / sz2))) + inCoord; } inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0; } } else if (inCoord >len - 1.0) { if (len<= 1.0) { inCoord = 0.0; } else { float sz2 = 2.0 * len; inCoord -= sz2 * float(int(float(inCoord / sz2))); if (inCoord >= len) { inCoord = sz2 - inCoord - 1.0; } } } return clamp(inCoord, 0.0, len - 1.0); } else if (${o} == 3) { if (inCoord< 0.0) { if (len <= 1.0) { inCoord = 0.0; } else { float sz = len - 1.0; inCoord += len * (float(int(float(-inCoord / sz))) + 1.0); } } else if (inCoord >len - 1.0) { if (len<= 1.0) { inCoord = 0.0; } else { float sz = len - 1.0; inCoord -= len * float(int(float(inCoord / sz))); } } return clamp(inCoord, 0.0, len - 1.0); } else if (${o} == 4) { return clamp(outCoord, 0.0, len - 1.0); } else { return outCoord; } } float readWithFillValue(int batch, int coordY, int coordX, int channel) { float outputValue; if (0 <= coordY && coordY < ${e} && 0 <= coordX && coordX < ${t}) { outputValue = getImage(batch, coordY, coordX, channel); } else { outputValue = float(${s}); } return outputValue; } void main() { ivec4 coords = getOutputCoords(); float outputValue; int batch = coords[0]; int x = coords[2]; int y = coords[1]; int channel = coords[3]; float xf = float(x); float yf = float(y); float a1 = getTransforms(batch, 0); float a2 = getTransforms(batch, 1); float a3 = getTransforms(batch, 2); float b1 = getTransforms(batch, 3); float b2 = getTransforms(batch, 4); float b3 = getTransforms(batch, 5); float c1 = getTransforms(batch, 6); float c2 = getTransforms(batch, 7); float projection = c1 * xf + c2 * yf + 1.0; if (projection == 0.0) { outputValue = float(${s}); } else { float inX = (a1 * xf + a2 * yf + a3) / projection; float inY = (b1 * xf + b2 * yf + b3) / projection; float mapX = mapCoord(inX, float(${t})); float mapY = mapCoord(inY, float(${e})); if (${"nearest"===r?1:2} == 1) { int coordY = int(round(mapY)); int coordX = int(round(mapX)); outputValue = readWithFillValue(batch, coordY, coordX, channel); } else { float yFloor = floor(mapY); float xFloor = floor(mapX); float yCeil = yFloor + 1.0; float xCeil = xFloor + 1.0; float valueYFloor = (xCeil - mapX) * readWithFillValue(batch, int(yFloor), int(xFloor), channel) + (mapX - xFloor) * readWithFillValue(batch, int(yFloor), int(xCeil), channel); float valueYCeil = (xCeil - mapX) * readWithFillValue(batch, int(yCeil), int(xFloor), channel) + (mapX - xFloor) * readWithFillValue(batch, int(yCeil), int(xCeil), channel); outputValue = (yCeil - mapY) * valueYFloor + (mapY - yFloor) * valueYCeil; } } setOutput(outputValue); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],a99la:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unique",()=>i),s.export(r,"uniqueConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../webgl_util");function i(e){let{inputs:t,attrs:r,backend:n}=e,{axis:s}=r,{x:a}=t;(0,l.assertNotComplex)(a,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=n.readSync(a.dataId),{outputValues:u,outputShape:p,indices:c}=(0,o.uniqueImplCPU)(i,s,a.shape,a.dtype);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([c.length],"int32",c)]}let u={kernelName:a.Unique,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../kernel_utils/shared":"awGPZ","../webgl_util":"hSqB7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],c9jMA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unpack",()=>i),s.export(r,"unpackConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape"),l=e("./Slice");function i(e){let{inputs:t,backend:r,attrs:n}=e,{value:s}=t,{axis:a}=n;a<0&&(a+=s.shape.length);let i=s.shape.length,u=s.shape[a],p=Array(i-1),c=0;for(let e=0;e<i;e++)e!==a&&(p[c++]=s.shape[e]);let d=[],f=Array(i).fill(0),h=s.shape.slice();h[a]=1;let m=Array(u);for(let e=0;e<m.length;e++){f[a]=e;let t=(0,l.slice)({inputs:{x:s},backend:r,attrs:{begin:f,size:h}}),n=(0,o.reshape)({inputs:{x:t},backend:r,attrs:{shape:p}});m[e]=n,d.push(t)}return d.forEach(e=>r.disposeIntermediateTensorInfo(e)),m}let u={kernelName:a.Unpack,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","./Reshape":"6JJRX","./Slice":"1rG2n","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"794cJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unsortedSegmentSum",()=>c),s.export(r,"unsortedSegmentSumConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../segment_gpu"),l=e("./Range"),i=e("./Reshape"),u=e("./Tile"),p=e("./Transpose");function c(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,segmentIds:c}=t,{numSegments:d}=n,f=s.shape.length,h=[],m=0,g=a.backend_util.getAxesPermutation([m],f),x=s;null!=g&&(x=(0,p.transpose)({inputs:{x:s},backend:r,attrs:{perm:g}}),h.push(x),m=a.backend_util.getInnerMostAxes(1,f)[0]);let v=a.backend_util.segment_util.computeOutShape(x.shape,m,d),y=a.util.sizeFromShape([x.shape[m]]),_=(0,i.reshape)({inputs:{x:x},backend:r,attrs:{shape:[-1,y]}});h.push(_);let b=(0,a.sumOutType)(s.dtype),k=(e,t,n,s,i)=>{let p=e.shape[0],c=e.shape[1],d=a.backend_util.segment_util.segOpComputeOptimalWindowSize(c,i),f=new(0,o.SegmentOpProgram)({windowSize:d,inSize:c,batchSize:p,numSegments:i},t),m=r.compileAndRun(f,[e,n],s);if(h.push(m),m.shape[1]===i)return m;let g=(0,l.range)({backend:r,attrs:{start:0,stop:i,step:1,dtype:"float32"}}),x=(0,u.tile)({inputs:{x:g},backend:r,attrs:{reps:[c/d]}});return h.push(g),h.push(x),k(m,t,x,s,i)},T=k(_,"unsortedSegmentSum",c,b,d),w=(0,i.reshape)({inputs:{x:T},backend:r,attrs:{shape:v}}),I=w;if(null!=g){h.push(w);let e=a.backend_util.getUndoAxesPermutation(g);I=(0,p.transpose)({inputs:{x:I},backend:r,attrs:{perm:e}})}return h.forEach(e=>r.disposeIntermediateTensorInfo(e)),I}let d={kernelName:a.UnsortedSegmentSum,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"hADTC","../segment_gpu":"6jArv","./Range":"1qqQJ","./Reshape":"6JJRX","./Tile":"kIunT","./Transpose":"6x6Ts","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6jArv":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SegmentOpProgram",()=>a);class a{constructor(e,t){this.variableNames=["x","segmentIds"];let r=e.windowSize,n=e.batchSize,s=e.inSize,a=e.numSegments,o=a*Math.ceil(s/r);this.outputShape=[n,o];let l=4*Math.floor(r/4),i=r%4,u=` sumValue += dot(values, segFilter); `,p="";s%r>0&&(p=` if (inIdx< 0 || inIdx >= ${s}) { return initializationValue; } `);let c="";s%r>0&&(c=` if (inIdx< 0 || inIdx >= ${s}) { return -1.0; } `),this.userCode=` const float initializationValue = 0.0; float getValue(int batch, int inIdx) { ${p} return getX(batch, inIdx); } float getSegmentIdAtIndex(int inIdx) { ${c} return getSegmentIds(inIdx); } void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; int outIdx = coords[1]; int inOffset = int(floor(float(outIdx) / float( ${a})) * float(${r})); int currentSeg = int(mod(float(outIdx), float(${a}))); float sumValue = 0.0; for (int i = 0; i< ${l}; i += 4) { int inIdx = inOffset + i; vec4 values = vec4( getValue(batch, inIdx), getValue(batch, inIdx + 1), getValue(batch, inIdx + 2), getValue(batch, inIdx + 3) ); vec4 segFilter = vec4( int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0, int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0 ); ${u} } int inIdx = inOffset + ${l}; if (${1===i}) { vec4 values = vec4( getValue(batch, inIdx), initializationValue, initializationValue, initializationValue ); int inIdxSeg = int(getSegmentIdAtIndex(inIdx)); vec4 segFilter = vec4( int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, 0, 0, 0 ); ${u} } else if (${2===i}) { vec4 values = vec4( getValue(batch, inIdx), getValue(batch, inIdx + 1), initializationValue, initializationValue ); vec4 segFilter = vec4( int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, 0, 0 ); ${u} } else if (${3===i}) { vec4 values = vec4( getValue(batch, inIdx), getValue(batch, inIdx + 1), getValue(batch, inIdx + 2), initializationValue ); vec4 segFilter = vec4( int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0, 0 ); ${u} } setOutput(sumValue); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ilpJu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r);var a=e("./base");s.exportAll(a,r),e("./register_all_kernels")},{"./base":"e8Awz","./register_all_kernels":"a0i30","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],e8Awz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MathBackendCPU",()=>o.MathBackendCPU),s.export(r,"version_cpu",()=>i.version),s.export(r,"shared",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./backend_cpu"),l=e("./shared"),i=e("./version");(0,a.registerBackend)("cpu",()=>new(0,o.MathBackendCPU),1)},{"@tensorflow/tfjs-core":"hADTC","./backend_cpu":"67DWg","./shared":"191q9","./version":"10gxh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"67DWg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MathBackendCPU",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./cpu_util");let l=a.kernel_impls.whereImpl;class i extends a.KernelBackend{nextDataId(){return i.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new(0,a.DataStorage)(this,(0,a.engine)())}write(e,t,r){this.firstUse&&(this.firstUse=!1,(0,a.env)().get("IS_NODE")&&a.backend_util.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 n={id:this.nextDataId()};return this.data.set(n,{values:e,dtype:r,refCount:1}),n}makeTensorInfo(e,t,r){let n;if("string"===t&&null!=r&&r.length>0&&a.util.isString(r[0])){let s=r.map(e=>a.util.encodeString(e));n=this.write(s,e,t)}else n=this.write(r,e,t);return{dataId:n,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,r,n,s){this.data.set(e,{values:t,dtype:n,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:r}=this.data.get(e);if("complex64"===t){let e=this.readSync(r.real.dataId),t=this.readSync(r.imag.dataId);return a.backend_util.mergeRealAndImagArrays(e,t)}return a.util.convertBackendValuesAndArrayBuffer(this.data.get(e).values,t)}bufferSync(e){let t=this.readSync(e.dataId);if("string"===e.dtype)try{let r=t.map(e=>a.util.decodeString(e));return(0,a.buffer)(e.shape,e.dtype,r)}catch(e){throw Error("Failed to decode encoded string bytes into utf-8")}return(0,a.buffer)(e.shape,e.dtype,t)}makeOutput(e,t,r){return(0,a.engine)().makeTensorFromTensorInfo(this.makeTensorInfo(t,r,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:r}=this.data.get(e);null!=r&&(this.disposeData(r.real.dataId,!0),this.disposeData(r.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=a.util.now();return e(),{kernelMs:a.util.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){(0,o.assertNotComplex)([e],"where");let t=this.readSync(e.dataId);return l(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}}i.nextDataId=0},{"@tensorflow/tfjs-core":"hADTC","./cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"10gxh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version",()=>a);let a="4.22.0"},{"@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],a0i30:[function(e,t,r,n){var s=e("@tensorflow/tfjs-core"),a=e("./kernels/_FusedMatMul"),o=e("./kernels/Abs"),l=e("./kernels/Acos"),i=e("./kernels/Acosh"),u=e("./kernels/Add"),p=e("./kernels/AddN"),c=e("./kernels/All"),d=e("./kernels/Any"),f=e("./kernels/ArgMax"),h=e("./kernels/ArgMin"),m=e("./kernels/Asin"),g=e("./kernels/Asinh"),x=e("./kernels/Atan"),v=e("./kernels/Atan2"),y=e("./kernels/Atanh"),_=e("./kernels/AvgPool"),b=e("./kernels/AvgPool3D"),k=e("./kernels/AvgPool3DGrad"),T=e("./kernels/AvgPoolGrad"),w=e("./kernels/BatchMatMul"),I=e("./kernels/BatchNorm"),j=e("./kernels/BatchToSpaceND"),C=e("./kernels/Bincount"),N=e("./kernels/BitwiseAnd"),S=e("./kernels/BroadcastArgs"),E=e("./kernels/Cast"),A=e("./kernels/Ceil"),F=e("./kernels/ClipByValue"),R=e("./kernels/Complex"),D=e("./kernels/ComplexAbs"),P=e("./kernels/Concat"),$=e("./kernels/Conv2D"),M=e("./kernels/Conv2DBackpropFilter"),O=e("./kernels/Conv2DBackpropInput"),B=e("./kernels/Conv3D"),q=e("./kernels/Conv3DBackpropFilterV2"),L=e("./kernels/Conv3DBackpropInputV2"),V=e("./kernels/Cos"),G=e("./kernels/Cosh"),z=e("./kernels/CropAndResize"),U=e("./kernels/Cumprod"),X=e("./kernels/Cumsum"),W=e("./kernels/DenseBincount"),H=e("./kernels/DepthToSpace"),K=e("./kernels/DepthwiseConv2dNative"),J=e("./kernels/DepthwiseConv2dNativeBackpropFilter"),Y=e("./kernels/DepthwiseConv2dNativeBackpropInput"),Z=e("./kernels/Diag"),Q=e("./kernels/Dilation2D"),ee=e("./kernels/Dilation2DBackpropFilter"),et=e("./kernels/Dilation2DBackpropInput"),er=e("./kernels/Draw"),en=e("./kernels/Einsum"),es=e("./kernels/Elu"),ea=e("./kernels/EluGrad"),eo=e("./kernels/Equal"),el=e("./kernels/Erf"),ei=e("./kernels/Exp"),eu=e("./kernels/ExpandDims"),ep=e("./kernels/Expm1"),ec=e("./kernels/FFT"),ed=e("./kernels/Fill"),ef=e("./kernels/FlipLeftRight"),eh=e("./kernels/Floor"),em=e("./kernels/FloorDiv"),eg=e("./kernels/FusedConv2D"),ex=e("./kernels/FusedDepthwiseConv2D"),ev=e("./kernels/GatherNd"),ey=e("./kernels/GatherV2"),e_=e("./kernels/Greater"),eb=e("./kernels/GreaterEqual"),ek=e("./kernels/Identity"),eT=e("./kernels/IFFT"),ew=e("./kernels/Imag"),eI=e("./kernels/IsFinite"),ej=e("./kernels/IsInf"),eC=e("./kernels/IsNaN"),eN=e("./kernels/LeakyRelu"),eS=e("./kernels/Less"),eE=e("./kernels/LessEqual"),eA=e("./kernels/LinSpace"),eF=e("./kernels/Log"),eR=e("./kernels/Log1p"),eD=e("./kernels/LogicalAnd"),eP=e("./kernels/LogicalNot"),e$=e("./kernels/LogicalOr"),eM=e("./kernels/LRN"),eO=e("./kernels/LRNGrad"),eB=e("./kernels/Max"),eq=e("./kernels/Maximum"),eL=e("./kernels/MaxPool"),eV=e("./kernels/MaxPool3D"),eG=e("./kernels/MaxPool3DGrad"),ez=e("./kernels/MaxPoolGrad"),eU=e("./kernels/MaxPoolWithArgmax"),eX=e("./kernels/Mean"),eW=e("./kernels/Min"),eH=e("./kernels/Minimum"),eK=e("./kernels/MirrorPad"),eJ=e("./kernels/Mod"),eY=e("./kernels/Multinomial"),eZ=e("./kernels/Multiply"),eQ=e("./kernels/Neg"),e0=e("./kernels/NonMaxSuppressionV3"),e1=e("./kernels/NonMaxSuppressionV4"),e2=e("./kernels/NonMaxSuppressionV5"),e3=e("./kernels/NotEqual"),e4=e("./kernels/OneHot"),e6=e("./kernels/OnesLike"),e5=e("./kernels/Pack"),e7=e("./kernels/PadV2"),e8=e("./kernels/Pow"),e9=e("./kernels/Prelu"),te=e("./kernels/Prod"),tt=e("./kernels/RaggedGather"),tr=e("./kernels/RaggedRange"),tn=e("./kernels/RaggedTensorToTensor"),ts=e("./kernels/Range"),ta=e("./kernels/Real"),to=e("./kernels/RealDiv"),tl=e("./kernels/Reciprocal"),ti=e("./kernels/Relu"),tu=e("./kernels/Relu6"),tp=e("./kernels/Reshape"),tc=e("./kernels/ResizeBilinear"),td=e("./kernels/ResizeBilinearGrad"),tf=e("./kernels/ResizeNearestNeighbor"),th=e("./kernels/ResizeNearestNeighborGrad"),tm=e("./kernels/Reverse"),tg=e("./kernels/RotateWithOffset"),tx=e("./kernels/Round"),tv=e("./kernels/Rsqrt"),ty=e("./kernels/ScatterNd"),t_=e("./kernels/SearchSorted"),tb=e("./kernels/Select"),tk=e("./kernels/Selu"),tT=e("./kernels/Sigmoid"),tw=e("./kernels/Sign"),tI=e("./kernels/Sin"),tj=e("./kernels/Sinh"),tC=e("./kernels/Slice"),tN=e("./kernels/Softmax"),tS=e("./kernels/Softplus"),tE=e("./kernels/SpaceToBatchND"),tA=e("./kernels/SparseFillEmptyRows"),tF=e("./kernels/SparseReshape"),tR=e("./kernels/SparseSegmentMean"),tD=e("./kernels/SparseSegmentSum"),tP=e("./kernels/SparseToDense"),t$=e("./kernels/SplitV"),tM=e("./kernels/Sqrt"),tO=e("./kernels/Square"),tB=e("./kernels/SquaredDifference"),tq=e("./kernels/StaticRegexReplace"),tL=e("./kernels/Step"),tV=e("./kernels/StridedSlice"),tG=e("./kernels/StringNGrams"),tz=e("./kernels/StringSplit"),tU=e("./kernels/StringToHashBucketFast"),tX=e("./kernels/Sub"),tW=e("./kernels/Sum"),tH=e("./kernels/Tan"),tK=e("./kernels/Tanh"),tJ=e("./kernels/TensorScatterUpdate"),tY=e("./kernels/Tile"),tZ=e("./kernels/TopK"),tQ=e("./kernels/Transform"),t0=e("./kernels/Transpose"),t1=e("./kernels/Unique"),t2=e("./kernels/Unpack"),t3=e("./kernels/UnsortedSegmentSum"),t4=e("./kernels/ZerosLike");for(let e of[a._fusedMatMulConfig,o.absConfig,l.acosConfig,i.acoshConfig,u.addConfig,p.addNConfig,c.allConfig,d.anyConfig,f.argMaxConfig,h.argMinConfig,m.asinConfig,g.asinhConfig,x.atanConfig,v.atan2Config,y.atanhConfig,_.avgPoolConfig,b.avgPool3DConfig,k.avgPool3DGradConfig,T.avgPoolGradConfig,w.batchMatMulConfig,I.batchNormConfig,j.batchToSpaceNDConfig,C.bincountConfig,N.bitwiseAndConfig,S.broadcastArgsConfig,E.castConfig,A.ceilConfig,F.clipByValueConfig,R.complexConfig,D.complexAbsConfig,P.concatConfig,$.conv2DConfig,M.conv2DBackpropFilterConfig,O.conv2DBackpropInputConfig,B.conv3DConfig,q.conv3DBackpropFilterV2Config,L.conv3DBackpropInputV2Config,V.cosConfig,G.coshConfig,z.cropAndResizeConfig,U.cumprodConfig,X.cumsumConfig,W.denseBincountConfig,H.depthToSpaceConfig,K.depthwiseConv2dNativeConfig,J.depthwiseConv2dNativeBackpropFilterConfig,Y.depthwiseConv2dNativeBackpropInputConfig,Z.diagConfig,Q.dilation2DConfig,ee.dilation2DBackpropFilterConfig,et.dilation2DBackpropInputConfig,er.drawConfig,en.einsumConfig,es.eluConfig,ea.eluGradConfig,eo.equalConfig,el.erfConfig,ei.expConfig,eu.expandDimsConfig,ep.expm1Config,ec.fftConfig,ed.fillConfig,ef.flipLeftRightConfig,eh.floorConfig,em.floorDivConfig,eg.fusedConv2DConfig,ex.fusedDepthwiseConv2DConfig,ev.gatherNdConfig,ey.gatherV2Config,e_.greaterConfig,eb.greaterEqualConfig,ek.identityConfig,eT.ifftConfig,ew.imagConfig,eI.isFiniteConfig,ej.isInfConfig,eC.isNaNConfig,eN.leakyReluConfig,eS.lessConfig,eE.lessEqualConfig,eA.linSpaceConfig,eF.logConfig,eR.log1pConfig,eD.logicalAndConfig,eP.logicalNotConfig,e$.logicalOrConfig,eM.LRNConfig,eO.LRNGradConfig,eB.maxConfig,eq.maximumConfig,eL.maxPoolConfig,eV.maxPool3DConfig,eG.maxPool3DGradConfig,ez.maxPoolGradConfig,eU.maxPoolWithArgmaxConfig,eX.meanConfig,eW.minConfig,eH.minimumConfig,eK.mirrorPadConfig,eJ.modConfig,eY.multinomialConfig,eZ.multiplyConfig,eQ.negConfig,e0.nonMaxSuppressionV3Config,e1.nonMaxSuppressionV4Config,e2.nonMaxSuppressionV5Config,e3.notEqualConfig,e4.oneHotConfig,e6.onesLikeConfig,e5.packConfig,e7.padV2Config,e8.powConfig,e9.preluConfig,te.prodConfig,tt.raggedGatherConfig,tr.raggedRangeConfig,tn.raggedTensorToTensorConfig,ts.rangeConfig,ta.realConfig,to.realDivConfig,tl.reciprocalConfig,ti.reluConfig,tu.relu6Config,tp.reshapeConfig,tc.resizeBilinearConfig,td.resizeBilinearGradConfig,tf.resizeNearestNeighborConfig,th.resizeNearestNeighborGradConfig,tm.reverseConfig,tg.rotateWithOffsetConfig,tx.roundConfig,tv.rsqrtConfig,ty.scatterNdConfig,t_.searchSortedConfig,tb.selectConfig,tk.seluConfig,tT.sigmoidConfig,tw.signConfig,tI.sinConfig,tj.sinhConfig,tC.sliceConfig,tN.softmaxConfig,tS.softplusConfig,tE.spaceToBatchNDConfig,tA.sparseFillEmptyRowsConfig,tF.sparseReshapeConfig,tR.sparseSegmentMeanConfig,tD.sparseSegmentSumConfig,tP.sparseToDenseConfig,t$.splitVConfig,tM.sqrtConfig,tO.squareConfig,tB.squaredDifferenceConfig,tq.staticRegexReplaceConfig,tL.stepConfig,tV.stridedSliceConfig,tG.stringNGramsConfig,tz.stringSplitConfig,tU.stringToHashBucketFastConfig,tX.subConfig,tW.sumConfig,tH.tanConfig,tK.tanhConfig,tJ.tensorScatterUpdateConfig,tY.tileConfig,tZ.topKConfig,tQ.transformConfig,t0.transposeConfig,t1.uniqueConfig,t2.unpackConfig,t3.unsortedSegmentSumConfig,t4.zerosLikeConfig])(0,s.registerKernel)(e)},{"@tensorflow/tfjs-core":"hADTC","./kernels/_FusedMatMul":"6Gn3Q","./kernels/Abs":"b1Yz0","./kernels/Acos":"69yL3","./kernels/Acosh":"gdDLv","./kernels/Add":"cQSIz","./kernels/AddN":"locHm","./kernels/All":"1ql88","./kernels/Any":"duZTE","./kernels/ArgMax":"aLoRz","./kernels/ArgMin":"d1ebK","./kernels/Asin":"8xgEv","./kernels/Asinh":"g86zH","./kernels/Atan":"aMR7n","./kernels/Atan2":"1zvJF","./kernels/Atanh":"ljeb2","./kernels/AvgPool":"e3z0g","./kernels/AvgPool3D":"24rLL","./kernels/AvgPool3DGrad":"ktlkU","./kernels/AvgPoolGrad":"gHcA4","./kernels/BatchMatMul":"dM5XL","./kernels/BatchNorm":"c3TrH","./kernels/BatchToSpaceND":"8xQIN","./kernels/Bincount":"jgcvR","./kernels/BitwiseAnd":"dGELQ","./kernels/BroadcastArgs":"1fwob","./kernels/Cast":"6EKy0","./kernels/Ceil":"jMdYD","./kernels/ClipByValue":"dMPWx","./kernels/Complex":"di9tc","./kernels/ComplexAbs":"6QfpA","./kernels/Concat":"dexZe","./kernels/Conv2D":"aC0xh","./kernels/Conv2DBackpropFilter":"jpq1z","./kernels/Conv2DBackpropInput":"jLJdt","./kernels/Conv3D":"3ZugR","./kernels/Conv3DBackpropFilterV2":"8ZzQu","./kernels/Conv3DBackpropInputV2":"bUKqb","./kernels/Cos":"ahPMz","./kernels/Cosh":"5hnmI","./kernels/CropAndResize":"dkul6","./kernels/Cumprod":"3YSZl","./kernels/Cumsum":"1LyF5","./kernels/DenseBincount":"gvWX5","./kernels/DepthToSpace":"ceHv2","./kernels/DepthwiseConv2dNative":"lRWoT","./kernels/DepthwiseConv2dNativeBackpropFilter":"62lOC","./kernels/DepthwiseConv2dNativeBackpropInput":"1blck","./kernels/Diag":"ljdrP","./kernels/Dilation2D":"eUxNp","./kernels/Dilation2DBackpropFilter":"3ah9g","./kernels/Dilation2DBackpropInput":"kVIf0","./kernels/Draw":"5NTKI","./kernels/Einsum":"blDpR","./kernels/Elu":"lSq7X","./kernels/EluGrad":"5pq5h","./kernels/Equal":"hOgtZ","./kernels/Erf":"i3HT8","./kernels/Exp":"hPUQx","./kernels/ExpandDims":"YQiG0","./kernels/Expm1":"a5XSW","./kernels/FFT":"jnh5f","./kernels/Fill":"gLwZV","./kernels/FlipLeftRight":"3crkN","./kernels/Floor":"l7WfX","./kernels/FloorDiv":"bq9X7","./kernels/FusedConv2D":"jmgT6","./kernels/FusedDepthwiseConv2D":"cWEPO","./kernels/GatherNd":"gDqkt","./kernels/GatherV2":"qS03f","./kernels/Greater":"fMRwP","./kernels/GreaterEqual":"l1SE7","./kernels/Identity":"lz9gJ","./kernels/IFFT":"5rlbe","./kernels/Imag":"1YWkw","./kernels/IsFinite":"3kl64","./kernels/IsInf":"1xLXC","./kernels/IsNaN":"5p8Qz","./kernels/LeakyRelu":"BPSQp","./kernels/Less":"evneQ","./kernels/LessEqual":"5IGAH","./kernels/LinSpace":"3r1AE","./kernels/Log":"bwxVX","./kernels/Log1p":"fwrvQ","./kernels/LogicalAnd":"kol4r","./kernels/LogicalNot":"gcKA4","./kernels/LogicalOr":"bgaRE","./kernels/LRN":"2sRzy","./kernels/LRNGrad":"hFjiL","./kernels/Max":"dzwTK","./kernels/Maximum":"1Q4kc","./kernels/MaxPool":"kMXNT","./kernels/MaxPool3D":"d1dZ0","./kernels/MaxPool3DGrad":"hjBDV","./kernels/MaxPoolGrad":"hXQ5i","./kernels/MaxPoolWithArgmax":"ciK98","./kernels/Mean":"1EiRF","./kernels/Min":"fBfk7","./kernels/Minimum":"faufz","./kernels/MirrorPad":"799ir","./kernels/Mod":"3aUwW","./kernels/Multinomial":"gNpUi","./kernels/Multiply":"7NGDi","./kernels/Neg":"70PGK","./kernels/NonMaxSuppressionV3":"R7rVY","./kernels/NonMaxSuppressionV4":"aIhbu","./kernels/NonMaxSuppressionV5":"eJQKu","./kernels/NotEqual":"jrWXP","./kernels/OneHot":"hdgvU","./kernels/OnesLike":"7VQel","./kernels/Pack":"hEwG7","./kernels/PadV2":"9Z490","./kernels/Pow":"qmrVH","./kernels/Prelu":"6U1tC","./kernels/Prod":"9ym2m","./kernels/RaggedGather":"4fPuR","./kernels/RaggedRange":"crR9B","./kernels/RaggedTensorToTensor":"bZRl3","./kernels/Range":"jRkfN","./kernels/Real":"2dRsO","./kernels/RealDiv":"NXJyr","./kernels/Reciprocal":"958ZW","./kernels/Relu":"8pfPa","./kernels/Relu6":"8KuoG","./kernels/Reshape":"eIo6C","./kernels/ResizeBilinear":"6xOvz","./kernels/ResizeBilinearGrad":"dEg4d","./kernels/ResizeNearestNeighbor":"eBhqi","./kernels/ResizeNearestNeighborGrad":"7oB9R","./kernels/Reverse":"1htKV","./kernels/RotateWithOffset":"lnxXS","./kernels/Round":"lsMjQ","./kernels/Rsqrt":"bv39b","./kernels/ScatterNd":"b1Yfi","./kernels/SearchSorted":"1POT8","./kernels/Select":"9R6op","./kernels/Selu":"3nqxN","./kernels/Sigmoid":"feZfA","./kernels/Sign":"eTlOQ","./kernels/Sin":"5g8fH","./kernels/Sinh":"gGAnN","./kernels/Slice":"6zAVh","./kernels/Softmax":"H1bvB","./kernels/Softplus":"klSvI","./kernels/SpaceToBatchND":"8aAJV","./kernels/SparseFillEmptyRows":"kQn4a","./kernels/SparseReshape":"dckEc","./kernels/SparseSegmentMean":"au78P","./kernels/SparseSegmentSum":"dwoxZ","./kernels/SparseToDense":"loRNl","./kernels/SplitV":"7gid4","./kernels/Sqrt":"1aPpb","./kernels/Square":"ELl6R","./kernels/SquaredDifference":"JN6BO","./kernels/StaticRegexReplace":"7kidZ","./kernels/Step":"aKEGV","./kernels/StridedSlice":"2g4do","./kernels/StringNGrams":"c0QuG","./kernels/StringSplit":"jpuMv","./kernels/StringToHashBucketFast":"1eq9a","./kernels/Sub":"lwW2V","./kernels/Sum":"2o1Uw","./kernels/Tan":"bnQEx","./kernels/Tanh":"a59xI","./kernels/TensorScatterUpdate":"bPp5D","./kernels/Tile":"4DF5i","./kernels/TopK":"679kb","./kernels/Transform":"85hQ3","./kernels/Transpose":"jCE2o","./kernels/Unique":"8DrHh","./kernels/Unpack":"11UmK","./kernels/UnsortedSegmentSum":"2E5hY","./kernels/ZerosLike":"17IqM"}],"6Gn3Q":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"_fusedMatMul",()=>u),s.export(r,"_fusedMatMulConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fused_utils"),l=e("./Add"),i=e("./BatchMatMul");function u(e){let t,r,n,{inputs:s,backend:a,attrs:u}=e,{a:p,b:c,bias:d,preluActivationWeights:f}=s,{transposeA:h,transposeB:m,activation:g,leakyreluAlpha:x}=u,v=[];for(let e of(t=(0,i.batchMatMul)({inputs:{a:p,b:c},attrs:{transposeA:h,transposeB:m},backend:a}),d&&(r=(0,l.add)({inputs:{a:t,b:d},backend:a}),v.push(t),t=r),g&&(n=(0,o.applyActivation)(a,t,g,f,x),v.push(t),t=n),v))a.disposeIntermediateTensorInfo(e);return t}let p={kernelName:a._FusedMatMul,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/fused_utils":"l6Gjg","./Add":"cQSIz","./BatchMatMul":"dM5XL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],l6Gjg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"applyActivation",()=>d);var a=e("../kernels/Elu"),o=e("../kernels/Identity"),l=e("../kernels/LeakyRelu"),i=e("../kernels/Prelu"),u=e("../kernels/Relu"),p=e("../kernels/Relu6"),c=e("../kernels/Sigmoid");function d(e,t,r,n,s){if("linear"===r)return(0,o.identity)({inputs:{x:t},backend:e});if("relu"===r)return(0,u.relu)({inputs:{x:t},backend:e});if("elu"===r)return(0,a.elu)({inputs:{x:t},backend:e});if("relu6"===r)return(0,p.relu6)({inputs:{x:t},backend:e});if("prelu"===r)return(0,i.prelu)({inputs:{x:t,alpha:n},backend:e});else if("leakyrelu"===r)return(0,l.leakyRelu)({inputs:{x:t},backend:e,attrs:{alpha:s}});else if("sigmoid"===r)return(0,c.sigmoid)({inputs:{x:t},backend:e});throw Error(`Activation ${r} has not been implemented for the CPU backend.`)}},{"../kernels/Elu":"lSq7X","../kernels/Identity":"lz9gJ","../kernels/LeakyRelu":"BPSQp","../kernels/Prelu":"6U1tC","../kernels/Relu":"8pfPa","../kernels/Relu6":"8KuoG","../kernels/Sigmoid":"feZfA","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lSq7X:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"elu",()=>o),s.export(r,"eluConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Elu,e=>e>=0?e:Math.exp(e)-1),l={kernelName:a.Elu,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],BPSQp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"leakyRelu",()=>l),s.export(r,"leakyReluConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{alpha:l}=n;(0,o.assertNotComplex)([s],"leakyRelu");let i=a.util.sizeFromShape(s.shape),u=r.data.get(s.dataId).values,p=a.util.getTypedArrayFromDType("float32",i);for(let e=0;e<u.length;e++)p[e]=u[e]<0?l*u[e]:u[e];return r.makeTensorInfo(s.shape,"float32",p)}let i={kernelName:a.LeakyRelu,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6U1tC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prelu",()=>i),s.export(r,"preluConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l=(0,e("../utils/binary_impl").createSimpleBinaryKernelImpl)((e,t)=>e<0?t*e:e);function i(e){let{inputs:t,backend:r}=e,{x:n,alpha:s}=t;(0,o.assertNotComplex)([n,s],"prelu");let a=r.data.get(n.dataId).values,i=r.data.get(s.dataId).values,[u,p]=l(n.shape,s.shape,a,i,"float32");return r.makeTensorInfo(p,"float32",u)}let u={kernelName:a.Prelu,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","../utils/binary_impl":"baeuU","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8pfPa":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu",()=>o),s.export(r,"reluConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Relu,e=>Math.max(0,e)),l={kernelName:a.Relu,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8KuoG":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu6",()=>o),s.export(r,"relu6Config",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Relu6,e=>Math.min(Math.max(0,e),6)),l={kernelName:a.Relu6,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dM5XL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchMatMul",()=>i),s.export(r,"batchMatMulConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape");function i(e){let{inputs:t,backend:r,attrs:n}=e,{a:s,b:i}=t,{transposeA:u,transposeB:p}=n;(0,o.assertNotComplex)([s,i],"matMul");let c=s.shape.length,d=i.shape.length,f=u?s.shape[c-2]:s.shape[c-1],h=p?i.shape[d-1]:i.shape[d-2],m=u?s.shape[c-1]:s.shape[c-2],g=p?i.shape[d-2]:i.shape[d-1],x=s.shape.slice(0,-2),v=i.shape.slice(0,-2),y=a.util.sizeFromShape(x),_=a.util.sizeFromShape(v),b=a.broadcast_util.assertAndGetBroadcastShape(s.shape.slice(0,-2),i.shape.slice(0,-2)).concat([m,g]);a.util.assert(f===h,()=>`Error in matMul: inner shapes (${f}) and (${h}) of Tensors with shapes ${s.shape} and ${i.shape} and transposeA=${u} and transposeB=${p} must match.`);let k=(0,l.reshape)({inputs:{x:s},backend:r,attrs:{shape:u?[y,f,m]:[y,m,f]}}),T=(0,l.reshape)({inputs:{x:i},backend:r,attrs:{shape:p?[_,g,h]:[_,h,g]}}),w=u?k.shape[1]:k.shape[2],I=u?k.shape[2]:k.shape[1],j=p?T.shape[1]:T.shape[2],C=Math.max(y,_),N=r.data.get(k.dataId).values,S=r.data.get(T.dataId).values,E=a.util.computeStrides(k.shape),A=a.util.computeStrides(T.shape),[F,R,D]=u?[E[0],1,E[1]]:[E[0],E[1],1],[P,$,M]=p?[1,A[1],A[0]]:[A[1],1,A[0]],O=I*j,B=(0,a.buffer)([C,I,j],k.dtype),q=B.values,L=r.blockSize;for(let e=0;e<C;e++){let t=e%y,r=e%_;for(let n=0;n<I;n+=L){let s=Math.min(n+L,I);for(let a=0;a<j;a+=L){let o=Math.min(a+L,j);for(let l=0;l<w;l+=L){let i=Math.min(l+L,w);for(let u=n;u<s;u++)for(let n=a;n<o;n++){let s=0;for(let e=l;e<i;e++)s+=N[t*F+u*R+e*D]*S[e*P+n*$+r*M];q[e*O+(u*j+n)]+=s}}}}}return r.disposeIntermediateTensorInfo(k),r.disposeIntermediateTensorInfo(T),r.makeTensorInfo(b,B.dtype,B.values)}let u={kernelName:a.BatchMatMul,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Reshape":"eIo6C","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eIo6C:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reshape",()=>o),s.export(r,"reshapeConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{shape:o}=n,l=a.util.sizeFromShape(s.shape),i=a.util.inferFromImplicitShape(o,l),u=a.util.sizeFromShape(i);a.util.assert(l===u,()=>`The new shape (${i}) has ${u} elements and the old shape (${s.shape}) has ${l} elements. The new shape and old shape must have the same number of elements.`),r.incRef(s.dataId);let p=r.data.get(s.dataId);if(null!=p.complexTensorInfos){let e=p.complexTensorInfos.real,t=p.complexTensorInfos.imag;e.shape=i,t.shape=i}return{dataId:s.dataId,shape:i,dtype:s.dtype}}let l={kernelName:a.Reshape,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"69yL3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acos",()=>o),s.export(r,"acosConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Acos,e=>Math.acos(e)),l={kernelName:a.Acos,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gdDLv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acosh",()=>o),s.export(r,"acoshConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Acosh,e=>Math.acosh(e)),l={kernelName:a.Acosh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],locHm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addN",()=>l),s.export(r,"addNConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r}=e;(0,o.assertNotComplex)(t,"addN");let n=t.map(e=>r.data.get(e.dataId).values),s=(0,a.buffer)(t[0].shape,t[0].dtype),l=s.values;for(let e=0;e<t.length;e++){let t=n[e];for(let e=0;e<l.length;e++)l[e]+=t[e]}return r.makeTensorInfo(s.shape,s.dtype,s.values)}let i={kernelName:a.AddN,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1ql88":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"all",()=>u),s.export(r,"allConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Transpose");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:u,keepDims:p}=n;(0,o.assertNotComplex)(s,"all");let c=a.util.parseAxisParam(u,s.shape),d=c,f=a.backend_util.getAxesPermutation(d,s.shape.length),h=s;null!=f&&(h=(0,i.transpose)({inputs:{x:s},backend:r,attrs:{perm:f}}),d=a.backend_util.getInnerMostAxes(d.length,s.shape.length)),a.backend_util.assertAxesAreInnerMostDims("all",d,h.shape.length);let[m,g]=a.backend_util.computeOutAndReduceShapes(h.shape,d),x=a.util.sizeFromShape(g),v=a.util.makeZerosTypedArray(a.util.sizeFromShape(m),h.dtype),y=r.data.get(h.dataId).values;for(let e=0;e<v.length;++e){let t=e*x,r=y[t];for(let e=0;e<x;++e){let n=y[t+e];r=r&&n}v[e]=r}null!=f&&r.disposeIntermediateTensorInfo(h);let _=r.makeTensorInfo(m,h.dtype,v);if(p){let e=a.backend_util.expandShapeToKeepDim(m,c),t=(0,l.reshape)({inputs:{x:_},backend:r,attrs:{shape:e}});return r.disposeIntermediateTensorInfo(_),t}return _}let p={kernelName:a.All,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Reshape":"eIo6C","./Transpose":"jCE2o","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],duZTE:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"any",()=>u),s.export(r,"anyConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Transpose");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:u,keepDims:p}=n;(0,o.assertNotComplex)(s,"any");let c=a.util.parseAxisParam(u,s.shape),d=c,f=a.backend_util.getAxesPermutation(d,s.shape.length),h=s;null!=f&&(h=(0,i.transpose)({inputs:{x:s},backend:r,attrs:{perm:f}}),d=a.backend_util.getInnerMostAxes(d.length,s.shape.length)),a.backend_util.assertAxesAreInnerMostDims("any",d,h.shape.length);let[m,g]=a.backend_util.computeOutAndReduceShapes(h.shape,d),x=a.util.sizeFromShape(g),v=a.util.makeZerosTypedArray(a.util.sizeFromShape(m),h.dtype),y=r.data.get(h.dataId).values;for(let e=0;e<v.length;++e){let t=e*x,r=y[t];for(let e=0;e<x;++e){let n=y[t+e];r=r||n}v[e]=r}null!=f&&r.disposeIntermediateTensorInfo(h);let _=r.makeTensorInfo(m,h.dtype,v);if(p){let e=a.backend_util.expandShapeToKeepDim(m,c),t=(0,l.reshape)({inputs:{x:_},backend:r,attrs:{shape:e}});return r.disposeIntermediateTensorInfo(_),t}return _}let p={kernelName:a.Any,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Reshape":"eIo6C","./Transpose":"jCE2o","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aLoRz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMax",()=>i),s.export(r,"argMaxConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i}=n;(0,o.assertNotComplex)(s,"argMax");let u=a.util.parseAxisParam(i,s.shape),p=a.backend_util.getAxesPermutation(u,s.shape.length),c=s,d=[];null!=p&&(d.push(c=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:p}})),u=a.backend_util.getInnerMostAxes(u.length,c.shape.length)),u=[u[0]],a.backend_util.assertAxesAreInnerMostDims("argMax",u,c.shape.length);let[f,h]=a.backend_util.computeOutAndReduceShapes(c.shape,u),m=a.util.sizeFromShape(f),g=a.util.makeZerosTypedArray(m,"int32"),x=a.util.sizeFromShape(h),v=r.data.get(c.dataId).values;for(let e=0;e<g.length;++e){let t=e*x,r=v[t],n=0;for(let e=0;e<x;++e){let s=v[t+e];s>r&&(r=s,n=e)}g[e]=n}return d.forEach(e=>r.disposeIntermediateTensorInfo(e)),r.makeTensorInfo(f,"int32",g)}let u={kernelName:a.ArgMax,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Transpose":"jCE2o","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],d1ebK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMin",()=>i),s.export(r,"argMinConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i}=n;(0,o.assertNotComplex)(s,"argMin");let u=a.util.parseAxisParam(i,s.shape),p=a.backend_util.getAxesPermutation(u,s.shape.length),c=s,d=[];null!=p&&(d.push(c=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:p}})),u=a.backend_util.getInnerMostAxes(u.length,c.shape.length)),u=[u[0]],a.backend_util.assertAxesAreInnerMostDims("argMin",u,c.shape.length);let[f,h]=a.backend_util.computeOutAndReduceShapes(c.shape,u),m=a.util.sizeFromShape(f),g=a.util.makeZerosTypedArray(m,"int32"),x=a.util.sizeFromShape(h),v=r.data.get(c.dataId).values;for(let e=0;e<g.length;++e){let t=e*x,r=v[t],n=0;for(let e=0;e<x;++e){let s=v[t+e];s<r&&(r=s,n=e)}g[e]=n}return d.forEach(e=>r.disposeIntermediateTensorInfo(e)),r.makeTensorInfo(f,"int32",g)}let u={kernelName:a.ArgMin,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Transpose":"jCE2o","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8xgEv":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asin",()=>o),s.export(r,"asinConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Asin,e=>Math.asin(e)),l={kernelName:a.Asin,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],g86zH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asinh",()=>o),s.export(r,"asinhConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Asinh,e=>Math.asinh(e)),l={kernelName:a.Asinh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aMR7n:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan",()=>o),s.export(r,"atanConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Atan,e=>Math.atan(e)),l={kernelName:a.Atan,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1zvJF":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan2Impl",()=>i),s.export(r,"atan2",()=>u),s.export(r,"atan2Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.atan2(e,t)),u=(0,l.binaryKernelFunc)(a.Atan2,i),p={kernelName:a.Atan2,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ljeb2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atanh",()=>o),s.export(r,"atanhConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Atanh,e=>Math.atanh(e)),l={kernelName:a.Atanh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],e3z0g:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool",()=>u),s.export(r,"avgPoolConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils"),i=e("./Identity");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r;(0,o.assertNotComplex)(u,"avgPool");let{filterSize:p,strides:c,pad:d,dimRoundingMode:f}=s;a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(c,1),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${c} and dilations '1'`);let h=a.backend_util.computePool2DInfo(u.shape,p,c,1,d,f);if(1===h.filterWidth&&1===h.filterHeight&&a.util.arraysEqual(h.inShape,h.outShape))t=(0,i.identity)({inputs:{x:u},backend:n});else{let e=n.data.get(u.dataId).values,r=a.util.computeStrides(u.shape),s=(0,l.pool)(e,u.shape,u.dtype,r,h,"avg");t=n.makeTensorInfo(h.outShape,u.dtype,s.values)}return t}let p={kernelName:a.AvgPool,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","../utils/pool_utils":"83Xvz","./Identity":"lz9gJ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"83Xvz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pool",()=>o),s.export(r,"maxPoolPositions",()=>l),s.export(r,"pool3d",()=>i),s.export(r,"maxPool3dPositions",()=>u);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o){let l=s.strideHeight,i=s.strideWidth,u=s.dilationHeight,p=s.dilationWidth,c=s.effectiveFilterHeight,d=s.effectiveFilterWidth,f=s.padInfo.top,h=s.padInfo.left,m="max"===o?-1/0:1/0,g=(0,a.buffer)(s.outShape,r),x=g.values,v=s.outShape[1]*s.outShape[2]*s.outShape[3],y=s.outShape[2]*s.outShape[3],_=s.outShape[3];for(let t=0;t<s.batchSize;++t){let r=t*v,a=t*n[0];for(let t=0;t<s.inChannels;++t)for(let g=0;g<s.outHeight;++g){let v=g*l-f,b=Math.max(0,v),k=Math.min(s.inHeight,c+v),T=r+g*y;for(let r=0;r<s.outWidth;++r){let l=r*i-h,c=Math.max(0,l),f=Math.min(s.inWidth,d+l),g=m,v=0,y=0;for(let r=b;r<k;r+=u){let s=a+r*n[1];for(let r=c;r<f;r+=p){let a=e[s+r*n[2]+t];"max"===o&&a>g?g=a:"avg"===o&&(v+=a,y++)}if(isNaN(g))break}x[T+r*_+t]="avg"===o?v/y:g}}}return g}function l(e,t,r,n,s=!1,o=!1){let i=(0,a.buffer)(n.outShape,"int32"),u=n.strideHeight,p=n.strideWidth,c=n.dilationHeight,d=n.dilationWidth,f=n.effectiveFilterHeight,h=n.effectiveFilterWidth,m=n.padInfo.top,g=n.padInfo.left,x=(0,a.buffer)(t,r,e);for(let e=0;e<n.batchSize;++e)for(let t=0;t<n.inChannels;++t)for(let r=0;r<n.outHeight;++r){let a=r*u-m,l=a;for(;l<0;)l+=c;let v=Math.min(n.inHeight,f+a);for(let u=0;u<n.outWidth;++u){let f=u*p-g,m=f;for(;m<0;)m+=d;let y=Math.min(n.inWidth,h+f),_=-1/0,b=-1;for(let r=l;r<v;r+=c){let l=r-a;for(let a=m;a<y;a+=d){let i=a-f,u=x.get(e,r,a,t);u>_&&(_=u,b=s?o?((e*n.inHeight+r)*n.inWidth+a)*n.inChannels+t:(r*n.inWidth+a)*n.inChannels+t:l*h+i)}}i.set(b,e,r,u,t)}}return i}function i(e,t,r,n,s,o){let l=s.strideDepth,i=s.strideHeight,u=s.strideWidth,p=s.dilationDepth,c=s.dilationHeight,d=s.dilationWidth,f=s.effectiveFilterDepth,h=s.effectiveFilterHeight,m=s.effectiveFilterWidth,g=s.padInfo.front,x=s.padInfo.top,v=s.padInfo.left,y="max"===o?-1/0:1/0,_=(0,a.buffer)(s.outShape,r),b=_.values,k=s.outShape[1]*s.outShape[2]*s.outShape[3]*s.outShape[4],T=s.outShape[2]*s.outShape[3]*s.outShape[4],w=s.outShape[3]*s.outShape[4],I=s.outShape[4];for(let t=0;t<s.batchSize;++t){let r=t*k,a=t*n[0];for(let t=0;t<s.inChannels;++t)for(let _=0;_<s.outDepth;++_){let k=_*l-g,j=k;for(;j<0;)j+=p;let C=Math.min(s.inDepth,f+k),N=r+_*T;for(let r=0;r<s.outHeight;++r){let l=r*i-x,f=l;for(;f<0;)f+=c;let g=Math.min(s.inHeight,h+l),_=N+r*w;for(let r=0;r<s.outWidth;++r){let l=r*u-v,i=l;for(;i<0;)i+=d;let h=Math.min(s.inWidth,m+l),x=_+r*I,k=y,T=0,w=0;for(let r=j;r<C;r+=p){let s=a+r*n[1];for(let r=f;r<g;r+=c){let a=s+r*n[2];for(let r=i;r<h;r+=d){let s=e[a+r*n[3]+t];if("max"===o&&s>k?k=s:"avg"===o&&(T+=s,w++),isNaN(k))break}if(isNaN(k))break}if(isNaN(k))break}b[x+t]="avg"===o?T/Math.max(w,1):k}}}}return _}function u(e,t){let r=(0,a.buffer)(t.outShape,"int32"),n=t.strideDepth,s=t.strideHeight,o=t.strideWidth,l=t.dilationDepth,i=t.dilationHeight,u=t.dilationWidth,p=t.effectiveFilterDepth,c=t.effectiveFilterHeight,d=t.effectiveFilterWidth,f=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let a=0;a<t.batchSize;++a)for(let g=0;g<t.inChannels;++g)for(let x=0;x<t.outDepth;++x){let v=x*n-f,y=v;for(;y<0;)y+=l;let _=Math.min(t.inDepth,p+v);for(let n=0;n<t.outHeight;++n){let p=n*s-h,f=p;for(;f<0;)f+=i;let b=Math.min(t.inHeight,c+p);for(let s=0;s<t.outWidth;++s){let h=s*o-m,k=h;for(;k<0;)k+=u;let T=Math.min(t.inWidth,d+h),w=-1/0,I=-1;for(let t=y;t<_;t+=l){let r=t-v;for(let n=f;n<b;n+=i){let s=n-p;for(let o=k;o<T;o+=u){let l=o-h,i=e.get(a,t,n,o,g);i>=w&&(w=i,I=r*c*d+s*c+l)}}}r.set(I,a,x,n,s,g)}}}return r}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"24rLL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3D",()=>i),s.export(r,"avgPool3DConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{filterSize:i,strides:u,pad:p,dimRoundingMode:c,dataFormat:d}=n;(0,o.assertNotComplex)(s,"avgPool3d");let f=a.backend_util.computePool3DInfo(s.shape,i,u,1,p,c,d),h=r.data.get(s.dataId).values,m=(0,l.pool3d)(h,s.shape,s.dtype,a.util.computeStrides(s.shape),f,"avg");return r.makeTensorInfo(m.shape,"float32",m.values)}let u={kernelName:a.AvgPool3D,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","../utils/pool_utils":"83Xvz","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ktlkU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3DGrad",()=>l),s.export(r,"avgPool3DGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:l}=t,{filterSize:i,strides:u,pad:p,dimRoundingMode:c}=n;(0,o.assertNotComplex)([s,l],"avgPool3DGrad");let d=a.backend_util.computePool3DInfo(l.shape,i,u,1,p,c),f=d.strideDepth,h=d.strideHeight,m=d.strideWidth,g=d.filterDepth,x=d.filterHeight,v=d.filterWidth,y=d.dilationDepth,_=d.dilationHeight,b=d.dilationWidth,k=d.effectiveFilterDepth,T=d.effectiveFilterHeight,w=d.effectiveFilterWidth,I=k-1-d.padInfo.front,j=w-1-d.padInfo.left,C=T-1-d.padInfo.top,N=(0,a.buffer)(l.shape,"float32"),S=1/(g*x*v),E=r.bufferSync(s);for(let e=0;e<d.batchSize;++e)for(let t=0;t<d.inChannels;++t)for(let r=0;r<d.inDepth;++r)for(let n=0;n<d.inHeight;++n)for(let s=0;s<d.inWidth;++s){let a=r-I,o=n-C,l=s-j,i=0;for(let r=0;r<k;r+=y){let n=(a+r)/f;if(!(n<0)&&!(n>=d.outDepth)&&Math.floor(n)===n)for(let r=0;r<T;r+=_){let s=(o+r)/h;if(!(s<0)&&!(s>=d.outHeight)&&Math.floor(s)===s)for(let r=0;r<w;r+=b){let a=(l+r)/m;a<0||a>=d.outWidth||Math.floor(a)!==a||(i+=E.get(e,n,s,a,t))}}}N.set(i*S,e,r,n,s,t)}return r.makeTensorInfo(N.shape,N.dtype,N.values)}let i={kernelName:a.AvgPool3DGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gHcA4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPoolGrad",()=>l),s.export(r,"avgPoolGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:l}=t;(0,o.assertNotComplex)([s,l],"avgPoolGrad");let{filterSize:i,strides:u,pad:p}=n,c=a.backend_util.computePool2DInfo(l.shape,i,u,1,p),d=c.strideHeight,f=c.strideWidth,h=c.filterHeight,m=c.filterWidth,g=c.dilationHeight,x=c.dilationWidth,v=c.effectiveFilterHeight,y=c.effectiveFilterWidth,_=y-1-c.padInfo.left,b=v-1-c.padInfo.top,k=(0,a.buffer)(l.shape,"float32"),T=1/(h*m),w=r.data.get(s.dataId).values,I=(0,a.buffer)(s.shape,"float32",w);for(let e=0;e<c.batchSize;++e)for(let t=0;t<c.inChannels;++t)for(let r=0;r<c.inHeight;++r)for(let n=0;n<c.inWidth;++n){let s=r-b,a=n-_,o=0;for(let r=0;r<v;r+=g){let n=(s+r)/d;if(!(n<0)&&!(n>=c.outHeight)&&Math.floor(n)===n)for(let r=0;r<y;r+=x){let s=(a+r)/f;s<0||s>=c.outWidth||Math.floor(s)!==s||(o+=I.get(e,n,s,t))}}k.set(o*T,e,r,n,t)}return r.makeTensorInfo(k.shape,k.dtype,k.values)}let i={kernelName:a.AvgPoolGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],c3TrH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm",()=>l),s.export(r,"batchNormConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,scale:l,offset:i,mean:u,variance:p}=t;a.util.assert(u.shape.length===p.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),a.util.assert(null==i||u.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),a.util.assert(null==l||u.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),(0,o.assertNotComplex)([s,u,p,l,i],"batchNorm");let{varianceEpsilon:c}=n;null==c&&(c=.001);let d=r.data.get(s.dataId).values,f=r.data.get(u.dataId).values,h=r.data.get(p.dataId).values,m=l?r.data.get(l.dataId).values:new Float32Array([1]),g=i?r.data.get(i.dataId).values:new Float32Array([0]),x=new Float32Array(d.length),v=g.length,y=m.length,_=h.length,b=f.length,k=0,T=0,w=0,I=0;for(let e=0;e<d.length;++e)x[e]=g[k++]+(d[e]-f[T++])*m[w++]/Math.sqrt(h[I++]+c),k>=v&&(k=0),T>=b&&(T=0),w>=y&&(w=0),I>=_&&(I=0);return r.makeTensorInfo(s.shape,s.dtype,x)}let i={kernelName:a.FusedBatchNorm,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8xQIN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchToSpaceND",()=>p),s.export(r,"batchToSpaceNDConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Slice"),u=e("./Transpose");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockShape:p,crops:c}=n;(0,o.assertNotComplex)([s],"batchToSpaceND");let d=p.reduce((e,t)=>e*t),f=a.backend_util.getReshaped(s.shape,p,d),h=a.backend_util.getPermuted(f.length,p.length),m=a.backend_util.getReshapedPermuted(s.shape,p,d),g=a.backend_util.getSliceBeginCoords(c,p.length),x=a.backend_util.getSliceSize(m,c,p.length),v=(0,l.reshape)({inputs:{x:s},backend:r,attrs:{shape:f}}),y=(0,u.transpose)({inputs:{x:v},backend:r,attrs:{perm:h}}),_=(0,l.reshape)({inputs:{x:y},backend:r,attrs:{shape:m}}),b=(0,i.slice)({inputs:{x:_},backend:r,attrs:{begin:g,size:x}});return r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(y),r.disposeIntermediateTensorInfo(_),b}let c={kernelName:a.BatchToSpaceND,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Reshape":"eIo6C","./Slice":"6zAVh","./Transpose":"jCE2o","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jgcvR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bincount",()=>l),s.export(r,"bincountConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Bincount_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,weights:a}=t,{size:l}=n,i=r.data.get(s.dataId).values,u=r.data.get(a.dataId).values,p=(0,o.bincountImpl)(i,u,a.dtype,a.shape,l);return r.makeTensorInfo([l],a.dtype,p)}let i={kernelName:a.Bincount,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./Bincount_impl":"epZZc","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1fwob":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"broadcastArgs",()=>o),s.export(r,"broadcastArgsConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r}=e,{s0:n,s1:s}=t,o=r.data.get(n.dataId).values,l=r.data.get(s.dataId).values,i=a.backend_util.assertAndGetBroadcastShape(Array.from(o),Array.from(l));return r.makeTensorInfo([i.length],"int32",Int32Array.from(i))}let l={kernelName:a.BroadcastArgs,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dMPWx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clipByValue",()=>o),s.export(r,"clipByValueConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.ClipByValue,(e,t)=>e>t.clipValueMax?t.clipValueMax:e<t.clipValueMin?t.clipValueMin:e),l={kernelName:a.ClipByValue,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6QfpA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"complexAbs",()=>o),s.export(r,"complexAbsConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=e=>{let{x:t}=e.inputs,r=e.backend,n=new Float32Array(a.util.sizeFromShape(t.shape)),s=r.data.get(t.dataId),o=s.complexTensorInfos.real,l=s.complexTensorInfos.imag,i=r.data.get(o.dataId).values,u=r.data.get(l.dataId).values;for(let e=0;e<i.length;e++){let t=i[e],r=u[e];n[e]=Math.hypot(t,r)}return r.makeOutput(n,t.shape,"float32")},l={kernelName:a.ComplexAbs,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dexZe:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat",()=>d),s.export(r,"concatConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Concat_impl"),i=e("./Identity"),u=e("./Imag"),p=e("./Real"),c=e("./Reshape");function d(e){let{inputs:t,backend:r,attrs:n}=e,{axis:s}=n,f=a.util.parseAxisParam(s,t[0].shape)[0],h=t.map(e=>e.shape);a.backend_util.assertParamsConsistent(h,f);let m=a.backend_util.computeOutShape(t.map(e=>e.shape),f);if(0===a.util.sizeFromShape(m))return r.makeTensorInfo(m,t[0].dtype,[]);let g=t.filter(e=>a.util.sizeFromShape(e.shape)>0);if(1===g.length)return(0,i.identity)({inputs:{x:g[0]},backend:r});if("complex64"===g[0].dtype){let e=g.map(e=>(0,p.real)({inputs:{input:e},backend:r})),t=g.map(e=>(0,u.imag)({inputs:{input:e},backend:r})),n=d({inputs:e,backend:r,attrs:{axis:f}}),s=d({inputs:t,backend:r,attrs:{axis:f}}),a=(0,o.complex)({inputs:{real:n,imag:s},backend:r});return e.forEach(e=>r.disposeIntermediateTensorInfo(e)),t.forEach(e=>r.disposeIntermediateTensorInfo(e)),r.disposeIntermediateTensorInfo(n),r.disposeIntermediateTensorInfo(s),a}let x=g.map(e=>{let t=a.util.sizeFromShape(e.shape.slice(f));return(0,c.reshape)({inputs:{x:e},backend:r,attrs:{shape:[-1,t]}})}),v=x.map(e=>({vals:r.data.get(e.dataId).values,shape:e.shape}));m=a.backend_util.computeOutShape(x.map(e=>e.shape),1);let y=1===x[0].shape[0],_=(0,l.concatImpl)(v,m,t[0].dtype,y),b=a.backend_util.computeOutShape(g.map(e=>e.shape),f),k=r.makeTensorInfo(b,t[0].dtype,_);return x.forEach(e=>r.disposeIntermediateTensorInfo(e)),k}let f={kernelName:a.Concat,backendName:"cpu",kernelFunc:d}},{"@tensorflow/tfjs-core":"hADTC","./Complex":"di9tc","./Concat_impl":"3KJ3m","./Identity":"lz9gJ","./Imag":"1YWkw","./Real":"2dRsO","./Reshape":"eIo6C","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1YWkw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{input:n}=t,s=r.data.get(n.dataId).complexTensorInfos.imag,a=r.data.get(s.dataId).values;return r.makeTensorInfo(s.shape,s.dtype,a)}s.defineInteropFlag(r),s.export(r,"imag",()=>a),s.export(r,"imagConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Imag,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aC0xh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2D",()=>l),s.export(r,"conv2DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:l}=t,{strides:i,pad:u,dataFormat:p,dilations:c,dimRoundingMode:d}=n;(0,o.assertNotComplex)([s,l],"conv2d");let f=a.backend_util.convertConv2DDataFormat(p),h=a.backend_util.computeConv2DInfo(s.shape,l.shape,i,c,u,d,!1,f),m=h.filterHeight,g=h.filterWidth,x=h.dilationHeight,v=h.dilationWidth,y=h.padInfo.left,_=h.padInfo.top,b="channelsLast"===h.dataFormat,k=new(0,a.TensorBuffer)(h.outShape,s.dtype),T=a.util.computeStrides(s.shape),w=a.util.computeStrides(l.shape),I=T[0],j=b?T[1]:T[2],C=b?T[2]:1,N=b?1:T[1],S=k.strides[0],E=b?k.strides[1]:k.strides[2],A=b?k.strides[2]:1,F=b?1:k.strides[1],R=r.data.get(s.dataId).values,D=r.data.get(l.dataId).values,P=k.values;for(let e=0;e<h.batchSize;++e){let t=e*I,r=e*S;for(let e=0;e<h.outHeight;++e){let n=r+e*E,s=e*h.strideHeight-_;for(let e=0;e<m;++e){let r=s+e*x;if(r<0||r>=h.inHeight)continue;let a=e*w[0],o=t+r*j;for(let e=0;e<h.outWidth;++e){let t=n+e*A,r=e*h.strideWidth-y;for(let e=0;e<g;++e){let n=r+e*v;if(n<0||n>=h.inWidth)continue;let s=a+e*w[1],l=o+n*C,i=s;for(let e=0;e<h.inChannels;++e){let r=R[l+e*N];for(let e=0;e<h.outChannels;++e)P[t+e*F]+=r*D[i+e];i+=h.outChannels}}}}}}return r.makeTensorInfo(k.shape,k.dtype,P)}let i={kernelName:a.Conv2D,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jpq1z:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropFilter",()=>l),s.export(r,"conv2DBackpropFilterConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,pad:u,dataFormat:p,dimRoundingMode:c,filterShape:d}=n;(0,o.assertNotComplex)([s,l],"conv2dBackpropFilter");let f=a.backend_util.convertConv2DDataFormat(p),h=a.backend_util.computeConv2DInfo(s.shape,d,i,1,u,c,!1,f),{strideHeight:m,strideWidth:g,filterHeight:x,filterWidth:v}=h,y="channelsLast"===h.dataFormat,_=new(0,a.TensorBuffer)(h.filterShape,"float32"),b=h.padInfo.left,k=h.padInfo.top,T=r.data.get(s.dataId).values,w=r.data.get(l.dataId).values,I=new(0,a.TensorBuffer)(s.shape,s.dtype,T),j=new(0,a.TensorBuffer)(l.shape,l.dtype,w);for(let e=0;e<x;++e){let t=Math.max(0,Math.ceil((k-e)/m)),r=Math.min(h.outHeight,(h.inHeight+k-e)/m);for(let n=0;n<v;++n){let s=Math.max(0,Math.ceil((b-n)/g)),a=Math.min(h.outWidth,(h.inWidth+b-n)/g);for(let o=0;o<h.inChannels;++o)for(let l=0;l<h.outChannels;++l){let i=0;for(let u=0;u<h.batchSize;++u)for(let p=t;p<r;++p){let t=e+p*m-k;for(let e=s;e<a;++e){let r=n+e*g-b;y?i+=I.get(u,t,r,o)*j.get(u,p,e,l):i+=I.get(u,o,t,r)*j.get(u,l,p,e)}}_.set(i,e,n,o,l)}}}return r.makeTensorInfo(_.shape,_.dtype,_.values)}let i={kernelName:a.Conv2DBackpropFilter,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jLJdt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropInput",()=>l),s.export(r,"conv2DBackpropInputConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{inputShape:i,strides:u,pad:p,dataFormat:c,dimRoundingMode:d}=n;(0,o.assertNotComplex)([s,l],"conv2dBackpropInput");let f=a.util.computeStrides(l.shape),h=a.util.computeStrides(s.shape),m=a.backend_util.convertConv2DDataFormat(c),g=a.backend_util.computeConv2DInfo(i,l.shape,u,1,p,d,!1,m),x=new(0,a.TensorBuffer)(g.inShape,"float32"),v=x.values,y=r.data.get(s.dataId).values,_=r.data.get(l.dataId).values,[b,k,T]=f,{batchSize:w,filterHeight:I,filterWidth:j,inChannels:C,inHeight:N,inWidth:S,outChannels:E,outHeight:A,outWidth:F,strideHeight:R,strideWidth:D}=g;m=g.dataFormat;let P=I-1-g.padInfo.top,$=j-1-g.padInfo.left,M="channelsLast"===m,O=x.strides[0],B=M?x.strides[1]:x.strides[2],q=M?x.strides[2]:1,L=M?1:x.strides[1],V=h[0],G=M?h[1]:h[2],z=M?h[2]:1,U=M?1:h[1];for(let e=0;e<w;++e)for(let t=0;t<C;++t)for(let r=0;r<N;++r){let n=r-P,s=Math.max(0,Math.ceil(n/R)),a=Math.min(A,(I+n)/R);for(let o=0;o<S;++o){let l=o-$,i=Math.max(0,Math.ceil(l/D)),u=Math.min(F,(j+l)/D),p=0;for(let r=s;r<a;++r){let s=r*R-n;for(let n=i;n<u;++n){let a=n*D-l,o=V*e+G*r+z*n,i=b*(I-1-s)+k*(j-1-a)+T*t;for(let e=0;e<E;++e)p+=y[o+U*e]*_[i+e]}}v[O*e+B*r+q*o+L*t]=p}}return r.makeTensorInfo(x.shape,x.dtype,x.values)}let i={kernelName:a.Conv2DBackpropInput,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3ZugR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3D",()=>l),s.export(r,"conv3DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:l}=t,{strides:i,pad:u,dilations:p}=n;(0,o.assertNotComplex)([s,l],"conv3d");let c=a.backend_util.computeConv3DInfo(s.shape,l.shape,i,p,u),{filterDepth:d,filterHeight:f,filterWidth:h,dilationDepth:m,dilationHeight:g,dilationWidth:x,padInfo:v}=c,y=v.front,_=v.left,b=v.top,k=new(0,a.TensorBuffer)(c.outShape,s.dtype),T=r.data.get(s.dataId).values,w=r.data.get(l.dataId).values,I=k.values,j=a.util.computeStrides(s.shape),C=a.util.computeStrides(l.shape);for(let e=0;e<c.batchSize;++e){let t=e*j[0],r=e*k.strides[0];for(let e=0;e<c.outDepth;++e){let n=r+e*k.strides[1],s=e*c.strideDepth-y;for(let e=0;e<d;++e){let r=s+e*m;if(r<0||r>=c.inDepth)continue;let a=e*C[0],o=t+r*j[1];for(let e=0;e<c.outHeight;++e){let t=n+e*k.strides[2],r=e*c.strideHeight-b;for(let e=0;e<f;++e){let n=r+e*g;if(n<0||n>=c.inHeight)continue;let s=a+e*C[1],l=o+n*j[2];for(let e=0;e<c.outWidth;++e){let r=t+e*c.outChannels,n=e*c.strideWidth-_;for(let e=0;e<h;++e){let t=n+e*x;if(t<0||t>=c.inWidth)continue;let a=s+e*C[2],o=l+t*c.inChannels,i=a;for(let e=0;e<c.inChannels;++e){let t=T[o+e];for(let e=0;e<c.outChannels;++e)I[r+e]+=t*w[i+e];i+=c.outChannels}}}}}}}}return r.makeTensorInfo(k.shape,k.dtype,k.values)}let i={kernelName:a.Conv3D,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8ZzQu":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3DBackpropFilterV2",()=>l),s.export(r,"conv3DBackpropFilterV2Config",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,pad:u,filterShape:p}=n;(0,o.assertNotComplex)([s,l],"conv3dBackpropFilterV2");let c=a.util.computeStrides(s.shape),d=a.util.computeStrides(l.shape),f=a.backend_util.computeConv3DInfo(s.shape,p,i,1,u),h=f.strideDepth,m=f.strideHeight,g=f.strideWidth,x=f.filterDepth,v=f.filterHeight,y=f.filterWidth,_=new(0,a.TensorBuffer)(f.filterShape,"float32"),b=_.values,[k,T,w,I]=_.strides,j=r.data.get(l.dataId).values,[C,N,S,E]=d,A=r.data.get(s.dataId).values,[F,R,D,P]=c,$=f.padInfo.front,M=f.padInfo.left,O=f.padInfo.top;for(let e=0;e<x;++e){let t=Math.max(0,Math.ceil(($-e)/h)),r=Math.min(f.outDepth,(f.inDepth+$-e)/h),n=e*k;for(let s=0;s<v;++s){let a=Math.max(0,Math.ceil((O-s)/m)),o=Math.min(f.outHeight,(f.inHeight+O-s)/m),l=s*T+n;for(let n=0;n<y;++n){let i=Math.max(0,Math.ceil((M-n)/g)),u=Math.min(f.outWidth,(f.inWidth+M-n)/g),p=n*w+l;for(let l=0;l<f.inChannels;++l){let c=l*I+p;for(let p=0;p<f.outChannels;++p){let d=0;for(let c=0;c<f.batchSize;++c){let f=c*F,x=c*C;for(let c=t;c<r;++c){let t=(e+c*h-$)*R+f,r=c*N+x;for(let e=a;e<o;++e){let a=(s+e*m-O)*D+t,o=e*S+r;for(let e=i;e<u;++e){let t=(n+e*g-M)*P+a,r=e*E+o;d+=A[t+l]*j[r+p]}}}}b[c+p]=d}}}}}return r.makeTensorInfo(_.shape,_.dtype,_.values)}let i={kernelName:a.Conv3DBackpropFilterV2,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bUKqb:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3DBackpropInputV2",()=>l),s.export(r,"conv3DBackpropInputV2Config",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{pad:i,strides:u,inputShape:p}=n;(0,o.assertNotComplex)([s],"conv3dBackpropInputV2");let c=a.util.computeStrides(s.shape),d=a.util.computeStrides(l.shape),f=a.backend_util.computeConv3DInfo(p,l.shape,u,1,i),h=new(0,a.TensorBuffer)(f.inShape,"float32"),m=h.values,[g,x,v,y]=h.strides,_=r.data.get(s.dataId).values,[b,k,T,w]=c,I=r.data.get(l.dataId).values,[j,C,N,S]=d,{batchSize:E,filterDepth:A,filterHeight:F,filterWidth:R,inChannels:D,inDepth:P,inHeight:$,inWidth:M,outChannels:O,outDepth:B,outHeight:q,outWidth:L,strideDepth:V,strideHeight:G,strideWidth:z}=f,U=A-1-f.padInfo.front,X=F-1-f.padInfo.top,W=R-1-f.padInfo.left;for(let e=0;e<E;++e)for(let t=0;t<D;++t)for(let r=0;r<P;++r){let n=r-U,s=Math.max(0,Math.ceil(n/V)),a=Math.min(B,(A+n)/V);for(let o=0;o<$;++o){let l=o-X,i=Math.max(0,Math.ceil(l/G)),u=Math.min(q,(F+l)/G);for(let p=0;p<M;++p){let c=p-W,d=Math.max(0,Math.ceil(c/z)),f=Math.min(L,(R+c)/z),h=0;for(let r=s;r<a;++r){let s=r*V-n;for(let n=i;n<u;++n){let a=n*G-l;for(let o=d;o<f;++o){let l=o*z-c,i=b*e+k*r+T*n+w*o,u=j*(A-1-s)+C*(F-1-a)+N*(R-1-l)+S*t;for(let e=0;e<O;++e)h+=_[i+e]*I[u+e]}}}m[g*e+x*r+v*o+y*p+t]=h}}}return r.makeTensorInfo(h.shape,h.dtype,h.values)}let i={kernelName:a.Conv3DBackpropInputV2,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ahPMz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cos",()=>o),s.export(r,"cosConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Cos,e=>Math.cos(e)),l={kernelName:a.Cos,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5hnmI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cosh",()=>o),s.export(r,"coshConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Cosh,e=>Math.cosh(e)),l={kernelName:a.Cosh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dkul6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cropAndResize",()=>o),s.export(r,"cropAndResizeConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r,attrs:n}=e,{image:s,boxes:o,boxInd:l}=t,{cropSize:i,method:u,extrapolationValue:p}=n,[c,d,f,h]=s.shape,m=o.shape[0],[g,x]=i,v=(0,a.buffer)([m,g,x,h],"float32"),y=r.data.get(o.dataId).values,_=r.data.get(l.dataId).values,b=r.data.get(s.dataId).values,k=a.util.computeStrides(s.shape),T=a.util.computeStrides(v.shape);for(let e=0;e<m;e++){let t=4*e,r=y[t],n=y[t+1],s=y[t+2],a=y[t+3],o=_[e];if(o>=c)continue;let l=g>1?(s-r)*(d-1)/(g-1):0,i=x>1?(a-n)*(f-1)/(x-1):0;for(let t=0;t<g;t++){let c=g>1?r*(d-1)+t*l:.5*(r+s)*(d-1);if(c<0||c>d-1){for(let r=0;r<x;r++)for(let n=0;n<h;n++){let s=n+r*T[2]+t*T[1]+e*T[0];v.values[s]=p}continue}if("bilinear"===u){let r=Math.floor(c),s=Math.ceil(c),l=c-r;for(let u=0;u<x;u++){let c=x>1?n*(f-1)+u*i:.5*(n+a)*(f-1);if(c<0||c>f-1){for(let r=0;r<h;r++){let n=r+u*T[2]+t*T[1]+e*T[0];v.values[n]=p}continue}let d=Math.floor(c),m=Math.ceil(c),g=c-d;for(let n=0;n<h;n++){let a=n+d*k[2]+r*k[1]+o*k[0],i=b[a],p=b[a=n+m*k[2]+r*k[1]+o*k[0]],c=b[a=n+d*k[2]+s*k[1]+o*k[0]],f=b[a=n+m*k[2]+s*k[1]+o*k[0]],h=i+(p-i)*g,x=c+(f-c)*g;a=n+u*T[2]+t*T[1]+e*T[0],v.values[a]=h+(x-h)*l}}}else for(let r=0;r<x;++r){let s=x>1?n*(f-1)+r*i:.5*(n+a)*(f-1);if(s<0||s>f-1){for(let n=0;n<h;n++){let s=n+r*T[2]+t*T[1]+e*T[0];v.values[s]=p}continue}let l=Math.round(s),u=Math.round(c);for(let n=0;n<h;n++){let s=n+l*k[2]+u*k[1]+o*k[0],a=n+r*T[2]+t*T[1]+e*T[0];v.values[a]=b[s]}}}}return r.makeTensorInfo(v.shape,v.dtype,v.values)}let l={kernelName:a.CropAndResize,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3YSZl":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumprod",()=>i),s.export(r,"cumprodConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i,exclusive:u,reverse:p}=n;(0,o.assertNotComplex)(s,"cumprod");let c=a.backend_util.getAxesPermutation([i],s.shape.length),d=s;null!=c&&(d=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:c}}));let f=a.backend_util.getInnerMostAxes(1,s.shape.length)[0];if(f!==d.shape.length-1)throw Error(`backend.cumprod in CPU expects an inner-most axis=${d.shape.length-1} but got axis=${f}`);let h=(0,a.upcastType)(d.dtype,"int32"),m=a.util.makeOnesTypedArray(a.util.sizeFromShape(d.shape),h),g=r.data.get(d.dataId).values,x=d.shape[d.shape.length-1],v=p?(e,t)=>e+x-t-1:(e,t)=>e+t;for(let e=0;e<g.length;e+=x)for(let t=0;t<x;t++){let r=v(e,t);if(0===t)m[r]=u?1:g[r];else{let n=v(e,t-1);m[r]=u?g[n]*m[n]:g[r]*m[n]}}let y=r.makeTensorInfo(d.shape,h,m);if(null!=c){let e=a.backend_util.getUndoAxesPermutation(c),t=(0,l.transpose)({inputs:{x:y},backend:r,attrs:{perm:e}});return r.disposeIntermediateTensorInfo(y),r.disposeIntermediateTensorInfo(d),t}return y}let u={kernelName:a.Cumprod,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Transpose":"jCE2o","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1LyF5":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumsum",()=>i),s.export(r,"cumsumConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i,exclusive:u,reverse:p}=n;(0,o.assertNotComplex)(s,"cumsum");let c=a.backend_util.getAxesPermutation([i],s.shape.length),d=s;null!=c&&(d=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:c}}));let f=a.backend_util.getInnerMostAxes(1,s.shape.length)[0];if(f!==d.shape.length-1)throw Error(`backend.cumsum in CPU expects an inner-most axis=${d.shape.length-1} but got axis=${f}`);let h=(0,a.upcastType)(d.dtype,"int32"),m=a.util.makeZerosTypedArray(a.util.sizeFromShape(d.shape),h),g=r.data.get(d.dataId).values,x=d.shape[d.shape.length-1],v=p?(e,t)=>e+x-t-1:(e,t)=>e+t;for(let e=0;e<g.length;e+=x)for(let t=0;t<x;t++){let r=v(e,t);if(0===t)m[r]=u?0:g[r];else{let n=v(e,t-1);m[r]=u?g[n]+m[n]:g[r]+m[n]}}let y=r.makeTensorInfo(d.shape,h,m);if(null!=c){let e=a.backend_util.getUndoAxesPermutation(c),t=(0,l.transpose)({inputs:{x:y},backend:r,attrs:{perm:e}});return r.disposeIntermediateTensorInfo(y),r.disposeIntermediateTensorInfo(d),t}return y}let u={kernelName:a.Cumsum,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Transpose":"jCE2o","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gvWX5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"denseBincount",()=>l),s.export(r,"denseBincountConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Bincount_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,weights:a}=t,{size:l,binaryOutput:i}=n;if(1===s.shape.length){let e=r.data.get(s.dataId).values,t=r.data.get(a.dataId).values,n=(0,o.bincountImpl)(e,t,a.dtype,a.shape,l);return r.makeTensorInfo([l],a.dtype,n)}if(2===s.shape.length){let e=r.bufferSync(s),t=r.bufferSync(a),n=(0,o.bincountReduceImpl)(e,t,l,i);return r.makeTensorInfo(n.shape,a.dtype,n.values)}throw Error(`Error in denseBincount: input must be at most rank 2, but got rank${s.shape.length}.`)}let i={kernelName:a.DenseBincount,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./Bincount_impl":"epZZc","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ceHv2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthToSpace",()=>o),s.export(r,"depthToSpaceConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockSize:o,dataFormat:l}=n;a.util.assert("NHWC"===l,()=>`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${l}`);let i=s.shape[0],u=s.shape[1],p=s.shape[2],c=s.shape[3],d=u*o,f=p*o,h=c/(o*o),m=r.data.get(s.dataId).values,g=new Float32Array(i*d*f*h),x=0;for(let e=0;e<i;++e)for(let t=0;t<d;++t){let r=Math.floor(t/o),n=t%o;for(let t=0;t<f;++t){let s=Math.floor(t/o),a=t%o,l=(n*o+a)*h;for(let t=0;t<h;++t){let n=t+l+c*(s+p*(r+u*e));g[x++]=m[n]}}}return r.makeTensorInfo([i,d,f,h],s.dtype,g)}let l={kernelName:a.DepthToSpace,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lRWoT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNative",()=>l),s.export(r,"depthwiseConv2dNativeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:l}=t,{strides:i,pad:u,dilations:p,dimRoundingMode:c}=n;(0,o.assertNotComplex)([s,l],"depthwiseConv2DNative");let d=a.util.computeStrides(s.shape),f=a.util.computeStrides(l.shape),h=p;null==h&&(h=[1,1]),a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(i,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${h}'`);let m=a.backend_util.computeConv2DInfo(s.shape,l.shape,i,h,u,c,!0),{filterHeight:g,filterWidth:x,dilationHeight:v,dilationWidth:y,padInfo:_}=m,b=_.left,k=_.top,T=m.outChannels/m.inChannels,w=new(0,a.TensorBuffer)(m.outShape,s.dtype),I=r.data.get(s.dataId).values,j=r.data.get(l.dataId).values,C=w.values;for(let e=0;e<m.batchSize;++e){let t=e*d[0],r=e*w.strides[0];for(let e=0;e<m.outHeight;++e){let n=r+e*w.strides[1],s=e*m.strideHeight-k;for(let e=0;e<g;++e){let r=s+e*v;if(r<0||r>=m.inHeight)continue;let a=e*f[0],o=t+r*d[1];for(let e=0;e<m.outWidth;++e){let t=n+e*w.strides[2],r=e*m.strideWidth-b;for(let e=0;e<x;++e){let n=r+e*y;if(n<0||n>=m.inWidth)continue;let s=a+e*f[1],l=o+n*m.inChannels,i=t,u=s;for(let e=0;e<m.inChannels;++e){let t=I[l+e];for(let e=0;e<T;++e)C[i+e]+=t*j[u+e];i+=T,u+=T}}}}}}return r.makeTensorInfo(w.shape,w.dtype,w.values)}let i={kernelName:a.DepthwiseConv2dNative,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"62lOC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropFilter",()=>l),s.export(r,"depthwiseConv2dNativeBackpropFilterConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,dilations:u,pad:p,dimRoundingMode:c,filterShape:d}=n;(0,o.assertNotComplex)([s,l],"depthwiseConv2dNativeBackpropFilter");let f=a.backend_util.computeConv2DInfo(s.shape,d,i,u,p,c,!0),{strideHeight:h,strideWidth:m,filterHeight:g,filterWidth:x}=f,v=new(0,a.TensorBuffer)(f.filterShape,"float32"),y=f.padInfo.left,_=f.padInfo.top,b=f.outChannels/f.inChannels,k=r.data.get(s.dataId).values,T=new(0,a.TensorBuffer)(s.shape,s.dtype,k),w=r.data.get(l.dataId).values,I=new(0,a.TensorBuffer)(l.shape,l.dtype,w);for(let e=0;e<g;++e){let t=Math.max(0,Math.ceil((_-e)/h)),r=Math.min(f.outHeight,(f.inHeight+_-e)/h);for(let n=0;n<x;++n){let s=Math.max(0,Math.ceil((y-n)/m)),a=Math.min(f.outWidth,(f.inWidth+y-n)/m);for(let o=0;o<f.outChannels;++o){let l=Math.trunc(o/b),i=o%b,u=0;for(let i=0;i<f.batchSize;++i)for(let p=t;p<r;++p){let t=e+p*h-_;for(let e=s;e<a;++e){let r=n+e*m-y;u+=T.get(i,t,r,l)*I.get(i,p,e,o)}}v.set(u,e,n,l,i)}}}return r.makeTensorInfo(v.shape,v.dtype,v.values)}let i={kernelName:a.DepthwiseConv2dNativeBackpropFilter,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1blck":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropInput",()=>l),s.export(r,"depthwiseConv2dNativeBackpropInputConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{strides:i,dilations:u,pad:p,dimRoundingMode:c,inputShape:d}=n;(0,o.assertNotComplex)([s,l],"depthwiseConv2DNativeBackpropInput");let f=a.util.computeStrides(s.shape),h=a.util.computeStrides(l.shape),m=a.backend_util.computeConv2DInfo(d,l.shape,i,u,p,c,!0),g=new(0,a.TensorBuffer)(m.inShape,"float32"),x=g.values,[v,y,_]=g.strides,b=r.data.get(s.dataId).values,[k,T,w]=f,I=r.data.get(l.dataId).values,[j,C,N]=h,{batchSize:S,filterHeight:E,filterWidth:A,inChannels:F,inHeight:R,inWidth:D,outChannels:P,outHeight:$,outWidth:M,strideHeight:O,strideWidth:B}=m,q=E-1-m.padInfo.top,L=A-1-m.padInfo.left,V=P/F;for(let e=0;e<S;++e)for(let t=0;t<F;++t)for(let r=0;r<R;++r){let n=r-q,s=Math.max(0,Math.ceil(n/O)),a=Math.min($,(E+n)/O);for(let o=0;o<D;++o){let l=o-L,i=Math.max(0,Math.ceil(l/B)),u=Math.min(M,(A+l)/B),p=0;for(let r=s;r<a;++r){let s=r*O-n;for(let n=i;n<u;++n){let a=n*B-l,o=k*e+T*r+w*n,i=j*(E-1-s)+C*(A-1-a)+N*t;for(let e=0;e<V;++e)p+=b[o+(t*V+e)]*I[i+e]}}x[v*e+y*r+_*o+t]=p}}return r.makeTensorInfo(g.shape,g.dtype,g.values)}let i={kernelName:a.DepthwiseConv2dNativeBackpropInput,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ljdrP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"diag",()=>o),s.export(r,"diagConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r}=e,{x:n}=t,s=a.util.sizeFromShape(n.shape),o=r.data.get(n.dataId).values,l=(0,a.buffer)([s,s],n.dtype),i=l.values;for(let e=0;e<o.length;e++)i[e*s+e]=o[e];let u=[...n.shape,...n.shape];return r.makeTensorInfo(u,l.dtype,l.values)}let l={kernelName:a.Diag,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eUxNp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2DConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.Dilation2D,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:r})=>{let{x:n,filter:s}=e,{strides:o,pad:l,dilations:i}=r,u=t.data.get(n.dataId).values,p=n.shape.length,c=t.data.get(s.dataId).values,d=s.shape.length,{batchSize:f,inHeight:h,inWidth:m,inChannels:g,outHeight:x,outWidth:v,padInfo:y,strideHeight:_,strideWidth:b,filterHeight:k,filterWidth:T,dilationHeight:w,dilationWidth:I,outShape:j}=a.backend_util.computeDilation2DInfo(n.shape,s.shape,o,l,"NHWC",i),C=a.util.sizeFromShape(j),N=j.length,S=a.util.getArrayFromDType(n.dtype,C);for(let e=0;e<f;++e)for(let t=0;t<x;++t){let r=t*_-y.top;for(let o=0;o<v;++o){let l=o*b-y.left;for(let i=0;i<g;++i){let f=Number.MIN_SAFE_INTEGER;for(let t=0;t<k;++t){let o=r+t*w;if(o>=0&&o<h)for(let r=0;r<T;++r){let h=l+r*I;if(h>=0&&h<m){let l=a.util.locToIndex([e,o,h,i],p,a.util.computeStrides(n.shape)),m=a.util.locToIndex([t,r,i],d,a.util.computeStrides(s.shape)),g=u[l]+c[m];g>f&&(f=g)}}}S[a.util.locToIndex([e,t,o,i],N,a.util.computeStrides(j))]=f}}}return{dataId:t.write(a.util.toTypedArray(S,n.dtype),j,n.dtype),shape:j,dtype:n.dtype}}}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3ah9g":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2DBackpropFilterConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.Dilation2DBackpropFilter,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:r})=>{let{x:n,filter:s,dy:o}=e,{strides:l,pad:i,dilations:u}=r,p=a.util.toNestedArray(n.shape,t.data.get(n.dataId).values),c=a.util.toNestedArray(s.shape,t.data.get(s.dataId).values),{batchSize:d,inHeight:f,inWidth:h,inChannels:m,outHeight:g,outWidth:x,padInfo:v,strideHeight:y,strideWidth:_,filterHeight:b,filterWidth:k,dilationHeight:T,dilationWidth:w,outShape:I}=a.backend_util.computeDilation2DInfo(n.shape,s.shape,l,i,"NHWC",u);a.util.assert(o.rank===I.length,()=>`Error in ${a.Dilation2DBackpropFilter}, dy must have the same rank as output ${I.length}, but got ${o.rank}`);let j=a.util.toNestedArray(I,t.data.get(o.dataId).values),C=a.util.makeZerosNestedTypedArray(s.shape,s.dtype);for(let e=0;e<d;++e)for(let t=0;t<g;++t){let r=t*y-v.top;for(let n=0;n<x;++n){let s=n*_-v.left;for(let a=0;a<m;++a){let o=Number.MIN_SAFE_INTEGER,l=0,i=0;for(let t=0;t<b;++t){let n=r+t*T;if(n>=0&&n<f)for(let r=0;r<k;++r){let u=s+r*w;if(u>=0&&u<h){let s=p[e][n][u][a]+c[t][r][a];s>o&&(o=s,l=t,i=r)}}}C[l][i][a]+=j[e][t][n][a]}}}return{dataId:t.write(a.util.toTypedArray(C,n.dtype),s.shape,s.dtype),shape:s.shape,dtype:s.dtype}}}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kVIf0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2DBackpropInputConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.Dilation2DBackpropInput,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:r})=>{let{x:n,filter:s,dy:o}=e,{strides:l,pad:i,dilations:u}=r,p=a.util.toNestedArray(n.shape,t.data.get(n.dataId).values),c=a.util.toNestedArray(s.shape,t.data.get(s.dataId).values),{batchSize:d,inHeight:f,inWidth:h,inChannels:m,outHeight:g,outWidth:x,padInfo:v,strideHeight:y,strideWidth:_,filterHeight:b,filterWidth:k,dilationHeight:T,dilationWidth:w,outShape:I}=a.backend_util.computeDilation2DInfo(n.shape,s.shape,l,i,"NHWC",u);a.util.assert(o.rank===I.length,()=>`Error in ${a.Dilation2DBackpropInput}, dy must have the same rank as output ${I.length}, but got ${o.rank}`);let j=a.util.toNestedArray(I,t.data.get(o.dataId).values),C=a.util.makeZerosNestedTypedArray(n.shape,n.dtype);for(let e=0;e<d;++e)for(let t=0;t<g;++t){let r=t*y-v.top;for(let n=0;n<x;++n){let s=n*_-v.left;for(let a=0;a<m;++a){let o=Number.MIN_SAFE_INTEGER,l=r<0?0:r,i=s<0?0:s;for(let t=0;t<b;++t){let n=r+t*T;if(n>=0&&n<f)for(let r=0;r<k;++r){let u=s+r*w;if(u>=0&&u<h){let s=p[e][n][u][a]+c[t][r][a];s>o&&(o=s,l=n,i=u)}}}C[e][l][i][a]+=j[e][t][n][a]}}}return{dataId:t.write(a.util.toTypedArray(C,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5NTKI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r,attrs:n}=e,{image:s}=t,{canvas:a,options:o}=n,{contextOptions:l,imageOptions:i}=o||{},u=(null==i?void 0:i.alpha)||1,p=(null==l?void 0:l.contextType)||"2d";if("2d"!==p)throw Error(`Context type ${l.contextType} is not supported by the CPU backend.`);let c=a.getContext(p,(null==l?void 0:l.contextAttributes)||{});if(null==c)throw Error(`Could not get the context with ${p} type.`);let[d,f]=s.shape.slice(0,2),h=2===s.shape.length?1:s.shape[2],m=r.data.get(s.dataId).values,g="float32"===s.dtype?255:1,x=new Uint8ClampedArray(f*d*4);for(let e=0;e<d*f;++e){let t=[0,0,0,255*u];for(let r=0;r<h;r++){let n=m[e*h+r];if("float32"===s.dtype){if(n<0||n>1)throw Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${n}.`)}else if("int32"===s.dtype&&(n<0||n>255))throw Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${n}.`);1===h?(t[0]=n*g,t[1]=n*g,t[2]=n*g):t[r]=n*g}let r=4*e;x[r+0]=Math.round(t[0]),x[r+1]=Math.round(t[1]),x[r+2]=Math.round(t[2]),x[r+3]=Math.round(t[3])}a.width=f,a.height=d;let v=new ImageData(x,f,d);return c.putImageData(v,0,0),s}s.defineInteropFlag(r),s.export(r,"draw",()=>a),s.export(r,"drawConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Draw,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],blDpR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"einsum",()=>p),s.export(r,"einsumConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./Multiply"),l=e("./Reshape"),i=e("./Sum"),u=e("./Transpose");function p(e){let{inputs:t,backend:r,attrs:n}=e,{equation:s}=n,{allDims:p,summedDims:c,idDims:d}=a.backend_util.decodeEinsumEquation(s,t.length);a.backend_util.checkEinsumDimSizes(p.length,d,t);let{path:f,steps:h}=a.backend_util.getEinsumComputePath(c,d),m=h.length,g=null,x=p.length,v=[];for(let e=0;e<m;++e){for(let n of h[e]){let e,{permutationIndices:s,expandDims:i}=a.backend_util.getEinsumPermutation(x,d[n]);a.backend_util.isIdentityPermutation(s)?e=t[n]:(e=(0,u.transpose)({inputs:{x:t[n]},backend:r,attrs:{perm:s}}),v.push(e));let p=e.shape.slice();for(let e=0;e<i.length;++e)p.splice(i[e],0,1);a.util.arraysEqual(e.shape,p)||(e=(0,l.reshape)({inputs:{x:e},backend:r,attrs:{shape:p}}),v.push(e)),null===g?g=e:(g=(0,o.multiply)({inputs:{a:e,b:g},backend:r}),v.push(g))}e<m-1&&(f[e]>=0&&(g=(0,i.sum)({inputs:{x:g},backend:r,attrs:{axis:f[e]-(p.length-x),keepDims:!1}}),v.push(g)),x--)}for(let e of v)e!==g&&r.disposeIntermediateTensorInfo(e);return g}let c={kernelName:a.Einsum,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","./Multiply":"7NGDi","./Reshape":"eIo6C","./Sum":"2o1Uw","./Transpose":"jCE2o","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2o1Uw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sum",()=>d),s.export(r,"sumConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/zeros_impl"),i=e("./Cast"),u=e("./Identity"),p=e("./Reshape"),c=e("./Transpose");function d(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:d}=r,{axis:f,keepDims:h}=s;(0,o.assertNotComplex)(d,"sum");let m=(t="bool"===d.dtype?(0,i.cast)({inputs:{x:d},backend:n,attrs:{dtype:"int32"}}):(0,u.identity)({inputs:{x:d},backend:n})).shape.length,g=a.util.parseAxisParam(f,t.shape),x=a.backend_util.getAxesPermutation(g,m),v=g,y=t;null!=x&&(y=(0,c.transpose)({inputs:{x:t},backend:n,attrs:{perm:x}}),v=a.backend_util.getInnerMostAxes(v.length,m)),a.backend_util.assertAxesAreInnerMostDims("sum",v,y.shape.length);let[_,b]=a.backend_util.computeOutAndReduceShapes(y.shape,v),k=a.backend_util.upcastType(y.dtype,"int32"),T=(0,l.zeros)(n,_,k),w=a.util.sizeFromShape(b),I=n.data.get(T.dataId).values,j=n.data.get(y.dataId).values;for(let e=0;e<I.length;++e){let t=e*w,r=0;for(let e=0;e<w;++e)r+=j[t+e];I[e]=r}if(h){let e=a.backend_util.expandShapeToKeepDim(T.shape,g),t=T;T=(0,p.reshape)({inputs:{x:T},backend:n,attrs:{shape:e}}),n.disposeIntermediateTensorInfo(t)}return n.disposeIntermediateTensorInfo(t),null!=x&&n.disposeIntermediateTensorInfo(y),T}let f={kernelName:a.Sum,backendName:"cpu",kernelFunc:d}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","../utils/zeros_impl":"cvcrj","./Cast":"6EKy0","./Identity":"lz9gJ","./Reshape":"eIo6C","./Transpose":"jCE2o","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5pq5h":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"eluGrad",()=>l),s.export(r,"eluGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r}=e,{dy:n,y:s}=t;(0,o.assertNotComplex)([n,s],"eluGrad");let l=new Float32Array(a.util.sizeFromShape(s.shape)),i=r.data.get(s.dataId).values,u=r.data.get(n.dataId).values;for(let e=0;e<i.length;++e){let t=i[e];t>=0?l[e]=u[e]:l[e]=u[e]*(t+1)}return r.makeTensorInfo(s.shape,"float32",l)}let i={kernelName:a.EluGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],i3HT8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"erf",()=>f),s.export(r,"erfConfig",()=>h);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_utils");let l=a.backend_util.ERF_P,i=a.backend_util.ERF_A1,u=a.backend_util.ERF_A2,p=a.backend_util.ERF_A3,c=a.backend_util.ERF_A4,d=a.backend_util.ERF_A5,f=(0,o.unaryKernelFunc)(a.Erf,e=>{let t=Math.sign(e),r=Math.abs(e),n=1/(1+l*r);return t*(1-((((d*n+c)*n+p)*n+u)*n+i)*n*Math.exp(-r*r))}),h={kernelName:a.Erf,backendName:"cpu",kernelFunc:f}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],YQiG0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expandDims",()=>l),s.export(r,"expandDimsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape");function l(e){let{inputs:t,backend:r,attrs:n}=e,{input:s}=t,{dim:l}=n,i=s.shape.length,u=s.shape.slice(),p=l;return l<0&&(a.util.assert(-(i+1)<=l,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),p=i+l+1),u.splice(p,0,1),(0,o.reshape)({inputs:{x:s},backend:r,attrs:{shape:u}})}let i={kernelName:a.ExpandDims,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./Reshape":"eIo6C","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jnh5f:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fft",()=>i),s.export(r,"fftConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fft_utils"),l=e("./Reshape");function i(e){let{inputs:t,backend:r}=e,{input:n}=t,s=a.util.sizeFromShape(n.shape),i=n.shape[n.shape.length-1],u=(0,l.reshape)({inputs:{x:n},backend:r,attrs:{shape:[s/i,i]}}),p=(0,o.fftBatch)(u,!1,r),c=(0,l.reshape)({inputs:{x:p},backend:r,attrs:{shape:n.shape}});return r.disposeIntermediateTensorInfo(u),r.disposeIntermediateTensorInfo(p),c}let u={kernelName:a.FFT,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../utils/fft_utils":"jXZiA","./Reshape":"eIo6C","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jXZiA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fftBatch",()=>g),s.export(r,"fftImpl",()=>x);var a=e("@tensorflow/tfjs-core"),o=e("../kernels/Add"),l=e("../kernels/Complex"),i=e("../kernels/Concat"),u=e("../kernels/Identity"),p=e("../kernels/Imag"),c=e("../kernels/Multiply"),d=e("../kernels/Real"),f=e("../kernels/RealDiv"),h=e("../kernels/Slice"),m=e("../kernels/Sub");function g(e,t,r){let n=e.shape,s=n[0],o=n[1],i=r.data.get(e.dataId),u=i.complexTensorInfos.real,p=i.complexTensorInfos.imag,c=[s,o],d=a.util.sizeFromShape(c),f=a.util.getTypedArrayFromDType("float32",d),m=a.util.getTypedArrayFromDType("float32",d);for(let e=0;e<s;e++){let n=(0,h.slice)({inputs:{x:u},backend:r,attrs:{begin:[e,0],size:[1,o]}}),s=(0,h.slice)({inputs:{x:p},backend:r,attrs:{begin:[e,0],size:[1,o]}}),i=(0,l.complex)({inputs:{real:n,imag:s},backend:r}),{real:c,imag:d}=x(i,t,r),g=a.backend_util.mergeRealAndImagArrays(c,d);for(let t=0;t<o;t++){let r=a.backend_util.getComplexWithIndex(g,t);f[e*o+t]=r.real,m[e*o+t]=r.imag}r.disposeIntermediateTensorInfo(n),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(i)}let g=r.makeTensorInfo(c,"float32",f),v=r.makeTensorInfo(c,"float32",m),y=(0,l.complex)({inputs:{real:g,imag:v},backend:r});return r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(v),y}function x(e,t,r){var n;let s=a.util.sizeFromShape(e.shape),h=r.data.get(e.dataId),g=r.data.get(h.complexTensorInfos.real.dataId).values,x=r.data.get(h.complexTensorInfos.imag.dataId).values;if(((n=s)&n-1)==0){let n=function e(t,r,n,s,u){if(1===n)return{real:t,imag:r};let f=a.backend_util.mergeRealAndImagArrays(t,r),h=n/2,g=a.backend_util.complexWithEvenIndex(f),x=g.real,v=g.imag,y=[x.length],_=u.makeTensorInfo(y,"float32",x),b=u.makeTensorInfo(y,"float32",v),k=(0,l.complex)({inputs:{real:_,imag:b},backend:u}),T=a.backend_util.complexWithOddIndex(f),w=T.real,I=T.imag,j=[w.length],C=u.makeTensorInfo(j,"float32",w),N=u.makeTensorInfo(j,"float32",I),S=(0,l.complex)({inputs:{real:C,imag:N},backend:u}),E=e(x,v,h,s,u),A=E.real,F=E.imag,R=[A.length],D=u.makeTensorInfo(R,"float32",A),P=u.makeTensorInfo(R,"float32",F),$=(0,l.complex)({inputs:{real:D,imag:P},backend:u}),M=e(w,I,h,s,u),O=M.real,B=M.imag,q=[O.length],L=u.makeTensorInfo(q,"float32",O),V=u.makeTensorInfo(q,"float32",B),G=(0,l.complex)({inputs:{real:L,imag:V},backend:u}),z=a.backend_util.exponents(n,s),U=[z.real.length],X=u.makeTensorInfo(U,"float32",z.real),W=u.makeTensorInfo(U,"float32",z.imag),H=(0,l.complex)({inputs:{real:X,imag:W},backend:u}),K=(0,c.multiply)({inputs:{a:H,b:G},backend:u}),J=(0,o.add)({inputs:{a:$,b:K},backend:u}),Y=(0,m.sub)({inputs:{a:$,b:K},backend:u}),Z=(0,d.real)({inputs:{input:J},backend:u}),Q=(0,d.real)({inputs:{input:Y},backend:u}),ee=(0,p.imag)({inputs:{input:J},backend:u}),et=(0,p.imag)({inputs:{input:Y},backend:u}),er=(0,i.concat)({inputs:[Z,Q],backend:u,attrs:{axis:0}}),en=(0,i.concat)({inputs:[ee,et],backend:u,attrs:{axis:0}}),es=u.data.get(er.dataId).values,ea=u.data.get(en.dataId).values;return u.disposeIntermediateTensorInfo(_),u.disposeIntermediateTensorInfo(b),u.disposeIntermediateTensorInfo(k),u.disposeIntermediateTensorInfo(C),u.disposeIntermediateTensorInfo(N),u.disposeIntermediateTensorInfo(S),u.disposeIntermediateTensorInfo(D),u.disposeIntermediateTensorInfo(P),u.disposeIntermediateTensorInfo($),u.disposeIntermediateTensorInfo(L),u.disposeIntermediateTensorInfo(V),u.disposeIntermediateTensorInfo(G),u.disposeIntermediateTensorInfo(X),u.disposeIntermediateTensorInfo(W),u.disposeIntermediateTensorInfo(H),u.disposeIntermediateTensorInfo(K),u.disposeIntermediateTensorInfo(J),u.disposeIntermediateTensorInfo(Y),u.disposeIntermediateTensorInfo(Z),u.disposeIntermediateTensorInfo(ee),u.disposeIntermediateTensorInfo(Q),u.disposeIntermediateTensorInfo(et),u.disposeIntermediateTensorInfo(er),u.disposeIntermediateTensorInfo(en),{real:es,imag:ea}}(g,x,s,t,r),h=[e.shape[0],e.shape[1]];if(t){let e=r.makeTensorInfo(h,"float32",n.real),t=r.makeTensorInfo(h,"float32",n.imag),o=r.makeTensorInfo([],"float32",a.util.createScalarValue(s,"float32")),l=(0,u.identity)({inputs:{x:o},backend:r}),i=f.realDivConfig.kernelFunc({inputs:{a:e,b:o},backend:r}),p=f.realDivConfig.kernelFunc({inputs:{a:t,b:l},backend:r}),c=r.data.get(i.dataId).values,d=r.data.get(p.dataId).values;return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(o),r.disposeIntermediateTensorInfo(l),r.disposeIntermediateTensorInfo(i),r.disposeIntermediateTensorInfo(p),{real:c,imag:d}}return n}{let e=function(e,t,r){let n=new Float32Array(2*t);for(let s=0;s<t;s++){let o=0,l=0;for(let n=0;n<t;n++){let i=a.backend_util.exponent(s*n,t,r),u=a.backend_util.getComplexWithIndex(e,n);o+=u.real*i.real-u.imag*i.imag,l+=u.real*i.imag+u.imag*i.real}r&&(o/=t,l/=t),a.backend_util.assignToTypedArray(n,o,l,s)}return n}(a.backend_util.mergeRealAndImagArrays(g,x),s,t);return a.backend_util.splitRealAndImagArrays(e)}}},{"@tensorflow/tfjs-core":"hADTC","../kernels/Add":"cQSIz","../kernels/Complex":"di9tc","../kernels/Concat":"dexZe","../kernels/Identity":"lz9gJ","../kernels/Imag":"1YWkw","../kernels/Multiply":"7NGDi","../kernels/Real":"2dRsO","../kernels/RealDiv":"NXJyr","../kernels/Slice":"6zAVh","../kernels/Sub":"lwW2V","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],NXJyr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"realDivImpl",()=>i),s.export(r,"div",()=>u),s.export(r,"realDivConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e/t),u=(0,l.binaryKernelFunc)(a.RealDiv,i),p={kernelName:a.RealDiv,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gLwZV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fill",()=>o),s.export(r,"fillConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){var t,r;let{backend:n,attrs:s}=e,{shape:o,value:l,dtype:i}=s,u=i||a.util.inferDtype(l),p=a.util.getArrayFromDType(u,a.util.sizeFromShape(o));return t=p,r=l,t.fill(r),n.makeTensorInfo(o,u,p)}let l={kernelName:a.Fill,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3crkN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"flipLeftRightConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.FlipLeftRight,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{image:n}=e,s=a.util.getTypedArrayFromDType(n.dtype,a.util.sizeFromShape(n.shape)),[o,l,i,u]=n.shape,p=r.data.get(n.dataId).values;for(let e=0;e<o;e++){let t=e*i*l*u;for(let e=0;e<l;e++){let r=i*u*e;for(let e=0;e<i;e++){let n=e*u;for(let a=0;a<u;a++){let o=Math.round(i-e-1),l=t+r+n+a,c=p[l];o>=0&&o<i&&(c=p[t+r+o*u+a]),s[l]=c}}}}return{dataId:r.write(s,n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jmgT6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fusedConv2D",()=>p),s.export(r,"fusedConv2DConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fused_utils"),l=e("./Add"),i=e("./Conv2D"),u=e("./Reshape");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:a,bias:p,preluActivationWeights:c}=t,{strides:d,pad:f,dataFormat:h,dilations:m,dimRoundingMode:g,activation:x,leakyreluAlpha:v}=n,y=(0,i.conv2D)({inputs:{x:s,filter:a},backend:r,attrs:{strides:d,pad:f,dataFormat:h,dilations:m,dimRoundingMode:g}});if(p){let e=y;if("NCHW"===h&&1===p.shape.length&&1!==p.shape[0]){let e=(0,u.reshape)({inputs:{x:p},backend:r,attrs:{shape:[p.shape[0],1,1]}});y=(0,l.add)({inputs:{a:y,b:e},backend:r}),r.disposeIntermediateTensorInfo(e)}else y=(0,l.add)({inputs:{a:y,b:p},backend:r});r.disposeIntermediateTensorInfo(e)}if(x){let e=y;if("NCHW"===h&&"prelu"===x&&1===c.shape.length&&1!==c.shape[0]){let e=(0,u.reshape)({inputs:{x:c},backend:r,attrs:{shape:[c.shape[0],1,1]}});y=(0,o.applyActivation)(r,y,x,e,v),r.disposeIntermediateTensorInfo(e)}else y=(0,o.applyActivation)(r,y,x,c,v);r.disposeIntermediateTensorInfo(e)}return y}let c={kernelName:a.FusedConv2D,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../utils/fused_utils":"l6Gjg","./Add":"cQSIz","./Conv2D":"aC0xh","./Reshape":"eIo6C","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],cWEPO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fusedDepthwiseConv2D",()=>u),s.export(r,"fusedDepthwiseConv2DConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fused_utils"),l=e("./Add"),i=e("./DepthwiseConv2dNative");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:a,bias:u,preluActivationWeights:p}=t,{strides:c,pad:d,dataFormat:f,dilations:h,dimRoundingMode:m,activation:g,leakyreluAlpha:x}=n,v=(0,i.depthwiseConv2dNative)({inputs:{x:s,filter:a},backend:r,attrs:{strides:c,pad:d,dataFormat:f,dilations:h,dimRoundingMode:m}});if(u){let e=v;v=(0,l.add)({inputs:{a:v,b:u},backend:r}),r.disposeIntermediateTensorInfo(e)}if(g){let e=v;v=(0,o.applyActivation)(r,v,g,p,x),r.disposeIntermediateTensorInfo(e)}return v}let p={kernelName:a.FusedDepthwiseConv2D,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/fused_utils":"l6Gjg","./Add":"cQSIz","./DepthwiseConv2dNative":"lRWoT","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gDqkt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherNd",()=>l),s.export(r,"gatherNdConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./GatherNd_Impl");function l(e){let{inputs:t,backend:r}=e,{params:n,indices:s}=t,l=a.util.sizeFromShape(n.shape),i=s.shape,u=i[i.length-1],[p,c,d,f]=a.backend_util.prepareAndValidate(n,s);if(0===c)return r.makeTensorInfo(p,n.dtype,[]);let h=r.data.get(s.dataId).values,m=r.bufferSync(n),g=(0,o.gatherNdImpl)(h,m,n.dtype,c,u,d,f,n.shape,l);return r.makeTensorInfo(p,n.dtype,g.values)}let i={kernelName:a.GatherNd,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./GatherNd_Impl":"lNnuV","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],qS03f:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherV2",()=>u),s.export(r,"gatherV2Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./GatherV2_impl"),i=e("./Reshape");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,indices:u}=t,{axis:p,batchDims:c}=n;(0,o.assertNotComplex)([s,u],"gatherV2");let d=a.util.parseAxisParam(p,s.shape)[0],f=r.data.get(u.dataId).values,h=s.shape[d];for(let e=0;e<f.length;++e){let t=f[e];a.util.assert(t<=h-1&&t>=0,()=>`GatherV2: the index value ${t} is not in [0, ${h-1}]`)}let m=c;null==c&&(m=0);let g=a.util.sizeFromShape(u.shape),x=a.backend_util.segment_util.collectGatherOpShapeInfo(s,u,d,m),v=(0,i.reshape)({inputs:{x:s},backend:r,attrs:{shape:[x.batchSize,x.outerSize,x.dimSize,x.sliceSize]}}),y=(0,i.reshape)({inputs:{x:u},backend:r,attrs:{shape:[x.batchSize,g/x.batchSize]}}),_=[x.batchSize,x.outerSize,g/x.batchSize,x.sliceSize],b=r.bufferSync(y),k=r.bufferSync(v),T=(0,l.gatherV2Impl)(k,b,_);return r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(y),r.makeTensorInfo(x.outputShape,T.dtype,T.values)}let p={kernelName:a.GatherV2,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./GatherV2_impl":"bdusj","./Reshape":"eIo6C","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5rlbe":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ifft",()=>i),s.export(r,"ifftConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fft_utils"),l=e("./Reshape");function i(e){let{inputs:t,backend:r}=e,{input:n}=t,s=a.util.sizeFromShape(n.shape),i=n.shape[n.shape.length-1],u=(0,l.reshape)({inputs:{x:n},backend:r,attrs:{shape:[s/i,i]}}),p=(0,o.fftBatch)(u,!0,r),c=(0,l.reshape)({inputs:{x:p},backend:r,attrs:{shape:n.shape}});return r.disposeIntermediateTensorInfo(u),r.disposeIntermediateTensorInfo(p),c}let u={kernelName:a.IFFT,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../utils/fft_utils":"jXZiA","./Reshape":"eIo6C","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3kl64":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isFinite",()=>o),s.export(r,"isFiniteConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.IsFinite,e=>+!!Number.isFinite(e),"bool"),l={kernelName:a.IsFinite,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1xLXC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isInf",()=>o),s.export(r,"isInfConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.IsInf,e=>+(Math.abs(e)===1/0),"bool"),l={kernelName:a.IsInf,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5p8Qz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isNaN",()=>o),s.export(r,"isNaNConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.IsNan,e=>+!!Number.isNaN(e),"bool"),l={kernelName:a.IsNan,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3r1AE":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"linSpace",()=>l),s.export(r,"linSpaceConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./LinSpace_impl");function l(e){let{backend:t,attrs:r}=e,{start:n,stop:s,num:a}=r,l=(0,o.linSpaceImpl)(n,s,a);return t.makeTensorInfo([l.length],"float32",l)}let i={kernelName:a.LinSpace,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./LinSpace_impl":"7NuXo","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fwrvQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log1p",()=>o),s.export(r,"log1pConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Log1p,e=>Math.log1p(e)),l={kernelName:a.Log1p,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kol4r:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalAndImpl",()=>i),s.export(r,"logicalAnd",()=>u),s.export(r,"logicalAndConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e&&t),u=(0,l.binaryKernelFunc)(a.LogicalAnd,i,null,"bool"),p={kernelName:a.LogicalAnd,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gcKA4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalNot",()=>o),s.export(r,"logicalNotConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.LogicalNot,e=>+!e,"bool"),l={kernelName:a.LogicalNot,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bgaRE:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalOrImpl",()=>i),s.export(r,"logicalOr",()=>u),s.export(r,"logicalOrConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e||t),u=(0,l.binaryKernelFunc)(a.LogicalOr,i,null,"bool"),p={kernelName:a.LogicalOr,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2sRzy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lRN",()=>l),s.export(r,"LRNConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{depthRadius:l,bias:i,alpha:u,beta:p}=n;(0,o.assertNotComplex)(s,"LRN");let c=s.shape[3],d=c-1,f=r.data.get(s.dataId).values,h=a.util.sizeFromShape(s.shape),m=new Float32Array(h);for(let e=0;e<h;e++){let t=function(e){let t=e%c,r=e-t+Math.max(0,t-l),n=e-t+Math.min(t+l,d),s=0;for(;r<=n;r++){let e=f[r];s+=e*e}return s}(e),r=f[e]*Math.pow(i+u*t,-p);m[e]=r}return r.makeTensorInfo(s.shape,s.dtype,m)}let i={kernelName:a.LRN,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hFjiL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lRNGrad",()=>l),s.export(r,"LRNGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,y:l,dy:i}=t,{depthRadius:u,bias:p,alpha:c,beta:d}=n;(0,o.assertNotComplex)(i,"LRNGrad");let f=a.util.sizeFromShape(i.shape),h=i.shape[3],m=r.data.get(i.dataId).values,g=r.data.get(s.dataId).values,x=r.data.get(l.dataId).values,v=new Float32Array(f);for(let e=0;e<f;e++){let t=e%h,r=e-t+Math.max(0,t-u),n=e-t+Math.min(h,t+u+1),s=0;for(let e=r;e<n;e++)s+=Math.pow(g[e],2);s=c*s+p;for(let t=r;t<n;t++){let r=-2*c*d*g[t]*x[e]/s;e===t&&(r+=Math.pow(s,-d)),r*=m[e],v[t]+=r}}return r.makeTensorInfo(i.shape,s.dtype,v)}let i={kernelName:a.LRNGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dzwTK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"max",()=>u),s.export(r,"maxConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Max_impl"),i=e("./Transpose_impl");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{reductionIndices:u,keepDims:p}=n,c=s.shape,d=c.length,f=a.util.parseAxisParam(u,c),h=f,m=a.backend_util.getAxesPermutation(h,d),g=r.data.get(s.dataId).values;if(null!=m){let e=Array(d);for(let t=0;t<e.length;t++)e[t]=c[m[t]];g=(0,i.transposeImpl)(g,c,s.dtype,m,e),h=a.backend_util.getInnerMostAxes(h.length,d),c=e}(0,o.assertNotComplex)(s,"max"),a.backend_util.assertAxesAreInnerMostDims("max",h,d);let[x,v]=a.backend_util.computeOutAndReduceShapes(c,h),y=a.util.sizeFromShape(v),_=(0,l.maxImpl)(g,y,x,s.dtype),b=r.write(_,x,s.dtype),k=x;return p&&(k=a.backend_util.expandShapeToKeepDim(x,f)),{dataId:b,shape:k,dtype:s.dtype}}let p={kernelName:a.Max,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Max_impl":"40ZTk","./Transpose_impl":"dnOuT","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kMXNT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool",()=>u),s.export(r,"maxPoolConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils"),i=e("./Identity");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r;(0,o.assertNotComplex)(u,"maxPool");let{filterSize:p,strides:c,pad:d,dimRoundingMode:f}=s;a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(c,1),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${c} and dilations '1'`);let h=a.backend_util.computePool2DInfo(u.shape,p,c,1,d,f);if(1===h.filterWidth&&1===h.filterHeight&&a.util.arraysEqual(h.inShape,h.outShape))t=(0,i.identity)({inputs:{x:u},backend:n});else{let e=n.data.get(u.dataId).values,r=a.util.computeStrides(u.shape),s=(0,l.pool)(e,u.shape,u.dtype,r,h,"max");t=n.makeTensorInfo(h.outShape,u.dtype,s.values)}return t}let p={kernelName:a.MaxPool,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","../utils/pool_utils":"83Xvz","./Identity":"lz9gJ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],d1dZ0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3D",()=>i),s.export(r,"maxPool3DConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{filterSize:i,strides:u,pad:p,dimRoundingMode:c,dataFormat:d}=n;(0,o.assertNotComplex)(s,"maxPool3d");let f=a.backend_util.computePool3DInfo(s.shape,i,u,1,p,c,d),h=r.data.get(s.dataId).values,m=(0,l.pool3d)(h,s.shape,s.dtype,a.util.computeStrides(s.shape),f,"max");return r.makeTensorInfo(m.shape,"float32",m.values)}let u={kernelName:a.MaxPool3D,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","../utils/pool_utils":"83Xvz","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hjBDV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3DGrad",()=>i),s.export(r,"maxPool3DGradConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:i}=t,{filterSize:u,strides:p,pad:c,dimRoundingMode:d}=n;(0,o.assertNotComplex)([s,i],"maxPool3DGrad");let f=a.backend_util.computePool3DInfo(i.shape,u,p,1,c,d),h=r.bufferSync(i),m=(0,l.maxPool3dPositions)(h,f),g=f.strideDepth,x=f.strideHeight,v=f.strideWidth,y=f.dilationDepth,_=f.dilationHeight,b=f.dilationWidth,k=f.effectiveFilterDepth,T=f.effectiveFilterHeight,w=f.effectiveFilterWidth,I=k-1-f.padInfo.front,j=w-1-f.padInfo.left,C=T-1-f.padInfo.top,N=(0,a.buffer)(i.shape,"float32"),S=r.bufferSync(s);for(let e=0;e<f.batchSize;++e)for(let t=0;t<f.inChannels;++t)for(let r=0;r<f.inDepth;++r)for(let n=0;n<f.inHeight;++n)for(let s=0;s<f.inWidth;++s){let a=r-I,o=n-C,l=s-j,i=0;for(let r=0;r<k;r+=y){let n=(a+r)/g;if(!(n<0)&&!(n>=f.outDepth)&&Math.floor(n)===n)for(let s=0;s<T;s+=_){let a=(o+s)/x;if(!(a<0)&&!(a>=f.outHeight)&&Math.floor(a)===a)for(let o=0;o<w;o+=b){let u=(l+o)/v;if(u<0||u>=f.outWidth||Math.floor(u)!==u)continue;let p=+(k*T*w-1-m.get(e,n,a,u,t)===r*T*w+s*w+o);0!==p&&(i+=S.get(e,n,a,u,t)*p)}}}N.set(i,e,r,n,s,t)}return r.makeTensorInfo(N.shape,N.dtype,N.values)}let u={kernelName:a.MaxPool3DGrad,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","../utils/pool_utils":"83Xvz","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hXQ5i:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolGrad",()=>i),s.export(r,"maxPoolGradConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:i,output:u}=t;(0,o.assertNotComplex)([i,u],"maxPoolGrad");let{filterSize:p,strides:c,pad:d,dimRoundingMode:f}=n,h=a.backend_util.computePool2DInfo(i.shape,p,c,1,d,f),m=r.data.get(i.dataId).values,g=(0,a.buffer)(h.outShape,i.dtype,(0,l.maxPoolPositions)(m,i.shape,i.dtype,h).values),x=h.strideHeight,v=h.strideWidth,y=h.dilationHeight,_=h.dilationWidth,b=h.effectiveFilterHeight,k=h.effectiveFilterWidth,T=k-1-h.padInfo.left,w=b-1-h.padInfo.top,I=(0,a.buffer)(i.shape,"float32"),j=r.data.get(s.dataId).values,C=(0,a.buffer)(s.shape,"float32",j);for(let e=0;e<h.batchSize;++e)for(let t=0;t<h.inChannels;++t)for(let r=0;r<h.inHeight;++r)for(let n=0;n<h.inWidth;++n){let s=r-w,a=n-T,o=0;for(let r=0;r<b;r+=y){let n=(s+r)/x;if(!(n<0)&&!(n>=h.outHeight)&&Math.floor(n)===n)for(let s=0;s<k;s+=_){let l=(a+s)/v;if(l<0||l>=h.outWidth||Math.floor(l)!==l)continue;let i=+(b*k-1-g.get(e,n,l,t)===r*k+s);0!==i&&(o+=C.get(e,n,l,t)*i)}}I.set(o,e,r,n,t)}return r.makeTensorInfo(I.shape,I.dtype,I.values)}let u={kernelName:a.MaxPoolGrad,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","../utils/pool_utils":"83Xvz","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ciK98:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmaxConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./MaxPoolWithArgmax_impl");let i={kernelName:a.MaxPoolWithArgmax,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{x:n}=e,{filterSize:s,strides:i,pad:u,includeBatchInIndex:p}=t;(0,o.assertNotComplex)(n,"MaxPoolWithArgmax");let c=r.data.get(n.dataId).values,d=a.backend_util.computePool2DInfo(n.shape,s,i,[1,1],u),[f,h]=(0,l.maxPoolWithArgmaxImpl)(c,n.shape,n.dtype,p,d),m=r.write(f,d.outShape,n.dtype),g=r.write(h,d.outShape,n.dtype);return[{dataId:m,shape:d.outShape,dtype:n.dtype},{dataId:g,shape:d.outShape,dtype:"int32"}]}}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./MaxPoolWithArgmax_impl":"4W90Z","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4W90Z":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmaxImpl",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("../utils/pool_utils");function l(e,t,r,n,s){let l=a.util.computeStrides(t),i=(0,o.pool)(e,t,r,l,s,"max"),u=(0,o.maxPoolPositions)(e,t,r,s,!0,n);return[i.values,u.values]}},{"@tensorflow/tfjs-core":"hADTC","../utils/pool_utils":"83Xvz","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1EiRF":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mean",()=>u),s.export(r,"meanConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("./Cast"),l=e("./RealDiv"),i=e("./Sum");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:u,keepDims:p}=n,c=a.util.parseAxisParam(u,s.shape),d=a.backend_util.computeOutAndReduceShapes(s.shape,c)[1],f=a.util.sizeFromShape(d),h=[],m=r.makeTensorInfo([],"float32",new Float32Array([f]));h.push(m);let g=(0,o.cast)({inputs:{x:s},backend:r,attrs:{dtype:"float32"}});h.push(g);let x=(0,l.div)({inputs:{a:g,b:m},backend:r});h.push(x);let v=(0,i.sum)({inputs:{x:x},backend:r,attrs:{axis:u,keepDims:p}});return h.forEach(e=>r.disposeIntermediateTensorInfo(e)),v}let p={kernelName:a.Mean,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","./Cast":"6EKy0","./RealDiv":"NXJyr","./Sum":"2o1Uw","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],fBfk7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"min",()=>u),s.export(r,"minConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Transpose");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:u,keepDims:p}=n;(0,o.assertNotComplex)(s,"min");let c=a.util.parseAxisParam(u,s.shape),d=c,f=a.backend_util.getAxesPermutation(d,s.shape.length),h=s;null!=f&&(h=(0,i.transpose)({inputs:{x:s},backend:r,attrs:{perm:f}}),d=a.backend_util.getInnerMostAxes(d.length,s.shape.length)),a.backend_util.assertAxesAreInnerMostDims("min",d,h.shape.length);let[m,g]=a.backend_util.computeOutAndReduceShapes(h.shape,d),x=a.util.sizeFromShape(g),v=a.util.makeZerosTypedArray(a.util.sizeFromShape(m),h.dtype),y=r.data.get(h.dataId).values;for(let e=0;e<v.length;++e){let t=e*x,r=y[t];for(let e=0;e<x;++e){let n=y[t+e];(Number.isNaN(n)||n<r)&&(r=n)}v[e]=r}null!=f&&r.disposeIntermediateTensorInfo(h);let _=r.makeTensorInfo(m,h.dtype,v);if(p){let e=a.backend_util.expandShapeToKeepDim(m,c),t=(0,l.reshape)({inputs:{x:_},backend:r,attrs:{shape:e}});return r.disposeIntermediateTensorInfo(_),t}return _}let p={kernelName:a.Min,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Reshape":"eIo6C","./Transpose":"jCE2o","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"799ir":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mirrorPad",()=>l),s.export(r,"mirrorPadConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{paddings:l,mode:i}=n;(0,o.assertNotComplex)(s,"mirrorPad");let u=l.map((e,t)=>e[0]+s.shape[t]+e[1]),p=l.map(e=>e[0]),c=l.map((e,t)=>e[0]+s.shape[t]),d=+("reflect"!==i),f=r.data.get(s.dataId).values,h=s.shape.length,m=a.util.computeStrides(s.shape),g=a.util.sizeFromShape(u),x=u.length,v=a.util.computeStrides(u),y=a.util.getTypedArrayFromDType(s.dtype,g);for(let e=0;e<g;e++){let t=a.util.indexToLoc(e,x,v);for(let e=0;e<x;e++)t[e]<p[e]?t[e]=2*p[e]-t[e]-d:t[e]>=c[e]&&(t[e]=(c[e]-1)*2-t[e]+d);t=t.map((e,t)=>e-p[t]);let r=a.util.locToIndex(t,h,m);y[e]=f[r]}return{dataId:r.write(y,u,s.dtype),shape:u,dtype:s.dtype}}let i={kernelName:a.MirrorPad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3aUwW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"modImpl",()=>i),s.export(r,"mod",()=>u),s.export(r,"modConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>{let r=e%t;return e<0&&t<0||e>=0&&t>=0?r:(r+t)%t}),u=(0,l.binaryKernelFunc)(a.Mod,i),p={kernelName:a.Mod,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gNpUi:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multinomial",()=>u),s.export(r,"multinomialConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("seedrandom"),l=e("../cpu_util"),i=e("./Softmax");function u(e){let{inputs:t,backend:r,attrs:n}=e,{logits:s}=t,{numSamples:u,seed:p,normalized:c}=n;(0,l.assertNotComplex)(s,"multinomial");let d=c?s:(0,i.softmax)({inputs:{logits:s},backend:r,attrs:{dim:-1}}),f=d.shape[0],h=d.shape[1],m=r.data.get(d.dataId).values,g=[f,u],x=a.util.makeZerosTypedArray(a.util.sizeFromShape(g),"int32");for(let e=0;e<f;++e){let t=e*h,r=new Float32Array(h-1);r[0]=m[t];for(let e=1;e<r.length;++e)r[e]=r[e-1]+m[t+e];let n=o.alea(p.toString()),s=e*u;for(let e=0;e<u;++e){let t=n();x[s+e]=r.length;for(let n=0;n<r.length;n++)if(t<r[n]){x[s+e]=n;break}}}return c||r.disposeIntermediateTensorInfo(d),r.makeTensorInfo(g,"int32",x)}let p={kernelName:a.Multinomial,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC",seedrandom:"jMr1M","../cpu_util":"2r9V1","./Softmax":"H1bvB","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],H1bvB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softmax",()=>d),s.export(r,"softmaxConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("./Exp"),l=e("./Max"),i=e("./RealDiv"),u=e("./Reshape"),p=e("./Sub"),c=e("./Sum");function d(e){let{inputs:t,backend:r,attrs:n}=e,{logits:s}=t,{dim:d}=n,f=s.shape.length,h=d;if(-1===h&&(h=f-1),h!==f-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${f} and dim was ${h}`);let m=a.util.parseAxisParam([h],s.shape),g=(0,l.max)({inputs:{x:s},backend:r,attrs:{reductionIndices:m,keepDims:!1}}),x=a.backend_util.expandShapeToKeepDim(g.shape,m),v=(0,u.reshape)({inputs:{x:g},backend:r,attrs:{shape:x}}),y=(0,p.sub)({inputs:{a:s,b:v},backend:r}),_=(0,o.exp)({inputs:{x:y},backend:r}),b=(0,c.sum)({inputs:{x:_},backend:r,attrs:{axis:m,keepDims:!1}}),k=(0,u.reshape)({inputs:{x:b},backend:r,attrs:{shape:x}}),T=(0,i.div)({inputs:{a:_,b:k},backend:r});return r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(y),r.disposeIntermediateTensorInfo(_),r.disposeIntermediateTensorInfo(b),r.disposeIntermediateTensorInfo(k),T}let f={kernelName:a.Softmax,backendName:"cpu",kernelFunc:d}},{"@tensorflow/tfjs-core":"hADTC","./Exp":"hPUQx","./Max":"dzwTK","./RealDiv":"NXJyr","./Reshape":"eIo6C","./Sub":"lwW2V","./Sum":"2o1Uw","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],R7rVY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV3",()=>i),s.export(r,"nonMaxSuppressionV3Config",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l=a.kernel_impls.nonMaxSuppressionV3Impl;function i(e){let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:a}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p}=n;(0,o.assertNotComplex)(s,"NonMaxSuppression");let{selectedIndices:c}=l(r.data.get(s.dataId).values,r.data.get(a.dataId).values,i,u,p);return r.makeTensorInfo([c.length],"int32",new Int32Array(c))}let u={kernelName:a.NonMaxSuppressionV3,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aIhbu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV4",()=>i),s.export(r,"nonMaxSuppressionV4Config",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l=a.kernel_impls.nonMaxSuppressionV4Impl;function i(e){let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:a}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p,padToMaxOutputSize:c}=n;(0,o.assertNotComplex)(s,"NonMaxSuppressionPadded");let{selectedIndices:d,validOutputs:f}=l(r.data.get(s.dataId).values,r.data.get(a.dataId).values,i,u,p,c);return[r.makeTensorInfo([d.length],"int32",new Int32Array(d)),r.makeTensorInfo([],"int32",new Int32Array([f]))]}let u={kernelName:a.NonMaxSuppressionV4,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eJQKu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV5",()=>i),s.export(r,"nonMaxSuppressionV5Config",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l=a.kernel_impls.nonMaxSuppressionV5Impl;function i(e){let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:a}=t,{maxOutputSize:i,iouThreshold:u,scoreThreshold:p,softNmsSigma:c}=n;(0,o.assertNotComplex)(s,"NonMaxSuppressionWithScore");let{selectedIndices:d,selectedScores:f}=l(r.data.get(s.dataId).values,r.data.get(a.dataId).values,i,u,p,c);return[r.makeTensorInfo([d.length],"int32",new Int32Array(d)),r.makeTensorInfo([f.length],"float32",new Float32Array(f))]}let u={kernelName:a.NonMaxSuppressionV5,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hdgvU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"oneHot",()=>l),s.export(r,"oneHotConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{indices:s}=t,{dtype:l,depth:i,onValue:u,offValue:p}=n;(0,o.assertNotComplex)(s,"oneHot");let c=a.util.sizeFromShape(s.shape),d=new Float32Array(c*i);d.fill(p);let f=r.data.get(s.dataId).values;for(let e=0;e<c;++e)f[e]>=0&&f[e]<i&&(d[e*i+f[e]]=u);return r.makeTensorInfo([...s.shape,i],l,d)}let i={kernelName:a.OneHot,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7VQel":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"onesLike",()=>c),s.export(r,"onesLikeConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Fill"),i=e("./Imag"),u=e("./Real"),p=e("./ZerosLike");function c(e){let{inputs:t,backend:r}=e,{x:n}=t;if("string"===n.dtype)throw Error("onesLike is not supported for string tensors");if("complex64"!==n.dtype)return(0,l.fill)({backend:r,attrs:{shape:n.shape,value:1,dtype:n.dtype}});{let e=(0,u.real)({inputs:{input:n},backend:r}),t=c({inputs:{x:e},backend:r}),s=(0,i.imag)({inputs:{input:n},backend:r}),a=(0,p.zerosLike)({inputs:{x:s},backend:r}),l=(0,o.complex)({inputs:{real:t,imag:a},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(a),l}}let d={kernelName:a.OnesLike,backendName:"cpu",kernelFunc:c}},{"@tensorflow/tfjs-core":"hADTC","./Complex":"di9tc","./Fill":"gLwZV","./Imag":"1YWkw","./Real":"2dRsO","./ZerosLike":"17IqM","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"17IqM":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zerosLike",()=>p),s.export(r,"zerosLikeConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Fill"),i=e("./Imag"),u=e("./Real");function p(e){let{inputs:t,backend:r}=e,{x:n}=t;if("string"===n.dtype)throw Error("zerosLike is not supported for string tensors");if("complex64"!==n.dtype)return(0,l.fill)({backend:r,attrs:{shape:n.shape,value:0,dtype:n.dtype}});{let e=(0,u.real)({inputs:{input:n},backend:r}),t=p({inputs:{x:e},backend:r}),s=(0,i.imag)({inputs:{input:n},backend:r}),a=p({inputs:{x:s},backend:r}),l=(0,o.complex)({inputs:{real:t,imag:a},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(a),l}}let c={kernelName:a.ZerosLike,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","./Complex":"di9tc","./Fill":"gLwZV","./Imag":"1YWkw","./Real":"2dRsO","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],hEwG7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pack",()=>i),s.export(r,"packConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./Concat"),l=e("./ExpandDims");function i(e){let{inputs:t,backend:r,attrs:n}=e,{axis:s}=n;if(1===t.length)return(0,l.expandDims)({inputs:{input:t[0]},backend:r,attrs:{dim:s}});let i=t[0].shape,u=t[0].dtype;t.forEach(e=>{a.util.assertShapesMatch(i,e.shape,"All tensors passed to stack must have matching shapes"),a.util.assert(u===e.dtype,()=>"All tensors passed to stack must have matching dtypes")});let p=[],c=t.map(e=>{let t=(0,l.expandDims)({inputs:{input:e},backend:r,attrs:{dim:s}});return p.push(t),t}),d=(0,o.concat)({inputs:c,backend:r,attrs:{axis:s}});return p.forEach(e=>r.disposeIntermediateTensorInfo(e)),d}let u={kernelName:a.Pack,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","./Concat":"dexZe","./ExpandDims":"YQiG0","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9Z490":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"padV2",()=>l),s.export(r,"padV2Config",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{paddings:l,constantValue:i}=n;(0,o.assertNotComplex)(s,"pad");let u=l.map((e,t)=>e[0]+s.shape[t]+e[1]),p=l.map(e=>e[0]),c=r.data.get(s.dataId).values,d=a.util.sizeFromShape(s.shape),f=s.shape.length,h=a.util.computeStrides(s.shape),m=a.util.sizeFromShape(u),g=u.length,x=a.util.computeStrides(u),v=a.util.getTypedArrayFromDType(s.dtype,m);0!==i&&v.fill(i);for(let e=0;e<d;e++){let t=a.util.indexToLoc(e,f,h).map((e,t)=>e+p[t]);v[a.util.locToIndex(t,g,x)]=c[e]}return{dataId:r.write(v,u,s.dtype),shape:u,dtype:s.dtype}}let i={kernelName:a.PadV2,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],qmrVH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"powImpl",()=>i),s.export(r,"pow",()=>u),s.export(r,"powConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.pow(e,t)),u=(0,l.binaryKernelFunc)(a.Pow,i),p={kernelName:a.Pow,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/binary_impl":"baeuU","../utils/binary_utils":"8IMG3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4fPuR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedGather",()=>l),s.export(r,"raggedGatherConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./RaggedGather_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{paramsNestedSplits:s,paramsDenseValues:a,indices:l}=t,{outputRaggedRank:i}=n,u=s.map(e=>r.data.get(e.dataId).values),p=s.map(e=>e.shape),c=r.data.get(a.dataId).values,d=r.data.get(l.dataId).values,[f,h,m]=(0,o.raggedGatherImpl)(u,p,c,a.shape,a.dtype,d,l.shape,i),g=f.map(e=>r.makeTensorInfo([e.length],"int32",e)),x=r.makeTensorInfo(m,a.dtype,h);return g.concat([x])}let i={kernelName:a.RaggedGather,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./RaggedGather_impl":"jXMcg","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],crR9B:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedRange",()=>l),s.export(r,"raggedRangeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./RaggedRange_impl");function l(e){let{inputs:t,backend:r}=e,{starts:n,limits:s,deltas:a}=t,l=r.data.get(n.dataId).values,i=r.data.get(s.dataId).values,u=r.data.get(a.dataId).values,[p,c]=(0,o.raggedRangeImpl)(l,n.shape,n.dtype,i,s.shape,u,a.shape);return[r.makeTensorInfo([p.length],"int32",p),r.makeTensorInfo([c.length],n.dtype,c)]}let i={kernelName:a.RaggedRange,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./RaggedRange_impl":"gugLL","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bZRl3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedTensorToTensor",()=>l),s.export(r,"raggedTensorToTensorConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./RaggedTensorToTensor_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{shape:s,values:a,defaultValue:l,rowPartitionTensors:i}=t,{rowPartitionTypes:u}=n,p=r.data.get(s.dataId).values,c=r.data.get(a.dataId).values,d=r.data.get(l.dataId).values,f=i.map(e=>r.data.get(e.dataId).values),h=i.map(e=>e.shape),[m,g]=(0,o.raggedTensorToTensorImpl)(p,s.shape,c,a.shape,a.dtype,d,l.shape,f,h,u);return r.makeTensorInfo(m,a.dtype,g)}let i={kernelName:a.RaggedTensorToTensor,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./RaggedTensorToTensor_impl":"4XZln","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jRkfN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"range",()=>l),s.export(r,"rangeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Range_impl");function l(e){let{backend:t,attrs:r}=e,{start:n,stop:s,dtype:a,step:l}=r,i=(0,o.rangeImpl)(n,s,l,a);return t.makeTensorInfo([i.length],a,i)}let i={kernelName:a.Range,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./Range_impl":"lJ7QP","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"958ZW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reciprocal",()=>o),s.export(r,"reciprocalConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Reciprocal,e=>1/e),l={kernelName:a.Reciprocal,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"6xOvz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinear",()=>l),s.export(r,"resizeBilinearConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s}=t,{alignCorners:l,halfPixelCenters:i,size:u}=n;(0,o.assertNotComplex)(s,"resizeBilinear");let p=a.util.computeStrides(s.shape),[c,d]=u,[f,h,m,g]=s.shape,x=r.data.get(s.dataId).values,v=new Float32Array(a.util.sizeFromShape([f,c,d,g])),y=[l&&c>1?h-1:h,l&&d>1?m-1:m],_=[l&&c>1?c-1:c,l&&d>1?d-1:d],b=0,k=y[0]/_[0],T=y[1]/_[1];for(let e=0;e<f;e++)for(let t=0;t<c;t++){let r,n=Math.max(0,Math.floor(r=i?k*(t+.5)-.5:k*t)),s=r-n,a=Math.min(h-1,Math.ceil(r)),o=e*p[0]+n*p[1],l=e*p[0]+a*p[1];for(let e=0;e<d;e++){let t,r=Math.max(0,Math.floor(t=i?T*(e+.5)-.5:T*e)),n=t-r,a=Math.min(m-1,Math.ceil(t)),u=o+r*p[2],c=l+r*p[2],d=o+a*p[2],f=l+a*p[2];for(let e=0;e<g;e++){let t=x[u+e],r=x[c+e],a=x[d+e],o=x[f+e],l=t+(a-t)*n,i=l+(r+(o-r)*n-l)*s;v[b++]=i}}}return r.makeTensorInfo([f,c,d,g],"float32",v)}let i={kernelName:a.ResizeBilinear,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dEg4d:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinearGrad",()=>l),s.export(r,"resizeBilinearGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s,dy:l}=t,{alignCorners:i}=n;(0,o.assertNotComplex)([l,s],"resizeBilinearGrad");let u=a.util.computeStrides(s.shape),[p,c,d,f]=s.shape,[,h,m]=l.shape,g=new Float32Array(p*c*d*f),x=[i&&h>1?c-1:c,i&&m>1?d-1:d],v=[i&&h>1?h-1:h,i&&m>1?m-1:m],y=x[0]/v[0],_=x[1]/v[1],b=r.data.get(l.dataId).values,k=0;for(let e=0;e<p;e++){let t=e*u[0];for(let e=0;e<h;e++){let r=e*y,n=Math.floor(r),s=Math.min(Math.ceil(r),c-1),a=t+n*u[1],o=t+s*u[1],l=r-n,i=1-l;for(let e=0;e<m;e++){let t=e*_,r=Math.floor(t),n=Math.min(Math.ceil(t),d-1),s=t-r,p=1-s,c=a+r*u[2],h=a+n*u[2],m=o+r*u[2],x=o+n*u[2],v=i*p,y=i*s,T=l*p,w=l*s;for(let e=0;e<f;e++){let t=b[k++];g[c+e]+=t*v,g[h+e]+=t*y,g[m+e]+=t*T,g[x+e]+=t*w}}}}return r.makeTensorInfo([p,d,c,f],"float32",g)}let i={kernelName:a.ResizeBilinearGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eBhqi:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeNearestNeighbor",()=>l),s.export(r,"resizeNearestNeighborConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s}=t,{alignCorners:l,halfPixelCenters:i,size:u}=n;(0,o.assertNotComplex)(s,"resizeNearestNeighbor");let p=a.util.computeStrides(s.shape),[c,d]=u,[f,h,m,g]=s.shape,x=r.data.get(s.dataId).values,v=new Float32Array(f*c*d*g),y=[l&&c>1?h-1:h,l&&d>1?m-1:m],_=[l&&c>1?c-1:c,l&&d>1?d-1:d],b=y[0]/_[0],k=y[1]/_[1],T=0;for(let e=0;e<f;e++){let t=e*p[0];for(let e=0;e<c;e++){let r=i?b*(e+.5):b*e,n=Math.min(h-1,l?Math.round(r):Math.floor(r));i&&(n=Math.max(0,n));let s=t+n*p[1];for(let e=0;e<d;e++){let t=i?k*(e+.5):k*e,r=Math.min(m-1,l?Math.round(t):Math.floor(t));i&&(r=Math.max(0,r));let n=s+r*p[2];for(let e=0;e<g;e++){let t=x[n+e];v[T++]=t}}}}return r.makeTensorInfo([f,c,d,g],s.dtype,v)}let i={kernelName:a.ResizeNearestNeighbor,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7oB9R":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeNearestNeighborGrad",()=>l),s.export(r,"resizeNearestNeighborGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s,dy:l}=t,{alignCorners:i}=n;(0,o.assertNotComplex)([l,s],"resizeNearestNeighborGrad");let u=a.util.computeStrides(s.shape),p=a.util.computeStrides(l.shape),[c,d,f,h]=s.shape,[,m,g]=l.shape,x=new Float32Array(c*d*f*h),v=r.data.get(l.dataId).values,y=[i&&m>1?d-1:d,i&&g>1?f-1:f],_=[i&&m>1?m-1:m,i&&g>1?g-1:g],b=y[0]/_[0],k=y[1]/_[1],T=1/b,w=1/k,I=2*Math.ceil(T)+2,j=2*Math.ceil(w)+2;for(let e=0;e<c;e++){let t=e*u[0];for(let e=0;e<d;e++){let r=t+e*u[1],n=Math.floor(Math.floor(e*T)-I/2);for(let s=0;s<f;s++){let a=r+s*u[2],o=Math.floor(Math.floor(s*w)-j/2);for(let r=0;r<h;r++){let l=0;for(let a=0;a<I;a++){let u=a+n;if(u<0||u>=m)continue;let c=t+u*p[1],h=u*b;if(e===Math.min(d-1,i?Math.round(h):Math.floor(h)))for(let e=0;e<j;e++){let t=e+o;if(t<0||t>=g)continue;let n=c+t*p[2],a=t*k;s===Math.min(f-1,i?Math.round(a):Math.floor(a))&&(l+=v[n+r])}}x[a+r]=l}}}}return r.makeTensorInfo(s.shape,s.dtype,x)}let i={kernelName:a.ResizeNearestNeighborGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1htKV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse",()=>i),s.export(r,"reverseConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Identity");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{dims:i}=n;(0,o.assertNotComplex)(s,"reverse");let u=s.shape.length,p=a.util.parseAxisParam(i,s.shape);if(0===u)return(0,l.identity)({inputs:{x:s},backend:r});let c=new(0,a.TensorBuffer)(s.shape,s.dtype),d=r.bufferSync(s);for(let e=0;e<c.size;e++){let t=c.indexToLoc(e),r=t.slice();p.forEach(e=>r[e]=s.shape[e]-1-r[e]),c.set(d.get(...r),...t)}return r.makeTensorInfo(c.shape,c.dtype,c.values)}let u={kernelName:a.Reverse,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Identity":"lz9gJ","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lnxXS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rotateWithOffsetConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.RotateWithOffset,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{image:n}=e,{radians:s,fillValue:o,center:l}=t,i=a.util.getTypedArrayFromDType(n.dtype,a.util.sizeFromShape(n.shape)),[u,p,c,d]=n.shape,[f,h]=a.backend_util.getImageCenter(l,p,c),m=Math.sin(s),g=Math.cos(s),x=r.data.get(n.dataId).values;for(let e=0;e<u;e++){let t=e*c*p*d;for(let e=0;e<p;e++){let r=c*d*e;for(let n=0;n<c;n++){let s=n*d;for(let a=0;a<d;a++){let l=[u,e,n,a],v=l[2],y=l[1],_=(v-f)*g-(y-h)*m,b=(v-f)*m+(y-h)*g;_=Math.round(_+f),b=Math.round(b+h);let k=o;"number"!=typeof o&&(k=3===a?255:o[a]),_>=0&&_<c&&b>=0&&b<p&&(k=x[t+c*d*b+_*d+a]),i[t+r+s+a]=k}}}}return{dataId:r.write(i,n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],lsMjQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"round",()=>o),s.export(r,"roundConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Round,e=>{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1}),l={kernelName:a.Round,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],b1Yfi:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scatterNd",()=>l),s.export(r,"scatterNdConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Scatter_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{indices:s,updates:l}=t,{shape:i}=n,{sliceRank:u,numUpdates:p,sliceSize:c,strides:d,outputSize:f}=a.backend_util.calculateShapes(l,s,i),h=r.bufferSync(s),m=r.bufferSync(l),g=(0,o.scatterImpl)(h,m,i,f,c,p,u,d,0,!0);return r.makeTensorInfo(i,g.dtype,g.values)}let i={kernelName:a.ScatterNd,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./Scatter_impl":"7vWDN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1POT8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"searchSorted",()=>l),s.export(r,"searchSortedConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SearchSorted_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{sortedSequence:s,values:a}=t,{side:l}=n,i=r.data.get(s.dataId).values,u=r.data.get(a.dataId).values,p=(0,o.searchSortedImpl)(i,u,s.shape[0],s.shape[1],a.shape[1],l);return r.makeTensorInfo(a.shape,"int32",p)}let i={kernelName:a.SearchSorted,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./SearchSorted_impl":"iLM4W","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],iLM4W:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"searchSortedImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o){let l=a.util.getArrayFromDType("int32",r*s);for(let a=0;a<r;++a){let r=e.slice(a*n,(a+1)*n),i=a*s;for(let e=0;e<s;++e)l[i+e]="left"===o?function(e,t){let r=0,n=e.length,s=0;for(;r<n;)e[s=Math.floor((r+n)/2)]<t?r=s+1:n=s;return n}(r,t[e+i]):function(e,t){let r=0,n=e.length,s=0;for(;r<n;)e[s=Math.floor((r+n)/2)]<=t?r=s+1:n=s;return n}(r,t[e+i])}return l}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"9R6op":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"select",()=>l),s.export(r,"selectConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r}=e,{condition:n,t:s,e:l}=t;(0,o.assertNotComplex)([n,s,l],"select");let i=n.shape.length,u=r.data.get(n.dataId).values,p=r.data.get(s.dataId).values,c=r.data.get(l.dataId).values,d=(0,a.upcastType)(s.dtype,l.dtype),f=a.util.makeZerosTypedArray(a.util.sizeFromShape(s.shape),d),h=0,m=0===i||i>1||1===s.shape.length?1:a.util.sizeFromShape(s.shape.slice(1));for(let e=0;e<u.length;e++)for(let t=0;t<m;t++)1===u[e]?f[h++]=p[e]:f[h++]=c[e];return r.makeTensorInfo(s.shape,d,f)}let i={kernelName:a.Select,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"3nqxN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"selu",()=>u),s.export(r,"seluConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_utils");let l=a.backend_util.SELU_SCALEALPHA,i=a.backend_util.SELU_SCALE,u=(0,o.unaryKernelFunc)(a.Selu,e=>e>=0?i*e:l*(Math.exp(e)-1)),p={kernelName:a.Selu,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],eTlOQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sign",()=>o),s.export(r,"signConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Sign,e=>e<0?-1:+(e>0)),l={kernelName:a.Sign,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"5g8fH":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sin",()=>o),s.export(r,"sinConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Sin,e=>Math.sin(e)),l={kernelName:a.Sin,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],gGAnN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sinh",()=>o),s.export(r,"sinhConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Sinh,e=>Math.sinh(e)),l={kernelName:a.Sinh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],klSvI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softplus",()=>i),s.export(r,"softplusConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_utils");let l=Math.log(11920928955078125e-23)+2,i=(0,o.unaryKernelFunc)(a.Softplus,e=>{let t=Math.exp(e);return e<l?t:e>-l?e:Math.log(1+t)}),u={kernelName:a.Softplus,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8aAJV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"spaceToBatchND",()=>p),s.export(r,"spaceToBatchNDConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./PadV2"),i=e("./Reshape"),u=e("./Transpose");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockShape:p,paddings:c}=n;(0,o.assertNotComplex)([s],"spaceToBatchND");let d=a.util.sizeFromShape(p),f=[[0,0]];f.push(...c);for(let e=1+p.length;e<s.shape.length;++e)f.push([0,0]);let h=l.padV2Config.kernelFunc({inputs:{x:s},backend:r,attrs:{paddings:f,constantValue:0}}),m=a.backend_util.getReshaped(h.shape,p,d,!1),g=a.backend_util.getPermuted(m.length,p.length,!1),x=a.backend_util.getReshapedPermuted(h.shape,p,d,!1),v=(0,i.reshape)({inputs:{x:h},backend:r,attrs:{shape:m}}),y=(0,u.transpose)({inputs:{x:v},backend:r,attrs:{perm:g}}),_=(0,i.reshape)({inputs:{x:y},backend:r,attrs:{shape:x}});return r.disposeIntermediateTensorInfo(h),r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(y),_}let c={kernelName:a.SpaceToBatchND,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./PadV2":"9Z490","./Reshape":"eIo6C","./Transpose":"jCE2o","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],kQn4a:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseFillEmptyRows",()=>l),s.export(r,"sparseFillEmptyRowsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SparseFillEmptyRows_impl");function l(e){let{inputs:t,backend:r}=e,{indices:n,values:s,denseShape:a,defaultValue:l}=t;if(1!==a.shape.length)throw Error(`Dense shape must be a vector, saw: ${a.shape}`);if(2!==n.shape.length)throw Error(`Indices must be a matrix, saw: ${n.shape}`);if(1!==s.shape.length)throw Error(`Values must be a vector, saw: ${s.shape}`);if(0!==l.shape.length)throw Error(`Default value must be a scalar, saw: ${l.shape}`);let i=r.data.get(n.dataId).values,u=r.data.get(s.dataId).values,p=r.data.get(a.dataId).values,c=r.data.get(l.dataId).values[0],[d,f,h,m,g]=(0,o.sparseFillEmptyRowsImpl)(i,n.shape,n.dtype,u,s.dtype,p,c);return[r.makeTensorInfo(f,n.dtype,d),r.makeTensorInfo([f[0]],s.dtype,h),r.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(e=>Number(e)))),r.makeTensorInfo([g.length],n.dtype,new Int32Array(g))]}let i={kernelName:a.SparseFillEmptyRows,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./SparseFillEmptyRows_impl":"dD1sk","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dckEc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseReshape",()=>l),s.export(r,"sparseReshapeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SparseReshape_impl");function l(e){let{inputs:t,backend:r}=e,{inputIndices:n,inputShape:s,newShape:a}=t;if(2!==n.shape.length)throw Error(`Input indices should be a matrix but received shape ${n.shape}`);if(1!==s.shape.length)throw Error(`Input shape should be a vector but received shape ${s.shape}`);if(1!==a.shape.length)throw Error(`Target shape should be a vector but received shape ${a.shape}`);let l=Array.from(r.data.get(s.dataId).values),i=r.data.get(n.dataId).values,u=Array.from(r.data.get(a.dataId).values),[p,c,d]=(0,o.sparseReshapeImpl)(i,n.shape,n.dtype,l,u);return[r.makeTensorInfo(c,n.dtype,p),r.makeTensorInfo([d.length],a.dtype,new Int32Array(d))]}let i={kernelName:a.SparseReshape,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./SparseReshape_impl":"dVRjD","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],au78P:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentMean",()=>l),s.export(r,"sparseSegmentMeanConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SparseSegmentReduction_impl");function l(e){let{inputs:t,backend:r}=e,{data:n,indices:s,segmentIds:a}=t;if(n.shape.length<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.shape.length)throw Error(`Indices should be a vector but received shape ${s.shape}`);if(1!==a.shape.length)throw Error(`Segment ids should be a vector but received shape ${a.shape}`);if(s.shape[0]!==a.shape[0])throw Error("segmentIds and indices should have same size.");let l=r.data.get(n.dataId).values,i=r.data.get(s.dataId).values,u=r.data.get(a.dataId).values,[p,c]=(0,o.sparseSegmentReductionImpl)(l,n.shape,n.dtype,i,u,!0);return r.makeTensorInfo(c,n.dtype,p)}let i={kernelName:a.SparseSegmentMean,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./SparseSegmentReduction_impl":"2pDT7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],dwoxZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentSum",()=>l),s.export(r,"sparseSegmentSumConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SparseSegmentReduction_impl");function l(e){let{inputs:t,backend:r}=e,{data:n,indices:s,segmentIds:a}=t;if(n.shape.length<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.shape.length)throw Error(`Indices should be a vector but received shape ${s.shape}`);if(1!==a.shape.length)throw Error(`Segment ids should be a vector but received shape ${a.shape}`);if(s.shape[0]!==a.shape[0])throw Error("segmentIds and indices should have same size.");let l=r.data.get(n.dataId).values,i=r.data.get(s.dataId).values,u=r.data.get(a.dataId).values,[p,c]=(0,o.sparseSegmentReductionImpl)(l,n.shape,n.dtype,i,u);return r.makeTensorInfo(c,n.dtype,p)}let i={kernelName:a.SparseSegmentSum,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./SparseSegmentReduction_impl":"2pDT7","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],loRNl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseToDense",()=>l),s.export(r,"sparseToDenseConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Scatter_impl");function l(e){let t,{inputs:r,backend:n,attrs:s}=e,{sparseIndices:l,sparseValues:i,defaultValue:u}=r,{outputShape:p}=s,{sliceRank:c,numUpdates:d,sliceSize:f,strides:h,outputSize:m}=a.backend_util.calculateShapes(i,l,p),g=n.bufferSync(l);switch(i.dtype){case"bool":{let e=n.bufferSync(i),r=!!n.data.get(u.dataId).values[0];t=(0,o.scatterImpl)(g,e,p,m,f,d,c,h,r,!1);break}case"float32":{let e=n.bufferSync(i),r=n.data.get(u.dataId).values[0];t=(0,o.scatterImpl)(g,e,p,m,f,d,c,h,r,!1);break}case"int32":{let e=n.bufferSync(i),r=n.data.get(u.dataId).values[0];t=(0,o.scatterImpl)(g,e,p,m,f,d,c,h,r,!1);break}case"string":{let e=n.bufferSync(i),r=a.util.decodeString(n.data.get(u.dataId).values[0]);t=(0,o.scatterImpl)(g,e,p,m,f,d,c,h,r,!1);break}default:throw Error(`Unsupported type ${i.dtype}`)}return n.makeTensorInfo(p,t.dtype,t.values)}let i={kernelName:a.SparseToDense,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./Scatter_impl":"7vWDN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"7gid4":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"splitV",()=>l),s.export(r,"splitVConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Slice");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{numOrSizeSplits:l,axis:i}=n,u=a.util.parseAxisParam(i,s.shape)[0],p=a.backend_util.prepareSplitSize(s,l,u),c=Array(s.shape.length).fill(0),d=s.shape.slice();return p.map(e=>{let t=[...d];t[u]=e;let n=(0,o.slice)({inputs:{x:s},backend:r,attrs:{begin:c,size:t}});return c[u]+=e,n})}let i={kernelName:a.SplitV,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./Slice":"6zAVh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],ELl6R:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squareConfig",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l={kernelName:a.Square,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:r}=e;(0,o.assertNotComplex)(r,"square");let n=t.data.get(r.dataId).values,s=new Float32Array(n.length);for(let e=0;e<n.length;++e){let t=n[e];s[e]=t*t}return{dataId:t.write(s,r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],aKEGV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"step",()=>o),s.export(r,"stepConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Step,(e,t)=>isNaN(e)?NaN:e>0?1:t.alpha),l={kernelName:a.Step,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2g4do":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stridedSlice",()=>p),s.export(r,"stridedSliceConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Slice"),u=e("./StridedSlice_impl");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p}=r,{begin:c,end:d,strides:f,beginMask:h,endMask:m,ellipsisMask:g,newAxisMask:x,shrinkAxisMask:v}=s;(0,o.assertNotComplex)(p,"stridedSlice");let{finalShapeSparse:y,finalShape:_,isIdentity:b,sliceDim0:k,isSimpleSlice:T,begin:w,end:I,strides:j}=a.slice_util.sliceInfo(p.shape,c,d,f,h,m,g,x,v);if(b)t=(0,l.reshape)({inputs:{x:p},backend:n,attrs:{shape:_}});else if(k||T){a.util.assert(p.shape.length>=1,()=>`Input must have rank at least 1, got: ${p.shape.length}`);let e=a.slice_util.computeOutShape(w,I,j),r=(0,i.slice)({inputs:{x:p},backend:n,attrs:{begin:w,size:e}});t=(0,l.reshape)({inputs:{x:r},backend:n,attrs:{shape:_}}),n.disposeIntermediateTensorInfo(r)}else{let e=n.bufferSync(p),r=(0,u.stridedSliceImpl)(y,e,j,w);t=n.makeTensorInfo(_,r.dtype,r.values)}return t}let c={kernelName:a.StridedSlice,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Reshape":"eIo6C","./Slice":"6zAVh","./StridedSlice_impl":"f1AZ6","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],c0QuG:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringNGrams",()=>l),s.export(r,"stringNGramsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./StringNGrams_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{separator:s,nGramWidths:a,leftPad:l,rightPad:i,padWidth:u,preserveShortSequences:p}=n,{data:c,dataSplits:d}=t,f=r.data.get(c.dataId).values,h=r.data.get(d.dataId).values,[m,g]=(0,o.stringNGramsImpl)(f,h,s,a,l,i,u,p);return[r.makeTensorInfo([m.length],"string",m),r.makeTensorInfo(d.shape,"int32",g)]}let i={kernelName:a.StringNGrams,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./StringNGrams_impl":"8eCIi","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],jpuMv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringSplit",()=>l),s.export(r,"stringSplitConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./StringSplit_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{skipEmpty:s}=n,{input:a,delimiter:l}=t;if("string"!==a.dtype)throw Error("Input must be of datatype string");if(1!==a.shape.length)throw Error(`Input must be a vector, got shape: ${a.shape}`);if(0!==l.shape.length)throw Error(`Delimiter must be a scalar, got shape: ${l.shape}`);let i=r.data.get(a.dataId).values,u=r.data.get(l.dataId).values[0],[p,c,d]=(0,o.stringSplitImpl)(i,u,s),f=c.length;return[r.makeTensorInfo([f,2],"int32",p),r.makeTensorInfo([f],"string",c),r.makeTensorInfo([2],"int32",new Int32Array(d))]}let i={kernelName:a.StringSplit,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./StringSplit_impl":"iLC5O","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"1eq9a":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringToHashBucketFast",()=>l),s.export(r,"stringToHashBucketFastConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./StringToHashBucketFast_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{numBuckets:s}=n,{input:a}=t;if("string"!==a.dtype)throw Error("Input must be of datatype string");if(s<=0)throw Error("Number of buckets must be at least 1");let l=r.data.get(a.dataId).values,i=(0,o.stringToHashBucketFastImpl)(l,s);return r.makeTensorInfo(a.shape,"int32",i)}let i={kernelName:a.StringToHashBucketFast,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./StringToHashBucketFast_impl":"2o0m3","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bnQEx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tan",()=>o),s.export(r,"tanConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Tan,e=>Math.tan(e)),l={kernelName:a.Tan,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],a59xI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tanh",()=>o),s.export(r,"tanhConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Tanh,e=>Math.tanh(e)),l={kernelName:a.Tanh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"hADTC","../utils/unary_utils":"gUSss","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],bPp5D:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensorScatterUpdate",()=>l),s.export(r,"tensorScatterUpdateConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Scatter_impl");function l(e){let{inputs:t,backend:r}=e,{tensor:n,indices:s,updates:l}=t,{sliceRank:i,numUpdates:u,sliceSize:p,strides:c,outputSize:d}=a.backend_util.calculateShapes(l,s,n.shape),f=r.bufferSync(s),h=r.bufferSync(l),m=r.bufferSync(n),g=(0,o.scatterImpl)(f,h,n.shape,d,p,u,i,c,m,!1);return r.makeTensorInfo(n.shape,g.dtype,g.values)}let i={kernelName:a.TensorScatterUpdate,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"hADTC","./Scatter_impl":"7vWDN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"4DF5i":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tile",()=>i),s.export(r,"tileConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Tile_impl");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{reps:a}=n;(0,o.assertNotComplex)(s,"tile");let i=(0,l.tileImpl)(r.bufferSync(s),a);return r.makeTensorInfo(i.shape,i.dtype,i.values)}let u={kernelName:a.Tile,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Tile_impl":"hNB7q","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"679kb":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"topK",()=>i),s.export(r,"topKConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./TopK_impl");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{k:a,sorted:i}=n;(0,o.assertNotComplex)(s,"topk");let u=r.data.get(s.dataId).values,[p,c]=(0,l.topKImpl)(u,s.shape,s.dtype,a,i);return[r.makeTensorInfo(p.shape,p.dtype,p.values),r.makeTensorInfo(c.shape,c.dtype,c.values)]}let u={kernelName:a.TopK,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./TopK_impl":"cdOVN","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"85hQ3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transform",()=>o),s.export(r,"transformConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,attrs:r,backend:n}=e,{image:s,transforms:o}=t,{interpolation:l,fillMode:p,fillValue:c,outputShape:d}=r,[f,h,m,g]=s.shape,[x,v]=null!=d?d:[h,m],y=[f,x,v,g],_=a.util.computeStrides(s.shape),b=_[0],k=_[1],T=_[2],w=a.util.computeStrides(y),I=w[0],j=w[1],C=w[2],N=a.util.getTypedArrayFromDType(s.dtype,a.util.sizeFromShape(y));N.fill(c);let S=n.data.get(s.dataId).values,E=n.data.get(o.dataId).values;for(let e=0;e<f;++e){let t=1===o.shape[0]?E:E.subarray(8*e,8*e+8);for(let r=0;r<x;++r)for(let n=0;n<v;++n)for(let s=0;s<g;++s){let a,o=t[6]*n+t[7]*r+1;if(0===o)continue;let d=(t[0]*n+t[1]*r+t[2])/o,f=(t[3]*n+t[4]*r+t[5])/o,g=i(d,m,p),x=i(f,h,p);switch(l){case"nearest":a=u(S,h,m,b,k,T,e,Math.round(x),Math.round(g),s,c);break;case"bilinear":a=function(e,t,r,n,s,a,o,l,i,p,c){let d=Math.floor(l),f=Math.floor(i),h=d+1,m=f+1,g=(m-i)*u(e,t,r,n,s,a,o,d,f,p,c)+(i-f)*u(e,t,r,n,s,a,o,d,m,p,c),x=(m-i)*u(e,t,r,n,s,a,o,h,f,p,c)+(i-f)*u(e,t,r,n,s,a,o,h,m,p,c);return(h-l)*g+(l-d)*x}(S,h,m,b,k,T,e,x,g,s,c);break;default:throw Error(`Error in Transform: Expect 'nearest' or 'bilinear', but got ${l}`)}N[e*I+r*j+n*C+s]=a}return n.makeTensorInfo(y,s.dtype,N)}return{dataId:n.write(N,y,s.dtype),shape:s.shape,dtype:s.dtype}}let l={kernelName:a.Transform,backendName:"cpu",kernelFunc:o};function i(e,t,r){switch(r){case"reflect":var n,s,o,l,i=e,u=t;let p=i;if(p<0)if(u<=1)p=0;else{let e=2*u;p<e&&(p=e*Math.trunc(-p/e)+p),p=p<-u?p+e:-p-1}else if(p>u-1)if(u<=1)p=0;else{let e=2*u;(p-=e*Math.trunc(p/e))>=u&&(p=e-p-1)}return a.util.clamp(0,p,u-1);case"wrap":let c;return n=e,s=t,(c=n)<0?s<=1?c=0:c+=s*(Math.trunc(-c/(s-1))+1):c>s-1&&(s<=1?c=0:c-=s*Math.trunc(c/(s-1))),a.util.clamp(0,c,s-1);case"nearest":return o=e,l=t,a.util.clamp(0,o,l-1);default:return e}}function u(e,t,r,n,s,a,o,l,i,u,p){return 0<=l&&l<t&&0<=i&&i<r?e[o*n+l*s+i*a+u]:p}},{"@tensorflow/tfjs-core":"hADTC","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"8DrHh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unique",()=>i),s.export(r,"uniqueConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Unique_impl");function i(e){let{inputs:t,attrs:r,backend:n}=e,{axis:s}=r,{x:a}=t;(0,o.assertNotComplex)(a,"unique");let i=n.data.get(a.dataId).values,{outputValues:u,outputShape:p,indices:c}=(0,l.uniqueImpl)(i,s,a.shape,a.dtype);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([c.length],"int32",c)]}let u={kernelName:a.Unique,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Unique_impl":"3PIkU","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"11UmK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unpack",()=>i),s.export(r,"unpackConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape"),l=e("./Slice");function i(e){let{inputs:t,backend:r,attrs:n}=e,{value:s}=t,{axis:a}=n;a<0&&(a+=s.shape.length);let i=s.shape.length,u=s.shape[a],p=Array(i-1),c=0;for(let e=0;e<i;e++)e!==a&&(p[c++]=s.shape[e]);let d=Array(i).fill(0),f=s.shape.slice();f[a]=1;let h=Array(u);for(let e=0;e<h.length;e++){d[a]=e;let t=(0,l.slice)({inputs:{x:s},backend:r,attrs:{begin:d,size:f}});h[e]=(0,o.reshape)({inputs:{x:t},backend:r,attrs:{shape:p}}),r.disposeIntermediateTensorInfo(t)}return h}let u={kernelName:a.Unpack,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"hADTC","./Reshape":"eIo6C","./Slice":"6zAVh","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}],"2E5hY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unsortedSegmentSum",()=>f),s.export(r,"unsortedSegmentSumConfig",()=>h);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Cast"),i=e("./Equal"),u=e("./ExpandDims"),p=e("./Multiply"),c=e("./Pack"),d=e("./Sum");function f(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,segmentIds:f}=t,{numSegments:h}=n;(0,o.assertNotComplex)(s,"unsortedSegmentSum");let m=s.shape.length,g=f.shape.length,x=[],v=[],y=m-g,_=f;for(let e=0;e<y;++e){let t=(0,u.expandDims)({inputs:{input:_},backend:r,attrs:{dim:e+1}});_=t,v.push(t)}for(let e=0;e<h;++e){let t=a.util.createScalarValue(e,"int32"),n=r.makeTensorInfo([],"int32",t),o=(0,i.equal)({inputs:{a:n,b:_},backend:r}),u=(0,l.cast)({inputs:{x:o},backend:r,attrs:{dtype:"float32"}}),c=(0,p.multiply)({inputs:{a:u,b:s},backend:r}),f=(0,d.sum)({inputs:{x:c},backend:r,attrs:{axis:0,keepDims:!1}});x.push(f),v.push(n),v.push(o),v.push(u),v.push(c),v.push(f)}let b=(0,c.pack)({inputs:x,backend:r,attrs:{axis:0}});return v.forEach(e=>r.disposeIntermediateTensorInfo(e)),b}let h={kernelName:a.UnsortedSegmentSum,backendName:"cpu",kernelFunc:f}},{"@tensorflow/tfjs-core":"hADTC","../cpu_util":"2r9V1","./Cast":"6EKy0","./Equal":"hOgtZ","./ExpandDims":"YQiG0","./Multiply":"7NGDi","./Pack":"hEwG7","./Sum":"2o1Uw","@parcel/transformer-js/src/esmodule-helpers.js":"loqXi"}]},["1AHlH"],"1AHlH","parcelRequire4dc0",{});let{default:e}=parcelRequire4dc0("1AHlH");export{e as default};