photo-validator
Version:
2 lines • 690 kB
JavaScript
/*! For license information please see photo-validator.js.LICENSE.txt */
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.PhotoValidator=e():t.PhotoValidator=e()}("undefined"!=typeof self?self:this,(()=>(()=>{var t={82:()=>{},232:(t,e,n)=>{"use strict";n.r(e),n.d(e,{AgeGenderNet:()=>Cv,BoundingBox:()=>Bp,Box:()=>Pp,ComposableTask:()=>lm,ComputeAllFaceDescriptorsTask:()=>ig,ComputeFaceDescriptorsTaskBase:()=>og,ComputeSingleFaceDescriptorTask:()=>ag,DetectAllFaceLandmarksTask:()=>ug,DetectAllFacesTask:()=>hg,DetectFaceLandmarksTaskBase:()=>sg,DetectFacesTaskBase:()=>lg,DetectSingleFaceLandmarksTask:()=>cg,DetectSingleFaceTask:()=>fg,Dimensions:()=>bp,FACE_EXPRESSION_LABELS:()=>sv,FaceDetection:()=>Wp,FaceDetectionNet:()=>$v,FaceExpressionNet:()=>cv,FaceExpressions:()=>uv,FaceLandmark68Net:()=>_v,FaceLandmark68TinyNet:()=>kv,FaceLandmarkNet:()=>Rv,FaceLandmarks:()=>$p,FaceLandmarks5:()=>Jp,FaceLandmarks68:()=>Qp,FaceMatch:()=>Zp,FaceMatcher:()=>bg,FaceRecognitionNet:()=>Mv,Gender:()=>bv,LabeledBox:()=>td,LabeledFaceDescriptors:()=>ed,Mtcnn:()=>Cm,MtcnnOptions:()=>Uv,NetInput:()=>Ad,NeuralNetwork:()=>Ud,ObjectDetection:()=>Lp,Point:()=>Op,PredictedBox:()=>nd,Rect:()=>Yp,SsdMobilenetv1:()=>qv,SsdMobilenetv1Options:()=>jv,TinyFaceDetector:()=>Im,TinyFaceDetectorOptions:()=>cm,TinyYolov2:()=>sm,TinyYolov2Options:()=>im,TinyYolov2SizeType:()=>Yv,allFaces:()=>yg,allFacesMtcnn:()=>gg,allFacesSsdMobilenetv1:()=>vg,allFacesTinyYolov2:()=>mg,awaitMediaLoaded:()=>Cd,bufferToImage:()=>Ed,computeFaceDescriptor:()=>Fm,createCanvas:()=>Id,createCanvasFromMedia:()=>kd,createFaceDetectionNet:()=>Xv,createFaceRecognitionNet:()=>Ov,createMtcnn:()=>wg,createSsdMobilenetv1:()=>Kv,createTinyFaceDetector:()=>Cg,createTinyYolov2:()=>um,detectAllFaces:()=>dg,detectFaceLandmarks:()=>Tm,detectFaceLandmarksTiny:()=>Nm,detectLandmarks:()=>Km,detectSingleFace:()=>pg,draw:()=>i,env:()=>pd,euclideanDistance:()=>xg,extendWithAge:()=>Lv,extendWithFaceDescriptor:()=>Pv,extendWithFaceDetection:()=>od,extendWithFaceExpressions:()=>hv,extendWithFaceLandmarks:()=>dv,extendWithGender:()=>zv,extractFaceTensors:()=>Fd,extractFaces:()=>Nd,fetchImage:()=>Od,fetchJson:()=>Pd,fetchNetWeights:()=>Bd,fetchOrThrow:()=>Md,getContext2dOrThrow:()=>vd,getMediaDimensions:()=>_d,imageTensorToCanvas:()=>Rd,imageToSquare:()=>Dd,inverseSigmoid:()=>Kp,iou:()=>zp,isMediaElement:()=>Sd,isMediaLoaded:()=>wd,isWithAge:()=>Bv,isWithFaceDetection:()=>rd,isWithFaceExpressions:()=>lv,isWithFaceLandmarks:()=>pv,isWithGender:()=>Wv,loadAgeGenderModel:()=>Hm,loadFaceDetectionModel:()=>jm,loadFaceExpressionModel:()=>Gm,loadFaceLandmarkModel:()=>zm,loadFaceLandmarkTinyModel:()=>Um,loadFaceRecognitionModel:()=>Vm,loadMtcnnModel:()=>Lm,loadSsdMobilenetv1Model:()=>Pm,loadTinyFaceDetectorModel:()=>Bm,loadTinyYolov2Model:()=>Wm,loadWeightMap:()=>Wd,locateFaces:()=>qm,matchDimensions:()=>zd,minBbox:()=>Up,mtcnn:()=>Am,nets:()=>km,nonMaxSuppression:()=>Vp,normalize:()=>Gp,padToSquare:()=>Hp,predictAgeAndGender:()=>Om,recognizeFaceExpressions:()=>Mm,resizeResults:()=>Eg,resolveInput:()=>dd,shuffleArray:()=>jp,sigmoid:()=>qp,ssdMobilenetv1:()=>Rm,tf:()=>r,tinyFaceDetector:()=>Sm,tinyYolov2:()=>Dm,toNetInput:()=>Td,utils:()=>o,validateConfig:()=>em});var r={};n.r(r),n.d(r,{AdadeltaOptimizer:()=>np,AdagradOptimizer:()=>rp,AdamOptimizer:()=>op,AdamaxOptimizer:()=>ip,DataStorage:()=>go,ENV:()=>f,Environment:()=>l,KernelBackend:()=>yo,MomentumOptimizer:()=>sp,Optimizer:()=>ep,RMSPropOptimizer:()=>up,Rank:()=>Et,Reduction:()=>Yl,SGDOptimizer:()=>ap,Tensor:()=>Ct,TensorBuffer:()=>yt,Variable:()=>St,abs:()=>Xs,acos:()=>Ys,acosh:()=>$s,add:()=>Xu,addN:()=>Yu,addStrict:()=>$u,all:()=>pl,any:()=>dl,argMax:()=>vl,argMin:()=>ml,asin:()=>Js,asinh:()=>Qs,atan:()=>Zs,atan2:()=>Ju,atanh:()=>tu,avgPool:()=>rl,avgPool3d:()=>al,backend:()=>ln,backend_util:()=>Lo,basicLSTMCell:()=>Fl,batchNorm:()=>Lu,batchNorm2d:()=>Wu,batchNorm3d:()=>zu,batchNorm4d:()=>Uu,batchNormalization:()=>Bu,batchNormalization2d:()=>Mu,batchNormalization3d:()=>Ou,batchNormalization4d:()=>Pu,batchToSpaceND:()=>dr,booleanMaskAsync:()=>Tc,broadcastTo:()=>vr,browser:()=>Hf,buffer:()=>fr,cast:()=>mr,ceil:()=>eu,clipByValue:()=>nu,clone:()=>gr,complex:()=>Sn,concat:()=>Xn,concat1d:()=>Yn,concat2d:()=>$n,concat3d:()=>Jn,concat4d:()=>Qn,conv1d:()=>Oc,conv2d:()=>Pc,conv2dTranspose:()=>Hc,conv3d:()=>Bc,conv3dTranspose:()=>jc,cos:()=>ru,cosh:()=>ou,cumsum:()=>yr,customGrad:()=>fo,deprecationWarn:()=>Ke,depthToSpace:()=>xr,depthwiseConv2d:()=>zc,diag:()=>ql,disableDeprecationWarnings:()=>qe,dispose:()=>Ze,disposeVariables:()=>Xe,div:()=>Qu,divNoNan:()=>Zu,divStrict:()=>tc,dot:()=>Kc,dropout:()=>Kl,elu:()=>_l,enableDebugMode:()=>je,enableProdMode:()=>He,engine:()=>Ye,env:()=>h,equal:()=>vc,equalStrict:()=>mc,erf:()=>iu,exp:()=>au,expandDims:()=>br,expm1:()=>su,eye:()=>wr,fft:()=>Wl,fill:()=>Gn,findBackend:()=>sn,findBackendFactory:()=>un,floor:()=>uu,floorDiv:()=>ec,frame:()=>Ql,fused:()=>Th,gather:()=>Dc,gatherND:()=>jl,gather_util:()=>Kr,getBackend:()=>on,getGradient:()=>m,getKernel:()=>v,getKernelsForBackend:()=>g,grad:()=>so,grads:()=>uo,greater:()=>gc,greaterEqual:()=>yc,greaterEqualStrict:()=>xc,greaterStrict:()=>bc,hammingWindow:()=>Jl,hannWindow:()=>$l,ifft:()=>zl,imag:()=>An,image:()=>Eh,inTopKAsync:()=>eh,io:()=>zf,irfft:()=>Vl,isFinite:()=>bu,isInf:()=>xu,isNaN:()=>yu,keep:()=>tn,leakyRelu:()=>Il,less:()=>wc,lessEqual:()=>Cc,lessEqualStrict:()=>Ec,lessStrict:()=>_c,linalg:()=>mh,linspace:()=>Hn,localResponseNormalization:()=>Tl,log:()=>cu,log1p:()=>lu,logSigmoid:()=>hu,logSoftmax:()=>mo,logSumExp:()=>gl,logicalAnd:()=>Vu,logicalNot:()=>Gu,logicalOr:()=>Hu,logicalXor:()=>ju,losses:()=>hh,matMul:()=>qc,math:()=>Vf,max:()=>yl,maxPool:()=>nl,maxPool3d:()=>il,maximum:()=>nc,maximumStrict:()=>rc,mean:()=>xl,memory:()=>$e,min:()=>bl,minimum:()=>oc,minimumStrict:()=>ic,mod:()=>ac,modStrict:()=>sc,moments:()=>wl,movingAverage:()=>Ol,mul:()=>uc,mulStrict:()=>cc,multiRNNCell:()=>Ml,multinomial:()=>Cr,neg:()=>fu,nextFrame:()=>fp,norm:()=>Nl,notEqual:()=>Ic,notEqualStrict:()=>kc,oneHot:()=>Er,ones:()=>Un,onesLike:()=>qn,op:()=>Rn,outerProduct:()=>Xc,pad:()=>_r,pad1d:()=>Ir,pad2d:()=>kr,pad3d:()=>Rr,pad4d:()=>Sr,pool:()=>ol,pow:()=>lc,powStrict:()=>hc,prelu:()=>kl,print:()=>pr,prod:()=>El,profile:()=>Je,rand:()=>Dr,randomGamma:()=>Tr,randomNormal:()=>Ar,randomUniform:()=>Nr,range:()=>jn,ready:()=>rn,real:()=>Dn,reciprocal:()=>pu,registerBackend:()=>cn,registerGradient:()=>x,registerKernel:()=>y,relu:()=>Rl,relu6:()=>Sl,removeBackend:()=>an,reshape:()=>Fr,reverse:()=>Yc,reverse1d:()=>$c,reverse2d:()=>Jc,reverse3d:()=>Qc,reverse4d:()=>Zc,rfft:()=>Ul,round:()=>du,rsqrt:()=>vu,scalar:()=>Fn,scatterND:()=>Ll,scatter_util:()=>Qr,selu:()=>Dl,separableConv2d:()=>Gc,serialization:()=>Xf,setBackend:()=>nn,setPlatform:()=>hn,setdiff1dAsync:()=>zr,sigmoid:()=>mu,sign:()=>gu,signal:()=>th,sin:()=>wu,sinh:()=>Cu,slice:()=>sl,slice1d:()=>ul,slice2d:()=>cl,slice3d:()=>ll,slice4d:()=>hl,slice_util:()=>ao,softmax:()=>vo,softplus:()=>Eu,spaceToBatchND:()=>Mr,sparseToDense:()=>Hl,spectral:()=>Gl,split:()=>Zn,sqrt:()=>_u,square:()=>js,squaredDifference:()=>Ks,squaredDifferenceStrict:()=>fc,squeeze:()=>Or,stack:()=>Pr,step:()=>Iu,stft:()=>Zl,stridedSlice:()=>Pl,sub:()=>pc,subStrict:()=>dc,sum:()=>Cl,sumOutType:()=>Tt,tan:()=>ku,tanh:()=>Ru,tensor:()=>Tn,tensor1d:()=>Mn,tensor2d:()=>On,tensor3d:()=>Pn,tensor4d:()=>Bn,tensor5d:()=>Ln,tensor6d:()=>Wn,tensor_util:()=>Pt,test_util:()=>Qf,tidy:()=>Qe,tile:()=>Br,time:()=>en,topk:()=>Bl,train:()=>lp,transpose:()=>Al,truncatedNormal:()=>Lr,unregisterGradient:()=>w,unregisterKernel:()=>b,unsortedSegmentSum:()=>Ac,unstack:()=>Wr,util:()=>ft,valueAndGrad:()=>co,valueAndGrads:()=>lo,variable:()=>zn,variableGrads:()=>ho,version_core:()=>Zf,webgl:()=>tp,where:()=>qu,whereAsync:()=>Ku,zeros:()=>Vn,zerosLike:()=>Kn});var o={};n.r(o),n.d(o,{computeReshapedDimensions:()=>Ap,getCenterPoint:()=>Tp,isDimensions:()=>Dp,isEven:()=>Rp,isFloat:()=>kp,isTensor:()=>wp,isTensor1D:()=>Cp,isTensor2D:()=>Ep,isTensor3D:()=>_p,isTensor4D:()=>Ip,isValidNumber:()=>Fp,isValidProbablitiy:()=>Mp,range:()=>Np,round:()=>Sp});var i={};n.r(i),n.d(i,{AnchorPosition:()=>fd,DrawBox:()=>xd,DrawBoxOptions:()=>yd,DrawFaceLandmarks:()=>mv,DrawFaceLandmarksOptions:()=>vv,DrawTextField:()=>gd,DrawTextFieldOptions:()=>md,drawContour:()=>pp,drawDetections:()=>bd,drawFaceExpressions:()=>fv,drawFaceLandmarks:()=>gv});var a=function(t,e){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function s(t,e){function n(){this.constructor=t}a(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function u(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{u(r.next(t))}catch(t){i(t)}}function s(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){t.done?o(t.value):new n((function(e){e(t.value)})).then(a,s)}u((r=r.apply(t,e||[])).next())}))}function c(t,e){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=e.call(t,a)}catch(t){i=[6,t],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}var l=function(){function t(t){this.global=t,this.flags={},this.flagRegistry={},this.urlFlags={},this.populateURLFlags()}return t.prototype.setPlatform=function(t,e){null!=this.platform&&console.warn("Platform "+this.platformName+" has already been set. Overwriting the platform with "+e+"."),this.platformName=t,this.platform=e},t.prototype.registerFlag=function(t,e,n){if(this.flagRegistry[t]={evaluationFn:e,setHook:n},null!=this.urlFlags[t]){var r=this.urlFlags[t];console.warn("Setting feature override from URL "+t+": "+r+"."),this.set(t,r)}},t.prototype.get=function(t){return t in this.flags||(this.flags[t]=this.evaluateFlag(t)),this.flags[t]},t.prototype.getNumber=function(t){return this.get(t)},t.prototype.getBool=function(t){return this.get(t)},t.prototype.getFlags=function(){return this.flags},Object.defineProperty(t.prototype,"features",{get:function(){return this.flags},enumerable:!0,configurable:!0}),t.prototype.set=function(t,e){if(null==this.flagRegistry[t])throw new Error("Cannot set flag "+t+" as it has not been registered.");this.flags[t]=e,null!=this.flagRegistry[t].setHook&&this.flagRegistry[t].setHook(e)},t.prototype.evaluateFlag=function(t){if(null==this.flagRegistry[t])throw new Error("Cannot evaluate flag '"+t+"': no evaluation function found.");return this.flagRegistry[t].evaluationFn()},t.prototype.setFlags=function(t){this.flags=Object.assign({},t)},t.prototype.reset=function(){this.flags={},this.urlFlags={},this.populateURLFlags()},t.prototype.populateURLFlags=function(){var t=this;if(void 0!==this.global&&void 0!==this.global.location&&void 0!==this.global.location.search){var e,n,r=(e=this.global.location.search,n={},e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(function(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];return function(t,e,n){t[decodeURIComponent(e)]=decodeURIComponent(n||"")}(n,e[0],e[1]),e.join("=")})),n);"tfjsflags"in r&&r.tfjsflags.split(",").forEach((function(e){var n=e.split(":"),r=n[0],o=n[1];t.urlFlags[r]=function(t,e){if("true"===(e=e.toLowerCase())||"false"===e)return"true"===e;if(""+ +e===e)return+e;throw new Error("Could not parse value flag value "+e+" for flag "+t+".")}(r,o)}))}},t}();function h(){return f}var f=null,p=new Map,d=new Map;function v(t,e){var n=C(t,e);return p.get(n)}function m(t){return d.get(t)}function g(t){for(var e=p.entries(),n=[];;){var r=e.next(),o=r.done,i=r.value;if(o)break;var a=i[0],s=i[1];a.split("_")[0]===t&&n.push(s)}return n}function y(t){var e=t.kernelName,n=t.backendName,r=C(e,n);if(p.has(r))throw new Error("The kernel '"+e+"' for backend '"+n+"' is already registered");p.set(r,t)}function x(t){var e=t.kernelName;d.has(e)&&console.warn("Overriding the gradient for '"+e+"'"),d.set(e,t)}function b(t,e){var n=C(t,e);if(!p.has(n))throw new Error("The kernel '"+t+"' for backend '"+e+"' is not registered");p.delete(n)}function w(t){if(!d.has(t))throw new Error("The gradient '"+t+"' for backend is not registered");d.delete(t)}function C(t,e){return e+"_"+t}function E(t){for(var e=t.length,n=0,r=0;e>0;)r=Math.random()*e|0,n=t[--e],t[e]=t[r],t[r]=n}function _(t,e,n){return Math.max(t,Math.min(e,n))}function I(t){return t%2==0?t:t+1}function k(t){for(var e=0,n=0;n<t.length;n++)e+=t[n];return e}function R(t,e){if(!t)throw new Error("string"==typeof e?e:e())}function S(t,e,n){void 0===n&&(n=""),R(N(t,e),(function(){return n+" Shapes "+t+" and "+e+" must match"}))}function D(t){R(null!=t,(function(){return"The input to the tensor constructor must be a non-null value."}))}function A(t,e,n){if(void 0===e&&(e=[]),void 0===n&&(n=!1),null==e&&(e=[]),Array.isArray(t)||q(t)&&!n)for(var r=0;r<t.length;++r)A(t[r],e,n);else e.push(t);return e}function T(t){if(0===t.length)return 1;for(var e=t[0],n=1;n<t.length;n++)e*=t[n];return e}function N(t,e){if(t===e)return!0;if(null==t||null==e)return!1;if(t.length!==e.length)return!1;for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0}function F(t){return t%1==0}function M(t){if(null!=Math.tanh)return Math.tanh(t);if(t===1/0)return 1;if(t===-1/0)return-1;var e=Math.exp(2*t);return(e-1)/(e+1)}function O(t){var e=Math.ceil(Math.sqrt(t));return[e,Math.ceil(t/e)]}function P(t,e){return e<=t.length?t:t+" ".repeat(e-t.length)}function B(t,e,n){return void 0===e&&(e=function(t){return 0}),new Promise((function(r,o){var i=0,a=function(){if(t())r();else{i++;var s=e(i);null!=n&&i>=n?o():setTimeout(a,s)}};a()}))}function L(t,e){for(var n=1,r=-1,o=0;o<t.length;++o)if(t[o]>=0)n*=t[o];else if(-1===t[o]){if(-1!==r)throw Error("Shapes can only have 1 implicit size. Found -1 at dim "+r+" and dim "+o);r=o}else if(t[o]<0)throw Error("Shapes can not be < 0. Found "+t[o]+" at dim "+o);if(-1===r){if(e>0&&e!==n)throw Error("Size("+e+") must match the product of shape "+t);return t}if(0===n)throw Error("Cannot infer the missing size in ["+t+"] when there are 0 elements");if(e%n!=0)throw Error("The implicit shape can't be a fractional number. Got "+e+" / "+n);var i=t.slice();return i[r]=e/n,i}function W(t,e){var n=e.length;return R((t=null==t?e.map((function(t,e){return e})):[].concat(t)).every((function(t){return t>=-n&&t<n})),(function(){return"All values in axis param must be in range [-"+n+", "+n+") but got axis "+t})),R(t.every((function(t){return F(t)})),(function(){return"All values in axis param must be integers but got axis "+t})),t.map((function(t){return t<0?n+t:t}))}function z(t,e){for(var n=[],r=[],o=null!=e&&Array.isArray(e)&&0===e.length,i=null==e||o?null:W(e,t).sort(),a=0,s=0;s<t.length;++s){if(null!=i){if(i[a]===s&&1!==t[s])throw new Error("Can't squeeze axis "+s+" since its dim '"+t[s]+"' is not 1");(null==i[a]||i[a]>s)&&1===t[s]&&(n.push(t[s]),r.push(s)),i[a]<=s&&a++}1!==t[s]&&(n.push(t[s]),r.push(s))}return{newShape:n,keptDims:r}}function U(t,e){var n=null;if(null==t||"float32"===t)n=new Float32Array(e);else if("int32"===t)n=new Int32Array(e);else{if("bool"!==t)throw new Error("Unknown data type "+t);n=new Uint8Array(e)}return n}function V(t,e){var n=null;if(null==t||"float32"===t)n=new Float32Array(e);else if("int32"===t)n=new Int32Array(e);else if("bool"===t)n=new Uint8Array(e);else{if("string"!==t)throw new Error("Unknown data type "+t);n=new Array(e)}return n}function G(t,e){for(var n=0;n<t.length;n++){var r=t[n];if(isNaN(r)||!isFinite(r))throw Error("A tensor of type "+e+" being uploaded contains "+r+".")}}function H(t){return"bool"===t||"complex64"===t||"float32"===t||"int32"===t||"string"===t}function j(t,e){return!("complex64"===e||"float32"===e&&"complex64"!==t||"int32"===e&&"float32"!==t&&"complex64"!==t||"bool"===e&&"bool"===t)}function q(t){return t instanceof Float32Array||t instanceof Int32Array||t instanceof Uint8Array}function K(t){if("float32"===t||"int32"===t)return 4;if("complex64"===t)return 8;if("bool"===t)return 1;throw new Error("Unknown dtype "+t)}function X(t){if(null==t)return 0;var e=0;return t.forEach((function(t){return e+=t.length})),e}function Y(t){return"string"==typeof t||t instanceof String}function $(t){return"boolean"==typeof t}function J(t){return"number"==typeof t}function Q(t){return Array.isArray(t)?Q(t[0]):t instanceof Float32Array?"float32":t instanceof Int32Array||t instanceof Uint8Array?"int32":J(t)?"float32":Y(t)?"string":$(t)?"bool":"float32"}function Z(t){return!!(t&&t.constructor&&t.call&&t.apply)}function tt(t,e){for(var n=e;n<t;++n)if(t%n==0)return n;return t}function et(t){var e=t.length;if(e<2)return[];var n=new Array(e-1);n[e-2]=t[e-1];for(var r=e-3;r>=0;--r)n[r]=n[r+1]*t[r+1];return n}function nt(t,e,n){if("string"===e)throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(t)&&(t=A(t)),n&&G(t,e),function(t,e){return t instanceof Float32Array&&"float32"===e||t instanceof Int32Array&&"int32"===e||t instanceof Uint8Array&&"bool"===e}(t,e))return t;if(null==e||"float32"===e||"complex64"===e)return new Float32Array(t);if("int32"===e)return new Int32Array(t);if("bool"===e){for(var r=new Uint8Array(t.length),o=0;o<r.length;++o)0!==Math.round(t[o])&&(r[o]=1);return r}throw new Error("Unknown data type "+e)}function rt(t,e){if(0===t.length)return e[0];var n=t.reduce((function(t,e){return t*e}));if(0===n)return[];if(n!==e.length)throw new Error("["+t+"] does not match the input size.");return function t(e,n,r){var o=new Array;if(1===n.length)for(var i=n[0],a=0;a<i;a++)o[a]=r[e+a];else{i=n[0];var s=n.slice(1),u=s.reduce((function(t,e){return t*e}));for(a=0;a<i;a++)o[a]=t(e+a*u,s,r)}return o}(0,t,e)}function ot(t,e){for(var n=it(t,e),r=0;r<n.length;r++)n[r]=1;return n}function it(t,e){if(null==e||"float32"===e||"complex64"===e)return new Float32Array(t);if("int32"===e)return new Int32Array(t);if("bool"===e)return new Uint8Array(t);throw new Error("Unknown data type "+e)}function at(){return h().platform.now()}function st(t){t.forEach((function(e){R(Number.isInteger(e)&&e>=0,(function(){return"Tensor must have a shape comprised of positive integers but got shape ["+t+"]."}))}))}function ut(t,e){return void 0===e&&(e="utf-8"),e=e||"utf-8",h().platform.encode(t,e)}function ct(t,e){return void 0===e&&(e="utf-8"),e=e||"utf-8",h().platform.decode(t,e)}function lt(t,e,n){if(0===e)return 0;if(1===e)return t[0];for(var r=t[t.length-1],o=0;o<t.length-1;++o)r+=n[o]*t[o];return r}function ht(t,e,n){if(0===e)return[];if(1===e)return[t];for(var r=new Array(e),o=0;o<r.length-1;++o)r[o]=Math.floor(t/n[o]),t-=r[o]*n[o];return r[r.length-1]=t,r}var ft=Object.freeze({shuffle:E,clamp:_,nearestLargerEven:I,sum:k,randUniform:function(t,e){var n=Math.random();return e*n+(1-n)*t},distSquared:function(t,e){for(var n=0,r=0;r<t.length;r++){var o=Number(t[r])-Number(e[r]);n+=o*o}return n},assert:R,assertShapesMatch:S,assertNonNull:D,flatten:A,sizeFromShape:T,isScalarShape:function(t){return 0===t.length},arraysEqual:N,isInt:F,tanh:M,sizeToSquarishShape:O,createShuffledIndices:function(t){for(var e=new Uint32Array(t),n=0;n<t;++n)e[n]=n;return E(e),e},rightPad:P,repeatedTry:B,inferFromImplicitShape:L,parseAxisParam:W,squeezeShape:z,getTypedArrayFromDType:U,getArrayFromDType:V,checkConversionForErrors:G,isValidDtype:H,hasEncodingLoss:j,isTypedArray:q,bytesPerElement:K,bytesFromStringArray:X,isString:Y,isBoolean:$,isNumber:J,inferDtype:Q,isFunction:Z,nearestDivisor:tt,computeStrides:et,toTypedArray:nt,toNestedArray:rt,makeOnesTypedArray:ot,makeZerosTypedArray:it,now:at,assertNonNegativeIntegerDimensions:st,fetch:function(t,e){return h().platform.fetch(t,e)},encodeString:ut,decodeString:ct,locToIndex:lt,indexToLoc:ht}),pt=function(){function t(t,e){this.backendTimer=t,this.logger=e,null==e&&(this.logger=new dt)}return t.prototype.profileKernel=function(t,e,n){var r,o=this,i=this.backendTimer.time((function(){r=n()}));return r.forEach((function(n){n.data().then((function(r){!function(t,e,n){if("float32"!==e)return!1;for(var r=0;r<t.length;r++){var o=t[r];if(isNaN(o)||!isFinite(o))return console.warn("Found "+o+" in the result of '"+n+"'"),!0}}(r,n.dtype,t),i.then((function(i){var a="";null!=i.getExtraProfileInfo&&(a=i.getExtraProfileInfo()),o.logger.logKernelProfile(t,n,r,i.kernelMs,e,a)}))}))})),r},t}(),dt=function(){function t(){}return t.prototype.logKernelProfile=function(t,e,n,r,o,i){var a="number"==typeof r?P(r+"ms",9):r.error,s=P(t,25),u=e.rank,c=e.size,l=P(e.shape.toString(),14),h="";for(var f in o){var p=o[f].shape||e.shape,d=p.length;h+=f+": "+d+"D "+(d>0?p:"")+" "}console.log("%c"+s+"\t%c"+a+"\t%c"+u+"D "+l+"\t%c"+c+"\t%c"+h+"\t%c"+i,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")},t}();function vt(t,e,n){return P(Array.isArray(t)?parseFloat(t[0].toFixed(7))+" + "+parseFloat(t[1].toFixed(7))+"j":Y(t)?"'"+t+"'":"bool"===n?mt(t):parseFloat(t.toFixed(7)).toString(),e)}function mt(t){return 0===t?"false":"true"}function gt(t){for(var e=[],n=0;n<t.length;n+=2)e.push([t[n],t[n+1]]);return e}var yt=function(){function t(t,e,n){var r=this;if(this.dtype=e,this.shape=t.slice(),this.size=T(t),null!=n){var o=n.length;R(o===this.size,(function(){return"Length of values '"+o+"' does not match the size inferred by the shape '"+r.size+"'."}))}if("complex64"===e)throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||V(e,this.size),this.strides=et(t)}return t.prototype.set=function(t){for(var e=this,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];0===n.length&&(n=[0]),R(n.length===this.rank,(function(){return"The number of provided coordinates ("+n.length+") must match the rank ("+e.rank+")"}));var o=this.locToIndex(n);this.values[o]=t},t.prototype.get=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];0===t.length&&(t=[0]);for(var n=0,r=0,o=t;r<o.length;r++){var i=o[r];if(i<0||i>=this.shape[n]){var a="Requested out of range element at "+t+". Buffer shape="+this.shape;throw new Error(a)}n++}for(var s=t[t.length-1],u=0;u<t.length-1;++u)s+=this.strides[u]*t[u];return this.values[s]},t.prototype.locToIndex=function(t){if(0===this.rank)return 0;if(1===this.rank)return t[0];for(var e=t[t.length-1],n=0;n<t.length-1;++n)e+=this.strides[n]*t[n];return e},t.prototype.indexToLoc=function(t){if(0===this.rank)return[];if(1===this.rank)return[t];for(var e=new Array(this.shape.length),n=0;n<e.length-1;++n)e[n]=Math.floor(t/this.strides[n]),t-=e[n]*this.strides[n];return e[e.length-1]=t,e},Object.defineProperty(t.prototype,"rank",{get:function(){return this.shape.length},enumerable:!0,configurable:!0}),t.prototype.toTensor=function(){return xt().makeTensor(this.values,this.shape,this.dtype)},t}(),xt=null,bt=null,wt=null,Ct=function(){function t(t,e,n,r){this.kept=!1,this.isDisposedInternal=!1,this.shape=t.slice(),this.dtype=e||"float32",this.size=T(t),this.strides=et(t),this.dataId=n,this.id=r,this.rankType=this.rank<5?this.rank.toString():"higher"}return t.prototype.flatten=function(){return this.throwIfDisposed(),this.as1D()},t.prototype.asScalar=function(){return this.throwIfDisposed(),R(1===this.size,(function(){return"The array must have only 1 element."})),this.reshape([])},t.prototype.as1D=function(){return this.throwIfDisposed(),this.reshape([this.size])},t.prototype.as2D=function(t,e){return this.throwIfDisposed(),this.reshape([t,e])},t.prototype.as3D=function(t,e,n){return this.throwIfDisposed(),this.reshape([t,e,n])},t.prototype.as4D=function(t,e,n,r){return this.throwIfDisposed(),this.reshape([t,e,n,r])},t.prototype.as5D=function(t,e,n,r,o){return this.throwIfDisposed(),this.reshape([t,e,n,r,o])},t.prototype.asType=function(t){return this.throwIfDisposed(),bt.cast(this,t)},Object.defineProperty(t.prototype,"rank",{get:function(){return this.shape.length},enumerable:!0,configurable:!0}),t.prototype.buffer=function(){return u(this,void 0,void 0,(function(){var t;return c(this,(function(e){switch(e.label){case 0:return[4,this.data()];case 1:return t=e.sent(),[2,bt.buffer(this.shape,this.dtype,t)]}}))}))},t.prototype.bufferSync=function(){return bt.buffer(this.shape,this.dtype,this.dataSync())},t.prototype.array=function(){return u(this,void 0,void 0,(function(){var t;return c(this,(function(e){switch(e.label){case 0:return[4,this.data()];case 1:return t=e.sent(),[2,rt(this.shape,t)]}}))}))},t.prototype.arraySync=function(){return rt(this.shape,this.dataSync())},t.prototype.data=function(){return u(this,void 0,void 0,(function(){var t,e;return c(this,(function(n){switch(n.label){case 0:return this.throwIfDisposed(),t=xt().read(this.dataId),"string"!==this.dtype?[3,2]:[4,t];case 1:e=n.sent();try{return[2,e.map((function(t){return ct(t)}))]}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}n.label=2;case 2:return[2,t]}}))}))},t.prototype.dataSync=function(){this.throwIfDisposed();var t=xt().readSync(this.dataId);if("string"===this.dtype)try{return t.map((function(t){return ct(t)}))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return t},t.prototype.bytes=function(){return u(this,void 0,void 0,(function(){var t;return c(this,(function(e){switch(e.label){case 0:return this.throwIfDisposed(),[4,xt().read(this.dataId)];case 1:return t=e.sent(),"string"===this.dtype?[2,t]:[2,new Uint8Array(t.buffer)]}}))}))},t.prototype.dispose=function(){this.isDisposed||(xt().disposeTensor(this),this.isDisposedInternal=!0)},Object.defineProperty(t.prototype,"isDisposed",{get:function(){return this.isDisposedInternal},enumerable:!0,configurable:!0}),t.prototype.throwIfDisposed=function(){if(this.isDisposed)throw new Error("Tensor is disposed.")},t.prototype.toFloat=function(){return this.asType("float32")},t.prototype.toInt=function(){return this.asType("int32")},t.prototype.toBool=function(){return this.asType("bool")},t.prototype.print=function(t){return void 0===t&&(t=!1),bt.print(this,t)},t.prototype.reshape=function(t){return this.throwIfDisposed(),bt.reshape(this,t)},t.prototype.reshapeAs=function(t){return this.throwIfDisposed(),this.reshape(t.shape)},t.prototype.expandDims=function(t){return void 0===t&&(t=0),bt.expandDims(this,t)},t.prototype.cumsum=function(t,e,n){return void 0===t&&(t=0),void 0===e&&(e=!1),void 0===n&&(n=!1),bt.cumsum(this,t,e,n)},t.prototype.squeeze=function(t){return this.throwIfDisposed(),bt.squeeze(this,t)},t.prototype.clone=function(){return this.throwIfDisposed(),bt.clone(this)},t.prototype.oneHot=function(t,e,n){return this.throwIfDisposed(),bt.oneHot(this,t,e,n)},t.prototype.toString=function(t){return void 0===t&&(t=!1),function(t,e,n,r){var o=et(e),i=function(t,e,n,r){var o=T(e),i=r[r.length-1],a=new Array(i).fill(0),s=e.length,u="complex64"===n?gt(t):t;if(s>1)for(var c=0;c<o/i;c++)for(var l=c*i,h=0;h<i;h++)a[h]=Math.max(a[h],vt(u[l+h],0,n).length);return a}(t,e,n,o),a=e.length,s=function t(e,n,r,o,i,a){void 0===a&&(a=!0);var s="complex64"===r?2:1,u=n[0],c=n.length;if(0===c)return"complex64"===r?[vt(gt(e)[0],0,r)]:"bool"===r?[mt(e[0])]:[e[0].toString()];if(1===c){if(u>20){var l=3*s,h=Array.from(e.slice(0,l)),f=Array.from(e.slice((u-3)*s,u*s));return"complex64"===r&&(h=gt(h),f=gt(f)),["["+h.map((function(t,e){return vt(t,i[e],r)})).join(", ")+", ..., "+f.map((function(t,e){return vt(t,i[u-3+e],r)})).join(", ")+"]"]}return["["+("complex64"===r?gt(e):Array.from(e)).map((function(t,e){return vt(t,i[e],r)})).join(", ")+"]"]}var p=n.slice(1),d=o.slice(1),v=o[0]*s,m=[];if(u>20){for(var g=0;g<3;g++){var y=(x=g*v)+v;m.push.apply(m,t(e.slice(x,y),p,r,d,i,!1))}for(m.push("..."),g=u-3;g<u;g++)y=(x=g*v)+v,m.push.apply(m,t(e.slice(x,y),p,r,d,i,g===u-1))}else for(g=0;g<u;g++){var x;y=(x=g*v)+v,m.push.apply(m,t(e.slice(x,y),p,r,d,i,g===u-1))}var b=2===c?",":"";for(m[0]="["+m[0]+b,g=1;g<m.length-1;g++)m[g]=" "+m[g]+b;var w=",\n";for(g=2;g<c;g++)w+="\n";return m[m.length-1]=" "+m[m.length-1]+"]"+(a?"":w),m}(t,e,n,o,i),u=["Tensor"];return r&&(u.push(" dtype: "+n),u.push(" rank: "+a),u.push(" shape: ["+e+"]"),u.push(" values:")),u.push(s.map((function(t){return" "+t})).join("\n")),u.join("\n")}(this.dataSync(),this.shape,this.dtype,t)},t.prototype.tile=function(t){return this.throwIfDisposed(),bt.tile(this,t)},t.prototype.gather=function(t,e){return void 0===e&&(e=0),this.throwIfDisposed(),bt.gather(this,t,e)},t.prototype.matMul=function(t,e,n){return void 0===e&&(e=!1),void 0===n&&(n=!1),this.throwIfDisposed(),bt.matMul(this,t,e,n)},t.prototype.dot=function(t){return this.throwIfDisposed(),bt.dot(this,t)},t.prototype.norm=function(t,e,n){return void 0===t&&(t="euclidean"),void 0===e&&(e=null),void 0===n&&(n=!1),this.throwIfDisposed(),bt.norm(this,t,e,n)},t.prototype.slice=function(t,e){return this.throwIfDisposed(),bt.slice(this,t,e)},t.prototype.reverse=function(t){return this.throwIfDisposed(),bt.reverse(this,t)},t.prototype.concat=function(e,n){return void 0===n&&(n=0),this.throwIfDisposed(),e instanceof t&&(e=[e]),bt.concat([this].concat(e),n)},t.prototype.split=function(t,e){return void 0===e&&(e=0),this.throwIfDisposed(),bt.split(this,t,e)},t.prototype.stack=function(t,e){return void 0===e&&(e=0),bt.stack([this,t],e)},t.prototype.unstack=function(t){return void 0===t&&(t=0),bt.unstack(this,t)},t.prototype.pad=function(t,e){return void 0===e&&(e=0),bt.pad(this,t,e)},t.prototype.batchNormalization=function(t,e,n,r,o){return void 0===n&&(n=.001),wt("tf.batchNormalization() is going away. Use tf.batchNorm() instead, and note the positional argument change of scale, offset, and varianceEpsilon"),this.batchNorm(t,e,o,r,n)},t.prototype.batchNorm=function(t,e,n,r,o){return void 0===o&&(o=.001),this.throwIfDisposed(),bt.batchNorm(this,t,e,n,r,o)},t.prototype.all=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),bt.all(this,t,e)},t.prototype.any=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),bt.any(this,t,e)},t.prototype.logSumExp=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),bt.logSumExp(this,t,e)},t.prototype.sum=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),bt.sum(this,t,e)},t.prototype.prod=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),bt.prod(this,t,e)},t.prototype.mean=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),bt.mean(this,t,e)},t.prototype.min=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),bt.min(this,t,e)},t.prototype.max=function(t,e){return void 0===t&&(t=null),void 0===e&&(e=!1),this.throwIfDisposed(),bt.max(this,t,e)},t.prototype.argMin=function(t){return void 0===t&&(t=null),this.throwIfDisposed(),bt.argMin(this,t)},t.prototype.argMax=function(t){return void 0===t&&(t=null),this.throwIfDisposed(),bt.argMax(this,t)},t.prototype.cast=function(t){return this.throwIfDisposed(),bt.cast(this,t)},t.prototype.add=function(t){return this.throwIfDisposed(),bt.add(this,t)},t.prototype.addStrict=function(t){return this.throwIfDisposed(),bt.addStrict(this,t)},t.prototype.atan2=function(t){return this.throwIfDisposed(),bt.atan2(this,t)},t.prototype.sub=function(t){return this.throwIfDisposed(),bt.sub(this,t)},t.prototype.subStrict=function(t){return this.throwIfDisposed(),bt.subStrict(this,t)},t.prototype.pow=function(t){return this.throwIfDisposed(),bt.pow(this,t)},t.prototype.powStrict=function(t){return this.throwIfDisposed(),bt.powStrict(this,t)},t.prototype.mul=function(t){return this.throwIfDisposed(),bt.mul(this,t)},t.prototype.mulStrict=function(t){return this.throwIfDisposed(),bt.mulStrict(this,t)},t.prototype.div=function(t){return this.throwIfDisposed(),bt.div(this,t)},t.prototype.divNoNan=function(t){return this.throwIfDisposed(),bt.divNoNan(this,t)},t.prototype.floorDiv=function(t){return this.throwIfDisposed(),bt.floorDiv(this,t)},t.prototype.divStrict=function(t){return this.throwIfDisposed(),bt.divStrict(this,t)},t.prototype.minimum=function(t){return this.throwIfDisposed(),bt.minimum(this,t)},t.prototype.minimumStrict=function(t){return this.throwIfDisposed(),bt.minimumStrict(this,t)},t.prototype.maximum=function(t){return this.throwIfDisposed(),bt.maximum(this,t)},t.prototype.maximumStrict=function(t){return this.throwIfDisposed(),bt.maximumStrict(this,t)},t.prototype.mod=function(t){return this.throwIfDisposed(),bt.mod(this,t)},t.prototype.modStrict=function(t){return this.throwIfDisposed(),bt.modStrict(this,t)},t.prototype.squaredDifferenceStrict=function(t){return this.throwIfDisposed(),bt.squaredDifferenceStrict(this,t)},t.prototype.transpose=function(t){return this.throwIfDisposed(),bt.transpose(this,t)},t.prototype.notEqual=function(t){return this.throwIfDisposed(),bt.notEqual(this,t)},t.prototype.notEqualStrict=function(t){return this.throwIfDisposed(),bt.notEqualStrict(this,t)},t.prototype.less=function(t){return this.throwIfDisposed(),bt.less(this,t)},t.prototype.lessStrict=function(t){return this.throwIfDisposed(),bt.lessStrict(this,t)},t.prototype.equal=function(t){return this.throwIfDisposed(),bt.equal(this,t)},t.prototype.equalStrict=function(t){return this.throwIfDisposed(),bt.equalStrict(this,t)},t.prototype.lessEqual=function(t){return this.throwIfDisposed(),bt.lessEqual(this,t)},t.prototype.lessEqualStrict=function(t){return this.throwIfDisposed(),bt.lessEqualStrict(this,t)},t.prototype.greater=function(t){return this.throwIfDisposed(),bt.greater(this,t)},t.prototype.greaterStrict=function(t){return this.throwIfDisposed(),bt.greaterStrict(this,t)},t.prototype.greaterEqual=function(t){return this.throwIfDisposed(),bt.greaterEqual(this,t)},t.prototype.greaterEqualStrict=function(t){return this.throwIfDisposed(),bt.greaterEqualStrict(this,t)},t.prototype.logicalAnd=function(t){return this.throwIfDisposed(),bt.logicalAnd(this,t)},t.prototype.logicalOr=function(t){return this.throwIfDisposed(),bt.logicalOr(this,t)},t.prototype.logicalNot=function(){return this.throwIfDisposed(),bt.logicalNot(this)},t.prototype.logicalXor=function(t){return this.throwIfDisposed(),bt.logicalXor(this,t)},t.prototype.where=function(t,e){return this.throwIfDisposed(),bt.where(t,this,e)},t.prototype.neg=function(){return this.throwIfDisposed(),bt.neg(this)},t.prototype.ceil=function(){return this.throwIfDisposed(),bt.ceil(this)},t.prototype.floor=function(){return this.throwIfDisposed(),bt.floor(this)},t.prototype.sign=function(){return this.throwIfDisposed(),bt.sign(this)},t.prototype.isNaN=function(){return this.throwIfDisposed(),bt.isNaN(this)},t.prototype.isInf=function(){return this.throwIfDisposed(),bt.isInf(this)},t.prototype.isFinite=function(){return this.throwIfDisposed(),bt.isFinite(this)},t.prototype.exp=function(){return this.throwIfDisposed(),bt.exp(this)},t.prototype.expm1=function(){return this.throwIfDisposed(),bt.expm1(this)},t.prototype.log=function(){return this.throwIfDisposed(),bt.log(this)},t.prototype.log1p=function(){return this.throwIfDisposed(),bt.log1p(this)},t.prototype.sqrt=function(){return this.throwIfDisposed(),bt.sqrt(this)},t.prototype.rsqrt=function(){return this.throwIfDisposed(),bt.rsqrt(this)},t.prototype.square=function(){return this.throwIfDisposed(),bt.square(this)},t.prototype.reciprocal=function(){return this.throwIfDisposed(),bt.reciprocal(this)},t.prototype.abs=function(){return this.throwIfDisposed(),bt.abs(this)},t.prototype.clipByValue=function(t,e){return this.throwIfDisposed(),bt.clipByValue(this,t,e)},t.prototype.relu=function(){return this.throwIfDisposed(),bt.relu(this)},t.prototype.relu6=function(){return this.throwIfDisposed(),bt.relu6(this)},t.prototype.elu=function(){return this.throwIfDisposed(),bt.elu(this)},t.prototype.selu=function(){return this.throwIfDisposed(),bt.selu(this)},t.prototype.leakyRelu=function(t){return void 0===t&&(t=.2),this.throwIfDisposed(),bt.leakyRelu(this,t)},t.prototype.prelu=function(t){return this.throwIfDisposed(),bt.prelu(this,t)},t.prototype.sigmoid=function(){return this.throwIfDisposed(),bt.sigmoid(this)},t.prototype.logSigmoid=function(){return this.throwIfDisposed(),bt.logSigmoid(this)},t.prototype.softplus=function(){return this.throwIfDisposed(),bt.softplus(this)},t.prototype.zerosLike=function(){return this.throwIfDisposed(),bt.zerosLike(this)},t.prototype.onesLike=function(){return this.throwIfDisposed(),bt.onesLike(this)},t.prototype.sin=function(){return this.throwIfDisposed(),bt.sin(this)},t.prototype.cos=function(){return this.throwIfDisposed(),bt.cos(this)},t.prototype.tan=function(){return this.throwIfDisposed(),bt.tan(this)},t.prototype.asin=function(){return this.throwIfDisposed(),bt.asin(this)},t.prototype.acos=function(){return this.throwIfDisposed(),bt.acos(this)},t.prototype.atan=function(){return this.throwIfDisposed(),bt.atan(this)},t.prototype.sinh=function(){return this.throwIfDisposed(),bt.sinh(this)},t.prototype.cosh=function(){return this.throwIfDisposed(),bt.cosh(this)},t.prototype.tanh=function(){return this.throwIfDisposed(),bt.tanh(this)},t.prototype.asinh=function(){return this.throwIfDisposed(),bt.asinh(this)},t.prototype.acosh=function(){return this.throwIfDisposed(),bt.acosh(this)},t.prototype.atanh=function(){return this.throwIfDisposed(),bt.atanh(this)},t.prototype.erf=function(){return this.throwIfDisposed(),bt.erf(this)},t.prototype.round=function(){return this.throwIfDisposed(),bt.round(this)},t.prototype.step=function(t){return void 0===t&&(t=0),this.throwIfDisposed(),bt.step(this,t)},t.prototype.softmax=function(t){return void 0===t&&(t=-1),this.throwIfDisposed(),bt.softmax(this,t)},t.prototype.logSoftmax=function(t){return void 0===t&&(t=-1),this.throwIfDisposed(),bt.logSoftmax(this,t)},t.prototype.resizeBilinear=function(t,e){return void 0===e&&(e=!1),this.throwIfDisposed(),bt.image.resizeBilinear(this,t,e)},t.prototype.resizeNearestNeighbor=function(t,e){return void 0===e&&(e=!1),this.throwIfDisposed(),bt.image.resizeNearestNeighbor(this,t,e)},t.prototype.conv1d=function(t,e,n,r,o,i){return void 0===r&&(r="NWC"),void 0===o&&(o=1),this.throwIfDisposed(),bt.conv1d(this,t,e,n,r,o,i)},t.prototype.conv2d=function(t,e,n,r,o,i){return void 0===r&&(r="NHWC"),void 0===o&&(o=[1,1]),this.throwIfDisposed(),bt.conv2d(this,t,e,n,r,o,i)},t.prototype.conv2dTranspose=function(t,e,n,r,o){return this.throwIfDisposed(),bt.conv2dTranspose(this,t,e,n,r,o)},t.prototype.depthwiseConv2D=function(t,e,n,r,o,i){return void 0===r&&(r="NHWC"),void 0===o&&(o=[1,1]),this.throwIfDisposed(),bt.depthwiseConv2d(this,t,e,n,r,o,i)},t.prototype.separableConv2d=function(t,e,n,r,o,i){return void 0===o&&(o=[1,1]),void 0===i&&(i="NHWC"),this.throwIfDisposed(),bt.separableConv2d(this,t,e,n,r,o,i)},t.prototype.avgPool=function(t,e,n,r){return this.throwIfDisposed(),bt.avgPool(this,t,e,n,r)},t.prototype.maxPool=function(t,e,n,r){return this.throwIfDisposed(),bt.maxPool(this,t,e,n,r)},t.prototype.localResponseNormalization=function(t,e,n,r){return void 0===t&&(t=5),void 0===e&&(e=1),void 0===n&&(n=1),void 0===r&&(r=.5),bt.localResponseNormalization(this,t,e,n,r)},t.prototype.pool=function(t,e,n,r,o){return this.throwIfDisposed(),bt.pool(this,t,e,n,r,o)},t.prototype.variable=function(t,e,n){return void 0===t&&(t=!0),this.throwIfDisposed(),xt().makeVariable(this,t,e,n)},t.prototype.unsortedSegmentSum=function(t,e){return this.throwIfDisposed(),bt.unsortedSegmentSum(this,t,e)},t.prototype.batchToSpaceND=function(t,e){return this.throwIfDisposed(),bt.batchToSpaceND(this,t,e)},t.prototype.spaceToBatchND=function(t,e){return this.throwIfDisposed(),bt.spaceToBatchND(this,t,e)},t.prototype.topk=function(t,e){return void 0===t&&(t=1),void 0===e&&(e=!0),this.throwIfDisposed(),bt.topk(this,t,e)},t.prototype.stridedSlice=function(t,e,n,r,o,i,a,s){return void 0===r&&(r=0),void 0===o&&(o=0),void 0===i&&(i=0),void 0===a&&(a=0),void 0===s&&(s=0),this.throwIfDisposed(),bt.stridedSlice(this,t,e,n,r,o,i,a,s)},t.prototype.depthToSpace=function(t,e){return this.throwIfDisposed(),bt.depthToSpace(this,t,e)},t.prototype.fft=function(){return this.throwIfDisposed(),bt.spectral.fft(this)},t.prototype.ifft=function(){return this.throwIfDisposed(),bt.spectral.ifft(this)},t.prototype.rfft=function(){return this.throwIfDisposed(),bt.spectral.rfft(this)},t.prototype.irfft=function(){return this.throwIfDisposed(),bt.spectral.irfft(this)},t}();Object.defineProperty(Ct,Symbol.hasInstance,{value:function(t){return!!t&&null!=t.dataId&&null!=t.shape&&null!=t.dtype}});var Et,_t,It,kt,Rt,St=function(t){function e(e,n,r,o){var i=t.call(this,e.shape,e.dtype,e.dataId,o)||this;return i.trainable=n,i.name=r,i}return s(e,t),e.prototype.assign=function(t){if(t.dtype!==this.dtype)throw new Error("dtype of the new value ("+t.dtype+") and previous value ("+this.dtype+") must match");if(!N(t.shape,this.shape))throw new Error("shape of the new value ("+t.shape+") and previous value ("+this.shape+") must match");xt().disposeTensor(this),this.dataId=t.dataId,xt().incRef(this,null)},e.prototype.dispose=function(){xt().disposeVariable(this),this.isDisposedInternal=!0},e}(Ct);Object.defineProperty(St,Symbol.hasInstance,{value:function(t){return t instanceof Ct&&null!=t.assign&&t.assign instanceof Function}}),function(t){t.R0="R0",t.R1="R1",t.R2="R2",t.R3="R3",t.R4="R4",t.R5="R5",t.R6="R6"}(Et||(Et={})),function(t){t.float32="float32",t.int32="int32",t.bool="int32",t.complex64="complex64"}(_t||(_t={})),function(t){t.float32="float32",t.int32="int32",t.bool="bool",t.complex64="complex64"}(It||(It={})),function(t){t.float32="float32",t.int32="float32",t.bool="float32",t.complex64="complex64"}(kt||(kt={})),function(t){t.float32="complex64",t.int32="complex64",t.bool="complex64",t.complex64="complex64"}(Rt||(Rt={}));var Dt={float32:kt,int32:_t,bool:It,complex64:Rt};function At(t,e){if("string"===t||"string"===e){if("string"===t&&"string"===e)return"string";throw new Error("Can not upcast "+t+" with "+e)}return Dt[t][e]}function Tt(t){return At(t,"int32")}function Nt(t,e){if(t.dtype===e.dtype)return[t,e];var n=At(t.dtype,e.dtype);return[t.cast(n),e.cast(n)]}function Ft(t,e){R(t.dtype===e.dtype,(function(){return"The dtypes of the first("+t.dtype+") and second("+e.dtype+") input must match"}))}function Mt(t){var e=[];return function t(e,n,r){if(null!=e)if(e instanceof Ct)n.push(e);else if(o=e,Array.isArray(o)||"object"==typeof o){var o,i=e;for(var a in i){var s=i[a];r.has(s)||(r.add(s),t(s,n,r))}}}(t,e,new Set),e}var Ot,Pt=Object.freeze({makeTypesMatch:Nt,assertTypesMatch:Ft,isTensorInList:function(t,e){return e.some((function(e){return e.id===t.id}))},getTensorsInContainer:Mt}),Bt=function(){function t(){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}}return t.prototype.dispose=function(){for(var t in this.registeredVariables)this.registeredVariables[t].dispose()},t}(),Lt=function(){function t(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Bt}return t.prototype.ready=function(){return u(this,void 0,void 0,(function(){var t,e,n;return c(this,(function(r){switch(r.label){case 0:if(null!=this.pendingBackendInit)return[2,this.pendingBackendInit.then((function(){}))];if(null!=this.backendInstance)return[2];t=this.getSortedBackends(),e=0,r.label=1;case 1:return e<t.length?(n=t[e],[4,this.initializeBackend(n).success]):[3,5];case 2:return r.sent()?[4,this.setBackend(n)]:[3,4];case 3:return r.sent(),[2];case 4:return e++,[3,1];case 5:throw new Error("Could not initialize any backends, all backend initializations failed.")}}))}))},Object.defineProperty(t.prototype,"backend",{get:function(){if(null!=this.pendingBackendInit)throw new 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){var t=this.initializeBackendsAndReturnBest(),e=t.name;if(t.asyncInit)throw new 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},enumerable:!0,configurable:!0}),t.prototype.backendNames=function(){return Object.keys(this.registryFactory)},t.prototype.findBackend=function(t){if(!(t in this.registry)){if(!(t in this.registryFactory))return null;if(this.initializeBackend(t).asyncInit)return null}return this.registry[t]},t.prototype.findBackendFactory=function(t){return t in this.registryFactory?this.registryFactory[t].factory:null},t.prototype.registerBackend=function(t,e,n){return void 0===n&&(n=1),t in this.registryFactory?(console.warn(t+" backend was already registered. Reusing existing backend factory."),!1):(this.registryFactory[t]={factory:e,priority:n},!0)},t.prototype.setBackend=function(t){return u(this,void 0,void 0,(function(){var e,n,r;return c(this,(function(o){switch(o.label){case 0:if(null==this.registryFactory[t])throw new Error("Backend name '"+t+"' not found in registry");return this.backendName=t,null!=this.registry[t]?[3,4]:(this.backendInstance=null,e=this.initializeBackend(t),n=e.success,e.asyncInit?[4,n]:[3,2]);case 1:return r=o.sent(),[3,3];case 2:r=n,o.label=3;case 3:if(!r)return[2,!1];o.label=4;case 4:return this.backendInstance=this.registry[t],this.setupRegisteredKernels(),this.profiler=new pt(this.backendInstance),[2,!0]}}))}))},t.prototype.setupRegisteredKernels=function(){var t=this;g(this.backendName).forEach((function(e){null!=e.setupFunc&&e.setupFunc(t.backendInstance)}))},t.prototype.disposeRegisteredKernels=function(t){var e=this;g(t).forEach((function(n){null!=n.disposeFunc&&n.disposeFunc(e.registry[t])}))},t.prototype.initializeBackend=function(t){var e=this,n=this.registryFactory[t];if(null==n)throw new Error("Cannot initialize backend "+t+", no registration found.");try{var r=n.factory();if(Promise.resolve(r)===r){var o=++this.pendingBackendInitId,i=r.then((function(n){return!(o<e.pendingBackendInitId||(e.registry[t]=n,e.pendingBackendInit=null,0))})).catch((function(n){return!(o<e.pendingBackendInitId||(e.pendingBackendInit=null,console.warn("Initialization of backend "+t+" failed"),console.warn(n.stack||n.message),1))}));return this.pendingBackendInit=i,{success:i,asyncInit:!0}}return this.registry[t]=r,{success:!0,asyncInit:!1}}catch(e){return console.warn("Initialization of backend "+t+" failed"),console.warn(e.stack||e.message),{success:!1,asyncInit:!1}}},t.prototype.removeBackend=function(t){if(!(t in this.registryFactory))throw new Error(t+" backend not found in registry");this.backendName===t&&null!=this.pendingBackendInit&&this.pendingBackendInitId++,t in this.registry&&(this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t]),delete this.registryFactory[t],this.backendName===t&&(this.pendingBackendInit=null,this.backendName=null,this.backendInstance=null)},t.prototype.getSortedBackends=function(){var t=this;if(0===Object.keys(this.registryFactory).length)throw new Error("No backend found in registry.");return Object.keys(this.registryFactory).sort((function(e,n){return t.registryFactory[n].priority-t.registryFactory[e].priority}))},t.prototype.initializeBackendsAndReturnBest=function(){for(var t=this.getSortedBackends(),e=0;e<t.length;e++){var n=t[e],r=this.initializeBackend(n),o=r.success,i=r.asyncInit;if(i||o)return{name:n,asyncInit:i}}throw new Error("Could not initialize any backends, all backend initializations failed.")},t.prototype.moveData=function(t,e){var n=this.state.tensorInfo.get(e),r=n.backend,o=this.readSync(e);r.disposeData(e),n.backend=t,t.move(e,o,n.shape,n.dtype),this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack[this.state.numDataMovesStack.length-1]++},t.prototype.tidy=function(t,e){var n,r=this,o=null;if(null==e){if("function"!=typeof t)throw new Error("Please provide a function to tidy()");e=t}else{if("string"!=typeof t&&!(t instanceof String))throw new Error("When calling with two arguments, the first argument to tidy() must be a string");if("function"!=typeof e)throw new Error("When calling with two arguments, the 2nd argument to tidy() must be a function");o=t}return this.scopedRun((function(){return r.startScope(o)}),(function(){return r.endScope(n)}),(function(){return(n=e())instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),n}))},t.prototype.scopedRun=function(t,e,n){t();try{var r=n();return e(),r}catch(t){throw e(),t}},t.prototype.nextTensorId=function(){return t.nextTensorId++},t.prototype.nextVariableId=function(){return t.nextVariableId++},t.prototype.clone=function(t){var e=this.makeTensorFromDataId(t.dataId,t.shape,t.dtype),n={x:t};return th