@getyoti/react-face-capture 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ /*! For license information please see index.js.LICENSE.txt */
2
+ (()=>{var e={514:(e,t,n)=>{e.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=68)}([function(e,t,n){"use strict";(function(e,r,o,a){n.d(t,"a",(function(){return he})),n.d(t,"b",(function(){return xe})),n.d(t,"c",(function(){return Mu})),n.d(t,"d",(function(){return Hs})),n.d(t,"e",(function(){return _u})),n.d(t,"f",(function(){return Ef})),n.d(t,"g",(function(){return Vi})),n.d(t,"h",(function(){return gn})),n.d(t,"i",(function(){return Cs})),n.d(t,"j",(function(){return Rs})),n.d(t,"k",(function(){return Wu})),n.d(t,"l",(function(){return Ki})),n.d(t,"m",(function(){return jn})),n.d(t,"n",(function(){return pn})),n.d(t,"o",(function(){return sl})),n.d(t,"p",(function(){return bf})),n.d(t,"q",(function(){return Ns})),n.d(t,"r",(function(){return ac})),n.d(t,"s",(function(){return Vs})),n.d(t,"t",(function(){return $u})),n.d(t,"u",(function(){return Zi})),n.d(t,"v",(function(){return qn})),n.d(t,"w",(function(){return hc})),n.d(t,"x",(function(){return tr})),n.d(t,"y",(function(){return an})),n.d(t,"z",(function(){return Os})),n.d(t,"A",(function(){return ru})),n.d(t,"B",(function(){return Xs})),n.d(t,"C",(function(){return Qs})),n.d(t,"D",(function(){return kr})),n.d(t,"E",(function(){return or})),n.d(t,"F",(function(){return ts})),n.d(t,"G",(function(){return rn})),n.d(t,"H",(function(){return un})),n.d(t,"I",(function(){return sn})),n.d(t,"J",(function(){return cn})),n.d(t,"K",(function(){return ln})),n.d(t,"L",(function(){return Ft})),n.d(t,"M",(function(){return ar})),n.d(t,"N",(function(){return gc})),n.d(t,"O",(function(){return ur})),n.d(t,"P",(function(){return dn}));var i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function u(e,t){function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function s(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{s(r.next(e))}catch(e){a(e)}}function u(e){try{s(r.throw(e))}catch(e){a(e)}}function s(e){e.done?o(e.value):new n((function(t){t(e.value)})).then(i,u)}s((r=r.apply(e,t||[])).next())}))}function c(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(a){return function(u){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,u])}}}var l=function(){function e(e){this.global=e,this.flags={},this.flagRegistry={},this.urlFlags={},this.populateURLFlags()}return e.prototype.setPlatform=function(e,t){this.platform,this.platformName=e,this.platform=t},e.prototype.registerFlag=function(e,t,n){if(this.flagRegistry[e]={evaluationFn:t,setHook:n},null!=this.urlFlags[e]){var r=this.urlFlags[e];this.set(e,r)}},e.prototype.get=function(e){return e in this.flags||(this.flags[e]=this.evaluateFlag(e)),this.flags[e]},e.prototype.getNumber=function(e){return this.get(e)},e.prototype.getBool=function(e){return this.get(e)},e.prototype.getFlags=function(){return this.flags},Object.defineProperty(e.prototype,"features",{get:function(){return this.flags},enumerable:!0,configurable:!0}),e.prototype.set=function(e,t){if(null==this.flagRegistry[e])throw new 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)},e.prototype.evaluateFlag=function(e){if(null==this.flagRegistry[e])throw new Error("Cannot evaluate flag '"+e+"': no evaluation function found.");return this.flagRegistry[e].evaluationFn()},e.prototype.setFlags=function(e){this.flags=Object.assign({},e)},e.prototype.reset=function(){this.flags={},this.urlFlags={},this.populateURLFlags()},e.prototype.populateURLFlags=function(){var e=this;if(void 0!==this.global&&void 0!==this.global.location&&void 0!==this.global.location.search){var t,n,r=(t=this.global.location.search,n={},t.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return function(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}(n,t[0],t[1]),t.join("=")})),n);"tfjsflags"in r&&r.tfjsflags.split(",").forEach((function(t){var n=t.split(":"),r=n[0],o=n[1];e.urlFlags[r]=function(e,t){if("true"===(t=t.toLowerCase())||"false"===t)return"true"===t;if(""+ +t===t)return+t;throw new Error("Could not parse value flag value "+t+" for flag "+e+".")}(r,o)}))}},e}();function f(){return d}var d=null,p=new Map;function h(e,t){var n=g(e,t);return p.get(n)}function v(e){for(var t=p.entries(),n=[];;){var r=t.next(),o=r.done,a=r.value;if(o)break;var i=a[0],u=a[1];i.split("_")[0]===e&&n.push(u)}return n}function m(e){var t=e.kernelName,n=e.backendName,r=g(t,n);if(p.has(r))throw new Error("The kernel '"+t+"' for backend '"+n+"' is already registered");p.set(r,e)}function g(e,t){return t+"_"+e}function y(e){for(var t=e.length,n=0,r=0;t>0;)r=Math.random()*t|0,n=e[--t],e[t]=e[r],e[r]=n}function b(e,t,n){return Math.max(e,Math.min(t,n))}function x(e){return e%2==0?e:e+1}function w(e){for(var t=0,n=0;n<e.length;n++)t+=e[n];return t}function E(e,t){if(!e)throw new Error("string"==typeof t?t:t())}function C(e,t,n){void 0===n&&(n=""),E(R(e,t),(function(){return n+" Shapes "+e+" and "+t+" must match"}))}function k(e){E(null!=e,(function(){return"The input to the tensor constructor must be a non-null value."}))}function _(e,t,n){if(void 0===t&&(t=[]),void 0===n&&(n=!1),null==t&&(t=[]),Array.isArray(e)||z(e)&&!n)for(var r=0;r<e.length;++r)_(e[r],t,n);else t.push(e);return t}function S(e){if(0===e.length)return 1;for(var t=e[0],n=1;n<e.length;n++)t*=e[n];return t}function R(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function T(e){return e%1==0}function I(e){if(null!=Math.tanh)return Math.tanh(e);if(e===1/0)return 1;if(e===-1/0)return-1;var t=Math.exp(2*e);return(t-1)/(t+1)}function O(e){var t=Math.ceil(Math.sqrt(e));return[t,Math.ceil(e/t)]}function A(e,t){return t<=e.length?e:e+" ".repeat(t-e.length)}function D(e,t,n){return void 0===t&&(t=function(e){return 0}),new Promise((function(r,o){var a=0,i=function(){if(e())r();else{var u=t(++a);null!=n&&a>=n?o():setTimeout(i,u)}};i()}))}function N(e,t){for(var n=1,r=-1,o=0;o<e.length;++o)if(e[o]>=0)n*=e[o];else if(-1===e[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(e[o]<0)throw Error("Shapes can not be < 0. Found "+e[o]+" at dim "+o);if(-1===r){if(t>0&&t!==n)throw Error("Size("+t+") must match the product of shape "+e);return e}if(0===n)throw Error("Cannot infer the missing size in ["+e+"] when there are 0 elements");if(t%n!=0)throw Error("The implicit shape can't be a fractional number. Got "+t+" / "+n);var a=e.slice();return a[r]=t/n,a}function P(e,t){var n=t.length;return E((e=null==e?t.map((function(e,t){return t})):[].concat(e)).every((function(e){return e>=-n&&e<n})),(function(){return"All values in axis param must be in range [-"+n+", "+n+") but got axis "+e})),E(e.every((function(e){return T(e)})),(function(){return"All values in axis param must be integers but got axis "+e})),e.map((function(e){return e<0?n+e:e}))}function M(e,t){for(var n=[],r=[],o=null!=t&&Array.isArray(t)&&0===t.length,a=null==t||o?null:P(t,e).sort(),i=0,u=0;u<e.length;++u){if(null!=a){if(a[i]===u&&1!==e[u])throw new Error("Can't squeeze axis "+u+" since its dim '"+e[u]+"' is not 1");(null==a[i]||a[i]>u)&&1===e[u]&&(n.push(e[u]),r.push(u)),a[i]<=u&&i++}1!==e[u]&&(n.push(e[u]),r.push(u))}return{newShape:n,keptDims:r}}function F(e,t){var n=null;if(null==e||"float32"===e)n=new Float32Array(t);else if("int32"===e)n=new Int32Array(t);else{if("bool"!==e)throw new Error("Unknown data type "+e);n=new Uint8Array(t)}return n}function B(e,t){var n=null;if(null==e||"float32"===e)n=new Float32Array(t);else if("int32"===e)n=new Int32Array(t);else if("bool"===e)n=new Uint8Array(t);else{if("string"!==e)throw new Error("Unknown data type "+e);n=new Array(t)}return n}function L(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(isNaN(r)||!isFinite(r))throw Error("A tensor of type "+t+" being uploaded contains "+r+".")}}function W(e){return"bool"===e||"complex64"===e||"float32"===e||"int32"===e||"string"===e}function U(e,t){return!("complex64"===t||"float32"===t&&"complex64"!==e||"int32"===t&&"float32"!==e&&"complex64"!==e||"bool"===t&&"bool"===e)}function z(e){return e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array}function j(e){if("float32"===e||"int32"===e)return 4;if("complex64"===e)return 8;if("bool"===e)return 1;throw new Error("Unknown dtype "+e)}function V(e){if(null==e)return 0;var t=0;return e.forEach((function(e){return t+=e.length})),t}function H(e){return"string"==typeof e||e instanceof String}function G(e){return"boolean"==typeof e}function q(e){return"number"==typeof e}function K(e){return Array.isArray(e)?K(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":q(e)?"float32":H(e)?"string":G(e)?"bool":"float32"}function X(e){return!!(e&&e.constructor&&e.call&&e.apply)}function $(e,t){for(var n=t;n<e;++n)if(e%n==0)return n;return e}function Y(e){var t=e.length;if(t<2)return[];var n=new Array(t-1);n[t-2]=e[t-1];for(var r=t-3;r>=0;--r)n[r]=n[r+1]*e[r+1];return n}function Q(e,t,n){if("string"===t)throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=_(e)),n&&L(e,t),function(e,t){return e instanceof Float32Array&&"float32"===t||e instanceof Int32Array&&"int32"===t||e instanceof Uint8Array&&"bool"===t}(e,t))return e;if(null==t||"float32"===t||"complex64"===t)return new Float32Array(e);if("int32"===t)return new Int32Array(e);if("bool"===t){for(var r=new Uint8Array(e.length),o=0;o<r.length;++o)0!==Math.round(e[o])&&(r[o]=1);return r}throw new Error("Unknown data type "+t)}function J(e,t){if(0===e.length)return t[0];var n=e.reduce((function(e,t){return e*t}));if(0===n)return[];if(n!==t.length)throw new Error("["+e+"] does not match the input size.");return function e(t,n,r){var o=new Array;if(1===n.length)for(var a=n[0],i=0;i<a;i++)o[i]=r[t+i];else{a=n[0];var u=n.slice(1),s=u.reduce((function(e,t){return e*t}));for(i=0;i<a;i++)o[i]=e(t+i*s,u,r)}return o}(0,e,t)}function Z(e,t){for(var n=ee(e,t),r=0;r<n.length;r++)n[r]=1;return n}function ee(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 new Error("Unknown data type "+t)}function te(){return f().platform.now()}function ne(e){e.forEach((function(t){E(Number.isInteger(t)&&t>=0,(function(){return"Tensor must have a shape comprised of positive integers but got shape ["+e+"]."}))}))}function re(e,t){return void 0===t&&(t="utf-8"),t=t||"utf-8",f().platform.encode(e,t)}function oe(e,t){return void 0===t&&(t="utf-8"),t=t||"utf-8",f().platform.decode(e,t)}Object.freeze({shuffle:y,clamp:b,nearestLargerEven:x,sum:w,randUniform:function(e,t){var n=Math.random();return t*n+(1-n)*e},distSquared:function(e,t){for(var n=0,r=0;r<e.length;r++){var o=Number(e[r])-Number(t[r]);n+=o*o}return n},assert:E,assertShapesMatch:C,assertNonNull:k,flatten:_,sizeFromShape:S,isScalarShape:function(e){return 0===e.length},arraysEqual:R,isInt:T,tanh:I,sizeToSquarishShape:O,createShuffledIndices:function(e){for(var t=new Uint32Array(e),n=0;n<e;++n)t[n]=n;return y(t),t},rightPad:A,repeatedTry:D,inferFromImplicitShape:N,parseAxisParam:P,squeezeShape:M,getTypedArrayFromDType:F,getArrayFromDType:B,checkConversionForErrors:L,isValidDtype:W,hasEncodingLoss:U,isTypedArray:z,bytesPerElement:j,bytesFromStringArray:V,isString:H,isBoolean:G,isNumber:q,inferDtype:K,isFunction:X,nearestDivisor:$,computeStrides:Y,toTypedArray:Q,toNestedArray:J,makeOnesTypedArray:Z,makeZerosTypedArray:ee,now:te,assertNonNegativeIntegerDimensions:ne,fetch:function(e,t){return f().platform.fetch(e,t)},encodeString:re,decodeString:oe});var ae=function(){function e(e,t){this.backendTimer=e,this.logger=t,null==t&&(this.logger=new ie)}return e.prototype.profileKernel=function(e,t,n){var r,o=this,a=this.backendTimer.time((function(){r=n()}));return r.forEach((function(n){n.data().then((function(r){!function(e,t,n){if("float32"!==t)return!1;for(var r=0;r<e.length;r++){var o=e[r];if(isNaN(o)||!isFinite(o))return!0}}(r,n.dtype),a.then((function(a){var i="";null!=a.getExtraProfileInfo&&(i=a.getExtraProfileInfo()),o.logger.logKernelProfile(e,n,r,a.kernelMs,t,i)}))}))})),r},e}(),ie=function(){function e(){}return e.prototype.logKernelProfile=function(e,t,n,r,o,a){for(var i in A(r+"ms",9),A(e,25),t.rank,t.size,A(t.shape.toString(),14),o){var u=o[i].shape;u.length}},e}();function ue(e,t,n){return A(Array.isArray(e)?parseFloat(e[0].toFixed(7))+" + "+parseFloat(e[1].toFixed(7))+"j":H(e)?"'"+e+"'":"bool"===n?se(e):parseFloat(e.toFixed(7)).toString(),t)}function se(e){return 0===e?"false":"true"}function ce(e){for(var t=[],n=0;n<e.length;n+=2)t.push([e[n],e[n+1]]);return t}var le=function(){function e(e,t,n){var r=this;if(this.dtype=t,this.shape=e.slice(),this.size=S(e),null!=n){var o=n.length;E(o===this.size,(function(){return"Length of values '"+o+"' does not match the size inferred by the shape '"+r.size+"'."}))}if("complex64"===t)throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||B(t,this.size),this.strides=Y(e)}return e.prototype.set=function(e){for(var t=this,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];0===n.length&&(n=[0]),E(n.length===this.rank,(function(){return"The number of provided coordinates ("+n.length+") must match the rank ("+t.rank+")"}));var o=this.locToIndex(n);this.values[o]=e},e.prototype.get=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];0===e.length&&(e=[0]);for(var n=0,r=0,o=e;r<o.length;r++){var a=o[r];if(a<0||a>=this.shape[n]){var i="Requested out of range element at "+e+". Buffer shape="+this.shape;throw new Error(i)}n++}for(var u=e[e.length-1],s=0;s<e.length-1;++s)u+=this.strides[s]*e[s];return this.values[u]},e.prototype.locToIndex=function(e){if(0===this.rank)return 0;if(1===this.rank)return e[0];for(var t=e[e.length-1],n=0;n<e.length-1;++n)t+=this.strides[n]*e[n];return t},e.prototype.indexToLoc=function(e){if(0===this.rank)return[];if(1===this.rank)return[e];for(var t=new Array(this.shape.length),n=0;n<t.length-1;++n)t[n]=Math.floor(e/this.strides[n]),e-=t[n]*this.strides[n];return t[t.length-1]=e,t},Object.defineProperty(e.prototype,"rank",{get:function(){return this.shape.length},enumerable:!0,configurable:!0}),e.prototype.toTensor=function(){return fe().makeTensor(this.values,this.shape,this.dtype)},e}(),fe=null,de=null,pe=null,he=function(){function e(e,t,n,r){this.kept=!1,this.isDisposedInternal=!1,this.shape=e.slice(),this.dtype=t||"float32",this.size=S(e),this.strides=Y(e),this.dataId=n,this.id=r,this.rankType=this.rank<5?this.rank.toString():"higher"}return e.prototype.flatten=function(){return this.throwIfDisposed(),this.as1D()},e.prototype.asScalar=function(){return this.throwIfDisposed(),E(1===this.size,(function(){return"The array must have only 1 element."})),this.reshape([])},e.prototype.as1D=function(){return this.throwIfDisposed(),this.reshape([this.size])},e.prototype.as2D=function(e,t){return this.throwIfDisposed(),this.reshape([e,t])},e.prototype.as3D=function(e,t,n){return this.throwIfDisposed(),this.reshape([e,t,n])},e.prototype.as4D=function(e,t,n,r){return this.throwIfDisposed(),this.reshape([e,t,n,r])},e.prototype.as5D=function(e,t,n,r,o){return this.throwIfDisposed(),this.reshape([e,t,n,r,o])},e.prototype.asType=function(e){return this.throwIfDisposed(),de.cast(this,e)},Object.defineProperty(e.prototype,"rank",{get:function(){return this.shape.length},enumerable:!0,configurable:!0}),e.prototype.buffer=function(){return s(this,void 0,void 0,(function(){var e;return c(this,(function(t){switch(t.label){case 0:return[4,this.data()];case 1:return e=t.sent(),[2,de.buffer(this.shape,this.dtype,e)]}}))}))},e.prototype.bufferSync=function(){return de.buffer(this.shape,this.dtype,this.dataSync())},e.prototype.array=function(){return s(this,void 0,void 0,(function(){var e;return c(this,(function(t){switch(t.label){case 0:return[4,this.data()];case 1:return e=t.sent(),[2,J(this.shape,e)]}}))}))},e.prototype.arraySync=function(){return J(this.shape,this.dataSync())},e.prototype.data=function(){return s(this,void 0,void 0,(function(){var e,t;return c(this,(function(n){switch(n.label){case 0:return this.throwIfDisposed(),e=fe().read(this.dataId),"string"!==this.dtype?[3,2]:[4,e];case 1:t=n.sent();try{return[2,t.map((function(e){return oe(e)}))]}catch(e){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,e]}}))}))},e.prototype.dataSync=function(){this.throwIfDisposed();var e=fe().readSync(this.dataId);if("string"===this.dtype)try{return e.map((function(e){return oe(e)}))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e},e.prototype.bytes=function(){return s(this,void 0,void 0,(function(){var e;return c(this,(function(t){switch(t.label){case 0:return this.throwIfDisposed(),[4,fe().read(this.dataId)];case 1:return e=t.sent(),"string"===this.dtype?[2,e]:[2,new Uint8Array(e.buffer)]}}))}))},e.prototype.dispose=function(){this.isDisposed||(fe().disposeTensor(this),this.isDisposedInternal=!0)},Object.defineProperty(e.prototype,"isDisposed",{get:function(){return this.isDisposedInternal},enumerable:!0,configurable:!0}),e.prototype.throwIfDisposed=function(){if(this.isDisposed)throw new Error("Tensor is disposed.")},e.prototype.toFloat=function(){return this.asType("float32")},e.prototype.toInt=function(){return this.asType("int32")},e.prototype.toBool=function(){return this.asType("bool")},e.prototype.print=function(e){return void 0===e&&(e=!1),de.print(this,e)},e.prototype.reshape=function(e){return this.throwIfDisposed(),de.reshape(this,e)},e.prototype.reshapeAs=function(e){return this.throwIfDisposed(),this.reshape(e.shape)},e.prototype.expandDims=function(e){return void 0===e&&(e=0),de.expandDims(this,e)},e.prototype.cumsum=function(e,t,n){return void 0===e&&(e=0),void 0===t&&(t=!1),void 0===n&&(n=!1),de.cumsum(this,e,t,n)},e.prototype.squeeze=function(e){return this.throwIfDisposed(),de.squeeze(this,e)},e.prototype.clone=function(){return this.throwIfDisposed(),de.clone(this)},e.prototype.oneHot=function(e,t,n){return this.throwIfDisposed(),de.oneHot(this,e,t,n)},e.prototype.toString=function(e){return void 0===e&&(e=!1),function(e,t,n,r){var o=Y(t),a=function(e,t,n,r){var o=S(t),a=r[r.length-1],i=new Array(a).fill(0),u=t.length,s="complex64"===n?ce(e):e;if(u>1)for(var c=0;c<o/a;c++)for(var l=c*a,f=0;f<a;f++)i[f]=Math.max(i[f],ue(s[l+f],0,n).length);return i}(e,t,n,o),i=t.length,u=function e(t,n,r,o,a,i){void 0===i&&(i=!0);var u="complex64"===r?2:1,s=n[0],c=n.length;if(0===c)return"complex64"===r?[ue(ce(t)[0],0,r)]:"bool"===r?[se(t[0])]:[t[0].toString()];if(1===c){if(s>20){var l=3*u,f=Array.from(t.slice(0,l)),d=Array.from(t.slice((s-3)*u,s*u));return"complex64"===r&&(f=ce(f),d=ce(d)),["["+f.map((function(e,t){return ue(e,a[t],r)})).join(", ")+", ..., "+d.map((function(e,t){return ue(e,a[s-3+t],r)})).join(", ")+"]"]}return["["+("complex64"===r?ce(t):Array.from(t)).map((function(e,t){return ue(e,a[t],r)})).join(", ")+"]"]}var p=n.slice(1),h=o.slice(1),v=o[0]*u,m=[];if(s>20){for(var g=0;g<3;g++){var y=(b=g*v)+v;m.push.apply(m,e(t.slice(b,y),p,r,h,a,!1))}for(m.push("..."),g=s-3;g<s;g++)y=(b=g*v)+v,m.push.apply(m,e(t.slice(b,y),p,r,h,a,g===s-1))}else for(g=0;g<s;g++){var b;y=(b=g*v)+v,m.push.apply(m,e(t.slice(b,y),p,r,h,a,g===s-1))}var x=2===c?",":"";for(m[0]="["+m[0]+x,g=1;g<m.length-1;g++)m[g]=" "+m[g]+x;var w=",\n";for(g=2;g<c;g++)w+="\n";return m[m.length-1]=" "+m[m.length-1]+"]"+(i?"":w),m}(e,t,n,o,a),s=["Tensor"];return r&&(s.push(" dtype: "+n),s.push(" rank: "+i),s.push(" shape: ["+t+"]"),s.push(" values:")),s.push(u.map((function(e){return" "+e})).join("\n")),s.join("\n")}(this.dataSync(),this.shape,this.dtype,e)},e.prototype.tile=function(e){return this.throwIfDisposed(),de.tile(this,e)},e.prototype.gather=function(e,t){return void 0===t&&(t=0),this.throwIfDisposed(),de.gather(this,e,t)},e.prototype.matMul=function(e,t,n){return void 0===t&&(t=!1),void 0===n&&(n=!1),this.throwIfDisposed(),de.matMul(this,e,t,n)},e.prototype.dot=function(e){return this.throwIfDisposed(),de.dot(this,e)},e.prototype.norm=function(e,t,n){return void 0===e&&(e="euclidean"),void 0===t&&(t=null),void 0===n&&(n=!1),this.throwIfDisposed(),de.norm(this,e,t,n)},e.prototype.slice=function(e,t){return this.throwIfDisposed(),de.slice(this,e,t)},e.prototype.reverse=function(e){return this.throwIfDisposed(),de.reverse(this,e)},e.prototype.concat=function(t,n){return void 0===n&&(n=0),this.throwIfDisposed(),t instanceof e&&(t=[t]),de.concat([this].concat(t),n)},e.prototype.split=function(e,t){return void 0===t&&(t=0),this.throwIfDisposed(),de.split(this,e,t)},e.prototype.stack=function(e,t){return void 0===t&&(t=0),de.stack([this,e],t)},e.prototype.unstack=function(e){return void 0===e&&(e=0),de.unstack(this,e)},e.prototype.pad=function(e,t){return void 0===t&&(t=0),de.pad(this,e,t)},e.prototype.batchNormalization=function(e,t,n,r,o){return void 0===n&&(n=.001),pe("tf.batchNormalization() is going away. Use tf.batchNorm() instead, and note the positional argument change of scale, offset, and varianceEpsilon"),this.batchNorm(e,t,o,r,n)},e.prototype.batchNorm=function(e,t,n,r,o){return void 0===o&&(o=.001),this.throwIfDisposed(),de.batchNorm(this,e,t,n,r,o)},e.prototype.all=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),this.throwIfDisposed(),de.all(this,e,t)},e.prototype.any=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),this.throwIfDisposed(),de.any(this,e,t)},e.prototype.logSumExp=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),this.throwIfDisposed(),de.logSumExp(this,e,t)},e.prototype.sum=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),this.throwIfDisposed(),de.sum(this,e,t)},e.prototype.prod=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),this.throwIfDisposed(),de.prod(this,e,t)},e.prototype.mean=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),this.throwIfDisposed(),de.mean(this,e,t)},e.prototype.min=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),this.throwIfDisposed(),de.min(this,e,t)},e.prototype.max=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!1),this.throwIfDisposed(),de.max(this,e,t)},e.prototype.argMin=function(e){return void 0===e&&(e=null),this.throwIfDisposed(),de.argMin(this,e)},e.prototype.argMax=function(e){return void 0===e&&(e=null),this.throwIfDisposed(),de.argMax(this,e)},e.prototype.cast=function(e){return this.throwIfDisposed(),de.cast(this,e)},e.prototype.add=function(e){return this.throwIfDisposed(),de.add(this,e)},e.prototype.addStrict=function(e){return this.throwIfDisposed(),de.addStrict(this,e)},e.prototype.atan2=function(e){return this.throwIfDisposed(),de.atan2(this,e)},e.prototype.sub=function(e){return this.throwIfDisposed(),de.sub(this,e)},e.prototype.subStrict=function(e){return this.throwIfDisposed(),de.subStrict(this,e)},e.prototype.pow=function(e){return this.throwIfDisposed(),de.pow(this,e)},e.prototype.powStrict=function(e){return this.throwIfDisposed(),de.powStrict(this,e)},e.prototype.mul=function(e){return this.throwIfDisposed(),de.mul(this,e)},e.prototype.mulStrict=function(e){return this.throwIfDisposed(),de.mulStrict(this,e)},e.prototype.div=function(e){return this.throwIfDisposed(),de.div(this,e)},e.prototype.divNoNan=function(e){return this.throwIfDisposed(),de.divNoNan(this,e)},e.prototype.floorDiv=function(e){return this.throwIfDisposed(),de.floorDiv(this,e)},e.prototype.divStrict=function(e){return this.throwIfDisposed(),de.divStrict(this,e)},e.prototype.minimum=function(e){return this.throwIfDisposed(),de.minimum(this,e)},e.prototype.minimumStrict=function(e){return this.throwIfDisposed(),de.minimumStrict(this,e)},e.prototype.maximum=function(e){return this.throwIfDisposed(),de.maximum(this,e)},e.prototype.maximumStrict=function(e){return this.throwIfDisposed(),de.maximumStrict(this,e)},e.prototype.mod=function(e){return this.throwIfDisposed(),de.mod(this,e)},e.prototype.modStrict=function(e){return this.throwIfDisposed(),de.modStrict(this,e)},e.prototype.squaredDifference=function(e){return this.throwIfDisposed(),de.squaredDifference(this,e)},e.prototype.squaredDifferenceStrict=function(e){return this.throwIfDisposed(),de.squaredDifferenceStrict(this,e)},e.prototype.transpose=function(e){return this.throwIfDisposed(),de.transpose(this,e)},e.prototype.notEqual=function(e){return this.throwIfDisposed(),de.notEqual(this,e)},e.prototype.notEqualStrict=function(e){return this.throwIfDisposed(),de.notEqualStrict(this,e)},e.prototype.less=function(e){return this.throwIfDisposed(),de.less(this,e)},e.prototype.lessStrict=function(e){return this.throwIfDisposed(),de.lessStrict(this,e)},e.prototype.equal=function(e){return this.throwIfDisposed(),de.equal(this,e)},e.prototype.equalStrict=function(e){return this.throwIfDisposed(),de.equalStrict(this,e)},e.prototype.lessEqual=function(e){return this.throwIfDisposed(),de.lessEqual(this,e)},e.prototype.lessEqualStrict=function(e){return this.throwIfDisposed(),de.lessEqualStrict(this,e)},e.prototype.greater=function(e){return this.throwIfDisposed(),de.greater(this,e)},e.prototype.greaterStrict=function(e){return this.throwIfDisposed(),de.greaterStrict(this,e)},e.prototype.greaterEqual=function(e){return this.throwIfDisposed(),de.greaterEqual(this,e)},e.prototype.greaterEqualStrict=function(e){return this.throwIfDisposed(),de.greaterEqualStrict(this,e)},e.prototype.logicalAnd=function(e){return this.throwIfDisposed(),de.logicalAnd(this,e)},e.prototype.logicalOr=function(e){return this.throwIfDisposed(),de.logicalOr(this,e)},e.prototype.logicalNot=function(){return this.throwIfDisposed(),de.logicalNot(this)},e.prototype.logicalXor=function(e){return this.throwIfDisposed(),de.logicalXor(this,e)},e.prototype.where=function(e,t){return this.throwIfDisposed(),de.where(e,this,t)},e.prototype.neg=function(){return this.throwIfDisposed(),de.neg(this)},e.prototype.ceil=function(){return this.throwIfDisposed(),de.ceil(this)},e.prototype.floor=function(){return this.throwIfDisposed(),de.floor(this)},e.prototype.sign=function(){return this.throwIfDisposed(),de.sign(this)},e.prototype.isNaN=function(){return this.throwIfDisposed(),de.isNaN(this)},e.prototype.isInf=function(){return this.throwIfDisposed(),de.isInf(this)},e.prototype.isFinite=function(){return this.throwIfDisposed(),de.isFinite(this)},e.prototype.exp=function(){return this.throwIfDisposed(),de.exp(this)},e.prototype.expm1=function(){return this.throwIfDisposed(),de.expm1(this)},e.prototype.log=function(){return this.throwIfDisposed(),de.log(this)},e.prototype.log1p=function(){return this.throwIfDisposed(),de.log1p(this)},e.prototype.sqrt=function(){return this.throwIfDisposed(),de.sqrt(this)},e.prototype.rsqrt=function(){return this.throwIfDisposed(),de.rsqrt(this)},e.prototype.square=function(){return this.throwIfDisposed(),de.square(this)},e.prototype.reciprocal=function(){return this.throwIfDisposed(),de.reciprocal(this)},e.prototype.abs=function(){return this.throwIfDisposed(),de.abs(this)},e.prototype.clipByValue=function(e,t){return this.throwIfDisposed(),de.clipByValue(this,e,t)},e.prototype.relu=function(){return this.throwIfDisposed(),de.relu(this)},e.prototype.relu6=function(){return this.throwIfDisposed(),de.relu6(this)},e.prototype.elu=function(){return this.throwIfDisposed(),de.elu(this)},e.prototype.selu=function(){return this.throwIfDisposed(),de.selu(this)},e.prototype.leakyRelu=function(e){return void 0===e&&(e=.2),this.throwIfDisposed(),de.leakyRelu(this,e)},e.prototype.prelu=function(e){return this.throwIfDisposed(),de.prelu(this,e)},e.prototype.sigmoid=function(){return this.throwIfDisposed(),de.sigmoid(this)},e.prototype.logSigmoid=function(){return this.throwIfDisposed(),de.logSigmoid(this)},e.prototype.softplus=function(){return this.throwIfDisposed(),de.softplus(this)},e.prototype.zerosLike=function(){return this.throwIfDisposed(),de.zerosLike(this)},e.prototype.onesLike=function(){return this.throwIfDisposed(),de.onesLike(this)},e.prototype.sin=function(){return this.throwIfDisposed(),de.sin(this)},e.prototype.cos=function(){return this.throwIfDisposed(),de.cos(this)},e.prototype.tan=function(){return this.throwIfDisposed(),de.tan(this)},e.prototype.asin=function(){return this.throwIfDisposed(),de.asin(this)},e.prototype.acos=function(){return this.throwIfDisposed(),de.acos(this)},e.prototype.atan=function(){return this.throwIfDisposed(),de.atan(this)},e.prototype.sinh=function(){return this.throwIfDisposed(),de.sinh(this)},e.prototype.cosh=function(){return this.throwIfDisposed(),de.cosh(this)},e.prototype.tanh=function(){return this.throwIfDisposed(),de.tanh(this)},e.prototype.asinh=function(){return this.throwIfDisposed(),de.asinh(this)},e.prototype.acosh=function(){return this.throwIfDisposed(),de.acosh(this)},e.prototype.atanh=function(){return this.throwIfDisposed(),de.atanh(this)},e.prototype.erf=function(){return this.throwIfDisposed(),de.erf(this)},e.prototype.round=function(){return this.throwIfDisposed(),de.round(this)},e.prototype.step=function(e){return void 0===e&&(e=0),this.throwIfDisposed(),de.step(this,e)},e.prototype.softmax=function(e){return void 0===e&&(e=-1),this.throwIfDisposed(),de.softmax(this,e)},e.prototype.logSoftmax=function(e){return void 0===e&&(e=-1),this.throwIfDisposed(),de.logSoftmax(this,e)},e.prototype.resizeBilinear=function(e,t){return void 0===t&&(t=!1),this.throwIfDisposed(),de.image.resizeBilinear(this,e,t)},e.prototype.resizeNearestNeighbor=function(e,t){return void 0===t&&(t=!1),this.throwIfDisposed(),de.image.resizeNearestNeighbor(this,e,t)},e.prototype.conv1d=function(e,t,n,r,o,a){return void 0===r&&(r="NWC"),void 0===o&&(o=1),this.throwIfDisposed(),de.conv1d(this,e,t,n,r,o,a)},e.prototype.conv2d=function(e,t,n,r,o,a){return void 0===r&&(r="NHWC"),void 0===o&&(o=[1,1]),this.throwIfDisposed(),de.conv2d(this,e,t,n,r,o,a)},e.prototype.conv2dTranspose=function(e,t,n,r,o){return this.throwIfDisposed(),de.conv2dTranspose(this,e,t,n,r,o)},e.prototype.depthwiseConv2D=function(e,t,n,r,o,a){return void 0===r&&(r="NHWC"),void 0===o&&(o=[1,1]),this.throwIfDisposed(),de.depthwiseConv2d(this,e,t,n,r,o,a)},e.prototype.separableConv2d=function(e,t,n,r,o,a){return void 0===o&&(o=[1,1]),void 0===a&&(a="NHWC"),this.throwIfDisposed(),de.separableConv2d(this,e,t,n,r,o,a)},e.prototype.avgPool=function(e,t,n,r){return this.throwIfDisposed(),de.avgPool(this,e,t,n,r)},e.prototype.maxPool=function(e,t,n,r){return this.throwIfDisposed(),de.maxPool(this,e,t,n,r)},e.prototype.localResponseNormalization=function(e,t,n,r){return void 0===e&&(e=5),void 0===t&&(t=1),void 0===n&&(n=1),void 0===r&&(r=.5),de.localResponseNormalization(this,e,t,n,r)},e.prototype.pool=function(e,t,n,r,o){return this.throwIfDisposed(),de.pool(this,e,t,n,r,o)},e.prototype.variable=function(e,t,n){return void 0===e&&(e=!0),this.throwIfDisposed(),fe().makeVariable(this,e,t,n)},e.prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),de.unsortedSegmentSum(this,e,t)},e.prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),de.batchToSpaceND(this,e,t)},e.prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),de.spaceToBatchND(this,e,t)},e.prototype.topk=function(e,t){return void 0===e&&(e=1),void 0===t&&(t=!0),this.throwIfDisposed(),de.topk(this,e,t)},e.prototype.stridedSlice=function(e,t,n,r,o,a,i,u){return void 0===r&&(r=0),void 0===o&&(o=0),void 0===a&&(a=0),void 0===i&&(i=0),void 0===u&&(u=0),this.throwIfDisposed(),de.stridedSlice(this,e,t,n,r,o,a,i,u)},e.prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),de.depthToSpace(this,e,t)},e.prototype.fft=function(){return this.throwIfDisposed(),de.spectral.fft(this)},e.prototype.ifft=function(){return this.throwIfDisposed(),de.spectral.ifft(this)},e.prototype.rfft=function(){return this.throwIfDisposed(),de.spectral.rfft(this)},e.prototype.irfft=function(){return this.throwIfDisposed(),de.spectral.irfft(this)},e}();Object.defineProperty(he,Symbol.hasInstance,{value:function(e){return!!e&&null!=e.dataId&&null!=e.shape&&null!=e.dtype}});var ve,me,ge,ye,be,xe=function(e){function t(t,n,r,o){var a=e.call(this,t.shape,t.dtype,t.dataId,o)||this;return a.trainable=n,a.name=r,a}return u(t,e),t.prototype.assign=function(e){if(e.dtype!==this.dtype)throw new Error("dtype of the new value ("+e.dtype+") and previous value ("+this.dtype+") must match");if(!R(e.shape,this.shape))throw new Error("shape of the new value ("+e.shape+") and previous value ("+this.shape+") must match");fe().disposeTensor(this),this.dataId=e.dataId,fe().incRef(this,null)},t.prototype.dispose=function(){fe().disposeVariable(this),this.isDisposedInternal=!0},t}(he);Object.defineProperty(xe,Symbol.hasInstance,{value:function(e){return e instanceof he&&null!=e.assign&&e.assign instanceof Function}}),function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"}(ve||(ve={})),function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"}(me||(me={})),function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"}(ge||(ge={})),function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"}(ye||(ye={})),function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"}(be||(be={}));var we={float32:ye,int32:me,bool:ge,complex64:be};function Ee(e,t){if("string"===e||"string"===t){if("string"===e&&"string"===t)return"string";throw new Error("Can not upcast "+e+" with "+t)}return we[e][t]}function Ce(e){return Ee(e,"int32")}function ke(e,t){if(e.dtype===t.dtype)return[e,t];var n=Ee(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function _e(e,t){E(e.dtype===t.dtype,(function(){return"The dtypes of the first("+e.dtype+") and second("+t.dtype+") input must match"}))}function Se(e){var t=[];return function e(t,n,r){if(null!=t)if(t instanceof he)n.push(t);else if(o=t,Array.isArray(o)||"object"==typeof o){var o,a=t;for(var i in a){var u=a[i];r.has(u)||(r.add(u),e(u,n,r))}}}(e,t,new Set),t}Object.freeze({makeTypesMatch:ke,assertTypesMatch:_e,isTensorInList:function(e,t){for(var n=0;n<t.length;n++)if(t[n].id===e.id)return!0;return!1},getTensorsInContainer:Se});var Re,Te=function(){function e(){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 e.prototype.dispose=function(){for(var e in this.registeredVariables)this.registeredVariables[e].dispose()},e}(),Ie=function(){function e(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Te}return e.prototype.ready=function(){return s(this,void 0,void 0,(function(){var e,t,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];e=this.getSortedBackends(),t=0,r.label=1;case 1:return t<e.length?(n=e[t],[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 t++,[3,1];case 5:throw new Error("Could not initialize any backends, all backend initializations failed.")}}))}))},Object.defineProperty(e.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() before calling other methods");if(null==this.backendInstance){var e=this.initializeBackendsAndReturnBest(),t=e.name;if(e.asyncInit)throw new Error("The highest priority backend '"+t+"' has not yet been initialized. Make sure to await tf.ready() before calling other methods");this.setBackend(t)}return this.backendInstance},enumerable:!0,configurable:!0}),e.prototype.backendNames=function(){return Object.keys(this.registryFactory)},e.prototype.findBackend=function(e){if(!(e in this.registry)){if(!(e in this.registryFactory))return null;if(this.initializeBackend(e).asyncInit)return null}return this.registry[e]},e.prototype.findBackendFactory=function(e){return e in this.registryFactory?this.registryFactory[e].factory:null},e.prototype.registerBackend=function(e,t,n){return void 0===n&&(n=1),!(e in this.registryFactory)&&(this.registryFactory[e]={factory:t,priority:n},!0)},e.prototype.setBackend=function(e){return s(this,void 0,void 0,(function(){var t,n,r;return c(this,(function(o){switch(o.label){case 0:if(null==this.registryFactory[e])throw new Error("Backend name '"+e+"' not found in registry");return this.backendName=e,null!=this.registry[e]?[3,4]:(this.backendInstance=null,t=this.initializeBackend(e),n=t.success,t.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[e],this.setupRegisteredKernels(),this.profiler=new ae(this.backendInstance),[2,!0]}}))}))},e.prototype.setupRegisteredKernels=function(){var e=this;v(this.backendName).forEach((function(t){null!=t.setupFunc&&t.setupFunc(e.backendInstance)}))},e.prototype.disposeRegisteredKernels=function(e){var t=this;v(e).forEach((function(n){null!=n.disposeFunc&&n.disposeFunc(t.registry[e])}))},e.prototype.initializeBackend=function(e){var t=this,n=this.registryFactory[e];if(null==n)throw new Error("Cannot initialize backend "+e+", no registration found.");try{var r=n.factory();if(Promise.resolve(r)===r){var o=++this.pendingBackendInitId,a=r.then((function(n){return!(o<t.pendingBackendInitId||(t.registry[e]=n,t.pendingBackendInit=null,0))})).catch((function(e){return!(o<t.pendingBackendInitId||(t.pendingBackendInit=null,1))}));return this.pendingBackendInit=a,{success:a,asyncInit:!0}}return this.registry[e]=r,{success:!0,asyncInit:!1}}catch(t){return{success:!1,asyncInit:!1}}},e.prototype.removeBackend=function(e){if(!(e in this.registryFactory))throw new 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)},e.prototype.getSortedBackends=function(){var e=this;if(0===Object.keys(this.registryFactory).length)throw new Error("No backend found in registry.");return Object.keys(this.registryFactory).sort((function(t,n){return e.registryFactory[n].priority-e.registryFactory[t].priority}))},e.prototype.initializeBackendsAndReturnBest=function(){for(var e=this.getSortedBackends(),t=0;t<e.length;t++){var n=e[t],r=this.initializeBackend(n),o=r.success,a=r.asyncInit;if(a||o)return{name:n,asyncInit:a}}throw new Error("Could not initialize any backends, all backend initializations failed.")},e.prototype.moveData=function(e,t){var n=this.state.tensorInfo.get(t),r=n.backend,o=this.readSync(t);r.disposeData(t),n.backend=e,e.move(t,o,n.shape,n.dtype),this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack[this.state.numDataMovesStack.length-1]++},e.prototype.tidy=function(e,t){var n,r=this,o=null;if(null==t){if("function"!=typeof e)throw new Error("Please provide a function to tidy()");t=e}else{if("string"!=typeof e&&!(e instanceof String))throw new Error("When calling with two arguments, the first argument to tidy() must be a string");if("function"!=typeof t)throw new Error("When calling with two arguments, the 2nd argument to tidy() must be a function");o=e}return this.scopedRun((function(){return r.startScope(o)}),(function(){return r.endScope(n)}),(function(){return n=t()}))},e.prototype.scopedRun=function(e,t,n){e();try{var r=n();return t(),r}catch(e){throw t(),e}},e.prototype.nextTensorId=function(){return e.nextTensorId++},e.prototype.nextVariableId=function(){return e.nextVariableId++},e.prototype.clone=function(e){var t=this.makeTensorFromDataId(e.dataId,e.shape,e.dtype),n={x:e};return this.addTapeNode(this.state.activeScope.name,n,[t],(function(e){return{x:function(){return e.toFloat()}}}),[]),t},e.prototype.runKernel=function(e,t,n,r,o){return this.runKernelFunc(null,t,null,e,n,r,o)},e.prototype.shouldCheckForMemLeaks=function(){return this.ENV.getBool("IS_TEST")},e.prototype.checkKernelForMemLeak=function(e,t,n){var r=this.backend.numDataIds(),o=0;n.forEach((function(e){o+="complex64"===e.dtype?3:1}));var a=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=r-t-o-a;if(i>0)throw new Error("Backend '"+this.backendName+"' has an internal memory leak ("+i+" data ids) after running '"+e+"'")},e.prototype.runKernelFunc=function(e,t,n,r,o,a,i){var u,s=this;void 0===a&&(a=[]),void 0===i&&(i=[]);var c,l=[],f=this.isTapeOn(),d=null!=this.state.activeScope?this.state.activeScope.name:"",p=function(e){f&&(l=e.map((function(e){return s.keep(s.clone(e))})))},v=this.state.numBytes,m=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);var g,y=h(r,this.backendName);return c=null!=y?function(){var e=s.backend.numDataIds();g=y.kernelFunc({inputs:t,attrs:o,backend:s.backend});var n=Array.isArray(g)?g:[g];s.shouldCheckForMemLeaks()&&s.checkKernelForMemLeak(d,e,n);var r=n.map((function(e){var t=e.dataId,n=e.shape,r=e.dtype;return s.makeTensorFromDataId(t,n,r)})),u=r.filter((function(e,t){return i[t]}));return p(a.slice().concat(u)),r}:function(){var t=s.backend.numDataIds();g=s.tidy((function(){return e(s.backend,p)}));var n=Array.isArray(g)?g:[g];return s.shouldCheckForMemLeaks()&&s.checkKernelForMemLeak(d,t,n),n},this.scopedRun((function(){return s.state.kernelDepth++}),(function(){return s.state.kernelDepth--}),(function(){u=s.ENV.getBool("DEBUG")?s.profiler.profileKernel(d,t,(function(){return c()})):c()})),f&&this.addTapeNode(d,t,u,n,l),this.state.profiling&&this.state.activeProfile.kernels.push({name:d,bytesAdded:this.state.numBytes-v,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-m,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(t).map((function(e){return t[e].shape})),outputShapes:u.map((function(e){return e.shape}))}),Array.isArray(g)?u:u[0]},e.prototype.makeTensor=function(e,t,n,r){if(null==e)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",r=r||this.backend;var o=e;"string"===n&&H(e[0])&&(o=e.map((function(e){return re(e)})));var a=r.write(o,t,n),i=new he(t,n,a,this.nextTensorId());if(this.incRef(i,r),"string"===n){var u=this.state.tensorInfo.get(a),s=V(o);this.state.numBytes+=s-u.bytes,u.bytes=s}return i},e.prototype.makeTensorFromDataId=function(e,t,n,r){var o=new he(t,n=n||"float32",e,this.nextTensorId());return this.incRef(o,r),o},e.prototype.makeVariable=function(e,t,n,r){void 0===t&&(t=!0),n=n||this.nextVariableId().toString(),null!=r&&r!==e.dtype&&(e=e.asType(r));var o=new xe(e,t,n,this.nextTensorId());if(null!=this.state.registeredVariables[o.name])throw new Error("Variable with name "+o.name+" was already registered");return this.state.registeredVariables[o.name]=o,this.incRef(o,this.backend),o},e.prototype.incRef=function(e,t){var n=this.state.tensorInfo.has(e.dataId)?this.state.tensorInfo.get(e.dataId).refCount:0;if(this.state.numTensors++,"string"===e.dtype&&this.state.numStringTensors++,0===n){this.state.numDataBuffers++;var r=0;"complex64"!==e.dtype&&"string"!==e.dtype&&(r=e.size*j(e.dtype)),this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:r,refCount:0}),this.state.numBytes+=r}this.state.tensorInfo.get(e.dataId).refCount++,e instanceof xe||this.track(e)},e.prototype.disposeTensor=function(e){if(this.state.tensorInfo.has(e.dataId)){this.state.numTensors--,"string"===e.dtype&&this.state.numStringTensors--;var t=this.state.tensorInfo.get(e.dataId);t.refCount<=1?("complex64"!==e.dtype&&(this.state.numBytes-=t.bytes),this.state.numDataBuffers--,t.backend.disposeData(e.dataId),this.state.tensorInfo.delete(e.dataId)):this.state.tensorInfo.get(e.dataId).refCount--}},e.prototype.disposeVariables=function(){for(var e in this.state.registeredVariables){var t=this.state.registeredVariables[e];this.disposeVariable(t)}},e.prototype.disposeVariable=function(e){this.disposeTensor(e),null!=this.state.registeredVariables[e.name]&&delete this.state.registeredVariables[e.name]},e.prototype.memory=function(){var 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},e.prototype.profile=function(e){return s(this,void 0,void 0,(function(){var t,n;return c(this,(function(r){return this.state.profiling=!0,t=this.state.numBytes,n=this.state.numTensors,this.state.activeProfile.kernels=[],this.state.activeProfile.result=e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max.apply(Math,this.state.activeProfile.kernels.map((function(e){return e.totalBytesSnapshot}))),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n,[2,this.state.activeProfile]}))}))},e.prototype.isTapeOn=function(){return this.state.gradientDepth>0&&0===this.state.kernelDepth},e.prototype.addTapeNode=function(e,t,n,r,o){var a=this,i={id:this.state.nextTapeNodeId++,name:e,inputs:t,outputs:n,saved:o};null!=r&&(i.gradient=function(e){return e=e.map((function(e,t){if(null==e){var r=n[t],o=ee(r.size,r.dtype);return a.makeTensor(o,r.shape,r.dtype)}return e})),r(e.length>1?e:e[0],o)}),this.state.activeTape.push(i)},e.prototype.keep=function(e){return e.kept=!0,e},e.prototype.startTape=function(){0===this.state.gradientDepth&&(this.state.activeTape=[]),this.state.gradientDepth++},e.prototype.endTape=function(){this.state.gradientDepth--},e.prototype.startScope=function(e){var t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t},e.prototype.endScope=function(e){for(var t=this,n=Se(e),r=new Set(n.map((function(e){return e.id}))),o=0;o<this.state.activeScope.track.length;o++){var a=this.state.activeScope.track[o];a.kept||r.has(a.id)||a.dispose()}var i=this.state.scopeStack.pop();this.state.activeScope=0===this.state.scopeStack.length?null:this.state.scopeStack[this.state.scopeStack.length-1],n.forEach((function(e){e.kept||e.scopeId!==i.id||t.track(e)}))},e.prototype.gradients=function(e,t,n,r){var o=this;if(void 0===r&&(r=!1),E(t.length>0,(function(){return"gradients() received an empty list of xs."})),null!=n&&"float32"!==n.dtype)throw new Error("dy must have 'float32' dtype, but has '"+n.dtype+"'");var a=this.scopedRun((function(){return o.startTape()}),(function(){return o.endTape()}),(function(){return o.tidy("forward",e)}));E(a instanceof he,(function(){return"The result y returned by f() must be a tensor."}));var i=function(e,t,n){for(var r={},o={},a=0;a<t.length;a++)r[t[a].id]=!0;for(a=0;a<e.length;a++){var i=(h=e[a]).inputs;for(var u in i){for(var s=i[u],c=!1,l=0;l<t.length;l++)if(r[s.id]){h.outputs.forEach((function(e){return r[e.id]=!0})),c=!0,o[h.id]=!0;break}if(c)break}}var f={};f[n.id]=!0;var d={};for(a=e.length-1;a>=0;a--)for(i=(h=e[a]).inputs,l=0;l<h.outputs.length;l++)if(f[h.outputs[l].id]){for(var u in i)f[i[u].id]=!0,d[h.id]=!0;break}var p=[];for(a=0;a<e.length;a++){var h;if(o[(h=e[a]).id]&&d[h.id]){var v={};for(var u in h.inputs){var m=h.inputs[u];r[m.id]&&(v[u]=m)}var g=Object.assign({},h);g.inputs=v,g.outputs=h.outputs,p.push(g)}}return p}(this.state.activeTape,t,a);if(!r&&0===i.length&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",(function(){var e,r,u={};u[a.id]=null==n?(r=Z(S(e=a.shape),"float32"),Oe.makeTensor(r,e,"float32")):n,function(e,t,n){for(var r=function(r){var o=t[r],a=[];if(o.outputs.forEach((function(t){var n=e[t.id];null!=n?a.push(n):a.push(null)})),null==o.gradient)throw new Error("Cannot compute gradient: gradient function not found for "+o.name+".");var i=o.gradient(a),u=function(t){if(!(t in i))throw new Error("Cannot backprop through input "+t+". Available gradients found: "+Object.keys(i)+".");var r=n((function(){return i[t]()}));if("float32"!==r.dtype)throw new Error("Error in gradient for op "+o.name+". The gradient of input "+t+" must have 'float32' dtype, but has '"+r.dtype+"'");var a=o.inputs[t];if(!R(r.shape,a.shape))throw new Error("Error in gradient for op "+o.name+". The gradient of input '"+t+"' has shape '"+r.shape+"', which does not match the shape of the input '"+a.shape+"'");if(null==e[a.id])e[a.id]=r;else{var u=e[a.id];e[a.id]=u.add(r),u.dispose()}};for(var s in o.inputs)u(s)},o=t.length-1;o>=0;o--)r(o)}(u,i,(function(e){return o.tidy(e)}));var s=t.map((function(e){return u[e.id]}));return 0===o.state.gradientDepth&&(o.state.activeTape.forEach((function(e){for(var t=0,n=e.saved;t<n.length;t++)n[t].dispose()})),o.state.activeTape=null),{value:a,grads:s}}))},e.prototype.customGrad=function(e){var t=this;return E(X(e),(function(){return"The f passed in customGrad(f) must be a function."})),function(){for(var n,r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];E(r.every((function(e){return e instanceof he})),(function(){return"The args passed in customGrad(f)(x1, x2,...) must all be tensors"}));var a={};return r.forEach((function(e,t){a[t]=e})),t.runKernelFunc((function(t,o){return E((n=e.apply(void 0,r.concat([o]))).value instanceof he,(function(){return"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"})),E(X(n.gradFunc),(function(){return"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."})),n.value}),a,(function(e,t){var o=n.gradFunc(e,t),a=Array.isArray(o)?o:[o];E(a.length===r.length,(function(){return"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."})),E(a.every((function(e){return e instanceof he})),(function(){return"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors."}));var i={};return a.forEach((function(e,t){i[t]=function(){return e}})),i}))}},e.prototype.readSync=function(e){return this.state.tensorInfo.get(e).backend.readSync(e)},e.prototype.read=function(e){return this.state.tensorInfo.get(e).backend.read(e)},e.prototype.time=function(e){return s(this,void 0,void 0,(function(){var t,n;return c(this,(function(r){switch(r.label){case 0:return t=te(),[4,this.backend.time(e)];case 1:return(n=r.sent()).wallMs=te()-t,[2,n]}}))}))},e.prototype.track=function(e){return null!=this.state.activeScope&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e},Object.defineProperty(e.prototype,"registeredVariables",{get:function(){return this.state.registeredVariables},enumerable:!0,configurable:!0}),e.prototype.reset=function(){for(var e in this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Te,this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null},e.nextTensorId=0,e.nextVariableId=0,e}(),Oe=function(){var t=function(){if(null==Re){var t=void 0;if("undefined"!=typeof window)t=window;else if(void 0!==e)t=e;else if(void 0!==r)t=r;else{if("undefined"==typeof self)throw new Error("Could not find a global object");t=self}Re=t}return Re}();if(null==t._tfengine){var n=new l(t);t._tfengine=new Ie(n)}return function(e){d=e}(t._tfengine.ENV),fe=function(){return t._tfengine},t._tfengine}();function Ae(){return"undefined"!=typeof window&&null!=window.document||"undefined"!=typeof WorkerGlobalScope}var De=f();De.registerFlag("DEBUG",(function(){return!1}),(function(e){})),De.registerFlag("IS_BROWSER",(function(){return Ae()})),De.registerFlag("IS_NODE",(function(){return void 0!==r&&void 0!==r.versions&&void 0!==r.versions.node})),De.registerFlag("IS_CHROME",(function(){return"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)})),De.registerFlag("PROD",(function(){return!1})),De.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",(function(){return De.getBool("DEBUG")})),De.registerFlag("DEPRECATION_WARNINGS_ENABLED",(function(){return!0})),De.registerFlag("IS_TEST",(function(){return!1}));var Ne,Pe,Me,Fe={},Be={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function Le(e,t){Fe[e]=t}function We(e){e in Fe||(Fe[e]=function(e){if(1!==e&&2!==e)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");var t=function(e){if("undefined"!=typeof OffscreenCanvas&&2===e)return new OffscreenCanvas(300,150);if("undefined"!=typeof document)return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}(e);return t.addEventListener("webglcontextlost",(function(t){t.preventDefault(),delete Fe[e]}),!1),1===e?t.getContext("webgl",Be)||t.getContext("experimental-webgl",Be):t.getContext("webgl2",Be)}(e));var t=Fe[e];return t.isContextLost()?(delete Fe[e],We(e)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),Fe[e])}function Ue(e,t){return[t,e]}function ze(e){var t=S(e);return O(Math.ceil(t/4))}function je(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function Ve(e,t){var n,r,o,a,i,u,s,c,l,d=e;return 2===f().getNumber("WEBGL_VERSION")?(n=d.R32F,r=d.R16F,o=d.RGBA16F,a=d.RGBA32F,i=d.RED,u=4,s=1,c=d.HALF_FLOAT,l=d.FLOAT):(n=e.RGBA,r=e.RGBA,o=e.RGBA,a=d.RGBA,i=e.RGBA,u=4,s=4,c=null!=t?t.HALF_FLOAT_OES:null,l=e.FLOAT),{internalFormatFloat:n,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:o,internalFormatPackedFloat:a,textureFormatFloat:i,downloadTextureFormat:e.RGBA,downloadUnpackNumChannels:u,defaultNumChannels:s,textureTypeHalfFloat:c,textureTypeFloat:l}}function He(e,t,n){var r=n();return t&&function(e){var t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+qe(e,t))}(e),r}function Ge(e){return!!(f().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||0===e||5.96e-8<Math.abs(e)&&Math.abs(e)<65504)}function qe(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 Ke(e,t,n){return mt(e,t,(function(){return e.getExtension(n)}),'Extension "'+n+'" not supported on this browser.')}function Xe(e,t,n){var r=mt(e,t,(function(){return e.createShader(e.VERTEX_SHADER)}),"Unable to create vertex WebGLShader.");if(He(e,t,(function(){return e.shaderSource(r,n)})),He(e,t,(function(){return e.compileShader(r)})),!1===e.getShaderParameter(r,e.COMPILE_STATUS))throw new Error("Failed to compile vertex shader.");return r}function $e(e,t,n){var r=mt(e,t,(function(){return e.createShader(e.FRAGMENT_SHADER)}),"Unable to create fragment WebGLShader.");if(He(e,t,(function(){return e.shaderSource(r,n)})),He(e,t,(function(){return e.compileShader(r)})),!1===e.getShaderParameter(r,e.COMPILE_STATUS))throw function(e,t){var n=Je.exec(t);if(null!=n){for(var r=+n[1],o=e.split("\n"),a=o.length.toString().length+2,i=o.map((function(e,t){return A((t+1).toString(),a)+e})),u=0,s=0;s<i.length;s++)u=Math.max(i[s].length,u);i.slice(0,r-1),i.slice(r-1,r),i.slice(r)}}(n,e.getShaderInfoLog(r)),new Error("Failed to compile fragment shader.");return r}!function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"}(Ne||(Ne={})),function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"}(Pe||(Pe={})),function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"}(Me||(Me={}));var Ye,Qe,Je=/ERROR: [0-9]+:([0-9]+):/g;function Ze(e,t){return mt(e,t,(function(){return e.createProgram()}),"Unable to create WebGLProgram.")}function et(e,t,n){if(He(e,t,(function(){return e.linkProgram(n)})),!1===e.getProgramParameter(n,e.LINK_STATUS))throw new Error("Failed to link vertex and fragment shaders.")}function tt(e,t,n){if(He(e,t,(function(){return e.validateProgram(n)})),!1===e.getProgramParameter(n,e.VALIDATE_STATUS))throw new Error("Shader program validation failed.")}function nt(e,t,n){var r=mt(e,t,(function(){return e.createBuffer()}),"Unable to create WebGLBuffer");return He(e,t,(function(){return e.bindBuffer(e.ARRAY_BUFFER,r)})),He(e,t,(function(){return e.bufferData(e.ARRAY_BUFFER,n,e.STATIC_DRAW)})),r}function rt(e,t,n){var r=mt(e,t,(function(){return e.createBuffer()}),"Unable to create WebGLBuffer");return He(e,t,(function(){return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,r)})),He(e,t,(function(){return e.bufferData(e.ELEMENT_ARRAY_BUFFER,n,e.STATIC_DRAW)})),r}function ot(e,t){return mt(e,t,(function(){return e.createTexture()}),"Unable to create WebGLTexture.")}function at(e,t){var n=f().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){var r="["+e+"x"+t+"]";throw new Error("Requested texture size "+r+" is invalid.")}if(e>n||t>n)throw r="["+e+"x"+t+"]",new Error("Requested texture size "+r+" greater than WebGL maximum on this browser / GPU ["+n+"x"+n+"].")}function it(e,t){return mt(e,t,(function(){return e.createFramebuffer()}),"Unable to create WebGLFramebuffer.")}function ut(e,t,n,r,o,a,i,u){var s=e.getAttribLocation(n,r);return-1!==s&&(He(e,t,(function(){return e.bindBuffer(e.ARRAY_BUFFER,o)})),He(e,t,(function(){return e.vertexAttribPointer(s,a,e.FLOAT,!1,i,u)})),He(e,t,(function(){return e.enableVertexAttribArray(s)})),!0)}function st(e,t,n,r){gt(e,r),He(e,t,(function(){return e.activeTexture(e.TEXTURE0+r)})),He(e,t,(function(){return e.bindTexture(e.TEXTURE_2D,n)}))}function ct(e,t,n,r){return mt(e,t,(function(){return e.getUniformLocation(n,r)}),'uniform "'+r+'" not present in program.')}function lt(e,t,n){return e.getUniformLocation(t,n)}function ft(e,t,n,r,o,a){He(e,t,(function(){return st(e,t,r,a)})),He(e,t,(function(){return e.uniform1i(o,a)}))}function dt(e,t,n,r){He(e,t,(function(){return e.bindFramebuffer(e.FRAMEBUFFER,r)})),He(e,t,(function(){return e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0)}))}function pt(e,t,n){He(e,t,(function(){return e.bindFramebuffer(e.FRAMEBUFFER,n)})),He(e,t,(function(){return e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0)}))}function ht(e){var t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+vt(e,t))}function vt(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 mt(e,t,n,r){var o=He(e,t,(function(){return n()}));if(null==o)throw new Error(r);return o}function gt(e,t){var n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,r=t+e.TEXTURE0;if(r<e.TEXTURE0||r>n)throw new Error("textureUnit must be in [gl.TEXTURE0, gl.TEXTURE"+n+"].")}function yt(e,t){return void 0===t&&(t=2),S(e.slice(0,e.length-t))}function bt(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 xt(e){var t=[1,1,1];return 0===e.length||1===e.length&&1===e[0]||(t=[yt(e)].concat(bt(e))),t}function wt(e,t){var n;void 0===t&&(t=!1);var r=f().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(t&&(r*=2,1===(e=e.map((function(t,n){return n>=e.length-2?x(e[n]):e[n]}))).length&&(e=[2,e[0]])),2!==e.length){var o=M(e);e=o.newShape}var a=S(e);if(e.length<=1&&a<=r)return[1,a];if(2===e.length&&e[0]<=r&&e[1]<=r)return e;if(3===e.length&&e[0]*e[1]<=r&&e[2]<=r)return[e[0]*e[1],e[2]];if(3===e.length&&e[0]<=r&&e[1]*e[2]<=r)return[e[0],e[1]*e[2]];if(4===e.length&&e[0]*e[1]*e[2]<=r&&e[3]<=r)return[e[0]*e[1]*e[2],e[3]];if(4===e.length&&e[0]<=r&&e[1]*e[2]*e[3]<=r)return[e[0],e[1]*e[2]*e[3]];if(t){var i=yt(e),u=2,s=2;return e.length&&(u=(n=bt(e))[0],s=n[1]),O(a=i*(u/2)*(s/2)).map((function(e){return 2*e}))}return O(a)}function Et(e){return e%2==0}function Ct(e,t){if(R(e=e.slice(-2),t=t.slice(-2)))return!0;if(!e.length||!t.length)return!0;if(0===e[0]||0===e[1]||0===t[0]||0===t[1])return!0;if(e.length!==t.length){var n=e.slice(-1)[0],r=t.slice(-1)[0];if(n===r)return!0;if(Et(n)&&Et(r)&&(1===e[0]||1===t[0]))return!0}return e[1]===t[1]&&Et(e[0])&&Et(t[0])}function kt(e){if(null==Ye){var t=We(e);Ye=t.getParameter(t.MAX_TEXTURE_SIZE)}return Ye}function _t(e){if(null==Qe){var t=We(e);Qe=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Qe)}function St(e){if(0===e)return 0;var t=We(e);return Rt(t,"EXT_disjoint_timer_query_webgl2")&&2===e?2:Rt(t,"EXT_disjoint_timer_query")?1:0}function Rt(e,t){return null!=e.getExtension(t)}function Tt(e){try{if(null!=We(e))return!0}catch(e){return!1}return!1}function It(e){if(0===e)return!1;var t=We(e);if(1===e){if(!Rt(t,"OES_texture_float"))return!1}else if(!Rt(t,"EXT_color_buffer_float"))return!1;return At(t)}function Ot(e){if(0===e)return!1;var t=We(e);if(1!==e){if(Rt(t,"EXT_color_buffer_float"))return At(t);if(Rt(t,"EXT_color_buffer_half_float")){var n=t.getExtension("EXT_color_buffer_half_float");return function(e,t){var n=Ve(e,t),r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r),e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,1,1,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);var o=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,o),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);var a=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(r),e.deleteFramebuffer(o),a}(t,n)}return!1}return!!Rt(t,"OES_texture_float")&&!!Rt(t,"WEBGL_color_buffer_float")&&At(t)}function At(e){var t=Ve(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n),e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);var r=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);var o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(r),o}function Dt(e){return 2===e&&null!=We(e).fenceSync}var Nt=Object.freeze({callAndCheck:He,canBeRepresented:Ge,getWebGLErrorMessage:qe,getExtensionOrThrow:Ke,createVertexShader:Xe,createFragmentShader:$e,createProgram:Ze,linkProgram:et,validateProgram:tt,createStaticVertexBuffer:nt,createStaticIndexBuffer:rt,getNumChannels:function(){return 2===f().getNumber("WEBGL_VERSION")?1:4},createTexture:ot,validateTextureSize:at,createFramebuffer:it,bindVertexBufferToProgramAttribute:ut,bindTextureUnit:st,unbindTextureUnit:function(e,t,n){gt(e,n),He(e,t,(function(){return e.activeTexture(e.TEXTURE0+n)})),He(e,t,(function(){return e.bindTexture(e.TEXTURE_2D,null)}))},getProgramUniformLocationOrThrow:ct,getProgramUniformLocation:lt,bindTextureToProgramUniformSampler:ft,bindCanvasToFramebuffer:function(e,t){He(e,t,(function(){return e.bindFramebuffer(e.FRAMEBUFFER,null)})),He(e,t,(function(){return e.viewport(0,0,e.canvas.width,e.canvas.height)})),He(e,t,(function(){return e.scissor(0,0,e.canvas.width,e.canvas.height)}))},bindColorTextureToFramebuffer:dt,unbindColorTextureFromFramebuffer:pt,validateFramebuffer:ht,getFramebufferErrorMessage:vt,getBatchDim:yt,getRowsCols:bt,getShapeAs3D:xt,getTextureShapeFromLogicalShape:wt,isReshapeFree:Ct,getWebGLMaxTextureSize:kt,resetMaxTextureSize:function(){Ye=null},resetMaxTexturesInShader:function(){Qe=null},getMaxTexturesInShader:_t,getWebGLDisjointQueryTimerVersion:St,hasExtension:Rt,isWebGLVersionEnabled:Tt,isCapableOfRenderingToFloatTexture:It,isDownloadFloatTextureEnabled:Ot,isWebGLFenceEnabled:Dt}),Pt=f();function Mt(e){f().getBool("DEPRECATION_WARNINGS_ENABLED")}function Ft(e,t){return Oe.tidy(e,t)}function Bt(e){Se(e).forEach((function(e){return e.dispose()}))}function Lt(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];f().getBool("IS_TEST")}function Wt(e,t){var n=e;if(z(e))return"string"===t?[]:[e.length];if(!Array.isArray(e))return[];for(var r=[];Array.isArray(n)||z(n)&&"string"!==t;)r.push(n.length),n=n[0];return Array.isArray(e)&&f().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&function e(t,n,r){if(r=r||[],Array.isArray(t)||z(t)){E(n.length>0,(function(){return"Element arr["+r.join("][")+"] should be a primitive, but is an array of "+t.length+" elements"})),E(t.length===n[0],(function(){return"Element arr["+r.join("][")+"] should have "+n[0]+" elements, but has "+t.length+" elements"}));for(var o=n.slice(1),a=0;a<t.length;++a)e(t[a],o,r.concat(a))}else E(0===n.length,(function(){return"Element arr["+r.join("][")+"] is a primitive, but should be an array/TypedArray of "+n[0]+" elements"}))}(e,r,[]),r}function Ut(e,t,n,r){if(null!=e&&("numeric"!==e&&e!==t||"numeric"===e&&"string"===t))throw new Error("Argument '"+n+"' passed to '"+r+"' must be "+e+" tensor, but got "+t+" tensor")}function zt(e,t,n,r){if(void 0===r&&(r="numeric"),e instanceof he)return Ut(r,e.dtype,t,n),e;var o=K(e);if("string"!==o&&["bool","int32","float32"].indexOf(r)>=0&&(o=r),Ut(r,o,t,n),null==e||!z(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e){var a=null==e?"null":e.constructor.name;throw new Error("Argument '"+t+"' passed to '"+n+"' must be a Tensor or TensorLike, but got '"+a+"'")}var i=Wt(e,o);z(e)||Array.isArray(e)||(e=[e]);var u="string"!==o?Q(e,o,f().getBool("DEBUG")):_(e,[],!0);return Oe.makeTensor(u,i,o)}function jt(e,t,n,r){if(void 0===r&&(r="numeric"),!Array.isArray(e))throw new Error("Argument "+t+" passed to "+n+" must be a `Tensor[]` or `TensorLike[]`");return e.map((function(e,r){return zt(e,t+"["+r+"]",n)}),r)}function Vt(e,t){for(var n=0;n<e.length;++n)if(e[e.length-n-1]!==t-1-n)return!1;return!0}function Ht(e,t,n){for(var r=e.length+t.length,o=[],a=0,i=0,u=0;u<r;u++)-1===n.indexOf(u)?o.push(e[a++]):o.push(t[i++]);return o}function Gt(e,t){for(var n=[],r=e.length,o=0;o<r;o++)-1===t.indexOf(o)&&n.push(e[o]);return[n,t.map((function(t){return e[t]}))]}function qt(e,t){return Ht(e,t.map((function(e){return 1})),t)}function Kt(e,t,n){E(Vt(t,n),(function(){return e+" supports only inner-most axes for now. Got axes "+t+" and rank-"+n+" input."}))}function Xt(e,t){if(Vt(e,t))return null;for(var n=[],r=0;r<t;++r)-1===e.indexOf(r)&&n.push(r);return e.forEach((function(e){return n.push(e)})),n}function $t(e){return e.map((function(e,t){return[t,e]})).sort((function(e,t){return e[1]-t[1]})).map((function(e){return e[0]}))}function Yt(e,t){for(var n=[],r=t-e;r<t;++r)n.push(r);return n}function Qt(e,t){var n=e[0].length;e.forEach((function(e,t){E(e.length===n,(function(){return"Error in concat"+n+"D: rank of tensors["+t+"] must be the same as the rank of the rest ("+n+")"}))})),E(t>=0&&t<n,(function(){return"Error in concat"+n+"D: axis must be between 0 and "+(n-1)+"."}));var r=e[0];e.forEach((function(e,o){for(var a=0;a<n;a++)E(a===t||e[a]===r[a],(function(){return"Error in concat"+n+"D: Shape of tensors["+o+"] ("+e+") does not match the shape of the rest ("+r+") along the non-concatenated axis "+o+"."}))}))}function Jt(e,t){for(var n=e[0].slice(),r=1;r<e.length;r++)n[t]+=e[r][t];return n}function Zt(e){var t=Object.keys(e);if(1!==t.length)throw new Error("Please provide an object with a single key (operation name) mapping to a function. Got an object with "+t.length+" keys.");var n=t[0],r=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1));var o=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];Oe.startScope(n);try{var o=r.apply(void 0,e);return Oe.endScope(o),o}catch(e){throw Oe.endScope(null),e}};return Object.defineProperty(o,"name",{value:n,configurable:!0}),o}Pt.registerFlag("HAS_WEBGL",(function(){return Pt.getNumber("WEBGL_VERSION")>0})),Pt.registerFlag("WEBGL_VERSION",(function(){return Tt(2)?2:Tt(1)?1:0})),Pt.registerFlag("WEBGL_BUFFER_SUPPORTED",(function(){return 2===Pt.get("WEBGL_VERSION")})),Pt.registerFlag("WEBGL_CPU_FORWARD",(function(){return!0})),Pt.registerFlag("WEBGL_FORCE_F16_TEXTURES",(function(){return!1})),Pt.registerFlag("WEBGL_PACK",(function(){return Pt.getBool("HAS_WEBGL")})),Pt.registerFlag("WEBGL_PACK_NORMALIZATION",(function(){return Pt.getBool("WEBGL_PACK")})),Pt.registerFlag("WEBGL_PACK_CLIP",(function(){return Pt.getBool("WEBGL_PACK")})),Pt.registerFlag("WEBGL_PACK_DEPTHWISECONV",(function(){return!1})),Pt.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",(function(){return Pt.getBool("WEBGL_PACK")})),Pt.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",(function(){return Pt.getBool("WEBGL_PACK")})),Pt.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",(function(){return Pt.getBool("WEBGL_PACK")})),Pt.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",(function(){return Pt.getBool("WEBGL_PACK")})),Pt.registerFlag("WEBGL_PACK_REDUCE",(function(){return Pt.getBool("WEBGL_PACK")})),Pt.registerFlag("WEBGL_LAZILY_UNPACK",(function(){return Pt.getBool("WEBGL_PACK")})),Pt.registerFlag("WEBGL_CONV_IM2COL",(function(){return Pt.getBool("WEBGL_PACK")})),Pt.registerFlag("WEBGL_MAX_TEXTURE_SIZE",(function(){return kt(Pt.getNumber("WEBGL_VERSION"))})),Pt.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",(function(){return _t(Pt.getNumber("WEBGL_VERSION"))})),Pt.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",(function(){var e=Pt.getNumber("WEBGL_VERSION");return 0===e?0:St(e)})),Pt.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",(function(){return Pt.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&(e=navigator.userAgent||navigator.vendor||window.opera,!(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))));var e})),Pt.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",(function(){return It(Pt.getNumber("WEBGL_VERSION"))})),Pt.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",(function(){return!Pt.getBool("WEBGL_FORCE_F16_TEXTURES")&&Pt.getBool("WEBGL_RENDER_FLOAT32_CAPABLE")})),Pt.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",(function(){return Ot(Pt.getNumber("WEBGL_VERSION"))})),Pt.registerFlag("WEBGL_FENCE_API_ENABLED",(function(){return Dt(Pt.getNumber("WEBGL_VERSION"))})),Pt.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",(function(){return Pt.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0})),pe=Mt;var en=Zt({complex_:function(e,t){var n=zt(e,"real","complex"),r=zt(t,"imag","complex");return C(n.shape,r.shape,"real and imag shapes, "+n.shape+" and "+r.shape+", must match in call to tf.complex()."),Oe.runKernelFunc((function(e){return e.complex(n,r)}),{$real:n,$imag:r})}}),tn=Zt({real_:function(e){var t=zt(e,"input","real");return Oe.runKernelFunc((function(e){return e.real(t)}),{$input:t})}}),nn=Zt({imag_:function(e){var t=zt(e,"input","imag");return Oe.runKernelFunc((function(e){return e.imag(t)}),{$input:t})}});function rn(e,t,n){return on(e,t,Wt(e,n),n)}function on(e,t,n,r){if(null==r&&(r=K(e)),"complex64"===r)throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!z(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e)throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(null!=t){ne(t);var o=S(t),a=S(n);E(o===a,(function(){return"Based on the provided shape, ["+t+"], the tensor should have "+o+" values but has "+a}));for(var i=0;i<n.length;++i){var u=n[i],s=i!==n.length-1||u!==S(t.slice(i));E(n[i]===t[i]||!s,(function(){return"Error creating a new Tensor. Inferred shape ("+n+") does not match the provided shape ("+t+"). "}))}}return z(e)||Array.isArray(e)||(e=[e]),t=t||n,e="string"!==r?Q(e,r,f().getBool("DEBUG")):_(e,[],!0),Oe.makeTensor(e,t,r)}function an(e,t){if((z(e)&&"string"!==t||Array.isArray(e))&&"complex64"!==t)throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if("string"===t&&z(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return on(e,[],[],t)}function un(e,t){k(e);var n=Wt(e,t);if(1!==n.length)throw new Error("tensor1d() requires values to be a flat/TypedArray");return on(e,null,n,t)}function sn(e,t,n){if(k(e),null!=t&&2!==t.length)throw new Error("tensor2d() requires shape to have two numbers");var r=Wt(e,n);if(2!==r.length&&1!==r.length)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return on(e,t,r,n)}function cn(e,t,n){if(k(e),null!=t&&3!==t.length)throw new Error("tensor3d() requires shape to have three numbers");var r=Wt(e,n);if(3!==r.length&&1!==r.length)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return on(e,t,r,n)}function ln(e,t,n){if(k(e),null!=t&&4!==t.length)throw new Error("tensor4d() requires shape to have four numbers");var r=Wt(e,n);if(4!==r.length&&1!==r.length)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return on(e,t,r,n)}function fn(e,t){if(void 0===t&&(t="float32"),"complex64"===t){var n=fn(e,"float32"),r=dn(e,"float32");return en(n,r)}var o=Z(S(e),t);return Oe.makeTensor(o,e,t)}function dn(e,t){if(void 0===t&&(t="float32"),"complex64"===t){var n=dn(e,"float32"),r=dn(e,"float32");return en(n,r)}var o=ee(S(e),t);return Oe.makeTensor(o,e,t)}function pn(e,t,n){return Oe.runKernelFunc((function(r){return r.fill(e,t,n)}),{})}function hn(e,t,n,r){if(void 0===n&&(n=1),void 0===r&&(r="float32"),0===n)throw new Error("Cannot have a step of zero");if(e===t||e<t&&n<0||t<e&&n>1)return dn([0],r);var o=ee(Math.abs(Math.ceil((t-e)/n)),r);t<e&&1===n&&(n=-1),o[0]=e;for(var a=1;a<o.length;a++)o[a]=o[a-1]+n;return un(o,r)}var vn=Zt({onesLike_:function(e){var t=zt(e,"x","onesLike");if("complex64"===t.dtype){var n=vn(tn(t)),r=mn(nn(t));return en(n,r)}return Oe.runKernelFunc((function(e){return e.onesLike(t)}),{$x:t},(function(e,t){return{$x:function(){return mn(e)}}}))}}),mn=Zt({zerosLike_:function(e){var t=zt(e,"x","zerosLike");return Oe.runKernelFunc((function(e){return e.zerosLike(t)}),{$x:t},(function(e,t){return{$x:function(){return mn(e)}}}))}}),gn=Zt({concat_:function(e,t){void 0===t&&(t=0),E(e.length>=1,(function(){return"Pass at least one tensor to concat"}));var n=jt(e,"tensors","concat");"complex64"===n[0].dtype&&n.forEach((function(e){if("complex64"!==e.dtype)throw new Error("Cannot concatenate complex64 tensors with a tensor\n with dtype "+e.dtype+". ")})),t=P(t,n[0].shape)[0];var r=Jt(n.map((function(e){return e.shape})),t);if(0===S(r))return rn([],r);if(1===(n=n.filter((function(e){return e.size>0}))).length)return n[0];var o=n.map((function(e){return e.shape}));Qt(o,t);var a=n,i={axis:t};return Oe.runKernelFunc((function(e){return e.concat(n,t)}),a,(function(e){var n=o.map((function(e){return e[t]}));return En(e,n,t).map((function(e){return function(){return e}}))}),"Concat",i)}}),yn=Zt({concat1d_:function(e){return gn(e,0)}}),bn=Zt({concat2d_:function(e,t){return gn(e,t)}}),xn=Zt({concat3d_:function(e,t){return gn(e,t)}}),wn=Zt({concat4d_:function(e,t){return gn(e,t)}}),En=Zt({split_:function(e,t,n){void 0===n&&(n=0);var r,o=zt(e,"x","split");return n=P(n,o.shape)[0],"number"==typeof t?(E(o.shape[n]%t==0,(function(){return"Number of splits must evenly divide the axis."})),r=new Array(t).fill(o.shape[n]/t)):(E(o.shape[n]===t.reduce((function(e,t){return e+t})),(function(){return"The sum of sizes must match the size of the axis dimension."})),r=t),Oe.runKernelFunc((function(e){return e.split(o,r,n)}),{$x:o},(function(e){return{$x:function(){return gn(e,n)}}}))}});function Cn(e,t){return e(t={exports:{}},t.exports),t.exports}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==e||"undefined"!=typeof self&&self;var kn=Cn((function(e){!function(e,t,n){function r(e){var t,n=this,r=(t=4022871197,function(e){e=e.toString();for(var n=0;n<e.length;n++){var r=.02519603282416938*(t+=e.charCodeAt(n));r-=t=r>>>0,t=(r*=t)>>>0,t+=4294967296*(r-=t)}return 2.3283064365386963e-10*(t>>>0)});n.next=function(){var e=2091639*n.s0+2.3283064365386963e-10*n.c;return n.s0=n.s1,n.s1=n.s2,n.s2=e-(n.c=0|e)},n.c=1,n.s0=r(" "),n.s1=r(" "),n.s2=r(" "),n.s0-=r(e),n.s0<0&&(n.s0+=1),n.s1-=r(e),n.s1<0&&(n.s1+=1),n.s2-=r(e),n.s2<0&&(n.s2+=1),r=null}function o(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function a(e,t){var n=new r(e),a=t&&t.state,i=n.next;return i.int32=function(){return 4294967296*n.next()|0},i.double=function(){return i()+11102230246251565e-32*(2097152*i()|0)},i.quick=i,a&&("object"==typeof a&&o(a,n),i.state=function(){return o(n,{})}),i}t&&t.exports?t.exports=a:this.alea=a}(0,e)})),_n=Cn((function(e){!function(e,t,n){function r(e){var t=this,n="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:n+=e;for(var r=0;r<n.length+64;r++)t.x^=0|n.charCodeAt(r),t.next()}function o(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 n=new r(e),a=t&&t.state,i=function(){return(n.next()>>>0)/4294967296};return i.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&&("object"==typeof a&&o(a,n),i.state=function(){return o(n,{})}),i}t&&t.exports?t.exports=a:this.xor128=a}(0,e)})),Sn=Cn((function(e){!function(e,t,n){function r(e){var t=this,n="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:n+=e;for(var r=0;r<n.length+64;r++)t.x^=0|n.charCodeAt(r),r==n.length&&(t.d=t.x<<10^t.x>>>4),t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function a(e,t){var n=new r(e),a=t&&t.state,i=function(){return(n.next()>>>0)/4294967296};return i.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&&("object"==typeof a&&o(a,n),i.state=function(){return o(n,{})}),i}t&&t.exports?t.exports=a:this.xorwow=a}(0,e)})),Rn=Cn((function(e){!function(e,t,n){function r(e){var t=this;t.next=function(){var e,n,r=t.x,o=t.i;return e=r[o],n=(e^=e>>>7)^e<<24,n^=(e=r[o+1&7])^e>>>10,n^=(e=r[o+3&7])^e>>>3,n^=(e=r[o+4&7])^e<<7,e=r[o+7&7],n^=(e^=e<<13)^e<<9,r[o]=n,t.i=o+1&7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=""+t,n=0;n<t.length;++n)r[7&n]=r[7&n]<<15^t.charCodeAt(n)+r[n+1&7]<<13;for(;r.length<8;)r.push(0);for(n=0;n<8&&0===r[n];++n);for(8==n?r[7]=-1:r[n],e.x=r,e.i=0,n=256;n>0;--n)e.next()}(t,e)}function o(e,t){return t.x=e.x.slice(),t.i=e.i,t}function a(e,t){null==e&&(e=+new Date);var n=new r(e),a=t&&t.state,i=function(){return(n.next()>>>0)/4294967296};return i.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&&(a.x&&o(a,n),i.state=function(){return o(n,{})}),i}t&&t.exports?t.exports=a:this.xorshift7=a}(0,e)})),Tn=Cn((function(e){!function(e,t,n){function r(e){var t=this;t.next=function(){var e,n,r=t.w,o=t.X,a=t.i;return t.w=r=r+1640531527|0,n=o[a+34&127],e=o[a=a+1&127],n^=n<<13,e^=e<<17,n^=n>>>15,e^=e>>>12,n=o[a]=n^e,t.i=a,n+(r^r>>>16)|0},function(e,t){var n,r,o,a,i,u=[],s=128;for(t===(0|t)?(r=t,t=null):(t+="\0",r=0,s=Math.max(s,t.length)),o=0,a=-32;a<s;++a)t&&(r^=t.charCodeAt((a+32)%t.length)),0===a&&(i=r),r^=r<<10,r^=r>>>15,r^=r<<4,r^=r>>>13,a>=0&&(i=i+1640531527|0,o=0==(n=u[127&a]^=r+i)?o+1:0);for(o>=128&&(u[127&(t&&t.length||0)]=-1),o=127,a=512;a>0;--a)r=u[o+34&127],n=u[o=o+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,u[o]=r^n;e.w=i,e.X=u,e.i=o}(t,e)}function o(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 n=new r(e),a=t&&t.state,i=function(){return(n.next()>>>0)/4294967296};return i.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&&(a.X&&o(a,n),i.state=function(){return o(n,{})}),i}t&&t.exports?t.exports=a:this.xor4096=a}(0,e)})),In=Cn((function(e){!function(e,t,n){function r(e){var t=this,n="";t.next=function(){var e=t.b,n=t.c,r=t.d,o=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^o,o=o-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^o,t.a=o-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):n+=e;for(var r=0;r<n.length+20;r++)t.b^=0|n.charCodeAt(r),t.next()}function o(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 n=new r(e),a=t&&t.state,i=function(){return(n.next()>>>0)/4294967296};return i.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},i.int32=n.next,i.quick=i,a&&("object"==typeof a&&o(a,n),i.state=function(){return o(n,{})}),i}t&&t.exports?t.exports=a:this.tychei=a}(0,e)})),On=Cn((function(e){!function(t,r){var o,a=this,i=256,u=r.pow(i,6),s=r.pow(2,52),c=2*s,l=255;function f(e,n,l){var f=[],m=h(function e(t,n){var r,o=[],a=typeof t;if(n&&"object"==a)for(r in t)try{o.push(e(t[r],n-1))}catch(e){}return o.length?o:"string"==a?t:t+"\0"}((n=1==n?{entropy:!0}:n||{}).entropy?[e,v(t)]:null==e?function(){try{var e;return o&&(e=o.randomBytes)?e=e(i):(e=new Uint8Array(i),(a.crypto||a.msCrypto).getRandomValues(e)),v(e)}catch(e){var n=a.navigator,r=n&&n.plugins;return[+new Date,a,r,a.screen,v(t)]}}():e,3),f),g=new d(f),y=function(){for(var e=g.g(6),t=u,n=0;e<s;)e=(e+n)*i,t*=i,n=g.g(1);for(;e>=c;)e/=2,t/=2,n>>>=1;return(e+n)/t};return y.int32=function(){return 0|g.g(4)},y.quick=function(){return g.g(4)/4294967296},y.double=y,h(v(g.S),t),(n.pass||l||function(e,t,n,o){return o&&(o.S&&p(o,g),e.state=function(){return p(g,{})}),n?(r.random=e,t):e})(y,m,"global"in n?n.global:this==r,n.state)}function d(e){var t,n=e.length,r=this,o=0,a=r.i=r.j=0,u=r.S=[];for(n||(e=[n++]);o<i;)u[o]=o++;for(o=0;o<i;o++)u[o]=u[a=l&a+e[o%n]+(t=u[o])],u[a]=t;(r.g=function(e){for(var t,n=0,o=r.i,a=r.j,u=r.S;e--;)t=u[o=l&o+1],n=n*i+u[l&(u[o]=u[a=l&a+t])+(u[a]=t)];return r.i=o,r.j=a,n})(i)}function p(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function h(e,t){for(var n,r=e+"",o=0;o<r.length;)t[l&o]=l&(n^=19*t[l&o])+r.charCodeAt(o++);return v(t)}function v(e){return String.fromCharCode.apply(0,e)}if(r.seedrandom=f,h(r.random(),t),e.exports){e.exports=f;try{o=n(61)}catch(e){}}}([],Math)}));On.alea=kn,On.xor128=_n,On.xorwow=Sn,On.xorshift7=Rn,On.xor4096=Tn,On.tychei=In;var An=On.alea,Dn=function(){function e(e,t,n,r,o){this.mean=e,this.stdDev=t,this.dtype=n,this.nextVal=NaN,this.truncated=r,this.truncated&&(this.upper=this.mean+2*this.stdDev,this.lower=this.mean-2*this.stdDev);var a=o||Math.random();this.random=An(a.toString())}return e.prototype.nextValue=function(){if(!isNaN(this.nextVal)){var e=this.nextVal;return this.nextVal=NaN,e}for(var t,n,r=!1;!r;){var o=void 0,a=void 0,i=void 0;do{i=(o=2*this.random()-1)*o+(a=2*this.random()-1)*a}while(i>=1||0===i);var u=Math.sqrt(-2*Math.log(i)/i);t=this.mean+this.stdDev*o*u,n=this.mean+this.stdDev*a*u,this.truncated&&!this.isValidTruncated(t)||(r=!0)}return this.truncated&&!this.isValidTruncated(n)||(this.nextVal=this.convertValue(n)),this.convertValue(t)},e.prototype.convertValue=function(e){return null==this.dtype||"float32"===this.dtype?e:Math.round(e)},e.prototype.isValidTruncated=function(e){return e<=this.upper&&e>=this.lower},e}(),Nn=function(){function e(e,t,n,r){this.alpha=e,this.beta=1/t,this.dtype=n;var o=r||Math.random();this.randu=An(o.toString()),this.randn=new Dn(0,1,n,!1,this.randu()),this.d=e<1?e+2/3:e-1/3,this.c=1/Math.sqrt(9*this.d)}return e.prototype.nextValue=function(){for(var e,t,n,r,o,a;;){do{r=this.randn.nextValue(),a=1+this.c*r}while(a<=0);if(a*=a*a,t=1-.331*(e=r*r)*e,n=.5*e+this.d*(1-a+Math.log(a)),(o=this.randu())<t||Math.log(o)<n)break}return a=1/this.beta*this.d*a,this.alpha<1&&(a*=Math.pow(this.randu(),1/this.alpha)),this.convertValue(a)},e.prototype.convertValue=function(e){return"float32"===this.dtype?e:Math.round(e)},e}(),Pn=function(){function e(e,t,n,r){var o=this;if(void 0===e&&(e=0),void 0===t&&(t=1),this.canReturnFloat=function(){return null==o.dtype||"float32"===o.dtype},this.min=e,this.range=t-e,this.dtype=n,null==r&&(r=Math.random()),"number"==typeof r&&(r=r.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error("The difference between "+e+" - "+t+" <= 1 and dtype is not float");this.random=An(r)}return e.prototype.convertValue=function(e){return this.canReturnFloat()?e:Math.round(e)},e.prototype.nextValue=function(){return this.convertValue(this.min+this.range*this.random())},e}();function Mn(e,t,n){return void 0===t&&(t="float32"),t=t||"float32",ne(e),new le(e,t,n)}var Fn=Zt({batchToSpaceND_:function(e,t,n){var r=zt(e,"x","batchToSpaceND"),o=t.reduce((function(e,t){return e*t}));return E(r.rank>=1+t.length,(function(){return"input rank is "+r.rank+" but should be > than blockShape.length "+t.length})),E(n.length===t.length,(function(){return"crops.length is "+n.length+" but should be equal to blockShape.length "+t.length})),E(r.shape[0]%o==0,(function(){return"input tensor batch is "+r.shape[0]+" but is not divisible by the product of the elements of blockShape "+t.join(" * ")+" === "+o})),Oe.runKernelFunc((function(e){return e.batchToSpaceND(r,t,n)}),{$x:r},(function(e){return{$x:function(){return e.spaceToBatchND(t,n)}}}))}}),Bn=Zt({broadcastTo_:function(e,t){var n=zt(e,"broadcastTo","x"),r=n.shape;if(t.some((function(e){return!(e>0)||e%1!=0})))throw new Error("broadcastTo(): Invalid broadcast shape ["+t+"].");if(t.length<n.rank)throw new Error("broadcastTo(): shape.length="+t.length+" < input.rank="+n.rank+".");if(t.length>n.rank){for(var o=n.shape.slice();o.length<t.length;)o.unshift(1);n=n.reshape(o)}for(var a=Array.from(t),i=t.length-1;i>=0;i--)if(n.shape[i]===t[i])a[i]=1;else if(1!==n.shape[i])throw new Error("broadcastTo(): ["+r+"] cannot be broadcast to ["+t+"].");var u=a.map((function(e,t){return e>1?t:-1})).filter((function(e){return e>=0}));return 0===u.length?n.clone():Oe.runKernelFunc((function(e){return e.tile(n,a)}),{input:n},(function(e){return{input:function(){return e.sum(u,!0)}}}))}}),Ln=Zt({cast_:function(e,t){var n=zt(e,"x","cast");if(!W(t))throw new Error("Failed to cast to unknown dtype "+t);if("string"===t&&"string"!==n.dtype||"string"!==t&&"string"===n.dtype)throw new Error("Only strings can be casted to strings");var r={dtype:t};return Oe.runKernelFunc((function(e){return e.cast(n,t)}),{x:n},(function(e){return{x:function(){return e.clone()}}}),"Cast",r)}}),Wn=Zt({clone_:function(e){var t=zt(e,"x","clone",null);return Oe.runKernelFunc((function(){return Oe.makeTensorFromDataId(t.dataId,t.shape,t.dtype)}),{$x:t},(function(e){return{$x:function(){return e.toFloat()}}}))}}),Un=Zt({cumsum_:function(e,t,n,r){void 0===t&&(t=0),void 0===n&&(n=!1),void 0===r&&(r=!1);var o=zt(e,"x","cumsum"),a=Xt([t|=0],o.rank),i=o;null!=a&&(i=o.transpose(a));var u=Yt(1,o.rank)[0],s=Oe.runKernelFunc((function(e){return e.cumsum(i,u,n,r)}),{permutedX:i},(function(e){return{permutedX:function(){return e.cumsum(t,n,!r)}}}));return null!=a&&(s=s.transpose(a)),s}}),zn=Zt({depthToSpace_:function(e,t,n){void 0===n&&(n="NHWC");var r=zt(e,"x","depthToSpace"),o="NHWC"===n?r.shape[1]:r.shape[2],a="NHWC"===n?r.shape[2]:r.shape[3],i="NHWC"===n?r.shape[3]:r.shape[1];return E(o*t>=0,(function(){return"Negative dimension size caused by overflow when multiplying\n "+o+" and "+t+" for depthToSpace with input shape\n "+r.shape})),E(a*t>=0,(function(){return"Negative dimension size caused by overflow when multiplying\n "+a+" and "+t+" for depthToSpace with input shape\n "+r.shape})),E(i%(t*t)==0,(function(){return"Dimension size must be evenly divisible by "+t*t+" but is "+i+" for depthToSpace with input shape "+r.shape})),Oe.runKernelFunc((function(e){return e.depthToSpace(r,t,n)}),{$x:r})}}),jn=Zt({expandDims_:function(e,t){void 0===t&&(t=0);var n=zt(e,"x","expandDims",null);E(t<=n.rank,(function(){return"Axis must be <= rank of the tensor"}));var r=n.shape.slice();return t<0&&(E(-(n.rank+1)<=t,(function(){return"Axis must be in the interval ["+-(n.rank+1)+", "+n.rank+"]"})),t=n.rank+t+1),r.splice(t,0,1),tr(n,r)}}),Vn=Zt({eye_:function(e,t,n,r){void 0===r&&(r="float32"),null==t&&(t=e);for(var o=Mn([e,t],r),a=e<=t?e:t,i=0;i<a;++i)o.set(1,i,i);var u=o.toTensor().as2D(e,t);if(null==n)return u;if(1===n.length)return ar(jn(u,0),[n[0],1,1]);if(2===n.length)return ar(jn(jn(u,0),0),[n[0],n[1],1,1]);if(3===n.length)return ar(jn(jn(jn(u,0),0),0),[n[0],n[1],n[2],1,1]);throw new Error("eye() currently supports only 1D and 2D batchShapes, but received "+n.length+"D.")}}),Hn=Zt({multinomial_:function(e,t,n,r){void 0===r&&(r=!1);var o=zt(e,"logits","multinomial"),a=o.size,i=o.rank;if(a<2)throw new Error("Error in multinomial: you need at least 2 outcomes, but got "+a+".");if(i>2)throw new Error("Rank of probabilities must be 1 or 2, but is "+i);n=n||Math.random();var u=1===i?o.as2D(1,-1):o,s=Oe.runKernelFunc((function(e){return e.multinomial(u,r,t,n)}),{logits2D:u});return 1===i?s.as1D():s}}),Gn=Zt({oneHot_:function(e,t,n,r){if(void 0===n&&(n=1),void 0===r&&(r=0),t<2)throw new Error("Error in oneHot: depth must be >=2, but it is "+t);var o=zt(e,"indices","oneHot","int32"),a=o.shape.concat([t]);return o=o.flatten(),Oe.runKernelFunc((function(e){return e.oneHot(o,t,n,r)}),{$indices:o},(function(e){return{$indices:function(){return dn(o.shape,"float32")}}})).reshape(a)}}),qn=Zt({pad_:function(e,t,n){void 0===n&&(n=0);var r=zt(e,"x","pad");if(0===r.rank)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");var o={paddings:t,constantValue:n};return Oe.runKernelFunc((function(e){return e.pad(r,t,n)}),{x:r},(function(e){var n=t.map((function(e){return e[0]}));return{x:function(){return e.slice(n,r.shape)}}}),"PadV2",o)}}),Kn=Zt({pad1d_:function(e,t,n){return void 0===n&&(n=0),E(2===t.length,(function(){return"Invalid number of paddings. Must be length of 2."})),qn(e,[t],n)}}),Xn=Zt({pad2d_:function(e,t,n){return void 0===n&&(n=0),E(2===t.length&&2===t[0].length&&2===t[1].length,(function(){return"Invalid number of paddings. Must be length of 2 each."})),qn(e,t,n)}}),$n=Zt({pad3d_:function(e,t,n){return void 0===n&&(n=0),E(3===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length,(function(){return"Invalid number of paddings. Must be length of 2 each."})),qn(e,t,n)}}),Yn=Zt({pad4d_:function(e,t,n){return void 0===n&&(n=0),E(4===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length&&2===t[3].length,(function(){return"Invalid number of paddings. Must be length of 2 each."})),qn(e,t,n)}}),Qn=Zt({rand_:function(e,t,n){var r=S(e),o=null;if(null==n||"float32"===n)o=new Float32Array(r);else if("int32"===n)o=new Int32Array(r);else{if("bool"!==n)throw new Error("Unknown data type "+n);o=new Uint8Array(r)}for(var a=0;a<r;a++)o[a]=t();return Oe.makeTensor(o,e,n)}}),Jn=Zt({randomNormal_:function(e,t,n,r,o){if(void 0===t&&(t=0),void 0===n&&(n=1),null!=r&&"bool"===r)throw new Error("Unsupported data type "+r);for(var a=new Dn(t,n,r,!1,o),i=Mn(e,r),u=0;u<i.values.length;u++)i.values[u]=a.nextValue();return i.toTensor()}}),Zn=Zt({randomGamma_:function(e,t,n,r,o){if(void 0===n&&(n=1),void 0===r&&(r="float32"),null==n&&(n=1),null==r&&(r="float32"),"float32"!==r&&"int32"!==r)throw new Error("Unsupported data type "+r);for(var a=new Nn(t,n,r,o),i=Mn(e,r),u=0;u<i.values.length;u++)i.values[u]=a.nextValue();return i.toTensor()}}),er=Zt({randomUniform_:function(e,t,n,r,o){void 0===t&&(t=0),void 0===n&&(n=1),void 0===r&&(r="float32");for(var a=Mn(e,r),i=new Pn(t,n,null,o),u=0;u<a.values.length;u++)a.values[u]=i.nextValue();return a.toTensor()}}),tr=Zt({reshape_:function(e,t){var n=zt(e,"x","reshape",null);t=N(t,n.size),E(n.size===S(t),(function(){return"new shape and old shape must have the same number of elements."}));var r={shape:t};return Oe.runKernelFunc((function(e){return e.reshape(n,t)}),{x:n},(function(e){return{x:function(){return e.reshape(n.shape)}}}),"Reshape",r)}}),nr=Zt({spaceToBatchND_:function(e,t,n){var r=zt(e,"x","spaceToBatchND");return E(r.rank>=1+t.length,(function(){return"input rank "+r.rank+" should be > than [blockShape] "+t.length})),E(n.length===t.length,(function(){return"paddings.shape[0] "+n.length+" must be equal to [blockShape] "+t.length})),E(r.shape.reduce((function(e,r,o){return o>0&&o<=t.length?e&&(r+n[o-1][0]+n[o-1][1])%t[o-1]==0:e}),!0),(function(){return"input spatial dimensions "+r.shape.slice(1)+" with paddings "+n.toString()+" must be divisible by blockShapes "+t.toString()})),Oe.runKernelFunc((function(e){return e.spaceToBatchND(r,t,n)}),{$x:r},(function(e){return{$x:function(){return e.batchToSpaceND(t,n)}}}))}}),rr=Zt({squeeze_:function(e,t){var n=zt(e,"x","squeeze");return tr(n,M(n.shape,t).newShape)}}),or=Zt({stack_:function(e,t){void 0===t&&(t=0);var n=jt(e,"tensors","stack");if(E(n.length>=1,(function(){return"Pass at least one tensor to tf.stack"})),1===n.length)return n[0].expandDims(t);var r=n[0].rank,o=n[0].shape,a=n[0].dtype;E(t<=r,(function(){return"Axis must be <= rank of the tensor"})),n.forEach((function(e){C(o,e.shape,"All tensors passed to stack must have matching shapes")})),n.forEach((function(e){E(a===e.dtype,(function(){return"All tensors passed to stack must have matching dtypes"}))}));var i=n.map((function(e){return e.expandDims(t)}));return gn(i,t)}}),ar=Zt({tile_:function(e,t){var n=zt(e,"x","tile",null);return E(n.rank===t.length,(function(){return"Error in transpose: rank of input "+n.rank+" must match length of reps "+t+"."})),Oe.runKernelFunc((function(e,r){var o=e.tile(n,t);return r([n]),o}),{$x:n},(function(e,n){var r=n[0];return{$x:function(){var n=mn(r);if(1===r.rank)for(var o=0;o<t[0];++o)n=n.add(e.slice([o*r.shape[0]],[r.shape[0]]));else if(2===r.rank)for(o=0;o<t[0];++o)for(var a=0;a<t[1];++a)n=n.add(e.slice([o*r.shape[0],a*r.shape[1]],[r.shape[0],r.shape[1]]));else if(3===r.rank)for(o=0;o<t[0];++o)for(a=0;a<t[1];++a)for(var i=0;i<t[2];++i)n=n.add(e.slice([o*r.shape[0],a*r.shape[1],i*r.shape[2]],[r.shape[0],r.shape[1],r.shape[2]]));else{if(4!==r.rank)throw new Error("Gradient for tile operation is not implemented for rank-"+r.rank+" tensors yet.");for(o=0;o<t[0];++o)for(a=0;a<t[1];++a)for(i=0;i<t[2];++i)for(var u=0;u<t[3];++u)n=n.add(e.slice([o*r.shape[0],a*r.shape[1],i*r.shape[2],u*r.shape[3]],[r.shape[0],r.shape[1],r.shape[2],r.shape[3]]))}return n}}}))}}),ir=Zt({truncatedNormal_:function(e,t,n,r,o){if(void 0===t&&(t=0),void 0===n&&(n=1),null!=r&&"bool"===r)throw new Error("Unsupported data type "+r);for(var a=new Dn(t,n,r,!0,o),i=Mn(e,r),u=0;u<i.values.length;u++)i.values[u]=a.nextValue();return i.toTensor()}}),ur=Zt({unstack_:function(e,t){void 0===t&&(t=0),t=t||0;var n=zt(e,"x","unstack");return E(t>=-n.shape.length&&t<n.shape.length,(function(){return"Axis = "+t+" is not in [-"+n.shape.length+", "+n.shape.length+")"})),t<0&&(t+=n.shape.length),Oe.runKernelFunc((function(e){return e.unstack(n,t)}),{$x:n},(function(e){return{$x:function(){return or(e,t)}}}))}});function sr(e,t,n,r){void 0===r&&(r=!0);var o=[];if(r)(o=o.concat(t.slice(0))).push(e[0]/n),o=o.concat(e.slice(1));else{o=o.concat(e[0]);for(var a=t.length,i=0;i<a;++i)o=o.concat([e[i+1]/t[i],t[i]]);o=o.concat(e.slice(a+1))}return o}function cr(e,t,n){void 0===n&&(n=!0);var r=[];if(n){r.push(t);for(var o=t+1;o<e;++o)o<=2*t?(r.push(o),r.push(o-(t+1))):r.push(o)}else{var a=[],i=[];for(o=1;o<e;++o)o>=2*t+1||o%2==1?i.push(o):a.push(o);r.push.apply(r,a),r.push(0),r.push.apply(r,i)}return r}function lr(e,t,n,r){void 0===r&&(r=!0);var o=[];r?o.push(e[0]/n):o.push(e[0]*n);for(var a=1;a<e.length;++a)a<=t.length?r?o.push(t[a-1]*e[a]):o.push(e[a]/t[a-1]):o.push(e[a]);return o}function fr(e,t){for(var n=[0],r=0;r<t;++r)n.push(e[r][0]);return n}function dr(e,t,n){for(var r=e.slice(0,1),o=0;o<n;++o)r.push(e[o+1]-t[o][0]-t[o][1]);return r}function pr(e,t){if(e.rank<1)throw new Error("tf.gatherND() expects the input to be rank 1 or higher, but the rank was "+e.rank+".");if(t.rank<1)throw new Error("tf.gatherND() expects the indices to be rank 1 or higher, but the rank was "+t.rank+".");if("int32"!==t.dtype)throw new Error("tf.gatherND() expects the indices to be int32 type, but the dtype was "+t.dtype+".");if(t.shape[t.rank-1]>e.rank)throw new Error("index innermost dimension length must be <= tensor rank; saw: "+t.shape[t.rank-1]+" vs. "+e.rank);if(0===e.size)throw new Error("Requested more than 0 entries, but input is empty. Input shape: "+e.shape+".");for(var n=t.shape,r=n[n.length-1],o=1,a=0;a<n.length-1;++a)o*=n[a];var i=e.shape,u=n.slice();u.pop();var s=1;for(a=r;a<e.rank;++a)s*=i[a],u.push(i[a]);var c=Y(e.shape).map((function(e){return e/s})).concat([1]).slice(0,r);return[u,o,s,c]}function hr(e){return e<=30?e:$(e,Math.floor(Math.sqrt(e)))}function vr(e,t,n){for(var r=t.rank>1?t.shape[t.rank-1]:1,o=n.length,a=1,i=r;i<o;++i)a*=n[i];var u=r<1?1:r;return{sliceRank:r,numUpdates:t.size/u,sliceSize:a,strides:Y(n.slice(0,r)).concat([1]),outputSize:S(n)}}function mr(e,t,n){E(e.rank===t.length,(function(){return"Error in slice"+e.rank+"D: Length of begin "+t+" must match the rank of the array ("+e.rank+")."})),E(e.rank===n.length,(function(){return"Error in slice"+e.rank+"D: Length of size "+n+" must match the rank of the array ("+e.rank+")."}));for(var r=function(r){E(t[r]+n[r]<=e.shape[r],(function(){return"Error in slice"+e.rank+"D: begin["+r+"] + size["+r+"] ("+(t[r]+n[r])+") would overflow input.shape["+r+"] ("+e.shape[r]+")"}))},o=0;o<e.rank;++o)r(o)}function gr(e){for(var t=[],n=0;e>0;)1&e&&t.push(n),e/=2,n++;return t}function yr(e,t,n){for(var r=[],o=0;o<e.length;o++)r[o]=Math.ceil((t[o]-e[o])/n[o]);return r}function br(e,t,n,r,o){var a=t[o],i=n[o]||1;(e&1<<o||null==a)&&(a=i>0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);var u=r[o];return a<0&&(a+=u),b(0,a,u-1)}function xr(e,t,n,r,o){var a=t[o],i=n[o]||1;(e&1<<o||null==a)&&(a=i>0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);var u=r[o];return a<0&&(a+=u),i>0?b(0,a,u):b(-1,a,u-1)}function wr(e,t,n){for(var r=n.length,o=0;o<n.length;o++)if(n[o]>1){r=o;break}for(o=r+1;o<n.length;o++)if(t[o]>0||n[o]!==e[o])return!1;return!0}function Er(e,t){for(var n=e.length>0?e[e.length-1]:1,r=0;r<e.length-1;r++)n+=e[r]*t[r];return n}function Cr(e){return Oe.customGrad(e)}Object.freeze({assertParamsValid:mr,maskToAxes:gr,computeOutShape:yr,startForAxis:br,stopForAxis:xr,isSliceContinous:wr,computeFlatOffset:Er});var kr=Zt({softmax_:function(e,t){void 0===t&&(t=-1);var n=zt(e,"logits","softmax");if(-1===t&&(t=n.rank-1),t!==n.rank-1)throw Error("Softmax along a non-last dimension is not yet supported. Logits was rank "+n.rank+" and dim was "+t);return Cr((function(e,n){var r=e.logSumExp([t],!0),o=e.toFloat().sub(r).exp();return n([o]),{value:o,gradFunc:function(e,n){var r=n[0],o=e.mul(r);return o.sub(o.sum([t],!0).mul(r))}}}))(n)}}),_r=Zt({logSoftmax_:function(e,t){void 0===t&&(t=-1);var n=zt(e,"logits","logSoftmax");if(-1===t&&(t=n.rank-1),t!==n.rank-1)throw Error("Log Softmax along a non-last dimension is not yet supported. Logits was rank "+n.rank+" and axis was "+t);return Cr((function(e,n){var r=e.max(t,!0),o=e.sub(r),a=o.toFloat().sub(o.exp().sum(t,!0).log());return n([a]),{value:a,gradFunc:function(e,n){var r=n[0].exp();return e.sub(e.sum(t,!0).mul(r))}}}))(n)}}),Sr=function(){function e(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}return e.prototype.get=function(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)},e.prototype.set=function(e,t){this.dataIdsCount++,this.data.set(e,t)},e.prototype.has=function(e){return this.data.has(e)},e.prototype.delete=function(e){return this.dataIdsCount--,this.data.delete(e)},e.prototype.numDataIds=function(){return this.dataIdsCount},e}(),Rr=function(){function e(){}return e.prototype.time=function(e){return Tr("time")},e.prototype.read=function(e){return Tr("read")},e.prototype.readSync=function(e){return Tr("readSync")},e.prototype.numDataIds=function(){return Tr("numDataIds")},e.prototype.disposeData=function(e){return Tr("disposeData")},e.prototype.write=function(e,t,n){return Tr("write")},e.prototype.move=function(e,t,n,r){return Tr("move")},e.prototype.memory=function(){return Tr("memory")},e.prototype.floatPrecision=function(){return Tr("floatPrecision")},e.prototype.epsilon=function(){return 32===this.floatPrecision()?1e-7:1e-4},e.prototype.batchMatMul=function(e,t,n,r){return Tr("batchMatMul")},e.prototype.fusedBatchMatMul=function(e){return e.a,e.b,e.transposeA,e.transposeB,e.bias,e.activation,e.preluActivationWeights,Tr("fusedBatchMatMul")},e.prototype.slice=function(e,t,n){return Tr("slice")},e.prototype.stridedSlice=function(e,t,n,r){return Tr("stridedSlice")},e.prototype.unstack=function(e,t){return Tr("unstack")},e.prototype.reverse=function(e,t){return Tr("reverse")},e.prototype.concat=function(e,t){return Tr("concat")},e.prototype.neg=function(e){return Tr("neg")},e.prototype.add=function(e,t){return Tr("add")},e.prototype.addN=function(e){return Tr("addN")},e.prototype.subtract=function(e,t){return Tr("subtract")},e.prototype.multiply=function(e,t){return Tr("multiply")},e.prototype.realDivide=function(e,t){return Tr("realDivide")},e.prototype.floorDiv=function(e,t){return Tr("floorDiv")},e.prototype.sum=function(e,t){return Tr("sum")},e.prototype.prod=function(e,t){return Tr("prod")},e.prototype.unsortedSegmentSum=function(e,t,n){return Tr("unsortedSegmentSum")},e.prototype.argMin=function(e,t){return Tr("argMin")},e.prototype.argMax=function(e,t){return Tr("argMax")},e.prototype.equal=function(e,t){return Tr("equal")},e.prototype.notEqual=function(e,t){return Tr("notEqual")},e.prototype.less=function(e,t){return Tr("less")},e.prototype.lessEqual=function(e,t){return Tr("lessEqual")},e.prototype.greater=function(e,t){return Tr("greater")},e.prototype.greaterEqual=function(e,t){return Tr("greaterEqual")},e.prototype.logicalNot=function(e){return Tr("logicalNot")},e.prototype.logicalAnd=function(e,t){return Tr("logicalAnd")},e.prototype.logicalOr=function(e,t){return Tr("logicalOr")},e.prototype.where=function(e){return Tr("where")},e.prototype.select=function(e,t,n){return Tr("select")},e.prototype.topk=function(e,t,n){return Tr("topk")},e.prototype.min=function(e,t){return Tr("min")},e.prototype.minimum=function(e,t){return Tr("minimum")},e.prototype.mod=function(e,t){return Tr("mod")},e.prototype.max=function(e,t){return Tr("max")},e.prototype.maximum=function(e,t){return Tr("maximum")},e.prototype.all=function(e,t){return Tr("all")},e.prototype.any=function(e,t){return Tr("any")},e.prototype.squaredDifference=function(e,t){return Tr("squaredDifference")},e.prototype.ceil=function(e){return Tr("ceil")},e.prototype.floor=function(e){return Tr("floor")},e.prototype.round=function(e){return Tr("round")},e.prototype.sign=function(e){return Tr("sign")},e.prototype.isNaN=function(e){return Tr("isNaN")},e.prototype.isInf=function(e){return Tr("isInf")},e.prototype.isFinite=function(e){return Tr("isFinite")},e.prototype.pow=function(e,t){return Tr("pow")},e.prototype.exp=function(e){return Tr("exp")},e.prototype.expm1=function(e){return Tr("expm1")},e.prototype.log=function(e){return Tr("log")},e.prototype.log1p=function(e){return Tr("log1p")},e.prototype.sqrt=function(e){return Tr("sqrt")},e.prototype.rsqrt=function(e){return Tr("rsqrt")},e.prototype.square=function(e){return Tr("square")},e.prototype.reciprocal=function(e){return Tr("reciprocal")},e.prototype.relu=function(e){return Tr("relu")},e.prototype.relu6=function(e){return Tr("relu6")},e.prototype.prelu=function(e,t){return Tr("prelu")},e.prototype.elu=function(e){return Tr("elu")},e.prototype.eluDer=function(e,t){return Tr("eluDer")},e.prototype.selu=function(e){return Tr("selu")},e.prototype.int=function(e){return Tr("int")},e.prototype.clip=function(e,t,n){return Tr("clip")},e.prototype.abs=function(e){return Tr("abs")},e.prototype.complexAbs=function(e){return Tr("complexAbs")},e.prototype.sigmoid=function(e){return Tr("sigmoid")},e.prototype.softplus=function(e){return Tr("softplus")},e.prototype.sin=function(e){return Tr("sin")},e.prototype.cos=function(e){return Tr("cos")},e.prototype.tan=function(e){return Tr("tan")},e.prototype.asin=function(e){return Tr("asin")},e.prototype.acos=function(e){return Tr("acos")},e.prototype.atan=function(e){return Tr("atan")},e.prototype.atan2=function(e,t){return Tr("atan2")},e.prototype.sinh=function(e){return Tr("sinh")},e.prototype.cosh=function(e){return Tr("cosh")},e.prototype.tanh=function(e){return Tr("tanh")},e.prototype.asinh=function(e){return Tr("asinh")},e.prototype.acosh=function(e){return Tr("acosh")},e.prototype.atanh=function(e){return Tr("atanh")},e.prototype.erf=function(e){return Tr("erf")},e.prototype.step=function(e,t){return Tr("step")},e.prototype.fusedConv2d=function(e){return e.input,e.filter,e.convInfo,e.bias,e.activation,e.preluActivationWeights,Tr("fusedConv2d")},e.prototype.conv2d=function(e,t,n){return Tr("conv2d")},e.prototype.conv2dDerInput=function(e,t,n){return Tr("conv2dDerInput")},e.prototype.conv2dDerFilter=function(e,t,n){return Tr("conv2dDerFilter")},e.prototype.fusedDepthwiseConv2D=function(e){return e.input,e.filter,e.convInfo,e.bias,e.activation,e.preluActivationWeights,Tr("fusedDepthwiseConv2D")},e.prototype.depthwiseConv2D=function(e,t,n){return Tr("depthwiseConv2D")},e.prototype.depthwiseConv2DDerInput=function(e,t,n){return Tr("depthwiseConv2DDerInput")},e.prototype.depthwiseConv2DDerFilter=function(e,t,n){return Tr("depthwiseConv2DDerFilter")},e.prototype.conv3d=function(e,t,n){return Tr("conv3d")},e.prototype.conv3dDerInput=function(e,t,n){return Tr("conv3dDerInput")},e.prototype.conv3dDerFilter=function(e,t,n){return Tr("conv3dDerFilter")},e.prototype.maxPool=function(e,t){return Tr("maxPool")},e.prototype.maxPoolBackprop=function(e,t,n,r){return Tr("maxPoolBackprop")},e.prototype.avgPool=function(e,t){return Tr("avgPool")},e.prototype.avgPoolBackprop=function(e,t,n){return Tr("avgPoolBackprop")},e.prototype.avgPool3d=function(e,t){return Tr("avgPool3d")},e.prototype.avgPool3dBackprop=function(e,t,n){return Tr("avgPool3dBackprop")},e.prototype.maxPool3d=function(e,t){return Tr("maxPool3d")},e.prototype.maxPool3dBackprop=function(e,t,n,r){return Tr("maxPool3dBackprop")},e.prototype.reshape=function(e,t){return Tr("reshape")},e.prototype.cast=function(e,t){return Tr("cast")},e.prototype.tile=function(e,t){return Tr("tile")},e.prototype.pad=function(e,t,n){return Tr("pad")},e.prototype.transpose=function(e,t){return Tr("transpose")},e.prototype.gather=function(e,t,n){return Tr("gather")},e.prototype.gatherND=function(e,t){return Tr("gatherND")},e.prototype.scatterND=function(e,t,n){return Tr("scatterND")},e.prototype.batchToSpaceND=function(e,t,n){return Tr("batchToSpaceND")},e.prototype.spaceToBatchND=function(e,t,n){return Tr("spaceToBatchND")},e.prototype.resizeBilinear=function(e,t,n,r){return Tr("resizeBilinear")},e.prototype.resizeBilinearBackprop=function(e,t,n){return Tr("resizeBilinearBackprop")},e.prototype.resizeNearestNeighbor=function(e,t,n,r){return Tr("resizeNearestNeighbor")},e.prototype.resizeNearestNeighborBackprop=function(e,t,n){return Tr("resizeNearestNeighborBackprop")},e.prototype.batchNormalization=function(e,t,n,r,o,a){return Tr("batchNormalization")},e.prototype.localResponseNormalization4D=function(e,t,n,r,o){return Tr("localResponseNormalization4D")},e.prototype.LRNGrad=function(e,t,n,r,o,a,i){return Tr("LRNGrad")},e.prototype.multinomial=function(e,t,n,r){return Tr("multinomial")},e.prototype.oneHot=function(e,t,n,r){return Tr("oneHot")},e.prototype.cumsum=function(e,t,n,r){return Tr("cumsum")},e.prototype.nonMaxSuppression=function(e,t,n,r,o){return Tr("nonMaxSuppression")},e.prototype.fft=function(e){return Tr("fft")},e.prototype.ifft=function(e){return Tr("ifft")},e.prototype.complex=function(e,t){return Tr("complex")},e.prototype.real=function(e){return Tr("real")},e.prototype.imag=function(e){return Tr("imag")},e.prototype.cropAndResize=function(e,t,n,r,o,a){return Tr("cropAndResize")},e.prototype.depthToSpace=function(e,t,n){return Tr("depthToSpace")},e.prototype.split=function(e,t,n){return Tr("split")},e.prototype.sparseToDense=function(e,t,n,r){return Tr("sparseToDense")},e.prototype.diag=function(e){return Tr("diag")},e.prototype.fill=function(e,t,n){return Tr("fill")},e.prototype.onesLike=function(e){return Tr("onesLike")},e.prototype.zerosLike=function(e){return Tr("zerosLike")},e.prototype.linspace=function(e,t,n){return Tr("linspace")},e.prototype.dispose=function(){return Tr("dispose")},e}();function Tr(e){throw new Error("'"+e+"' not yet implemented or not found in the registry. Did you forget to import the kernel?")}function Ir(e,t){for(var n=e.length,r=[],o=0;o<n;o++){var a=n-1-o,i=e[a]||1;(t[t.length-1-o]||1)>1&&1===i&&r.unshift(a)}return r}function Or(e,t){for(var n=[],r=0;r<t.length;r++){var o=e[e.length-r-1],a=t.length-r-1,i=t[a];(null==o||1===o&&i>1)&&n.unshift(a)}return n}function Ar(e,t){for(var n=[],r=Math.max(e.length,t.length),o=0;o<r;o++){var a=e[e.length-o-1];null==a&&(a=1);var i=t[t.length-o-1];if(null==i&&(i=1),1===a)n.unshift(i);else if(1===i)n.unshift(a);else{if(a!==i)throw Error("Operands could not be broadcast together with shapes "+e+" and "+t+".");n.unshift(a)}}return n}function Dr(e,t,n,r,o,a,i){void 0===i&&(i="channelsLast");var u,s=Br(t),c=s[0],l=s[1];if("channelsLast"===i)u=[c,l,e[3],e[3]];else{if("channelsFirst"!==i)throw new Error("Unknown dataFormat "+i);u=[c,l,e[1],e[1]]}return Pr(e,u,n,r,o,a,!1,i)}function Nr(e,t,n,r,o,a,i){void 0===i&&(i="NDHWC");var u,s,c=Lr(t),l=c[0],f=c[1],d=c[2];if("NDHWC"===i)s="channelsLast",u=[l,f,d,e[4],e[4]];else{if("NCDHW"!==i)throw new Error("Unknown dataFormat "+i);s="channelsFirst",u=[l,f,d,e[1],e[1]]}return Mr(e,u,n,r,o,!1,s,a)}function Pr(e,t,n,r,o,a,i,u){void 0===i&&(i=!1),void 0===u&&(u="channelsLast");var s=[-1,-1,-1,-1],c=s[0],l=s[1],f=s[2],d=s[3];if("channelsLast"===u)c=e[0],l=e[1],f=e[2],d=e[3];else{if("channelsFirst"!==u)throw new Error("Unknown dataFormat "+u);c=e[0],d=e[1],l=e[2],f=e[3]}var p,h=t[0],v=t[1],m=t[3],g=Br(n),y=g[0],b=g[1],x=Br(r),w=x[0],C=x[1],k=Wr(h,w),_=Wr(v,C),S=function(e,t,n,r,o,a,i,u){var s,c,l;if("number"==typeof e){s={top:e,bottom:e,left:e,right:e,type:0===e?"VALID":"NUMBER"};var f=function(e,t,n,r,o){null==r&&(r=Fr(e,t,n));var a=e[1],i=Ur((e[0]-t+2*r)/n+1,o);E(T(i),(function(){return"The output # of rows ("+i+") must be an integer. Change the stride and/or zero pad parameters"}));var u=Ur((a-t+2*r)/n+1,o);return E(T(u),(function(){return"The output # of columns ("+u+") must be an integer. Change the stride and/or zero pad parameters"})),[i,u]}([t,n],a,r,e,u);c=f[0],l=f[1]}else if("same"===e){c=Math.ceil(t/r),l=Math.ceil(n/o);var d=Math.max(0,(c-1)*r+a-t),p=Math.max(0,(l-1)*o+i-n),h=Math.floor(d/2),v=d-h,m=Math.floor(p/2);s={top:h,bottom:v,left:m,right:p-m,type:"SAME"}}else{if("valid"!==e)throw Error("Unknown padding parameter: "+e);s={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((t-a+1)/r),l=Math.ceil((n-i+1)/o)}return{padInfo:s,outHeight:c,outWidth:l}}(o,l,f,y,b,k,_,a),R=S.padInfo,I=S.outHeight,O=S.outWidth,A=i?m*d:m;return"channelsFirst"===u?p=[c,A,I,O]:"channelsLast"===u&&(p=[c,I,O,A]),{batchSize:c,dataFormat:u,inHeight:l,inWidth:f,inChannels:d,outHeight:I,outWidth:O,outChannels:A,padInfo:R,strideHeight:y,strideWidth:b,filterHeight:h,filterWidth:v,effectiveFilterHeight:k,effectiveFilterWidth:_,dilationHeight:w,dilationWidth:C,inShape:e,outShape:p,filterShape:t}}function Mr(e,t,n,r,o,a,i,u){void 0===a&&(a=!1),void 0===i&&(i="channelsLast");var s=[-1,-1,-1,-1,-1],c=s[0],l=s[1],f=s[2],d=s[3],p=s[4];if("channelsLast"===i)c=e[0],l=e[1],f=e[2],d=e[3],p=e[4];else{if("channelsFirst"!==i)throw new Error("Unknown dataFormat "+i);c=e[0],p=e[1],l=e[2],f=e[3],d=e[4]}var h,v=t[0],m=t[1],g=t[2],y=t[4],b=Lr(n),x=b[0],w=b[1],C=b[2],k=Lr(r),_=k[0],S=k[1],R=k[2],I=Wr(v,_),O=Wr(m,S),A=Wr(g,R),D=function(e,t,n,r,o,a,i,u,s,c,l){var f,d,p,h;if("number"==typeof e){f={top:e,bottom:e,left:e,right:e,front:e,back:e,type:0===e?"VALID":"NUMBER"};var v=function(e,t,n,r,o,a){null==o&&(o=Fr(e,t,r));var i=e[1],u=e[2],s=Ur((e[0]-t+2*o)/r+1,a);E(T(s),(function(){return"The output # of depths ("+s+") must be an integer. Change the stride and/or zero pad parameters"}));var c=Ur((i-t+2*o)/r+1,a);E(T(c),(function(){return"The output # of rows ("+c+") must be an integer. Change the stride and/or zero pad parameters"}));var l=Ur((u-t+2*o)/r+1,a);return E(T(l),(function(){return"The output # of columns ("+l+") must be an integer. Change the stride and/or zero pad parameters"})),[s,c,l,1]}([t,n,r,1],u,0,o,e,l);d=v[0],p=v[1],h=v[2]}else if("same"===e){var m=((d=Math.ceil(t/o))-1)*o+u-t,g=((p=Math.ceil(n/a))-1)*a+s-n,y=((h=Math.ceil(r/i))-1)*i+c-r,b=Math.floor(m/2),x=m-b,w=Math.floor(g/2),C=g-w,k=Math.floor(y/2);f={top:w,bottom:C,left:k,right:y-k,front:b,back:x,type:"SAME"}}else{if("valid"!==e)throw Error("Unknown padding parameter: "+e);f={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},d=Math.ceil((t-u+1)/o),p=Math.ceil((n-s+1)/a),h=Math.ceil((r-c+1)/i)}return{padInfo:f,outDepth:d,outHeight:p,outWidth:h}}(o,l,f,d,x,w,C,I,O,A,u),N=D.padInfo,P=D.outDepth,M=D.outHeight,F=D.outWidth,B=a?y*p:y;return"channelsFirst"===i?h=[c,B,P,M,F]:"channelsLast"===i&&(h=[c,P,M,F,B]),{batchSize:c,dataFormat:i,inDepth:l,inHeight:f,inWidth:d,inChannels:p,outDepth:P,outHeight:M,outWidth:F,outChannels:B,padInfo:N,strideDepth:x,strideHeight:w,strideWidth:C,filterDepth:v,filterHeight:m,filterWidth:g,effectiveFilterDepth:I,effectiveFilterHeight:O,effectiveFilterWidth:A,dilationDepth:_,dilationHeight:S,dilationWidth:R,inShape:e,outShape:h,filterShape:t}}function Fr(e,t,n,r){void 0===r&&(r=1);var o=Wr(t,r);return Math.floor((e[0]*(n-1)-n+o)/2)}function Br(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function Lr(e){return"number"==typeof e?[e,e,e]:e}function Wr(e,t){return t<=1?e:e+(e-1)*(t-1)}function Ur(e,t){if(!t)return e;switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error("Unknown roundingMode "+t)}}function zr(e){var t=Br(e),n=t[0],r=t[1],o=t[2];return 1===n&&1===r&&1===o}function jr(e,t){return zr(e)||zr(t)}function Vr(e){if("NHWC"===e)return"channelsLast";if("NCHW"===e)return"channelsFirst";throw new Error("Unknown dataFormat "+e)}function Hr(e,t,n){if("complex64"===t){if("complex64"===e.dtype)return e.clone();var r=dn(e.shape),o=e.toFloat(),a=n.complex(o,r);return r.dispose(),o.dispose(),a}if(!U(e.dtype,t))return Oe.makeTensorFromDataId(e.dataId,e.shape,t);if("complex64"===e.dtype){var i=n.real(e);return a=i.cast(t),i.dispose(),a}if("int32"===t)return n.int(e);if("bool"===t){var u=an(0,e.dtype);return a=n.notEqual(e,u),u.dispose(),a}throw new Error("Error in Cast: failed to cast "+e.dtype+" to "+t)}function Gr(e,t){return Oe.makeTensorFromDataId(e.dataId,t,e.dtype)}function qr(e,t,n){var r=(t-e)/(n-1),o=ee(n,"float32");o[0]=e;for(var a=1;a<o.length;a++)o[a]=o[a-1]+r;return un(o,"float32")}function Kr(e,t){if(e.length!==t.length)throw new Error("Cannot merge real and imag arrays of different lengths. real:"+e.length+", imag: "+t.length+".");for(var n=new Float32Array(2*e.length),r=0;r<n.length;r+=2)n[r]=e[r/2],n[r+1]=t[r/2];return n}function Xr(e,t){return{real:e[2*t],imag:e[2*t+1]}}function $r(e,t,n,r){e[2*r]=t,e[2*r+1]=n}function Yr(e,t,n){var r=(n?2:-2)*Math.PI*(e/t);return{real:Math.cos(r),imag:Math.sin(r)}}function Qr(e,t,n,r,o){for(var a=Array.from(t).map((function(e,t){return{score:e,boxIndex:t}})).filter((function(e){return e.score>o})).sort((function(e,t){return t.score-e.score})),i=[],u=0;u<a.length;u++){var s=a[u],c=s.score,l=s.boxIndex;if(c<o)break;for(var f=!1,d=i.length-1;d>=0;--d)if(Jr(e,l,i[d])>=r){f=!0;break}if(!f&&(i.push(l),i.length>=n))break}return un(i,"int32")}function Jr(e,t,n){var r=e.subarray(4*t,4*t+4),o=e.subarray(4*n,4*n+4),a=Math.min(r[0],r[2]),i=Math.min(r[1],r[3]),u=Math.max(r[0],r[2]),s=Math.max(r[1],r[3]),c=Math.min(o[0],o[2]),l=Math.min(o[1],o[3]),f=Math.max(o[0],o[2]),d=Math.max(o[1],o[3]),p=(u-a)*(s-i),h=(f-c)*(d-l);if(p<=0||h<=0)return 0;var v=Math.max(a,c),m=Math.max(i,l),g=Math.min(u,f),y=Math.min(s,d),b=Math.max(g-v,0)*Math.max(y-m,0);return b/(p+h-b)}function Zr(e,t,n){var r=new Array(e.rank).fill(0),o=e.shape.slice();return t.map((function(t){o[n]=t;var a=e.slice(r,o);return r[n]+=t,a}))}function eo(e,t){for(var n=new Array(e.rank),r=0;r<n.length;r++)n[r]=e.shape[r]*t[r];var o=Mn(n,e.dtype);for(r=0;r<o.values.length;++r){for(var a=o.indexToLoc(r),i=new Array(e.rank),u=0;u<i.length;u++)i[u]=a[u]%e.shape[u];var s=e.locToIndex(i);o.values[r]=e.values[s]}return o.toTensor()}function to(e,t,n,r,o){for(var a=t[t.length-1],i=[e.length/a,a],u=i[0],s=i[1],c=F(n,u*r),l=F("int32",u*r),f=0;f<u;f++){for(var d=f*s,p=e.subarray(d,d+s),h=[],v=0;v<p.length;v++)h.push({value:p[v],index:v});h.sort((function(e,t){return t.value-e.value}));var m=f*r,g=c.subarray(m,m+r),y=l.subarray(m,m+r);for(v=0;v<r;v++)g[v]=h[v].value,y[v]=h[v].index}var b=t.slice();return b[b.length-1]=r,[rn(c,b,n),rn(l,b,"int32")]}function no(e,t){for(var n=[],r=0;r<t.length;r++)t[r]&&n.push(r);var o=Mn(e,"int32"),a=Mn([n.length,e.length],"int32");for(r=0;r<n.length;r++){var i=o.indexToLoc(n[r]),u=r*e.length;a.values.set(i,u)}return a.toTensor()}Object.freeze({castTensor:Hr,reshapeTensor:Gr,linspaceImpl:qr,upcastType:Ee,axesAreInnerMostDims:Vt,combineLocations:Ht,computeOutAndReduceShapes:Gt,expandShapeToKeepDim:qt,assertAxesAreInnerMostDims:Kt,getAxesPermutation:Xt,getUndoAxesPermutation:$t,getInnerMostAxes:Yt,getBroadcastDims:Ir,getReductionAxes:Or,assertAndGetBroadcastShape:Ar,assertParamsConsistent:Qt,computeOutShape:Jt,computePool2DInfo:Dr,computePool3DInfo:Nr,computeConv2DInfo:Pr,computeConv3DInfo:Mr,computeDefaultPad:Fr,tupleValuesAreOne:zr,eitherStridesOrDilationsAreOne:jr,convertConv2DDataFormat:Vr});var ro=function(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((function(e,t){return"T"+t}));var n=[];this.variableNames.forEach((function(e){n.push("float v"+e+" = get"+e+"AtOutCoords();")}));var r=this.variableNames.map((function(e){return"v"+e})).join(" + ");this.userCode="\n void main() {\n "+n.join("\n ")+"\n\n float result = "+r+";\n setOutput(result);\n }\n "},oo=function(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((function(e,t){return"T"+t}));var n=[];this.variableNames.forEach((function(e){n.push("vec4 v"+e+" = get"+e+"AtOutCoords();")}));var r=this.variableNames.map((function(e){return"v"+e})).join(" + ");this.userCode="\n void main() {\n "+n.join("\n ")+"\n\n vec4 result = "+r+";\n setOutput(result);\n }\n "},ao=function(e,t,n){this.variableNames=["A"];var r=e.windowSize,o=e.batchSize,a=e.inSize,i=Math.ceil(a/r);n||this.variableNames.push("bestIndicesA"),this.outputShape=[o,i];var u="max"===t?">":"<",s=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * "+r+";\n\n int bestIndex = inOffset;\n float bestValue = getA(batch, bestIndex);\n\n for (int i = 0; i < "+r+"; i++) {\n int inIdx = "+s+";\n float candidate = getA(batch, inIdx);\n if (candidate "+u+" bestValue) {\n bestValue = candidate;\n bestIndex = inIdx;\n }\n }\n setOutput(float(bestIndex));\n }\n "};function io(e,t){return["x","y","z","w","u","v"].slice(0,t).map((function(t){return e+"."+t}))}function uo(e,t){return 1===t?[e]:io(e,t)}function so(){var e,t,n,r,o,a,i,u,s,c;return 2===f().getNumber("WEBGL_VERSION")?(e="#version 300 es",t="in",n="out",r="in",o="texture",a="outputColor",i="out vec4 outputColor;",u="\n bool isnan_custom(float val) {\n return (val > 0.0 || val < 0.0) ? false : val != 0.0;\n }\n\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan_custom(val.x),\n isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w));\n }\n\n #define isnan(value) isnan_custom(value)\n ",s="",c="\n #define round(value) newRound(value)\n int newRound(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 newRound(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n "):(e="",t="attribute",n="varying",r="varying",o="texture2D",a="gl_FragColor",i="",u="\n #define isnan(value) isnan_custom(value)\n bool isnan_custom(float val) {\n return (val > 0. || val < 1. || val == 0.) ? false : true;\n }\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w));\n }\n ",s="\n uniform float INFINITY;\n\n bool isinf(float val) {\n return abs(val) == INFINITY;\n }\n bvec4 isinf(vec4 val) {\n return equal(abs(val), vec4(INFINITY));\n }\n ",c="\n int round(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 round(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n "),{version:e,attribute:t,varyingVs:n,varyingFs:r,texture2D:o,output:a,defineOutput:i,defineSpecialNaN:u,defineSpecialInf:s,defineRound:c}}function co(e,t,n){void 0===n&&(n="index");var r=Y(t);return r.map((function(t,o){return"int "+e[o]+" = "+n+" / "+t+"; "+(o===r.length-1?"int "+e[o+1]+" = "+n+" - "+e[o]+" * "+t:"index -= "+e[o]+" * "+t)+";"})).join("")}function lo(e){var t=Y(e).map((function(e){return e.toString()}));return"\n int getFlatIndex(ivec3 coords) {\n return coords.x * "+t[0]+" + coords.y * "+t[1]+" + coords.z;\n }\n"}var fo="\n const float FLOAT_MAX = 1.70141184e38;\n const float FLOAT_MIN = 1.17549435e-38;\n\n lowp vec4 encode_float(highp float v) {\n if (isnan(v)) {\n return vec4(255, 255, 255, 255);\n }\n\n highp float av = abs(v);\n\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 255.0) / 255.0;\n }\n\n highp vec4 c = vec4(0,0,0,0);\n\n highp float e = floor(log2(av));\n highp float m = exp2(fract(log2(av))) - 1.0;\n\n c[2] = floor(128.0 * m);\n m -= c[2] / 128.0;\n c[1] = floor(32768.0 * m);\n m -= c[1] / 32768.0;\n c[0] = floor(8388608.0 * m);\n\n highp float ebias = e + 127.0;\n c[3] = floor(ebias / 2.0);\n ebias -= c[3] * 2.0;\n c[2] += floor(ebias) * 128.0;\n\n c[3] += 128.0 * step(0.0, -v);\n\n return c / 255.0;\n }\n";var po="\nvec2 uvFromFlat(int texNumR, int texNumC, int index) {\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\nvec2 packedUVfrom1D(int texNumR, int texNumC, int index) {\n int texelIndex = index / 2;\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n",ho="\nvec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR,\n int texNumC, int row, int col) {\n int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n",vo="\nvec2 packedUVfrom3D(int texNumR, int texNumC,\n int texelsInBatch, int texelsInLogicalRow, int b,\n int row, int col) {\n int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n",mo="\n float getChannel(vec4 frag, vec2 innerDims) {\n vec2 modCoord = mod(innerDims, 2.);\n return modCoord.x == 0. ?\n (modCoord.y == 0. ? frag.r : frag.g) :\n (modCoord.y == 0. ? frag.b : frag.a);\n }\n float getChannel(vec4 frag, int dim) {\n float modCoord = mod(float(dim), 2.);\n return modCoord == 0. ? frag.r : frag.g;\n }\n";function go(e){return"offset"+e}function yo(e){var t=e.name,n=S(e.shapeInfo.logicalShape);return n<2?"return "+t+";":"\n for (int i = 0; i < "+n+"; i++) {\n if (i == index) {\n return "+t+"[i];\n }\n }\n "}function bo(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";if(6===e)return"ivec6";throw Error("GPU for rank "+e+" is not yet supported")}function xo(e,t){var n=JSON.parse(JSON.stringify(e));return n.shapeInfo.logicalShape=t,n}function wo(e,t){return t.map((function(t){return e[t]})).join(", ")}var Eo=function(e,t,n,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,E(e.length>2,(function(){return"Packed arg"+(n.charAt(0).toUpperCase()+n.slice(1))+" supports only inputs with rank above 2."}));var o=e[e.length-1],a=Math.ceil(o/t);this.outputShape=e.slice(0,-1),a>1&&this.outputShape.push(a),r||this.variableNames.push("bestIndicesA");var i,u,s=this.outputShape,c=s.length,l=bo(c),f=uo("coords",c);if(1===a){var d=bo(u=c+1);i="\n "+d+" sourceLocR = "+d+"("+f.join()+", 0);\n ++"+f[c-1]+";\n "+d+" sourceLocG = "+d+"("+f.join()+", 0);\n ++"+f[c-2]+";\n "+d+" sourceLocA = "+d+"("+f.join()+", 0);\n --"+f[c-1]+";\n "+d+" sourceLocB = "+d+"("+f.join()+", 0);\n --"+f[c-2]+";"}else u=c,i="\n "+l+" sourceLocR = coords;\n ++"+f[c-1]+";\n "+l+" sourceLocG = coords;\n ++"+f[c-2]+";\n "+l+" sourceLocA = coords;\n --"+f[c-1]+";\n "+l+" sourceLocB = coords;\n --"+f[c-2]+";";var p=["x","y","z","w","u","v"].slice(0,u),h="."+p[u-1],v=p.map((function(e){return"int "+e})),m=uo("sourceLocR",u-1).concat("inIdx.r"),g=uo("sourceLocG",u-1).concat("inIdx.g"),y=uo("sourceLocB",u-1).concat("inIdx.b"),b=uo("sourceLocA",u-1).concat("inIdx.a"),x="max"===n?"greaterThan":"lessThan",w=r?"":"\n inIdx = round(vec4(getBestIndicesAChannel("+m.join()+"),\n getBestIndicesAChannel("+g.join()+"),\n getBestIndicesAChannel("+y.join()+"),\n getBestIndicesAChannel("+b.join()+")));",C="vec4(\n getAChannel("+m.join()+"),\n hasNextCol ? getAChannel("+g.join()+") : 0.,\n hasNextRow ? getAChannel("+y.join()+") : 0.,\n hasNextRow && hasNextCol ? getAChannel("+b.join()+") : 0.)",k=r?"":"\n float getBestIndicesAChannel("+v.join()+") {\n return getChannel(getBestIndicesA("+p.join()+"),\n vec2("+p.slice(-2).join()+"));\n }";this.userCode="\n float getAChannel("+v.join()+") {\n return getChannel(getA("+p.join()+"),\n vec2("+p.slice(-2).join()+"));\n }\n "+k+"\n void main() {\n "+l+" coords = getOutputCoords();\n bool hasNextCol = "+f[c-1]+" < "+(s[c-1]-1)+";\n bool hasNextRow = "+f[c-2]+" < "+(s[c-2]-1)+";\n "+i+"\n ivec4 srcIdx = ivec4(sourceLocR"+h+", sourceLocG"+h+",\n sourceLocB"+h+", sourceLocA"+h+") * "+t+";\n ivec4 inIdx = srcIdx;\n vec4 bestIndex = vec4(inIdx);\n vec4 bestValue = "+C+";\n\n for (int i = 0; i < "+t+"; i++) {\n inIdx = srcIdx;\n "+w+"\n vec4 candidate = "+C+";\n bvec4 nan = isnan(candidate);\n bvec4 replace = bvec4(\n vec4("+x+"(candidate, bestValue)) * (vec4(1.0) - vec4(nan)));\n\n bestValue = vec4(replace.x ? candidate.x : bestValue.x,\n replace.y ? candidate.y : bestValue.y,\n replace.z ? candidate.z : bestValue.z,\n replace.w ? candidate.w : bestValue.w);\n bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace));\n srcIdx++;\n }\n setOutput(bestIndex);\n }\n "},Co=function(e){this.variableNames=["dy"],this.outputShape=e.inShape;var t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,o=e.strideWidth,a=e.dilationHeight,i=e.dilationWidth,u=e.effectiveFilterHeight,s=e.effectiveFilterWidth,c=u-1-e.padInfo.top,l=s-1-e.padInfo.left,f=1/(t*n);this.userCode="\n const ivec2 pads = ivec2("+c+", "+l+");\n const float avgMultiplier = float("+f+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < "+u+";\n wR += "+a+") {\n float dyR = float(dyRCorner + wR) / "+r+".0;\n\n if (dyR < 0.0 || dyR >= "+e.outHeight+".0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < "+s+";\n wC+= "+i+") {\n float dyC = float(dyCCorner + wC) / "+o+".0;\n\n if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n setOutput(dotProd);\n }\n "},ko=function(e){this.variableNames=["dy"],this.outputShape=e.inShape;var t=e.filterDepth,n=e.filterHeight,r=e.filterWidth,o=e.strideDepth,a=e.strideHeight,i=e.strideWidth,u=e.dilationDepth,s=e.dilationHeight,c=e.dilationWidth,l=e.effectiveFilterDepth,f=e.effectiveFilterHeight,d=e.effectiveFilterWidth,p=l-1-e.padInfo.front,h=f-1-e.padInfo.top,v=d-1-e.padInfo.left,m=1/(t*n*r);this.userCode="\n const ivec3 pads = ivec3("+p+", "+h+", "+v+");\n const float avgMultiplier = float("+m+");\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < "+l+";\n wD += "+u+") {\n float dyD = float(dyDCorner + wD) / "+o+".0;\n\n if (dyD < 0.0 || dyD >= "+e.outDepth+".0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < "+f+";\n wR += "+s+") {\n float dyR = float(dyRCorner + wR) / "+a+".0;\n\n if (dyR < 0.0 || dyR >= "+e.outHeight+".0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < "+d+";\n wC += "+c+") {\n float dyC = float(dyCCorner + wC) / "+i+".0;\n\n if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n }\n setOutput(dotProd);\n }\n "},_o=function(e,t,n,r,o,a){this.outputShape=[],this.variableNames=["x","mean","variance"],Ar(e,t),Ar(e,n);var i="0.0";null!=r&&(Ar(e,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");var u="1.0";null!=o&&(Ar(e,o),this.variableNames.push("scale"),u="getScaleAtOutCoords()"),this.outputShape=e,this.userCode="\n void main() {\n float x = getXAtOutCoords();\n float mean = getMeanAtOutCoords();\n float variance = getVarianceAtOutCoords();\n float offset = "+i+";\n float scale = "+u+";\n float inv = scale * inversesqrt(variance + float("+a+"));\n setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n }\n "},So=function(e,t,n,r,o,a){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],Ar(e,t),Ar(e,n);var i="vec4(0.0)";null!=r&&(Ar(e,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");var u="vec4(1.0)";null!=o&&(Ar(e,o),this.variableNames.push("scale"),u="getScaleAtOutCoords()"),this.outputShape=e,this.userCode="\n void main() {\n vec4 offset = "+i+";\n vec4 scale = "+u+";\n\n vec4 x = getXAtOutCoords();\n vec4 mean = getMeanAtOutCoords();\n vec4 variance = getVarianceAtOutCoords();\n\n vec4 inv = scale * inversesqrt(variance + vec4("+a+"));\n\n setOutput((x - mean) * inv + offset);\n }\n "},Ro=function(e,t,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=Ar(t,n),this.userCode="\n float binaryOpComplex(\n float areal, float aimag, float breal, float bimag) {\n "+e+"\n }\n\n void main() {\n float areal = getARealAtOutCoords();\n float aimag = getAImagAtOutCoords();\n float breal = getBRealAtOutCoords();\n float bimag = getBImagAtOutCoords();\n setOutput(binaryOpComplex(areal, aimag, breal, bimag));\n }\n "},To="return a + b;",Io="return a - b;",Oo="return a * b;",Ao="return (a < 0.) ? b * a : a;",Do=function(e,t,n){this.variableNames=["A","B"],this.outputShape=Ar(t,n),this.userCode="\n float binaryOperation(float a, float b) {\n "+e+"\n }\n\n void main() {\n float a = getAAtOutCoords();\n float b = getBAtOutCoords();\n setOutput(binaryOperation(a, b));\n }\n "},No="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n",Po=function(e,t,n,r){void 0===r&&(r=!1),this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=Ar(t,n);var o=this.outputShape.length,a="";if(r)if(0===o||1===S(this.outputShape))a="\n result.y = 0.;\n result.z = 0.;\n result.w = 0.;\n ";else if(a="\n "+bo(o)+" coords = getOutputCoords();\n ",1===o)a+="\n result.y = (coords + 1) >= "+this.outputShape[0]+" ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n ";else{var i=uo("coords",o);a+="\n bool nextRowOutOfBounds =\n ("+i[o-2]+" + 1) >= "+this.outputShape[o-2]+";\n bool nextColOutOfBounds =\n ("+i[o-1]+" + 1) >= "+this.outputShape[o-1]+";\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n "}this.userCode="\n vec4 binaryOperation(vec4 a, vec4 b) {\n "+e+"\n }\n\n void main() {\n vec4 a = getAAtOutCoords();\n vec4 b = getBAtOutCoords();\n\n vec4 result = binaryOperation(a, b);\n "+a+"\n\n setOutput(result);\n }\n "},Mo=function(){function e(e){this.variableNames=["A"],this.outputShape=e,this.userCode="\n uniform float minVal;\n uniform float maxVal;\n\n void main() {\n float value = getAAtOutCoords();\n if (isnan(value)) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, minVal, maxVal));\n }\n "}return e.prototype.getCustomSetupFunc=function(e,t){var n=this;return function(r,o){null==n.minLoc&&(n.minLoc=r.getUniformLocationNoThrow(o,"minVal"),n.maxLoc=r.getUniformLocationNoThrow(o,"maxVal")),r.gl.uniform1f(n.minLoc,e),r.gl.uniform1f(n.maxLoc,t)}},e}(),Fo=function(){function e(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode="\n uniform float minVal;\n uniform float maxVal;\n\n void main() {\n vec4 value = getAAtOutCoords();\n\n if (any(isnan(value))) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, vec4(minVal), vec4(maxVal)));\n }\n "}return e.prototype.getCustomSetupFunc=function(e,t){var n=this;return function(r,o){null==n.minLoc&&(n.minLoc=r.getUniformLocationNoThrow(o,"minVal"),n.maxLoc=r.getUniformLocationNoThrow(o,"maxVal")),r.gl.uniform1f(n.minLoc,e),r.gl.uniform1f(n.maxLoc,t)}},e}(),Bo=function(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode="\n void main() {\n float re = abs(getRealAtOutCoords());\n float im = abs(getImagAtOutCoords());\n float mx = max(re, im);\n\n // sadly the length function in glsl is not underflow-safe\n // (at least not on Intel GPUs). So the safe solution is\n // to ensure underflow-safety in all cases.\n setOutput(\n mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx))\n );\n }\n "},Lo=function(e){this.outputShape=[],this.outputShape=Jt(e,1),this.variableNames=e.map((function(e,t){return"T"+t}));var t=new Array(e.length-1);t[0]=e[0][1];for(var n=1;n<t.length;n++)t[n]=t[n-1]+e[n][1];var r=["if (yC < "+t[0]+") setOutput(getT0(yR, yC));"];for(n=1;n<t.length;n++){var o=t[n-1];r.push("else if (yC < "+t[n]+") setOutput(getT"+n+"(yR, yC-"+o+"));")}var a=t.length,i=t[t.length-1];r.push("else setOutput(getT"+a+"(yR, yC-"+i+"));"),this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n int yR = coords.x;\n int yC = coords.y;\n\n "+r.join("\n ")+"\n }\n "},Wo=function(e,t){this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[],this.outputShape=Jt(e,t);var n=this.outputShape,r=n.length,o=bo(r),a=uo("coords",r),i=["x","y","z","w","u","v"].slice(0,r);this.variableNames=e.map((function(e,t){return"T"+t}));var u=new Array(e.length-1);u[0]=e[0][t];for(var s=1;s<u.length;s++)u[s]=u[s-1]+e[s][t];var c=i[t],l=i.slice(-2),f=i.join(),d="if ("+c+" < "+u[0]+") {\n return getChannel(\n getT0("+f+"), vec2("+l.join()+"));\n }";for(s=1;s<u.length;s++){var p=u[s-1];d+="\n if ("+c+" < "+u[s]+" && "+c+" >= "+u[s-1]+") {\n return getChannel(\n getT"+s+"("+Uo(i,c,p)+"),\n vec2("+Uo(l,c,p)+"));\n }"}var h=u.length,v=u[u.length-1];d+="\n return getChannel(\n getT"+h+"("+Uo(i,c,v)+"),\n vec2("+Uo(l,c,v)+"));",this.userCode="\n float getValue("+i.map((function(e){return"int "+e}))+") {\n "+d+"\n }\n\n void main() {\n "+o+" coords = getOutputCoords();\n vec4 result = vec4(getValue("+a+"), 0., 0., 0.);\n\n "+a[r-1]+" = "+a[r-1]+" + 1;\n if ("+a[r-1]+" < "+n[r-1]+") {\n result.g = getValue("+a+");\n }\n\n "+a[r-2]+" = "+a[r-2]+" + 1;\n if ("+a[r-2]+" < "+n[r-2]+") {\n result.a = getValue("+a+");\n }\n\n "+a[r-1]+" = "+a[r-1]+" - 1;\n if ("+a[r-2]+" < "+n[r-2]+" &&\n "+a[r-1]+" < "+n[r-1]+") {\n result.b = getValue("+a+");\n }\n setOutput(result);\n }\n "};function Uo(e,t,n){var r=e.indexOf(t);return e.map((function(e,t){return t===r?e+" - "+n:e})).join()}var zo=function(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;var t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,o=e.padInfo.left,a="channelsLast"===e.dataFormat;this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int d2 = coords.w;\n\n // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int b = 0; b < "+e.batchSize+"; b++) {\n for (int yR = 0; yR < "+e.outHeight+"; yR++) {\n int xR = wR + yR * "+t+" - "+r+";\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int yC = 0; yC < "+e.outWidth+"; yC++) {\n int xC = wC + yC * "+n+" - "+o+";\n\n if (xC < 0 || xC >= "+e.inWidth+") {\n continue;\n }\n\n if ("+a+") {\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n } else {\n float dyValue = getDy(b, d2, yR, yC);\n float xValue = getX(b, d1, xR, xC);\n dotProd += (xValue * dyValue);\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n "},jo=function(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;var t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,o=e.strideWidth,a="channelsLast"===e.dataFormat,i=t-1-e.padInfo.top,u=n-1-e.padInfo.left,s=a?1:2,c=a?2:3,l=a?3:1;this.userCode="\n const ivec2 pads = ivec2("+i+", "+u+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords["+l+"];\n\n ivec2 dyCorner = ivec2(coords["+s+"], coords["+c+"]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < "+t+"; wR++) {\n float dyR = float(dyRCorner + wR) / "+r+".0;\n\n if (dyR < 0.0 || dyR >= "+e.outHeight+".0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = "+t+" - 1 - wR;\n\n for (int wC = 0; wC < "+n+"; wC++) {\n float dyC = float(dyCCorner + wC) / "+o+".0;\n\n if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = "+n+" - 1 - wC;\n\n for (int d2 = 0; d2 < "+e.outChannels+"; d2++) {\n\n if ("+a+") {\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n } else {\n float xValue = getDy(batch, d2, idyR, idyC);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n "},Vo=function(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;var t=e.strideDepth,n=e.strideHeight,r=e.strideWidth,o=e.padInfo.front,a=e.padInfo.top,i=e.padInfo.left;this.userCode="\n void main() {\n ivec5 coords = getOutputCoords();\n int wF = coords.x;\n int wR = coords.y;\n int wC = coords.z;\n int d1 = coords.w;\n int d2 = coords.u;\n\n float dotProd = 0.0;\n\n for (int b = 0; b < "+e.batchSize+"; b++) {\n for (int yF = 0; yF < "+e.outDepth+"; yF++) {\n int xF = wF + yF * "+t+" - "+o+";\n\n if (xF < 0 || xF >= "+e.inDepth+") {\n continue;\n }\n\n for (int yR = 0; yR < "+e.outHeight+"; yR++) {\n int xR = wR + yR * "+n+" - "+a+";\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int yC = 0; yC < "+e.outWidth+"; yC++) {\n int xC = wC + yC * "+r+" - "+i+";\n\n if (xC < 0 || xC >= "+e.inWidth+") {\n continue;\n }\n\n float dyValue = getDy(b, yF, yR, yC, d2);\n float xValue = getX(b, xF, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n "},Ho=function(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;var t=e.filterDepth,n=e.filterHeight,r=e.filterWidth,o=e.strideDepth,a=e.strideHeight,i=e.strideWidth,u=t-1-e.padInfo.front,s=n-1-e.padInfo.top,c=r-1-e.padInfo.left;this.userCode="\n const ivec3 pads = ivec3("+u+", "+s+", "+c+");\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.u;\n\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyFCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n float dotProd = 0.0;\n for (int wF = 0; wF < "+t+"; wF++) {\n float dyF = float(dyFCorner + wF) / "+o+".0;\n\n if (dyF < 0.0 || dyF >= "+e.outDepth+".0 || fract(dyF) > 0.0) {\n continue;\n }\n int idyF = int(dyF);\n\n int wFPerm = "+t+" - 1 - wF;\n\n for (int wR = 0; wR < "+n+"; wR++) {\n float dyR = float(dyRCorner + wR) / "+a+".0;\n\n if (dyR < 0.0 || dyR >= "+e.outHeight+".0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = "+n+" - 1 - wR;\n\n for (int wC = 0; wC < "+r+"; wC++) {\n float dyC = float(dyCCorner + wC) / "+i+".0;\n\n if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = "+r+" - 1 - wC;\n\n for (int d2 = 0; d2 < "+e.outChannels+"; d2++) {\n float xValue = getDy(batch, idyF, idyR, idyC, d2);\n float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n }\n }\n }\n setOutput(dotProd);\n }\n "},Go=function(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;var t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,o=e.padInfo.left,a=e.outChannels/e.inChannels;this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int dm = coords.w;\n int d2 = d1 * "+a+" + dm;\n\n float dotProd = 0.0;\n\n // TO DO: Vec4 over the batch size\n for (int b = 0; b < "+e.batchSize+"; b++) {\n for (int yR = 0; yR < "+e.outHeight+"; yR++) {\n int xR = wR + yR * "+t+" - "+r+";\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int yC = 0; yC < "+e.outWidth+"; yC++) {\n int xC = wC + yC * "+n+" - "+o+";\n\n if (xC < 0 || xC >= "+e.inWidth+") {\n continue;\n }\n\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n setOutput(dotProd);\n }\n "},qo=function(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;var t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,o=e.strideWidth,a=t-1-e.padInfo.top,i=n-1-e.padInfo.left,u=e.outChannels/e.inChannels;this.userCode="\n const ivec2 pads = ivec2("+a+", "+i+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n ivec2 dyCorner = coords.yz - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n float dotProd = 0.0;\n\n for (int wR = 0; wR < "+t+"; wR++) {\n float dyR = float(dyRCorner + wR) / "+r+".0;\n\n if (dyR < 0.0 || dyR >= "+e.outHeight+".0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = "+t+" - 1 - wR;\n\n for (int wC = 0; wC < "+n+"; wC++) {\n float dyC = float(dyCCorner + wC) / "+o+".0;\n\n if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = "+n+" - 1 - wC;\n\n // TO DO: Vec4 over the channelMul\n for (int dm = 0; dm < "+u+"; dm++) {\n int d2 = d1 * "+u+" + dm;\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, dm);\n dotProd += xValue * wValue;\n }\n }\n }\n setOutput(dotProd);\n }\n "},Ko=function(e,t,n,r){void 0===t&&(t=!1),void 0===n&&(n=null),void 0===r&&(r=!1),this.variableNames=["x","W"],this.outputShape=e.outShape;var o=e.padInfo.top,a=e.padInfo.left,i=e.strideHeight,u=e.strideWidth,s=e.dilationHeight,c=e.dilationWidth,l=e.filterHeight,f=e.filterWidth,d=4*Math.floor(e.inChannels/4),p=e.inChannels%4,h="channelsLast"===e.dataFormat,v=h?1:2,m=h?2:3,g=h?3:1,y="",b="";n&&(y=r?"float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n "+n+"\n }":"\n float activation(float x) {\n "+n+"\n }\n ",b="result = activation(result);");var x=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),this.userCode="\n "+y+"\n\n const ivec2 strides = ivec2("+i+", "+u+");\n const ivec2 pads = ivec2("+o+", "+a+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d2 = coords["+g+"];\n\n ivec2 xRCCorner =\n ivec2(coords["+v+"], coords["+m+"]) * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < "+l+"; wR++) {\n int xR = xRCorner + wR * "+s+";\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+f+"; wC++) {\n int xC = xCCorner + wC * "+c+";\n\n if (xC < 0 || xC >= "+e.inWidth+") {\n continue;\n }\n\n for (int d1 = 0; d1 < "+d+"; d1 += 4) {\n vec4 wValues = vec4(\n getW(wR, wC, d1, d2),\n getW(wR, wC, d1 + 1, d2),\n getW(wR, wC, d1 + 2, d2),\n getW(wR, wC, d1 + 3, d2)\n );\n\n if ("+h+") {\n vec4 xValues = vec4(\n getX(batch, xR, xC, d1),\n getX(batch, xR, xC, d1 + 1),\n getX(batch, xR, xC, d1 + 2),\n getX(batch, xR, xC, d1 + 3)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec4 xValues = vec4(\n getX(batch, d1, xR, xC),\n getX(batch, d1 + 1, xR, xC),\n getX(batch, d1 + 2, xR, xC),\n getX(batch, d1 + 3, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n\n if ("+(1===p)+") {\n\n if ("+h+") {\n dotProd +=\n getX(batch, xR, xC, "+d+") *\n getW(wR, wC, "+d+", d2);\n } else {\n dotProd +=\n getX(batch, "+d+", xR, xC) *\n getW(wR, wC, "+d+", d2);\n }\n\n } else if ("+(2===p)+") {\n vec2 wValues = vec2(\n getW(wR, wC, "+d+", d2),\n getW(wR, wC, "+d+" + 1, d2)\n );\n\n if ("+h+") {\n vec2 xValues = vec2(\n getX(batch, xR, xC, "+d+"),\n getX(batch, xR, xC, "+d+" + 1)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec2 xValues = vec2(\n getX(batch, "+d+", xR, xC),\n getX(batch, "+d+" + 1, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n } else if ("+(3===p)+") {\n vec3 wValues = vec3(\n getW(wR, wC, "+d+", d2),\n getW(wR, wC, "+d+" + 1, d2),\n getW(wR, wC, "+d+" + 2, d2)\n );\n\n if ("+h+") {\n vec3 xValues = vec3(\n getX(batch, xR, xC, "+d+"),\n getX(batch, xR, xC, "+d+" + 1),\n getX(batch, xR, xC, "+d+" + 2)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec3 xValues = vec3(\n getX(batch, "+d+", xR, xC),\n getX(batch, "+d+" + 1, xR, xC),\n getX(batch, "+d+" + 2, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n }\n }\n }\n\n float result = dotProd;\n "+x+"\n "+b+"\n setOutput(result);\n }\n "},Xo=function(e){this.variableNames=["x","W"],this.outputShape=e.outShape;var t=e.padInfo.front,n=e.padInfo.top,r=e.padInfo.left,o=e.strideDepth,a=e.strideHeight,i=e.strideWidth,u=e.dilationDepth,s=e.dilationHeight,c=e.dilationWidth,l=e.filterDepth,f=e.filterHeight,d=e.filterWidth,p=4*Math.floor(e.inChannels/4),h=e.inChannels%4;this.userCode="\n const ivec3 strides = ivec3("+o+", "+a+", "+i+");\n const ivec3 pads = ivec3("+t+", "+n+", "+r+");\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d2 = coords.u;\n\n ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xFCorner = xFRCCorner.x;\n int xRCorner = xFRCCorner.y;\n int xCCorner = xFRCCorner.z;\n\n // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get\n // y(yF, yR, yC, d2). ? = to be determined. : = across all\n // values in that axis.\n float dotProd = 0.0;\n for (int wF = 0; wF < "+l+"; wF++) {\n int xF = xFCorner + wF * "+u+";\n\n if (xF < 0 || xF >= "+e.inDepth+") {\n continue;\n }\n\n for (int wR = 0; wR < "+f+"; wR++) {\n int xR = xRCorner + wR * "+s+";\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+d+"; wC++) {\n int xC = xCCorner + wC * "+c+";\n\n if (xC < 0 || xC >= "+e.inWidth+") {\n continue;\n }\n\n for (int d1 = 0; d1 < "+p+"; d1 += 4) {\n vec4 xValues = vec4(\n getX(batch, xF, xR, xC, d1),\n getX(batch, xF, xR, xC, d1 + 1),\n getX(batch, xF, xR, xC, d1 + 2),\n getX(batch, xF, xR, xC, d1 + 3)\n );\n vec4 wValues = vec4(\n getW(wF, wR, wC, d1, d2),\n getW(wF, wR, wC, d1 + 1, d2),\n getW(wF, wR, wC, d1 + 2, d2),\n getW(wF, wR, wC, d1 + 3, d2)\n );\n\n dotProd += dot(xValues, wValues);\n }\n\n if ("+(1===h)+") {\n dotProd +=\n getX(batch, xF, xR, xC, "+p+") *\n getW(wF, wR, wC, "+p+", d2);\n } else if ("+(2===h)+") {\n vec2 xValues = vec2(\n getX(batch, xF, xR, xC, "+p+"),\n getX(batch, xF, xR, xC, "+p+" + 1)\n );\n vec2 wValues = vec2(\n getW(wF, wR, wC, "+p+", d2),\n getW(wF, wR, wC, "+p+" + 1, d2)\n );\n dotProd += dot(xValues, wValues);\n } else if ("+(3===h)+") {\n vec3 xValues = vec3(\n getX(batch, xF, xR, xC, "+p+"),\n getX(batch, xF, xR, xC, "+p+" + 1),\n getX(batch, xF, xR, xC, "+p+" + 2)\n );\n vec3 wValues = vec3(\n getW(wF, wR, wC, "+p+", d2),\n getW(wF, wR, wC, "+p+" + 1, d2),\n getW(wF, wR, wC, "+p+" + 2, d2)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n "},$o=function(e,t,n,r){void 0===t&&(t=!1),void 0===n&&(n=null),void 0===r&&(r=!1),this.variableNames=["x","W"],this.outputShape=e.outShape;var o=e.inHeight,a=e.inWidth,i=e.padInfo.top,u=e.padInfo.left,s=e.strideHeight,c=e.strideWidth,l=e.dilationHeight,f=e.dilationWidth,d=e.filterHeight,p=e.filterWidth,h=e.outChannels/e.inChannels,v="",m="";n&&(v=r?"float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n "+n+"\n }":"\n float activation(float x) {\n "+n+"\n }\n ",m="result = activation(result);");var g=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),this.userCode="\n "+v+"\n\n const ivec2 strides = ivec2("+s+", "+c+");\n const ivec2 pads = ivec2("+i+", "+u+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2 / "+h+";\n int q = d2 - d1 * "+h+";\n\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations.\n for (int wR = 0; wR < "+d+"; wR++) {\n int xR = xRCorner + wR * "+l+";\n\n if (xR < 0 || xR >= "+o+") {\n continue;\n }\n\n for (int wC = 0; wC < "+p+"; wC++) {\n int xC = xCCorner + wC * "+f+";\n\n if (xC < 0 || xC >= "+a+") {\n continue;\n }\n\n float xVal = getX(batch, xR, xC, d1);\n float wVal = getW(wR, wC, d1, q);\n dotProd += xVal * wVal;\n }\n }\n\n float result = dotProd;\n "+g+"\n "+m+"\n setOutput(result);\n }\n "},Yo=function(e,t,n,r){void 0===t&&(t=!1),void 0===n&&(n=null),void 0===r&&(r=!1),this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.outShape;for(var o=e.inHeight,a=e.inWidth,i=e.padInfo.top,u=e.padInfo.left,s=e.strideHeight,c=e.strideWidth,l=e.dilationHeight,f=e.dilationWidth,d=e.filterHeight,p=e.filterWidth,h=p,v="int xR; int xC; int xCOffset;",m=0;m<d;m++)for(var g=0;g<p;g++)v+="\n vec4 xTexelR"+m+"C"+2*g+" = vec4(0.);\n vec4 wR"+m+"C"+g+" = vec4(0.);\n vec4 xR"+m+"C"+g+" = vec4(0.);";for(m=0;m<d;m++)for(var y=0;y<h;y++){if(v+="\n xR = xRCorner + "+m*l+";\n xC = xCCorner + "+(g=2*y)*f+";\n ",1===c){if(g<p&&(v+=u%2==1?"\n xCOffset = xC + 1;\n if(xR >= 0 && xR < "+o+" && xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+g+" = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR"+m+"C"+g+" = vec4(0.);\n }\n\n xCOffset = xC + 1 - 2;\n if(xR >= 0 && xR < "+o+" && xCOffset >= 0 && xCOffset < "+a+") {\n vec4 previous = getX(batch, xR, xCOffset, d1);\n xR"+m+"C"+g+" = vec4(previous.zw, xTexelR"+m+"C"+g+".xy);\n } else {\n xR"+m+"C"+g+" = vec4(0, 0, xTexelR"+m+"C"+g+".xy);\n }\n ":"\n if(xR >= 0 && xR < "+o+" && xC >= 0 && xC < "+a+") {\n xTexelR"+m+"C"+g+" = getX(batch, xR, xC, d1);\n } else {\n xTexelR"+m+"C"+g+" = vec4(0.);\n }\n\n xR"+m+"C"+g+" = xTexelR"+m+"C"+g+";\n ",g+1<p)){var b=u%2==0?x(f):f;f%2==0&&u%2==1||f%2!=0&&u%2!=1?(v+="\n xCOffset = xC + "+u%2+" + "+b+";\n\n if(xR >= 0 && xR < "+o+" &&\n xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+(g+2)+" = getX(batch, xR, xCOffset, d1);\n }\n ",f>1&&(v+="\n xCOffset -= 2;\n if(xR >= 0 && xR < "+o+" &&\n xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+g+" = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR"+m+"C"+g+" = vec4(0.);\n }\n "),v+="\n xR"+m+"C"+(g+1)+" = vec4(\n xTexelR"+m+"C"+g+".zw, xTexelR"+m+"C"+(g+2)+".xy);\n "):v+="\n xCOffset = xC + "+b+";\n\n if(xR >= 0 && xR < "+o+" &&\n xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+(g+2)+" = getX(batch, xR, xCOffset, d1);\n }\n\n xR"+m+"C"+(g+1)+" = xTexelR"+m+"C"+(g+2)+";\n "}}else g<p&&(v+="\n if(xR >= 0 && xR < "+o+") {\n ",u%2==1?(v+="\n xCOffset = xC + 1 - "+c+";\n if(xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+g+" = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR"+m+"C"+g+" = vec4(0.);\n }\n\n if(xC + 1 >= 0 && xC + 1 < "+a+") {\n xTexelR"+m+"C"+(g+2)+" = getX(batch, xR, xC + 1, d1);\n } else {\n xTexelR"+m+"C"+(g+2)+" = vec4(0.);\n }\n\n xR"+m+"C"+g+" = vec4(\n xTexelR"+m+"C"+g+".zw, xTexelR"+m+"C"+(g+2)+".zw);\n ",g+1<p&&(v+="\n vec4 final = vec4(0.);\n xCOffset = xC + 1 + "+c+";\n if(xCOffset >= 0 && xCOffset < "+a+") {\n final = getX(batch, xR, xCOffset, d1);\n }\n xR"+m+"C"+(g+1)+" = vec4(xTexelR"+m+"C"+(g+2)+".xy, final.xy);\n ")):(v+="\n if(xC >= 0 && xC < "+a+") {\n xTexelR"+m+"C"+g+" = getX(batch, xR, xC, d1);\n } else {\n xTexelR"+m+"C"+g+" = vec4(0.);\n }\n\n xCOffset = xC + "+c+";\n if(xCOffset >= 0 && xCOffset < "+a+") {\n xTexelR"+m+"C"+(g+2)+" = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR"+m+"C"+(g+2)+" = vec4(0.);\n }\n\n xR"+m+"C"+g+" = vec4(\n xTexelR"+m+"C"+g+".xy, xTexelR"+m+"C"+(g+2)+".xy);\n ",g+1<p&&(v+="\n xR"+m+"C"+(g+1)+" = vec4(\n xTexelR"+m+"C"+g+".zw, xTexelR"+m+"C"+(g+2)+".zw);\n ")),v+="}");g<p&&(v+="\n vec4 wTexelR"+m+"C"+g+" = getW("+m+", "+g+", d1, q);\n wR"+m+"C"+g+" = vec4(wTexelR"+m+"C"+g+".xz, wTexelR"+m+"C"+g+".xz);\n ",g+1<p&&(v+="\n vec4 wTexelR"+m+"C"+(g+1)+" = getW("+m+", "+(g+1)+", d1, q);\n wR"+m+"C"+(g+1)+" =\n vec4(wTexelR"+m+"C"+(g+1)+".xz, wTexelR"+m+"C"+(g+1)+".xz);"))}for(m=0;m<d;m++)for(g=0;g<p;g++)v+="dotProd += xR"+m+"C"+g+" * wR"+m+"C"+g+";";var w="",E="";n&&(w=r?"vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n "+n+"\n }":"vec4 activation(vec4 x) {\n "+n+"\n }",E="result = activation(result);");var C=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),this.userCode="\n "+w+"\n\n const ivec2 strides = ivec2("+s+", "+c+");\n const ivec2 pads = ivec2("+i+", "+u+");\n\n void main() {\n\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2;\n int q = 0;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n vec4 dotProd = vec4(0.);\n\n "+v+"\n\n vec4 result = dotProd;\n "+C+"\n "+E+"\n setOutput(result);\n }\n "},Qo=function(e,t,n,r,o){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];var a=e[0],i=e[1],u=e[2],s=e[3],c=t[0],l=n[0],f=n[1];this.outputShape=[c,l,f,s];var d="bilinear"===r?1:0,p=[i-1+".0",u-1+".0"],h=p[0],v=p[1],m=l>1?[""+(i-1)/(l-1),"(y2-y1) * height_ratio","y1*"+h+" + float(y)*(height_scale)"]:["0.0","0.0","0.5 * (y1+y2) * "+h],g=m[0],y=m[1],b=m[2],x=f>1?[""+(u-1)/(f-1),"(x2-x1) * width_ratio","x1*"+v+" + float(x)*(width_scale)"]:["0.0","0.0","0.5 * (x1+x2) * "+v],w=x[0],E=x[1],C=x[2];this.userCode="\n const float height_ratio = float("+g+");\n const float width_ratio = float("+w+");\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int y = coords[1];\n int x = coords[2];\n int d = coords[3];\n\n // get box vals\n float y1 = getBoxes(b,0);\n float x1 = getBoxes(b,1);\n float y2 = getBoxes(b,2);\n float x2 = getBoxes(b,3);\n\n // get image in batch index\n int bInd = round(getBoxInd(b));\n if(bInd < 0 || bInd >= "+a+") {\n return;\n }\n\n float height_scale = "+y+";\n float width_scale = "+E+";\n\n float in_y = "+b+";\n if( in_y < 0.0 || in_y > "+h+" ) {\n setOutput(float("+o+"));\n return;\n }\n float in_x = "+C+";\n if( in_x < 0.0 || in_x > "+v+" ) {\n setOutput(float("+o+"));\n return;\n }\n\n vec2 sourceFracIndexCR = vec2(in_x,in_y);\n if("+d+" == 1) {\n // Compute the four integer indices.\n ivec2 sourceFloorCR = ivec2(sourceFracIndexCR);\n ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR));\n\n float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d);\n float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d);\n float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d);\n float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d);\n\n vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR);\n\n float top = topLeft + (topRight - topLeft) * fracCR.x;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x;\n float newValue = top + (bottom - top) * fracCR.y;\n setOutput(newValue);\n } else {\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestCR = ivec2(floor(\n sourceFracIndexCR + vec2(0.5,0.5)));\n float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d);\n setOutput(newValue);\n }\n }\n "},Jo=function(e,t,n){this.variableNames=["x"],this.outputShape=e;var r=e.length,o=e[e.length-1],a=n?"<":">";this.userCode="\n int getIndex(int i) {\n "+(n?"return "+o+" -i - 1;":"return i;")+"\n }\n\n void main() {\n "+bo(r)+" coords = getOutputCoords();\n int end = "+Zo(r,"coords")+";\n float val = 0.0;\n for (int i = "+o+" - 1; i >= 0; i -= 1) {\n int idx = getIndex(i);\n if (idx "+a+" end) {\n continue;\n }\n if (idx == end && "+t+") {\n continue;\n }\n "+Zo(r,"coords")+" = idx;\n val += getX("+function(e,t){if(1===e)return""+t;if(2===e)return t+".x, "+t+".y";if(3===e)return t+".x, "+t+".y, "+t+".z";if(4===e)return t+".x, "+t+".y, "+t+".z, "+t+".w";throw Error("Cumulative sum for rank "+e+" is not yet supported")}(r,"coords")+");\n }\n setOutput(val);\n }\n "};function Zo(e,t){if(1===e)return""+t;if(2===e)return t+".y";if(3===e)return t+".z";if(4===e)return t+".w";throw Error("Cumulative sum for rank "+e+" is not yet supported")}var ea=function(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Ne.DENSE;var t=ze(e),n=so();this.outputShape=e,this.userCode="\n ivec3 outCoordsFromFlatIndex(int index) {\n "+co(["r","c","d"],e)+"\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+t[0]+", "+t[1]+"));\n int index = 4 * (resTexRC.x * "+t[1]+" + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getA(rc.x, rc.y, rc.z);\n }\n\n "+n.output+" = result;\n }\n "},ta=function(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Ne.DENSE;var t=ze(e),n=so();this.outputShape=e,this.userCode="\n ivec3 outCoordsFromFlatIndex(int index) {\n "+co(["r","c","d"],e)+"\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+t[0]+", "+t[1]+"));\n int index = 4 * (resTexRC.x * "+t[1]+" + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z));\n }\n\n "+n.output+" = result;\n }\n "},na=function(){function e(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int h = "+this.getHeightCoordString()+";\n int w = "+this.getWidthCoordString()+";\n int d = "+this.getDepthCoordString()+";\n\n int in_h = h / "+t+";\n int offset_h = imod(h, "+t+");\n int in_w = w / "+t+";\n int offset_w = imod(w, "+t+");\n int offset_d = (offset_h * "+t+" + offset_w) *\n "+this.getOutputDepthSize()+";\n int in_d = d + offset_d;\n\n float result = "+this.getInputSamplingString()+";\n setOutput(result);\n }\n "}return e.prototype.getHeightCoordString=function(){return"NHWC"===this.dataFormat?"coords[1]":"coords[2]"},e.prototype.getWidthCoordString=function(){return"NHWC"===this.dataFormat?"coords[2]":"coords[3]"},e.prototype.getDepthCoordString=function(){return"NHWC"===this.dataFormat?"coords[3]":"coords[1]"},e.prototype.getOutputDepthSize=function(){return"NHWC"===this.dataFormat?this.outputShape[3]:this.outputShape[1]},e.prototype.getInputSamplingString=function(){return"NHWC"===this.dataFormat?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"},e}(),ra=function(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0;\n setOutput(val);\n }\n "},oa=function(e){this.variableNames=["A"],this.outTexUsage=Pe.DOWNLOAD;var t=so();this.outputShape=e,this.userCode="\n "+fo+"\n\n void main() {\n float x = getAAtOutCoords();\n "+t.output+" = encode_float(x);\n }\n "},aa=function(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Pe.DOWNLOAD;var t=so();this.outputShape=e,this.userCode="\n "+fo+"\n\n void main() {\n ivec3 coords = getOutputCoords();\n float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z));\n "+t.output+" = encode_float(x);\n }\n "},ia=function(e,t,n){void 0===n&&(n=!1),this.variableNames=["A"];var r=so(),o=t[0],a=t[1];this.outputShape=e;var i="result";n&&(i="floor(result * 255. + 0.5)"),this.userCode="\n "+lo(e)+"\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n int flatIndex = getFlatIndex(coords);\n int offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n \n int r = flatIndex / "+a+";\n int c = imod(flatIndex, "+a+");\n vec2 uv = (vec2(c, r) + halfCR) / vec2("+a+".0, "+o+".0);\n vec4 values = "+r.texture2D+"(A, uv);\n\n float result;\n\n if(offset == 0) {\n result = values[0];\n } else if(offset == 1) {\n result = values[1];\n } else if(offset == 2) {\n result = values[2];\n } else {\n result = values[3];\n }\n\n "+r.output+" = vec4("+i+", 0., 0., 0.);\n }\n "},ua=function(e,t,n){void 0===n&&(n=!1),this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;var r=so(),o=t[0],a=t[1];this.outputShape=e;var i="",u="result";n&&(u="floor(result * 255. + 0.5)");for(var s=0;s<=1;s++)for(var c=0;c<=1;c++){var l=2*s+c;i+="\n localCoords = coords;\n if(localCoords[2] + "+c+" < "+e[2]+") {\n localCoords[2] += "+c+";\n if(localCoords[1] + "+s+" < "+e[1]+") {\n localCoords[1] += "+s+";\n\n flatIndex = getFlatIndex(localCoords);\n offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n\n r = flatIndex / "+a+";\n c = imod(flatIndex, "+a+");\n uv = (vec2(c, r) + halfCR) / vec2("+a+".0, "+o+".0);\n values = "+r.texture2D+"(A, uv);\n\n if(offset == 0) {\n result["+l+"] = values[0];\n } else if(offset == 1) {\n result["+l+"] = values[1];\n } else if(offset == 2) {\n result["+l+"] = values[2];\n } else {\n result["+l+"] = values[3];\n }\n }\n }\n "}this.userCode="\n "+lo(e)+"\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n vec4 result = vec4(0.);\n int flatIndex, r, c, offset;\n ivec3 localCoords;\n vec2 uv;\n vec4 values;\n\n "+i+"\n\n "+r.output+" = "+u+";\n }\n "},sa=function(e,t,n){this.variableNames=["real","imag"];var r=t[1];this.outputShape=t;var o=n?"2.0 * "+Math.PI:"-2.0 * "+Math.PI,a=n?r+".0":"1.0";this.userCode="\n const float exponentMultiplier = "+o+";\n\n float unaryOpComplex(float real, float expR, float imag, float expI) {\n "+e+"\n }\n\n float mulMatDFT(int batch, int index) {\n float indexRatio = float(index) / float("+r+");\n float exponentMultiplierTimesIndexRatio =\n exponentMultiplier * indexRatio;\n\n float result = 0.0;\n\n for (int i = 0; i < "+r+"; i++) {\n // x = (-2|2 * PI / N) * index * i;\n float x = exponentMultiplierTimesIndexRatio * float(i);\n float expR = cos(x);\n float expI = sin(x);\n float real = getReal(batch, i);\n float imag = getImag(batch, i);\n\n result +=\n unaryOpComplex(real, expR, imag, expI) / "+a+";\n }\n\n return result;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n setOutput(mulMatDFT(coords[0], coords[1]));\n }\n "},ca=function(){function e(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode="\n uniform float value;\n void main() {\n // Input can be obtained from uniform value.\n setOutput(value);\n }\n "}return e.prototype.getCustomSetupFunc=function(e){var t=this;return function(n,r){null==t.valueLoc&&(t.valueLoc=n.getUniformLocationNoThrow(r,"value")),n.gl.uniform1f(t.valueLoc,e)}},e}(),la=function(e,t,n){this.variableNames=["A","indices"];var r=e.slice();r[n]=t,this.outputShape=r,this.rank=r.length;var o=bo(this.rank),a=function(e,t){var n=e.length;if(n>4)throw Error("Gather for rank "+n+" is not yet supported");if(1===n)return"int(getIndices(resRC))";for(var r=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],a=0;a<e.length;a++)a===t?o.push("int(getIndices("+r[a]+"))"):o.push(""+r[a]);return o.join()}(e,n);this.userCode="\n void main() {\n "+o+" resRC = getOutputCoords();\n setOutput(getA("+a+"));\n }\n "},fa=function(e,t,n){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=n;var r=bo(t.length),o=bo(n.length),a=this.sliceDim>1?"strides[j]":"strides";this.userCode="\n "+r+" strides = "+r+"("+this.strides+");\n void main() {\n "+o+" coords = getOutputCoords();\n int flattenIndex = 0;\n for (int j = 0; j < "+this.sliceDim+"; j++) {\n int index = round(getIndices(coords[0], j));\n flattenIndex += index * "+a+";\n }\n setOutput(getX(flattenIndex, coords[1]));\n }\n "};function da(e,t){var n=so();return Xe(e,t,n.version+"\n precision highp float;\n "+n.attribute+" vec3 clipSpacePos;\n "+n.attribute+" vec2 uv;\n "+n.varyingVs+" vec2 resultUV;\n\n void main() {\n gl_Position = vec4(clipSpacePos, 1);\n resultUV = uv;\n }")}function pa(e,t){return nt(e,t,new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]))}function ha(e,t){return rt(e,t,new Uint16Array([0,1,2,2,1,3]))}function va(e,t,n,r,o,a,i){at(n,r);var u=ot(e,t),s=e.TEXTURE_2D;return He(e,t,(function(){return e.bindTexture(s,u)})),He(e,t,(function(){return e.texParameteri(s,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)})),He(e,t,(function(){return e.texParameteri(s,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)})),He(e,t,(function(){return e.texParameteri(s,e.TEXTURE_MIN_FILTER,e.NEAREST)})),He(e,t,(function(){return e.texParameteri(s,e.TEXTURE_MAG_FILTER,e.NEAREST)})),He(e,t,(function(){return e.texImage2D(s,0,o,n,r,0,a,i,null)})),He(e,t,(function(){return e.bindTexture(e.TEXTURE_2D,null)})),u}function ma(e,t,n,r,o){var a=Ue(n,r);return va(e,t,a[0],a[1],o.internalFormatFloat,o.textureFormatFloat,e.FLOAT)}function ga(e,t,n,r,o){var a=Ue(n,r);return va(e,t,a[0],a[1],o.internalFormatHalfFloat,o.textureFormatFloat,o.textureTypeHalfFloat)}function ya(e,t,n,r,o){var a=Ue(n,r);return va(e,t,a[0],a[1],e.RGBA,e.RGBA,e.UNSIGNED_BYTE)}function ba(e,t,n,r,o){var a=je(n,r);return va(e,t,a[0],a[1],o.internalFormatPackedFloat,e.RGBA,e.FLOAT)}function xa(e,t,n,r,o){var a=je(n,r);return va(e,t,a[0],a[1],o.internalFormatPackedHalfFloat,e.RGBA,o.textureTypeHalfFloat)}function wa(e,t,n,r){return He(e,t,(function(){return e.bindBuffer(e.ARRAY_BUFFER,r)})),ut(e,t,n,"clipSpacePos",r,3,20,0)&&ut(e,t,n,"uv",r,2,20,12)}function Ea(e,t,n,r,o,a,i){var u,s,c;He(e,t,(function(){return e.bindTexture(e.TEXTURE_2D,n)})),a instanceof Uint8Array?(u=new Uint8Array(r*o*4),s=e.UNSIGNED_BYTE,c=e.RGBA):(u=new Float32Array(r*o*4),s=e.FLOAT,c=i.internalFormatPackedFloat),u.set(a),He(e,t,(function(){return e.texImage2D(e.TEXTURE_2D,0,c,r,o,0,e.RGBA,s,u)})),He(e,t,(function(){return e.bindTexture(e.TEXTURE_2D,null)}))}function Ca(e,t,n,r){He(e,t,(function(){return e.bindTexture(e.TEXTURE_2D,n)})),r.data instanceof Uint8Array?He(e,t,(function(){return e.texImage2D(e.TEXTURE_2D,0,e.RGBA,r.width,r.height,0,e.RGBA,e.UNSIGNED_BYTE,r.data)})):He(e,t,(function(){return e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,r)})),He(e,t,(function(){return e.bindTexture(e.TEXTURE_2D,null)}))}function ka(e,t,n,r,o){var a=e.createBuffer();He(e,t,(function(){return e.bindBuffer(e.PIXEL_PACK_BUFFER,a)}));var i=16*n*r;return He(e,t,(function(){return e.bufferData(e.PIXEL_PACK_BUFFER,i,e.STREAM_READ)})),He(e,t,(function(){return e.readPixels(0,0,r,n,e.RGBA,e.FLOAT,0)})),He(e,t,(function(){return e.bindBuffer(e.PIXEL_PACK_BUFFER,null)})),a}function _a(e,t,n){var r=e,o=new Float32Array(n);return r.bindBuffer(r.PIXEL_PACK_BUFFER,t),r.getBufferSubData(r.PIXEL_PACK_BUFFER,0,o),r.bindBuffer(r.PIXEL_PACK_BUFFER,null),o}function Sa(e,t,n,r,o){var a=Ue(n,r),i=a[0],u=a[1],s=new Uint8Array(n*r*4);return He(e,t,(function(){return e.readPixels(0,0,i,u,o.downloadTextureFormat,e.UNSIGNED_BYTE,s)})),new Float32Array(s.buffer)}function Ra(e,t,n,r,o,a,i,u){var s=e,c=new Float32Array(function(e,t){var n=je(e,t);return n[0]*n[1]*4}(a,i));return s.bindBuffer(s.PIXEL_PACK_BUFFER,t),s.getBufferSubData(s.PIXEL_PACK_BUFFER,0,c),s.bindBuffer(s.PIXEL_PACK_BUFFER,null),c}function Ta(e,t,n,r){var o=new Float32Array(n*r*4);return He(e,t,(function(){return e.readPixels(0,0,r,n,e.RGBA,e.FLOAT,o)})),o}var Ia=Object.freeze({createVertexShader:da,createVertexBuffer:pa,createIndexBuffer:ha,createFloat32MatrixTexture:ma,createFloat16MatrixTexture:ga,createUnsignedBytesMatrixTexture:ya,createPackedMatrixTexture:ba,createFloat16PackedMatrixTexture:xa,bindVertexProgramAttributeStreams:wa,uploadDenseMatrixToTexture:Ea,uploadPixelDataToTexture:Ca,createBufferFromOutputTexture:ka,downloadFloat32MatrixFromBuffer:_a,downloadByteEncodedFloatMatrixFromOutputTexture:Sa,downloadPackedMatrixFromBuffer:Ra,downloadMatrixFromPackedOutputTexture:Ta}),Oa=function(){function e(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];var t=f().getNumber("WEBGL_VERSION");null!=e?(this.gl=e,Le(t,e)):this.gl=We(t);var n="WEBGL_color_buffer_float";if(1===f().getNumber("WEBGL_VERSION")){if(this.textureFloatExtension=Ke(this.gl,this.debug,"OES_texture_float"),Rt(this.gl,"OES_texture_half_float"))this.textureHalfFloatExtension=Ke(this.gl,this.debug,"OES_texture_half_float");else if(f().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),Rt(this.gl,"EXT_color_buffer_half_float"))this.colorBufferHalfFloatExtension=Ke(this.gl,this.debug,"EXT_color_buffer_half_float");else if(f().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",Rt(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else{if(!Rt(this.gl,"EXT_color_buffer_half_float"))throw new Error("GL context does not support color renderable floats");this.colorBufferHalfFloatExtension=this.gl.getExtension("EXT_color_buffer_half_float")}this.vertexBuffer=pa(this.gl,this.debug),this.indexBuffer=ha(this.gl,this.debug),this.framebuffer=it(this.gl,this.debug),this.textureConfig=Ve(this.gl,this.textureHalfFloatExtension)}return Object.defineProperty(e.prototype,"debug",{get:function(){return f().getBool("DEBUG")},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){var e=this;if(!this.disposed){this.program,this.outputTexture;var t=this.gl;He(t,this.debug,(function(){return t.finish()})),He(t,this.debug,(function(){return t.bindFramebuffer(t.FRAMEBUFFER,null)})),He(t,this.debug,(function(){return t.deleteFramebuffer(e.framebuffer)})),He(t,this.debug,(function(){return t.bindBuffer(t.ARRAY_BUFFER,null)})),He(t,this.debug,(function(){return t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)})),He(t,this.debug,(function(){return t.deleteBuffer(e.indexBuffer)})),this.disposed=!0}},e.prototype.createFloat32MatrixTexture=function(e,t){return this.throwIfDisposed(),ma(this.gl,this.debug,e,t,this.textureConfig)},e.prototype.createFloat16MatrixTexture=function(e,t){return this.throwIfDisposed(),ga(this.gl,this.debug,e,t,this.textureConfig)},e.prototype.createUnsignedBytesMatrixTexture=function(e,t){return this.throwIfDisposed(),ya(this.gl,this.debug,e,t,this.textureConfig)},e.prototype.uploadPixelDataToTexture=function(e,t){this.throwIfDisposed(),Ca(this.gl,this.debug,e,t)},e.prototype.uploadDenseMatrixToTexture=function(e,t,n,r){this.throwIfDisposed(),Ea(this.gl,this.debug,e,t,n,r,this.textureConfig)},e.prototype.createFloat16PackedMatrixTexture=function(e,t){return this.throwIfDisposed(),xa(this.gl,this.debug,e,t,this.textureConfig)},e.prototype.createPackedMatrixTexture=function(e,t){return this.throwIfDisposed(),ba(this.gl,this.debug,e,t,this.textureConfig)},e.prototype.deleteMatrixTexture=function(e){var t=this;this.throwIfDisposed(),this.outputTexture===e&&(pt(this.gl,this.debug,this.framebuffer),this.outputTexture=null),He(this.gl,this.debug,(function(){return t.gl.deleteTexture(e)}))},e.prototype.downloadByteEncodedFloatMatrixFromOutputTexture=function(e,t,n){var r=this;return this.downloadMatrixDriver(e,(function(){return Sa(r.gl,r.debug,t,n,r.textureConfig)}))},e.prototype.downloadPackedMatrixFromBuffer=function(e,t,n,r,o,a){return Ra(this.gl,e,0,0,0,o,a,this.textureConfig)},e.prototype.downloadFloat32MatrixFromBuffer=function(e,t){return _a(this.gl,e,t)},e.prototype.createBufferFromTexture=function(e,t,n){this.bindTextureToFrameBuffer(e);var r=ka(this.gl,this.debug,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),r},e.prototype.createAndWaitForFence=function(){var e=this.createFence(this.gl);return this.pollFence(e)},e.prototype.createFence=function(e){var t,n,r=this;if(f().getBool("WEBGL_FENCE_API_ENABLED")){var o=e,a=o.fenceSync(o.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=function(){var e=o.clientWaitSync(a,0,0);return e===o.ALREADY_SIGNALED||e===o.CONDITION_SATISFIED},t=a}else f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=function(){return r.isQueryAvailable(t,f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}):n=function(){return!0};return{query:t,isFencePassed:n}},e.prototype.downloadMatrixFromPackedTexture=function(e,t,n){var r=this;return this.downloadMatrixDriver(e,(function(){return Ta(r.gl,r.debug,t,n)}))},e.prototype.createProgram=function(e){this.throwIfDisposed();var t=this.gl,n=$e(t,this.debug,e),r=da(t,this.debug),o=Ze(t,this.debug);return He(t,this.debug,(function(){return t.attachShader(o,r)})),He(t,this.debug,(function(){return t.attachShader(o,n)})),et(t,this.debug,o),this.debug&&tt(t,this.debug,o),this.vertexAttrsAreBound||(this.setProgram(o),this.vertexAttrsAreBound=wa(t,this.debug,this.program,this.vertexBuffer)),o},e.prototype.deleteProgram=function(e){var t=this;this.throwIfDisposed(),e===this.program&&(this.program=null),null!=e&&He(this.gl,this.debug,(function(){return t.gl.deleteProgram(e)}))},e.prototype.setProgram=function(e){var t=this;this.throwIfDisposed(),this.program=e,null!=this.program&&this.debug&&tt(this.gl,this.debug,this.program),He(this.gl,this.debug,(function(){return t.gl.useProgram(e)}))},e.prototype.getUniformLocation=function(e,t,n){return void 0===n&&(n=!0),this.throwIfDisposed(),n?ct(this.gl,this.debug,e,t):lt(this.gl,e,t)},e.prototype.getAttributeLocation=function(e,t){var n=this;return this.throwIfDisposed(),He(this.gl,this.debug,(function(){return n.gl.getAttribLocation(e,t)}))},e.prototype.getUniformLocationNoThrow=function(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)},e.prototype.setInputMatrixTexture=function(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),ft(this.gl,this.debug,this.program,e,t,n)},e.prototype.setOutputMatrixTexture=function(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)},e.prototype.setOutputPackedMatrixTexture=function(e,t,n){this.throwIfDisposed();var r=je(t,n),o=r[0],a=r[1];this.setOutputMatrixTextureDriver(e,o,a)},e.prototype.setOutputMatrixWriteRegion=function(e,t,n,r){this.setOutputMatrixWriteRegionDriver(n,e,r,t)},e.prototype.setOutputPackedMatrixWriteRegion=function(e,t,n,r){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")},e.prototype.debugValidate=function(){null!=this.program&&tt(this.gl,this.debug,this.program),ht(this.gl)},e.prototype.executeProgram=function(){this.throwIfDisposed(),this.throwIfNoProgram();var e=this.gl;this.debug&&this.debugValidate(),He(e,this.debug,(function(){return e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0)}))},e.prototype.blockUntilAllProgramsCompleted=function(){var e=this;this.throwIfDisposed(),He(this.gl,this.debug,(function(){return e.gl.finish()}))},e.prototype.getQueryTimerExtension=function(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=Ke(this.gl,this.debug,2===f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension},e.prototype.getQueryTimerExtensionWebGL2=function(){return this.getQueryTimerExtension()},e.prototype.getQueryTimerExtensionWebGL1=function(){return this.getQueryTimerExtension()},e.prototype.beginQuery=function(){if(2===f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){var e=this.gl,t=this.getQueryTimerExtensionWebGL2(),n=e.createQuery();return e.beginQuery(t.TIME_ELAPSED_EXT,n),n}var r=this.getQueryTimerExtensionWebGL1(),o=r.createQueryEXT();return r.beginQueryEXT(r.TIME_ELAPSED_EXT,o),o},e.prototype.endQuery=function(){if(2!==f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){var e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}else{var t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT)}},e.prototype.waitForQueryAndGetTime=function(e){return s(this,void 0,void 0,(function(){var t=this;return c(this,(function(n){switch(n.label){case 0:return[4,D((function(){return t.disposed||t.isQueryAvailable(e,f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}))];case 1:return n.sent(),[2,this.getQueryTime(e,f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))]}}))}))},e.prototype.getQueryTime=function(e,t){if(0===t)return null;if(2===t){var n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}var r=this.getQueryTimerExtensionWebGL1();return r.getQueryObjectEXT(e,r.QUERY_RESULT_EXT)/1e6},e.prototype.isQueryAvailable=function(e,t){if(0===t)return!0;if(2===t){var n=this.gl,r=this.getQueryTimerExtensionWebGL2(),o=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),o&&!this.disjoint}return o=(r=this.getQueryTimerExtensionWebGL1()).getQueryObjectEXT(e,r.QUERY_RESULT_AVAILABLE_EXT),null==this.disjoint&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),o&&!this.disjoint},e.prototype.pollFence=function(e){var t=this;return new Promise((function(n){t.addItemToPoll((function(){return e.isFencePassed()}),(function(){return n()}))}))},e.prototype.pollItems=function(){for(var e=function(e){for(var t=0;t<e.length&&e[t]();++t);return t-1}(this.itemsToPoll.map((function(e){return e.isDoneFn}))),t=0;t<=e;++t)(0,this.itemsToPoll[t].resolveFn)();this.itemsToPoll=this.itemsToPoll.slice(e+1)},e.prototype.addItemToPoll=function(e,t){var n=this;this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1||D((function(){return n.pollItems(),0===n.itemsToPoll.length}))},e.prototype.bindTextureToFrameBuffer=function(e){this.throwIfDisposed(),dt(this.gl,this.debug,e,this.framebuffer),this.debug&&ht(this.gl)},e.prototype.unbindTextureToFrameBuffer=function(){null!=this.outputTexture?(dt(this.gl,this.debug,this.outputTexture,this.framebuffer),this.debug&&ht(this.gl)):pt(this.gl,this.debug,this.framebuffer)},e.prototype.downloadMatrixDriver=function(e,t){this.bindTextureToFrameBuffer(e);var n=t();return this.unbindTextureToFrameBuffer(),n},e.prototype.setOutputMatrixTextureDriver=function(e,t,n){this.throwIfDisposed();var r=this.gl;dt(r,this.debug,e,this.framebuffer),this.debug&&ht(r),this.outputTexture=e,He(r,this.debug,(function(){return r.viewport(0,0,t,n)})),He(r,this.debug,(function(){return r.scissor(0,0,t,n)}))},e.prototype.setOutputMatrixWriteRegionDriver=function(e,t,n,r){var o=this;this.throwIfDisposed(),He(this.gl,this.debug,(function(){return o.gl.scissor(e,t,n,r)}))},e.prototype.throwIfDisposed=function(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")},e.prototype.throwIfNoProgram=function(){if(null==this.program)throw new Error("No GPU program is currently set.")},e}();function Aa(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((function(e,n){var r=e.logicalShape,o=t[n],a=o.shape;if(!R(r,a))throw Error("Binary was compiled with different shapes than the current args. Shapes "+r+" and "+a+" must match");if(!e.isUniform||!o.isUniform){var i=e.texShape,u=o.isUniform?null:o.texData.texShape;if(!R(i,u))throw Error("Binary was compiled with different texture shapes than the current args. Shape "+i+" and "+u+" must match")}}))}var Da=function(e,t,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;for(var r=n.filterWidth,o=n.inChannels,a=n.strideWidth,i=n.strideHeight,u=n.padInfo,s=n.outWidth,c=n.dilationWidth,l=n.dilationHeight,f=n.dataFormat,d=u.left,p=u.top,h=o*r,v=so(),m="channelsLast"===f,g=m?0:1,y=m?1:2,b="",x=0;x<=1;x++)for(var w=0;w<=1;w++)b+="\n blockIndex = rc.y + "+w+";\n pos = rc.x + "+x+";\n\n if(blockIndex < "+e[1]+" && pos < "+e[0]+") {\n offsetY = int(blockIndex / ("+s+")) * "+i+" - "+p+";\n d0 = offsetY + "+l+" * (pos / "+h+");\n\n if(d0 < "+t[g]+" && d0 >= 0) {\n\n offsetX = int(mod(float(blockIndex), "+s+".) * "+a+". - "+d+".);\n d1 = offsetX + "+c+" * (int(mod(float(pos), "+h+".) / "+o+".));\n\n if(d1 < "+t[y]+" && d1 >= 0) {\n\n ch = int(mod(float(pos), "+o+".));\n\n if ("+m+") {\n innerDims = vec2(d1, ch);\n result["+(2*x+w)+"] = getChannel(\n getA(d0, int(innerDims.x),\n int(innerDims.y)), innerDims);\n } else {\n innerDims = vec2(d0, d1);\n result["+(2*x+w)+"] = getChannel(\n getA(ch, int(innerDims.x),\n int(innerDims.y)), innerDims);\n }\n }\n }\n }\n ";this.userCode="\n void main() {\n ivec2 rc = getOutputCoords();\n\n vec4 result = vec4(0);\n\n int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n vec2 innerDims;\n\n "+b+"\n\n "+v.output+" = result;\n }\n "},Na=function(e,t,n,r,o){this.variableNames=["x"],this.outputShape=[];var a,i=t,u=e[3]-1;this.outputShape=e;var s="float("+n+") + float("+r+") * sum";a=.5===o?"inversesqrt("+s+")":1===o?"1.0/("+s+")":"exp(log("+s+") * float(-"+o+"));",this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n int d = coords[3];\n float x = getX(b, r, c, d);\n float sum = 0.0;\n for (int j = -"+i+"; j <= "+i+"; j++) {\n int idx = d + j;\n if (idx >= 0 && idx <= "+u+") {\n float z = getX(b, r, c, idx);\n sum += z * z;\n }\n }\n float val = x * "+a+";\n setOutput(val);\n }\n "},Pa=function(e,t,n,r,o){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=r,this.beta=o,this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n\n float result = 0.0;\n for (int d = 0; d < "+this.depth+"; ++d) {\n int depthBegin = int(max(0.0, float(d - "+t+")));\n int depthEnd = int(min(float("+this.depth+"),\n float(d + "+t+" + 1)));\n\n const int MIN_DEPTH_BEGIN = 0;\n const int MAX_DEPTH_END = "+this.depth+";\n\n float norm = 0.0;\n for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) {\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd) {\n norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\n }\n else {\n break;\n }\n }\n\n norm = float("+r+") * norm + float("+n+");\n\n for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd){\n float dyi = -2.0 * float("+r+")\n * float("+o+")\n * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d)\n / norm;\n if (k == d) {\n dyi += pow(norm, -1.0 * "+o+");\n }\n if (k == coords[3]) {\n dyi *= getDy(b, r, c, d);\n result += dyi;\n }\n }\n else {\n break;\n }\n }\n }\n setOutput(result);\n }\n "},Ma=function(e,t,n,r,o){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;var a,i=t,u=e[3]-1;this.outputShape=e;var s="float("+n+") + float("+r+") * sum";a=.5===o?"inversesqrt("+s+")":1===o?"1.0/("+s+")":"exp(log("+s+") * float(-"+o+"));",this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords.x;\n int r = coords.y;\n int c = coords.z;\n int d = coords.w;\n\n bool hasNextCol = d < "+this.outputShape[3]+";\n bool hasNextRow = c < "+this.outputShape[2]+";\n\n vec4 sum = vec4(0.);\n vec4 xFragAtOutputCoords = getX(b, r, c, d);\n\n vec4 xAtOutputCoords = vec4(\n getChannel(xFragAtOutputCoords, vec2(c, d)),\n hasNextCol ?\n getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0,\n hasNextRow ?\n getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0,\n (hasNextRow && hasNextCol) ?\n getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0\n );\n\n int firstChannel = d - "+i+";\n vec2 cache = vec2(0.);\n if(firstChannel >= 0){\n vec4 firstChannelFrag = getX(b, r, c, firstChannel);\n cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel));\n if(hasNextRow){\n cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel));\n }\n }\n\n ivec2 depth = ivec2(d, d + 1);\n for (int j = - "+i+"; j <= "+i+"; j++) {\n ivec2 idx = depth + j;\n bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n bvec2 belowUpperBound = lessThanEqual(idx, ivec2("+u+"));\n\n bool depthInRange = aboveLowerBound.x && belowUpperBound.x;\n bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y;\n\n if(depthInRange || depthPlusOneInRange){\n vec4 z = vec4(0.);\n vec4 xFragAtCurrentDepth;\n z.xz = cache.xy;\n if(depthPlusOneInRange && hasNextCol){\n xFragAtCurrentDepth = idx.y != d ?\n getX(b, r, c, idx.y) : xFragAtOutputCoords;\n z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y));\n if(hasNextRow){\n z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y));\n }\n }\n cache.xy = z.yw;\n sum += z * z;\n }\n }\n vec4 result = xAtOutputCoords * "+a+";\n setOutput(result);\n }\n "},Fa=function(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;var t=e.strideHeight,n=e.strideWidth,r=e.dilationHeight,o=e.effectiveFilterHeight,a=e.effectiveFilterWidth,i=o-1-e.padInfo.top,u=a-1-e.padInfo.left,s=o*a-1;this.userCode="\n const ivec2 pads = ivec2("+i+", "+u+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < "+o+";\n wR += "+r+") {\n float dyR = float(dyRCorner + wR) / "+t+".0;\n\n if (dyR < 0.0 || dyR >= "+e.outHeight+".0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < "+a+"; wC++) {\n float dyC = float(dyCCorner + wC) / "+n+".0;\n\n if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n int maxPosValue = "+s+" - int(getMaxPos(b, idyR, idyC, d));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue = wR * "+a+" + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n setOutput(dotProd);\n }\n "},Ba=function(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;var t=e.strideDepth,n=e.strideHeight,r=e.strideWidth,o=e.dilationDepth,a=e.dilationHeight,i=e.dilationWidth,u=e.effectiveFilterDepth,s=e.effectiveFilterHeight,c=e.effectiveFilterWidth,l=u-1-e.padInfo.front,f=s-1-e.padInfo.top,d=c-1-e.padInfo.left,p=u*s*c-1;this.userCode="\n const ivec3 pads = ivec3("+l+", "+f+", "+d+");\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < "+u+";\n wD += "+o+") {\n float dyD = float(dyDCorner + wD) / "+t+".0;\n\n if (dyD < 0.0 || dyD >= "+e.outDepth+".0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < "+s+";\n wR += "+a+") {\n float dyR = float(dyRCorner + wR) / "+n+".0;\n\n if (dyR < 0.0 || dyR >= "+e.outHeight+".0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < "+c+";\n wC += "+i+") {\n float dyC = float(dyCCorner + wC) / "+r+".0;\n\n if (dyC < 0.0 || dyC >= "+e.outWidth+".0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n int maxPosValue = "+p+" -\n int(getMaxPos(batch, idyD, idyR, idyC, ch));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue =\n wD * "+s+" * "+c+" +\n wR * "+c+" + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n }\n setOutput(dotProd);\n }\n "},La=function(e,t,n,r,o,a,i){void 0===n&&(n=!1),void 0===r&&(r=!1),void 0===o&&(o=!1),void 0===a&&(a=null),void 0===i&&(i=!1),this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t;var u=n?e[1]:e[2],s=Math.ceil(u/2),c=n?"i * 2, rc.y":"rc.y, i * 2",l=r?"rc.z, i * 2":"i * 2, rc.z",f=n?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],d=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],p="",h="";a&&(p=i?"vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n "+a+"\n }":"vec4 activation(vec4 x) {\n "+a+"\n }",h="result = activation(result);");var v=o?"result += getBiasAtOutCoords();":"";o&&this.variableNames.push("bias"),i&&this.variableNames.push("preluActivationWeights"),this.userCode="\n "+p+"\n\n const float sharedDimension = "+s+".0;\n\n vec4 dot2x2ARowBCol(ivec3 rc) {\n vec4 result = vec4(0);\n for (int i = 0; i < "+s+"; i++) {\n vec4 a = getMatrixA(rc.x, "+c+");\n vec4 b = getMatrixB(rc.x, "+l+");\n\n // These swizzled products need to be separately added.\n // See: https://github.com/tensorflow/tfjs/issues/1735\n result += ("+f[0]+" * "+d[0]+");\n result += ("+f[1]+" * "+d[1]+");\n }\n return result;\n }\n\n void main() {\n ivec3 rc = getOutputCoords();\n vec4 result = dot2x2ARowBCol(rc);\n\n "+v+"\n\n "+h+"\n\n setOutput(result);\n }\n "},Wa=function(){function e(e,t,n){this.variableNames=["probs"],this.outputShape=[e,n],this.userCode="\n uniform float seed;\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n\n float r = random(seed);\n float cdf = 0.0;\n\n for (int i = 0; i < "+(t-1)+"; i++) {\n cdf += getProbs(batch, i);\n\n if (r < cdf) {\n setOutput(float(i));\n return;\n }\n }\n\n // If no other event happened, last event happened.\n setOutput(float("+(t-1)+"));\n }\n "}return e.prototype.getCustomSetupFunc=function(e){var t=this;return function(n,r){null==t.seedLoc&&(t.seedLoc=n.getUniformLocation(r,"seed")),n.gl.uniform1f(t.seedLoc,e)}},e}(),Ua=function(e,t,n,r){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n int index = round(getIndices(coords.x));\n setOutput(mix(float("+r+"), float("+n+"),\n float(index == coords.y)));\n }\n "},za=function(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=e;var t=e.length;if(0===t)this.userCode="\n void main() {\n setOutput(vec4(getA(), 0., 0., 0.));\n }\n ";else{var n=uo("rc",t),r=bo(t),o=function(e,t,n){if(1===e)return"rc > "+t[0];for(var r="",o=e-2;o<e;o++)r+=n[o]+" >= "+t[o],o<e-1&&(r+="||");return r}(t,e,n),a=function(e,t,n,r){if(1===e)return"";var o=r.slice(-2);return"\n int r = "+o[0]+";\n int c = "+o[1]+";\n int rp1 = r + 1;\n int cp1 = c + 1;\n\n bool cEdge = cp1 >= "+t+";\n bool rEdge = rp1 >= "+n+";\n "}(t,e[e.length-1],e[e.length-2],n),i=function(e,t){var n=e.length,r=function(e,t){for(var n=[],r=0;r<=1;r++)for(var o=0;o<=1;o++){for(var a=(0===r?"r":"rp1")+", "+(0===o?"c":"cp1"),i=2;i<e;i++)a=t[t.length-1-i]+","+a;n.push(a)}return n}(n,t);return 1===n?"getA(rc),\n rc + 1 >= "+e[0]+" ? 0. : getA(rc + 1),\n 0, 0":"getA("+r[0]+"),\n cEdge ? 0. : getA("+r[1]+"),\n rEdge ? 0. : getA("+r[2]+"),\n rEdge || cEdge ? 0. : getA("+r[3]+")"}(e,n);this.userCode="\n void main() {\n "+r+" rc = getOutputCoords();\n\n if("+o+") {\n setOutput(vec4(0));\n } else {\n "+a+"\n\n setOutput(vec4("+i+"));\n }\n }\n "}},ja=function(e,t,n){this.variableNames=["x"],this.outputShape=t.map((function(t,n){return t[0]+e[n]+t[1]}));var r=e.length,o=bo(r),a=t.map((function(e){return e[0]})).join(","),i=t.map((function(t,n){return t[0]+e[n]})).join(","),u=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,r);this.userCode=1!==r?"\n "+o+" start = "+o+"("+a+");\n "+o+" end = "+o+"("+i+");\n\n void main() {\n "+o+" outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(float("+n+"));\n } else {\n "+o+" coords = outC - start;\n setOutput(getX("+u+"));\n }\n }\n ":"\n int start = "+a+";\n int end = "+i+";\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start || outC >= end) {\n setOutput(float("+n+"));\n } else {\n setOutput(getX(outC - start));\n }\n }\n "},Va=function(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((function(t,n){return t[0]+e[n]+t[1]}));for(var r=e.length,o=bo(r),a=t.map((function(e){return e[0]})).join(","),i=t.map((function(t,n){return t[0]+e[n]})).join(","),u=uo("rc",r),s=uo("source",r),c=u[r-1]+" < "+this.outputShape[r-1],l=1===r?"source":"vec2("+s.slice(-2).join()+")",f=[o+" rc = outputLoc;",u[r-1]+" += 1;\n if("+c+") {\n ",1===r?"":"}\n rc = outputLoc;\n "+u[r-2]+" += 1;\n if("+u[r-2]+" < "+this.outputShape[r-2]+") {",1===r?"":" "+u[r-1]+" += 1;\n if("+c+") {"],d=1===r?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))",p="",h=0,v=1===r?2:4;h<v;h++)p+="\n "+f[h]+"\n if ("+d+") {\n result["+h+"] = float("+n+");\n } else {\n "+o+" source = rc - start;\n result["+h+"] = getChannel(getX("+s.join()+"), "+l+");\n }\n ";p+=1===r?"} ":"}}",this.userCode="\n const "+o+" start = "+o+"("+a+");\n const "+o+" end = "+o+"("+i+");\n\n void main() {\n "+o+" outputLoc = getOutputCoords();\n vec4 result = vec4(0.);\n "+p+"\n setOutput(result);\n }\n "},Ha=function(e,t,n){if(this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");var r=e.filterWidth,o=e.strideHeight,a=e.strideWidth,i=e.dilationHeight,u=e.dilationWidth,s=e.effectiveFilterHeight,c=e.effectiveFilterWidth,l=e.padInfo.top,f=e.padInfo.left;this.outputShape=e.outShape;var d="avg"===t,p="0.0";if(d||(p="-1.0 / 1e-20"),n)this.userCode="\n const ivec2 strides = ivec2("+o+", "+a+");\n const ivec2 pads = ivec2("+l+", "+f+");\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n float avgValue = 0.0;\n\n for (int wR = 0; wR < "+s+";\n wR += "+i+") {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+c+";\n wC += "+u+") {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= "+e.inWidth+") {\n continue;\n }\n\n float value = getX(batch, xR, xC, d);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value >= currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = wR * "+c+" + wC;\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n ";else{var h=t+"("+t+"("+t+"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])";"avg"===t&&(h="avgValue / count");var v=4*Math.floor(r/4),m=r%4,g="\n if ("+d+") {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n ";this.userCode="\n const ivec2 strides = ivec2("+o+", "+a+");\n const ivec2 pads = ivec2("+l+", "+f+");\n const float initializationValue = "+p+";\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xR, int xC, int d) {\n if (xC < 0 || xC >= "+e.inWidth+") {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xR, xC, d);\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n vec4 minMaxValue = vec4("+p+");\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wR = 0; wR < "+s+";\n wR += "+i+") {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+v+"; wC += 4) {\n int xC = xCCorner + wC * "+u+";\n\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + "+u+", d),\n getValue(batch, xR, xC + 2 * "+u+", d),\n getValue(batch, xR, xC + 3 * "+u+", d)\n );\n\n "+g+"\n }\n\n int xC = xCCorner + "+v+";\n if ("+(1===m)+") {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n "+g+"\n } else if ("+(2===m)+") {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + "+u+", d),\n initializationValue,\n initializationValue\n );\n\n "+g+"\n } else if ("+(3===m)+") {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + "+u+", d),\n getValue(batch, xR, xC + 2 * "+u+", d),\n initializationValue\n );\n\n "+g+"\n }\n }\n setOutput("+h+");\n }\n "}},Ga=function(e,t,n){if(this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");var r=e.filterWidth,o=e.strideDepth,a=e.strideHeight,i=e.strideWidth,u=e.dilationDepth,s=e.dilationHeight,c=e.dilationWidth,l=e.effectiveFilterDepth,f=e.effectiveFilterHeight,d=e.effectiveFilterWidth,p=e.padInfo.front,h=e.padInfo.top,v=e.padInfo.left;this.outputShape=e.outShape;var m="avg"===t,g="0.0";if(m||(g="-1.0 / 1e-20"),n)this.userCode="\n const ivec3 strides =\n ivec3("+o+", "+a+", "+i+");\n const ivec3 pads = ivec3("+p+", "+h+", "+v+");\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n\n for (int wD = 0; wD < "+l+";\n wD += "+u+") {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= "+e.inDepth+") {\n continue;\n }\n\n for (int wR = 0; wR < "+f+";\n wR += "+s+") {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+d+";\n wC += "+c+") {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= "+e.inWidth+") {\n continue;\n }\n\n float value = getX(batch, xD, xR, xC, ch);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value >= currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition =\n wD * "+f+" * "+d+" +\n wR * "+d+" + wC;;\n }\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n ";else{var y=t+"("+t+"("+t+"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])";"avg"===t&&(y="avgValue / count");var b=4*Math.floor(r/4),x=r%4,w="\n if ("+m+") {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n ";this.userCode="\n const ivec3 strides =\n ivec3("+o+", "+a+", "+i+");\n const ivec3 pads = ivec3("+p+", "+h+", "+v+");\n const float initializationValue = "+g+";\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xD, int xR, int xC, int ch) {\n if (xC < 0 || xC >= "+e.inWidth+") {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xD, xR, xC, ch);\n }\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch).\n // ? = to be determined\n vec4 minMaxValue = vec4("+g+");\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wD = 0; wD < "+l+";\n wD += "+u+") {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= "+e.inDepth+") {\n continue;\n }\n\n for (int wR = 0; wR < "+f+";\n wR += "+s+") {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= "+e.inHeight+") {\n continue;\n }\n\n for (int wC = 0; wC < "+b+"; wC += 4) {\n int xC = xCCorner + wC * "+c+";\n\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + "+c+", ch),\n getValue(batch, xD, xR, xC + 2 * "+c+", ch),\n getValue(batch, xD, xR, xC + 3 * "+c+", ch)\n );\n\n "+w+"\n }\n\n int xC = xCCorner + "+b+";\n if ("+(1===x)+") {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n "+w+"\n } else if ("+(2===x)+") {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + "+c+", ch),\n initializationValue,\n initializationValue\n );\n\n "+w+"\n } else if ("+(3===x)+") {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + "+c+", ch),\n getValue(batch, xD, xR, xC + 2 * "+c+", ch),\n initializationValue\n );\n\n "+w+"\n }\n }\n setOutput("+y+");\n }\n }\n "}},qa=function(e,t){this.variableNames=["x"];var n=e.windowSize,r=e.batchSize,o=e.inSize,a=Math.ceil(o/n);this.outputShape=[r,a];var i="0.0",u="";"prod"===t?i="1.0":"min"===t?(i="1.0 / 1e-20",u="min"):"max"===t&&(i="-1.0 / 1e-20",u="max");var s=t+"("+t+"("+t+"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])";"sum"===t?s="sumValue":"prod"===t?s="prodValue":"all"===t?s="allValue":"any"===t&&(s="anyValue");var c=4*Math.floor(n/4),l=n%4,f="\n if ("+("sum"===t)+") {\n sumValue += dot(values, ones);\n } else if ("+("prod"===t)+") {\n vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\n prodValue *= tmp[0] * tmp[1];\n } else {\n minMaxValue = "+u+"(values, minMaxValue);\n }\n ",d="vec4";"all"===t?(i="1.0",f="\n bool reducedAllValue = all(values);\n float floatedReducedAllValue = float(reducedAllValue);\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n ",d="bvec4"):"any"===t&&(i="0.0",f="\n bool reducedAnyValue = any(values);\n float floatedReducedAnyValue = float(reducedAnyValue);\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n ",d="bvec4");var p="";o%n>0&&(p="\n if (inIdx < 0 || inIdx >= "+o+") {\n return initializationValue;\n }\n "),this.userCode="\n const float initializationValue = "+i+";\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n "+p+"\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * "+n+";\n\n vec4 minMaxValue = vec4("+i+");\n float prodValue = 1.0;\n float sumValue = 0.0;\n float allValue = 1.0;\n float anyValue = 0.0;\n\n for (int i = 0; i < "+c+"; i += 4) {\n int inIdx = inOffset + i;\n "+d+" values = "+d+"(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n "+f+"\n }\n\n int inIdx = inOffset + "+c+";\n if ("+(1===l)+") {\n "+d+" values = "+d+"(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n "+f+"\n } else if ("+(2===l)+") {\n "+d+" values = "+d+"(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n "+f+"\n } else if ("+(3===l)+") {\n "+d+" values = "+d+"(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n "+f+"\n }\n setOutput("+s+");\n }\n "},Ka=function(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;for(var n="",r=0;r<4;r++){var o="thisRC = rc;";r%2==1&&(o+="thisRC.z += 1;"),r>1&&(o+="thisRC.y += 1;"),n+="\n "+o+"\n "+(r>0?"if(thisRC.y < rows && thisRC.z < cols){":"")+"\n int flatIndex = getFlatIndex(thisRC);\n\n ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex);\n vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z));\n\n result["+r+"] =\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n "+(r>0?"}":"")+"\n "}this.userCode="\n \n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n "+co(["r","c","d"],t)+"\n return ivec3(r, c, d);\n }\n \n "+lo(e)+"\n\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0.);\n\n ivec3 thisRC;\n int rows = "+e[1]+";\n int cols = "+e[2]+";\n\n "+n+"\n\n setOutput(result);\n }\n "},Xa=function(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t.shape;var r=t.shape,o=r[1],a=r[2],i=e.shape,u=i[1],s=i[2],c=[n&&u>1?o-1:o,n&&s>1?a-1:a],l=[n&&u>1?u-1:u,n&&s>1?s-1:s],f=c[0]/l[0],d=c[1]/l[1],p=1/f,h=1/d,v=2*Math.ceil(p)+2,m=2*Math.ceil(h)+2;this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float("+f+");\n const float widthScale = float("+d+");\n\n const float invHeightScale = float("+p+");\n const float invWidthScale = float("+h+");\n\n const int winHeight = int("+v+");\n const int winWidth = int("+m+");\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(startRLerp - float(winHeight / 2));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(startCLerp - float(winWidth / 2));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= "+u+") {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= "+s+") {\n continue;\n }\n\n float dxR = float(dyR) * heightScale;\n int topDxRIndex = int(floor(dxR));\n int bottomDxRIndex = int(min(ceil(dxR), "+(o-1)+".0));\n float dxRLerp = dxR - float(topDxRIndex);\n float inverseDxRLerp = 1.0 - dxRLerp;\n\n float dxC = float(dyC) * widthScale;\n int leftDxCIndex = int(floor(dxC));\n int rightDxCIndex = int(min(ceil(dxC), "+(a-1)+".0));\n float dxCLerp = dxC - float(leftDxCIndex);\n float inverseDxCLerp = 1.0 - dxCLerp;\n\n if (r == topDxRIndex && c == leftDxCIndex) {\n // topLeft\n accumulator +=\n getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\n }\n\n if (r == topDxRIndex && c == rightDxCIndex) {\n // topRight\n accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\n }\n\n if (r == bottomDxRIndex && c == leftDxCIndex) {\n // bottomLeft\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\n }\n\n if (r == bottomDxRIndex && c == rightDxCIndex) {\n // bottomRight\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n "},$a=function(e,t,n,r){this.variableNames=["A"],this.outputShape=[];var o=e[0],a=e[1],i=e[2],u=e[3];this.outputShape=[o,t,n,u];var s=[r&&t>1?a-1:a,r&&n>1?i-1:i],c=[r&&t>1?t-1:t,r&&n>1?n-1:n];this.userCode="\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n "+s[0]/c[0]+",\n "+s[1]/c[1]+");\n const vec2 inputShapeRC = vec2("+a+".0, "+i+".0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC;\n\n // Compute the four integer indices.\n ivec2 sourceFloorRC = ivec2(sourceFracIndexRC);\n ivec2 sourceCeilRC = ivec2(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\n float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\n float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\n float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n float top = topLeft + (topRight - topLeft) * fracRC.y;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n float newValue = top + (bottom - top) * fracRC.x;\n\n setOutput(newValue);\n }\n "},Ya=function(e,t,n,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];var o=e[0],a=e[1],i=e[2],u=e[3];this.outputShape=[o,t,n,u];var s=[r&&t>1?a-1:a,r&&n>1?i-1:i],c=[r&&t>1?t-1:t,r&&n>1?n-1:n];this.userCode="\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n "+s[0]/c[0]+",\n "+s[1]/c[1]+",\n "+s[1]/c[1]+");\n const vec3 inputShapeRC = vec3("+a+".0, "+i+".0,\n "+i+".0);\n\n float getAValue(int b, int r, int c, int d) {\n return getChannel(getA(b, r, c, d), vec2(c, d));\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n // Calculate values for next column in yRC.z.\n ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n // Fractional source index.\n vec3 sourceFracIndexRC = vec3(yRC) * effectiveInputOverOutputRatioRC;\n\n // Compute the four integer indices.\n ivec3 sourceFloorRC = ivec3(sourceFracIndexRC);\n ivec3 sourceCeilRC = ivec3(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < "+(u-1)+";\n bool hasNextRow = coords.z < "+(n-1)+";\n\n // In parallel, construct four corners for all four components in\n // packed 2x2 cell.\n vec4 topLeft = vec4(\n getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 bottomLeft = vec4(\n getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 topRight = vec4(\n getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec4 bottomRight = vec4(\n getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC);\n\n vec4 top = mix(topLeft, topRight, fracRC.yyzz);\n vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz);\n vec4 newValue = mix(top, bottom, fracRC.x);\n\n setOutput(newValue);\n }\n "},Qa=function(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t.shape;var r=t.shape,o=r[1],a=r[2],i=e.shape,u=i[1],s=i[2],c=[n&&u>1?o-1:o,n&&s>1?a-1:a],l=[n&&u>1?u-1:u,n&&s>1?s-1:s],f=c[0]/l[0],d=c[1]/l[1],p=1/f,h=1/d,v=2*Math.ceil(p)+2,m=2*Math.ceil(h)+2;this.userCode="\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float("+f+");\n const float widthScale = float("+d+");\n\n const float invHeightScale = float("+p+");\n const float invWidthScale = float("+h+");\n\n const int winHeight = int("+v+");\n const int winWidth = int("+m+");\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(floor(startRLerp - float(winHeight / 2)));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(floor(startCLerp - float(winWidth / 2)));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= "+u+") {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= "+s+") {\n continue;\n }\n\n float sourceFracRow =\n float("+c[0]+") *\n (float(dyR) / float("+l[0]+"));\n\n float sourceFracCol =\n float("+c[1]+") *\n (float(dyC) / float("+l[1]+"));\n\n int sourceNearestRow = int(min(\n float(int("+o+") - 1),\n "+n+" ? float(round(sourceFracRow)) :\n float(floor(sourceFracRow))));\n\n int sourceNearestCol = int(min(\n float(int("+a+") - 1),\n "+n+" ? float(round(sourceFracCol)) :\n float(floor(sourceFracCol))));\n\n if (r == sourceNearestRow && c == sourceNearestCol) {\n accumulator += getDy(b, dyR, dyC, d);\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n "},Ja=function(e,t,n,r){this.variableNames=["A"],this.outputShape=[];var o=e[0],a=e[1],i=e[2],u=e[3];this.outputShape=[o,t,n,u];var s=[r&&t>1?a-1:a,r&&n>1?i-1:i],c=[r&&t>1?t-1:t,r&&n>1?n-1:n],l=r?"0.5":"0.0";this.userCode="\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n "+s[0]/c[0]+",\n "+s[1]/c[1]+");\n const vec2 inputShapeRC = vec2("+a+".0, "+i+".0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC;\n\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestRC = ivec2(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + "+l+")));\n\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n setOutput(newValue);\n }\n "},Za=function(e,t){this.variableNames=["x"];var n=e.length;if(n>4)throw new Error("WebGL backend: Reverse of rank-"+n+" tensor is not yet supported");if(this.outputShape=e,1!==n){var r=e.map((function(n,r){return function(n){return-1!==t.indexOf(n)&&1!==e[n]?e[n]+" - coords["+n+"] - 1":"coords["+n+"]"}(r)})).join(","),o=bo(n);this.userCode="\n void main() {\n "+o+" coords = getOutputCoords();\n setOutput(getX("+r+"));\n }\n "}else this.userCode="\n void main() {\n int coord = getOutputCoords();\n setOutput(getX("+e[0]+" - coord - 1));\n }\n "},ei=function(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;var n=e.length;if(n>4)throw new Error("WebGL backend: Reverse of rank-"+n+" tensor is not yet supported");this.outputShape=e;var r=uo("rc",n),o=r[n-1]+" + 1 < "+this.outputShape[n-1],a=r[n-2]+" + 1 < "+this.outputShape[n-2],i=bo(n);function u(n){var r=e.map((function(r,o){return function(n,r){return-1!==t.indexOf(n)&&1!==e[n]?e[n]+" - "+r[n]+" - 1":""+r[n]}(o,n)}));return"getChannel(getX("+r.join(",")+"), vec2("+r.slice(-2).join(",")+"))"}this.userCode=1===n?"\n void main(){\n int rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = getChannel(getX("+e[0]+" - rc - 1),\n "+e[0]+" - rc - 1);\n if("+o+"){\n result.g = getChannel(getX("+e[0]+" - (rc + 1) - 1),\n "+e[0]+" - (rc + 1) - 1);\n }\n setOutput(result);\n }\n ":"\n void main() {\n "+i+" rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = "+function(e){return u(e)}(r.slice())+";\n if("+o+"){\n result.g = "+function(e){return e[n-1]="("+e[n-1]+" + 1)",u(e)}(r.slice())+";\n }\n if("+a+") {\n result.b = "+function(e){return e[n-2]="("+e[n-2]+" + 1)",u(e)}(r.slice())+";\n if("+o+") {\n result.a = "+function(e){return e[n-1]="("+e[n-1]+" + 1)",e[n-2]="("+e[n-2]+" + 1)",u(e)}(r.slice())+";\n }\n }\n setOutput(result);\n }\n "},ti=function(e,t,n,r,o,a,i){void 0===i&&(i=!0),this.variableNames=["updates","indices","defaultValue"],this.outputShape=a;var u=bo(o.length),s=bo(a.length),c="";1===n?c="i":2===n&&(c="i, j");var l="getIndices("+c+")",f="";1===r?f="i":2===r&&(f="i, coords[1]");var d="getUpdates("+f+")",p=t>1?"strides[j]":"strides";this.userCode="\n "+u+" strides = "+u+"("+o+");\n\n void main() {\n "+s+" coords = getOutputCoords();\n float sum = 0.0;\n bool found = false;\n for (int i = 0; i < "+e+"; i++) {\n int flattenedIndex = 0;\n for (int j = 0; j < "+t+"; j++) {\n int index = round("+l+");\n flattenedIndex += index * "+p+";\n }\n if (flattenedIndex == coords[0]) {\n sum += "+d+";\n found = true;\n }\n }\n setOutput(mix(getDefaultValue(), sum, float(found)));\n }\n "},ni=function(e,t){this.variableNames=["x","segmentIds"];var n=e.windowSize,r=e.batchSize,o=e.inSize,a=e.numSegments,i=a*Math.ceil(o/n);this.outputShape=[r,i];var u=4*Math.floor(n/4),s=n%4,c="\n sumValue += dot(values, segFilter);\n ",l="";o%n>0&&(l="\n if (inIdx < 0 || inIdx >= "+o+") {\n return initializationValue;\n }\n ");var f="";o%n>0&&(f="\n if (inIdx < 0 || inIdx >= "+o+") {\n return -1.0;\n }\n "),this.userCode="\n const float initializationValue = 0.0;\n\n float getValue(int batch, int inIdx) {\n "+l+"\n return getX(batch, inIdx);\n }\n\n float getSegmentIdAtIndex(int inIdx) {\n "+f+"\n return getSegmentIds(inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = int(floor(float(outIdx) / float(\n "+a+")) * float("+n+"));\n int currentSeg = int(mod(float(outIdx), float("+a+")));\n\n float sumValue = 0.0;\n\n for (int i = 0; i < "+u+"; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0\n );\n\n "+c+"\n }\n\n int inIdx = inOffset + "+u+";\n if ("+(1===s)+") {\n vec4 values = vec4(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n int inIdxSeg = int(getSegmentIdAtIndex(inIdx));\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n 0,\n 0,\n 0\n );\n\n "+c+"\n } else if ("+(2===s)+") {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n 0,\n 0\n );\n\n "+c+"\n } else if ("+(3===s)+") {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n 0\n );\n\n "+c+"\n }\n setOutput(sumValue);\n }\n "},ri=function(e,t,n){var r,o;if(this.variableNames=["c","a","b"],this.outputShape=t,n>4)throw Error("Where for rank "+n+" is not yet supported");if(1===n)o="resRC",r="resRC";else{for(var a=["resRC.x","resRC.y","resRC.z","resRC.w"],i=[],u=[],s=0;s<t.length;s++)u.push(""+a[s]),s<e&&i.push(""+a[s]);r=i.join(),o=u.join()}var c=bo(n);this.userCode="\n void main() {\n "+c+" resRC = getOutputCoords();\n float cVal = getC("+r+");\n if (cVal >= 1.0) {\n setOutput(getA("+o+"));\n } else {\n setOutput(getB("+o+"));\n }\n }\n "},oi=function(){function e(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;var t,n=bo(this.rank),r="uniform int start["+this.rank+"];",o=function(e){if(1===e)return"sourceLoc";if(e<=6)return ai.slice(0,e).map((function(e){return"sourceLoc."+e})).join(",");throw Error("Slicing for rank "+e+" is not yet supported")}(this.rank);t="\n "+n+" sourceLoc;\n "+n+" coords = getOutputCoords();\n "+e.map((function(e,t){return"sourceLoc."+ai[t]+" = start["+t+"] + coords."+ai[t]+";"})).join("\n")+"\n ",this.userCode="\n "+r+"\n void main() {\n "+t+"\n setOutput(getSource("+o+"));\n }\n "}return e.prototype.getCustomSetupFunc=function(e){var t=this;if(e.length!==this.rank)throw Error("The rank ("+this.rank+") of the program must match the length of start ("+e.length+")");return function(n,r){null==t.startLoc&&(t.startLoc=n.getUniformLocationNoThrow(r,"start"),null==t.startLoc)||n.gl.uniform1iv(t.startLoc,e)}},e}(),ai=["x","y","z","w","u","v"],ii=function(){function e(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;var t=bo(this.rank),n=uo("coords",this.rank),r=uo("sourceLoc",this.rank),o=1===this.rank?"sourceLoc":"vec2("+r.slice(-2).join()+")",a="getChannel(getSource("+r.join()+"), "+o+")",i="\n result.x = "+a+";\n if (++"+n[this.rank-1]+" < "+e[this.rank-1]+") {\n ++"+r[this.rank-1]+";\n result.y = "+a+";\n --"+r[this.rank-1]+";\n }\n ",u=1===this.rank?"":"\n --"+n[this.rank-1]+";\n if (++"+n[this.rank-2]+" < "+e[this.rank-2]+") {\n ++"+r[this.rank-2]+";\n result.z = "+a+";\n if (++"+n[this.rank-1]+" < "+e[this.rank-1]+") {\n ++"+r[this.rank-1]+";\n result.w = "+a+";\n }\n }\n ",s=this.rank<=4?"sourceLoc = coords +\n "+t+"("+e.map((function(e,t){return"start["+t+"]"})).join()+");":e.map((function(e,t){return r[t]+" = "+n[t]+" + start["+t+"];"})).join("\n");this.userCode="\n uniform int start["+this.rank+"];\n void main() {\n "+t+" coords = getOutputCoords();\n "+t+" sourceLoc;\n "+s+"\n vec4 result = vec4(0.);\n "+i+"\n "+u+"\n setOutput(result);\n }\n "}return e.prototype.getCustomSetupFunc=function(e){var t=this;if(e.length!==this.rank)throw Error("The rank ("+this.rank+") of the program must match the length of start ("+e.length+")");return function(n,r){null==t.startLoc&&(t.startLoc=n.getUniformLocationNoThrow(r,"start"),null==t.startLoc)||n.gl.uniform1iv(t.startLoc,e)}},e}(),ui=function(e,t,n){this.variableNames=["x"],this.outputShape=n;var r=n.length,o=bo(n.length),a=bo(n.length),i="";if(1===r)i="coords * strides + begin";else{var u=0;i=n.map((function(e,t){return u++,1===n.length?"coords * strides["+t+"] + begin["+t+"]":"coords["+(u-1)+"] * strides["+t+"] + begin["+t+"]"})).join(",")}this.userCode="\n "+o+" begin = "+o+"("+e+");\n "+o+" strides = "+o+"("+t+");\n\n void main() {\n "+a+" coords = getOutputCoords();\n setOutput(getX("+i+"));\n }\n "},si=function(){function e(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}return e.prototype.acquireTexture=function(e,t,n){var r,o=ci(t,n),a=li(e,o,n);if(a in this.freeTextures||(this.freeTextures[a]=[]),a in this.usedTextures||(this.usedTextures[a]=[]),this.freeTextures[a].length>0){this.numFreeTextures--,this.numUsedTextures++,this.log();var i=this.freeTextures[a].shift();return this.usedTextures[a].push(i),i}return this.numUsedTextures++,this.log(),o===Me.PACKED_2X2_FLOAT32?r=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):o===Me.PACKED_2X2_FLOAT16?r=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):o===Me.UNPACKED_FLOAT32?r=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):o===Me.UNPACKED_FLOAT16?r=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):o===Me.PACKED_4X1_UNSIGNED_BYTE&&(r=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[a].push(r),r},e.prototype.releaseTexture=function(e,t,n,r){if(null!=this.freeTextures){var o=li(t,ci(n,r),r);o in this.freeTextures||(this.freeTextures[o]=[]),this.freeTextures[o].push(e),this.numFreeTextures++,this.numUsedTextures--;var a=this.usedTextures[o],i=a.indexOf(e);if(i<0)throw new Error("Cannot release a texture that was never provided by this texture manager");a.splice(i,1),this.log()}},e.prototype.log=function(){this.logEnabled&&(this.numFreeTextures,this.numUsedTextures)},e.prototype.getNumUsedTextures=function(){return this.numUsedTextures},e.prototype.getNumFreeTextures=function(){return this.numFreeTextures},e.prototype.dispose=function(){var e=this;if(null!=this.freeTextures){for(var t in this.freeTextures)this.freeTextures[t].forEach((function(t){e.gpgpu.deleteMatrixTexture(t)}));for(var t in this.usedTextures)this.usedTextures[t].forEach((function(t){e.gpgpu.deleteMatrixTexture(t)}));this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0}},e}();function ci(e,t){if(e===Pe.UPLOAD)return Me.PACKED_2X2_FLOAT32;if(e===Pe.RENDER||null==e)return function(e){return f().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?Me.PACKED_2X2_FLOAT32:Me.UNPACKED_FLOAT32:e?Me.PACKED_2X2_FLOAT16:Me.UNPACKED_FLOAT16}(t);if(e===Pe.DOWNLOAD||e===Pe.PIXELS)return Me.PACKED_4X1_UNSIGNED_BYTE;throw new Error("Unknown logical texture type "+e)}function li(e,t,n){return e[0]+"_"+e[1]+"_"+t+"_"+n}var fi=function(e,t){this.variableNames=["A"];for(var n=new Array(e.length),r=0;r<n.length;r++)n[r]=e[r]*t[r];this.outputShape=n,this.rank=n.length;var o=bo(this.rank),a=function(e){var t=e.length;if(t>5)throw Error("Tile for rank "+t+" is not yet supported");if(1===t)return"imod(resRC, "+e[0]+")";for(var n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],r=[],o=0;o<e.length;o++)r.push("imod("+n[o]+", "+e[o]+")");return r.join()}(e);this.userCode="\n void main() {\n "+o+" resRC = getOutputCoords();\n setOutput(getA("+a+"));\n }\n "},di=function(e,t){this.variableNames=["A"];for(var n=new Array(e.length),r=0;r<n.length;r++)n[r]=e[t[r]];this.outputShape=n,this.rank=n.length;var o=bo(this.rank),a=function(e){var t=e.length;if(t>6)throw Error("Transpose for rank "+t+" is not yet supported");for(var n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],r=new Array(t),o=0;o<e.length;o++)r[e[o]]=n[o];return r.join()}(t);this.userCode="\n void main() {\n "+o+" resRC = getOutputCoords();\n setOutput(getA("+a+"));\n }\n "},pi=function(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0;for(var n=new Array(e.length),r=0;r<n.length;r++)n[r]=e[t[r]];if(this.outputShape=n,this.rank=n.length,this.rank>6)throw Error("Packed transpose for rank "+this.rank+" is not yet supported.");var o=bo(this.rank),a=io("rc",this.rank),i=new Array(this.rank);for(r=0;r<t.length;r++)i[t[r]]=a[r];var u="vec2("+i.slice(-2).join()+")",s="++"+a[this.rank-1]+" < "+n[this.rank-1],c="getChannel(getA("+i.join()+"), "+u+")";this.userCode="\n void main() {\n "+o+" rc = getOutputCoords();\n vec4 result = vec4(0.);\n result[0] = "+c+";\n if("+s+") {\n result[1] = "+c+";\n }\n --"+a[this.rank-1]+";\n if(++"+a[this.rank-2]+" < "+n[this.rank-2]+") {\n result[2] = "+c+";\n if("+s+") {\n result[3] = "+c+";\n }\n }\n setOutput(result);\n }\n "},hi=function(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode="\n float unaryOperation(float x) {\n "+t+"\n }\n\n void main() {\n float x = getAAtOutCoords();\n float y = unaryOperation(x);\n\n setOutput(y);\n }\n "},vi="if (isnan(x)) return x;",mi="return abs(x);",gi=vi+"\n return (x < 0.0) ? 0.0 : x;\n",yi=vi+"\n return (x < 0.0) ? 0.0 : min(6.0, x);\n",bi="return (x >= 0.0) ? x : (exp(x) - 1.0);",xi="return -x;",wi="return ceil(x);",Ei="return floor(x);",Ci="return exp(x);",ki="return exp(x) - 1.0;",_i="return x;",Si="\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n",Ri="\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n",Ti="\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n",Ii=function(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode="\n vec4 unaryOperation(vec4 x) {\n "+t+"\n }\n\n void main() {\n vec4 x = getAAtOutCoords();\n vec4 y = unaryOperation(x);\n\n setOutput(y);\n }\n "},Oi=function(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;var t=e.length,n=uo("rc",t),r=bo(t),o=function(e,t){if(1===e)return"rc";for(var n="",r=0;r<e;r++)n+=t[r],r<e-1&&(n+=",");return n}(t,n),a=n.slice(-2),i=t<=1?"rc":"vec2("+a.join(",")+")";this.userCode="\n void main() {\n "+r+" rc = getOutputCoords();\n vec4 packedInput = getA("+o+");\n\n setOutput(getChannel(packedInput, "+i+"));\n }\n "},Ai={};function Di(e,t){if(void 0===t&&(t=!1),"linear"===e)return"return x;";if("relu"===e)return t?Si:gi;if("elu"===e)return t?Ti:bi;if("relu6"===e)return t?Ri:yi;if("prelu"===e)return t?No:Ao;throw new Error("Activation "+e+" has not been implemented for the WebGL backend.")}var Ni=function(e){function t(t){var n,r=e.call(this)||this;if(r.pendingRead=new WeakMap,r.pendingDisposal=new WeakSet,r.dataRefCount=new WeakMap,r.numBytesInGPU=0,r.uploadWaitMs=0,r.downloadWaitMs=0,r.warnedAboutMemory=!1,r.pendingDeletes=0,r.disposed=!1,!f().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(null==t){var o=We(f().getNumber("WEBGL_VERSION"));r.binaryCache=((n=f().getNumber("WEBGL_VERSION"))in Ai||(Ai[n]={}),Ai[n]),r.gpgpu=new Oa(o),r.canvas=o.canvas,r.gpgpuCreatedLocally=!0}else r.gpgpu=t,r.binaryCache={},r.gpgpuCreatedLocally=!1,r.canvas=t.gl.canvas;return r.textureManager=new si(r.gpgpu),r.numMBBeforeWarning=null==f().global.screen?1024:f().global.screen.height*f().global.screen.width*window.devicePixelRatio*600/1024/1024,r.texData=new Sr(r,Oe),r}return u(t,e),t.prototype.numDataIds=function(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes},t.prototype.write=function(e,t,n){if(f().getBool("DEBUG")&&this.checkNumericalProblems(e),"complex64"===n&&null!=e)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");var r={};return this.texData.set(r,{shape:t,dtype:n,values:e,usage:Pe.UPLOAD}),r},t.prototype.move=function(e,t,n,r){if(f().getBool("DEBUG")&&this.checkNumericalProblems(t),"complex64"===r)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:r,values:t,usage:Pe.UPLOAD})},t.prototype.readSync=function(e){var t=this.texData.get(e),n=t.values,r=t.dtype,o=t.complexTensors,a=t.slice,i=t.shape,u=t.isPacked;if(null!=a){var s;s=u?new Ii(i,_i):new hi(i,_i);var c=this.runWebGLProgram(s,[{dataId:e,shape:i,dtype:r}],r),l=this.readSync(c.dataId);return this.disposeData(c.dataId),l}if(null!=n)return this.convertAndCacheOnCPU(e);if("string"===r)return n;var f,d,p=null!=this.activeTimers;return p&&(f=te()),d="complex64"===r?Kr(o.real.dataSync(),o.imag.dataSync()):this.getValuesFromTexture(e),p&&(this.downloadWaitMs+=te()-f),this.convertAndCacheOnCPU(e,d)},t.prototype.read=function(e){return s(this,void 0,void 0,(function(){var t,n,r,o,a,i,u,s,l,d,p,h,v,m,g,y,b,x,w,E,C,k;return c(this,(function(c){switch(c.label){case 0:if(this.pendingRead.has(e))return t=this.pendingRead.get(e),[2,new Promise((function(e){return t.push(e)}))];if(n=this.texData.get(e),r=n.values,o=n.shape,a=n.slice,i=n.dtype,u=n.complexTensors,s=n.isPacked,null!=a)return l=s?new Ii(o,_i):new hi(o,_i),d=this.runWebGLProgram(l,[{dataId:e,shape:o,dtype:i}],i),p=this.read(d.dataId),this.disposeData(d.dataId),[2,p];if(null!=r)return[2,this.convertAndCacheOnCPU(e)];if(!f().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&2===f().getNumber("WEBGL_VERSION"))throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");return h=null,"complex64"!==i&&f().get("WEBGL_BUFFER_SUPPORTED")&&(v=this.decode(e),m=this.texData.get(v.dataId),h=(k=this.gpgpu).createBufferFromTexture.apply(k,[m.texture].concat(ze(o)))),this.pendingRead.set(e,[]),"complex64"===i?[3,2]:[4,this.gpgpu.createAndWaitForFence()];case 1:c.sent(),c.label=2;case 2:return"complex64"!==i?[3,4]:[4,Promise.all([u.real.data(),u.imag.data()])];case 3:return y=c.sent(),b=y[0],x=y[1],g=Kr(b,x),[3,5];case 4:null==h?g=this.getValuesFromTexture(e):(w=S(o),g=this.gpgpu.downloadFloat32MatrixFromBuffer(h,w)),c.label=5;case 5:return null!=v&&this.disposeData(v.dataId),E=this.convertAndCacheOnCPU(e,g),C=this.pendingRead.get(e),this.pendingRead.delete(e),C.forEach((function(e){return e(E)})),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e),this.pendingDeletes--),[2,E]}}))}))},t.prototype.checkNumericalProblems=function(e){if(null!=e)for(var t=0;t<e.length;t++){var n=e[t];if(!Ge(n)){if(f().getBool("WEBGL_RENDER_FLOAT32_CAPABLE"))throw Error("The value "+n+" cannot be represented with your current settings. Consider enabling float32 rendering: 'tf.env().set('WEBGL_RENDER_FLOAT32_ENABLED', true);'");throw Error("The value "+n+" cannot be represented on this device.")}}},t.prototype.getValuesFromTexture=function(e){var t,n=this.texData.get(e),r=n.shape,o=n.dtype,a=n.isPacked,i=S(r);if(f().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")){var u=this.decode(e),s=this.texData.get(u.dataId),c=(t=this.gpgpu).downloadMatrixFromPackedTexture.apply(t,[s.texture].concat(ze(r))).subarray(0,i);return this.disposeData(u.dataId),c}var l=f().getBool("WEBGL_PACK")&&!0===a,d=l?xt(r):r,p=l?new aa(d):new oa(d),h=this.runWebGLProgram(p,[{shape:d,dtype:o,dataId:e}],"float32"),v=this.texData.get(h.dataId),m=this.gpgpu.downloadByteEncodedFloatMatrixFromOutputTexture(v.texture,v.texShape[0],v.texShape[1]).subarray(0,i);return this.disposeData(h.dataId),m},t.prototype.time=function(e){return s(this,void 0,void 0,(function(){var t,n,r,o,a,i,u;return c(this,(function(s){switch(s.label){case 0:return t=this.activeTimers,n=[],r=!1,null==this.programTimersStack?(this.programTimersStack=n,r=!0):this.activeTimers.push(n),this.activeTimers=n,e(),o=_(this.activeTimers.map((function(e){return e.query}))).filter((function(e){return null!=e})),a=_(this.activeTimers.map((function(e){return e.name}))).filter((function(e){return null!=e})),this.activeTimers=t,r&&(this.programTimersStack=null),[4,Promise.all(o)];case 1:return i=s.sent(),u={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:w(i),getExtraProfileInfo:function(){return i.map((function(e,t){return{name:a[t],ms:e}})).map((function(e){return e.name+": "+e.ms})).join(", ")},wallMs:null},this.uploadWaitMs=0,this.downloadWaitMs=0,[2,u]}}))}))},t.prototype.memory=function(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU}},t.prototype.startTimer=function(){return f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?this.gpgpu.beginQuery():{startMs:te(),endMs:null}},t.prototype.endTimer=function(e){return f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(this.gpgpu.endQuery(),e):(e.endMs=te(),e)},t.prototype.getQueryTime=function(e){return s(this,void 0,void 0,(function(){var t;return c(this,(function(n){return f().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?[2,this.gpgpu.waitForQueryAndGetTime(e)]:[2,(t=e).endMs-t.startMs]}))}))},t.prototype.disposeData=function(e){if(!this.pendingDisposal.has(e)){if(this.pendingRead.has(e))return this.pendingDisposal.add(e),void this.pendingDeletes++;if(this.texData.has(e)){this.releaseGPUData(e);var t=this.texData.get(e).complexTensors;null!=t&&(t.real.dispose(),t.imag.dispose()),this.texData.delete(e)}}},t.prototype.releaseGPUData=function(e){var t=this.texData.get(e),n=t.texture,r=t.dtype,o=t.texShape,a=t.usage,i=t.isPacked,u=t.slice,s=u&&u.origDataId||e,c=this.dataRefCount.get(s);c>1?this.dataRefCount.set(s,c-1):(this.dataRefCount.delete(s),null!=n&&(this.numBytesInGPU-=this.computeBytes(o,r),this.textureManager.releaseTexture(n,o,a,i)));var l=this.texData.get(e);l.texture=null,l.texShape=null,l.isPacked=!1,l.slice=null},t.prototype.getTexture=function(e){return this.uploadToGPU(e),this.texData.get(e).texture},t.prototype.getDataInfo=function(e){return this.texData.get(e)},t.prototype.getCPUBackend=function(){return f().getBool("WEBGL_CPU_FORWARD")?(null==this.cpuBackend&&(this.cpuBackend=Oe.findBackend("cpu")),this.cpuBackend):null},t.prototype.shouldExecuteOnCPU=function(e,t){var n=this;return void 0===t&&(t=128),null!=this.getCPUBackend()&&e.every((function(e){return null==n.texData.get(e.dataId).texture&&e.size<t}))},t.prototype.getGPGPUContext=function(){return this.gpgpu},t.prototype.complex=function(e,t){var n=this.makeOutput(e.shape,"complex64");return this.texData.get(n.dataId).complexTensors={real:Oe.keep(e.clone()),imag:Oe.keep(t.clone())},n},t.prototype.real=function(e){return this.texData.get(e.dataId).complexTensors.real.clone()},t.prototype.imag=function(e){return this.texData.get(e.dataId).complexTensors.imag.clone()},t.prototype.slice=function(e,t,n){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.slice(e,t,n);if(0===S(n))return rn([],n,e.dtype);var r=this.texData.get(e.dataId).isPacked,o=wr(e.shape,t,n);if(r||!o){var a=f().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new ii(n):new oi(n),i=a.getCustomSetupFunc(t);return this.compileAndRun(a,[e],null,i)}return this.uploadToGPU(e.dataId),this.shallowSlice(e,t,n)},t.prototype.shallowSlice=function(e,t,n){var r=this.texData.get(e.dataId),o=this.makeOutput(n,e.dtype),a=this.texData.get(o.dataId);Object.assign(a,r),a.shape=n,a.dtype=e.dtype;var i=Er(t,e.strides);r.slice&&(i+=r.slice.flatOffset),a.slice={flatOffset:i,origDataId:r.slice&&r.slice.origDataId||e.dataId};var u=this.dataRefCount.get(a.slice.origDataId)||1;return this.dataRefCount.set(a.slice.origDataId,u+1),o},t.prototype.stridedSlice=function(e,t,n,r){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.stridedSlice(e,t,n,r);var o=yr(t,n,r);if(o.some((function(e){return 0===e})))return rn([],o);var a=new ui(t,r,o);return this.compileAndRun(a,[e])},t.prototype.reverse=function(e,t){var n=f().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new ei(e.shape,t):new Za(e.shape,t);return this.compileAndRun(n,[e])},t.prototype.concat=function(e,t){if("complex64"===e[0].dtype){var n=e.map((function(e){return tn(e)})),r=e.map((function(e){return nn(e)}));return en(this.concat(n,t),this.concat(r,t))}if(this.shouldExecuteOnCPU(e))return this.cpuBackend.concat(e,t);if(1===e.length)return e[0];if(e.length>f().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){var o=Math.floor(e.length/2),a=this.concat(e.slice(0,o),t),i=this.concat(e.slice(o),t);return this.concat([a,i],t)}if(f().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].rank>1){var u=new Wo(e.map((function(e){return e.shape})),t);return this.compileAndRun(u,e)}var s=Jt(e.map((function(e){return e.shape})),t),c=e.map((function(e){return e.as2D(-1,S(e.shape.slice(t)))})),l=new Lo(c.map((function(e){return e.shape})));return this.compileAndRun(l,c).reshape(s)},t.prototype.neg=function(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.neg(e);if(f().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,xi,e.dtype);var t=new hi(e.shape,xi);return this.compileAndRun(t,[e])},t.prototype.batchMatMul=function(e,t,n,r){var o=n?e.shape[2]:e.shape[1],a=r?t.shape[1]:t.shape[2],i=n?e.shape[1]:e.shape[2],u=e.shape[0];if((1===o||1===a)&&i>1e3){n&&(e=e.transpose([0,2,1])),r&&(t=t.transpose([0,2,1]));var s=1===a?e:e.as3D(u,i,1),c=1===a?2:1,l=1===a?t.as3D(u,1,i):t;return this.multiply(s,l).sum(c,!0)}var f=Ee(e.dtype,t.dtype),d=new La(e.shape,[u,o,a],n,r);return this.compileAndRun(d,[e,t],f)},t.prototype.fusedBatchMatMul=function(e){var t=e.a,n=e.b,r=e.transposeA,o=e.transposeB,a=e.bias,i=e.activation,u=e.preluActivationWeights,s=r?t.shape[2]:t.shape[1],c=o?n.shape[1]:n.shape[2],l=t.shape[0],f=Ee(t.dtype,n.dtype),d=null!=a,p=null!=u,h=i?Di(i,!0):null,v=new La(t.shape,[l,s,c],r,o,d,h,p),m=[t,n];return a&&m.push(a),u&&m.push(u),this.compileAndRun(v,m,f)},t.prototype.multiply=function(e,t){if("complex64"===e.dtype){var n=this.texData.get(e.dataId),r=this.texData.get(t.dataId),o=new Ro("return areal * breal - aimag * bimag;",e.shape,t.shape),a=new Ro("return areal * bimag + aimag * breal;",e.shape,t.shape),i=[this.makeComplexComponentTensorInfo(e,n.complexTensors.real),this.makeComplexComponentTensorInfo(e,n.complexTensors.imag),this.makeComplexComponentTensorInfo(t,r.complexTensors.real),this.makeComplexComponentTensorInfo(t,r.complexTensors.imag)],u=this.compileAndRun(o,i),s=this.compileAndRun(a,i),c=this.complex(u,s);return u.dispose(),s.dispose(),c}if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.multiply(e,t);if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,Oo,e.dtype);var l=new Do(Oo,e.shape,t.shape);return this.compileAndRun(l,[e,t],e.dtype)},t.prototype.batchNormalization=function(e,t,n,r,o,a){var i=[e,t,n],u=null;null!=a&&(u=a.shape,i.push(a));var s=null;if(null!=o&&(s=o.shape,i.push(o)),f().getBool("WEBGL_PACK_NORMALIZATION")){var c=new So(e.shape,t.shape,n.shape,u,s,r);return this.compileAndRun(c,i)}var l=new _o(e.shape,t.shape,n.shape,u,s,r);return this.compileAndRun(l,i)},t.prototype.localResponseNormalization4D=function(e,t,n,r,o){var a=f().getBool("WEBGL_PACK_NORMALIZATION")?new Ma(e.shape,t,n,r,o):new Na(e.shape,t,n,r,o);return this.compileAndRun(a,[e])},t.prototype.LRNGrad=function(e,t,n,r,o,a,i){var u=new Pa(t.shape,r,o,a,i);return this.compileAndRun(u,[t,n,e])},t.prototype.tile=function(e,t){if("string"===e.dtype){var n=this.readSync(e.dataId).map((function(e){return oe(e)}));return eo(Mn(e.shape,e.dtype,n),t)}var r=new fi(e.shape,t);return this.compileAndRun(r,[e])},t.prototype.pad=function(e,t,n){var r=f().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Va(e.shape,t,n):new ja(e.shape,t,n);return this.compileAndRun(r,[e])},t.prototype.transpose=function(e,t){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.transpose(e,t);var n=f().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new pi(e.shape,t):new di(e.shape,t);return this.compileAndRun(n,[e])},t.prototype.gather=function(e,t,n){if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.gather(e,t,n);var r=new la(e.shape,t.size,n);return this.compileAndRun(r,[e,t])},t.prototype.batchToSpaceND=function(e,t,n){E(e.rank<=4,(function(){return"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet"}));var r=t.reduce((function(e,t){return e*t})),o=sr(e.shape,t,r),a=cr(o.length,t.length),i=lr(e.shape,t,r),u=fr(n,t.length),s=dr(i,n,t.length);return e.reshape(o).transpose(a).reshape(i).slice(u,s)},t.prototype.spaceToBatchND=function(e,t,n){E(e.rank<=4,(function(){return"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet"}));var r=t.reduce((function(e,t){return e*t})),o=[[0,0]];o.push.apply(o,n);for(var a=1+t.length;a<e.shape.length;++a)o.push([0,0]);var i=e.pad(o),u=sr(i.shape,t,r,!1),s=cr(u.length,t.length,!1),c=lr(i.shape,t,r,!1);return i.reshape(u).transpose(s).reshape(c)},t.prototype.reduce=function(e,t,n){var r=e.shape[0],o=e.shape[1],a=hr(o),i=new qa({windowSize:a,inSize:o,batchSize:r},t),u=this.compileAndRun(i,[e],n);return 1===u.shape[1]?u:this.reduce(u,t,n)},t.prototype.argReduce=function(e,t,n){void 0===n&&(n=null);var r=e.shape[0],o=e.shape[1];null!=n&&(r=n.shape[0],o=n.shape[1]);var a=hr(o),i=new ao({windowSize:a,inSize:o,batchSize:r},t,null==n),u=[e];null!=n&&u.push(n);var s=this.compileAndRun(i,u,"int32");return 1===s.shape[1]?s:this.argReduce(e,t,s)},t.prototype.argReducePacked=function(e,t,n){void 0===n&&(n=null);var r=null!=n?n.shape:e.shape,o=hr(r[r.length-1]),a=new Eo(r,o,t,null==n),i=null==n?[e]:[e,n],u=this.compileAndRun(a,i,"int32");return u.rank===e.rank?this.argReducePacked(e,t,u):u},t.prototype.sum=function(e,t){Kt("sum",t,e.rank);var n=Gt(e.shape,t),r=n[0],o=S(n[1]),a=e.as2D(-1,o),i=Ce(e.dtype);return this.reduce(a,"sum",i).reshape(r)},t.prototype.prod=function(e,t){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.prod(e,t);var n=Gt(e.shape,t),r=n[0],o=S(n[1]),a=e.as2D(-1,o),i=Ce(e.dtype);return this.reduce(a,"prod",i).reshape(r)},t.prototype.unsortedSegmentSum=function(e,t,n){var r=0,o=Xt([r],e.rank),a=e;null!=o&&(a=e.transpose(o),r=Yt(1,e.rank)[0]);var i=function(e,t,n){for(var r=[],o=e.length,a=0;a<o;a++)a!==t?r.push(e[a]):r.push(n);return r}(a.shape,r,n),u=S([a.shape[r]]),s=a.as2D(-1,u),c=Ce(e.dtype),l=this.segOpCompute(s,"unsortedSegmentSum",t,c,n).reshape(i);return null!=o&&(l=l.transpose($t(o))),l},t.prototype.segOpCompute=function(e,t,n,r,o){var a=e.shape[0],i=e.shape[1],u=function(e,t){var n,r=!1;for(e<=30?(n=e,r=!0):n=$(e,Math.floor(Math.sqrt(e)));!r;)n>t||n===e?r=!0:n=$(e,n+1);return n}(i,o),s=new ni({windowSize:u,inSize:i,batchSize:a,numSegments:o},t),c=this.compileAndRun(s,[e,n],r);return c.shape[1]===o?c:(n=hn(0,o).tile([i/u]),this.segOpCompute(c,t,n,r,o))},t.prototype.argMinMaxReduce=function(e,t,n){var r=[t];if(Kt("arg"+n.charAt(0).toUpperCase()+n.slice(1),r,e.rank),!f().getBool("WEBGL_PACK_REDUCE")||e.rank<=2){var o=Gt(e.shape,r),a=o[0],i=S(o[1]),u=e.as2D(-1,i);return this.argReduce(u,n).reshape(a)}return this.argReducePacked(e,n)},t.prototype.argMin=function(e,t){return this.argMinMaxReduce(e,t,"min")},t.prototype.argMax=function(e,t){return this.argMinMaxReduce(e,t,"max")},t.prototype.cumsum=function(e,t,n,r){if(t!==e.rank-1)throw new Error("WebGL cumsum shader expects an inner-most axis="+(e.rank-1)+" but got axis="+t);var o=new Jo(e.shape,n,r);return this.compileAndRun(o,[e])},t.prototype.equal=function(e,t){if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n return vec4(equal(a, b));\n","bool");var n=new Do("return float(a == b);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},t.prototype.notEqual=function(e,t){if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n return vec4(notEqual(a, b));\n","bool");var n=new Do("return float(a != b);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},t.prototype.less=function(e,t){if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.less(e,t);if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n return vec4(lessThan(a, b));\n","bool");var n=new Do("return float(a < b);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},t.prototype.lessEqual=function(e,t){if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n return vec4(lessThanEqual(a, b));\n","bool");var n=new Do("return float(a <= b);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},t.prototype.greater=function(e,t){if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.greater(e,t);if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n return vec4(greaterThan(a, b));\n","bool");var n=new Do("return float(a > b);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},t.prototype.greaterEqual=function(e,t){if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n return vec4(greaterThanEqual(a, b));\n","bool");var n=new Do("return float(a >= b);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},t.prototype.logicalNot=function(e){var t=new hi(e.shape,"return float(!(x >= 1.0));");return this.compileAndRun(t,[e])},t.prototype.logicalAnd=function(e,t){if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n","bool");var n=new Do("return float(a >= 1.0 && b >= 1.0);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},t.prototype.logicalOr=function(e,t){if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n","bool");var n=new Do("return float(a >= 1.0 || b >= 1.0);",e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")},t.prototype.select=function(e,t,n){var r=new ri(e.rank,t.shape,t.rank);return this.compileAndRun(r,[e,t,n],Ee(t.dtype,n.dtype))},t.prototype.where=function(e){Lt("tf.where() in webgl locks the UI thread. Call tf.whereAsync() instead");var t=e.dataSync();return no(e.shape,t)},t.prototype.topk=function(e,t,n){return to(e.dataSync(),e.shape,e.dtype,t)},t.prototype.min=function(e,t){Kt("min",t,e.rank);var n=Gt(e.shape,t),r=n[0],o=S(n[1]),a=e.as2D(-1,o);return this.reduce(a,"min",a.dtype).reshape(r)},t.prototype.minimum=function(e,t){if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.minimum(e,t);var n=f().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Po("\n vec4 result = vec4(min(a, b));\n vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",e.shape,t.shape):new Do("\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n\n return min(a, b);\n",e.shape,t.shape);return this.compileAndRun(n,[e,t])},t.prototype.mod=function(e,t){var n=f().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Po("\n vec4 result = mod(a, b);\n vec4 isNaN = vec4(equal(b, vec4(0.0)));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",e.shape,t.shape):new Do("if (b == 0.0) return NAN;\n return mod(a, b);",e.shape,t.shape);return this.compileAndRun(n,[e,t])},t.prototype.max=function(e,t){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.max(e,t);Kt("max",t,e.rank);var n=Gt(e.shape,t),r=n[0],o=S(n[1]),a=e.as2D(-1,o);return this.reduce(a,"max",a.dtype).reshape(r)},t.prototype.maximum=function(e,t){if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.maximum(e,t);var n=f().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Po("\n vec4 result = vec4(max(a, b));\n vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",e.shape,t.shape):new Do("\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n\n return max(a, b);\n",e.shape,t.shape);return this.compileAndRun(n,[e,t])},t.prototype.all=function(e,t){Kt("all",t,e.rank);var n=Gt(e.shape,t),r=n[0],o=S(n[1]),a=e.as2D(-1,o);return this.reduce(a,"all",a.dtype).reshape(r)},t.prototype.any=function(e,t){Kt("any",t,e.rank);var n=Gt(e.shape,t),r=n[0],o=S(n[1]),a=e.as2D(-1,o);return this.reduce(a,"any",a.dtype).reshape(r)},t.prototype.squaredDifference=function(e,t){var n=f().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Po("return (a - b) * (a - b);",e.shape,t.shape):new Do("return (a - b) * (a - b);",e.shape,t.shape);return this.compileAndRun(n,[e,t])},t.prototype.realDivide=function(e,t){if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n // vec4 one = vec4(equal(a, b));\n // return one + (vec4(1.0) - one) * a / b;\n vec4 result = a / b;\n if(a.x == b.x) {\n result.x = 1.;\n }\n if(a.y == b.y) {\n result.y = 1.;\n }\n if(a.z == b.z) {\n result.z = 1.;\n }\n if(a.w == b.w) {\n result.w = 1.;\n }\n\n return result;\n","float32",!0);var n=new Do("\nif (a == b) {\n return 1.0;\n};\nreturn a / b;",e.shape,t.shape);return this.compileAndRun(n,[e,t],"float32")},t.prototype.floorDiv=function(e,t){if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,"\n ivec4 ia = round(a);\n ivec4 ib = round(b);\n bvec4 cond = notEqual(ib, ivec4(0));\n ivec4 result = ivec4(0);\n vec4 s = sign(a) * sign(b);\n\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n if (cond[0]) {\n result[0] = idiv(ia[0], ib[0], s[0]);\n }\n if (cond[1]) {\n result[1] = idiv(ia[1], ib[1], s[1]);\n }\n if (cond[2]) {\n result[2] = idiv(ia[2], ib[2], s[2]);\n }\n if (cond[3]) {\n result[3] = idiv(ia[3], ib[3], s[3]);\n }\n return vec4(result);\n","int32");var n=new Do("\n float s = sign(a) * sign(b);\n int ia = round(a);\n int ib = round(b);\n if (ib != 0) {\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n return float(idiv(ia, ib, s));\n } else {\n return NAN;\n }\n",e.shape,t.shape);return this.compileAndRun(n,[e,t],"int32")},t.prototype.add=function(e,t){if("complex64"===e.dtype&&"complex64"===t.dtype)return this.complexSeparableBinaryOp(e,t,To);if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.add(e,t);var n=Ee(e.dtype,t.dtype);if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,To,n);var r=new Do(To,e.shape,t.shape);return this.compileAndRun(r,[e,t],n)},t.prototype.packedUnaryOp=function(e,t,n){var r=new Ii(e.shape,t);return this.compileAndRun(r,[e],n)},t.prototype.packedBinaryOp=function(e,t,n,r,o){void 0===o&&(o=!1);var a=new Po(n,e.shape,t.shape,o);return this.compileAndRun(a,[e,t],r)},t.prototype.complexSeparableBinaryOp=function(e,t,n){var r=this,o=this.texData.get(e.dataId),a=this.texData.get(t.dataId),i=[[o.complexTensors.real,a.complexTensors.real],[o.complexTensors.imag,a.complexTensors.imag]].map((function(o){var a=o[0],i=o[1],u=r.makeComplexComponentTensorInfo(e,a),s=r.makeComplexComponentTensorInfo(t,i),c=new Do(n,e.shape,t.shape);return r.compileAndRun(c,[u,s],Ee(a.dtype,i.dtype))})),u=i[0],s=i[1],c=this.complex(u,s);return u.dispose(),s.dispose(),c},t.prototype.makeComplexComponentTensorInfo=function(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}},t.prototype.addN=function(e){if(1===e.length)return e[0];if(e.length>f().get("WEBGL_MAX_TEXTURES_IN_SHADER")){var t=Math.floor(e.length/2),n=this.addN(e.slice(0,t)),r=this.addN(e.slice(t));return this.addN([n,r])}var o=e.map((function(e){return e.dtype})).reduce((function(e,t){return Ee(e,t)})),a=e.map((function(e){return e.shape})),i=f().getBool("WEBGL_PACK")?new oo(e[0].shape,a):new ro(e[0].shape,a);return this.compileAndRun(i,e,o)},t.prototype.subtract=function(e,t){if("complex64"===e.dtype&&"complex64"===t.dtype)return this.complexSeparableBinaryOp(e,t,Io);if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.subtract(e,t);var n=Ee(e.dtype,t.dtype);if(f().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,Io,e.dtype);var r=new Do(Io,e.shape,t.shape);return this.compileAndRun(r,[e,t],n)},t.prototype.pow=function(e,t){var n=f().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Po("\n // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n vec4 result = multiplier * pow(abs(a), b);\n\n // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n bvec4 isExpZero = equal(b, vec4(0.0));\n result.r = isExpZero.r ? 1.0 : result.r;\n result.g = isExpZero.g ? 1.0 : result.g;\n result.b = isExpZero.b ? 1.0 : result.b;\n result.a = isExpZero.a ? 1.0 : result.a;\n\n vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",e.shape,t.shape):new Do("\nif(a < 0.0 && floor(b) < b){\n return NAN;\n}\nif (b == 0.0) {\n return 1.0;\n}\nreturn (round(mod(b, 2.0)) != 1) ?\n pow(abs(a), b) : sign(a) * pow(abs(a), b);\n",e.shape,t.shape),r=Ee(e.dtype,t.dtype);return this.compileAndRun(n,[e,t],r)},t.prototype.ceil=function(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.ceil(e);if(f().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,wi,e.dtype);var t=new hi(e.shape,wi);return this.compileAndRun(t,[e])},t.prototype.floor=function(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.floor(e);if(f().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Ei,e.dtype);var t=new hi(e.shape,Ei);return this.compileAndRun(t,[e])},t.prototype.sign=function(e){var t=new hi(e.shape,"\n if (isnan(x)) { return 0.0; }\n return sign(x);\n");return this.compileAndRun(t,[e])},t.prototype.isNaN=function(e){var t=new hi(e.shape,"return float(isnan(x));");return this.compileAndRun(t,[e],"bool")},t.prototype.isInf=function(e){var t=new hi(e.shape,"return float(isinf(x));");return this.compileAndRun(t,[e],"bool")},t.prototype.isFinite=function(e){var t=new hi(e.shape,"return float(!isnan(x) && !isinf(x));");return this.compileAndRun(t,[e],"bool")},t.prototype.round=function(e){var t=new hi(e.shape,"\n // OpenGL ES does not support round function.\n // The algorithm is based on banker's rounding.\n float base = floor(x);\n if ((x - base) < 0.5) {\n return floor(x);\n } else if ((x - base) > 0.5) {\n return ceil(x);\n } else {\n if (mod(base, 2.0) == 0.0) {\n return base;\n } else {\n return base + 1.0;\n }\n }\n");return this.compileAndRun(t,[e])},t.prototype.exp=function(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.exp(e);if(f().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Ci,e.dtype);var t=new hi(e.shape,Ci);return this.compileAndRun(t,[e])},t.prototype.expm1=function(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.expm1(e);if(f().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,ki,e.dtype);var t=new hi(e.shape,ki);return this.compileAndRun(t,[e])},t.prototype.log=function(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.log(e);if(f().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,"\n vec4 result = log(x);\n vec4 isNaN = vec4(lessThan(x, vec4(0.0)));\n result.r = isNaN.r == 1.0 ? NAN : result.r;\n result.g = isNaN.g == 1.0 ? NAN : result.g;\n result.b = isNaN.b == 1.0 ? NAN : result.b;\n result.a = isNaN.a == 1.0 ? NAN : result.a;\n\n return result;\n",e.dtype);var t=new hi(e.shape,"if (x < 0.0) return NAN;\n return log(x);");return this.compileAndRun(t,[e])},t.prototype.log1p=function(e){var t=new hi(e.shape,"return log(1.0 + x);");return this.compileAndRun(t,[e])},t.prototype.sqrt=function(e){var t=new hi(e.shape,"return sqrt(x);");return this.compileAndRun(t,[e])},t.prototype.rsqrt=function(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.rsqrt(e);var t=new hi(e.shape,"return inversesqrt(x);");return this.compileAndRun(t,[e])},t.prototype.reciprocal=function(e){var t=new hi(e.shape,"return 1.0 / x;");return this.compileAndRun(t,[e])},t.prototype.relu=function(e){var t;return t=f().getBool("WEBGL_PACK")?new Ii(e.shape,Si):new hi(e.shape,gi),this.compileAndRun(t,[e])},t.prototype.relu6=function(e){var t;return t=f().getBool("WEBGL_PACK")?new Ii(e.shape,Ri):new hi(e.shape,yi),this.compileAndRun(t,[e])},t.prototype.prelu=function(e,t){var n=f().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Po(No,e.shape,t.shape):new Do(Ao,e.shape,t.shape);return this.compileAndRun(n,[e,t])},t.prototype.elu=function(e){if(f().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Ti,e.dtype);var t=new hi(e.shape,bi);return this.compileAndRun(t,[e])},t.prototype.eluDer=function(e,t){var n=f().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Po("\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n",e.shape,t.shape):new Do("return (b >= 1.0) ? a : a * (b + 1.0);",e.shape,t.shape);return this.compileAndRun(n,[e,t])},t.prototype.selu=function(e){var t=new hi(e.shape,"\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = 1.7580993408473768;\n float scale = 1.0507009873554805;\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n");return this.compileAndRun(t,[e])},t.prototype.int=function(e){var t=new hi(e.shape,"return float(int(x));");return this.compileAndRun(t,[e],"int32")},t.prototype.clip=function(e,t,n){var r,o=(r=f().getBool("WEBGL_PACK_CLIP")?new Fo(e.shape):new Mo(e.shape)).getCustomSetupFunc(t,n);return this.compileAndRun(r,[e],null,o)},t.prototype.abs=function(e){if(this.shouldExecuteOnCPU([e]))return this.cpuBackend.abs(e);if(f().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,mi,e.dtype);var t=new hi(e.shape,mi);return this.compileAndRun(t,[e])},t.prototype.complexAbs=function(e){var t=this.texData.get(e.dataId),n=new Bo(e.shape),r=[this.makeComplexComponentTensorInfo(e,t.complexTensors.real),this.makeComplexComponentTensorInfo(e,t.complexTensors.imag)];return this.compileAndRun(n,r)},t.prototype.sigmoid=function(e){var t=new hi(e.shape,"return 1.0 / (1.0 + exp(-1.0 * x));");return this.compileAndRun(t,[e])},t.prototype.softplus=function(e){var t=new hi(e.shape,"\n float epsilon = 1.1920928955078125e-7;\n float threshold = log(epsilon) + 2.0;\n\n bool too_large = x > -threshold;\n bool too_small = x < threshold;\n\n float result;\n float exp_x = exp(x);\n\n if (too_large){\n result = x;\n }\n else if (too_small){\n result = exp_x;\n }\n else{\n result = log(exp_x + 1.0);\n }\n return result;\n");return this.compileAndRun(t,[e])},t.prototype.sin=function(e){var t=new hi(e.shape,"if (isnan(x)) return x;\n return sin(x);\n");return this.compileAndRun(t,[e])},t.prototype.cos=function(e){var t=new hi(e.shape,"if (isnan(x)) return x;\n return cos(x);\n");return this.compileAndRun(t,[e])},t.prototype.tan=function(e){var t=new hi(e.shape,"return tan(x);");return this.compileAndRun(t,[e])},t.prototype.asin=function(e){var t=new hi(e.shape,"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n");return this.compileAndRun(t,[e])},t.prototype.acos=function(e){var t=new hi(e.shape,"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n");return this.compileAndRun(t,[e])},t.prototype.atan=function(e){var t=new hi(e.shape,"if (isnan(x)) return x;\n return atan(x);\n");return this.compileAndRun(t,[e])},t.prototype.atan2=function(e,t){var n=f().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Po("\n vec4 result = atan(a, b);\n vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",e.shape,t.shape):new Do("\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n\n return atan(a, b);\n",e.shape,t.shape);return this.compileAndRun(n,[e,t])},t.prototype.sinh=function(e){var t=new hi(e.shape,"\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n");return this.compileAndRun(t,[e])},t.prototype.cosh=function(e){var t=new hi(e.shape,"\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n");return this.compileAndRun(t,[e])},t.prototype.tanh=function(e){var t=new hi(e.shape,"\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n");return this.compileAndRun(t,[e])},t.prototype.asinh=function(e){var t=new hi(e.shape,"if (isnan(x)) return x;return log(x + sqrt(x * x + 1.0));");return this.compileAndRun(t,[e])},t.prototype.acosh=function(e){var t=new hi(e.shape,"if (isnan(x)) return x;\n if (x < 1.0) return NAN;\n return log(x + sqrt(x * x - 1.0));");return this.compileAndRun(t,[e])},t.prototype.atanh=function(e){var t=new hi(e.shape,"if (isnan(x)) return x;\n if ((x < -1.0) || (x > 1.0)) return NAN;\n return (log(1.0 + x) - log(1.0 - x)) / 2.0;");return this.compileAndRun(t,[e])},t.prototype.erf=function(e){var t=new hi(e.shape,'\n // Error function is calculated approximately with elementary function.\n // See "Handbook of Mathematical Functions with Formulas,\n // Graphs, and Mathematical Tables", Abramowitz and Stegun.\n float p = 0.3275911;\n float a1 = 0.254829592;\n float a2 = -0.284496736;\n float a3 = 1.421413741;\n float a4 = -1.453152027;\n float a5 = 1.061405429;\n\n float sign = sign(x);\n x = abs(x);\n float t = 1.0 / (1.0 + p * x);\n return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x));\n');return this.compileAndRun(t,[e])},t.prototype.step=function(e,t){var n=new hi(e.shape,function(e){return void 0===e&&(e=0),vi+"\n return x > 0.0 ? 1.0 : float("+e+");\n "}(t));return this.compileAndRun(n,[e])},t.prototype.conv2dByMatMul=function(e,t,n,r,o,a){var i=e.shape,u=this.texData.get(e.dataId),s=n.inChannels,c=i[0]*i[1]*i[2],l=n.outChannels,d="channelsLast"===n.dataFormat,p=(1===c||1===l)&&s>1e3,h=i[2]%2!=0&&!!u.isPacked;if(p||!f().getBool("WEBGL_LAZILY_UNPACK")||!f().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!h){var v=d?i[0]*i[1]*i[2]:i[0]*i[2]*i[3],m=this.reshape(e,[1,v,n.inChannels]),g=this.reshape(t,[1,n.inChannels,n.outChannels]);return this.reshape(this.fusedBatchMatMul({a:m,b:g,transposeA:!1,transposeB:!1,bias:r,activation:o,preluActivationWeights:a}),n.outShape)}var y=d?i[0]*i[1]*(i[2]+1):i[0]*i[2]*(i[3]+1),b={dataId:e.dataId,shape:[1,y,n.inChannels],dtype:e.dtype},x=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,E(Ct(u.shape,b.shape),(function(){return"packed reshape "+u.shape+" to "+b.shape+" isn't free"}));var w=this.reshape(t,[1,n.inChannels,n.outChannels]),C=this.fusedBatchMatMul({a:b,b:w,transposeA:!1,transposeB:!1,bias:r,activation:o,preluActivationWeights:a}),k=this.texData.get(C.dataId);return E(k.isPacked,(function(){return"batchMatMul result is expected to be packed"})),u.shape=x,k.shape=n.outShape,Oe.makeTensorFromDataId(C.dataId,n.outShape,C.dtype)},t.prototype.conv2dWithIm2Row=function(e,t,n,r,o,a){var i=n.filterWidth,u=n.filterHeight,s=n.inChannels,c=n.outWidth,l=n.outHeight,f="channelsLast"===n.dataFormat,d=i*u*s,p=l*c,h=[d,p],v=e.squeeze([0]),m=t.reshape([1,d,-1]),g=new Da(h,v.shape,n),y=this.compileAndRun(g,[v]).reshape([1,h[0],h[1]]),b=null!=r,x=null!=a,w=o?Di(o,!0):null,E=new La(y.shape,[1,p,n.outChannels],!0,!1,b,w,x),C=[y,m];r&&C.push(r),x&&C.push(a);var k=this.compileAndRun(E,C);return f?k.reshape([1,l,c,n.outChannels]):k.reshape([1,n.outChannels,l,c])},t.prototype.fusedConv2d=function(e){var t=e.input,n=e.filter,r=e.convInfo,o=e.bias,a=e.activation,i=e.preluActivationWeights;if(1===r.filterHeight&&1===r.filterWidth&&1===r.dilationHeight&&1===r.dilationWidth&&1===r.strideHeight&&1===r.strideWidth&&("SAME"===r.padInfo.type||"VALID"===r.padInfo.type))return this.conv2dByMatMul(t,n,r,o,a,i);if(f().getBool("WEBGL_CONV_IM2COL")&&1===t.shape[0])return this.conv2dWithIm2Row(t,n,r,o,a,i);var u=null!=o,s=null!=i,c=a?Di(a,!1):null,l=new Ko(r,u,c,s),d=[t,n];return o&&d.push(o),i&&d.push(i),this.compileAndRun(l,d)},t.prototype.conv2d=function(e,t,n){if(1===n.filterHeight&&1===n.filterWidth&&1===n.dilationHeight&&1===n.dilationWidth&&1===n.strideHeight&&1===n.strideWidth&&("SAME"===n.padInfo.type||"VALID"===n.padInfo.type))return this.conv2dByMatMul(e,t,n);if(f().getBool("WEBGL_CONV_IM2COL")&&1===e.shape[0])return this.conv2dWithIm2Row(e,t,n);var r=new Ko(n);return this.compileAndRun(r,[e,t])},t.prototype.conv2dDerInput=function(e,t,n){var r=new jo(n);return this.compileAndRun(r,[e,t])},t.prototype.conv2dDerFilter=function(e,t,n){var r=new zo(n);return this.compileAndRun(r,[e,t])},t.prototype.fusedDepthwiseConv2D=function(e){var t,n=e.input,r=e.filter,o=e.convInfo,a=e.bias,i=e.activation,u=e.preluActivationWeights,s=f().getBool("WEBGL_PACK_DEPTHWISECONV")&&o.strideWidth<=2&&o.outChannels/o.inChannels==1,c=i?Di(i,s):null,l=[n,r],d=null!=a,p=null!=u;return d&&l.push(a),p&&l.push(u),s?(t=new Yo(o,d,c,p),this.compileAndRun(t,l)):(t=new $o(o,d,c,p),this.compileAndRun(t,l))},t.prototype.depthwiseConv2D=function(e,t,n){var r;return f().getBool("WEBGL_PACK_DEPTHWISECONV")&&n.strideWidth<=2&&n.outChannels/n.inChannels==1?(r=new Yo(n),this.compileAndRun(r,[e,t])):(r=new $o(n),this.compileAndRun(r,[e,t]))},t.prototype.depthwiseConv2DDerInput=function(e,t,n){var r=new qo(n);return this.compileAndRun(r,[e,t])},t.prototype.depthwiseConv2DDerFilter=function(e,t,n){var r=new Go(n);return this.compileAndRun(r,[e,t])},t.prototype.conv3d=function(e,t,n){var r=new Xo(n);return this.compileAndRun(r,[e,t])},t.prototype.conv3dDerInput=function(e,t,n){var r=new Ho(n);return this.compileAndRun(r,[e,t])},t.prototype.conv3dDerFilter=function(e,t,n){var r=new Vo(n);return this.compileAndRun(r,[e,t])},t.prototype.maxPool=function(e,t){var n=new Ha(t,"max",!1);return this.compileAndRun(n,[e])},t.prototype.avgPool=function(e,t){var n=new Ha(t,"avg",!1);return this.compileAndRun(n,[e],"float32")},t.prototype.maxPoolBackprop=function(e,t,n,r){var o=new Ha(r,"max",!0),a=this.compileAndRun(o,[t]),i=new Fa(r),u=this.compileAndRun(i,[e,a],t.dtype);return a.dispose(),u},t.prototype.avgPoolBackprop=function(e,t,n){var r=new Co(n);return this.compileAndRun(r,[e],t.dtype)},t.prototype.cast=function(e,t){return Hr(e,t,this)},t.prototype.unstack=function(e,t){for(var n=e.shape[t],r=new Array(e.rank-1),o=0,a=0;a<e.rank;a++)a!==t&&(r[o++]=e.shape[a]);var i=new Array(e.rank).fill(0),u=e.shape.slice();u[t]=1;var s=new Array(n);for(a=0;a<s.length;a++)i[t]=a,s[a]=this.slice(e,i,u).reshape(r);return s},t.prototype.avgPool3d=function(e,t){var n=new Ga(t,"avg",!1);return this.compileAndRun(n,[e],"float32")},t.prototype.avgPool3dBackprop=function(e,t,n){var r=new ko(n);return this.compileAndRun(r,[e],t.dtype)},t.prototype.maxPool3d=function(e,t){var n=new Ga(t,"max",!1);return this.compileAndRun(n,[e],"float32")},t.prototype.maxPool3dBackprop=function(e,t,n,r){var o=new Ga(r,"max",!0),a=this.compileAndRun(o,[t]),i=new Ba(r),u=this.compileAndRun(i,[e,a],t.dtype);return a.dispose(),u},t.prototype.reshape=function(e,t){var n=this.texData.get(e.dataId);if(n.isPacked&&!Ct(e.shape,t)&&(null===n.texture||!Ct(n.shape,t))){var r=this.packedReshape(e,t);return Oe.makeTensorFromDataId(r.dataId,r.shape,r.dtype)}return Gr(e,t)},t.prototype.resizeBilinear=function(e,t,n,r){var o=f().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Ya(e.shape,t,n,r):new $a(e.shape,t,n,r);return this.compileAndRun(o,[e],"float32")},t.prototype.resizeBilinearBackprop=function(e,t,n){var r=new Xa(e,t,n);return this.compileAndRun(r,[e])},t.prototype.resizeNearestNeighbor=function(e,t,n,r){var o=new Ja(e.shape,t,n,r);return this.compileAndRun(o,[e])},t.prototype.resizeNearestNeighborBackprop=function(e,t,n){var r=new Qa(e,t,n);return this.compileAndRun(r,[e])},t.prototype.multinomial=function(e,t,n,r){var o=t?e:kr(e),a=o.shape[0],i=o.shape[1],u=new Wa(a,i,n),s=u.getCustomSetupFunc(r);return this.compileAndRun(u,[o],"int32",s)},t.prototype.oneHot=function(e,t,n,r){var o=new Ua(e.size,t,n,r);return this.compileAndRun(o,[e])},t.prototype.diag=function(e){var t=new ra(e.size);return this.compileAndRun(t,[e])},t.prototype.nonMaxSuppression=function(e,t,n,r,o){return Lt("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead"),Qr(e.dataSync(),t.dataSync(),n,r,o)},t.prototype.cropAndResize=function(e,t,n,r,o,a){var i=new Qo(e.shape,t.shape,r,o,a);return this.compileAndRun(i,[e,t,n],"float32")},t.prototype.depthToSpace=function(e,t,n){E(t>1,(function(){return"blockSize should be > 1 for depthToSpace, but was: "+t}));var r=e.shape[0],o="NHWC"===n?e.shape[1]:e.shape[2],a="NHWC"===n?e.shape[2]:e.shape[3],i="NHWC"===n?e.shape[3]:e.shape[1],u=o*t,s=a*t,c=i/(t*t),l=new na("NHWC"===n?[r,u,s,c]:[r,c,u,s],t,n);return this.compileAndRun(l,[e])},t.prototype.split=function(e,t,n){return Zr(e,t,n)},t.prototype.scatterND=function(e,t,n){var r=vr(0,e,n),o=r.sliceRank,a=r.numUpdates,i=r.sliceSize,u=r.strides,s=r.outputSize,c=[s/i,i],l=e.reshape([a,o]),f=t.reshape([a,i]);if(0===s)return Gr(rn([]),n);var d=an(0),p=new ti(a,o,l.rank,f.rank,u,c);return this.compileAndRun(p,[f,l,d]).reshape(n)},t.prototype.sparseToDense=function(e,t,n,r){var o=vr(0,e,n),a=o.sliceRank,i=o.numUpdates,u=o.strides,s=o.outputSize,c=new ti(i,a,e.rank,t.rank,u,[s,1],!1);return this.compileAndRun(c,[t,e,r]).reshape(n)},t.prototype.fft=function(e){return this.fftImpl(e,!1)},t.prototype.ifft=function(e){return this.fftImpl(e,!0)},t.prototype.fftImpl=function(e,t){var n=this.texData.get(e.dataId),r=new sa("return real * expR - imag * expI;",e.shape,t),o=new sa("return real * expI + imag * expR;",e.shape,t),a=[this.makeComplexComponentTensorInfo(e,n.complexTensors.real),this.makeComplexComponentTensorInfo(e,n.complexTensors.imag)],i=this.compileAndRun(r,a),u=this.compileAndRun(o,a),s=this.complex(i,u).as2D(e.shape[0],e.shape[1]);return i.dispose(),u.dispose(),s},t.prototype.gatherND=function(e,t){var n=t.shape,r=n[n.length-1],o=pr(e,t),a=o[0],i=o[1],u=o[2],s=o[3],c=t.reshape([i,r]),l=e.reshape([e.size/u,u]),f=new fa(r,s,[i,u]);return this.compileAndRun(f,[l,c]).reshape(a)},t.prototype.fill=function(e,t,n){if("string"===(n=n||K(t))){var r=B(n,S(e));return r.fill(t),Oe.makeTensor(r,e,n,this)}var o=new ca(e,t),a=o.getCustomSetupFunc(t);return this.compileAndRun(o,[],n,a)},t.prototype.onesLike=function(e){if("string"===e.dtype)throw new Error("onesLike is not supported under string dtype");return this.fill(e.shape,1,e.dtype)},t.prototype.zerosLike=function(e){return this.fill(e.shape,"string"===e.dtype?"":0,e.dtype)},t.prototype.linspace=function(e,t,n){return qr(e,t,n)},t.prototype.makeTensorInfo=function(e,t){var n=this.write(null,e,t);return this.texData.get(n).usage=null,{dataId:n,shape:e,dtype:t}},t.prototype.makeOutput=function(e,t){var n=this.makeTensorInfo(e,t).dataId;return Oe.makeTensorFromDataId(n,e,t,this)},t.prototype.unpackTensor=function(e){var t=new Oi(e.shape);return this.runWebGLProgram(t,[e],e.dtype)},t.prototype.packTensor=function(e){var t=new za(e.shape);return this.runWebGLProgram(t,[e],e.dtype,null,!0)},t.prototype.packedReshape=function(e,t){var n=[yt(e.shape)].concat(bt(e.shape)),r={dtype:e.dtype,shape:n,dataId:e.dataId},o=[yt(t)].concat(bt(t)),a=new Ka(o,n),i=this.runWebGLProgram(a,[r],e.dtype,null,!0);return{dataId:i.dataId,shape:t,dtype:i.dtype}},t.prototype.decode=function(e){var t,n=this.texData.get(e),r=n.isPacked,o=n.shape,a=n.dtype,i=xt(o);return t=r?new ta(i):new ea(i),{dtype:a,shape:o,dataId:this.runWebGLProgram(t,[{shape:i,dtype:a,dataId:e}],a,null,!0).dataId}},t.prototype.runWebGLProgram=function(e,t,n,r,o){var a=this;void 0===o&&(o=!1);var i=this.makeTensorInfo(e.outputShape,n),u=this.texData.get(i.dataId);if(e.packedOutput&&(u.isPacked=!0),e.outPackingScheme===Ne.DENSE){var s=ze(e.outputShape);u.texShape=s.map((function(e){return 2*e}))}if(null!=e.outTexUsage&&(u.usage=e.outTexUsage),0===S(i.shape))return u.values=F(i.dtype,0),i;var c=[],l=t.map((function(t){if("complex64"===t.dtype)throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");var n=a.texData.get(t.dataId);if(null==n.texture){if(!e.packedInputs&&S(t.shape)<=f().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:t.shape,texData:null,isUniform:!0,uniformValues:n.values};e.packedInputs&&(n.isPacked=!0,n.shape=t.shape)}else if(!!n.isPacked!=!!e.packedInputs)t=n.isPacked?a.unpackTensor(t):a.packTensor(t),c.push(t),n=a.texData.get(t.dataId);else if(n.isPacked&&!Ct(n.shape,t.shape)){var r=t,o=t.shape;t.shape=n.shape,t=a.packedReshape(t,o),c.push(t),n=a.texData.get(t.dataId),r.shape=o}return a.uploadToGPU(t.dataId),{shape:t.shape,texData:n,isUniform:!1}}));this.uploadToGPU(i.dataId);var d,p={shape:i.shape,texData:u,isUniform:!1},h=function(e,t,n){var r="";t.concat(n).forEach((function(e){var t=null!=e.texData&&null!=e.texData.slice&&e.texData.slice.flatOffset>0,n=e.isUniform?"uniform":e.texData.texShape;r+=e.shape+"_"+n+"_"+t}));var o=e.userCode;return e.constructor.name+"_"+r+"_"+o}(e,l,p),v=this.getAndSaveBinary(h,(function(){return function(e,t,n,r){var o=t.userCode,a=n.map((function(e,n){var r={logicalShape:e.shape,texShape:e.isUniform?null:e.texData.texShape,isUniform:e.isUniform,isPacked:!e.isUniform&&e.texData.isPacked,flatOffset:null};return null!=e.texData&&null!=e.texData.slice&&e.texData.slice.flatOffset>0&&(r.flatOffset=e.texData.slice.flatOffset),{name:t.variableNames[n],shapeInfo:r}})),i=a.map((function(e){return e.shapeInfo})),u={logicalShape:r.shape,texShape:r.texData.texShape,isUniform:!1,isPacked:r.texData.isPacked,flatOffset:null},s=function(e,t,n,r){var o=[];e.forEach((function(e){var t=S(e.shapeInfo.logicalShape);e.shapeInfo.isUniform?o.push("uniform float "+e.name+(t>1?"["+t+"]":"")+";"):(o.push("uniform sampler2D "+e.name+";"),o.push("uniform int offset"+e.name+";"))}));var a,i,u=o.join("\n"),s=e.map((function(e){return function(e,t,n){void 0===n&&(n=!1);var r="";r+=n?function e(t){var n;switch(t.shapeInfo.logicalShape.length){case 0:return"\n vec4 get"+(n=t.name).charAt(0).toUpperCase()+n.slice(1)+"() {\n return "+so().texture2D+"("+n+", halfCR);\n }\n ";case 1:return function(e){var t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),r=e.shapeInfo.texShape,o=[Math.ceil(r[0]/2),Math.ceil(r[1]/2)],a=so();return"\n vec4 "+n+"(int index) {\n vec2 uv = packedUVfrom1D(\n "+o[0]+", "+o[1]+", index);\n return "+a.texture2D+"("+t+", uv);\n }\n "}(t);case 2:return function(e){var t=e.shapeInfo.logicalShape,n=e.name,r="get"+n.charAt(0).toUpperCase()+n.slice(1),o=e.shapeInfo.texShape,a=o[0],i=o[1],u=so();if(null!=o&&R(t,o))return"\n vec4 "+r+"(int row, int col) {\n vec2 uv = (vec2(col, row) + halfCR) / vec2("+i+".0, "+a+".0);\n\n return "+u.texture2D+"("+n+", uv);\n }\n ";var s=[Math.ceil(o[0]/2),Math.ceil(o[1]/2)];return"\n vec4 "+r+"(int row, int col) {\n vec2 uv = packedUVfrom2D("+Math.ceil(t[1]/2)+", "+s[0]+", "+s[1]+", row, col);\n return "+u.texture2D+"("+n+", uv);\n }\n "}(t);case 3:return function(t){var n=t.shapeInfo.logicalShape,r=t.name,o="get"+r.charAt(0).toUpperCase()+r.slice(1),a=t.shapeInfo.texShape,i=[Math.ceil(a[0]/2),Math.ceil(a[1]/2)];if(1===n[0]){var u=xo(t,n.slice(1));return"\n "+e(u)+"\n vec4 "+o+"(int b, int row, int col) {\n return "+o+"("+wo(["b","row","col"],[1,2])+");\n }\n "}var s=i[0],c=i[1],l=Math.ceil(n[2]/2);return"\n vec4 "+o+"(int b, int row, int col) {\n vec2 uv = packedUVfrom3D(\n "+s+", "+c+", "+l*Math.ceil(n[1]/2)+", "+l+", b, row, col);\n return "+so().texture2D+"("+r+", uv);\n }\n "}(t);default:return function(e){for(var t=e.shapeInfo.logicalShape,n=t.length,r=e.name,o="get"+r.charAt(0).toUpperCase()+r.slice(1),a=e.shapeInfo.texShape,i=[Math.ceil(a[0]/2),Math.ceil(a[1]/2)],u=i[0],s=i[1],c=Math.ceil(t[n-1]/2),l=c*Math.ceil(t[n-2]/2),f="int b, int row, int col",d="b * "+l+" + (row / 2) * "+c+" + (col / 2)",p=2;p<n-1;p++)f="int b"+p+", "+f,d="b"+p+" * "+(l*=t[n-p-1])+" + "+d;return"\n vec4 "+o+"("+f+") {\n int index = "+d+";\n int texR = index / "+s+";\n int texC = index - texR * "+s+";\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2("+s+", "+u+");\n return "+so().texture2D+"("+r+", uv);\n }\n "}(t)}}(e):function e(t){var n=t.shapeInfo.logicalShape;switch(n.length){case 0:return function(e){var t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1);if(e.shapeInfo.isUniform)return"float "+n+"() {return "+t+";}";var r=e.shapeInfo.texShape,o=r[0],a=r[1];if(1===o&&1===a)return"\n float "+n+"() {\n return sampleTexture("+t+", halfCR);\n }\n ";var i=e.shapeInfo.texShape;return"\n float "+n+"() {\n vec2 uv = uvFromFlat("+i[0]+", "+i[1]+", "+go(t)+");\n return sampleTexture("+t+", uv);\n }\n "}(t);case 1:return function(e){var t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1);if(e.shapeInfo.isUniform)return"\n float "+n+"(int index) {\n "+yo(e)+"\n }\n ";var r=e.shapeInfo.texShape,o=r[0],a=r[1];if(1===a&&1===o)return"\n float "+n+"(int index) {\n return sampleTexture("+t+", halfCR);\n }\n ";var i=go(t);return 1===a?"\n float "+n+"(int index) {\n vec2 uv = vec2(0.5, (float(index + "+i+") + 0.5) / "+o+".0);\n return sampleTexture("+t+", uv);\n }\n ":1===o?"\n float "+n+"(int index) {\n vec2 uv = vec2((float(index + "+i+") + 0.5) / "+a+".0, 0.5);\n return sampleTexture("+t+", uv);\n }\n ":"\n float "+n+"(int index) {\n vec2 uv = uvFromFlat("+o+", "+a+", index + "+i+");\n return sampleTexture("+t+", uv);\n }\n "}(t);case 2:return function(t){var n=t.shapeInfo.logicalShape,r=t.name,o="get"+r.charAt(0).toUpperCase()+r.slice(1),a=t.shapeInfo.texShape;if(null!=a&&R(n,a)){var i=a[0];return"\n float "+o+"(int row, int col) {\n vec2 uv = (vec2(col, row) + halfCR) / vec2("+a[1]+".0, "+i+".0);\n return sampleTexture("+r+", uv);\n }\n "}var u=M(n),s=u.newShape,c=u.keptDims,l=s;if(l.length<n.length){var f=xo(t,l);return"\n "+e(f)+"\n float "+o+"(int row, int col) {\n return "+o+"("+wo(["row","col"],c)+");\n }\n "}if(t.shapeInfo.isUniform)return"\n float "+o+"(int row, int col) {\n int index = round(dot(vec2(row, col), vec2("+n[1]+", 1)));\n "+yo(t)+"\n }\n ";var d=a[0],p=a[1],h=go(r);return 1===p?"\n float "+o+"(int row, int col) {\n float index = dot(vec3(row, col, "+h+"), vec3("+n[1]+", 1, 1));\n vec2 uv = vec2(0.5, (index + 0.5) / "+d+".0);\n return sampleTexture("+r+", uv);\n }\n ":1===d?"\n float "+o+"(int row, int col) {\n float index = dot(vec3(row, col, "+h+"), vec3("+n[1]+", 1, 1));\n vec2 uv = vec2((index + 0.5) / "+p+".0, 0.5);\n return sampleTexture("+r+", uv);\n }\n ":"\n float "+o+"(int row, int col) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * "+n[1]+" + col + "+h+";\n vec2 uv = uvFromFlat("+d+", "+p+", index);\n return sampleTexture("+r+", uv);\n }\n"}(t);case 3:return function(t){var n=t.shapeInfo.logicalShape,r=t.name,o="get"+r.charAt(0).toUpperCase()+r.slice(1),a=n[1]*n[2],i=n[2],u=M(n),s=u.newShape,c=u.keptDims,l=s;if(l.length<n.length){var f=xo(t,l);return"\n "+e(f)+"\n float "+o+"(int row, int col, int depth) {\n return "+o+"("+wo(["row","col","depth"],c)+");\n }\n "}if(t.shapeInfo.isUniform)return"\n float "+o+"(int row, int col, int depth) {\n int index = round(dot(vec3(row, col, depth),\n vec3("+a+", "+i+", 1)));\n "+yo(t)+"\n }\n ";var d=t.shapeInfo.texShape,p=d[0],h=d[1],v=t.shapeInfo.flatOffset;return h===a&&null==v?"\n float "+o+"(int row, int col, int depth) {\n float texR = float(row);\n float texC = dot(vec2(col, depth), vec2("+i+", 1));\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+h+".0, "+p+".0);\n return sampleTexture("+r+", uv);\n }\n ":h===i&&null==v?"\n float "+o+"(int row, int col, int depth) {\n float texR = dot(vec2(row, col), vec2("+n[1]+", 1));\n float texC = float(depth);\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2("+h+".0, "+p+".0);\n return sampleTexture("+r+", uv);\n }\n ":"\n float "+o+"(int row, int col, int depth) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * "+a+" + col * "+i+" + depth + "+go(r)+";\n vec2 uv = uvFromFlat("+p+", "+h+", index);\n return sampleTexture("+r+", uv);\n }\n "}(t);case 4:return function(t){var n=t.shapeInfo.logicalShape,r=t.name,o="get"+r.charAt(0).toUpperCase()+r.slice(1),a=n[3],i=n[2]*a,u=n[1]*i,s=M(n),c=s.newShape,l=s.keptDims;if(c.length<n.length){var f=xo(t,c);return"\n "+e(f)+"\n float "+o+"(int row, int col, int depth, int depth2) {\n return "+o+"("+wo(["row","col","depth","depth2"],l)+");\n }\n "}if(t.shapeInfo.isUniform)return"\n float "+o+"(int row, int col, int depth, int depth2) {\n int index = round(dot(vec4(row, col, depth, depth2),\n vec4("+u+", "+i+", "+a+", 1)));\n "+yo(t)+"\n }\n ";var d=t.shapeInfo.flatOffset,p=t.shapeInfo.texShape,h=p[0],v=p[1];return v===u&&null==d?"\n float "+o+"(int row, int col, int depth, int depth2) {\n float texR = float(row);\n float texC =\n dot(vec3(col, depth, depth2),\n vec3("+i+", "+a+", 1));\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+v+".0, "+h+".0);\n return sampleTexture("+r+", uv);\n }\n ":v===a&&null==d?"\n float "+o+"(int row, int col, int depth, int depth2) {\n float texR = dot(vec3(row, col, depth),\n vec3("+n[1]*n[2]+", "+n[2]+", 1));\n float texC = float(depth2);\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+v+".0, "+h+".0);\n return sampleTexture("+r+", uv);\n }\n ":"\n float "+o+"(int row, int col, int depth, int depth2) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * "+u+" + col * "+i+" +\n depth * "+a+" + depth2;\n vec2 uv = uvFromFlat("+h+", "+v+", index + "+go(r)+");\n return sampleTexture("+r+", uv);\n }\n "}(t);case 5:return function(t){var n=t.shapeInfo.logicalShape,r=t.name,o="get"+r.charAt(0).toUpperCase()+r.slice(1),a=n[4],i=n[3]*a,u=n[2]*i,s=n[1]*u,c=M(n),l=c.newShape,f=c.keptDims;if(l.length<n.length){var d=xo(t,l);return"\n "+e(d)+"\n float "+o+"(int row, int col, int depth, int depth2, int depth3) {\n return "+o+"("+wo(["row","col","depth","depth2","depth3"],f)+");\n }\n "}if(t.shapeInfo.isUniform)return"\n float "+o+"(int row, int col, int depth, int depth2, int depth3) {\n float index = dot(\n vec4(row, col, depth, depth2),\n vec4("+s+", "+u+", "+i+", "+a+")) +\n depth3;\n "+yo(t)+"\n }\n ";var p=t.shapeInfo.flatOffset,h=t.shapeInfo.texShape,v=h[0],m=h[1];return m===s&&null==p?"\n float "+o+"(int row, int col, int depth, int depth2, int depth3) {\n int texR = row;\n float texC = dot(vec4(col, depth, depth2, depth3),\n vec4("+u+", "+i+", "+a+", 1));\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+m+".0, "+v+".0);\n return sampleTexture("+r+", uv);\n }\n ":m===a&&null==p?"\n float "+o+"(int row, int col, int depth, int depth2, int depth3) {\n float texR = dot(\n vec4(row, col, depth, depth2),\n vec4("+n[1]*n[2]*n[3]+",\n "+n[2]*n[3]+", "+n[3]+", 1));\n int texC = depth3;\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+m+".0, "+v+".0);\n return sampleTexture("+r+", uv);\n }\n ":"\n float "+o+"(int row, int col, int depth, int depth2, int depth3) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * "+s+" + col * "+u+" + depth * "+i+" +\n depth2 * "+a+" + depth3 + "+go(r)+";\n vec2 uv = uvFromFlat("+v+", "+m+", index);\n return sampleTexture("+r+", uv);\n }\n "}(t);case 6:return function(t){var n=t.shapeInfo.logicalShape,r=t.name,o="get"+r.charAt(0).toUpperCase()+r.slice(1),a=M(n),i=a.newShape,u=a.keptDims;if(i.length<n.length){var s=xo(t,i);return"\n "+e(s)+"\n float "+o+"(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n return "+o+"("+wo(["row","col","depth","depth2","depth3","depth4"],u)+");\n }\n "}var c=n[5],l=n[4]*c,f=n[3]*l,d=n[2]*f,p=n[1]*d;if(t.shapeInfo.isUniform)return"\n float "+o+"(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n int index = round(dot(\n vec4(row, col, depth, depth2),\n vec4("+p+", "+d+", "+f+", "+l+")) +\n dot(\n vec2(depth3, depth4),\n vec2("+c+", 1)));\n "+yo(t)+"\n }\n ";var h=t.shapeInfo.flatOffset,v=t.shapeInfo.texShape,m=v[0],g=v[1];return g===p&&null==h?"\n float "+o+"(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n int texR = row;\n float texC = dot(vec4(col, depth, depth2, depth3),\n vec4("+d+", "+f+", "+l+", "+c+")) +\n float(depth4);\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+g+".0, "+m+".0);\n return sampleTexture("+r+", uv);\n }\n ":g===c&&null==h?"\n float "+o+"(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n float texR = dot(vec4(row, col, depth, depth2),\n vec4("+n[1]*n[2]*n[3]*n[4]+",\n "+n[2]*n[3]*n[4]+",\n "+n[3]*n[4]+",\n "+n[4]+")) + float(depth3);\n int texC = depth4;\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+g+".0, "+m+".0);\n return sampleTexture("+r+", uv);\n }\n ":"\n float "+o+"(int row, int col, int depth,\n int depth2, int depth3, int depth4) {\n // Explicitly use integer operations as dot() only works on floats.\n int index = row * "+p+" + col * "+d+" + depth * "+f+" +\n depth2 * "+l+" + depth3 * "+c+" + depth4 + "+go(r)+";\n vec2 uv = uvFromFlat("+m+", "+g+", index);\n return sampleTexture("+r+", uv);\n }\n "}(t);default:throw new Error(n.length+"-D input sampling is not yet supported")}}(e);var o=e.shapeInfo.logicalShape,a=t.logicalShape;return o.length<=a.length&&(r+=n?function(e,t){var n,r,o=e.name,a=o.charAt(0).toUpperCase()+o.slice(1),i="get"+a+"AtOutCoords",u=e.shapeInfo.logicalShape.length,s=t.logicalShape.length,c=Ir(e.shapeInfo.logicalShape,t.logicalShape),l=bo(s),f=s-u,d=["x","y","z","w","u","v"];n=0===u?"":s<2&&c.length>=1?"coords = 0;":c.map((function(e){return"coords."+d[e+f]+" = 0;"})).join("\n"),r=s<2&&u>0?"coords":e.shapeInfo.logicalShape.map((function(e,t){return"coords."+d[t+f]})).join(", ");var p="return outputValue;",h=1===S(e.shapeInfo.logicalShape),v=1===S(t.logicalShape);if(1!==u||h||v){if(h&&!v)p=1===s?"\n return vec4(outputValue.x, outputValue.x, 0., 0.);\n ":"\n return vec4(outputValue.x);\n ";else if(c.length){var m=u-2,g=u-1;c.indexOf(m)>-1&&c.indexOf(g)>-1?p="return vec4(outputValue.x);":c.indexOf(m)>-1?p="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":c.indexOf(g)>-1&&(p="return vec4(outputValue.xx, outputValue.zz);")}}else p="\n return vec4(outputValue.xy, outputValue.xy);\n ";return"\n vec4 "+i+"() {\n "+l+" coords = getOutputCoords();\n "+n+"\n vec4 outputValue = get"+a+"("+r+");\n "+p+"\n }\n "}(e,t):function(e,t){var n=e.name,r=n.charAt(0).toUpperCase()+n.slice(1),o="get"+r+"AtOutCoords",a=t.texShape,i=e.shapeInfo.texShape,u=e.shapeInfo.logicalShape.length,s=t.logicalShape.length;if(!e.shapeInfo.isUniform&&u===s&&null==e.shapeInfo.flatOffset&&R(i,a))return"\n float "+o+"() {\n return sampleTexture("+n+", resultUV);\n }\n ";var c=bo(s),l=Ir(e.shapeInfo.logicalShape,t.logicalShape),f=s-u,d=["x","y","z","w","u","v"];return"\n float "+o+"() {\n "+c+" coords = getOutputCoords();\n "+(0===u?"":s<2&&l.length>=1?"coords = 0;":l.map((function(e){return"coords."+d[e+f]+" = 0;"})).join("\n"))+"\n return get"+r+"("+(s<2&&u>0?"coords":e.shapeInfo.logicalShape.map((function(e,t){return"coords."+d[t+f]})).join(", "))+");\n }\n "}(e,t)),r}(e,t,r)})).join("\n"),c=t.texShape,l=so(),f=function(e){return"\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return "+e.texture2D+"(textureSampler, uv).r;\n }\n "}(l),d=function(e){return e.version+"\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n "+e.varyingFs+" vec2 resultUV;\n "+e.defineOutput+"\n const vec2 halfCR = vec2(0.5, 0.5);\n\n struct ivec5\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n };\n\n struct ivec6\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n int v;\n };\n\n uniform float NAN;\n "+e.defineSpecialNaN+"\n "+e.defineSpecialInf+"\n "+e.defineRound+"\n\n int imod(int x, int y) {\n return x - y * (x / y);\n }\n\n int idiv(int a, int b, float sign) {\n int res = a / b;\n int mod = imod(a, b);\n if (sign < 0. && mod != 0) {\n res -= 1;\n }\n return res;\n }\n\n //Based on the work of Dave Hoskins\n //https://www.shadertoy.com/view/4djSRW\n #define HASHSCALE1 443.8975\n float random(float seed){\n vec2 p = resultUV * seed;\n vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1);\n p3 += dot(p3, p3.yzx + 19.19);\n return fract((p3.x + p3.y) * p3.z);\n }\n\n "+po+"\n "+ho+"\n "+vo+"\n "}(l);return t.isPacked?(a=function(e,t){switch(e.length){case 0:return"\n int getOutputCoords() {\n return 0;\n }\n ";case 1:return function(e,t){var n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return 1===n[0]?"\n int getOutputCoords() {\n return 2 * int(resultUV.x * "+n[1]+".0);\n }\n ":1===n[1]?"\n int getOutputCoords() {\n return 2 * int(resultUV.y * "+n[0]+".0);\n }\n ":"\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+n[0]+", "+n[1]+"));\n return 2 * (resTexRC.x * "+n[1]+" + resTexRC.y);\n }\n "}(0,t);case 2:return function(e,t){var n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(R(e,t))return"\n ivec2 getOutputCoords() {\n return 2 * ivec2(resultUV.yx * vec2("+n[0]+", "+n[1]+"));\n }\n ";var r=Math.ceil(e[1]/2);return"\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+n[0]+", "+n[1]+"));\n\n int index = resTexRC.x * "+n[1]+" + resTexRC.y;\n int r = 2 * (index / "+r+");\n int c = imod(index, "+r+") * 2;\n\n return ivec2(r, c);\n }\n "}(e,t);case 3:return n=e,r=t,o=[Math.ceil(r[0]/2),Math.ceil(r[1]/2)],i=(a=Math.ceil(n[2]/2))*Math.ceil(n[1]/2),"\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+o[0]+", "+o[1]+"));\n int index = resTexRC.x * "+o[1]+" + resTexRC.y;\n\n int b = index / "+i+";\n index -= b * "+i+";\n\n int r = 2 * (index / "+a+");\n int c = imod(index, "+a+") * 2;\n\n return ivec3(b, r, c);\n }\n ";default:return function(e,t){for(var n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[e.length-1]/2),o=r*Math.ceil(e[e.length-2]/2),a=o,i="",u="b, r, c",s=2;s<e.length-1;s++)i="\n int b"+s+" = index / "+(a*=e[e.length-s-1])+";\n index -= b"+s+" * "+a+";\n "+i,u="b"+s+", "+u;return"\n ivec"+e.length+" getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+n[0]+", "+n[1]+"));\n int index = resTexRC.x * "+n[1]+" + resTexRC.y;\n\n "+i+"\n\n int b = index / "+o+";\n index -= b * "+o+";\n\n int r = 2 * (index / "+r+");\n int c = imod(index, "+r+") * 2;\n\n return ivec"+e.length+"("+u+");\n }\n "}(e,t)}var n,r,o,a,i}(t.logicalShape,c),i=function(e){return"\n void setOutput(vec4 val) {\n "+e.output+" = val;\n }\n "}(l)):(a=function(e,t){switch(e.length){case 0:return"\n int getOutputCoords() {\n return 0;\n }\n ";case 1:return function(e,t){return 1===t[0]?"\n int getOutputCoords() {\n return int(resultUV.x * "+t[1]+".0);\n }\n ":1===t[1]?"\n int getOutputCoords() {\n return int(resultUV.y * "+t[0]+".0);\n }\n ":"\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+t[0]+", "+t[1]+"));\n return resTexRC.x * "+t[1]+" + resTexRC.y;\n }\n "}(0,t);case 2:return function(e,t){return R(e,t)?"\n ivec2 getOutputCoords() {\n return ivec2(resultUV.yx * vec2("+t[0]+", "+t[1]+"));\n }\n ":1===e[1]?"\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+t[0]+", "+t[1]+"));\n int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n return ivec2(index, 0);\n }\n ":1===e[0]?"\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+t[0]+", "+t[1]+"));\n int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n return ivec2(0, index);\n }\n ":"\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+t[0]+", "+t[1]+"));\n int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n int r = index / "+e[1]+";\n int c = index - r * "+e[1]+";\n return ivec2(r, c);\n }\n "}(e,t);case 3:return n=t,r=co(["r","c","d"],e),"\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+n[0]+", "+n[1]+"));\n int index = resTexRC.x * "+n[1]+" + resTexRC.y;\n "+r+"\n return ivec3(r, c, d);\n }\n ";case 4:return function(e,t){var n=co(["r","c","d","d2"],e);return"\n ivec4 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+t[0]+", "+t[1]+"));\n int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n "+n+"\n return ivec4(r, c, d, d2);\n }\n "}(e,t);case 5:return function(e,t){var n=co(["r","c","d","d2","d3"],e);return"\n ivec5 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2("+t[0]+",\n "+t[1]+"));\n\n int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n\n "+n+"\n\n ivec5 outShape = ivec5(r, c, d, d2, d3);\n return outShape;\n }\n "}(e,t);case 6:return function(e,t){var n=co(["r","c","d","d2","d3","d4"],e);return"\n ivec6 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2("+t[0]+", "+t[1]+"));\n int index = resTexRC.x * "+t[1]+" + resTexRC.y;\n\n "+n+"\n\n ivec6 result = ivec6(r, c, d, d2, d3, d4);\n return result;\n }\n "}(e,t);default:throw new Error(e.length+"-D output sampling is not yet supported")}var n,r}(t.logicalShape,c),i=function(e){return"\n void setOutput(float val) {\n "+e.output+" = vec4(val, 0, 0, 0);\n }\n "}(l)),r&&(d+=mo),[d,f,i,u,a,s,n].join("\n")}(a,u,o,t.packedInputs),c=e.createProgram(s),l=null,d=e.getUniformLocation(c,"NAN",!1);1===f().getNumber("WEBGL_VERSION")&&(l=e.getUniformLocation(c,"INFINITY",!1));for(var p={},h=0;h<t.variableNames.length;h++){var v=t.variableNames[h];p[v]=e.getUniformLocation(c,v,!1),p["offset"+v]=e.getUniformLocation(c,"offset"+v,!1)}return{program:t,source:s,webGLProgram:c,uniformLocations:p,inShapeInfos:i,outShapeInfo:u,infLoc:l,nanLoc:d}}(a.gpgpu,e,l,p)})),m=null!=this.activeTimers;if(m&&(d=this.startTimer()),function(e,t,n,r,o){Aa(t.inShapeInfos,n),Aa([t.outShapeInfo],[r]);var a=r.texData.texture,i=r.texData.texShape;r.texData.isPacked?e.setOutputPackedMatrixTexture(a,i[0],i[1]):e.setOutputMatrixTexture(a,i[0],i[1]),e.setProgram(t.webGLProgram),1===f().getNumber("WEBGL_VERSION")&&null!==t.infLoc&&e.gl.uniform1f(t.infLoc,1/0),null!==t.nanLoc&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((function(n,r){var o=t.program.variableNames[r],a=t.uniformLocations[o],i=t.uniformLocations["offset"+o];if(null!=a)if(n.isUniform)if(S(n.shape)<2)e.gl.uniform1f(a,n.uniformValues[0]);else{var u=n.uniformValues;u instanceof Float32Array||(u=new Float32Array(u)),e.gl.uniform1fv(a,u)}else null!=n.texData.slice&&null!=i&&e.gl.uniform1i(i,n.texData.slice.flatOffset),e.setInputMatrixTexture(n.texData.texture,a,r)})),null!=o&&o(e,t.webGLProgram),e.executeProgram()}(this.gpgpu,v,l,p,r),c.forEach((function(e){return a.disposeData(e.dataId)})),m&&(d=this.endTimer(d),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(d)})),!f().getBool("WEBGL_LAZILY_UNPACK")&&u.isPacked&&!1===o){var g=this.unpackTensor(i);return this.disposeData(i.dataId),g}return i},t.prototype.compileAndRun=function(e,t,n,r,o){void 0===o&&(o=!1),n=n||t[0].dtype;var a=this.runWebGLProgram(e,t,n,r,o);return Oe.makeTensorFromDataId(a.dataId,a.shape,a.dtype)},t.prototype.getAndSaveBinary=function(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]},t.prototype.getTextureManager=function(){return this.textureManager},t.prototype.dispose=function(){this.disposed||(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)},t.prototype.floatPrecision=function(){var e=this;return null==this.floatPrecisionValue&&(this.floatPrecisionValue=Ft((function(){if(!f().get("WEBGL_RENDER_FLOAT32_ENABLED")){var t=f().getBool("DEBUG");f().set("DEBUG",!1);var n=e.abs(an(1e-8)).dataSync()[0];if(f().set("DEBUG",t),n>0)return 32}return 16}))),this.floatPrecisionValue},t.prototype.epsilon=function(){return 32===this.floatPrecision()?1e-7:1e-4},t.prototype.uploadToGPU=function(e){var t,n=this.texData.get(e),r=n.shape,o=n.dtype,a=n.values,i=n.texture,u=n.usage,s=n.isPacked;if(null==i){var c,l=null!=this.activeTimers;l&&(c=te());var f=n.texShape;if(null==f&&(f=wt(r,s),n.texShape=f),null!=a){var d=xt(r),p=void 0,h=f[1],v=f[0],m=a instanceof Uint8Array;s?(h=(t=je(f[0],f[1]))[0],v=t[1],p=new ua(d,[v,h],m)):p=new ia(d,[v,h],m);var g=this.makeTensorInfo([v,h],o);this.texData.get(g.dataId).usage=m?Pe.PIXELS:Pe.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(g.dataId),h,v,a);var y=this.runWebGLProgram(p,[g],o,null,!0),b=this.texData.get(y.dataId);n.texture=b.texture,n.texShape=b.texShape,n.isPacked=b.isPacked,n.usage=b.usage,this.disposeData(g.dataId),this.texData.delete(y.dataId),n.values=null,l&&(this.uploadWaitMs+=te()-c)}else{var x=this.acquireTexture(f,u,o,s);n.texture=x}}},t.prototype.convertAndCacheOnCPU=function(e,t){var n=this.texData.get(e),r=n.dtype;return this.releaseGPUData(e),null!=t&&(n.values=function(e,t){if("float32"===t||"complex64"===t)return e;if("int32"===t||"bool"===t){for(var n="int32"===t?new Int32Array(e.length):new Uint8Array(e.length),r=0;r<n.length;++r)n[r]=Math.round(e[r]);return n}throw new Error("Unknown dtype "+t)}(t,r)),n.values},t.prototype.acquireTexture=function(e,t,n,r){return this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>1024*this.numMBBeforeWarning*1024&&((this.numBytesInGPU/1024/1024).toFixed(2),this.warnedAboutMemory=!0),this.textureManager.acquireTexture(e,t,r)},t.prototype.computeBytes=function(e,t){return e[0]*e[1]*j(t)},t}(Rr);Ae()&&Oe.registerBackend("webgl",(function(){return new Ni}),2);var Pi=Zt({square_:function(e){var t=zt(e,"x","square"),n=[t];return Oe.runKernelFunc((function(e,n){return n([t]),e.square(t)}),{x:t},(function(e,t){var n=t[0];return{x:function(){return e.mul(n.toFloat().mul(2))}}}),"Square",{},n,[])}}),Mi=Zt({abs_:function(e){var t=zt(e,"x","abs");return"complex64"===t.dtype?Oe.runKernelFunc((function(e){return e.complexAbs(t)}),{$x:t}):Oe.runKernelFunc((function(e,n){var r=e.abs(t);return n([t]),r}),{x:t},(function(e,t){var n=t[0];return{x:function(){return e.mul(n.toFloat().step(-1))}}}),"Abs")}}),Fi=Zt({acos_:function(e){var t=zt(e,"x","acos");return Oe.runKernelFunc((function(e,n){var r=e.acos(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.divStrict(an(1).sub(n.toFloat().square()).sqrt()).neg()}}}))}}),Bi=Zt({acosh_:function(e){var t=zt(e,"x","acosh");return Oe.runKernelFunc((function(e,n){var r=e.acosh(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.divStrict(n.toFloat().square().sub(1).sqrt())}}}))}}),Li=Zt({asin_:function(e){var t=zt(e,"x","asin");return Oe.runKernelFunc((function(e,n){var r=e.asin(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.divStrict(an(1).sub(n.toFloat().square()).sqrt())}}}))}}),Wi=Zt({asinh_:function(e){var t=zt(e,"x","asinh");return Oe.runKernelFunc((function(e,n){var r=e.asinh(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.divStrict(an(1).add(n.toFloat().square()).sqrt())}}}))}}),Ui=Zt({atan_:function(e){var t=zt(e,"x","atan");return Oe.runKernelFunc((function(e,n){var r=e.atan(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.div(n.toFloat().square().add(1))}}}))}}),zi=Zt({atanh_:function(e){var t=zt(e,"x","atanh");return Oe.runKernelFunc((function(e,n){var r=e.atanh(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.div(an(1).sub(n.toFloat().square()))}}}))}}),ji=Zt({ceil_:function(e){var t=zt(e,"x","ceil");return Oe.runKernelFunc((function(e){return e.ceil(t)}),{$x:t},(function(e){return{$x:function(){return mn(e)}}}))}}),Vi=Zt({clipByValue_:function(e,t,n){var r=zt(e,"x","clipByValue");E(t<=n,(function(){return"Error in clip: min ("+t+") must be less than or equal to max ("+n+")."}));var o=[r],a={min:t,max:n};return Oe.runKernelFunc((function(e,o){var a=e.clip(r,t,n);return o([r]),a}),{x:r},(function(e,r){var o=r[0];return{x:function(){return e.where(o.greaterEqual(t).logicalAnd(o.lessEqual(n)),mn(e))}}}),"ClipByValue",a,o)}}),Hi=Zt({cos_:function(e){var t=zt(e,"x","cos");return Oe.runKernelFunc((function(e,n){var r=e.cos(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return n.toFloat().sin().neg().mul(e)}}}))}}),Gi=Zt({cosh_:function(e){var t=zt(e,"x","cosh");return Oe.runKernelFunc((function(e,n){var r=e.cosh(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return n.toFloat().sinh().mulStrict(e)}}}))}}),qi=Zt({erf_:function(e){var t=zt(e,"x","erf");return E("int32"===t.dtype||"float32"===t.dtype,(function(){return"Input dtype must be `int32` or `float32`."})),"int32"===t.dtype&&(t=t.toFloat()),Oe.runKernelFunc((function(e,n){var r=e.erf(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.mul(n.square().neg().exp().mul(2/Math.sqrt(Math.PI)))}}}))}}),Ki=Zt({exp_:function(e){var t=zt(e,"x","exp");return Oe.runKernelFunc((function(e,n){var r=e.exp(t);return n([r]),r}),{$x:t},(function(e,t){return{$x:function(){return e.mulStrict(t[0])}}}))}}),Xi=Zt({expm1_:function(e){var t=zt(e,"x","expm1");return Oe.runKernelFunc((function(e,n){var r=e.expm1(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.mul(n.exp())}}}))}}),$i=Zt({floor_:function(e){var t=zt(e,"x","floor");return Oe.runKernelFunc((function(e){return e.floor(t)}),{$x:t},(function(e){return{$x:function(){return mn(e)}}}))}}),Yi=Zt({log_:function(e){var t=zt(e,"x","log");return Oe.runKernelFunc((function(e,n){var r=e.log(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.div(n.toFloat())}}}))}}),Qi=Zt({log1p_:function(e){var t=zt(e,"x","log1p");return Oe.runKernelFunc((function(e,n){var r=e.log1p(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.div(n.add(1))}}}))}}),Ji=Zt({logSigmoid_:function(e){var t=zt(e,"x","logSigmoid");return Oe.runKernelFunc((function(e,n){var r=e.softplus(t.neg()).neg();return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.mul(n.neg().sigmoid())}}}))}}),Zi=Zt({neg_:function(e){var t=zt(e,"x","neg");return Oe.runKernelFunc((function(e){return e.neg(t)}),{$x:t},(function(e){return{$x:function(){return e.neg()}}}))}}),eu=Zt({reciprocal_:function(e){var t=zt(e,"x","reciprocal");return Oe.runKernelFunc((function(e,n){var r=e.reciprocal(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.div(n.square().neg())}}}))}}),tu=Zt({round_:function(e){var t=zt(e,"x","round");return Oe.runKernelFunc((function(e){return e.round(t)}),{$x:t},(function(e){return{$x:function(){return mn(e)}}}))}}),nu=Zt({rsqrt_:function(e){var t=zt(e,"x","rsqrt");return Oe.runKernelFunc((function(e,n){var r=e.rsqrt(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.div(n.pow(1.5).mul(2)).neg()}}}))}}),ru=Zt({sigmoid_:function(e){var t=zt(e,"x","sigmoid");return Oe.runKernelFunc((function(e,n){var r=e.sigmoid(t);return n([r]),r}),{x:t},(function(e,t){var n=t[0];return{x:function(){return e.mul(n.mul(an(1).sub(n)))}}}),"Sigmoid")}}),ou=Zt({sign_:function(e){var t=zt(e,"x","sign");return Oe.runKernelFunc((function(e){return e.sign(t)}),{$x:t},(function(e){return{$x:function(){return mn(e)}}}))}}),au=Zt({isNaN_:function(e){var t=zt(e,"x","isNaN");return Oe.runKernelFunc((function(e){return e.isNaN(t)}),{$x:t},(function(e){return{$x:function(){return mn(e)}}}))}}),iu=Zt({isInf_:function(e){var t=zt(e,"x","isInf");return Oe.runKernelFunc((function(e){return e.isInf(t)}),{$x:t},(function(e){return{$x:function(){return mn(e)}}}))}}),uu=Zt({isFinite_:function(e){var t=zt(e,"x","isFinite");return Oe.runKernelFunc((function(e){return e.isFinite(t)}),{$x:t},(function(e){return{$x:function(){return mn(e)}}}))}}),su=Zt({sin_:function(e){var t=zt(e,"x","sin");return Oe.runKernelFunc((function(e,n){var r=e.sin(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return n.toFloat().cos().mul(e)}}}))}}),cu=Zt({sinh_:function(e){var t=zt(e,"x","sinh");return Oe.runKernelFunc((function(e,n){var r=e.sinh(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return n.toFloat().cosh().mulStrict(e)}}}))}}),lu=Zt({softplus_:function(e){var t=zt(e,"x","softplus");return Oe.runKernelFunc((function(e,n){var r=e.softplus(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.mul(n.sigmoid())}}}))}}),fu=Zt({sqrt_:function(e){var t=zt(e,"x","sqrt");return Oe.runKernelFunc((function(e,n){var r=e.sqrt(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.div(n.toFloat().sqrt().mul(2))}}}))}}),du=Zt({step_:function(e,t){void 0===t&&(t=0);var n=zt(e,"x","step");return Oe.runKernelFunc((function(e){return e.step(n,t)}),{$x:n},(function(e){return{$x:function(){return mn(e)}}}))}}),pu=Zt({tan_:function(e){var t=zt(e,"x","tan");return Oe.runKernelFunc((function(e,n){var r=e.tan(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return e.div(n.cos().square())}}}))}}),hu=Zt({tanh_:function(e){var t=zt(e,"x","tanh");return Oe.runKernelFunc((function(e,n){var r=e.tanh(t);return n([r]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return an(1).sub(n.square()).mulStrict(e)}}}))}});function vu(e,t,n,r,o,a){var i,u,s=zt(e,"x","batchNorm"),c=zt(t,"mean","batchNorm"),l=zt(n,"variance","batchNorm");return null!=o&&(i=zt(o,"scale","batchNorm")),null!=r&&(u=zt(r,"offset","batchNorm")),E(2===s.rank,(function(){return"Error in batchNorm3D: x must be rank 3 but got rank "+s.rank+"."})),E(2===c.rank||1===c.rank,(function(){return"Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank "+c.rank+"."})),E(2===l.rank||1===l.rank,(function(){return"Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank "+l.rank+"."})),null!=i&&E(2===i.rank||1===i.rank,(function(){return"Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank "+i.rank+"."})),null!=u&&E(2===u.rank||1===u.rank,(function(){return"Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank "+u.rank+"."})),yu(s,c,l,u,i,a)}function mu(e,t,n,r,o,a){var i,u,s=zt(e,"x","batchNorm"),c=zt(t,"mean","batchNorm"),l=zt(n,"variance","batchNorm");return null!=o&&(i=zt(o,"scale","batchNorm")),null!=r&&(u=zt(r,"offset","batchNorm")),E(3===s.rank,(function(){return"Error in batchNorm3D: x must be rank 3 but got rank "+s.rank+"."})),E(3===c.rank||1===c.rank,(function(){return"Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank "+c.rank+"."})),E(3===l.rank||1===l.rank,(function(){return"Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank "+l.rank+"."})),null!=i&&E(3===i.rank||1===i.rank,(function(){return"Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank "+i.rank+"."})),null!=u&&E(3===u.rank||1===u.rank,(function(){return"Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank "+u.rank+"."})),yu(s,c,l,u,i,a)}function gu(e,t,n,r,o,a){var i,u,s=zt(e,"x","batchNorm"),c=zt(t,"mean","batchNorm"),l=zt(n,"variance","batchNorm");return null!=o&&(i=zt(o,"scale","batchNorm")),null!=r&&(u=zt(r,"offset","batchNorm")),E(4===s.rank,(function(){return"Error in batchNorm4D: x must be rank 4 but got rank "+s.rank+"."})),E(4===c.rank||1===c.rank,(function(){return"Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank "+c.rank+"."})),E(4===l.rank||1===l.rank,(function(){return"Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank "+l.rank+"."})),null!=i&&E(4===i.rank||1===i.rank,(function(){return"Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank "+i.rank+"."})),null!=u&&E(4===u.rank||1===u.rank,(function(){return"Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank "+u.rank+"."})),yu(s,c,l,u,i,a)}function yu(e,t,n,r,o,a){null==a&&(a=.001);var i,u,s,c=zt(e,"x","batchNorm"),l=zt(t,"mean","batchNorm"),f=zt(n,"variance","batchNorm");null!=o&&(i=zt(o,"scale","batchNorm")),null!=r&&(u=zt(r,"offset","batchNorm")),E(l.rank===f.rank,(function(){return"Batch normalization gradient requires mean and variance to have equal ranks."})),E(null==u||l.rank===u.rank,(function(){return"Batch normalization gradient requires mean and offset to have equal ranks."})),E(null==i||l.rank===i.rank,(function(){return"Batch normalization gradient requires mean and scale to have equal ranks."})),s=0===c.rank||1===c.rank?c.as4D(1,1,1,c.size):2===c.rank?c.as4D(1,1,c.shape[0],c.shape[1]):3===c.rank?c.as4D(1,c.shape[0],c.shape[1],c.shape[2]):c;var d=[c,l,f,i];return Oe.runKernelFunc((function(e,t){var n=e.batchNormalization(s,bu(l),bu(f),a,bu(i),bu(u));return t([c,l,f,i]),n}),{x:c,mean:l,variance:f,scale:i,offset:u},(function(e,t){var n=t,r=n[0],o=n[1],i=n[2],u=n[3],c=null==u?an(1):u,l=Or(o.shape,s.shape),f=[];if(1===o.rank){for(var d=0;d<s.shape.length-1;++d)f.push(s.shape[d]);f.push(1)}var p=r.sub(o),h=e.mul(c),v=nu(i.add(an(a))),m=v.mul(v).mul(v).mul(an(-.5));return{x:function(){return 1===o.rank?e.mul(ar(v.as4D(1,1,1,o.shape[0]),f)).mul(c).reshape(r.shape):e.mul(v).mul(c).reshape(r.shape)},mean:function(){var e=v.mul(an(-1)).mul(h);return 1===o.rank&&(e=e.sum(l)),e.reshape(o.shape)},variance:function(){var e=m.mul(p).mul(h);return 1===o.rank&&(e=e.sum(l)),e.reshape(o.shape)},scale:function(){var t=p.mul(v),n=e.mul(t);return 1===o.rank&&(n=n.sum(l)),n.reshape(o.shape)},offset:function(){var t=e;return 1===o.rank&&(t=t.sum(l)),t.reshape(o.shape)}}}),"BatchNormalization",{varianceEpsilon:a},d).reshape(c.shape)}function bu(e){return null==e?null:0===e.rank?e.as1D():1===e.rank?e:2===e.rank?e.as4D(1,1,e.shape[0],e.shape[1]):3===e.rank?e.as4D(1,e.shape[0],e.shape[1],e.shape[2]):e}function xu(){Mt()}var wu=Zt({batchNormalization2d_:function(e,t,n,r,o,a){return void 0===r&&(r=.001),xu(),vu(e,t,n,a,o,r)}}),Eu=Zt({batchNormalization3d_:function(e,t,n,r,o,a){return void 0===r&&(r=.001),xu(),mu(e,t,n,a,o,r)}}),Cu=Zt({batchNormalization4d_:function(e,t,n,r,o,a){return void 0===r&&(r=.001),xu(),gu(e,t,n,a,o,r)}}),ku=Zt({batchNormalization_:function(e,t,n,r,o,a){return void 0===r&&(r=.001),xu(),yu(e,t,n,a,o,r)}}),_u=Zt({batchNorm_:yu}),Su=Zt({batchNorm2d_:vu}),Ru=Zt({batchNorm3d_:mu}),Tu=Zt({batchNorm4d_:gu}),Iu=Zt({logicalAnd_:function(e,t){var n=zt(e,"a","logicalAnd","bool"),r=zt(t,"b","logicalAnd","bool");return Ar(n.shape,r.shape),Oe.runKernelFunc((function(e){return e.logicalAnd(n,r)}),{$a:n,$b:r})}}),Ou=Zt({logicalNot_:function(e){var t=zt(e,"x","logicalNot","bool");return Oe.runKernelFunc((function(e){return e.logicalNot(t)}),{$x:t})}}),Au=Zt({logicalOr_:function(e,t){var n=zt(e,"a","logicalOr","bool"),r=zt(t,"b","logicalOr","bool");return Ar(n.shape,r.shape),Oe.runKernelFunc((function(e){return e.logicalOr(n,r)}),{$a:n,$b:r})}}),Du=Zt({logicalXor_:function(e,t){var n=zt(e,"a","logicalXor","bool"),r=zt(t,"b","logicalXor","bool");return Ar(n.shape,r.shape),Au(e,t).logicalAnd(Iu(e,t).logicalNot())}}),Nu=Zt({where_:function(e,t,n){var r=zt(t,"a","where"),o=zt(n,"b","where"),a=zt(e,"condition","where","bool");return C(r.shape,o.shape,"Error in where: "),1===a.rank?E(a.shape[0]===r.shape[0],(function(){return"The first dimension of `a` must match the size of `condition`."})):C(a.shape,o.shape,"Error in where: "),Oe.runKernelFunc((function(e,t){var n=e.select(a,r,o);return t([a]),n}),{$condition:a,$a:r,$b:o},(function(e,t){var n=t[0];return{$condition:function(){return mn(n).toFloat()},$a:function(){return e.mul(n.cast(e.dtype))},$b:function(){return e.mul(n.logicalNot().cast(e.dtype))}}}))}}),Pu=function(e){return s(this,void 0,void 0,(function(){var t,n,r;return c(this,(function(o){switch(o.label){case 0:return[4,(t=zt(e,"condition","whereAsync","bool")).data()];case 1:return n=o.sent(),r=no(t.shape,n),e!==t&&t.dispose(),[2,r]}}))}))},Mu=Zt({add_:function(e,t){var n,r=zt(e,"a","add"),o=zt(t,"b","add");n=ke(r,o),r=n[0],o=n[1];var a=Ar(r.shape,o.shape);return Oe.runKernelFunc((function(e){return e.add(r,o)}),{a:r,b:o},(function(e){return{a:function(){var t=e,n=Or(r.shape,a);return n.length>0&&(t=t.sum(n)),t.reshape(r.shape)},b:function(){var t=e,n=Or(o.shape,a);return n.length>0&&(t=t.sum(n)),t.reshape(o.shape)}}}),"Add")}}),Fu=Zt({addN_:function(e){E(Array.isArray(e),(function(){return"The argument passed to tf.addN() must be a list of tensors"})),E(e.length>=1,(function(){return"Must pass at least one tensor to tf.addN(), but got "+e.length}));var t=e.map((function(e,t){return zt(e,"tensors"+t,"addN")})),n=t[0];t.forEach((function(e){if(e.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")})),t.forEach((function(e){if(!R(e.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")}));var r=t;return Oe.runKernelFunc((function(e){return e.addN(t)}),r,(function(e){var n={};return t.forEach((function(t,r){n[r]=function(){return e.clone()}})),n}),"AddN")}}),Bu=Zt({addStrict_:function(e,t){var n=zt(e,"a","addStrict"),r=zt(t,"b","addStrict");return C(n.shape,r.shape,"Error in addStrict: "),n.add(r)}}),Lu=Zt({atan2_:function(e,t){var n,r=zt(e,"a","atan2"),o=zt(t,"b","atan2");n=ke(r,o),r=n[0],o=n[1];var a=Ar(r.shape,o.shape);return Oe.runKernelFunc((function(e,t){var n=e.atan2(r,o);return t([r,o]),n}),{$a:r,$b:o},(function(e,t){var n=t[0],r=t[1];return{$a:function(){var t=Mu(n.square(),r.square()),o=e.mul(r.div(t)),i=Or(n.shape,a);return i.length>0&&(o=o.sum(i)),o.reshape(n.shape)},$b:function(){var t=Mu(n.square(),r.square()),o=Zi(e.mul(n.div(t))),i=Or(r.shape,a);return i.length>0&&(o=o.sum(i)),o.reshape(r.shape)}}}))}}),Wu=Zt({div_:function(e,t){var n,r=zt(e,"a","div"),o=zt(t,"b","div");if(n=ke(r,o),r=n[0],o=n[1],"int32"===r.dtype&&"int32"===o.dtype)return ju(r,o);var a=Ar(r.shape,o.shape);return Oe.runKernelFunc((function(e,t){var n=e.realDivide(r,o);return t([r,o]),n}),{a:r,b:o},(function(e,t){var n=t[0],r=t[1];return{a:function(){var t=e.div(r.toFloat()),o=Or(n.shape,a);return o.length>0?t.sum(o).reshape(n.shape):t},b:function(){var t=e.mul(n.toFloat()),o=Or(r.shape,a);o.length>0&&(t=t.sum(o).reshape(r.shape));var i=r.square();return t.div(i.toFloat()).neg()}}}),"Div")}}),Uu=Zt({divNoNan_:function(e,t){var n,r=zt(e,"a","div"),o=zt(t,"b","div");r=(n=ke(r,o))[0],o=n[1];var a=Wu(r,o),i=mn(a),u=o.equal(i);return Nu(u,i,a)}}),zu=Zt({divStrict_:function(e,t){var n=zt(e,"a","div"),r=zt(t,"b","div");return C(n.shape,r.shape,"Error in divideStrict: "),n.div(r)}}),ju=Zt({floorDiv_:function(e,t){var n,r=zt(e,"a","floorDiv"),o=zt(t,"b","floorDiv");n=ke(r,o),r=n[0],o=n[1];var a=Ar(r.shape,o.shape);return Oe.runKernelFunc((function(e,t){var n=e.floorDiv(r,o);return t([r,o]),n}),{a:r,b:o},(function(e,t){var n=t[0],r=t[1];return{a:function(){var t=e.div(r.toFloat()),o=Or(n.shape,a);return o.length>0?t.sum(o).reshape(n.shape):t},b:function(){var t=e.mul(n.toFloat()),o=Or(r.shape,a);o.length>0&&(t=t.sum(o).reshape(r.shape));var i=r.square();return t.div(i.toFloat()).neg()}}}),"FloorDiv")}}),Vu=Zt({maximum_:function(e,t){var n,r=zt(e,"a","maximum"),o=zt(t,"b","maximum");return n=ke(r,o),r=n[0],o=n[1],"bool"===r.dtype&&(r=r.toInt(),o=o.toInt()),Ar(r.shape,o.shape),Oe.runKernelFunc((function(e,t){var n=e.maximum(r,o);return t([r,o]),n}),{$a:r,$b:o},(function(e,t){var n=t[0],r=t[1];return{$a:function(){return e.mul(n.greaterEqual(r).toFloat())},$b:function(){return e.mul(n.less(r).toFloat())}}}))}}),Hu=Zt({maximumStrict_:function(e,t){var n=zt(e,"a","maximumStrict"),r=zt(t,"b","maximumStrict");return C(n.shape,r.shape,"Error in maximumStrict: "),n.maximum(r)}}),Gu=Zt({minimum_:function(e,t){var n,r=zt(e,"a","minimum"),o=zt(t,"b","minimum");return n=ke(r,o),r=n[0],o=n[1],"bool"===r.dtype&&(r=r.toInt(),o=o.toInt()),Ar(r.shape,o.shape),Oe.runKernelFunc((function(e,t){var n=e.minimum(r,o);return t([r,o]),n}),{$a:r,$b:o},(function(e,t){var n=t[0],r=t[1];return{$a:function(){return e.mul(n.lessEqual(r).toFloat())},$b:function(){return e.mul(n.greater(r).toFloat())}}}))}}),qu=Zt({minimumStrict_:function(e,t){var n=zt(e,"a","minimumStrict"),r=zt(t,"b","minimumStrict");return C(n.shape,r.shape,"Error in minimumStrict: "),n.minimum(r)}}),Ku=Zt({mod_:function(e,t){var n,r=zt(e,"a","mod"),o=zt(t,"b","mod");n=ke(r,o),r=n[0],o=n[1];var a=Ar(r.shape,o.shape);return Oe.runKernelFunc((function(e,t){var n=e.mod(r,o);return t([r,o]),n}),{$a:r,$b:o},(function(e,t){var n=t[0],r=t[1];return{$a:function(){var t=Or(n.shape,a);return t.length>0?e.sum(t).reshape(n.shape):e},$b:function(){var t=e.mul(n.div(r).floor().neg()),o=Or(r.shape,a);return o.length>0?t.sum(o).reshape(r.shape):t}}}))}}),Xu=Zt({modStrict_:function(e,t){var n=zt(e,"a","modStrict"),r=zt(t,"b","modStrict");return C(n.shape,r.shape,"Error in modStrict: "),n.mod(r)}}),$u=Zt({mul_:function(e,t){var n,r=zt(e,"a","mul"),o=zt(t,"b","mul");n=ke(r,o),r=n[0],o=n[1];var a=Ar(r.shape,o.shape);return Oe.runKernelFunc((function(e,t){var n=e.multiply(r,o);return t([r,o]),n}),{a:r,b:o},(function(e,t){var n=t[0],r=t[1];return{a:function(){var t=e.mul(r.toFloat()),o=Or(n.shape,a);return o.length>0?t.sum(o).reshape(n.shape):t},b:function(){var t=e.mul(n.toFloat()),o=Or(r.shape,a);return o.length>0?t.sum(o).reshape(r.shape):t}}}),"Mul")}}),Yu=Zt({mulStrict_:function(e,t){var n=zt(e,"a","mul"),r=zt(t,"b","mul");return C(n.shape,r.shape,"Error in multiplyStrict: "),n.mul(r)}}),Qu=Zt({pow_:function(e,t){var n=zt(e,"base","pow"),r=zt(t,"exp","pow"),o=Ar(n.shape,r.shape);return e=n.cast(Ee(n.dtype,r.dtype)),t=r.cast(Ee(n.dtype,r.dtype)),Oe.runKernelFunc((function(e,t){var o=e.pow(n,r);return t([n,r,o]),o}),{$base:n,$exp:r},(function(e,t){var n=t[0],r=t[1],a=t[2];return{$base:function(){var t=r.toFloat(),a=e.mul(t.mul(n.pow(t.sub(an(1))))),i=Or(n.shape,o);return i.length>0&&(a=a.sum(i)),a.reshape(n.shape)},$exp:function(){var t=n.greater(0),i=n.log().where(t,mn(n)),u=e.mul(a.mul(i)),s=Or(r.shape,o);return s.length>0&&(u=u.sum(s)),u.reshape(r.shape)}}}))}}),Ju=Zt({powStrict_:function(e,t){return C(e.shape,t.shape,"Error in powStrict: "),e.pow(t)}}),Zu=Zt({squaredDifference_:function(e,t){var n,r=zt(e,"a","squaredDifference"),o=zt(t,"b","squaredDifference");return n=ke(r,o),r=n[0],o=n[1],Ar(r.shape,o.shape),Oe.runKernelFunc((function(e,t){var n=e.squaredDifference(r,o);return t([r,o]),n}),{$a:r,$b:o},(function(e,t){var n=t[0],r=t[1],o=an(2);return{$a:function(){return e.mul(n.sub(r).mul(o))},$b:function(){return e.mul(r.sub(n).mul(o))}}}))}}),es=Zt({squaredDifferenceStrict_:function(e,t){var n=zt(e,"a","squaredDifferenceStrict"),r=zt(t,"b","squaredDifferenceStrict");return C(n.shape,r.shape,"Error in squaredDifferenceStrict: "),n.squaredDifference(r)}}),ts=Zt({sub_:function(e,t){var n,r=zt(e,"a","sub"),o=zt(t,"b","sub");n=ke(r,o),r=n[0],o=n[1];var a=Ar(r.shape,o.shape);return Oe.runKernelFunc((function(e){return e.subtract(r,o)}),{a:r,b:o},(function(e){return{a:function(){var t=e,n=Or(r.shape,a);return n.length>0&&(t=t.sum(n)),t.reshape(r.shape)},b:function(){var t=e,n=Or(o.shape,a);return n.length>0&&(t=t.sum(n)),t.neg().reshape(o.shape)}}}),"Sub")}}),ns=Zt({subStrict_:function(e,t){var n=zt(e,"a","subStrict"),r=zt(t,"b","subStrict");return C(n.shape,r.shape,"Error in subStrict: "),n.sub(r)}}),rs=Zt({equal_:function(e,t){var n,r=zt(e,"a","equal"),o=zt(t,"b","equal");return n=ke(r,o),r=n[0],o=n[1],Ar(r.shape,o.shape),Oe.runKernelFunc((function(e){return e.equal(r,o)}),{$a:r,$b:o})}}),os=Zt({equalStrict_:function(e,t){var n=zt(e,"a","equalStrict"),r=zt(t,"b","equalStrict");return C(n.shape,r.shape,"Error in equalStrict: "),n.equal(r)}}),as=Zt({greater_:function(e,t){var n,r=zt(e,"a","greater"),o=zt(t,"b","greater");return n=ke(r,o),r=n[0],o=n[1],Ar(r.shape,o.shape),Oe.runKernelFunc((function(e){return e.greater(r,o)}),{$a:r,$b:o})}}),is=Zt({greaterEqual_:function(e,t){var n,r=zt(e,"a","greaterEqual"),o=zt(t,"b","greaterEqual");return n=ke(r,o),r=n[0],o=n[1],Ar(r.shape,o.shape),Oe.runKernelFunc((function(e,t){var n=e.greaterEqual(r,o);return t([r,o]),n}),{$a:r,$b:o},(function(e,t){var n=t[0],r=t[1];return{$a:function(){return mn(n)},$b:function(){return mn(r)}}}))}}),us=Zt({greaterEqualStrict_:function(e,t){var n=zt(e,"a","greaterEqualStrict"),r=zt(t,"b","greaterEqualStrict");return C(n.shape,r.shape,"Error in greaterEqualStrict: "),n.greaterEqual(r)}}),ss=Zt({greaterStrict_:function(e,t){var n=zt(e,"a","greaterStrict"),r=zt(t,"b","greaterStrict");return C(n.shape,r.shape,"Error in greaterStrict: "),n.greater(r)}}),cs=Zt({less_:function(e,t){var n,r=zt(e,"a","less"),o=zt(t,"b","less");return n=ke(r,o),r=n[0],o=n[1],Ar(r.shape,o.shape),Oe.runKernelFunc((function(e){return e.less(r,o)}),{$a:r,$b:o})}}),ls=Zt({lessEqual_:function(e,t){var n,r=zt(e,"a","lessEqual"),o=zt(t,"b","lessEqual");return n=ke(r,o),r=n[0],o=n[1],Ar(r.shape,o.shape),Oe.runKernelFunc((function(e){return e.lessEqual(r,o)}),{$a:r,$b:o})}}),fs=Zt({lessEqualStrict_:function(e,t){var n=zt(e,"a","lessEqualStrict"),r=zt(t,"b","lessEqualStrict");return C(n.shape,r.shape,"Error in lessEqualStrict: "),n.lessEqual(r)}}),ds=Zt({lessStrict_:function(e,t){var n=zt(e,"a","lessStrict"),r=zt(t,"b","lessStrict");return C(n.shape,r.shape,"Error in lessStrict: "),n.less(r)}}),ps=Zt({notEqual_:function(e,t){var n,r=zt(e,"a","notEqual"),o=zt(t,"b","notEqual");return n=ke(r,o),r=n[0],o=n[1],Ar(r.shape,o.shape),Oe.runKernelFunc((function(e){return e.notEqual(r,o)}),{$a:r,$b:o})}}),hs=Zt({notEqualStrict_:function(e,t){var n=zt(e,"a","notEqualStrict"),r=zt(t,"b","notEqualStrict");return C(n.shape,r.shape,"Error in notEqualStrict: "),n.notEqual(r)}});function vs(e,t){for(var n=[],r=e;r<t;++r)n.push(r);return n}function ms(e){for(var t=[],n=0;n<e.length;++n)for(var r=0;r<e[n].length;++r)t.push(e[n][r]);return t}var gs=Zt({gather_:function(e,t,n){void 0===n&&(n=0);var r=zt(e,"x","gather"),o=zt(t,"indices","gather","int32");n=P(n,r.shape)[0];var a=function(e,t,n){for(var r=e.shape[n],o=[],a=1,i=1,u=0;u<n;u++)o.push(e.shape[u]),a*=e.shape[u];for(u=0;u<t.rank;u++)o.push(t.shape[u]);for(u=n+1;u<e.rank;u++)o.push(e.shape[u]),i*=e.shape[u];return{batchSize:a,sliceSize:i,dimSize:r,outputShape:o}}(r,o,n);return Oe.runKernelFunc((function(e,t){var a=e.gather(r,o.flatten(),n);return t([o]),a}),{$x:r},(function(e,t){var o=t[0];return{$x:function(){var t=r.shape,a=o.size,i=t.slice(0,n),u=i.length,s=t.slice(n,t.length).slice(1),c=s.length,l=vs(0,u),f=vs(u+1,u+1+c),d=ms([i,[a],s]),p=e.reshape(d),h=o.reshape([a]),v=ms([[u],l,f]),m=p.transpose(v),g=ys(m,h,r.shape[n]),y=$t(v);return g.transpose(y)}}})).reshape(a.outputShape)}}),ys=Zt({unsortedSegmentSum_:function(e,t,n){var r=zt(e,"x","unsortedSegmentSum"),o=zt(t,"segmentIds","unsortedSegmentSum","int32");return E(T(n),(function(){return"numSegments must be of dtype int"})),Oe.runKernelFunc((function(e,t){var a=e.unsortedSegmentSum(r,o,n);return t([o]),a}),{$x:r},(function(e,t){var n=t[0];return{$x:function(){return function(e,t){for(var n=Vu(t,mn(t)),r=gs(e,n),o=is(t,an(0,"int32")),a=r.rank-o.rank,i=0;i<a;++i)o=jn(o,i+1);o=Iu(o,fn(r.shape,"bool"));var u=mn(r);return Nu(o,r,u)}(e,n)}}}))}});function bs(e,t,n,r,o,a,i){void 0===a&&(a="NHWC"),E(e.length===t.rank,(function(){return"Length of inShape ("+e.length+") and rank of dy ("+t.rank+") must match"}));var u=e,s=t,c=!1;3===t.rank&&(c=!0,s=t.as4D(1,t.shape[0],t.shape[1],t.shape[2]),u=[1,e[0],e[1],e[2]]),E(4===u.length,(function(){return"Error in conv2dDerInput: inShape must be length 4, but got length "+u.length+"."})),E(4===s.rank,(function(){return"Error in conv2dDerInput: dy must be rank 4, but got rank "+s.rank})),E(4===n.rank,(function(){return"Error in conv2dDerInput: filter must be rank 4, but got rank "+n.rank}));var l="NHWC"===a?u[3]:u[1],f="NHWC"===a?s.shape[3]:s.shape[1];E(l===n.shape[2],(function(){return"Error in conv2dDerInput: depth of input ("+l+") must match input depth for filter "+n.shape[2]+"."})),E(f===n.shape[3],(function(){return"Error in conv2dDerInput: depth of output ("+f+") must match output depth for filter "+n.shape[3]+"."})),null!=i&&E(T(o),(function(){return"Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+o+"."}));var d=Vr(a),p=Pr(u,n.shape,r,1,o,i,!1,d),h=Oe.runKernelFunc((function(e,t){var r=e.conv2dDerInput(s,n,p);return t([n,s]),r}),{dy4D:s,filter:n},(function(e,t){var n=t[0],u=t[1];return{dy4D:function(){return Cs(e,n,r,o,a,1,i)},filter:function(){return _s(e,u,n.shape,r,o,a,i)}}}));return c?h.as3D(h.shape[1],h.shape[2],h.shape[3]):h}function xs(e){var t=function(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}(e),n=t[0],r=t[1],o=t[2];return 1===n&&1===r&&1===o}function ws(e,t,n,r,o){E(e.length===t.rank,(function(){return"Length of inShape ("+e.length+") and rank of dy ("+t.rank+") must match"}));var a=e,i=t,u=!1;4===t.rank&&(u=!0,i=t.as5D(1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]),a=[1,e[0],e[1],e[2],e[3]]);var s=a[4],c=i.shape[4];E(5===a.length,(function(){return"Error in conv3dDerInput: inShape must be length 5, but got length "+a.length+"."})),E(5===i.rank,(function(){return"Error in conv3dDerInput: dy must be rank 5, but got rank "+i.rank})),E(5===n.rank,(function(){return"Error in conv3dDerInput: filter must be rank 5, but got rank "+n.rank})),E(s===n.shape[3],(function(){return"Error in conv3dDerInput: depth of input ("+s+") must match input depth for filter "+n.shape[3]+"."})),E(c===n.shape[4],(function(){return"Error in conv3dDerInput: depth of output ("+c+") must match output depth for filter "+n.shape[4]+"."}));var l=Mr(a,n.shape,r,1,o),f=Oe.runKernelFunc((function(e){return e.conv3dDerInput(i,n,l)}),{dy5D:i});return u?f.as4D(f.shape[1],f.shape[2],f.shape[3],f.shape[4]):f}var Es=Zt({conv1d_:function(e,t,n,r,o,a,i){void 0===o&&(o="NWC"),void 0===a&&(a=1);var u=zt(e,"x","conv1d"),s=zt(t,"filter","conv1d"),c=u,l=!1;2===u.rank&&(l=!0,c=u.as3D(1,u.shape[0],u.shape[1])),E(3===c.rank,(function(){return"Error in conv1d: input must be rank 3, but got rank "+c.rank+"."})),E(3===s.rank,(function(){return"Error in conv1d: filter must be rank 3, but got rank "+s.rank+"."})),null!=i&&E(T(r),(function(){return"Error in conv1d: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+r+"."})),E(c.shape[2]===s.shape[1],(function(){return"Error in conv1d: depth of input ("+c.shape[2]+") must match input depth for filter "+s.shape[1]+"."})),E(jr(n,a),(function(){return"Error in conv1D: Either stride or dilation must be 1. Got stride "+n+" and dilation '"+a+"'"})),E("NWC"===o,(function(){return"Error in conv1d: got dataFormat of "+o+" but only NWC is currently supported."}));var f=s.as4D(1,s.shape[0],s.shape[1],s.shape[2]),d=c.as4D(c.shape[0],1,c.shape[1],c.shape[2]),p=Cs(d,f,[1,n],r,"NHWC",[1,a],i);return l?p.as2D(p.shape[2],p.shape[3]):p.as3D(p.shape[0],p.shape[2],p.shape[3])}}),Cs=Zt({conv2d_:function(e,t,n,r,o,a,i){void 0===o&&(o="NHWC"),void 0===a&&(a=[1,1]);var u=zt(e,"x","conv2d"),s=zt(t,"filter","conv2d"),c=u,l=!1;3===u.rank&&(l=!0,c=u.as4D(1,u.shape[0],u.shape[1],u.shape[2])),E(4===c.rank,(function(){return"Error in conv2d: input must be rank 4, but got rank "+c.rank+"."})),E(4===s.rank,(function(){return"Error in conv2d: filter must be rank 4, but got rank "+s.rank+"."})),null!=i&&E(T(r),(function(){return"Error in conv2d: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+r+"."}));var f="NHWC"===o?c.shape[3]:c.shape[1];E(f===s.shape[2],(function(){return"Error in conv2d: depth of input ("+f+") must match input depth for filter "+s.shape[2]+"."})),E(jr(n,a),(function(){return"Error in conv2D: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+a+"'"}));var d=Vr(o),p=Pr(c.shape,s.shape,n,a,r,i,!1,d),h=[s,c],v=Oe.runKernelFunc((function(e,t){var n=e.conv2d(c,s,p);return t([s,c]),n}),{x:c,filter:s},(function(e,t){var i=t,u=i[0],s=i[1];return E(zr(a),(function(){return"Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '"+a+"'"})),{x:function(){return Ss(s.shape,e,u,n,r,o)},filter:function(){return _s(s,e,u.shape,n,r,o)}}}),"Conv2D",p,h);return l?v.as3D(v.shape[1],v.shape[2],v.shape[3]):v}}),ks=Zt({conv3d_:function(e,t,n,r,o,a){void 0===o&&(o="NDHWC"),void 0===a&&(a=[1,1,1]);var i=zt(e,"x","conv3d"),u=zt(t,"filter","conv3d"),s=i,c=!1;4===i.rank&&(c=!0,s=i.as5D(1,i.shape[0],i.shape[1],i.shape[2],i.shape[3])),E(5===s.rank,(function(){return"Error in conv3d: input must be rank 5, but got rank "+s.rank+"."})),E(5===u.rank,(function(){return"Error in conv3d: filter must be rank 5, but got rank "+u.rank+"."})),E(s.shape[4]===u.shape[3],(function(){return"Error in conv3d: depth of input ("+s.shape[4]+") must match input depth for filter "+u.shape[3]+"."})),E(function(e,t){return xs(e)||xs(t)}(n,a),(function(){return"Error in conv3D: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+a+"'"})),E("NDHWC"===o,(function(){return"Error in conv3d: got dataFormat of "+o+" but only NDHWC is currently supported."}));var l=Mr(s.shape,u.shape,n,a,r),f=Oe.runKernelFunc((function(e,t){var n=e.conv3d(s,u,l);return t([s,u]),n}),{x:s,$filter:u},(function(e,t){E(xs(a),(function(){return"Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '"+a+"'"}));var o=t[0],i=t[1];return{x:function(){return ws(o.shape,e,i,n,r)},$filter:function(){return function(e,t,n,r,o){var a=e;4===e.rank&&(a=e.as5D(1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]));var i=t;4===i.rank&&(i=t.as5D(1,t.shape[0],t.shape[1],t.shape[2],t.shape[3])),E(5===a.rank,(function(){return"Error in conv3dDerFilter: input must be rank 5, but got shape "+a.shape+"."})),E(5===i.rank,(function(){return"Error in conv3dDerFilter: dy must be rank 5, but got shape "+i.shape+"."})),E(5===n.length,(function(){return"Error in conv3dDerFilter: filterShape must be length 5, but got "+n+"."})),E(a.shape[4]===n[3],(function(){return"Error in conv3dDerFilter: depth of input "+a.shape[4]+") must match input depth in filter ("+n[3]+"."})),E(i.shape[4]===n[4],(function(){return"Error in conv3dDerFilter: depth of dy ("+i.shape[4]+") must match output depth for filter ("+n[4]+")."}));var u=Mr(a.shape,n,r,1,o);return Oe.runKernelFunc((function(e){return e.conv3dDerFilter(a,i,u)}),{x5D:a,dy5D:i})}(o,e,i.shape,n,r)}}}));return c?f.as4D(f.shape[1],f.shape[2],f.shape[3],f.shape[4]):f}}),_s=Zt({conv2dDerFilter_:function(e,t,n,r,o,a,i){void 0===a&&(a="NHWC");var u=e;3===e.rank&&(u=e.as4D(1,e.shape[0],e.shape[1],e.shape[2]));var s=t;3===s.rank&&(s=t.as4D(1,t.shape[0],t.shape[1],t.shape[2])),E(4===u.rank,(function(){return"Error in conv2dDerFilter: input must be rank 4, but got shape "+u.shape+"."})),E(4===s.rank,(function(){return"Error in conv2dDerFilter: dy must be rank 4, but got shape "+s.shape+"."})),E(4===n.length,(function(){return"Error in conv2dDerFilter: filterShape must be length 4, but got "+n+"."}));var c="NHWC"===a?u.shape[3]:u.shape[1],l="NHWC"===a?s.shape[3]:s.shape[1];E(c===n[2],(function(){return"Error in conv2dDerFilter: depth of input "+c+") must match input depth in filter ("+n[2]+"."})),E(l===n[3],(function(){return"Error in conv2dDerFilter: depth of dy ("+l+") must match output depth for filter ("+n[3]+")."})),null!=i&&E(T(o),(function(){return"Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+o+"."}));var f=Vr(a),d=Pr(u.shape,n,r,1,o,i,!1,f);return Oe.runKernelFunc((function(e){return e.conv2dDerFilter(u,s,d)}),{x4D:u,dy4D:s})}}),Ss=Zt({conv2dDerInput_:bs}),Rs=Zt({depthwiseConv2d_:function(e,t,n,r,o,a,i){void 0===o&&(o="NHWC"),void 0===a&&(a=[1,1]);var u=zt(e,"x","depthwiseConv2d"),s=zt(t,"filter","depthwiseConv2d"),c=u,l=!1;3===u.rank&&(l=!0,c=u.as4D(1,u.shape[0],u.shape[1],u.shape[2])),E(4===c.rank,(function(){return"Error in depthwiseConv2d: input must be rank 4, but got rank "+c.rank+"."})),E(4===s.rank,(function(){return"Error in depthwiseConv2d: filter must be rank 4, but got rank "+s.rank+"."})),E(c.shape[3]===s.shape[2],(function(){return"Error in depthwiseConv2d: number of input channels ("+c.shape[3]+") must match the inChannels dimension in filter "+s.shape[2]+"."})),null==a&&(a=[1,1]),E(jr(n,a),(function(){return"Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+a+"'"})),null!=i&&E(T(r),(function(){return"Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+r+"."}));var f=Pr(c.shape,s.shape,n,a,r,i,!0),d=[c,s],p=Oe.runKernelFunc((function(e,t){var n=e.depthwiseConv2D(c,s,f);return t([c,s]),n}),{x:c,filter:s},(function(e,t){E(zr(a),(function(){return"Error in gradient of depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '"+a+"'"}));var n=t[0],r=t[1];return{x:function(){return Ts(n.shape,e,r,f)},filter:function(){return Is(n,e,r.shape,f)}}}),"DepthwiseConv2dNative",f,d);return l?p.as3D(p.shape[1],p.shape[2],p.shape[3]):p}}),Ts=Zt({depthwiseConv2dDerInput_:function(e,t,n,r){var o=t,a=!1;3===t.rank&&(a=!0,o=t.as4D(1,t.shape[0],t.shape[1],t.shape[2]));var i=Oe.runKernelFunc((function(e){return e.depthwiseConv2DDerInput(o,n,r)}),{dy4D:o});return a?i.as3D(i.shape[1],i.shape[2],i.shape[3]):i}}),Is=Zt({depthwiseConv2dDerFilter_:function(e,t,n,r){var o=e;3===e.rank&&(o=e.as4D(1,e.shape[0],e.shape[1],e.shape[2]));var a=t;return 3===a.rank&&(a=t.as4D(1,t.shape[0],t.shape[1],t.shape[2])),Oe.runKernelFunc((function(e){return e.depthwiseConv2DDerFilter(o,a,r)}),{x4D:o,dy4D:a})}}),Os=Zt({separableConv2d_:function(e,t,n,r,o,a,i){void 0===a&&(a=[1,1]),void 0===i&&(i="NHWC");var u=zt(e,"x","separableConv2d"),s=zt(t,"depthwiseFilter","separableConv2d"),c=zt(n,"pointwiseFilter","separableConv2d"),l=u,f=!1;if(3===u.rank&&(f=!0,l=u.as4D(1,u.shape[0],u.shape[1],u.shape[2])),"NCHW"===i)throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");E(4===l.rank,(function(){return"Error in separableConv2d: input must be rank 4, but got rank "+l.rank+"."})),E(4===s.rank,(function(){return"Error in separableConv2d: depthwise filter must be rank 4, but got rank "+s.rank+"."})),E(4===c.rank,(function(){return"Error in separableConv2d: pointwise filter must be rank 4, but got rank "+s.rank+"."})),E(1===c.shape[0],(function(){return"Error in separableConv2d: the first dimension of pointwise filter must be 1, but got "+c.shape[0]+"."})),E(1===c.shape[1],(function(){return"Error in separableConv2d: the second dimension of pointwise filter must be 1, but got "+c.shape[1]+"."}));var d=s.shape[2],p=s.shape[3];E(c.shape[2]===d*p,(function(){return"Error in separableConv2d: the third dimension of pointwise filter must be "+d*p+", but got "+c.shape[2]+"."}));var h=Rs(l,s,r,o,i,a),v=Cs(h,c,1,"valid",i);return f?v.as3D(v.shape[1],v.shape[2],v.shape[3]):v}}),As=Zt({conv2dTranspose_:function(e,t,n,r,o,a){return bs(n,zt(e,"x","conv2dTranspose"),zt(t,"filter","conv2dTranspose"),r,o,"NHWC",a)}}),Ds=Zt({conv3dTranspose_:function(e,t,n,r,o){return ws(n,zt(e,"x","conv3dTranspose"),zt(t,"filter","conv3dTranspose"),r,o)}}),Ns=Zt({matMul_:function(e,t,n,r){var o;void 0===n&&(n=!1),void 0===r&&(r=!1);var a=zt(e,"a","matMul"),i=zt(t,"b","matMul");o=ke(a,i),a=o[0],i=o[1];var u=n?a.shape[a.rank-2]:a.shape[a.rank-1],s=r?i.shape[i.rank-1]:i.shape[i.rank-2],c=n?a.shape[a.rank-1]:a.shape[a.rank-2],l=r?i.shape[i.rank-2]:i.shape[i.rank-1],f=a.shape.slice(0,-2),d=i.shape.slice(0,-2),p=S(f),h=S(d);E(a.rank>=2&&i.rank>=2&&a.rank===i.rank,(function(){return"Error in matMul: inputs must have the same rank of at least 2, got ranks "+a.rank+" and "+i.rank+"."})),E(R(f,d),(function(){return"Error in matMul: outer dimensions ("+f+") and ("+d+") of Tensors with shapes "+a.shape+" and "+i.shape+" must match."})),E(u===s,(function(){return"Error in matMul: inner shapes ("+u+") and ("+s+") of Tensors with shapes "+a.shape+" and "+i.shape+" and transposeA="+n+" and transposeB="+r+" must match."}));var v=a.shape.slice(0,-2).concat([c,l]),m=n?a.as3D(p,u,c):a.as3D(p,c,u),g=r?i.as3D(h,l,s):i.as3D(h,s,l),y={transposeA:n,transposeB:r};return Oe.runKernelFunc((function(e,t){var o=e.batchMatMul(m,g,n,r);return t([m,g]),o}),{a:m,b:g},(function(e,t){var o=t,a=o[0],i=o[1];return n||r?!n&&r?{a:function(){return e.matMul(i,!1,!1)},b:function(){return e.matMul(a,!0,!1)}}:n&&!r?{a:function(){return i.matMul(e,!1,!0)},b:function(){return a.matMul(e,!1,!1)}}:{a:function(){return i.matMul(e,!0,!0)},b:function(){return e.matMul(a,!0,!0)}}:{a:function(){return e.matMul(i,!1,!0)},b:function(){return a.matMul(e,!0,!1)}}}),"BatchMatMul",y).reshape(v)}}),Ps=Zt({dot_:function(e,t){var n=zt(e,"t1","dot"),r=zt(t,"t2","dot");E(!(1!==n.rank&&2!==n.rank||1!==r.rank&&2!==r.rank),(function(){return"Error in dot: inputs must all be rank 1 or 2, but got ranks "+n.rank+" and "+r.rank+"."}));var o=1===n.rank?n.size:n.shape[1],a=1===r.rank?r.size:r.shape[0];return E(o===a,(function(){return"Error in dot: inner dimensions of inputs must match, but got "+o+" and "+a+"."})),1===n.rank&&1===r.rank?n.as2D(1,-1).matMul(r.as2D(-1,1)).asScalar():1===n.rank&&2===r.rank?n.as2D(1,-1).matMul(r.as2D(r.shape[0],r.shape[1])).as1D():2===n.rank&&1===r.rank?n.matMul(r.as2D(-1,1)).as1D():n.matMul(r.as2D(r.shape[0],r.shape[1]))}}),Ms=Zt({outerProduct_:function(e,t){var n=zt(e,"v1","outerProduct"),r=zt(t,"v2","outerProduct");return E(1===n.rank&&1===r.rank,(function(){return"Error in outerProduct: inputs must be rank 1, but got ranks "+n.rank+" and "+r.rank+"."})),n.as2D(-1,1).matMul(r.as2D(1,-1))}}),Fs=Zt({reverse_:function(e,t){var n=zt(e,"x","reverse");if(0===n.rank)return n.clone();var r=P(t,n.shape);return Oe.runKernelFunc((function(e){return e.reverse(n,r)}),{$x:n},(function(e){return{$x:function(){return e.reverse(r)}}})).reshapeAs(n)}}),Bs=Zt({reverse1d_:function(e){var t=zt(e,"x","reverse");return E(1===t.rank,(function(){return"Error in reverse1D: x must be rank 1 but got rank "+t.rank+"."})),Fs(t,0)}}),Ls=Zt({reverse2d_:function(e,t){var n=zt(e,"x","reverse");return E(2===n.rank,(function(){return"Error in reverse2D: x must be rank 2 but got rank "+n.rank+"."})),Fs(n,t)}}),Ws=Zt({reverse3d_:function(e,t){var n=zt(e,"x","reverse");return E(3===n.rank,(function(){return"Error in reverse3D: x must be rank 3 but got rank "+n.rank+"."})),Fs(n,t)}}),Us=Zt({reverse4d_:function(e,t){var n=zt(e,"x","reverse");return E(4===n.rank,(function(){return"Error in reverse4D: x must be rank 4 but got rank "+n.rank+"."})),Fs(n,t)}});function zs(e,t,n,r,o,a){var i=zt(e,"x","maxPool"),u=i,s=!1;3===i.rank&&(s=!0,u=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),null==r&&(r=[1,1]),E(4===u.rank,(function(){return"Error in maxPool: input must be rank 4 but got rank "+u.rank+"."})),E(jr(n,r),(function(){return"Error in maxPool: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+r+"'"})),null!=a&&E(T(o),(function(){return"Error in maxPool: pad must be an integer when using, dimRoundingMode "+a+" but got pad "+o+"."}));var c=Dr(u.shape,t,n,r,o,a);if(1===c.filterWidth&&1===c.filterHeight&&R(c.inShape,c.outShape))return i.clone();var l=[u],f=Oe.runKernelFunc((function(e,t){var n=e.maxPool(u,c);return t([u,n]),n}),{x:u},(function(e,a){var i=a[0],u=a[1];return{x:function(){return function(e,t,n,r,o,a,i,u){var s=zt(e,"dy","maxPoolBackprop"),c=zt(t,"input","maxPoolBackprop"),l=zt(n,"output","maxPoolBackprop");E(c.rank===s.rank,(function(){return"Rank of input ("+c.rank+") does not match rank of dy ("+s.rank+")"})),null==a&&(a=[1,1]),E(jr(o,a),(function(){return"Error in maxPoolBackProp: Either strides or dilations must be 1. Got strides "+o+" and dilations '"+a+"'"})),E(4===s.rank,(function(){return"Error in maxPoolBackprop: dy must be rank 4 but got rank "+s.rank+"."})),E(4===c.rank,(function(){return"Error in maxPoolBackprop: input must be rank 4 but got rank "+c.rank+"."}));var f=Dr(c.shape,r,o,a,i,void 0);return Oe.runKernelFunc((function(e){return e.maxPoolBackprop(s,c,l,f)}),{$dy:s,$input:c})}(e,i,u,t,n,r,o)}}}),"MaxPool",c,l);return s?f.as3D(f.shape[1],f.shape[2],f.shape[3]):f}function js(e,t,n,r,o,a){var i=zt(e,"x","avgPool","float32");null==r&&(r=[1,1]),E(jr(n,r),(function(){return"Error in avgPool: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+r+"'"}));var u=i,s=!1;3===i.rank&&(s=!0,u=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),E(4===u.rank,(function(){return"Error in avgPool: x must be rank 4 but got rank "+u.rank+"."})),null!=a&&E(T(o),(function(){return"Error in avgPool: pad must be an integer when using, dimRoundingMode "+a+" but got pad "+o+"."}));var c=Dr(u.shape,t,n,r,o,a);if(1===c.filterWidth&&1===c.filterHeight&&R(c.inShape,c.outShape))return i.clone();var l=Oe.runKernelFunc((function(e){return e.avgPool(u,c)}),{x:u},(function(e){return{x:function(){return function(e,t,n,r,o,a){var i=zt(e,"dy","avgPoolBackprop"),u=zt(t,"input","avgPoolBackprop");E(u.rank===i.rank,(function(){return"Rank of input ("+u.rank+") does not match rank of dy ("+i.rank+")"})),null==o&&(o=[1,1]),E(jr(r,o),(function(){return"Error in avgPoolBackprop: Either strides or dilations must be 1. Got strides "+r+" and dilations '"+o+"'"}));var s=u,c=i,l=!1;3===u.rank&&(l=!0,s=u.as4D(1,u.shape[0],u.shape[1],u.shape[2]),c=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),E(4===c.rank,(function(){return"Error in avgPoolBackprop: dy must be rank 4 but got rank "+c.rank+"."})),E(4===s.rank,(function(){return"Error in avgPoolBackprop: input must be rank 4 but got rank "+s.rank+"."}));var f=Dr(s.shape,n,r,o,a),d=Oe.runKernelFunc((function(e){return e.avgPoolBackprop(c,s,f)}),{dy4D:c,input4D:s});return l?d.as3D(d.shape[1],d.shape[2],d.shape[3]):d}(e,u,t,n,r,o)}}}),"AvgPool",c);return l=l.cast(i.dtype),s?l.as3D(l.shape[1],l.shape[2],l.shape[3]):l}var Vs=Zt({maxPool_:function(e,t,n,r,o){return zs(e,t,n,1,r,o)}}),Hs=Zt({avgPool_:function(e,t,n,r,o){return js(e,t,n,1,r,o)}}),Gs=Zt({pool_:function(e,t,n,r,o,a){null==o&&(o=[1,1]),null==a&&(a=1),0===r&&(r="valid");var i=zt(e,"x","maxPool"),u=i,s=!1;3===i.rank&&(s=!0,u=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),E(jr(a,o),(function(){return"Error in pool: Either strides or dilations must be 1. Got strides "+a+" and dilations '"+o+"'"}));var c,l=Dr(u.shape,t,a,o,r),f=[l.dilationHeight,l.dilationWidth];c="same"===r?function(e,t){var n=e.map((function(e,n){return e+(e-1)*(t[n]-1)})).map((function(e){return e-1})),r=n.map((function(e){return Math.floor(e/2)})),o=n.map((function(e,t){return e-r[t]}));return n.map((function(e,t){return[r[t],o[t]]}))}([l.filterHeight,l.filterWidth],f):[[0,0],[0,0]];var d=1===f[0]&&1===f[1],p=function(e,t,n){var r=n.map((function(e){return e[0]})),o=n.map((function(e){return e[1]})),a=e.concat(r,o),i=t.map((function(e,t){return(e-a[t]%e)%e})),u=o.map((function(e,t){return e+i[t]}));return[t.map((function(e,t){return[r[t],u[t]]})),t.map((function(e,t){return[0,i[t]]}))]}([l.inHeight,l.inWidth],f,c),h=p[0],v=p[1],m=d?r:"valid",g=d?u:nr(u,f,h),y=("avg"===n?function(){return js(g,t,a,1,m)}:function(){return zs(g,t,a,1,m)})(),b=d?y:Fn(y,f,v);return s?b.as3D(b.shape[1],b.shape[2],b.shape[3]):b}}),qs=Zt({maxPool3d_:function(e,t,n,r,o,a,i){void 0===a&&(a="NDHWC");var u=zt(e,"x","maxPool3d"),s=u,c=!1;4===u.rank&&(c=!0,s=u.as5D(1,u.shape[0],u.shape[1],u.shape[2],u.shape[3])),null==i&&(i=[1,1,1]),E(5===s.rank,(function(){return"Error in maxPool3d: x must be rank 5 but got rank "+s.rank+"."})),E("NDHWC"===a,(function(){return"Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of "+a})),E(jr(n,i),(function(){return"Error in maxPool3d: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+i+"'"})),null!=o&&E(T(r),(function(){return"Error in maxPool3d: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+r+"."}));var l=Nr(s.shape,t,n,i,r,o,a),f=Oe.runKernelFunc((function(e,t){var n=e.maxPool3d(s,l);return t([s,n]),n}),{x:s},(function(e,a){var u=a[0],s=a[1];return{x:function(){return function(e,t,n,r,o,a,i,u){var s=zt(e,"dy","maxPool3dBackprop"),c=zt(t,"input","maxPool3dBackprop"),l=zt(n,"output","maxPool3dBackprop"),f=s,d=c,p=l,h=!1;4===c.rank&&(h=!0,f=s.as5D(1,s.shape[0],s.shape[1],s.shape[2],s.shape[3]),d=c.as5D(1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]),p=l.as5D(1,l.shape[0],l.shape[1],l.shape[2],l.shape[3])),E(5===f.rank,(function(){return"Error in maxPool3dBackprop: dy must be rank 5 but got rank "+f.rank+"."})),E(5===d.rank,(function(){return"Error in maxPool3dBackprop: input must be rank 5 but got rank "+d.rank+"."})),E(5===p.rank,(function(){return"Error in maxPool3dBackprop: output must be rank 5 but got rank "+p.rank+"."})),null==a&&(a=[1,1,1]),E(jr(o,a),(function(){return"Error in maxPool3dBackprop: Either strides or dilations must be 1. Got strides "+o+" and dilations '"+a+"'"})),null!=u&&E(T(i),(function(){return"Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode "+u+" but got pad "+i+"."}));var v=Nr(d.shape,r,o,a,i,u),m=Oe.runKernelFunc((function(e){return e.maxPool3dBackprop(f,d,p,v)}),{dy5D:f,input5D:d});return h?m.as4D(m.shape[1],m.shape[2],m.shape[3],m.shape[4]):m}(e,u,s,t,n,i,r,o)}}}));return c?f.as4D(f.shape[1],f.shape[2],f.shape[3],f.shape[4]):f}}),Ks=Zt({avgPool3d_:function(e,t,n,r,o,a,i){void 0===a&&(a="NDHWC");var u=zt(e,"x","avgPool3d","float32"),s=u,c=!1;4===u.rank&&(c=!0,s=u.as5D(1,u.shape[0],u.shape[1],u.shape[2],u.shape[3])),null==i&&(i=[1,1,1]),E(5===s.rank,(function(){return"Error in avgPool3d: x must be rank 5 but got rank "+s.rank+"."})),E("NDHWC"===a,(function(){return"Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of "+a})),E(jr(n,i),(function(){return"Error in avgPool3d: Either strides or dilations must be 1. Got strides "+n+" and dilations '"+i+"'"})),null!=o&&E(T(r),(function(){return"Error in avgPool3d: pad must be an integer when using, dimRoundingMode "+o+" but got pad "+r+"."}));var l=Nr(s.shape,t,n,i,r,o,a),f=Oe.runKernelFunc((function(e){return e.avgPool3d(s,l)}),{x:s},(function(e){return{x:function(){return function(e,t,n,r,o,a,i){var u=zt(e,"dy","avgPool3dBackprop"),s=zt(t,"input","avgPool3dBackprop"),c=u,l=s,f=!1;4===s.rank&&(f=!0,c=u.as5D(1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]),l=s.as5D(1,s.shape[0],s.shape[1],s.shape[2],s.shape[3])),E(5===c.rank,(function(){return"Error in avgPool3dBackprop: dy must be rank 5 but got rank "+c.rank+"."})),E(5===l.rank,(function(){return"Error in avgPool3dBackprop: input must be rank 5 but got rank "+l.rank+"."})),null==o&&(o=[1,1,1]),E(jr(r,o),(function(){return"Error in avgPool3dBackprop: Either strides or dilations must be 1. Got strides "+r+" and dilations '"+o+"'"})),null!=i&&E(T(a),(function(){return"Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode "+i+" but got pad "+a+"."}));var d=Nr(l.shape,n,r,o,a,i),p=Oe.runKernelFunc((function(e){return e.avgPool3dBackprop(c,l,d)}),{dy5D:c,input5D:l});return f?p.as4D(p.shape[1],p.shape[2],p.shape[3],p.shape[4]):p}(e,s,t,n,i,r,o)}}}));return f=f.cast(s.dtype),c?f.as4D(f.shape[1],f.shape[2],f.shape[3],f.shape[4]):f}}),Xs=Zt({slice_:function(e,t,n){var r,o,a=zt(e,"x","slice");if(0===a.rank)throw new Error("Slicing scalar is not possible");(r="number"==typeof t?[t].concat(new Array(a.rank-1).fill(0)):t.length<a.rank?t.concat(new Array(a.rank-t.length).fill(0)):t.slice()).forEach((function(e){E(-1!==e,(function(){return"slice() does not support negative begin indexing."}))})),o=(o=null==n?new Array(a.rank).fill(-1):"number"==typeof n?[n].concat(new Array(a.rank-1).fill(-1)):n.length<a.rank?n.concat(new Array(a.rank-n.length).fill(-1)):n).map((function(e,t){return e>=0?e:(E(-1===e,(function(){return"Negative size values should be exactly -1 but got "+e+" for the slice() size at index "+t+"."})),a.shape[t]-r[t])})),mr(a,r,o);var i=a.shape,u={begin:r,size:o};return Oe.runKernelFunc((function(e){return e.slice(a,r,o)}),{x:a},(function(e){for(var t=[],n=0;n<e.rank;n++)t.push([r[n],i[n]-r[n]-o[n]]);return{x:function(){return e.pad(t)}}}),"Slice",u)}}),$s=Zt({slice1d_:function(e,t,n){var r=zt(e,"x","slice1d");return E(1===r.rank,(function(){return"slice1d expects a rank-1 tensor, but got a rank-"+r.rank+" tensor"})),Xs(r,[t],[n])}}),Ys=Zt({slice2d_:function(e,t,n){var r=zt(e,"x","slice2d");return E(2===r.rank,(function(){return"slice2d expects a rank-2 tensor, but got a rank-"+r.rank+" tensor"})),Xs(r,t,n)}}),Qs=Zt({slice3d_:function(e,t,n){var r=zt(e,"x","slice3d");return E(3===r.rank,(function(){return"slice3d expects a rank-3 tensor, but got a rank-"+r.rank+" tensor"})),Xs(r,t,n)}}),Js=Zt({slice4d_:function(e,t,n){var r=zt(e,"x","slice4d");return E(4===r.rank,(function(){return"slice4d expects a rank-4 tensor, but got a rank-"+r.rank+" tensor"})),Xs(r,t,n)}});function Zs(e,t,n,r,o){return t.rank<n.rank&&(t=t.reshape(qt(t.shape,r))),e.rank<n.rank&&(e=e.reshape(qt(e.shape,r))),{x:function(){var r=e.mul(n.equal(t).cast(e.dtype));return null==o?r:r.transpose(o)}}}var ec=Zt({all_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=zt(e,"x","all","bool"),o=P(t,r.shape),a=o,i=Xt(a,r.rank);null!=i&&(r=r.transpose(i),a=Yt(a.length,r.rank));var u=Oe.runKernelFunc((function(e){return e.all(r,a)}),{$x:r});if(n){var s=qt(u.shape,o);return u.reshape(s)}return u}}),tc=Zt({any_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=zt(e,"x","any","bool"),o=P(t,r.shape),a=o,i=Xt(a,r.rank);null!=i&&(r=r.transpose(i),a=Yt(a.length,r.rank));var u=Oe.runKernelFunc((function(e){return e.any(r,a)}),{$x:r});if(n){var s=qt(u.shape,o);return u.reshape(s)}return u}}),nc=Zt({argMax_:function(e,t){void 0===t&&(t=0);var n=zt(e,"x","argMax");null==t&&(t=0);var r=P(t,n.shape),o=Xt(r,n.rank);null!=o&&(n=n.transpose(o),r=Yt(r.length,n.rank));var a={axis:r[0]},i=[n];return Oe.runKernelFunc((function(e,t){var o=e.argMax(n,r[0]);return t([n]),o}),{x:n},(function(e,t){var n=t[0];return{x:function(){return mn(n)}}}),"ArgMax",a,i)}}),rc=Zt({argMin_:function(e,t){void 0===t&&(t=0);var n=zt(e,"x","argMin");null==t&&(t=0);var r=P(t,n.shape),o=Xt(r,n.rank);return null!=o&&(n=n.transpose(o),r=Yt(r.length,n.rank)),Oe.runKernelFunc((function(e,t){var o=e.argMin(n,r[0]);return t([n]),o}),{$x:n},(function(e,t){var n=t[0];return{$x:function(){return mn(n)}}}))}}),oc=Zt({logSumExp_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=zt(e,"x","logSumExp"),o=P(t,r.shape),a=r.max(o,!0),i=r.sub(a).exp().sum(o).log(),u=a.reshape(i.shape).add(i);if(n){var s=qt(u.shape,o);return u.reshape(s)}return u}}),ac=Zt({max_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=zt(e,"x","max"),o=r,a=P(t,r.shape),i=a,u=Xt(i,r.rank);null!=u&&(r=r.transpose(u),i=Yt(i.length,r.rank));var s=[r],c=Oe.runKernelFunc((function(e,t){var n=e.max(r,i);return t([o,n]),n}),{x:r},(function(e,t){return Zs(e,t[1],t[0],a,u)}),"Max",{axes:i},s,[!0]);if(n){var l=qt(c.shape,a);c=c.reshape(l)}return c}}),ic=Zt({mean_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=zt(e,"x","mean"),o=P(t,r.shape),a=S(Gt(r.shape,o)[1]);return Cr((function(e){var r=an(a);return{value:(r.dtype===e.dtype?e:e.cast(r.dtype)).div(r).sum(t,n),gradFunc:function(t){var n=e.shape.slice();return o.forEach((function(e){n[e]=1})),t.reshape(n).mul(fn(e.shape,"float32")).div(a)}}}))(r)}}),uc=Zt({min_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=zt(e,"x","min"),o=r,a=P(t,r.shape),i=a,u=Xt(i,r.rank);null!=u&&(r=r.transpose(u),i=Yt(i.length,r.rank));var s=[r],c=Oe.runKernelFunc((function(e,t){var n=e.min(r,i);return t([o,n]),n}),{x:r},(function(e,t){return Zs(e,t[1],t[0],a,u)}),"Min",{axes:i},s,[!0]);if(n){var l=qt(c.shape,a);c=c.reshape(l)}return c}}),sc=Zt({moments_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=P(t,(e=zt(e,"x","moments")).shape),o=e.mean(r,n),a=o.shape;n||(a=qt(o.shape,r));var i=e.toFloat().sub(o.reshape(a)).square();return{mean:o,variance:i.mean(r,n)}}}),cc=Zt({sum_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=zt(e,"x","sum");"bool"===r.dtype&&(r=r.toInt());var o=P(t,r.shape);return Cr((function(e){var t=Xt(o,e.rank),r=o,a=e;null!=t&&(a=e.transpose(t),r=Yt(r.length,e.rank));var i=Oe.runKernelFunc((function(e){return e.sum(a,r)}),{permutedX:a});if(n){var u=qt(i.shape,o);i=i.reshape(u)}return{value:i,gradFunc:function(t){var n=e.shape.slice();return o.forEach((function(e){n[e]=1})),t.reshape(n).mul(fn(e.shape,"float32"))}}}))(r)}}),lc=Zt({prod_:function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=!1);var r=zt(e,"x","prod");"bool"===r.dtype&&(r=r.toInt());var o=P(t,r.shape),a=Xt(o,r.rank),i=o,u=r;null!=a&&(u=r.transpose(a),i=Yt(i.length,r.rank));var s=Oe.runKernelFunc((function(e){return e.prod(u,i)}),{permutedX:u});if(n){var c=qt(s.shape,o);s=s.reshape(c)}return s}}),fc=Zt({elu_:function(e){var t=zt(e,"x","elu");return Oe.runKernelFunc((function(e,n){var r=e.elu(t);return n([r]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){return Oe.runKernelFunc((function(t){return t.eluDer(e,n)}),{dy:e,y:n})}}}))}}),dc=Zt({leakyRelu_:function(e,t){void 0===t&&(t=.2);var n=zt(e,"x","leakyRelu");return Vu(an(t).mul(n),n)}}),pc=Zt({prelu_:function(e,t){var n=zt(e,"x","prelu"),r=zt(t,"alpha","prelu");return Oe.runKernelFunc((function(e,t){var o=e.prelu(n,r);return t([n,r]),o}),{x:n,alpha:r},(function(e,t){var n=t[0],r=t[1],o=n.greater(0);return{x:function(){return Nu(o,e,e.mul(r))},alpha:function(){var t=Nu(o,mn(e),e.mul(n)),a=Or(r.shape,e.shape);return a.length>0&&(t=t.sum(a)),t.reshape(r.shape)}}}),"Prelu")}}),hc=Zt({relu_:function(e){var t=zt(e,"x","relu");return"bool"===t.dtype?t.toInt():Oe.runKernelFunc((function(e,n){var r=e.relu(t);return n([t]),r}),{x:t},(function(e,t){var n=t[0];return{x:function(){return e.mulStrict(n.step().toFloat())}}}),"Relu")}}),vc=Zt({relu6_:function(e){var t=zt(e,"x","relu6");return"bool"===t.dtype?t.toInt():Oe.runKernelFunc((function(e,n){var r=e.relu6(t);return n([t]),r}),{x:t},(function(e,t){var n=t[0],r=n.lessEqual(6).mul(n.step());return{x:function(){return e.mulStrict(r.toFloat())}}}),"Relu6")}}),mc=Zt({selu_:function(e){var t=zt(e,"x","selu");return Oe.runKernelFunc((function(e,n){var r=e.selu(t);return n([t]),r}),{$x:t},(function(e,t){var n=t[0];return{$x:function(){var t=n.greater(an(0)),r=an(1.7580993408473768),o=an(1.0507009873554805),a=e.mul(o),i=e.mul(r).mul(n.toFloat().exp());return Nu(t,a,i)}}}))}}),gc=Zt({transpose_:function(e,t){var n=zt(e,"x","transpose");if(null==t&&(t=n.shape.map((function(e,t){return t})).reverse()),E(n.rank===t.length,(function(){return"Error in transpose: rank of input "+n.rank+" must match length of perm "+t+"."})),t.forEach((function(e){E(e>=0&&e<n.rank,(function(){return"All entries in 'perm' must be between 0 and "+(n.rank-1)+" but got "+t}))})),n.rank<=1)return n.clone();var r={perm:t};return Oe.runKernelFunc((function(e){return e.transpose(n,t)}),{x:n},(function(e){var n=$t(t);return{x:function(){return e.transpose(n)}}}),"Transpose",r)}}),yc=Zt({localResponseNormalization_:function(e,t,n,r,o){void 0===t&&(t=5),void 0===n&&(n=1),void 0===r&&(r=1),void 0===o&&(o=.5);var a=zt(e,"x","localResponseNormalization");E(4===a.rank||3===a.rank,(function(){return"Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank "+a.rank+"."})),E(T(t),(function(){return"Error in localResponseNormalization: depthRadius must be an integer but got depthRadius "+t+"."}));var i=a,u=!1;3===a.rank&&(u=!0,i=a.as4D(1,a.shape[0],a.shape[1],a.shape[2]));var s=Oe.runKernelFunc((function(e,a){var u=e.localResponseNormalization4D(i,t,n,r,o);return a([i,u]),u}),{x4D:i},(function(e,a){var i=a[0],u=a[1];return{x4D:function(){return Oe.runKernelFunc((function(a){return a.LRNGrad(e,i,u,t,n,r,o)}),{})}}}));return u?s.as3D(s.shape[1],s.shape[2],s.shape[3]):s}}),bc=Zt({norm_:function(e,t,n,r){void 0===t&&(t="euclidean"),void 0===n&&(n=null),void 0===r&&(r=!1);var o=function e(t,n,r){if(void 0===r&&(r=null),0===t.rank)return t.abs();if(1!==t.rank&&null===r)return e(t.reshape([-1]),n,r);if(1===t.rank||"number"==typeof r||Array.isArray(r)&&1===r.length){if(1===n)return t.abs().sum(r);if(n===1/0)return t.abs().max(r);if(n===-1/0)return t.abs().min(r);if("euclidean"===n||2===n)return t.abs().pow(an(2,"int32")).sum(r).sqrt();throw new Error("Error in norm: invalid ord value: "+n)}if(Array.isArray(r)&&2===r.length){if(1===n)return t.abs().sum(r[0]).max(r[1]-1);if(n===1/0)return t.abs().sum(r[1]).max(r[0]);if(n===-1/0)return t.abs().sum(r[1]).min(r[0]);if("fro"===n||"euclidean"===n)return t.square().sum(r).sqrt();throw new Error("Error in norm: invalid ord value: "+n)}throw new Error("Error in norm: invalid axis: "+r)}(e=zt(e,"x","norm"),t,n),a=o.shape;if(r){var i=P(n,e.shape);a=qt(o.shape,i)}return o.reshape(a)}}),xc=Zt({basicLSTMCell_:function(e,t,n,r,o,a){var i=zt(e,"forgetBias","basicLSTMCell"),u=zt(t,"lstmKernel","basicLSTMCell"),s=zt(n,"lstmBias","basicLSTMCell"),c=zt(r,"data","basicLSTMCell"),l=zt(o,"c","basicLSTMCell"),f=zt(a,"h","basicLSTMCell"),d=c.concat(f,1).matMul(u).add(s),p=d.shape[0],h=d.shape[1]/4,v=[p,h],m=d.slice([0,0],v),g=d.slice([0,h],v),y=d.slice([0,2*h],v),b=d.slice([0,3*h],v),x=m.sigmoid().mulStrict(g.tanh()).addStrict(l.mulStrict(i.add(y).sigmoid())),w=x.tanh().mulStrict(b.sigmoid());return[x,w]}}),wc=Zt({multiRNNCell_:function(e,t,n,r){for(var o=zt(t,"data","multiRNNCell"),a=jt(n,"c","multiRNNCell"),i=jt(r,"h","multiRNNCell"),u=o,s=[],c=0;c<e.length;c++){var l=e[c](u,a[c],i[c]);s.push(l[0]),s.push(l[1]),u=l[1]}var f=[],d=[];for(c=0;c<s.length;c+=2)f.push(s[c]),d.push(s[c+1]);return[f,d]}}),Ec=Zt({movingAverage_:function(e,t,n,r,o){void 0===o&&(o=!0);var a=zt(e,"v","movingAverage"),i=zt(t,"x","movingAverage"),u=zt(n,"decay","movingAverage");_e(a,i),E(R(a.shape,i.shape),(function(){return"Shape mismatch in v and x"}));var s=an(1),c=s.sub(u),l=i.sub(a).mul(c);if(o){E(null!=r,(function(){return"When using zeroDebias: true, step is required."}));var f=zt(r,"step","movingAverage");l=l.div(s.sub(Qu(u,f)))}return a.add(l)}}),Cc=Zt({stridedSlice_:function(e,t,n,r,o,a,i,u,s){if(void 0===o&&(o=0),void 0===a&&(a=0),void 0===i&&(i=0),void 0===u&&(u=0),void 0===s&&(s=0),null==r&&(r=new Array(t.length)),0!==i)throw new Error("ellipsis mask is not yet supported");var c=zt(e,"x","stridedSlice"),l=gr(u),f=c.shape.slice();l.forEach((function(e){t[e]=0,n[e]=1,f.splice(e,0,1)})),c=c.reshape(f);for(var d=0;d<c.rank;d++)t[d]=br(o,t,r,c.shape,d),n[d]=xr(a,n,r,c.shape,d),r[d]=r[d]||1;var p=gr(s);p.forEach((function(e){n[e]=t[e]+1,r[e]=1}));var h=yr(t,n,r),v=h.filter((function(e,t){return-1===p.indexOf(t)}));return r.every((function(e){return 1===e}))?Xs(c,t,h).reshape(v):Oe.runKernelFunc((function(e){return e.stridedSlice(c,t,n,r)}),{$x:c}).reshape(v)}}),kc=Zt({topk_:function(e,t,n){void 0===t&&(t=1),void 0===n&&(n=!0);var r=zt(e,"x","topk");if(0===r.rank)throw new Error("topk() expects the input to be of rank 1 or higher");var o=r.shape[r.shape.length-1];if(t>o)throw new Error("'k' passed to topk() must be <= the last dimension ("+o+") but got "+t);var a=Oe.runKernelFunc((function(e){return e.topk(r,t,n)}),{$x:r});return{values:a[0],indices:a[1]}}}),_c=Zt({scatterND_:function(e,t,n){var r=zt(e,"indices","scatterND","int32"),o=zt(t,"updates","scatterND");return function(e,t,n){if(t.rank<1)throw new Error("tf.scatterND() expects the indices to be rank 1 or higher, but the rank was "+t.rank+".");if(e.rank<1)throw new Error("tf.scatterND() expects the updates to be rank 1 or higher, but the rank was "+e.rank+".");if("int32"!==t.dtype)throw new Error("The dtype of 'indices' should be int32, but got dtype: "+t.dtype);if(n.length<1)throw new Error("Output rank must be greater or equal to 1, but got shape: "+n);if(0===n.length){if(0===t.size)throw new Error("Indices specified for empty output. indices shape: "+t.shape);if(0===e.size)throw new Error("Updates specified for empty output. updates shape: "+e.shape)}!function(e,t,n){var r=t.rank>1?t.shape[t.rank-1]:1,o=t.rank>1?t.rank-1:1,a="Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: "+n.shape+", indices.shape: "+t.shape+", shape: "+e+", sliceDim: "+r+", and batchDim: "+o+".";if(n.rank<o)throw new Error(a+" update.rank < "+o+". ");if(e.length<r+(n.rank-o))throw new Error(a+" Output shape length < "+(r+(n.rank-o)));if(n.rank!==o+e.length-r)throw new Error(a+" update.rank != "+(o+e.length-r));for(var i=0;i<o;++i)if(n.shape[i]!==t.shape[i])throw new Error(a+" updates.shape["+i+"] ("+n.shape[i]+") != indices.shape["+i+"] ("+t.shape[i]+").");for(i=0;i<n.rank-o;++i)if(n.shape[i+o]!==e[i+r])throw new Error(a+" updates.shape["+(i+o)+"] ("+n.shape[i+o]+") != shape["+(i+o)+"] ("+e[i+o]+")")}(n,t,e)}(o,r,n),Oe.runKernelFunc((function(e){return e.scatterND(r,o,n)}),{$indices:r,$updates:o})}}),Sc=Zt({fft_:function(e){E("complex64"===e.dtype,(function(){return"The dtype for tf.spectral.fft() must be complex64 but got "+e.dtype+"."}));var t=e.shape[e.shape.length-1],n=e.size/t,r=e.as2D(n,t);return Oe.runKernelFunc((function(e){return e.fft(r)}),{input:e}).reshape(e.shape)}}),Rc=Zt({ifft_:function(e){E("complex64"===e.dtype,(function(){return"The dtype for tf.spectral.ifft() must be complex64 but got "+e.dtype+"."}));var t=e.shape[e.shape.length-1],n=e.size/t,r=e.as2D(n,t);return Oe.runKernelFunc((function(e){return e.ifft(r)}),{input:e}).reshape(e.shape)}}),Tc=Zt({rfft_:function(e,t){E("float32"===e.dtype,(function(){return"The dtype for rfft() must be real value but got "+e.dtype}));var n,r=e.shape[e.shape.length-1],o=e.size/r;if(null!=t&&t<r){var a=e.shape.map((function(e){return 0})),i=e.shape.map((function(e){return e}));i[e.shape.length-1]=t,n=e.slice(a,i),r=t}else if(null!=t&&t>r){var u=e.shape.map((function(e){return e}));u[e.shape.length-1]=t-r,n=e.concat(dn(u),e.shape.length-1),r=t}else n=e;var s=n.zerosLike(),c=en(n,s).as2D(o,r),l=Sc(c),f=Math.floor(r/2)+1,d=tn(l),p=nn(l),h=d.split([f,r-f],d.shape.length-1),v=p.split([f,r-f],p.shape.length-1),m=n.shape.slice();return m[n.shape.length-1]=f,en(h[0],v[0]).reshape(m)}}),Ic=Zt({irfft_:function(e){var t=e.shape[e.shape.length-1],n=e.size/t;if(t<=2){var r=e.as2D(n,t),o=Rc(r);return tn(o)}var a=[n,2*(t-1)],i=tn(e).as2D(n,t),u=nn(e).as2D(n,t),s=i.slice([0,1],[n,t-2]).reverse(1),c=u.slice([0,1],[n,t-2]).reverse(1).mul(an(-1)),l=i.concat(s,1),f=u.concat(c,1);return r=en(l,f).as2D(a[0],a[1]),o=Rc(r),tn(o)}}),Oc=Object.freeze({fft:Sc,ifft:Rc,rfft:Tc,irfft:Ic}),Ac=Zt({sparseToDense_:function(e,t,n,r){void 0===r&&(r=0);var o=zt(e,"sparseIndices","sparseToDense","int32"),a=zt(t,"sparseValues","sparseToDense"),i=zt(r,"defaultValue","sparseToDense",a.dtype);return function(e,t,n,r){if("int32"!==e.dtype)throw new Error("tf.sparseToDense() expects the indices to be int32 type, but the dtype was "+e.dtype+".");if(e.rank>2)throw new Error("sparseIndices should be a scalar, vector, or matrix, but got shape "+e.shape+".");var o=e.rank>0?e.shape[0]:1,a=e.rank>1?e.shape[1]:1;if(n.length!==a)throw new Error("outputShape has incorrect number of elements:, "+n.length+", should be: "+a+".");var i=t.size;if(0!==t.rank&&(1!==t.rank||i!==o))throw new Error("sparseValues has incorrect shape "+t.shape+", should be [] or ["+o+"]");if(t.dtype!==r.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}(o,a,n,i),Oe.runKernelFunc((function(e){return e.sparseToDense(o,a,n,i)}),{$sparseIndices:o,$sparseValues:a,$defaultValue:i})}}),Dc=Zt({gatherND_:function(e,t){var n=zt(t,"indices","gatherND","int32"),r=zt(e,"x","gatherND");return Oe.runKernelFunc((function(e){return e.gatherND(r,n)}),{$x:r,$indices:n})}}),Nc=Zt({diag_:function(e){var t=zt(e,"x","diag").flatten(),n=e.shape.concat(e.shape);return Oe.runKernelFunc((function(e){return e.diag(t)}),{$x:t}).reshape(n)}}),Pc=Zt({dropout_:function(e,t,n,r){var o=zt(e,"x","dropout");if(E("float32"===o.dtype,(function(){return"x has to be a floating point tensor since it's going to be scaled, but got a "+o.dtype+" tensor instead."})),E(t>=0&&t<1,(function(){return"rate must be a float in the range [0, 1), but got "+t+"."})),0===t)return e instanceof he?o.clone():o;var a=function(e,t){if(null==t)return e.shape.slice();if(R(e.shape,t))return t;if(e.shape.length===t.length){for(var n=[],r=0;r<e.shape.length;r++)null==t[r]&&null!=e.shape[r]?n.push(e.shape[r]):n.push(t[r]);return n}return t}(o,n),i=1-t,u=er(a,0,1,"float32",r).add(i).floor().div(i);return o.mul(u)}});function Mc(e,t,n){for(var r=1-e%2,o=new Float32Array(e),a=0;a<e;++a){var i=2*Math.PI*a/(e+r-1);o[a]=t-n*Math.cos(i)}return un(o,"float32")}var Fc,Bc=Zt({hannWindow_:function(e){return Mc(e,.5,.5)}}),Lc=Zt({hammingWindow_:function(e){return Mc(e,.54,.46)}}),Wc=Zt({frame_:function(e,t,n,r,o){void 0===r&&(r=!1),void 0===o&&(o=0);for(var a=0,i=[];a+t<=e.size;)i.push(Xs(e,a,t)),a+=n;if(r)for(;a<e.size;){var u=a+t-e.size,s=gn([Xs(e,a,t-u),pn([u],o)]);i.push(s),a+=n}return 0===i.length?sn([],[0,t]):gn(i).as2D(i.length,t)}}),Uc=Zt({stft_:function(e,t,n,r,o){var a;void 0===o&&(o=Bc),null==r&&(a=t,r=Math.floor(Math.pow(2,Math.ceil(Math.log(a)/Math.log(2)))));for(var i=Wc(e,t,n),u=$u(i,o(t)),s=[],c=0;c<i.shape[0];c++)s.push(Tc(u.slice([c,0],[1,t]),r));return gn(s)}}),zc=Object.freeze({hannWindow:Bc,hammingWindow:Lc,frame:Wc,stft:Uc});!function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"}(Fc||(Fc={}));var jc=Zt({absoluteDifference_:function(e,t,n,r){void 0===r&&(r=Fc.SUM_BY_NONZERO_WEIGHTS);var o=zt(e,"labels","absoluteDifference"),a=zt(t,"predictions","absoluteDifference"),i=null;null!=n&&(i=zt(n,"weights","absoluteDifference")),C(o.shape,a.shape,"Error in absoluteDifference: ");var u=o.sub(a).abs();return Vc(u,i,r)}}),Vc=Zt({computeWeightedLoss_:function(e,t,n){void 0===n&&(n=Fc.SUM_BY_NONZERO_WEIGHTS);var r=zt(e,"losses","computeWeightedLoss"),o=null;null!=t&&(o=zt(t,"weights","computeWeightedLoss"));var a=null==o?r:r.mul(o);if(n===Fc.NONE)return a;if(n===Fc.SUM)return a.sum();if(n===Fc.MEAN){if(null==o)return a.mean();var i=r.size/o.size,u=a.sum().div(o.sum());return i>1?u.div(an(i)):u}if(n===Fc.SUM_BY_NONZERO_WEIGHTS){if(null==o)return a.sum().div(an(r.size));var s=o.mul(fn(r.shape)).notEqual(an(0)).sum().toFloat();return a.sum().div(s)}throw Error("Unknown reduction: "+n)}}),Hc=Zt({cosineDistance_:function(e,t,n,r,o){void 0===o&&(o=Fc.SUM_BY_NONZERO_WEIGHTS);var a=zt(e,"labels","cosineDistance"),i=zt(t,"predictions","cosineDistance"),u=null;null!=r&&(u=zt(r,"weights","cosineDistance")),C(a.shape,i.shape,"Error in cosineDistance: ");var s=an(1).sub(a.mul(i).sum(n,!0));return Vc(s,u,o)}}),Gc=Zt({hingeLoss_:function(e,t,n,r){void 0===r&&(r=Fc.SUM_BY_NONZERO_WEIGHTS);var o=zt(e,"labels","hingeLoss"),a=zt(t,"predictions","hingeLoss"),i=null;null!=n&&(i=zt(n,"weights","hingeLoss")),C(o.shape,a.shape,"Error in hingeLoss: ");var u=an(1);o=an(2).mul(o).sub(u);var s=u.sub(o.mul(a)).relu();return Vc(s,i,r)}}),qc=Zt({huberLoss_:function(e,t,n,r,o){void 0===r&&(r=1),void 0===o&&(o=Fc.SUM_BY_NONZERO_WEIGHTS);var a=zt(e,"labels","huberLoss"),i=zt(t,"predictions","huberLoss"),u=null;null!=n&&(u=zt(n,"weights","huberLoss")),C(a.shape,i.shape,"Error in huberLoss: ");var s=an(r),c=i.sub(a).abs(),l=Gu(c,s),f=c.sub(l),d=an(.5).mul(l.square()).add(s.mul(f));return Vc(d,u,o)}}),Kc=Zt({logLoss_:function(e,t,n,r,o){void 0===r&&(r=1e-7),void 0===o&&(o=Fc.SUM_BY_NONZERO_WEIGHTS);var a=zt(e,"labels","logLoss"),i=zt(t,"predictions","logLoss"),u=null;null!=n&&(u=zt(n,"weights","logLoss")),C(a.shape,i.shape,"Error in logLoss: ");var s=an(1),c=an(r),l=a.mul(i.add(c).log()).neg().sub(s.sub(a).mul(s.sub(i).add(c).log()));return Vc(l,u,o)}}),Xc=Zt({meanSquaredError_:function(e,t,n,r){void 0===r&&(r=Fc.SUM_BY_NONZERO_WEIGHTS);var o=zt(e,"labels","meanSquaredError"),a=zt(t,"predictions","meanSquaredError"),i=null;null!=n&&(i=zt(n,"weights","meanSquaredError")),C(o.shape,a.shape,"Error in meanSquaredError: ");var u=o.squaredDifference(a);return Vc(u,i,r)}}),$c=Zt({sigmoidCrossEntropy_:function(e,t,n,r,o){void 0===r&&(r=0),void 0===o&&(o=Fc.SUM_BY_NONZERO_WEIGHTS);var a=zt(e,"multiClassLabels","sigmoidCrossEntropy"),i=zt(t,"logits","sigmoidCrossEntropy"),u=null;if(null!=n&&(u=zt(n,"weights","sigmoidCrossEntropy")),C(a.shape,i.shape,"Error in sigmoidCrossEntropy: "),r>0){var s=an(r),c=an(1),l=an(.5);a=a.mul(c.sub(s)).add(l.mul(s))}var f=function(e,t){var n=zt(e,"labels","sigmoidCrossEntropyWithLogits"),r=zt(t,"logits","sigmoidCrossEntropyWithLogits");C(n.shape,r.shape,"Error in sigmoidCrossEntropyWithLogits: ");var o=r.relu(),a=r.mul(n),i=r.abs().neg().exp().log1p();return o.sub(a).add(i)}(a,i);return Vc(f,u,o)}}),Yc=Zt({softmaxCrossEntropy_:function(e,t,n,r,o){void 0===r&&(r=0),void 0===o&&(o=Fc.SUM_BY_NONZERO_WEIGHTS);var a=zt(e,"onehotLabels","softmaxCrossEntropy"),i=zt(t,"logits","softmaxCrossEntropy"),u=null;if(null!=n&&(u=zt(n,"weights","softmaxCrossEntropy")),C(a.shape,i.shape,"Error in softmaxCrossEntropy: "),r>0){var s=an(r),c=an(1),l=an(a.shape[1]);a=a.mul(c.sub(s)).add(s.div(l))}var f=function(e,t,n){if(void 0===n&&(n=-1),-1===n&&(n=t.rank-1),n!==t.rank-1)throw Error("Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank "+t.rank+" and dim was "+n);return Cr((function(e,t,r){var o=t.logSumExp([n],!0),a=t.toFloat().sub(o);return r([e,a]),{value:a.mul(e).neg().sum([n]),gradFunc:function(e,t){var r=t[0],o=t[1],a=qt(e.shape,[n]);return[e.reshape(a).mul(r.toFloat().sub(o.exp())),e.reshape(a).mul(o.exp().sub(r.toFloat()))]}}}))(e,t)}(a,i);return Vc(f,u,o)}}),Qc=Object.freeze({get Reduction(){return Fc},absoluteDifference:jc,computeWeightedLoss:Vc,cosineDistance:Hc,hingeLoss:Gc,huberLoss:qc,logLoss:Kc,meanSquaredError:Xc,sigmoidCrossEntropy:$c,softmaxCrossEntropy:Yc});function Jc(e,t){return void 0===t&&(t=!1),Oe.tidy((function(){if(2!==e.shape.length)throw new Error("qr2d() requires a 2D Tensor, but got a "+e.shape.length+"D Tensor.");for(var n=e.shape[0],r=e.shape[1],o=Vn(n),a=e.clone(),i=sn([[1]],[1,1]),u=i.clone(),s=n>=r?r:n,c=function(e){var t,s=a,c=u,l=o;t=Oe.tidy((function(){var t=a.slice([e,e],[n-e,1]),s=t.norm(),c=a.slice([e,e],[1,1]),l=sn([[-1]]).where(c.greater(0),sn([[1]])),f=c.sub(l.mul(s)),d=t.div(f);u=1===d.shape[0]?i.clone():i.concat(d.slice([1,0],[d.shape[0]-1,d.shape[1]]),0);var p=l.matMul(f).div(s).neg(),h=a.slice([e,0],[n-e,r]),v=p.mul(u);if(0===e)a=h.sub(v.matMul(u.transpose().matMul(h)));else{var m=h.sub(v.matMul(u.transpose().matMul(h)));a=a.slice([0,0],[e,r]).concat(m,0)}var g=o.slice([0,e],[n,o.shape[1]-e]);if(0===e)o=g.sub(g.matMul(u).matMul(v.transpose()));else{var y=g.sub(g.matMul(u).matMul(v.transpose()));o=o.slice([0,0],[n,e]).concat(y,1)}return[u,a,o]})),u=t[0],a=t[1],o=t[2],Bt([s,c,l])},l=0;l<s;++l)c(l);return!t&&n>r&&(o=o.slice([0,0],[n,r]),a=a.slice([0,0],[r,r])),[o,a]}))}var Zc=Zt({bandPart_:function(e,t,n){if(t%1!=0)throw new Error("bandPart(): numLower must be an integer, got "+t+".");if(n%1!=0)throw new Error("bandPart(): numUpper must be an integer, got "+n+".");var r=zt(e,"a","bandPart");if(r.rank<2)throw new Error("bandPart(): Rank must be at least 2, got "+r.rank+".");var o=r.shape,a=r.shape.slice(-2),i=a[0],u=a[1];if(!(t<=i))throw new Error("bandPart(): numLower ("+t+") must not be greater than the number of rows ("+i+").");if(!(n<=u))throw new Error("bandPart(): numUpper ("+n+") must not be greater than the number of columns ("+u+").");t<0&&(t=i),n<0&&(n=u);var s=hn(0,i,1,"int32").reshape([-1,1]),c=hn(0,u,1,"int32"),l=ts(s,c),f=Iu(l.lessEqual(an(+t,"int32")),l.greaterEqual(an(-n,"int32"))),d=dn([i,u],r.dtype);return or(ur(r.reshape([-1,i,u])).map((function(e){return Nu(f,e,d)}))).reshape(o)}}),el=Zt({gramSchmidt_:function(e){var t;if(Array.isArray(e)){t=!1,E(null!=e&&e.length>0,(function(){return"Gram-Schmidt process: input must not be null, undefined, or empty"}));for(var n=e[0].shape[0],r=function(t){E(e[t].shape[0]===n,(function(){return"Gram-Schmidt: Non-unique lengths found in the input vectors: ("+e[t].shape[0]+" vs. "+n+")"}))},o=1;o<e.length;++o)r(o)}else t=!0,e=En(e,e.shape[0],0).map((function(e){return rr(e,[0])}));E(e.length<=e[0].shape[0],(function(){return"Gram-Schmidt: Number of vectors ("+e.length+") exceeds number of dimensions ("+e[0].shape[0]+")."}));var a=[],i=e,u=function(e){a.push(Oe.tidy((function(){var t=i[e];if(e>0)for(var n=0;n<e;++n){var r=cc(a[n].mulStrict(t)).mul(a[n]);t=t.sub(r)}return t.div(bc(t,"euclidean"))})))};for(o=0;o<e.length;++o)u(o);return t?or(a,0):a}}),tl=Zt({qr_:function(e,t){if(void 0===t&&(t=!1),e.rank<2)throw new Error("qr() requires input tensor to have a rank >= 2, but got rank "+e.rank);if(2===e.rank)return Jc(e,t);var n=e.shape.slice(0,e.shape.length-2).reduce((function(e,t){return e*t})),r=ur(e.reshape([n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),o=[],a=[];return r.forEach((function(e){var n=Jc(e,t),r=n[0],i=n[1];o.push(r),a.push(i)})),[or(o,0).reshape(e.shape),or(a,0).reshape(e.shape)]}}),nl=Object.freeze({bandPart:Zc,gramSchmidt:el,qr:tl});function rl(e,t,n,r,o){null==r&&(r=.5),null==o&&(o=Number.NEGATIVE_INFINITY);var a=e.shape[0];return n=Math.min(n,a),E(0<=r&&r<=1,(function(){return"iouThreshold must be in [0, 1], but was '"+r+"'"})),E(2===e.rank,(function(){return"boxes must be a 2D tensor, but was of rank '"+e.rank+"'"})),E(4===e.shape[1],(function(){return"boxes must have 4 columns, but 2nd dimension was "+e.shape[1]})),E(1===t.rank,(function(){return"scores must be a 1D tensor"})),E(t.shape[0]===a,(function(){return"scores has incompatible shape with boxes. Expected "+a+", but was "+t.shape[0]})),{maxOutputSize:n,iouThreshold:r,scoreThreshold:o}}var ol=Zt({resizeBilinear_:function(e,t,n){void 0===n&&(n=!1);var r=zt(e,"images","resizeBilinear");E(3===r.rank||4===r.rank,(function(){return"Error in resizeBilinear: x must be rank 3 or 4, but got rank "+r.rank+"."})),E(2===t.length,(function(){return"Error in resizeBilinear: new shape must 2D, but got shape "+t+"."}));var o=r,a=!1;3===r.rank&&(a=!0,o=r.as4D(1,r.shape[0],r.shape[1],r.shape[2]));var i=t[0],u=t[1],s=Oe.runKernelFunc((function(e,t){return t([o]),e.resizeBilinear(o,i,u,n)}),{x:o},(function(e,t){return{x:function(){return Oe.runKernelFunc((function(r){return r.resizeBilinearBackprop(e,t[0],n)}),{})}}}),"ResizeBilinear",{alignCorners:n,newHeight:i,newWidth:u});return a?s.as3D(s.shape[1],s.shape[2],s.shape[3]):s}}),al=Zt({resizeNearestNeighbor_:function(e,t,n){void 0===n&&(n=!1);var r=zt(e,"images","resizeNearestNeighbor");E(3===r.rank||4===r.rank,(function(){return"Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank "+r.rank+"."})),E(2===t.length,(function(){return"Error in resizeNearestNeighbor: new shape must 2D, but got shape "+t+"."})),E("float32"===r.dtype||"int32"===r.dtype,(function(){return"`images` must have `int32` or `float32` as dtype"}));var o=r,a=!1;3===r.rank&&(a=!0,o=r.as4D(1,r.shape[0],r.shape[1],r.shape[2]));var i=t[0],u=t[1],s=Oe.runKernelFunc((function(e,t){return t([o]),e.resizeNearestNeighbor(o,i,u,n)}),{batchImages:o},(function(e,t){return{batchImages:function(){return Oe.runKernelFunc((function(r){return r.resizeNearestNeighborBackprop(e,t[0],n)}),{})}}}));return a?s.as3D(s.shape[1],s.shape[2],s.shape[3]):s}}),il=Zt({nonMaxSuppression_:function(e,t,n,r,o){void 0===r&&(r=.5),void 0===o&&(o=Number.NEGATIVE_INFINITY);var a=zt(e,"boxes","nonMaxSuppression"),i=zt(t,"scores","nonMaxSuppression"),u=rl(a,i,n,r,o);n=u.maxOutputSize,r=u.iouThreshold,o=u.scoreThreshold;var s={maxOutputSize:n,iouThreshold:r,scoreThreshold:o};return Oe.runKernelFunc((function(e){return e.nonMaxSuppression(a,i,n,r,o)}),{boxes:a,scores:i},null,"NonMaxSuppressionV3",s)}}),ul=Zt({cropAndResize_:function(e,t,n,r,o,a){var i=zt(e,"image","cropAndResize"),u=zt(t,"boxes","cropAndResize","float32"),s=zt(n,"boxInd","cropAndResize","int32");o=o||"bilinear",a=a||0;var c=u.shape[0];return E(4===i.rank,(function(){return"Error in cropAndResize: image must be rank 4,but got rank "+i.rank+"."})),E(2===u.rank&&4===u.shape[1],(function(){return"Error in cropAndResize: boxes must be have size ["+c+",4] but had shape "+u.shape+"."})),E(1===s.rank&&s.shape[0]===c,(function(){return"Error in cropAndResize: boxInd must be have size ["+c+"] but had shape "+u.shape+"."})),E(2===r.length,(function(){return"Error in cropAndResize: cropSize must be of length 2, but got length "+r.length+"."})),E(r[0]>=1&&r[1]>=1,(function(){return"cropSize must be atleast [1,1], but was "+r})),E("bilinear"===o||"nearest"===o,(function(){return"method must be bilinear or nearest, but was "+o})),Oe.runKernelFunc((function(e,t){return e.cropAndResize(i,u,s,r,o,a)}),{images:i,boxes:u,boxInd:s},null,"CropAndResize",{method:o,extrapolationValue:a,cropSize:r})}}),sl=Object.freeze({resizeBilinear:ol,resizeNearestNeighbor:al,nonMaxSuppression:il,nonMaxSuppressionAsync:function(e,t,n,r,o){return void 0===r&&(r=.5),void 0===o&&(o=Number.NEGATIVE_INFINITY),s(this,void 0,void 0,(function(){var a,i,u,s,l,f,d;return c(this,(function(c){switch(c.label){case 0:return a=zt(e,"boxes","nonMaxSuppressionAsync"),i=zt(t,"scores","nonMaxSuppressionAsync"),u=rl(a,i,n,r,o),n=u.maxOutputSize,r=u.iouThreshold,o=u.scoreThreshold,[4,Promise.all([a.data(),i.data()])];case 1:return s=c.sent(),l=s[0],f=s[1],d=Qr(l,f,n,r,o),a!==e&&a.dispose(),i!==t&&i.dispose(),[2,d]}}))}))},cropAndResize:ul}),cl=function(e,t){return!(e>0)||"linear"===t},ll=function(e,t,n){if(null==n||"linear"===n)return e;if("relu"===n)return e.mul(t.step());throw new Error("Gradient for activation "+n+" has not been implemented yet.")},fl=function(e,t){var n=t,r=Or(e.shape,t.shape);return r.length>0&&(n=n.sum(r)),n.reshape(e.shape)},dl=function(e,t,n){if("linear"===t)return e;if("relu"===t)return hc(e);if("elu"===t)return fc(e);if("relu6"===t)return vc(e);if("prelu"===t)return pc(e,n);throw new Error("Unknown fused activation "+t+".")},pl=Zt({fusedMatMul_:function(e){var t,n=e.a,r=e.b,o=e.transposeA,a=void 0!==o&&o,i=e.transposeB,u=void 0!==i&&i,s=e.bias,c=e.activation,l=void 0===c?"linear":c,f=e.preluActivationWeights;if(!1===cl(Oe.state.gradientDepth,l)){var d=Ns(n,r,a,u);return null!=s&&(d=Mu(d,s)),dl(d,l,f)}var p=zt(n,"a","fused matMul"),h=zt(r,"b","fused matMul");t=ke(p,h),p=t[0],h=t[1];var v=a?p.shape[p.rank-2]:p.shape[p.rank-1],m=u?h.shape[h.rank-1]:h.shape[h.rank-2],g=a?p.shape[p.rank-1]:p.shape[p.rank-2],y=u?h.shape[h.rank-2]:h.shape[h.rank-1],b=p.shape.slice(0,-2),x=h.shape.slice(0,-2),w=S(b),C=S(x);E(p.rank>=2&&h.rank>=2&&p.rank===h.rank,(function(){return"Error in fused matMul: inputs must have the same rank of at least 2, got ranks "+p.rank+" and "+h.rank+"."})),E(R(b,x),(function(){return"Error in fused matMul: outer dimensions ("+b+") and ("+x+") of Tensors with shapes "+p.shape+" and "+h.shape+" must match."})),E(v===m,(function(){return"Error in fused matMul: inner shapes ("+v+") and ("+m+") of Tensors with shapes "+p.shape+" and "+h.shape+" and transposeA="+a+" and transposeB="+u+" must match."}));var k,_,T=p.shape.slice(0,-2).concat([g,y]),I=a?p.as3D(w,v,g):p.as3D(w,g,v),O=u?h.as3D(C,y,m):h.as3D(C,m,y);null!=s&&Ar(T,(k=ke(k=zt(s,"bias","fused matMul"),p)[0]).shape),null!=f&&(_=zt(f,"prelu weights","fused matMul"));var A={$a:I,$b:O};return null!=s&&(A.$bias=k),null!=f&&(A.$preluActivationWeights=_),Oe.runKernelFunc((function(e,t){var n=e.fusedBatchMatMul({a:I,b:O,transposeA:a,transposeB:u,bias:k,activation:l,preluActivationWeights:_});return t([I,O,n]),n}),A,(function(e,t){var n=t[0],r=t[1],o=t[2],i=ll(e,o,l),c={};return null!=s&&(c={$bias:function(){return fl(k,i)}}),a||u?!a&&u?Object.assign({$a:function(){return i.matMul(r,!1,!1)},$b:function(){return i.matMul(n,!0,!1)}},c):a&&!u?Object.assign({$a:function(){return r.matMul(i,!1,!0)},$b:function(){return n.matMul(i,!1,!1)}},c):Object.assign({$a:function(){return r.matMul(i,!0,!0)},$b:function(){return i.matMul(n,!0,!0)}},c):Object.assign({$a:function(){return i.matMul(r,!1,!0)},$b:function(){return n.matMul(i,!0,!1)}},c)})).reshape(T)}}),hl=Zt({fusedConv2d_:function(e){var t=e.x,n=e.filter,r=e.strides,o=e.pad,a=e.dataFormat,i=void 0===a?"NHWC":a,u=e.dilations,s=void 0===u?[1,1]:u,c=e.dimRoundingMode,l=e.bias,f=e.activation,d=void 0===f?"linear":f,p=e.preluActivationWeights;if(d=d||"linear",!1===cl(Oe.state.gradientDepth,d)){var h=Cs(t,n,r,o,i,s,c);return null!=l&&(h=Mu(h,l)),dl(h,d,p)}var v=zt(t,"x","conv2d"),m=zt(n,"filter","conv2d"),g=v,y=!1;3===v.rank&&(y=!0,g=v.as4D(1,v.shape[0],v.shape[1],v.shape[2])),E(4===g.rank,(function(){return"Error in fused conv2d: input must be rank 4, but got rank "+g.rank+"."})),E(4===m.rank,(function(){return"Error in fused conv2d: filter must be rank 4, but got rank "+m.rank+"."})),null!=c&&E(T(o),(function(){return"Error in fused conv2d: pad must be an integer when using, dimRoundingMode "+c+" but got pad "+o+"."})),E(g.shape[3]===m.shape[2],(function(){return"Error in conv2d: depth of input ("+g.shape[3]+") must match input depth for filter "+m.shape[2]+"."})),E(jr(r,s),(function(){return"Error in conv2D: Either strides or dilations must be 1. Got strides "+r+" and dilations '"+s+"'"})),E("NHWC"===i,(function(){return"Error in conv2d: got dataFormat of "+i+" but only NHWC is currently supported."}));var b,x,w=Pr(g.shape,m.shape,r,s,o,c);null!=l&&(b=ke(b=zt(l,"bias","fused conv2d"),v)[0],Ar(w.outShape,b.shape)),null!=p&&(x=zt(p,"prelu weights","fused conv2d"));var C={x:g,filter:m};null!=l&&(C.bias=b),null!=p&&(C.preluActivationWeights=x);var k=[m,g],_=Oe.runKernelFunc((function(e,t){var n=e.fusedConv2d({input:g,filter:m,convInfo:w,bias:b,activation:d,preluActivationWeights:x});return t([m,g,n]),n}),C,(function(e,t){var n=t,a=n[0],i=n[1],u=n[2],c=ll(e,u,d);E(zr(s),(function(){return"Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '"+s+"'"}));var f={};return null!=l&&(f={bias:function(){return fl(b,c)}}),Object.assign({x:function(){return Ss(i.shape,c,a,r,o)},filter:function(){return _s(i,c,a.shape,r,o)}},f)}),"FusedConv2D",{convInfo:w,activation:d},k,[!0]);return y?_.as3D(_.shape[1],_.shape[2],_.shape[3]):_}}),vl=Zt({fusedDepthwiseConv2d_:function(e){var t=e.x,n=e.filter,r=e.strides,o=e.pad,a=e.dataFormat,i=void 0===a?"NHWC":a,u=e.dilations,s=void 0===u?[1,1]:u,c=e.dimRoundingMode,l=e.bias,f=e.activation,d=void 0===f?"linear":f,p=e.preluActivationWeights;if(!1===cl(Oe.state.gradientDepth,d)){var h=Rs(t,n,r,o,i,s,c);return null!=l&&(h=Mu(h,l)),dl(h,d,p)}var v=zt(t,"x","depthwiseConv2d"),m=zt(n,"filter","depthwiseConv2d"),g=v,y=!1;3===v.rank&&(y=!0,g=v.as4D(1,v.shape[0],v.shape[1],v.shape[2])),E(4===g.rank,(function(){return"Error in fused depthwiseConv2d: input must be rank 4, but got rank "+g.rank+"."})),E(4===m.rank,(function(){return"Error in fused depthwiseConv2d: filter must be rank 4, but got rank "+m.rank+"."})),E(g.shape[3]===m.shape[2],(function(){return"Error in fused depthwiseConv2d: number of input channels ("+g.shape[3]+") must match the inChannels dimension in filter "+m.shape[2]+"."})),null==s&&(s=[1,1]),E(jr(r,s),(function(){return"Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides "+r+" and dilations '"+s+"'"})),null!=c&&E(T(o),(function(){return"Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode "+c+" but got pad "+o+"."}));var b,x,w=Pr(g.shape,m.shape,r,s,o,c,!0);null!=l&&(b=ke(b=zt(l,"bias","fused conv2d"),v)[0],Ar(w.outShape,b.shape)),null!=p&&(x=zt(p,"prelu weights","fused depthwiseConv2d"));var C={x:g,filter:m};null!=l&&(C.bias=b),null!=p&&(C.preluActivationWeights=x);var k=[m,g],_=Oe.runKernelFunc((function(e,t){var n=e.fusedDepthwiseConv2D({input:g,filter:m,convInfo:w,bias:b,activation:d,preluActivationWeights:x});return t([m,g,n]),n}),C,(function(e,t){E(zr(s),(function(){return"Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '"+s+"'"}));var n=t[0],r=t[1],o=t[2],a=ll(e,o,d),i={};return null!=l&&(i={bias:function(){return fl(b,a)}}),Object.assign({x:function(){return Ts(r.shape,a,n,w)},filter:function(){return Is(r,a,n.shape,w)}},i)}),"FusedDepthwiseConv2D",{convInfo:w,activation:d},k,[!0]);return y?_.as3D(_.shape[1],_.shape[2],_.shape[3]):_}}),ml=Object.freeze({matMul:pl,conv2d:hl,depthwiseConv2d:vl}),gl=Object.freeze({image:sl,linalg:nl,losses:Qc,spectral:Oc,fused:ml,signal:zc,square:Pi,conv1d:Es,conv2d:Cs,conv3d:ks,depthwiseConv2d:Rs,separableConv2d:Os,conv2dTranspose:As,conv3dTranspose:Ds,op:Zt,batchNormalization2d:wu,batchNormalization3d:Eu,batchNormalization4d:Cu,batchNormalization:ku,batchNorm:_u,batchNorm2d:Su,batchNorm3d:Ru,batchNorm4d:Tu,booleanMaskAsync:function(e,t,n){return s(this,void 0,void 0,(function(){var r,o,a,i,u,s,l,f,d,p,h,v,m;return c(this,(function(c){switch(c.label){case 0:for(r=zt(e,"tensor","boolMask"),o=zt(t,"mask","boolMask","bool"),a=null==n?0:n,i=o.rank,u=r.shape,E(i>0,(function(){return"mask cannot be scalar"})),C(u.slice(a,a+i),o.shape,"mask's shape must match the first K dimensions of tensor's shape,"),s=1,l=a;l<a+i;l++)s*=u[l];return f=u.slice(0,a).concat([s],u.slice(a+i)),d=r.reshape(f),p=o.reshape([-1]),[4,Pu(p)];case 1:return h=c.sent(),v=h.squeeze([1]),m=gs(d,v,a),e!==r&&r.dispose(),t!==o&&o.dispose(),v.dispose(),d.dispose(),p.dispose(),h.dispose(),[2,m]}}))}))},complex:en,real:tn,imag:nn,concat:gn,concat1d:yn,concat2d:bn,concat3d:xn,concat4d:wn,split:En,matMul:Ns,dot:Ps,outerProduct:Ms,reverse:Fs,reverse1d:Bs,reverse2d:Ls,reverse3d:Ws,reverse4d:Us,maxPool:Vs,avgPool:Hs,pool:Gs,maxPool3d:qs,avgPool3d:Ks,slice:Xs,slice1d:$s,slice2d:Ys,slice3d:Qs,slice4d:Js,abs:Mi,acos:Fi,acosh:Bi,asin:Li,asinh:Wi,atan:Ui,atanh:zi,ceil:ji,clipByValue:Vi,cos:Hi,cosh:Gi,erf:qi,exp:Ki,expm1:Xi,floor:$i,log:Yi,log1p:Qi,logSigmoid:Ji,neg:Zi,reciprocal:eu,round:tu,rsqrt:nu,sigmoid:ru,sign:ou,isNaN:au,isInf:iu,isFinite:uu,sin:su,sinh:cu,softplus:lu,sqrt:fu,step:du,tan:pu,tanh:hu,all:ec,any:tc,argMax:nc,argMin:rc,logSumExp:oc,max:ac,mean:ic,min:uc,moments:sc,sum:cc,prod:lc,equal:rs,equalStrict:os,greater:as,greaterEqual:is,greaterEqualStrict:us,greaterStrict:ss,less:cs,lessEqual:ls,lessEqualStrict:fs,lessStrict:ds,notEqual:ps,notEqualStrict:hs,add:Mu,addN:Fu,addStrict:Bu,atan2:Lu,div:Wu,divNoNan:Uu,divStrict:zu,floorDiv:ju,maximum:Vu,maximumStrict:Hu,minimum:Gu,minimumStrict:qu,mod:Ku,modStrict:Xu,mul:$u,mulStrict:Yu,pow:Qu,powStrict:Ju,squaredDifference:Zu,squaredDifferenceStrict:es,sub:ts,subStrict:ns,elu:fc,leakyRelu:dc,prelu:pc,relu:hc,relu6:vc,selu:mc,logicalAnd:Iu,logicalNot:Ou,logicalOr:Au,logicalXor:Du,where:Nu,whereAsync:Pu,buffer:Mn,print:function(e,t){void 0===t&&(t=!1)},batchToSpaceND:Fn,broadcastTo:Bn,cast:Ln,clone:Wn,cumsum:Un,depthToSpace:zn,expandDims:jn,eye:Vn,multinomial:Hn,oneHot:Gn,pad:qn,pad1d:Kn,pad2d:Xn,pad3d:$n,pad4d:Yn,rand:Qn,randomNormal:Jn,randomGamma:Zn,randomUniform:er,reshape:tr,spaceToBatchND:nr,squeeze:rr,stack:or,tile:ar,truncatedNormal:ir,unstack:ur,setdiff1dAsync:function(e,t){return s(this,void 0,void 0,(function(){var n,r,o,a,i,u,s,l,f,d;return c(this,(function(c){switch(c.label){case 0:return n=zt(e,"x","setdiff1d"),r=zt(t,"y","setdiff1d"),E(n.dtype===r.dtype,(function(){return"x and y should have the same dtype, but got x ("+n.dtype+") and y ("+r.dtype+")."})),E(1===n.rank,(function(){return"x should be 1D tensor, but got x ("+n.shape+")."})),E(1===r.rank,(function(){return"y should be 1D tensor, but got y ("+r.shape+")."})),[4,n.data()];case 1:return o=c.sent(),[4,r.data()];case 2:for(a=c.sent(),i=new Set(a),u=0,f=0;f<o.length;f++)i.has(o[f])||u++;for(s=new le([u],n.dtype),l=new le([u],"int32"),f=0,d=0;f<o.length;f++)i.has(o[f])||(s.values[d]=o[f],l.values[d]=f,d++);return[2,[s.toTensor(),l.toTensor()]]}}))}))},fill:pn,linspace:function(e,t,n){if(n<=0)throw new Error("The number of values should be positive.");return Oe.runKernelFunc((function(r){return r.linspace(e,t,n)}),{})},ones:fn,range:hn,scalar:an,tensor:rn,tensor1d:un,tensor2d:sn,tensor3d:cn,tensor4d:ln,tensor5d:function(e,t,n){if(k(e),null!=t&&5!==t.length)throw new Error("tensor5d() requires shape to have five numbers");var r=Wt(e,n);if(5!==r.length&&1!==r.length)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return on(e,t,r,n)},tensor6d:function(e,t,n){if(k(e),null!=t&&6!==t.length)throw new Error("tensor6d() requires shape to have six numbers");var r=Wt(e,n);if(6!==r.length&&1!==r.length)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return on(e,t=t||r,r,n)},variable:function(e,t,n,r){return void 0===t&&(t=!0),Oe.makeVariable(e,t,n,r)},zeros:dn,onesLike:vn,zerosLike:mn,transpose:gc,softmax:kr,logSoftmax:_r,localResponseNormalization:yc,norm:bc,gather:gs,unsortedSegmentSum:ys,basicLSTMCell:xc,multiRNNCell:wc,movingAverage:Ec,stridedSlice:Cc,topk:kc,scatterND:_c,fft:Sc,ifft:Rc,rfft:Tc,irfft:Ic,sparseToDense:Ac,gatherND:Dc,diag:Nc,dropout:Pc,hannWindow:Bc,hammingWindow:Lc,frame:Wc,stft:Uc,inTopKAsync:function(e,t,n){return void 0===n&&(n=1),s(this,void 0,void 0,(function(){var r,o,a,i,u,s,l,f,d,p,h,v,m,g;return c(this,(function(c){switch(c.label){case 0:return r=zt(e,"predictions","inTopK"),o=zt(t,"targets","inTopK"),E(r.rank>1,(function(){return"inTopK() expects the predictions to be of rank 2 or higher, but got "+r.rank})),E(r.rank-1===o.rank,(function(){return"predictions rank should be 1 larger than targets rank, but got predictions rank "+r.rank+" and targets rank "+o.rank})),C(r.shape.slice(0,r.shape.length-1),o.shape,"predictions's shape should be align with the targets' shape, except the last dimension."),a=r.shape[r.shape.length-1],E(n>0&&n<=a,(function(){return"'k' passed to inTopK() must be > 0 && <= the predictions last dimension ("+a+"), but got "+n})),[4,r.data()];case 1:return i=c.sent(),[4,o.data()];case 2:for(u=c.sent(),s=[i.length/a,a],f=s[1],d=F("bool",l=s[0]),p=0;p<l;p++){for(h=p*f,v=i.subarray(h,h+f),m=[],g=0;g<v.length;g++)m.push({value:v[g],index:g});for(m.sort((function(e,t){return t.value-e.value})),d[p]=0,g=0;g<n;g++)if(m[g].index===u[p]){d[p]=1;break}}return e!==r&&r.dispose(),t!==o&&o.dispose(),[2,rn(d,o.shape,"bool")]}}))}))}});function yl(e,t){Array.isArray(e)||(e=[e]),e.forEach((function(e){null!=e&&E("complex64"!==e.dtype,(function(){return t+" does not support complex64 tensors."}))}))}function bl(e,t,n,r){if("linear"===n)return e.linear(t);if("relu"===n)return e.relu(t);if("elu"===n)return e.elu(t);if("relu6"===n)return e.relu6(t);if("prelu"===n)return e.prelu(t,r);throw new Error("Activation "+n+" has not been implemented for the CPU backend.")}var xl=function(e){function t(){var t=e.call(this)||this;return t.blockSize=48,t.firstUse=!0,t.data=new Sr(t,Oe),t}return u(t,e),t.prototype.write=function(e,t,n){this.firstUse&&(this.firstUse=!1,f().get("IS_NODE")&&Lt("\n============================\nHi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details.\n============================\n"));var r={};return this.data.set(r,{values:e,dtype:n}),r},t.prototype.move=function(e,t,n,r){this.data.set(e,{values:t,dtype:r})},t.prototype.numDataIds=function(){return this.data.numDataIds()},t.prototype.read=function(e){return s(this,void 0,void 0,(function(){return c(this,(function(t){return[2,this.readSync(e)]}))}))},t.prototype.readSync=function(e){var t=this.data.get(e),n=t.dtype,r=t.complexTensors;return"complex64"===n?Kr(this.readSync(r.real.dataId),this.readSync(r.imag.dataId)):this.data.get(e).values},t.prototype.bufferSync=function(e){var t=this.readSync(e.dataId),n=t;if("string"===e.dtype)try{n=t.map((function(e){return oe(e)}))}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Mn(e.shape,e.dtype,n)},t.prototype.makeOutput=function(e,t,n){var r=this.write(e,t,n);return Oe.makeTensorFromDataId(r,t,n,this)},t.prototype.disposeData=function(e){if(this.data.has(e)){var t=this.data.get(e).complexTensors;null!=t&&(t.real.dispose(),t.imag.dispose()),this.data.delete(e)}},t.prototype.time=function(e){return s(this,void 0,void 0,(function(){var t;return c(this,(function(n){return t=te(),e(),[2,{kernelMs:te()-t}]}))}))},t.prototype.memory=function(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}},t.prototype.complex=function(e,t){var n=this.makeOutput(null,e.shape,"complex64");return this.data.get(n.dataId).complexTensors={real:Oe.keep(e.clone()),imag:Oe.keep(t.clone())},n},t.prototype.real=function(e){return this.data.get(e.dataId).complexTensors.real.clone()},t.prototype.imag=function(e){return this.data.get(e.dataId).complexTensors.imag.clone()},t.prototype.slice=function(e,t,n){if(yl(e,"slice"),wr(e.shape,t,n)){var r=Er(t,e.strides),o=S(n);return rn(this.readSync(e.dataId).subarray(r,r+o),n,e.dtype)}for(var a=Mn(n,e.dtype),i=this.bufferSync(e),u=0;u<a.size;++u){var s=a.indexToLoc(u).map((function(e,n){return e+t[n]}));a.values[u]=i.get.apply(i,s)}return a.toTensor()},t.prototype.stridedSlice=function(e,t,n,r){yl(e,"stridedSlice");var o=yr(t,n,r);if(o.some((function(e){return 0===e})))return rn([],o);for(var a=Mn(o,e.dtype),i=this.bufferSync(e),u=0;u<a.size;u++){for(var s=a.indexToLoc(u),c=new Array(s.length),l=0;l<c.length;l++)c[l]=s[l]*r[l]+t[l];a.set.apply(a,[i.get.apply(i,c)].concat(s))}return a.toTensor()},t.prototype.diag=function(e){for(var t=this.readSync(e.dataId),n=Mn([e.size,e.size],e.dtype),r=n.values,o=0;o<t.length;o++)r[o*e.size+o]=t[o];return n.toTensor()},t.prototype.unstack=function(e,t){for(var n=e.shape[t],r=new Array(e.rank-1),o=0,a=0;a<e.rank;a++)a!==t&&(r[o++]=e.shape[a]);var i=new Array(e.rank).fill(0),u=e.shape.slice();u[t]=1;var s=new Array(n);for(a=0;a<s.length;a++)i[t]=a,s[a]=this.slice(e,i,u).reshape(r);return s},t.prototype.reverse=function(e,t){yl(e,"reverse");for(var n=Mn(e.shape,e.dtype),r=this.bufferSync(e),o=function(o){var a=n.indexToLoc(o),i=a.slice();t.forEach((function(t){return i[t]=e.shape[t]-1-i[t]})),n.set.apply(n,[r.get.apply(r,i)].concat(a))},a=0;a<n.size;a++)o(a);return n.toTensor()},t.prototype.concat=function(e,t){var n=this;if("complex64"===e[0].dtype){var r=e.map((function(e){return tn(e)})),o=e.map((function(e){return nn(e)}));return en(this.concat(r,t),this.concat(o,t))}var a=e.map((function(e){var n=S(e.shape.slice(t));return e.as2D(-1,n)})),i=Jt(a.map((function(e){return e.shape})),1),u=Mn(i,e[0].dtype).values;if(1===a[0].shape[0]){var s=0;a.forEach((function(e){u.set(n.readSync(e.dataId),s),s+=e.size}))}else{var c=0;a.forEach((function(e){for(var t=n.readSync(e.dataId),r=0,o=0;o<e.shape[0];++o)for(var a=o*i[1]+c,s=0;s<e.shape[1];++s)u[a+s]=t[r++];c+=e.shape[1]}))}var l=Jt(e.map((function(e){return e.shape})),t);return rn(u,l,e[0].dtype)},t.prototype.neg=function(e){return yl(e,"neg"),this.multiply(an(-1),e)},t.prototype.add=function(e,t){return"complex64"===e.dtype||"complex64"===t.dtype?this.broadcastedBinaryComplexOp(e.cast("complex64"),t.cast("complex64"),(function(e,t,n,r){return{real:e+n,imag:t+r}})):this.broadcastedBinaryOp(e,t,Ee(e.dtype,t.dtype),(function(e,t){return e+t}))},t.prototype.addN=function(e){var t=this;yl(e,"addN");for(var n=e.map((function(e){return t.readSync(e.dataId)})),r=Mn(e[0].shape,e[0].dtype),o=r.values,a=0;a<e.length;a++)for(var i=n[a],u=0;u<o.length;u++)o[u]+=i[u];return r.toTensor()},t.prototype.subtract=function(e,t){return"complex64"===e.dtype||"complex64"===t.dtype?this.broadcastedBinaryComplexOp(e.cast("complex64"),t.cast("complex64"),(function(e,t,n,r){return{real:e-n,imag:t-r}})):this.broadcastedBinaryOp(e,t,Ee(e.dtype,t.dtype),(function(e,t){return e-t}))},t.prototype.pow=function(e,t){return yl([e,t],"pow"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){return Math.pow(e,t)}))},t.prototype.batchMatMul=function(e,t,n,r){yl([e,t],"matMul");for(var o=n?e.shape[1]:e.shape[2],a=n?e.shape[2]:e.shape[1],i=r?t.shape[1]:t.shape[2],u=e.shape[0],s=this.readSync(e.dataId),c=this.readSync(t.dataId),l=n?[e.strides[0],1,e.strides[1]]:[e.strides[0],e.strides[1],1],f=l[0],d=l[1],p=l[2],h=r?[1,t.strides[1],t.strides[0]]:[t.strides[1],1,t.strides[0]],v=h[0],m=h[1],g=h[2],y=a*i,b=Mn([u,a,i],e.dtype),x=b.values,w=this.blockSize,E=0;E<u;E++)for(var C=0;C<a;C+=w)for(var k=0;k<i;k+=w)for(var _=0;_<o;_+=w)for(var S=Math.min(C+w,a),R=Math.min(k+w,i),T=Math.min(_+w,o),I=C;I<S;I++)for(var O=k;O<R;O++){for(var A=0,D=_;D<T;D++)A+=s[E*f+I*d+D*p]*c[D*v+O*m+E*g];x[E*y+(I*i+O)]+=A}return b.toTensor()},t.prototype.fusedBatchMatMul=function(e){var t=e.a,n=e.b,r=e.transposeA,o=e.transposeB,a=e.bias,i=e.activation,u=e.preluActivationWeights,s=this.batchMatMul(t,n,r,o);return a&&(s=this.add(s,a)),i&&(s=bl(this,s,i,u)),s},t.prototype.multiply=function(e,t){return"complex64"===e.dtype||"complex64"===t.dtype?this.broadcastedBinaryComplexOp(e.cast("complex64"),t.cast("complex64"),(function(e,t,n,r){return{real:e*n-t*r,imag:e*r+t*n}})):this.broadcastedBinaryOp(e,t,Ee(e.dtype,t.dtype),(function(e,t){return e*t}))},t.prototype.realDivide=function(e,t){return yl([e,t],"realDivide"),this.broadcastedBinaryOp(e,t,"float32",(function(e,t){return e/t}))},t.prototype.floorDiv=function(e,t){return yl([e,t],"floorDiv"),this.broadcastedBinaryOp(e,t,"int32",(function(e,t){return Math.floor(e/t)}))},t.prototype.sum=function(e,t){yl(e,"sum"),Kt("sum",t,e.rank);for(var n=Gt(e.shape,t),r=n[0],o=n[1],a=dn(r,Ee(e.dtype,"int32")),i=S(o),u=this.readSync(a.dataId),s=this.readSync(e.dataId),c=0;c<u.length;++c){for(var l=c*i,f=0,d=0;d<i;++d)f+=s[l+d];u[c]=f}return a},t.prototype.prod=function(e,t){yl(e,"sum");for(var n=Gt(e.shape,t),r=n[0],o=n[1],a=dn(r,Ee(e.dtype,"int32")),i=S(o),u=this.readSync(a.dataId),s=this.readSync(e.dataId),c=0;c<u.length;++c){for(var l=c*i,f=1,d=0;d<i;++d)f*=s[l+d];u[c]=f}return a},t.prototype.unsortedSegmentSum=function(e,t,n){yl(e,"unsortedSegmentSum");for(var r=[],o=e.rank-t.rank,a=0;a<o;++a)t=t.expandDims(a+1);for(a=0;a<n;++a){var i=an(a,"int32"),u=rs(i,t).asType("float32").mul(e).sum(0);r.push(u)}return or(r)},t.prototype.argMin=function(e,t){yl(e,"argMin");var n=[t];Kt("argMin",n,e.rank);for(var r=Gt(e.shape,n),o=r[0],a=r[1],i=dn(o,"int32"),u=S(a),s=this.readSync(i.dataId),c=this.readSync(e.dataId),l=0;l<s.length;++l){for(var f=l*u,d=c[f],p=0,h=0;h<u;++h){var v=c[f+h];v<d&&(d=v,p=h)}s[l]=p}return i},t.prototype.argMax=function(e,t){yl(e,"argMax");var n=[t];Kt("argMax",n,e.rank);for(var r=Gt(e.shape,n),o=r[0],a=r[1],i=dn(o,"int32"),u=S(a),s=this.readSync(i.dataId),c=this.readSync(e.dataId),l=0;l<s.length;++l){for(var f=l*u,d=c[f],p=0,h=0;h<u;++h){var v=c[f+h];v>d&&(d=v,p=h)}s[l]=p}return i},t.prototype.cumsum=function(e,t,n,r){if(yl(e,"cumsum"),t!==e.rank-1)throw new Error("backend.cumsum in CPU expects an inner-most axis="+(e.rank-1)+" but got axis="+t);for(var o=Ee(e.dtype,"int32"),a=dn(e.shape,o),i=this.readSync(a.dataId),u=this.readSync(e.dataId),s=e.shape[e.rank-1],c=r?function(e,t){return e+s-t-1}:function(e,t){return e+t},l=0;l<u.length;l+=s)for(var f=0;f<s;f++){var d=c(l,f);if(0===f)i[d]=n?0:u[d];else{var p=c(l,f-1);i[d]=n?u[p]+i[p]:u[d]+i[p]}}return a},t.prototype.equal=function(e,t){return yl([e,t],"equal"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e===t?1:0}))},t.prototype.notEqual=function(e,t){return yl([e,t],"notEqual"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e!==t?1:0}))},t.prototype.less=function(e,t){return yl([e,t],"less"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e<t?1:0}))},t.prototype.lessEqual=function(e,t){return yl([e,t],"lessEqual"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e<=t?1:0}))},t.prototype.greater=function(e,t){return yl([e,t],"greater"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e>t?1:0}))},t.prototype.greaterEqual=function(e,t){return yl([e,t],"greaterEqual"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e>=t?1:0}))},t.prototype.logicalNot=function(e){yl(e,"logicalNot");for(var t=this.readSync(e.dataId),n=new Uint8Array(t.length),r=0;r<t.length;++r)n[r]=t[r]?0:1;return this.makeOutput(n,e.shape,"bool")},t.prototype.logicalAnd=function(e,t){return yl([e,t],"logicalAnd"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e&&t}))},t.prototype.logicalOr=function(e,t){return yl([e,t],"logicalOr"),this.broadcastedBinaryOp(e,t,"bool",(function(e,t){return e||t}))},t.prototype.select=function(e,t,n){yl([e,t,n],"select");for(var r=this.readSync(e.dataId),o=this.readSync(t.dataId),a=this.readSync(n.dataId),i=dn(t.shape,Ee(t.dtype,n.dtype)),u=this.readSync(i.dataId),s=0,c=0===e.rank||e.rank>1||1===t.rank?1:S(t.shape.slice(1)),l=0;l<r.length;l++)for(var f=0;f<c;f++)1===r[l]?u[s++]=o[l]:u[s++]=a[l];return i},t.prototype.where=function(e){yl([e],"where");var t=this.readSync(e.dataId);return no(e.shape,t)},t.prototype.topk=function(e,t,n){return yl(e,"topk"),to(this.readSync(e.dataId),e.shape,e.dtype,t)},t.prototype.min=function(e,t){yl(e,"min"),Kt("min",t,e.rank);for(var n=Gt(e.shape,t),r=n[0],o=n[1],a=dn(r,e.dtype),i=S(o),u=this.readSync(a.dataId),s=this.readSync(e.dataId),c=0;c<u.length;++c){for(var l=c*i,f=s[l],d=0;d<i;++d){var p=s[l+d];p<f&&(f=p)}u[c]=f}return a},t.prototype.minimum=function(e,t){return yl([e,t],"minimum"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){return Math.min(e,t)}))},t.prototype.mod=function(e,t){return yl([e,t],"mod"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){var n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}))},t.prototype.max=function(e,t){yl(e,"max"),Kt("max",t,e.rank);for(var n=Gt(e.shape,t),r=n[0],o=n[1],a=dn(r,e.dtype),i=S(o),u=this.readSync(a.dataId),s=this.readSync(e.dataId),c=0;c<u.length;++c){for(var l=c*i,f=s[l],d=0;d<i;++d){var p=s[l+d];p>f&&(f=p)}u[c]=f}return a},t.prototype.maximum=function(e,t){return yl([e,t],"maximum"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){return Math.max(e,t)}))},t.prototype.all=function(e,t){yl(e,"all"),Kt("all",t,e.rank);for(var n=Gt(e.shape,t),r=n[0],o=n[1],a=dn(r,e.dtype),i=S(o),u=this.readSync(a.dataId),s=this.readSync(e.dataId),c=0;c<u.length;++c){for(var l=c*i,f=s[l],d=0;d<i;++d){var p=s[l+d];f=f&&p}u[c]=f}return a},t.prototype.any=function(e,t){yl(e,"any"),Kt("any",t,e.rank);for(var n=Gt(e.shape,t),r=n[0],o=n[1],a=dn(r,e.dtype),i=S(o),u=this.readSync(a.dataId),s=this.readSync(e.dataId),c=0;c<u.length;++c){for(var l=c*i,f=s[l],d=0;d<i;++d){var p=s[l+d];f=f||p}u[c]=f}return a},t.prototype.squaredDifference=function(e,t){return yl([e,t],"squaredDifference"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){var n=e-t;return n*n}))},t.prototype.ceil=function(e){yl(e,"ceil");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r)n[r]=Math.ceil(t[r]);return this.makeOutput(n,e.shape,"float32")},t.prototype.floor=function(e){yl(e,"floor");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r)n[r]=Math.floor(t[r]);return this.makeOutput(n,e.shape,"float32")},t.prototype.sign=function(e){yl(e,"x");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r)t[r]<0?n[r]=-1:t[r]>0?n[r]=1:n[r]=0;return this.makeOutput(n,e.shape,"float32")},t.prototype.isNaN=function(e){yl(e,"x");for(var t=this.readSync(e.dataId),n=new Uint8Array(t.length),r=0;r<t.length;++r)Number.isNaN(t[r])&&(n[r]=1);return this.makeOutput(n,e.shape,"bool")},t.prototype.isInf=function(e){yl(e,"x");for(var t=this.readSync(e.dataId),n=new Uint8Array(t.length),r=0;r<t.length;++r)Math.abs(t[r])===1/0&&(n[r]=1);return this.makeOutput(n,e.shape,"bool")},t.prototype.isFinite=function(e){yl(e,"x");for(var t=this.readSync(e.dataId),n=new Uint8Array(t.length),r=0;r<t.length;++r)Number.isFinite(t[r])&&(n[r]=1);return this.makeOutput(n,e.shape,"bool")},t.prototype.round=function(e){yl(e,"round");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r){var o=Math.floor(t[r]);t[r]-o<.5?n[r]=Math.floor(t[r]):t[r]-o>.5?n[r]=Math.ceil(t[r]):n[r]=o%2==0?o:o+1}return this.makeOutput(n,e.shape,"float32")},t.prototype.exp=function(e){yl(e,"exp");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r)n[r]=Math.exp(t[r]);return this.makeOutput(n,e.shape,"float32")},t.prototype.expm1=function(e){yl(e,"expm1");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r)n[r]=Math.expm1(t[r]);return this.makeOutput(n,e.shape,"float32")},t.prototype.log=function(e){yl(e,"log");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r){var o=t[r];n[r]=Math.log(o)}return this.makeOutput(n,e.shape,"float32")},t.prototype.log1p=function(e){yl(e,"log1p");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r){var o=t[r];n[r]=Math.log1p(o)}return this.makeOutput(n,e.shape,"float32")},t.prototype.sqrt=function(e){yl(e,"sqrt");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r){var o=t[r];n[r]=Math.sqrt(o)}return this.makeOutput(n,e.shape,"float32")},t.prototype.rsqrt=function(e){yl(e,"rsqrt");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r){var o=t[r];n[r]=1/Math.sqrt(o)}return this.makeOutput(n,e.shape,"float32")},t.prototype.reciprocal=function(e){yl(e,"reciprocal");for(var t=this.readSync(e.dataId),n=new Float32Array(t.length),r=0;r<t.length;++r)n[r]=1/t[r];return this.makeOutput(n,e.shape,"float32")},t.prototype.linear=function(e){return e},t.prototype.relu=function(e){yl(e,"relu");for(var t=dn(e.shape,e.dtype),n=this.readSync(t.dataId),r=this.readSync(e.dataId),o=0;o<r.length;++o)n[o]=Math.max(0,r[o]);return t},t.prototype.relu6=function(e){yl(e,"relu");for(var t=dn(e.shape,e.dtype),n=this.readSync(t.dataId),r=this.readSync(e.dataId),o=0;o<r.length;++o)n[o]=Math.min(Math.max(0,r[o]),6);return t},t.prototype.prelu=function(e,t){return yl([e,t],"prelu"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){return e<0?t*e:e}))},t.prototype.elu=function(e){yl(e,"elu");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r){var o=n[r];t[r]=o>=0?o:Math.exp(o)-1}return this.makeOutput(t,e.shape,"float32")},t.prototype.eluDer=function(e,t){yl([e,t],"eluDer");for(var n=new Float32Array(t.size),r=this.readSync(t.dataId),o=this.readSync(e.dataId),a=0;a<r.length;++a){var i=r[a];n[a]=i>=1?o[a]:o[a]*(i+1)}return this.makeOutput(n,t.shape,"float32")},t.prototype.selu=function(e){yl(e,"selu");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r){var o=n[r];t[r]=o>=0?1.0507009873554805*o:1.7580993408473768*(Math.exp(o)-1)}return this.makeOutput(t,e.shape,"float32")},t.prototype.clip=function(e,t,n){yl(e,"clip");for(var r=new Float32Array(e.size),o=this.readSync(e.dataId),a=0;a<o.length;++a){var i=o[a];r[a]=i>n?n:i<t?t:i}return this.makeOutput(r,e.shape,"float32")},t.prototype.abs=function(e){for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.abs(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.complexAbs=function(e){for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<e.size;++r){var o=n[2*r],a=n[2*r+1];t[r]=Math.hypot(o,a)}return this.makeOutput(t,e.shape,"float32")},t.prototype.int=function(e){yl(e,"int");for(var t=new Int32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=n[r];return this.makeOutput(t,e.shape,"int32")},t.prototype.sigmoid=function(e){yl(e,"sigmoid");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=1/(1+Math.exp(-n[r]));return this.makeOutput(t,e.shape,"float32")},t.prototype.softplus=function(e){yl(e,"softplus");for(var t=Math.log(1.1920928955078125e-7)+2,n=new Float32Array(e.size),r=this.readSync(e.dataId),o=0;o<r.length;++o){var a,i=r[o]>-t,u=r[o]<t,s=Math.exp(r[o]);a=u?s:i?r[o]:Math.log(1+s),n[o]=a}return this.makeOutput(n,e.shape,"float32")},t.prototype.sin=function(e){yl(e,"sin");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.sin(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.cos=function(e){yl(e,"cos");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.cos(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.tan=function(e){yl(e,"tan");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.tan(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.asin=function(e){yl(e,"asin");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.asin(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.acos=function(e){yl(e,"acos");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.acos(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.atan=function(e){yl(e,"atan");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.atan(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.atan2=function(e,t){return yl([e,t],"atan2"),this.broadcastedBinaryOp(e,t,e.dtype,(function(e,t){return Math.atan2(e,t)}))},t.prototype.sinh=function(e){yl(e,"sinh");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.sinh(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.cosh=function(e){yl(e,"cosh");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.cosh(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.tanh=function(e){yl(e,"tanh");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=I(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.asinh=function(e){yl(e,"asinh");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.asinh(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.acosh=function(e){yl(e,"acosh");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.acosh(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.atanh=function(e){yl(e,"atanh");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r)t[r]=Math.atanh(n[r]);return this.makeOutput(t,e.shape,"float32")},t.prototype.erf=function(e){yl(e,"erf");for(var t=new Float32Array(e.size),n=this.readSync(e.dataId),r=0;r<n.length;++r){var o=Math.sign(n[r]),a=Math.abs(n[r]),i=1/(1+.3275911*a);t[r]=o*(1-((((1.061405429*i-1.453152027)*i+1.421413741)*i-.284496736)*i+.254829592)*i*Math.exp(-a*a))}return this.makeOutput(t,e.shape,"float32")},t.prototype.step=function(e,t){void 0===t&&(t=0),yl(e,"step");for(var n=new Float32Array(e.size),r=this.readSync(e.dataId),o=0;o<r.length;++o){var a=r[o];isNaN(a)?n[o]=NaN:n[o]=a>0?1:t}return this.makeOutput(n,e.shape,"float32")},t.prototype.fusedConv2d=function(e){var t=e.input,n=e.filter,r=e.convInfo,o=e.bias,a=e.activation,i=e.preluActivationWeights,u=this.conv2d(t,n,r);return o&&(u=this.add(u,o)),a&&(u=bl(this,u,a,i)),u},t.prototype.conv2d=function(e,t,n){yl([e,t],"conv2d");for(var r=n.filterHeight,o=n.filterWidth,a=n.dilationHeight,i=n.dilationWidth,u=n.padInfo.left,s=n.padInfo.top,c="channelsLast"===n.dataFormat,l=Mn(n.outShape,e.dtype),f=e.strides[0],d=c?e.strides[1]:e.strides[2],p=c?e.strides[2]:1,h=c?1:e.strides[1],v=l.strides[0],m=c?l.strides[1]:l.strides[2],g=c?l.strides[2]:1,y=c?1:l.strides[1],b=this.readSync(e.dataId),x=this.readSync(t.dataId),w=l.values,E=0;E<n.batchSize;++E)for(var C=E*f,k=E*v,_=0;_<n.outHeight;++_)for(var S=k+_*m,R=_*n.strideHeight-s,T=0;T<r;T++){var I=R+T*a;if(!(I<0||I>=n.inHeight))for(var O=T*t.strides[0],A=C+I*d,D=0;D<n.outWidth;++D)for(var N=S+D*g,P=D*n.strideWidth-u,M=0;M<o;M++){var F=P+M*i;if(!(F<0||F>=n.inWidth))for(var B=A+F*p,L=O+M*t.strides[1],W=0;W<n.inChannels;++W){for(var U=b[B+W*h],z=0;z<n.outChannels;++z)w[N+z*y]+=U*x[L+z];L+=n.outChannels}}}return l.toTensor()},t.prototype.conv3d=function(e,t,n){for(var r=n.filterDepth,o=n.filterHeight,a=n.filterWidth,i=n.dilationDepth,u=n.dilationHeight,s=n.dilationWidth,c=n.padInfo.front,l=n.padInfo.left,f=n.padInfo.top,d=Mn(n.outShape,e.dtype),p=this.readSync(e.dataId),h=this.readSync(t.dataId),v=d.values,m=0;m<n.batchSize;++m)for(var g=m*e.strides[0],y=m*d.strides[0],b=0;b<n.outDepth;++b)for(var x=y+b*d.strides[1],w=b*n.strideDepth-c,E=0;E<r;E++){var C=w+E*i;if(!(C<0||C>=n.inDepth))for(var k=E*t.strides[0],_=g+C*e.strides[1],S=0;S<n.outHeight;++S)for(var R=x+S*d.strides[2],T=S*n.strideHeight-f,I=0;I<o;I++){var O=T+I*u;if(!(O<0||O>=n.inHeight))for(var A=k+I*t.strides[1],D=_+O*e.strides[2],N=0;N<n.outWidth;++N)for(var P=R+N*n.outChannels,M=N*n.strideWidth-l,F=0;F<a;F++){var B=M+F*s;if(!(B<0||B>=n.inWidth))for(var L=A+F*t.strides[2],W=D+B*n.inChannels,U=L,z=0;z<n.inChannels;++z){for(var j=p[W+z],V=0;V<n.outChannels;++V)v[P+V]+=j*h[U+V];U+=n.outChannels}}}}return d.toTensor()},t.prototype.conv2dDerInput=function(e,t,n){yl([e,t],"conv2dDerInput");for(var r=Mn(n.inShape,"float32"),o=r.values,a=this.readSync(e.dataId),i=this.readSync(t.dataId),u=t.strides,s=u[0],c=u[1],l=u[2],f=n.batchSize,d=n.filterHeight,p=n.filterWidth,h=n.inChannels,v=n.inHeight,m=n.inWidth,g=n.outChannels,y=n.outHeight,b=n.outWidth,x=n.strideHeight,w=n.strideWidth,E=n.dataFormat,C=d-1-n.padInfo.top,k=p-1-n.padInfo.left,_="channelsLast"===E,S=r.strides[0],R=_?r.strides[1]:r.strides[2],T=_?r.strides[2]:1,I=_?1:r.strides[1],O=e.strides[0],A=_?e.strides[1]:e.strides[2],D=_?e.strides[2]:1,N=_?1:e.strides[1],P=0;P<f;++P)for(var M=0;M<h;++M)for(var F=0;F<v;++F)for(var B=F-C,L=Math.max(0,Math.ceil(B/x)),W=Math.min(y,(d+B)/x),U=0;U<m;++U){for(var z=U-k,j=Math.max(0,Math.ceil(z/w)),V=Math.min(b,(p+z)/w),H=0,G=L;G<W;++G)for(var q=G*x-B,K=j;K<V;++K)for(var X=O*P+A*G+D*K,$=s*(d-1-q)+c*(p-1-(K*w-z))+l*M,Y=0;Y<g;++Y)H+=a[X+N*Y]*i[$+Y];o[S*P+R*F+T*U+I*M]=H}return r.toTensor()},t.prototype.conv3dDerInput=function(e,t,n){for(var r=Mn(n.inShape,"float32"),o=r.values,a=r.strides,i=a[0],u=a[1],s=a[2],c=a[3],l=this.readSync(e.dataId),f=e.strides,d=f[0],p=f[1],h=f[2],v=f[3],m=this.readSync(t.dataId),g=t.strides,y=g[0],b=g[1],x=g[2],w=g[3],E=n.batchSize,C=n.filterDepth,k=n.filterHeight,_=n.filterWidth,S=n.inChannels,R=n.inDepth,T=n.inHeight,I=n.inWidth,O=n.outChannels,A=n.outDepth,D=n.outHeight,N=n.outWidth,P=n.strideDepth,M=n.strideHeight,F=n.strideWidth,B=C-1-n.padInfo.front,L=k-1-n.padInfo.top,W=_-1-n.padInfo.left,U=0;U<E;++U)for(var z=0;z<S;++z)for(var j=0;j<R;++j)for(var V=j-B,H=Math.max(0,Math.ceil(V/P)),G=Math.min(A,(C+V)/P),q=0;q<T;++q)for(var K=q-L,X=Math.max(0,Math.ceil(K/M)),$=Math.min(D,(k+K)/M),Y=0;Y<I;++Y){for(var Q=Y-W,J=Math.max(0,Math.ceil(Q/F)),Z=Math.min(N,(_+Q)/F),ee=0,te=H;te<G;++te)for(var ne=te*P-V,re=X;re<$;++re)for(var oe=re*M-K,ae=J;ae<Z;++ae)for(var ie=d*U+p*te+h*re+v*ae,ue=y*(C-1-ne)+b*(k-1-oe)+x*(_-1-(ae*F-Q))+w*z,se=0;se<O;++se)ee+=l[ie+se]*m[ue+se];o[i*U+u*j+s*q+c*Y+z]=ee}return r.toTensor()},t.prototype.conv2dDerFilter=function(e,t,n){yl([e,t],"conv2dDerFilter");for(var r=n.strideHeight,o=n.strideWidth,a=n.filterHeight,i=n.filterWidth,u="channelsLast"===n.dataFormat,s=Mn(n.filterShape,"float32"),c=n.padInfo.left,l=n.padInfo.top,f=this.bufferSync(e),d=this.bufferSync(t),p=0;p<a;++p)for(var h=Math.max(0,Math.ceil((l-p)/r)),v=Math.min(n.outHeight,(n.inHeight+l-p)/r),m=0;m<i;++m)for(var g=Math.max(0,Math.ceil((c-m)/o)),y=Math.min(n.outWidth,(n.inWidth+c-m)/o),b=0;b<n.inChannels;++b)for(var x=0;x<n.outChannels;++x){for(var w=0,E=0;E<n.batchSize;++E)for(var C=h;C<v;++C)for(var k=p+C*r-l,_=g;_<y;++_){var S=m+_*o-c;w+=u?f.get(E,k,S,b)*d.get(E,C,_,x):f.get(E,b,k,S)*d.get(E,x,C,_)}s.set(w,p,m,b,x)}return s.toTensor()},t.prototype.conv3dDerFilter=function(e,t,n){for(var r=n.strideDepth,o=n.strideHeight,a=n.strideWidth,i=n.filterDepth,u=n.filterHeight,s=n.filterWidth,c=Mn(n.filterShape,"float32"),l=c.values,f=c.strides,d=f[0],p=f[1],h=f[2],v=f[3],m=this.readSync(t.dataId),g=t.strides,y=g[0],b=g[1],x=g[2],w=g[3],E=this.readSync(e.dataId),C=e.strides,k=C[0],_=C[1],S=C[2],R=C[3],T=n.padInfo.front,I=n.padInfo.left,O=n.padInfo.top,A=0;A<i;++A)for(var D=Math.max(0,Math.ceil((T-A)/r)),N=Math.min(n.outDepth,(n.inDepth+T-A)/r),P=A*d,M=0;M<u;++M)for(var F=Math.max(0,Math.ceil((O-M)/o)),B=Math.min(n.outHeight,(n.inHeight+O-M)/o),L=M*p+P,W=0;W<s;++W)for(var U=Math.max(0,Math.ceil((I-W)/a)),z=Math.min(n.outWidth,(n.inWidth+I-W)/a),j=W*h+L,V=0;V<n.inChannels;++V)for(var H=V*v+j,G=0;G<n.outChannels;++G){for(var q=0,K=0;K<n.batchSize;++K)for(var X=K*k,$=K*y,Y=D;Y<N;++Y)for(var Q=(A+Y*r-T)*_+X,J=Y*b+$,Z=F;Z<B;++Z)for(var ee=(M+Z*o-O)*S+Q,te=Z*x+J,ne=U;ne<z;++ne){var re=ne*w+te;q+=E[(W+ne*a-I)*R+ee+V]*m[re+G]}l[H+G]=q}return c.toTensor()},t.prototype.fusedDepthwiseConv2D=function(e){var t=e.input,n=e.filter,r=e.convInfo,o=e.bias,a=e.activation,i=e.preluActivationWeights,u=this.depthwiseConv2D(t,n,r);return o&&(u=this.add(u,o)),a&&(u=bl(this,u,a,i)),u},t.prototype.depthwiseConv2D=function(e,t,n){yl([e,t],"depthwiseConv2D");for(var r=n.filterHeight,o=n.filterWidth,a=n.dilationHeight,i=n.dilationWidth,u=n.padInfo.left,s=n.padInfo.top,c=n.outChannels/n.inChannels,l=Mn(n.outShape,e.dtype),f=this.readSync(e.dataId),d=this.readSync(t.dataId),p=l.values,h=0;h<n.batchSize;++h)for(var v=h*e.strides[0],m=h*l.strides[0],g=0;g<n.outHeight;++g)for(var y=m+g*l.strides[1],b=g*n.strideHeight-u,x=0;x<r;++x){var w=b+x*a;if(!(w<0||w>=n.inHeight))for(var E=x*t.strides[0],C=v+w*e.strides[1],k=0;k<n.outWidth;++k)for(var _=y+k*l.strides[2],S=k*n.strideWidth-s,R=0;R<o;++R){var T=S+R*i;if(!(T<0||T>=n.inWidth))for(var I=E+R*t.strides[1],O=C+T*n.inChannels,A=_,D=I,N=0;N<n.inChannels;++N){for(var P=f[O+N],M=0;M<c;++M)p[A+M]+=P*d[D+M];A+=c,D+=c}}}return l.toTensor()},t.prototype.depthwiseConv2DDerInput=function(e,t,n){yl([e,t],"depthwiseConv2DDerInput");for(var r=Mn(n.inShape,"float32"),o=r.values,a=r.strides,i=a[0],u=a[1],s=a[2],c=this.readSync(e.dataId),l=e.strides,f=l[0],d=l[1],p=l[2],h=this.readSync(t.dataId),v=t.strides,m=v[0],g=v[1],y=v[2],b=n.batchSize,x=n.filterHeight,w=n.filterWidth,E=n.inChannels,C=n.inHeight,k=n.inWidth,_=n.outChannels,S=n.outHeight,R=n.outWidth,T=n.strideHeight,I=n.strideWidth,O=x-1-n.padInfo.top,A=w-1-n.padInfo.left,D=_/E,N=0;N<b;++N)for(var P=0;P<E;++P)for(var M=0;M<C;++M)for(var F=M-O,B=Math.max(0,Math.ceil(F/T)),L=Math.min(S,(x+F)/T),W=0;W<k;++W){for(var U=W-A,z=Math.max(0,Math.ceil(U/I)),j=Math.min(R,(w+U)/I),V=0,H=B;H<L;++H)for(var G=H*T-F,q=z;q<j;++q)for(var K=f*N+d*H+p*q,X=m*(x-1-G)+g*(w-1-(q*I-U))+y*P,$=0;$<D;++$)V+=c[K+(P*D+$)]*h[X+$];o[i*N+u*M+s*W+P]=V}return r.toTensor()},t.prototype.depthwiseConv2DDerFilter=function(e,t,n){yl([e,t],"depthwiseConv2DDerFilter");for(var r=n.strideHeight,o=n.strideWidth,a=n.filterHeight,i=n.filterWidth,u=Mn(n.filterShape,"float32"),s=n.padInfo.left,c=n.padInfo.top,l=n.outChannels/n.inChannels,f=this.bufferSync(e),d=this.bufferSync(t),p=0;p<a;++p)for(var h=Math.max(0,Math.ceil((c-p)/r)),v=Math.min(n.outHeight,(n.inHeight+c-p)/r),m=0;m<i;++m)for(var g=Math.max(0,Math.ceil((s-m)/o)),y=Math.min(n.outWidth,(n.inWidth+s-m)/o),b=0;b<n.outChannels;++b){for(var x=Math.trunc(b/l),w=b%l,E=0,C=0;C<n.batchSize;++C)for(var k=h;k<v;++k)for(var _=p+k*r-c,S=g;S<y;++S){var R=m+S*o-s;E+=f.get(C,_,R,x)*d.get(C,k,S,b)}u.set(E,p,m,x,w)}return u.toTensor()},t.prototype.tile=function(e,t){return yl(e,"tile"),eo(this.bufferSync(e),t)},t.prototype.pad=function(e,t,n){yl(e,"pad");var r=t.map((function(t,n){return t[0]+e.shape[n]+t[1]})),o=t.map((function(e){return e[0]})),a=this.bufferSync(e),i=Mn(r,e.dtype);0!==n&&i.values.fill(n);for(var u=0;u<e.size;u++){var s=a.indexToLoc(u),c=s.map((function(e,t){return e+o[t]}));i.set.apply(i,[a.get.apply(a,s)].concat(c))}return i.toTensor()},t.prototype.transpose=function(e,t){yl(e,"transpose");for(var n=new Array(e.rank),r=0;r<n.length;r++)n[r]=e.shape[t[r]];var o=this.readSync(e.dataId),a=Mn(n,e.dtype),i=this.bufferSync(e);for(r=0;r<e.size;++r){for(var u=i.indexToLoc(r),s=new Array(u.length),c=0;c<s.length;c++)s[c]=u[t[c]];var l=a.locToIndex(s);a.values[l]=o[r]}return a.toTensor()},t.prototype.gather=function(e,t,n){yl([e,t],"gather");var r=e.shape.slice(),o=this.readSync(t.dataId);r[n]=o.length;for(var a=Mn(r,e.dtype),i=this.bufferSync(e),u=0;u<a.size;++u){var s=a.indexToLoc(u),c=s.slice();c[n]=o[s[n]];var l=i.locToIndex(c);a.values[u]=i.values[l]}return a.toTensor()},t.prototype.batchToSpaceND=function(e,t,n){yl([e],"batchToSpaceND");var r=t.reduce((function(e,t){return e*t})),o=sr(e.shape,t,r),a=cr(o.length,t.length),i=lr(e.shape,t,r),u=fr(n,t.length),s=dr(i,n,t.length);return e.reshape(o).transpose(a).reshape(i).slice(u,s)},t.prototype.spaceToBatchND=function(e,t,n){yl([e],"spaceToBatchND");var r=t.reduce((function(e,t){return e*t})),o=[[0,0]];o.push.apply(o,n);for(var a=1+t.length;a<e.shape.length;++a)o.push([0,0]);var i=e.pad(o),u=sr(i.shape,t,r,!1),s=cr(u.length,t.length,!1),c=lr(i.shape,t,r,!1);return i.reshape(u).transpose(s).reshape(c)},t.prototype.pool=function(e,t,n){yl(e,"pool");for(var r=t.strideHeight,o=t.strideWidth,a=t.dilationHeight,i=t.dilationWidth,u=t.effectiveFilterHeight,s=t.effectiveFilterWidth,c=t.padInfo.top,l=t.padInfo.left,f="max"===n?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,d=this.readSync(e.dataId),p=Mn(t.outShape,e.dtype),h=p.values,v=t.outShape[1]*t.outShape[2]*t.outShape[3],m=t.outShape[2]*t.outShape[3],g=t.outShape[3],y=0;y<t.batchSize;++y)for(var b=y*v,x=y*e.strides[0],w=0;w<t.inChannels;++w)for(var E=0;E<t.outHeight;++E)for(var C=E*r-c,k=Math.max(0,C),_=Math.min(t.inHeight,u+C),S=b+E*m,R=0;R<t.outWidth;++R){for(var T=R*o-l,I=Math.max(0,T),O=Math.min(t.inWidth,s+T),A=f,D=0,N=0,P=k;P<_;P+=a){for(var M=x+P*e.strides[1],F=I;F<O;F+=i){var B=d[M+F*e.strides[2]+w];"max"===n&&B>A?A=B:"avg"===n&&(D+=B,N++)}if(isNaN(A))break}h[S+R*g+w]="avg"===n?D/N:A}return p.toTensor()},t.prototype.maxPool=function(e,t){return this.pool(e,t,"max")},t.prototype.maxPoolPositions=function(e,t){for(var n=Mn(t.outShape,"int32"),r=t.strideHeight,o=t.strideWidth,a=t.dilationHeight,i=t.dilationWidth,u=t.effectiveFilterHeight,s=t.effectiveFilterWidth,c=t.padInfo.top,l=t.padInfo.left,f=this.bufferSync(e),d=0;d<t.batchSize;++d)for(var p=0;p<t.inChannels;++p)for(var h=0;h<t.outHeight;++h){for(var v=h*r-c,m=v;m<0;)m+=a;for(var g=Math.min(t.inHeight,u+v),y=0;y<t.outWidth;++y){for(var b=y*o-l,x=b;x<0;)x+=i;for(var w=Math.min(t.inWidth,s+b),E=Number.NEGATIVE_INFINITY,C=-1,k=m;k<g;k+=a)for(var _=k-v,S=x;S<w;S+=i){var R=S-b,T=f.get(d,k,S,p);T>E&&(E=T,C=_*s+R)}n.set(C,d,h,y,p)}}return n.toTensor()},t.prototype.maxPoolBackprop=function(e,t,n,r){yl([t,n],"maxPoolBackprop");for(var o=this.maxPoolPositions(t,r),a=r.strideHeight,i=r.strideWidth,u=r.dilationHeight,s=r.dilationWidth,c=r.effectiveFilterHeight,l=r.effectiveFilterWidth,f=l-1-r.padInfo.left,d=c-1-r.padInfo.top,p=Mn(t.shape,"float32"),h=this.bufferSync(o),v=this.bufferSync(e),m=0;m<r.batchSize;++m)for(var g=0;g<r.inChannels;++g)for(var y=0;y<r.inHeight;++y)for(var b=0;b<r.inWidth;++b){for(var x=y-d,w=b-f,E=0,C=0;C<c;C+=u){var k=(x+C)/a;if(!(k<0||k>=r.outHeight||Math.floor(k)!==k))for(var _=0;_<l;_+=s){var S=(w+_)/i;if(!(S<0||S>=r.outWidth||Math.floor(S)!==S)){var R=c*l-1-h.get(m,k,S,g)===C*l+_?1:0;0!==R&&(E+=v.get(m,k,S,g)*R)}}}p.set(E,m,y,b,g)}return p.toTensor()},t.prototype.avgPoolBackprop=function(e,t,n){yl([e,t],"avgPoolBackprop");for(var r=n.strideHeight,o=n.strideWidth,a=n.filterHeight,i=n.filterWidth,u=n.dilationHeight,s=n.dilationWidth,c=n.effectiveFilterHeight,l=n.effectiveFilterWidth,f=l-1-n.padInfo.left,d=c-1-n.padInfo.top,p=Mn(t.shape,"float32"),h=1/(a*i),v=this.bufferSync(e),m=0;m<n.batchSize;++m)for(var g=0;g<n.inChannels;++g)for(var y=0;y<n.inHeight;++y)for(var b=0;b<n.inWidth;++b){for(var x=y-d,w=b-f,E=0,C=0;C<c;C+=u){var k=(x+C)/r;if(!(k<0||k>=n.outHeight||Math.floor(k)!==k))for(var _=0;_<l;_+=s){var S=(w+_)/o;S<0||S>=n.outWidth||Math.floor(S)!==S||(E+=v.get(m,k,S,g))}}p.set(E*h,m,y,b,g)}return p.toTensor()},t.prototype.pool3d=function(e,t,n){yl(e,"pool3d");for(var r=t.strideDepth,o=t.strideHeight,a=t.strideWidth,i=t.dilationDepth,u=t.dilationHeight,s=t.dilationWidth,c=t.effectiveFilterDepth,l=t.effectiveFilterHeight,f=t.effectiveFilterWidth,d=t.padInfo.front,p=t.padInfo.top,h=t.padInfo.left,v="max"===n?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,m=this.readSync(e.dataId),g=Mn(t.outShape,e.dtype),y=g.values,b=t.outShape[1]*t.outShape[2]*t.outShape[3]*t.outShape[4],x=t.outShape[2]*t.outShape[3]*t.outShape[4],w=t.outShape[3]*t.outShape[4],E=t.outShape[4],C=0;C<t.batchSize;++C)for(var k=C*b,_=C*e.strides[0],S=0;S<t.inChannels;++S)for(var R=0;R<t.outDepth;++R){for(var T=R*r-d,I=T;I<0;)I+=i;for(var O=Math.min(t.inDepth,c+T),A=k+R*x,D=0;D<t.outHeight;++D){for(var N=D*o-p,P=N;P<0;)P+=u;for(var M=Math.min(t.inHeight,l+N),F=A+D*w,B=0;B<t.outWidth;++B){for(var L=B*a-h,W=L;W<0;)W+=s;for(var U=Math.min(t.inWidth,f+L),z=F+B*E,j=v,V=0,H=0,G=I;G<O;G+=i){for(var q=_+G*e.strides[1],K=P;K<M;K+=u){for(var X=q+K*e.strides[2],$=W;$<U;$+=s){var Y=m[X+$*e.strides[3]+S];if("max"===n&&Y>j?j=Y:"avg"===n&&(V+=Y,H++),isNaN(j))break}if(isNaN(j))break}if(isNaN(j))break}y[z+S]="avg"===n?V/H:j}}}return g.toTensor()},t.prototype.avgPool3d=function(e,t){return yl(e,"avgPool3d"),this.pool3d(e,t,"avg").toFloat()},t.prototype.avgPool3dBackprop=function(e,t,n){yl([e,t],"avgPool3dBackprop");for(var r=n.strideDepth,o=n.strideHeight,a=n.strideWidth,i=n.filterDepth,u=n.filterHeight,s=n.filterWidth,c=n.dilationDepth,l=n.dilationHeight,f=n.dilationWidth,d=n.effectiveFilterDepth,p=n.effectiveFilterHeight,h=n.effectiveFilterWidth,v=d-1-n.padInfo.front,m=h-1-n.padInfo.left,g=p-1-n.padInfo.top,y=Mn(t.shape,"float32"),b=1/(i*u*s),x=this.bufferSync(e),w=0;w<n.batchSize;++w)for(var E=0;E<n.inChannels;++E)for(var C=0;C<n.inDepth;++C)for(var k=0;k<n.inHeight;++k)for(var _=0;_<n.inWidth;++_){for(var S=C-v,R=k-g,T=_-m,I=0,O=0;O<d;O+=c){var A=(S+O)/r;if(!(A<0||A>=n.outDepth||Math.floor(A)!==A))for(var D=0;D<p;D+=l){var N=(R+D)/o;if(!(N<0||N>=n.outHeight||Math.floor(N)!==N))for(var P=0;P<h;P+=f){var M=(T+P)/a;M<0||M>=n.outWidth||Math.floor(M)!==M||(I+=x.get(w,A,N,M,E))}}}y.set(I*b,w,C,k,_,E)}return y.toTensor()},t.prototype.maxPool3d=function(e,t){return yl(e,"maxPool3d"),this.pool3d(e,t,"max").toFloat()},t.prototype.maxPool3dPositions=function(e,t){for(var n=Mn(t.outShape,"int32"),r=t.strideDepth,o=t.strideHeight,a=t.strideWidth,i=t.dilationDepth,u=t.dilationHeight,s=t.dilationWidth,c=t.effectiveFilterDepth,l=t.effectiveFilterHeight,f=t.effectiveFilterWidth,d=t.padInfo.front,p=t.padInfo.top,h=t.padInfo.left,v=this.bufferSync(e),m=0;m<t.batchSize;++m)for(var g=0;g<t.inChannels;++g)for(var y=0;y<t.outDepth;++y){for(var b=y*r-d,x=b;x<0;)x+=i;for(var w=Math.min(t.inDepth,c+b),E=0;E<t.outHeight;++E){for(var C=E*o-p,k=C;k<0;)k+=u;for(var _=Math.min(t.inHeight,l+C),S=0;S<t.outWidth;++S){for(var R=S*a-h,T=R;T<0;)T+=s;for(var I=Math.min(t.inWidth,f+R),O=Number.NEGATIVE_INFINITY,A=-1,D=x;D<w;D+=i)for(var N=D-b,P=k;P<_;P+=u)for(var M=P-C,F=T;F<I;F+=s){var B=F-R,L=v.get(m,D,P,F,g);L>=O&&(O=L,A=N*l*f+M*l+B)}n.set(A,m,y,E,S,g)}}}return n.toTensor()},t.prototype.maxPool3dBackprop=function(e,t,n,r){yl([t,n],"maxPool3dBackprop");for(var o=this.maxPool3dPositions(t,r),a=r.strideDepth,i=r.strideHeight,u=r.strideWidth,s=r.dilationDepth,c=r.dilationHeight,l=r.dilationWidth,f=r.effectiveFilterDepth,d=r.effectiveFilterHeight,p=r.effectiveFilterWidth,h=f-1-r.padInfo.front,v=p-1-r.padInfo.left,m=d-1-r.padInfo.top,g=Mn(t.shape,"float32"),y=this.bufferSync(o),b=this.bufferSync(e),x=0;x<r.batchSize;++x)for(var w=0;w<r.inChannels;++w)for(var E=0;E<r.inDepth;++E)for(var C=0;C<r.inHeight;++C)for(var k=0;k<r.inWidth;++k){for(var _=E-h,S=C-m,R=k-v,T=0,I=0;I<f;I+=s){var O=(_+I)/a;if(!(O<0||O>=r.outDepth||Math.floor(O)!==O))for(var A=0;A<d;A+=c){var D=(S+A)/i;if(!(D<0||D>=r.outHeight||Math.floor(D)!==D))for(var N=0;N<p;N+=l){var P=(R+N)/u;if(!(P<0||P>=r.outWidth||Math.floor(P)!==P)){var M=f*d*p-1-y.get(x,O,D,P,w)===I*d*p+A*p+N?1:0;0!==M&&(T+=b.get(x,O,D,P,w)*M)}}}}g.set(T,x,E,C,k,w)}return g.toTensor()},t.prototype.cast=function(e,t){return Hr(e,t,this)},t.prototype.reshape=function(e,t){return Gr(e,t)},t.prototype.avgPool=function(e,t){return yl(e,"avgPool"),this.pool(e,t,"avg").toFloat()},t.prototype.resizeBilinear=function(e,t,n,r){yl(e,"resizeBilinear");for(var o=e.shape,a=o[0],i=o[1],u=o[2],s=o[3],c=this.readSync(e.dataId),l=new Float32Array(S([a,t,n,s])),f=[r&&t>1?i-1:i,r&&n>1?u-1:u],d=[r&&t>1?t-1:t,r&&n>1?n-1:n],p=0,h=f[0]/d[0],v=f[1]/d[1],m=0;m<a;m++)for(var g=0;g<t;g++)for(var y=h*g,b=Math.floor(y),x=y-b,w=Math.min(i-1,Math.ceil(y)),E=m*e.strides[0]+b*e.strides[1],C=m*e.strides[0]+w*e.strides[1],k=0;k<n;k++)for(var _=v*k,R=Math.floor(_),T=_-R,I=Math.min(u-1,Math.ceil(_)),O=E+R*e.strides[2],A=C+R*e.strides[2],D=E+I*e.strides[2],N=C+I*e.strides[2],P=0;P<s;P++){var M=c[O+P],F=c[A+P],B=M+(c[D+P]-M)*T,L=B+(F+(c[N+P]-F)*T-B)*x;l[p++]=L}return rn(l,[a,t,n,s])},t.prototype.resizeBilinearBackprop=function(e,t,n){yl([e,t],"resizeBilinearBackprop");for(var r=t.shape,o=r[0],a=r[1],i=r[2],u=r[3],s=e.shape,c=s[1],l=s[2],f=new Float32Array(o*a*i*u),d=[n&&c>1?a-1:a,n&&l>1?i-1:i],p=[n&&c>1?c-1:c,n&&l>1?l-1:l],h=d[0]/p[0],v=d[1]/p[1],m=this.readSync(e.dataId),g=0,y=0;y<o;y++)for(var b=y*t.strides[0],x=0;x<c;x++)for(var w=x*h,E=Math.floor(w),C=Math.min(Math.ceil(w),a-1),k=b+E*t.strides[1],_=b+C*t.strides[1],S=w-E,R=1-S,T=0;T<l;T++)for(var I=T*v,O=Math.floor(I),A=Math.min(Math.ceil(I),i-1),D=I-O,N=1-D,P=k+O*t.strides[2],M=k+A*t.strides[2],F=_+O*t.strides[2],B=_+A*t.strides[2],L=R*N,W=R*D,U=S*N,z=S*D,j=0;j<u;j++){var V=m[g++];f[P+j]+=V*L,f[M+j]+=V*W,f[F+j]+=V*U,f[B+j]+=V*z}return ln(f,[o,i,a,u],t.dtype)},t.prototype.resizeNearestNeighbor=function(e,t,n,r){yl(e,"resizeNearestNeighbor");for(var o=e.shape,a=o[0],i=o[1],u=o[2],s=o[3],c=this.readSync(e.dataId),l=new Float32Array(a*t*n*s),f=[r&&t>1?i-1:i,r&&n>1?u-1:u],d=[r&&t>1?t-1:t,r&&n>1?n-1:n],p=f[0]/d[0],h=f[1]/d[1],v=0,m=0;m<a;m++)for(var g=m*e.strides[0],y=0;y<t;y++)for(var b=p*y,x=g+Math.min(i-1,r?Math.round(b):Math.floor(b))*e.strides[1],w=0;w<n;w++)for(var E=h*w,C=x+Math.min(u-1,r?Math.round(E):Math.floor(E))*e.strides[2],k=0;k<s;k++){var _=c[C+k];l[v++]=_}return rn(l,[a,t,n,s],e.dtype)},t.prototype.resizeNearestNeighborBackprop=function(e,t,n){yl([e,t],"resizeNearestNeighborBackprop");for(var r=t.shape,o=r[0],a=r[1],i=r[2],u=r[3],s=e.shape,c=s[1],l=s[2],f=new Float32Array(o*a*i*u),d=this.readSync(e.dataId),p=[n&&c>1?a-1:a,n&&l>1?i-1:i],h=[n&&c>1?c-1:c,n&&l>1?l-1:l],v=p[0]/h[0],m=p[1]/h[1],g=1/v,y=1/m,b=2*Math.ceil(g)+2,x=2*Math.ceil(y)+2,w=0;w<o;w++)for(var E=w*t.strides[0],C=0;C<a;C++)for(var k=E+C*t.strides[1],_=Math.floor(C*g),S=Math.floor(_-b/2),R=0;R<i;R++)for(var T=k+R*t.strides[2],I=Math.floor(R*y),O=Math.floor(I-x/2),A=0;A<u;A++){for(var D=0,N=0;N<b;N++){var P=N+S;if(!(P<0||P>=c)){var M=E+P*e.strides[1],F=P*v;if(C===Math.min(a-1,n?Math.round(F):Math.floor(F)))for(var B=0;B<x;B++){var L=B+O;if(!(L<0||L>=l)){var W=M+L*e.strides[2],U=L*m;R===Math.min(i-1,n?Math.round(U):Math.floor(U))&&(D+=d[W+A])}}}}f[T+A]=D}return ln(f,t.shape,t.dtype)},t.prototype.batchNormalization=function(e,t,n,r,o,a){yl([e,t,n,o,a],"batchNorm");for(var i=this.readSync(e.dataId),u=this.readSync(t.dataId),s=this.readSync(n.dataId),c=o?this.readSync(o.dataId):new Float32Array([1]),l=a?this.readSync(a.dataId):new Float32Array([0]),f=new Float32Array(i.length),d=l.length,p=c.length,h=s.length,v=u.length,m=0,g=0,y=0,b=0,x=0;x<i.length;++x)f[x]=l[m++]+(i[x]-u[g++])*c[y++]/Math.sqrt(s[b++]+r),m>=d&&(m=0),g>=v&&(g=0),y>=p&&(y=0),b>=h&&(b=0);return ln(f,e.shape)},t.prototype.localResponseNormalization4D=function(e,t,n,r,o){yl(e,"localResponseNormalization4D");var a=e.shape[3],i=a-1,u=this.readSync(e.dataId),s=e.size,c=new Float32Array(s);function l(e){for(var n=e%a,r=e-n+Math.max(0,n-t),o=e-n+Math.min(n+t,i),s=0;r<=o;r++){var c=u[r];s+=c*c}return s}for(var f=0;f<s;f++){var d=l(f),p=u[f]*Math.pow(n+r*d,-o);c[f]=p}return ln(c,e.shape)},t.prototype.LRNGrad=function(e,t,n,r,o,a,i){yl(e,"LRNGrad");for(var u=e.shape[3],s=this.readSync(e.dataId),c=this.readSync(t.dataId),l=this.readSync(n.dataId),f=new Float32Array(e.size),d=e.size,p=0;p<d;p++){for(var h=p%u,v=p-h+Math.max(0,h-r),m=p-h+Math.min(u,h+r+1),g=0,y=v;y<m;y++)g+=Math.pow(c[y],2);for(g=a*g+o,y=v;y<m;y++){var b=-2*a*i*c[y]*l[p]/g;p===y&&(b+=Math.pow(g,-i)),b*=s[p],f[y]+=b}}return ln(f,e.shape)},t.prototype.multinomial=function(e,t,n,r){yl(e,"multinomial");for(var o=t?e:kr(e),a=o.shape[0],i=o.shape[1],u=dn([a,n],"int32"),s=this.readSync(u.dataId),c=this.readSync(o.dataId),l=0;l<a;++l){var f=l*i,d=new Float32Array(i-1);d[0]=c[f];for(var p=1;p<d.length;++p)d[p]=d[p-1]+c[f+p];for(var h=An(r.toString()),v=l*n,m=0;m<n;++m){var g=h();s[v+m]=d.length;for(var y=0;y<d.length;y++)if(g<d[y]){s[v+m]=y;break}}}return u},t.prototype.oneHot=function(e,t,n,r){yl(e,"oneHot");var o=new Float32Array(e.size*t);o.fill(r);for(var a=this.readSync(e.dataId),i=0;i<e.size;++i)a[i]>=0&&a[i]<t&&(o[i*t+a[i]]=n);return sn(o,[e.size,t],"int32")},t.prototype.nonMaxSuppression=function(e,t,n,r,o){return yl(e,"nonMaxSuppression"),Qr(this.readSync(e.dataId),this.readSync(t.dataId),n,r,o)},t.prototype.fft=function(e){return this.fftBatch(e,!1)},t.prototype.ifft=function(e){return this.fftBatch(e,!0)},t.prototype.fftBatch=function(e,t){for(var n=e.shape[0],r=e.shape[1],o=Mn(e.shape,"float32"),a=Mn(e.shape,"float32"),i=tn(e).as2D(n,r),u=nn(e).as2D(n,r),s=0;s<n;s++)for(var c=i.slice([s,0],[1,r]),l=u.slice([s,0],[1,r]),f=en(c,l),d=this.readSync(this.fftImpl(f,t).dataId),p=0;p<r;p++){var h=Xr(d,p);o.values[s*r+p]=h.real,a.values[s*r+p]=h.imag}return en(o.toTensor(),a.toTensor()).as2D(n,r)},t.prototype.fftImpl=function(e,t){var n=e.as1D(),r=n.size;if(this.isExponentOf2(r)){var o=this.fftRadix2(n,r,t).as2D(e.shape[0],e.shape[1]);return t&&(o=en(tn(o).div(an(r)),nn(o).div(an(r)))),o}var a=this.readSync(e.dataId),i=function(e){for(var t=new Float32Array(e.length/2),n=new Float32Array(e.length/2),r=0;r<e.length;r+=2)t[r/2]=e[r],n[r/2]=e[r+1];return{real:t,imag:n}}(this.fourierTransformByMatmul(a,r,t));return en(i.real,i.imag).as2D(e.shape[0],e.shape[1])},t.prototype.isExponentOf2=function(e){return 0==(e&e-1)},t.prototype.fftRadix2=function(e,t,n){if(1===t)return e;var r=this.readSync(e.dataId),o=t/2,a=function(e){for(var t=Math.ceil(e.length/4),n=new Float32Array(t),r=new Float32Array(t),o=0;o<e.length;o+=4)n[Math.floor(o/4)]=e[o],r[Math.floor(o/4)]=e[o+1];return{real:n,imag:r}}(r),i=en(a.real,a.imag).as1D(),u=function(e){for(var t=Math.floor(e.length/4),n=new Float32Array(t),r=new Float32Array(t),o=2;o<e.length;o+=4)n[Math.floor(o/4)]=e[o],r[Math.floor(o/4)]=e[o+1];return{real:n,imag:r}}(r),s=en(u.real,u.imag).as1D();i=this.fftRadix2(i,o,n),s=this.fftRadix2(s,o,n);var c=function(e,t){for(var n=new Float32Array(e/2),r=new Float32Array(e/2),o=0;o<Math.ceil(e/2);o++){var a=(t?2:-2)*Math.PI*(o/e);n[o]=Math.cos(a),r[o]=Math.sin(a)}return{real:n,imag:r}}(t,n),l=en(c.real,c.imag).mul(s),f=i.add(l),d=i.sub(l),p=tn(f).concat(tn(d)),h=nn(f).concat(nn(d));return en(p,h).as1D()},t.prototype.fourierTransformByMatmul=function(e,t,n){for(var r=new Float32Array(2*t),o=0;o<t;o++){for(var a=0,i=0,u=0;u<t;u++){var s=Yr(o*u,t,n),c=Xr(e,u);a+=c.real*s.real-c.imag*s.imag,i+=c.real*s.imag+c.imag*s.real}n&&(a/=t,i/=t),$r(r,a,i,o)}return r},t.prototype.depthToSpace=function(e,t,n){E("NHWC"===n,(function(){return"Only NHWC dataFormat supported on CPU for depthToSpace. Got "+n})),E(t>1,(function(){return"blockSize should be > 1 for depthToSpace, but was: "+t}));for(var r=e.shape[0],o=e.shape[1],a=e.shape[2],i=e.shape[3],u=o*t,s=a*t,c=i/(t*t),l=this.readSync(e.dataId),f=new Float32Array(r*u*s*c),d=0,p=0;p<r;++p)for(var h=0;h<u;++h)for(var v=Math.floor(h/t),m=h%t,g=0;g<s;++g)for(var y=Math.floor(g/t),b=(m*t+g%t)*c,x=0;x<c;++x){var w=x+b+i*(y+a*(v+o*p));f[d++]=l[w]}return ln(f,[r,u,s,c])},t.prototype.broadcastedBinaryOp=function(e,t,n,r){var o=Ar(e.shape,t.shape),a=Mn(o,n),i=this.readSync(e.dataId),u=this.readSync(t.dataId),s=Ir(e.shape,o),c=Ir(t.shape,o),l=a.values;if(s.length+c.length===0)for(var f=0;f<l.length;++f)l[f]=r(i[f%i.length],u[f%u.length]);else{var d=this.bufferSync(e),p=this.bufferSync(t),h=function(n){var o=a.indexToLoc(n),f=o.slice(-e.rank);s.forEach((function(e){return f[e]=0}));var h=d.locToIndex(f),v=o.slice(-t.rank);c.forEach((function(e){return v[e]=0}));var m=p.locToIndex(v);l[n]=r(i[h],u[m])};for(f=0;f<l.length;++f)h(f)}return a.toTensor()},t.prototype.broadcastedBinaryComplexOp=function(e,t,n){var r=Ar(e.shape,t.shape),o=Mn(r,"float32"),a=Mn(r,"float32"),i=this.readSync(e.dataId),u=this.readSync(t.dataId),s=Ir(e.shape,r),c=Ir(t.shape,r),l=o.values,f=a.values;if(s.length+c.length===0)for(var d=0;d<l.length;d++){var p=d%i.length,h=d%u.length,v=n(i[2*p],i[2*p+1],u[2*h],u[2*h+1]);l[d]=v.real,f[d]=v.imag}else{var m=this.bufferSync(this.data.get(e.dataId).complexTensors.real),g=this.bufferSync(this.data.get(t.dataId).complexTensors.real),y=function(r){var a=o.indexToLoc(r),d=a.slice(-e.rank);s.forEach((function(e){return d[e]=0}));var p=m.locToIndex(d),h=a.slice(-t.rank);c.forEach((function(e){return h[e]=0}));var v=g.locToIndex(h),y=n(i[2*p],i[2*p+1],u[2*v],u[2*v+1]);l[r]=y.real,f[r]=y.imag};for(d=0;d<l.length;d++)y(d)}return this.complex(o.toTensor(),a.toTensor())},t.prototype.split=function(e,t,n){return Zr(e,t,n)},t.prototype.dispose=function(){},t.prototype.floatPrecision=function(){return 32},t.prototype.epsilon=function(){return 1e-7},t.prototype.cropAndResize=function(e,t,n,r,o,a){for(var i=e.shape,u=i[0],s=i[1],c=i[2],l=i[3],f=t.shape[0],d=r[0],p=r[1],h=Mn([f,d,p,l],"float32"),v=this.readSync(t.dataId),m=this.readSync(n.dataId),g=this.readSync(e.dataId),y=e.strides,b=h.strides,x=0;x<f;x++){var w=4*x,E=v[w],C=v[w+1],k=v[w+2],_=v[w+3],S=m[x];if(!(S>=u))for(var R=d>1?(k-E)*(s-1)/(d-1):0,T=p>1?(_-C)*(c-1)/(p-1):0,I=0;I<d;I++){var O=d>1?E*(s-1)+I*R:.5*(E+k)*(s-1);if(O<0||O>s-1)for(var A=0;A<p;A++)for(var D=0;D<l;D++){var N=D+A*b[2]+I*b[1]+x*b[0];h.values[N]=a}else if("bilinear"===o){var P=Math.floor(O),M=Math.ceil(O),F=O-P;for(A=0;A<p;A++)if((G=p>1?C*(c-1)+A*T:.5*(C+_)*(c-1))<0||G>c-1)for(D=0;D<l;D++)N=D+A*b[2]+I*b[1]+x*b[0],h.values[N]=a;else{var B=Math.floor(G),L=Math.ceil(G),W=G-B;for(D=0;D<l;D++){var U=g[N=D+B*y[2]+P*y[1]+S*y[0]],z=g[N=D+L*y[2]+P*y[1]+S*y[0]],j=g[N=D+B*y[2]+M*y[1]+S*y[0]],V=U+(z-U)*W,H=j+(g[N=D+L*y[2]+M*y[1]+S*y[0]]-j)*W;N=D+A*b[2]+I*b[1]+x*b[0],h.values[N]=V+(H-V)*F}}}else for(A=0;A<p;++A){var G;if((G=p>1?C*(c-1)+A*T:.5*(C+_)*(c-1))<0||G>c-1)for(D=0;D<l;D++)N=D+A*b[2]+I*b[1]+x*b[0],h.values[N]=a;else{var q=Math.round(G),K=Math.round(O);for(D=0;D<l;D++){var X=D+q*y[2]+K*y[1]+S*y[0],$=D+A*b[2]+I*b[1]+x*b[0];h.values[$]=g[X]}}}}}return h.toTensor()},t.prototype.sparseToDense=function(e,t,n,r){var o=vr(0,e,n),a=o.sliceRank,i=o.numUpdates,u=o.sliceSize,s=o.strides,c=o.outputSize;return this.scatter(e,t,n,c,u,i,a,s,r,!1)},t.prototype.gatherND=function(e,t){var n=t.shape,r=n[n.length-1],o=pr(e,t),a=o[0],i=o[1],u=o[2],s=o[3];if(0===i)return rn([],a,e.dtype);for(var c=new le([i,u],e.dtype),l=this.readSync(t.dataId),f=this.readSync(e.dataId),d=0;d<i;d++){for(var p=[],h=0,v=0;v<r;v++){var m=l[d*r+v];h+=m*s[v],p.push(m)}if(h<0||h>=e.size/u)throw new Error("Invalid indices: "+p+" does not index into "+e.shape);for(var g=0;g<u;g++)c.values[d*u+g]=f[h*u+g]}return c.toTensor().reshape(a)},t.prototype.scatterND=function(e,t,n){var r=vr(0,e,n),o=r.sliceRank,a=r.numUpdates,i=r.sliceSize,u=r.strides,s=r.outputSize,c=an(0);return this.scatter(e,t,n,s,i,a,o,u,c,!0)},t.prototype.fill=function(e,t,n){var r=B(n=n||K(t),S(e));return r.fill(t),Oe.makeTensor(r,e,n,this)},t.prototype.onesLike=function(e){if("string"===e.dtype)throw new Error("onesLike is not supported for string tensors");return this.fill(e.shape,1,e.dtype)},t.prototype.zerosLike=function(e){var t=B(e.dtype,S(e.shape));return this.makeOutput(t,e.shape,e.dtype)},t.prototype.linspace=function(e,t,n){return qr(e,t,n)},t.prototype.scatter=function(e,t,n,r,o,a,i,u,s,c){var l=[r/o,o],f=this.readSync(e.dataId),d=this.readSync(t.dataId);if(0===r)return rn([],n,t.dtype);var p=new le(l,t.dtype);p.values.fill(this.readSync(s.dataId)[0]);for(var h=0;h<a;h++){for(var v=[],m=0,g=0;g<i;g++){var y=f[h*i+g];v.push(y),m+=y*u[g]}if(m<0||m>=r/o)throw new Error("Invalid indices: "+v+" does not index into "+n);for(var b=0;b<o;b++)c?p.values[m*o+b]+=d[h*o+b]:p.values[m*o+b]=0===t.rank?d[0]:d[h*o+b]}return p.toTensor().reshape(n)},t}(Rr);Oe.registerBackend("cpu",(function(){return new xl}),1),m({kernelName:"Square",backendName:"cpu",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=t.x,o=n;yl(r,"square");for(var a=o.data.get(r.dataId).values,i=new Float32Array(a.length),u=0;u<a.length;++u){var s=a[u];i[u]=s*s}return{dataId:o.write(i,r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}}),m({kernelName:"Square",backendName:"webgl",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=t.x,o=n,a=new hi(r.shape,"return x * x;");return o.runWebGLProgram(a,[r],r.dtype)}});var wl,El=function(e){this.variableNames=["A"];var t=so(),n=e[0],r=e[1];this.outputShape=e,this.userCode="\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2("+r+".0, "+n+".0);\n\n vec4 values = "+t.texture2D+"(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n setOutput(floor(value * 255.0 + 0.5));\n }\n "},Cl=function(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;var t=so(),n=e[0],r=e[1];this.outputShape=e,this.userCode="\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n\n vec4 result = vec4(0.);\n\n for(int row=0; row<=1; row++) {\n for(int col=0; col<=1; col++) {\n texC = coords[1] + row;\n depth = coords[2] + col;\n\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2("+r+".0, "+n+".0);\n vec4 values = "+t.texture2D+"(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n result[row * 2 + col] = floor(value * 255.0 + 0.5);\n }\n }\n\n "+t.output+" = result;\n }\n "};m({kernelName:"FromPixels",backendName:"webgl",kernelFunc:function(e){var t=e.inputs,n=e.backend,r=e.attrs,o=t.pixels,a=r.numChannels,i="undefined"!=typeof HTMLVideoElement&&o instanceof HTMLVideoElement,u="undefined"!=typeof HTMLImageElement&&o instanceof HTMLImageElement,s=i?[o.videoWidth,o.videoHeight]:[o.width,o.height],c=s[0],l=s[1],d=[l,c],p=[l,c,a];(u||i)&&(null==wl&&(wl=document.createElement("canvas").getContext("2d")),wl.canvas.width=c,wl.canvas.height=l,wl.drawImage(o,0,0,c,l),o=wl.canvas);var h=n.makeTensorInfo(d,"int32");n.texData.get(h.dataId).usage=Pe.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(h.dataId),o);var v=f().getBool("WEBGL_PACK")?new Cl(p):new El(p),m=n.runWebGLProgram(v,[h],"int32");return n.disposeData(h.dataId),m}});var kl=function(){function e(){}return e.prototype.fetch=function(e,t){return fetch(e,t)},e.prototype.now=function(){return performance.now()},e.prototype.encode=function(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error("Browser's encoder only supports utf-8, but got "+t);return null==this.textEncoder&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)},e.prototype.decode=function(e,t){return new TextDecoder(t).decode(e)},e}();f().get("IS_BROWSER")&&f().setPlatform("browser",new kl);var _l,Sl=function(){function e(){this.util=n(63),this.textEncoder=new this.util.TextEncoder}return e.prototype.fetch=function(e,t){return null!=f().global.fetch?f().global.fetch(e,t):(null==_l&&(_l=n(62)),_l(e,t))},e.prototype.now=function(){var e=r.hrtime();return 1e3*e[0]+e[1]/1e6},e.prototype.encode=function(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error("Node built-in encoder only supports utf-8, but got "+t);return this.textEncoder.encode(e)},e.prototype.decode=function(e,t){return 0===e.length?"":new this.util.TextDecoder(t).decode(e)},e}();f().get("IS_NODE")&&f().setPlatform("node",new Sl);var Rl={float32:4,int32:4,uint16:2,uint8:1,bool:1};function Tl(e,t){for(var n={},r=0,o=function(t){var o=t.name,a=t.dtype,i=t.shape,u=S(i),s=void 0;if("quantization"in t){var c=t.quantization;if("uint8"!==c.dtype&&"uint16"!==c.dtype)throw new Error("Weight "+t.name+" has unknown quantization dtype "+c.dtype+". Supported quantization dtypes are: 'uint8' and 'uint16'.");var l=Rl[c.dtype],f=e.slice(r,r+u*l),d="uint8"===c.dtype?new Uint8Array(f):new Uint16Array(f);if("float32"===a)s=Float32Array.from(d,(function(e){return e*c.scale+c.min}));else{if("int32"!==a)throw new Error("Unsupported dtype in weight '"+o+"': "+a);s=Int32Array.from(d,(function(e){return Math.round(e*c.scale+c.min)}))}r+=u*l}else if("string"===a){var p=S(t.shape);s=[];for(var h=0;h<p;h++){var v=new Uint32Array(e.slice(r,r+4))[0];r+=4;var m=new Uint8Array(e.slice(r,r+v));s.push(m),r+=v}}else{var g=Rl[a];if(f=e.slice(r,r+u*g),"float32"===a)s=new Float32Array(f);else if("int32"===a)s=new Int32Array(f);else{if("bool"!==a)throw new Error("Unsupported dtype in weight '"+o+"': "+a);s=new Uint8Array(f)}r+=u*g}n[o]=rn(s,i,a)},a=0,i=t;a<i.length;a++)o(i[a]);return n}function Il(e){if(null===e)throw new Error("Invalid input value: "+JSON.stringify(e));var t=0,n=[];e.forEach((function(e){if(t+=e.byteLength,n.push(e.byteLength===e.buffer.byteLength?e:new e.constructor(e)),!(e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array))throw new Error("Unsupported TypedArray subtype: "+e.constructor.name)}));var r=new Uint8Array(t),o=0;return n.forEach((function(e){r.set(new Uint8Array(e.buffer),o),o+=e.byteLength})),r.buffer}var Ol=void 0!==o&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function Al(e){return Ol?o.byteLength(e):new Blob([e]).size}function Dl(e){var t=0;e.forEach((function(e){t+=e.byteLength}));var n=new Uint8Array(t),r=0;return e.forEach((function(e){n.set(new Uint8Array(e),r),r+=e.byteLength})),n.buffer}function Nl(e){for(e=e.trim();e.endsWith("/");)e=e.slice(0,e.length-1);var t=e.split("/");return t[t.length-1]}function Pl(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:null==e.modelTopology?0:Al(JSON.stringify(e.modelTopology)),weightSpecsBytes:null==e.weightSpecs?0:Al(JSON.stringify(e.weightSpecs)),weightDataBytes:null==e.weightData?0:e.weightData.byteLength}}var Ml=function(){function e(){this.saveRouters=[],this.loadRouters=[]}return e.getInstance=function(){return null==e.instance&&(e.instance=new e),e.instance},e.registerSaveRouter=function(t){e.getInstance().saveRouters.push(t)},e.registerLoadRouter=function(t){e.getInstance().loadRouters.push(t)},e.getSaveHandlers=function(t){return e.getHandlers(t,"save")},e.getLoadHandlers=function(t,n){return e.getHandlers(t,"load",n)},e.getHandlers=function(t,n,r){var o=[];return("load"===n?e.getInstance().loadRouters:e.getInstance().saveRouters).forEach((function(e){var n=e(t,r);null!==n&&o.push(n)})),o},e}(),Fl="://",Bl=function(){function e(){this.managers={}}return e.getInstance=function(){return null==e.instance&&(e.instance=new e),e.instance},e.registerManager=function(t,n){E(null!=t,(function(){return"scheme must not be undefined or null."})),t.endsWith(Fl)&&(t=t.slice(0,t.indexOf(Fl))),E(t.length>0,(function(){return"scheme must not be an empty string."}));var r=e.getInstance();E(null==r.managers[t],(function(){return"A model store manager is already registered for scheme '"+t+"'."})),r.managers[t]=n},e.getManager=function(e){var t=this.getInstance().managers[e];if(null==t)throw new Error("Cannot find model manager for scheme '"+e+"'");return t},e.getSchemes=function(){return Object.keys(this.getInstance().managers)},e}();function Ll(e){if(-1===e.indexOf(Fl))throw new Error("The url string provided does not contain a scheme. Supported schemes are: "+Bl.getSchemes().join(","));return{scheme:e.split(Fl)[0],path:e.split(Fl)[1]}}function Wl(e,t,n){return void 0===n&&(n=!1),s(this,void 0,void 0,(function(){var r,o,a,i,u,s,l,f,d;return c(this,(function(c){switch(c.label){case 0:return E(e!==t,(function(){return"Old path and new path are the same: '"+e+"'"})),E((r=Ml.getLoadHandlers(e)).length>0,(function(){return"Copying failed because no load handler is found for source URL "+e+"."})),E(r.length<2,(function(){return"Copying failed because more than one ("+r.length+") load handlers for source URL "+e+"."})),o=r[0],E((a=Ml.getSaveHandlers(t)).length>0,(function(){return"Copying failed because no save handler is found for destination URL "+t+"."})),E(a.length<2,(function(){return"Copying failed because more than one ("+r.length+") save handlers for destination URL "+t+"."})),i=a[0],u=Ll(e).scheme,s=Ll(e).path,l=u===Ll(e).scheme,[4,o.load()];case 1:return f=c.sent(),n&&l?[4,Bl.getManager(u).removeModel(s)]:[3,3];case 2:c.sent(),c.label=3;case 3:return[4,i.save(f)];case 4:return d=c.sent(),!n||l?[3,6]:[4,Bl.getManager(u).removeModel(s)];case 5:c.sent(),c.label=6;case 6:return[2,d.modelArtifactsInfo]}}))}))}var Ul="models_store",zl="model_info_store";function jl(){if(!f().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");var e=window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(null==t)throw new Error("The current browser does not appear to support IndexedDB.");return t}function Vl(e){var t=e.result;t.createObjectStore(Ul,{keyPath:"modelPath"}),t.createObjectStore(zl,{keyPath:"modelPath"})}var Hl=function(){function e(e){if(this.indexedDB=jl(),null==e||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}return e.prototype.save=function(e){return s(this,void 0,void 0,(function(){return c(this,(function(t){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return[2,this.databaseAction(this.modelPath,e)]}))}))},e.prototype.load=function(){return s(this,void 0,void 0,(function(){return c(this,(function(e){return[2,this.databaseAction(this.modelPath)]}))}))},e.prototype.databaseAction=function(e,t){var n=this;return new Promise((function(e,r){var o=n.indexedDB.open("tensorflowjs",1);o.onupgradeneeded=function(){return Vl(o)},o.onsuccess=function(){var a=o.result;if(null==t){var i=a.transaction(Ul,"readonly"),u=i.objectStore(Ul).get(n.modelPath);u.onsuccess=function(){if(null==u.result)return a.close(),r(new Error("Cannot find model with path '"+n.modelPath+"' in IndexedDB."));e(u.result.modelArtifacts)},u.onerror=function(e){return a.close(),r(u.error)},i.oncomplete=function(){return a.close()}}else{var s,c=Pl(t),l=a.transaction(zl,"readwrite"),f=l.objectStore(zl),d=f.put({modelPath:n.modelPath,modelArtifactsInfo:c});d.onsuccess=function(){var o=(s=a.transaction(Ul,"readwrite")).objectStore(Ul).put({modelPath:n.modelPath,modelArtifacts:t,modelArtifactsInfo:c});o.onsuccess=function(){return e({modelArtifactsInfo:c})},o.onerror=function(e){var t=(f=l.objectStore(zl)).delete(n.modelPath);t.onsuccess=function(){return a.close(),r(o.error)},t.onerror=function(e){return a.close(),r(o.error)}}},d.onerror=function(e){return a.close(),r(d.error)},l.oncomplete=function(){null==s?a.close():s.oncomplete=function(){return a.close()}}}},o.onerror=function(e){return r(o.error)}}))},e.URL_SCHEME="indexeddb://",e}(),Gl=function(e){return f().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Hl.URL_SCHEME)?(t=e.slice(Hl.URL_SCHEME.length),new Hl(t)):null;var t};Ml.registerSaveRouter(Gl),Ml.registerLoadRouter(Gl);var ql=function(){function e(){this.indexedDB=jl()}return e.prototype.listModels=function(){return s(this,void 0,void 0,(function(){var e=this;return c(this,(function(t){return[2,new Promise((function(t,n){var r=e.indexedDB.open("tensorflowjs",1);r.onupgradeneeded=function(){return Vl(r)},r.onsuccess=function(){var e=r.result,o=e.transaction(zl,"readonly"),a=o.objectStore(zl).getAll();a.onsuccess=function(){for(var e={},n=0,r=a.result;n<r.length;n++){var o=r[n];e[o.modelPath]=o.modelArtifactsInfo}t(e)},a.onerror=function(t){return e.close(),n(a.error)},o.oncomplete=function(){return e.close()}},r.onerror=function(e){return n(r.error)}}))]}))}))},e.prototype.removeModel=function(e){return s(this,void 0,void 0,(function(){var t=this;return c(this,(function(n){var r;return e=(r=e).startsWith(Hl.URL_SCHEME)?r.slice(Hl.URL_SCHEME.length):r,[2,new Promise((function(n,r){var o=t.indexedDB.open("tensorflowjs",1);o.onupgradeneeded=function(){return Vl(o)},o.onsuccess=function(){var t,a=o.result,i=a.transaction(zl,"readwrite"),u=i.objectStore(zl),s=u.get(e);s.onsuccess=function(){if(null==s.result)return a.close(),r(new Error("Cannot find model with path '"+e+"' in IndexedDB."));var o=u.delete(e),i=function(){var o=(t=a.transaction(Ul,"readwrite")).objectStore(Ul).delete(e);o.onsuccess=function(){return n(s.result.modelArtifactsInfo)},o.onerror=function(e){return r(s.error)}};o.onsuccess=i,o.onerror=function(e){return i(),a.close(),r(s.error)}},s.onerror=function(e){return a.close(),r(s.error)},i.oncomplete=function(){null==t?a.close():t.oncomplete=function(){return a.close()}}},o.onerror=function(e){return r(o.error)}}))]}))}))},e}();if(f().getBool("IS_BROWSER"))try{Bl.registerManager(Hl.URL_SCHEME,new ql)}catch(i){}var Kl="/",Xl="tensorflowjs_models",$l="info",Yl="model_topology",Ql="weight_specs",Jl="weight_data",Zl="model_metadata";function ef(e){return{info:[Xl,e,$l].join(Kl),topology:[Xl,e,Yl].join(Kl),weightSpecs:[Xl,e,Ql].join(Kl),weightData:[Xl,e,Jl].join(Kl),modelMetadata:[Xl,e,Zl].join(Kl)}}function tf(e){var t=e.split(Kl);if(t.length<3)throw new Error("Invalid key format: "+e);return t.slice(1,t.length-1).join(Kl)}var nf=function(){function e(e){if(!f().getBool("IS_BROWSER")||void 0===window.localStorage)throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,null==e||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=ef(this.modelPath)}return e.prototype.save=function(e){return s(this,void 0,void 0,(function(){var t,n,r;return c(this,(function(a){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),r=Pl(e);try{return this.LS.setItem(this.keys.info,JSON.stringify(r)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,(i=e.weightData,Ol?o.from(i).toString("base64"):btoa(String.fromCharCode.apply(null,new Uint8Array(i))))),this.LS.setItem(this.keys.modelMetadata,JSON.stringify({format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,userDefinedMetadata:e.userDefinedMetadata})),[2,{modelArtifactsInfo:r}]}catch(e){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error("Failed to save model '"+this.modelPath+"' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes="+r.modelTopologyBytes+", weightSpecsBytes="+r.weightSpecsBytes+", weightDataBytes="+r.weightDataBytes+".")}var i;return[2]}))}))},e.prototype.load=function(){return s(this,void 0,void 0,(function(){var e,t,n,r,a,i,u;return c(this,(function(s){if(null==(e=JSON.parse(this.LS.getItem(this.keys.info))))throw new Error("In local storage, there is no model with name '"+this.modelPath+"'");if("JSON"!==e.modelTopologyType)throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");if(t={},null==(n=JSON.parse(this.LS.getItem(this.keys.topology))))throw new Error("In local storage, the topology of model '"+this.modelPath+"' is missing.");if(t.modelTopology=n,null==(r=JSON.parse(this.LS.getItem(this.keys.weightSpecs))))throw new Error("In local storage, the weight specs of model '"+this.modelPath+"' are missing.");if(t.weightSpecs=r,null!=(a=this.LS.getItem(this.keys.modelMetadata))&&(i=JSON.parse(a),t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,t.userDefinedMetadata=i.userDefinedMetadata),null==(u=this.LS.getItem(this.keys.weightData)))throw new Error("In local storage, the binary weight values of model '"+this.modelPath+"' are missing.");return t.weightData=function(e){if(Ol){var t=o.from(e,"base64");return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}for(var n=atob(e),r=new Uint8Array(n.length),a=0;a<n.length;++a)r.set([n.charCodeAt(a)],a);return r.buffer}(u),[2,t]}))}))},e.URL_SCHEME="localstorage://",e}(),rf=function(e){return f().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(nf.URL_SCHEME)?(t=e.slice(nf.URL_SCHEME.length),new nf(t)):null;var t};Ml.registerSaveRouter(rf),Ml.registerLoadRouter(rf);var of=function(){function e(){E(f().getBool("IS_BROWSER"),(function(){return"Current environment is not a web browser"})),E(void 0!==window.localStorage,(function(){return"Current browser does not appear to support localStorage"})),this.LS=window.localStorage}return e.prototype.listModels=function(){return s(this,void 0,void 0,(function(){var e,t,n,r,o,a;return c(this,(function(i){for(e={},t=Xl+Kl,n=Kl+$l,r=0;r<this.LS.length;++r)(o=this.LS.key(r)).startsWith(t)&&o.endsWith(n)&&(a=tf(o),e[a]=JSON.parse(this.LS.getItem(o)));return[2,e]}))}))},e.prototype.removeModel=function(e){return s(this,void 0,void 0,(function(){var t,n;return c(this,(function(r){var o;if(e=(o=e).startsWith(nf.URL_SCHEME)?o.slice(nf.URL_SCHEME.length):o,t=ef(e),null==this.LS.getItem(t.info))throw new Error("Cannot find model at path '"+e+"'");return n=JSON.parse(this.LS.getItem(t.info)),this.LS.removeItem(t.info),this.LS.removeItem(t.topology),this.LS.removeItem(t.weightSpecs),this.LS.removeItem(t.weightData),[2,n]}))}))},e}();if(f().getBool("IS_BROWSER"))try{Bl.registerManager(nf.URL_SCHEME,new of)}catch(i){}function af(e){return new Promise((function(e){return setTimeout(e)})).then(e)}var uf=function(){function e(t){if(!f().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");t.startsWith(e.URL_SCHEME)&&(t=t.slice(e.URL_SCHEME.length)),null!=t&&0!==t.length||(t="model"),this.modelTopologyFileName=t+".json",this.weightDataFileName=t+".weights.bin"}return e.prototype.save=function(e){return s(this,void 0,void 0,(function(){var t,n,r,o,a,i;return c(this,(function(u){switch(u.label){case 0:if("undefined"==typeof document)throw new Error("Browser downloads are not supported in this environment since `document` is not present");if(t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"})),!(e.modelTopology instanceof ArrayBuffer))return[3,1];throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");case 1:return n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n},o=window.URL.createObjectURL(new Blob([JSON.stringify(r)],{type:"application/json"})),(a=null==this.jsonAnchor?document.createElement("a"):this.jsonAnchor).download=this.modelTopologyFileName,a.href=o,[4,af((function(){return a.dispatchEvent(new MouseEvent("click"))}))];case 2:return u.sent(),null==e.weightData?[3,4]:((i=null==this.weightDataAnchor?document.createElement("a"):this.weightDataAnchor).download=this.weightDataFileName,i.href=t,[4,af((function(){return i.dispatchEvent(new MouseEvent("click"))}))]);case 3:u.sent(),u.label=4;case 4:return[2,{modelArtifactsInfo:Pl(e)}]}}))}))},e.URL_SCHEME="downloads://",e}(),sf=function(){function e(e){if(null==e||e.length<1)throw new Error("When calling browserFiles, at least 1 file is required, but received "+e);this.files=e}return e.prototype.load=function(){return s(this,void 0,void 0,(function(){var e,t,n=this;return c(this,(function(r){return e=this.files[0],t=this.files.slice(1),[2,new Promise((function(r,o){var a=new FileReader;a.onload=function(a){var i=JSON.parse(a.target.result),u=i.modelTopology;if(null!=u){0===t.length&&r({modelTopology:u});var s=i.weightsManifest;if(null!=s){var c;try{c=n.checkManifestAndWeightFiles(s,t)}catch(e){return void o(e)}var l=[],f=[],d=[];s.forEach((function(e){e.paths.forEach((function(e){f.push(e),d.push(null)})),l.push.apply(l,e.weights)})),s.forEach((function(e){e.paths.forEach((function(e){var t=new FileReader;t.onload=function(t){var n=t.target.result,o=f.indexOf(e);d[o]=n,-1===d.indexOf(null)&&r({modelTopology:u,weightSpecs:l,weightData:Dl(d),format:i.format,generatedBy:i.generatedBy,convertedBy:i.convertedBy,userDefinedMetadata:i.userDefinedMetadata})},t.onerror=function(t){return o("Failed to weights data from file of path '"+e+"'.")},t.readAsArrayBuffer(c[e])}))}))}else o(new Error("weightManifest field is missing from file "+e.name))}else o(new Error("modelTopology field is missing from file "+e.name))},a.onerror=function(t){return o("Failed to read model topology and weights manifest JSON from file '"+e.name+"'. BrowserFiles supports loading Keras-style tf.Model artifacts only.")},a.readAsText(e)}))]}))}))},e.prototype.checkManifestAndWeightFiles=function(e,t){for(var n=[],r=t.map((function(e){return Nl(e.name)})),o={},a=0,i=e;a<i.length;a++)i[a].paths.forEach((function(e){var a=Nl(e);if(-1!==n.indexOf(a))throw new Error("Duplicate file basename found in weights manifest: '"+a+"'");if(n.push(a),-1===r.indexOf(a))throw new Error("Weight file with basename '"+a+"' is not provided.");o[e]=t[r.indexOf(a)]}));if(n.length!==t.length)throw new Error("Mismatch in the number of files in weights manifest ("+n.length+") and the number of weight files provided ("+t.length+").");return o},e}();function cf(e,t,n,r){!function(e){E(null!=e&&Array.isArray(e)&&e.length>0,(function(){return"promises must be a none empty array"}))}(e),function(e,t){E(e>=0&&e<=1,(function(){return"Progress fraction must be in range [0, 1], but got startFraction "+e})),E(t>=0&&t<=1,(function(){return"Progress fraction must be in range [0, 1], but got endFraction "+t})),E(t>=e,(function(){return"startFraction must be no more than endFraction, but got startFraction "+e+" and endFraction "+t}))}(n=null==n?0:n,r=null==r?1:r);var o=0;return Promise.all(e.map((function(a){return a.then((function(a){var i=n+ ++o/e.length*(r-n);return t(i),a})),a})))}function lf(e,t){return s(this,void 0,void 0,(function(){var n,r,o,a,i,u,s,l,d;return c(this,(function(c){switch(c.label){case 0:return null==t&&(t={}),n=null==t.fetchFunc?f().platform.fetch:t.fetchFunc,r=e.map((function(e){return n(e,t.requestInit,{isBinary:!0})})),o=0,a=.5,null!=t.onProgress?[3,2]:[4,Promise.all(r)];case 1:return i=c.sent(),[3,4];case 2:return[4,cf(r,t.onProgress,o,a)];case 3:i=c.sent(),c.label=4;case 4:return u=i.map((function(e){return e.arrayBuffer()})),s=.5,l=1,null!=t.onProgress?[3,6]:[4,Promise.all(u)];case 5:return d=c.sent(),[3,8];case 6:return[4,cf(u,t.onProgress,s,l)];case 7:d=c.sent(),c.label=8;case 8:return[2,d]}}))}))}function ff(e){var t=this;return function(n,r,o){return void 0===r&&(r=""),s(t,void 0,void 0,(function(){var t,a,i,u,s,l,f,d,p,h;return c(this,(function(c){switch(c.label){case 0:if(t=n.map((function(){return!1})),a={},i=null!=o?o.map((function(){return!1})):[],u=[],n.forEach((function(e,n){var r=0;e.weights.forEach((function(e){var s="quantization"in e?e.quantization.dtype:e.dtype,c=Rl[s]*S(e.shape),l=function(){t[n]=!0,null==a[n]&&(a[n]=[]),a[n].push({manifestEntry:e,groupOffset:r,sizeBytes:c})};null!=o?o.forEach((function(t,n){t===e.name&&(l(),i[n]=!0)})):l(),u.push(e.name),r+=c}))})),!i.every((function(e){return e})))throw s=o.filter((function(e,t){return!i[t]})),new Error("Could not find weights in manifest with names: "+s.join(", ")+". \nManifest JSON has weights with names: "+u.join(", ")+".");return l=t.reduce((function(e,t,n){return t&&e.push(n),e}),[]),f=[],l.forEach((function(e){n[e].paths.forEach((function(e){var t=r+(r.endsWith("/")?"":"/")+e;f.push(t)}))})),[4,e(f)];case 1:return d=c.sent(),p={},h=0,l.forEach((function(e){for(var t=n[e].paths.length,r=0,o=0;o<t;o++)r+=d[h+o].byteLength;for(var i=new ArrayBuffer(r),u=new Uint8Array(i),s=0,c=0;c<t;c++){var l=new Uint8Array(d[h+c]);u.set(l,s),s+=l.byteLength}a[e].forEach((function(e){var t=Tl(i.slice(e.groupOffset,e.groupOffset+e.sizeBytes),[e.manifestEntry]);for(var n in t)p[n]=t[n]})),h+=t})),[2,p]}}))}))}}Ml.registerSaveRouter((function(e){return f().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(uf.URL_SCHEME)?(void 0===(t=e.slice(uf.URL_SCHEME.length))&&(t="model"),new uf(t)):null;var t}));var df=function(){function e(e,t){if(this.DEFAULT_METHOD="POST",null==t&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,null!=t.fetchFunc?(E("function"==typeof t.fetchFunc,(function(){return"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=f().platform.fetch,E(null!=e&&e.length>0,(function(){return"URL path for http must not be null, undefined or empty."})),Array.isArray(e)&&E(2===e.length,(function(){return"URL paths for http must have a length of 2, (actual length is "+e.length+")."})),this.path=e,null!=t.requestInit&&null!=t.requestInit.body)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}return e.prototype.save=function(e){return s(this,void 0,void 0,(function(){var t,n,r,o;return c(this,(function(a){switch(a.label){case 0:if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");return(t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit)).body=new FormData,n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,userDefinedMetadata:e.userDefinedMetadata,weightsManifest:n},t.body.append("model.json",new Blob([JSON.stringify(r)],{type:"application/json"}),"model.json"),null!=e.weightData&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:"application/octet-stream"}),"model.weights.bin"),[4,this.fetch(this.path,t)];case 1:if((o=a.sent()).ok)return[2,{modelArtifactsInfo:Pl(e),responses:[o]}];throw new Error("BrowserHTTPRequest.save() failed due to HTTP response status "+o.status+".")}}))}))},e.prototype.load=function(){return s(this,void 0,void 0,(function(){var e,t,n,r,o,a,i,u,s,l,f,d;return c(this,(function(c){switch(c.label){case 0:return[4,this.fetch(this.path,this.requestInit)];case 1:if(!(e=c.sent()).ok)throw new Error("Request to "+this.path+" failed with status code "+e.status+". Please verify this URL points to the model JSON of the model to load.");c.label=2;case 2:return c.trys.push([2,4,,5]),[4,e.json()];case 3:return t=c.sent(),[3,5];case 4:throw c.sent(),n="Failed to parse model JSON of response from "+this.path+".",this.path.endsWith(".pb")?n+=" 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.":n+=" Please make sure the server is serving valid JSON for this request.",new Error(n);case 5:if(r=t.modelTopology,o=t.weightsManifest,a=t.generatedBy,i=t.convertedBy,u=t.format,s=t.userDefinedMetadata,null==r&&null==o)throw new Error("The JSON from HTTP path "+this.path+" contains neither model topology or manifest for weights.");return null==o?[3,7]:[4,this.loadWeights(o)];case 6:d=c.sent(),l=d[0],f=d[1],c.label=7;case 7:return[2,{modelTopology:r,weightSpecs:l,weightData:f,userDefinedMetadata:s,generatedBy:a,convertedBy:i,format:u}]}}))}))},e.prototype.loadWeights=function(e){return s(this,void 0,void 0,(function(){var t,n,r,o,a,i,u,s,l,f,d;return c(this,(function(c){switch(c.label){case 0:for(t=Array.isArray(this.path)?this.path[1]:this.path,n=function(e){var t=e.lastIndexOf("/"),n=e.lastIndexOf("?");return[e.substring(0,t)+"/",n>t?e.substring(n):""]}(t),r=n[0],o=n[1],a=this.weightPathPrefix||r,i=[],u=0,s=e;u<s.length;u++)l=s[u],i.push.apply(i,l.weights);return f=[],e.forEach((function(e){e.paths.forEach((function(e){f.push(a+e+o)}))})),[4,lf(f,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress})];case 1:return d=c.sent(),[2,[i,Dl(d)]]}}))}))},e.URL_SCHEME_REGEX=/^https?:\/\//,e}();function pf(e){return null!=e.match(df.URL_SCHEME_REGEX)}var hf=function(e,t){return"undefined"==typeof fetch?null:(Array.isArray(e)?e.every((function(e){return pf(e)})):pf(e))?vf(e,{onProgress:t}):null};function vf(e,t){return new df(e,t)}Ml.registerSaveRouter(hf),Ml.registerLoadRouter(hf);var mf,gf=function(){function e(e){this.modelArtifacts=e}return e.prototype.load=function(){return s(this,void 0,void 0,(function(){return c(this,(function(e){return[2,this.modelArtifacts]}))}))},e}(),yf=function(){function e(e){this.saveHandler=e}return e.prototype.save=function(e){return s(this,void 0,void 0,(function(){return c(this,(function(t){return[2,this.saveHandler(e)]}))}))},e}(),bf=Object.freeze({browserFiles:function(e){return new sf(e)},browserHTTPRequest:function(e,t){return vf(e,t)},concatenateArrayBuffers:Dl,decodeWeights:Tl,encodeWeights:function(e,t){return s(this,void 0,void 0,(function(){var n,r,o,a,i,u=this;return c(this,(function(l){switch(l.label){case 0:for(n=[],r=[],o=Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e),a=function(a){var i=o[a],l=Array.isArray(e)?e[a].tensor:e[i];if("float32"!==l.dtype&&"int32"!==l.dtype&&"bool"!==l.dtype&&"string"!==l.dtype)throw new Error("Unsupported dtype in weight '"+i+"': "+l.dtype);var f={name:i,shape:l.shape,dtype:l.dtype};if("string"===l.dtype){var d=new Promise((function(e){return s(u,void 0,void 0,(function(){var t,n,r,o,a,i,u;return c(this,(function(s){switch(s.label){case 0:return[4,l.bytes()];case 1:for(t=s.sent(),n=t.reduce((function(e,t){return e+t.length}),0)+4*t.length,r=new Uint8Array(n),o=0,a=0;a<t.length;a++)i=t[a],u=new Uint8Array(new Uint32Array([i.length]).buffer),r.set(u,o),o+=4,r.set(i,o),o+=i.length;return e(r),[2]}}))}))}));r.push(d)}else r.push(l.data());null!=t&&(f.group=t),n.push(f)},i=0;i<o.length;++i)a(i);return[4,Promise.all(r)];case 1:return[2,{data:Il(l.sent()),specs:n}]}}))}))},fromMemory:function(e,t,n,r){return 1===arguments.length?null!=e.modelTopology||null!=e.weightSpecs?new gf(e):new gf({modelTopology:e}):new gf({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:r})},getLoadHandlers:function(e,t){return Ml.getLoadHandlers(e,t)},getModelArtifactsInfoForJSON:Pl,getSaveHandlers:function(e){return Ml.getSaveHandlers(e)},http:vf,isHTTPScheme:pf,loadWeights:function(e,t,n,r){return void 0===t&&(t=""),s(this,void 0,void 0,(function(){return c(this,(function(o){return[2,ff((function(e){return lf(e,{requestInit:r})}))(e,t,n)]}))}))},registerLoadRouter:function(e){return Ml.registerLoadRouter(e)},registerSaveRouter:function(e){return Ml.registerSaveRouter(e)},weightsLoaderFactory:ff,withSaveHandler:function(e){return new yf(e)},copyModel:function(e,t){return s(this,void 0,void 0,(function(){return c(this,(function(n){return[2,Wl(e,t,!1)]}))}))},listModels:function(){return s(this,void 0,void 0,(function(){var e,t,n,r,o,a,i;return c(this,(function(u){switch(u.label){case 0:e=Bl.getSchemes(),t={},n=0,r=e,u.label=1;case 1:return n<r.length?(o=r[n],[4,Bl.getManager(o).listModels()]):[3,4];case 2:for(i in a=u.sent())t[o+Fl+i]=a[i];u.label=3;case 3:return n++,[3,1];case 4:return[2,t]}}))}))},moveModel:function(e,t){return s(this,void 0,void 0,(function(){return c(this,(function(n){return[2,Wl(e,t,!0)]}))}))},removeModel:function(e){return s(this,void 0,void 0,(function(){var t;return c(this,(function(n){return t=Ll(e),[2,Bl.getManager(t.scheme).removeModel(t.path)]}))}))}}),xf=Zt({confusionMatrix_:function(e,t,n){var r=zt(e,"labels","confusionMatrix"),o=zt(t,"predictions","confusionMatrix");E(null==n||n>0&&Number.isInteger(n),(function(){return"If provided, numClasses must be a positive integer, but got "+n})),E(1===r.rank,(function(){return"Expected the rank of labels to be 1, but got "+r.rank})),E(1===o.rank,(function(){return"Expected the rank of predictions to be 1, but got "+o.rank})),E(r.shape[0]===o.shape[0],(function(){return"Mismatch in the number of examples: "+r.shape[0]+" vs. "+o.shape[0]+". Labels and predictions should have the same number of elements."})),E(n>0&&Number.isInteger(n),(function(){return"numClasses is required to be a positive integer, but got "+n}));var a=Gn(r.asType("int32"),n),i=Gn(o.asType("int32"),n);return a.transpose().matMul(i).asType("int32")}}),wf=(Object.freeze({confusionMatrix:xf}),Zt({fromPixels_:function(e,t){if(void 0===t&&(t=3),t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(null==e)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");var n=!1,r=!1,o=!1,a=!1,i=!1;if(e.data instanceof Uint8Array)n=!0;else if("undefined"!=typeof ImageData&&e instanceof ImageData)r=!0;else if("undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement)o=!0;else if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement)a=!0;else{if(null==e.getContext)throw new Error("pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was "+e.constructor.name);i=!0}if(o&&o&&e.readyState<2)throw new Error("The video element has not loaded data yet. Please wait for `loadeddata` event on the <video> element.");if(null!=h("FromPixels",Oe.backendName))return Oe.runKernel("FromPixels",{pixels:e},{numChannels:t});var u,s,c=o?[e.videoWidth,e.videoHeight]:[e.width,e.height],l=c[0],f=c[1];if(i?u=e.getContext("2d").getImageData(0,0,l,f).data:r||n?u=e.data:(a||o)&&(null==mf&&(mf=document.createElement("canvas").getContext("2d")),mf.canvas.width=l,mf.canvas.height=f,mf.drawImage(e,0,0,l,f),u=mf.getImageData(0,0,l,f).data),4===t)s=new Int32Array(u);else{var d=l*f;s=new Int32Array(d*t);for(var p=0;p<d;p++)for(var v=0;v<t;++v)s[p*t+v]=u[4*p+v]}return cn(s,[f,l,t],"int32")}})),Ef=Object.freeze({toPixels:function(e,t){return s(this,void 0,void 0,(function(){var n,r,o,a,i,u,s,l,f,d,p,h,v,m,g,y,b,x,w,E,C,k,_;return c(this,(function(c){switch(c.label){case 0:if(n=zt(e,"img","toPixels"),e instanceof he||(n=n.toInt()),2!==n.rank&&3!==n.rank)throw new Error("toPixels only supports rank 2 or 3 tensors, got rank "+n.rank+".");if(r=n.shape.slice(0,2),o=r[0],a=r[1],(i=2===n.rank?1:n.shape[2])>4||2===i)throw new Error("toPixels only supports depth of size 1, 3 or 4 but got "+i);return[4,n.data()];case 1:return u=c.sent(),s=n.min(),l=n.max(),[4,Promise.all([s.data(),l.data()])];case 2:if(f=c.sent(),d=f[0],p=f[1],h=d[0],v=p[0],s.dispose(),l.dispose(),"float32"===n.dtype){if(h<0||v>1)throw new Error("Tensor values for a float32 Tensor must be in the range [0 - 1] but got range ["+h+" - "+v+"].")}else{if("int32"!==n.dtype)throw new Error("Unsupported type for toPixels: "+n.dtype+". Please use float32 or int32 tensors.");if(h<0||v>255)throw new Error("Tensor values for a int32 Tensor must be in the range [0 - 255] but got range ["+h+" - "+v+"].")}for(m="float32"===n.dtype?255:1,g=new Uint8ClampedArray(a*o*4),y=0;y<o*a;++y)b=void 0,x=void 0,w=void 0,E=void 0,1===i?(b=u[y]*m,x=u[y]*m,w=u[y]*m,E=255):3===i?(b=u[3*y]*m,x=u[3*y+1]*m,w=u[3*y+2]*m,E=255):4===i&&(b=u[4*y]*m,x=u[4*y+1]*m,w=u[4*y+2]*m,E=u[4*y+3]*m),g[0+(C=4*y)]=Math.round(b),g[C+1]=Math.round(x),g[C+2]=Math.round(w),g[C+3]=Math.round(E);return null!=t&&(t.width=a,t.height=o,k=t.getContext("2d"),_=new ImageData(g,a,o),k.putImageData(_,0,0)),n!==e&&n.dispose(),[2,g]}}))}))},fromPixels:wf}),Cf=function(){function e(){}return e.prototype.getClassName=function(){return this.constructor.className},e.fromConfig=function(e,t){return new e(t)},e}(),kf=function(){function e(){this.classNameMap={}}return e.getMap=function(){return null==e.instance&&(e.instance=new e),e.instance},e.register=function(t){e.getMap().classNameMap[t.className]=[t,t.fromConfig]},e}();function _f(e){E(null!=e.className,(function(){return"Class being registered does not have the static className property defined."})),E("string"==typeof e.className,(function(){return"className is required to be a string, but got type "+typeof e.className})),E(e.className.length>0,(function(){return"Class being registered has an empty-string as its className, which is disallowed."})),kf.register(e)}function Sf(){return 32===Oe.backend.floatPrecision()?.001:.1}function Rf(e,t,n){var r=!0;if((z(e)||z(t))&&(r=!1),z(e)&&z(t)&&(r=!0),r){var o=e.constructor.name,a=t.constructor.name;if(o!==a)throw new Error("Arrays are of different type. Actual: "+o+". Expected: "+a)}if(Array.isArray(e)&&Array.isArray(t)){var i=Wt(e),u=Wt(t);if(!R(i,u))throw new Error("Arrays have different shapes. Actual: ["+i+"]. Expected: ["+u+"]")}var s=z(e)?e:_(e),c=z(t)?t:_(t);if(s.length!==c.length)throw new Error("Arrays have different lengths actual: "+s.length+" vs expected: "+c.length+".\nActual: "+s+".\nExpected: "+c+".");for(var l=0;l<c.length;++l){var f=s[l],d=c[l];if(!n(f,d))throw new Error("Arrays differ: actual["+l+"] = "+f+", expected["+l+"] = "+d+".\nActual: "+s+".\nExpected: "+c+".")}}function Tf(e,t,n){return!isFinite(e)&&!isFinite(t)||!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}Object.freeze({Serializable:Cf,SerializationMap:kf,registerClass:_f}),Object.freeze({TEST_EPSILON_FLOAT16:.1,expectArraysClose:function(e,t,n){return null==n&&(n=Sf()),Rf(e,t,(function(e,t){return Tf(e,t,n)}))},testEpsilon:Sf,expectPromiseToFail:function(e,t){e().then((function(){return t.fail()}),(function(){return t()}))},expectArraysEqual:function(e,t){var n="string"==typeof t||"number"==typeof t||"boolean"==typeof t?[t]:t;return H(e)||H(e[0])||H(t)||H(t[0])?Rf(e,n,(function(e,t){return e==t})):Rf(e,t,(function(e,t){return Tf(e,t,0)}))},expectNumbersClose:function(e,t,n){if(null==n&&(n=Sf()),!Tf(e,t,n))throw new Error("Numbers differ: actual === "+e+", expected === "+t)},expectValuesInRange:function(e,t,n){for(var r=0;r<e.length;r++)if(e[r]<t||e[r]>n)throw new Error("Value out of range:"+e[r]+" low: "+t+", high: "+n)},expectArrayBuffersEqual:function(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}}),Object.freeze({gpgpu_util:Ia,webgl_util:Nt,forceHalfFloat:function(){f().set("WEBGL_FORCE_F16_TEXTURES",!0)},MathBackendWebGL:Ni,setWebGLContext:Le,GPGPUContext:Oa});var If=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return u(t,e),t.prototype.minimize=function(e,t,n){void 0===t&&(t=!1);var r=this.computeGradients(e,n),o=r.value,a=r.grads;if(null!=n){var i=n.map((function(e){return{name:e.name,tensor:a[e.name]}}));this.applyGradients(i)}else this.applyGradients(a);return Bt(a),t?o:(o.dispose(),null)},Object.defineProperty(t.prototype,"iterations",{get:function(){return null==this.iterations_&&(this.iterations_=0),this.iterations_},enumerable:!0,configurable:!0}),t.prototype.incrementIterations=function(){this.iterations_=this.iterations+1},t.prototype.computeGradients=function(e,t){return function(e,t){E(X(e),(function(){return"The f passed in variableGrads(f) must be a function"})),E(null==t||Array.isArray(t)&&t.every((function(e){return e instanceof xe})),(function(){return"The varList passed in variableGrads(f, varList) must be an array of variables"}));var n=null!=t;if(!n)for(var r in t=[],Oe.registeredVariables)t.push(Oe.registeredVariables[r]);var o=n?t.filter((function(e){return!e.trainable})):null,a=t.length;E((t=t.filter((function(e){return e.trainable}))).length>0,(function(){return"variableGrads() expects at least one of the input variables to be trainable, but none of the "+a+" variables is trainable."}));var i=Oe.gradients(e,t,null,!0),u=i.value,s=i.grads;E(s.some((function(e){return null!=e})),(function(){return"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."})),E(0===u.rank,(function(){return"The f passed in variableGrads(f) must return a scalar, but it returned a rank-"+u.rank+" tensor"}));var c={};return t.forEach((function(e,t){null!=s[t]&&(c[e.name]=s[t])})),null!=o&&o.forEach((function(e){return c[e.name]=null})),{value:u,grads:c}}(e,t)},t.prototype.dispose=function(){null!=this.iterations_&&Bt(this.iterations_)},t.prototype.saveIterations=function(){return s(this,void 0,void 0,(function(){return c(this,(function(e){return null==this.iterations_&&(this.iterations_=0),[2,{name:"iter",tensor:an(this.iterations_,"int32")}]}))}))},t.prototype.getWeights=function(){return s(this,void 0,void 0,(function(){return c(this,(function(e){throw new Error("getWeights() is not implemented for this optimizer yet.")}))}))},t.prototype.setWeights=function(e){return s(this,void 0,void 0,(function(){return c(this,(function(e){throw new Error("setWeights() is not implemented for this optimizer class "+this.getClassName())}))}))},t.prototype.extractIterations=function(e){return s(this,void 0,void 0,(function(){var t;return c(this,(function(n){switch(n.label){case 0:return t=this,[4,e[0].tensor.data()];case 1:return t.iterations_=n.sent()[0],[2,e.slice(1)]}}))}))},t}(Cf);Object.defineProperty(If,Symbol.hasInstance,{value:function(e){return null!=e.minimize&&null!=e.computeGradients&&null!=e.applyGradients}});var Of=function(e){function t(t,n,r){void 0===r&&(r=null);var o=e.call(this)||this;return o.learningRate=t,o.rho=n,o.epsilon=r,o.accumulatedGrads=[],o.accumulatedUpdates=[],null==r&&(o.epsilon=Oe.backend.epsilon()),o}return u(t,e),t.prototype.applyGradients=function(e){var t=this;(Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e)).forEach((function(n,r){var o=Oe.registeredVariables[n];null==t.accumulatedGrads[r]&&(t.accumulatedGrads[r]={originalName:n+"/accum_grad",variable:Ft((function(){return mn(o).variable(!1)}))}),null==t.accumulatedUpdates[r]&&(t.accumulatedUpdates[r]={originalName:n+"/accum_var",variable:Ft((function(){return mn(o).variable(!1)}))});var a=Array.isArray(e)?e[r].tensor:e[n];if(null!=a){var i=t.accumulatedGrads[r].variable,u=t.accumulatedUpdates[r].variable;Ft((function(){var e=i.mul(t.rho).add(a.square().mul(1-t.rho)),n=u.add(t.epsilon).sqrt().div(i.add(t.epsilon).sqrt()).mul(a),r=u.mul(t.rho).add(n.square().mul(1-t.rho));i.assign(e),u.assign(r);var s=n.mul(-t.learningRate).add(o);o.assign(s)}))}})),this.incrementIterations()},t.prototype.dispose=function(){null!=this.accumulatedUpdates&&(Bt(this.accumulatedGrads.map((function(e){return e.variable}))),Bt(this.accumulatedUpdates.map((function(e){return e.variable}))))},t.prototype.getWeights=function(){return s(this,void 0,void 0,(function(){var e;return c(this,(function(t){switch(t.label){case 0:return e=this.accumulatedGrads.concat(this.accumulatedUpdates),[4,this.saveIterations()];case 1:return[2,[t.sent()].concat(e.map((function(e){return{name:e.originalName,tensor:e.variable}})))]}}))}))},t.prototype.setWeights=function(e){return s(this,void 0,void 0,(function(){var t;return c(this,(function(n){switch(n.label){case 0:return[4,this.extractIterations(e)];case 1:return e=n.sent(),t=e.length/2,this.accumulatedGrads=e.slice(0,t).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),this.accumulatedUpdates=e.slice(t,2*t).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),[2]}}))}))},t.prototype.getConfig=function(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}},t.fromConfig=function(e,t){return new e(t.learningRate,t.rho,t.epsilon)},t.className="Adadelta",t}(If);_f(Of);var Af=function(e){function t(t,n){void 0===n&&(n=.1);var r=e.call(this)||this;return r.learningRate=t,r.initialAccumulatorValue=n,r.accumulatedGrads=[],r}return u(t,e),t.prototype.applyGradients=function(e){var t=this;(Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e)).forEach((function(n,r){var o=Oe.registeredVariables[n];null==t.accumulatedGrads[r]&&(t.accumulatedGrads[r]={originalName:n+"/accumulator",variable:Ft((function(){return pn(o.shape,t.initialAccumulatorValue).variable(!1)}))});var a=Array.isArray(e)?e[r].tensor:e[n];if(null!=a){var i=t.accumulatedGrads[r].variable;Ft((function(){var e=i.add(a.square());i.assign(e);var n=a.div(e.add(Oe.backend.epsilon()).sqrt()).mul(-t.learningRate).add(o);o.assign(n)}))}})),this.incrementIterations()},t.prototype.dispose=function(){null!=this.accumulatedGrads&&Bt(this.accumulatedGrads.map((function(e){return e.variable})))},t.prototype.getWeights=function(){return s(this,void 0,void 0,(function(){return c(this,(function(e){switch(e.label){case 0:return[4,this.saveIterations()];case 1:return[2,[e.sent()].concat(this.accumulatedGrads.map((function(e){return{name:e.originalName,tensor:e.variable}})))]}}))}))},t.prototype.setWeights=function(e){return s(this,void 0,void 0,(function(){return c(this,(function(t){switch(t.label){case 0:return[4,this.extractIterations(e)];case 1:return e=t.sent(),this.accumulatedGrads=e.map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),[2]}}))}))},t.prototype.getConfig=function(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}},t.fromConfig=function(e,t){return new e(t.learningRate,t.initialAccumulatorValue)},t.className="Adagrad",t}(If);_f(Af);var Df=function(e){function t(t,n,r,o){void 0===o&&(o=null);var a=e.call(this)||this;return a.learningRate=t,a.beta1=n,a.beta2=r,a.epsilon=o,a.accumulatedFirstMoment=[],a.accumulatedSecondMoment=[],Ft((function(){a.accBeta1=an(n).variable(),a.accBeta2=an(r).variable()})),null==o&&(a.epsilon=Oe.backend.epsilon()),a}return u(t,e),t.prototype.applyGradients=function(e){var t=this,n=Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e);Ft((function(){var r=ts(1,t.accBeta1),o=ts(1,t.accBeta2);n.forEach((function(n,a){var i=Oe.registeredVariables[n];null==t.accumulatedFirstMoment[a]&&(t.accumulatedFirstMoment[a]={originalName:n+"/m",variable:Ft((function(){return mn(i).variable(!1)}))}),null==t.accumulatedSecondMoment[a]&&(t.accumulatedSecondMoment[a]={originalName:n+"/v",variable:Ft((function(){return mn(i).variable(!1)}))});var u=Array.isArray(e)?e[a].tensor:e[n];if(null!=u){var s=t.accumulatedFirstMoment[a].variable,c=t.accumulatedSecondMoment[a].variable,l=s.mul(t.beta1).add(u.mul(1-t.beta1)),f=c.mul(t.beta2).add(u.square().mul(1-t.beta2)),d=l.div(r),p=f.div(o);s.assign(l),c.assign(f);var h=d.div(p.sqrt().add(t.epsilon)).mul(-t.learningRate).add(i);i.assign(h)}})),t.accBeta1.assign(t.accBeta1.mul(t.beta1)),t.accBeta2.assign(t.accBeta2.mul(t.beta2))})),this.incrementIterations()},t.prototype.dispose=function(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&Bt(this.accumulatedFirstMoment.map((function(e){return e.variable}))),null!=this.accumulatedSecondMoment&&Bt(this.accumulatedSecondMoment.map((function(e){return e.variable})))},t.prototype.getWeights=function(){return s(this,void 0,void 0,(function(){var e;return c(this,(function(t){switch(t.label){case 0:return e=this.accumulatedFirstMoment.concat(this.accumulatedSecondMoment),[4,this.saveIterations()];case 1:return[2,[t.sent()].concat(e.map((function(e){return{name:e.originalName,tensor:e.variable}})))]}}))}))},t.prototype.setWeights=function(e){return s(this,void 0,void 0,(function(){var t,n=this;return c(this,(function(r){switch(r.label){case 0:return[4,this.extractIterations(e)];case 1:return e=r.sent(),Ft((function(){n.accBeta1.assign(Qu(n.beta1,n.iterations_+1)),n.accBeta2.assign(Qu(n.beta2,n.iterations_+1))})),t=e.length/2,this.accumulatedFirstMoment=e.slice(0,t).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),this.accumulatedSecondMoment=e.slice(t,2*t).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),[2]}}))}))},t.prototype.getConfig=function(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}},t.fromConfig=function(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)},t.className="Adam",t}(If);_f(Df);var Nf=function(e){function t(t,n,r,o,a){void 0===o&&(o=null),void 0===a&&(a=0);var i=e.call(this)||this;return i.learningRate=t,i.beta1=n,i.beta2=r,i.epsilon=o,i.decay=a,i.accumulatedFirstMoment=[],i.accumulatedWeightedInfNorm=[],Ft((function(){i.iteration=an(0).variable(),i.accBeta1=an(n).variable()})),null==o&&(i.epsilon=Oe.backend.epsilon()),i}return u(t,e),t.prototype.applyGradients=function(e){var t=this,n=Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e);Ft((function(){var r=ts(1,t.accBeta1),o=Wu(-t.learningRate,t.iteration.mul(t.decay).add(1));n.forEach((function(n,a){var i=Oe.registeredVariables[n];null==t.accumulatedFirstMoment[a]&&(t.accumulatedFirstMoment[a]={originalName:n+"/m",variable:mn(i).variable(!1)}),null==t.accumulatedWeightedInfNorm[a]&&(t.accumulatedWeightedInfNorm[a]={originalName:n+"/v",variable:mn(i).variable(!1)});var u=Array.isArray(e)?e[a].tensor:e[n];if(null!=u){var s=t.accumulatedFirstMoment[a].variable,c=t.accumulatedWeightedInfNorm[a].variable,l=s.mul(t.beta1).add(u.mul(1-t.beta1)),f=c.mul(t.beta2),d=u.abs(),p=f.maximum(d);s.assign(l),c.assign(p);var h=o.div(r).mul(l.div(p.add(t.epsilon))).add(i);i.assign(h)}})),t.iteration.assign(t.iteration.add(1)),t.accBeta1.assign(t.accBeta1.mul(t.beta1))})),this.incrementIterations()},t.prototype.dispose=function(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&Bt(this.accumulatedFirstMoment.map((function(e){return e.variable}))),null!=this.accumulatedWeightedInfNorm&&Bt(this.accumulatedWeightedInfNorm.map((function(e){return e.variable})))},t.prototype.getWeights=function(){return s(this,void 0,void 0,(function(){return c(this,(function(e){throw new Error("getWeights() is not implemented for Adamax yet.")}))}))},t.prototype.setWeights=function(e){return s(this,void 0,void 0,(function(){return c(this,(function(e){throw new Error("setWeights() is not implemented for Adamax yet.")}))}))},t.prototype.getConfig=function(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}},t.fromConfig=function(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)},t.className="Adamax",t}(If);_f(Nf);var Pf=function(e){function t(t){var n=e.call(this)||this;return n.learningRate=t,n.setLearningRate(t),n}return u(t,e),t.prototype.applyGradients=function(e){var t=this;(Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e)).forEach((function(n,r){var o=Array.isArray(e)?e[r].tensor:e[n];if(null!=o){var a=Oe.registeredVariables[n];Ft((function(){var e=t.c.mul(o).add(a);a.assign(e)}))}})),this.incrementIterations()},t.prototype.setLearningRate=function(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=function(e){return Oe.keep(e)}(an(-e))},t.prototype.dispose=function(){this.c.dispose()},t.prototype.getWeights=function(){return s(this,void 0,void 0,(function(){return c(this,(function(e){switch(e.label){case 0:return[4,this.saveIterations()];case 1:return[2,[e.sent()]]}}))}))},t.prototype.setWeights=function(e){return s(this,void 0,void 0,(function(){return c(this,(function(t){switch(t.label){case 0:return[4,this.extractIterations(e)];case 1:if(0!==(e=t.sent()).length)throw new Error("SGD optimizer does not have settable weights.");return[2]}}))}))},t.prototype.getConfig=function(){return{learningRate:this.learningRate}},t.fromConfig=function(e,t){return new e(t.learningRate)},t.className="SGD",t}(If);_f(Pf);var Mf=function(e){function t(t,n,r){void 0===r&&(r=!1);var o=e.call(this,t)||this;return o.learningRate=t,o.momentum=n,o.useNesterov=r,o.accumulations=[],o.m=an(o.momentum),o}return u(t,e),t.prototype.applyGradients=function(e){var t=this;(Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e)).forEach((function(n,r){var o=Oe.registeredVariables[n];null==t.accumulations[r]&&(t.accumulations[r]={originalName:n+"/momentum",variable:Ft((function(){return mn(o).variable(!1)}))});var a=t.accumulations[r].variable,i=Array.isArray(e)?e[r].tensor:e[n];null!=i&&Ft((function(){var e,n=t.m.mul(a).add(i);e=t.useNesterov?t.c.mul(i.add(n.mul(t.m))).add(o):t.c.mul(n).add(o),a.assign(n),o.assign(e)}))})),this.incrementIterations()},t.prototype.dispose=function(){this.m.dispose(),null!=this.accumulations&&Bt(this.accumulations.map((function(e){return e.variable})))},t.prototype.setMomentum=function(e){this.momentum=e},t.prototype.getWeights=function(){return s(this,void 0,void 0,(function(){return c(this,(function(e){switch(e.label){case 0:return[4,this.saveIterations()];case 1:return[2,[e.sent()].concat(this.accumulations.map((function(e){return{name:e.originalName,tensor:e.variable}})))]}}))}))},t.prototype.setWeights=function(e){return s(this,void 0,void 0,(function(){return c(this,(function(t){switch(t.label){case 0:return[4,this.extractIterations(e)];case 1:return e=t.sent(),this.accumulations=e.map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),[2]}}))}))},t.prototype.getConfig=function(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}},t.fromConfig=function(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)},t.className="Momentum",t}(Pf);_f(Mf);var Ff=function(e){function t(t,n,r,o,a){void 0===n&&(n=.9),void 0===r&&(r=0),void 0===o&&(o=null),void 0===a&&(a=!1);var i=e.call(this)||this;return i.learningRate=t,i.decay=n,i.momentum=r,i.epsilon=o,i.accumulatedMeanSquares=[],i.accumulatedMoments=[],i.accumulatedMeanGrads=[],i.centered=a,null==o&&(i.epsilon=Oe.backend.epsilon()),i}return u(t,e),t.prototype.applyGradients=function(e){var t=this;(Array.isArray(e)?e.map((function(e){return e.name})):Object.keys(e)).forEach((function(n,r){var o=Oe.registeredVariables[n];null==t.accumulatedMeanSquares[r]&&(t.accumulatedMeanSquares[r]={originalName:n+"/rms",variable:Ft((function(){return mn(o).variable(!1)}))}),null==t.accumulatedMoments[r]&&(t.accumulatedMoments[r]={originalName:n+"/momentum",variable:Ft((function(){return mn(o).variable(!1)}))}),null==t.accumulatedMeanGrads[r]&&t.centered&&(t.accumulatedMeanGrads[r]={originalName:n+"/mg",variable:Ft((function(){return mn(o).variable(!1)}))});var a=Array.isArray(e)?e[r].tensor:e[n];if(null!=a){var i=t.accumulatedMeanSquares[r].variable,u=t.accumulatedMoments[r].variable;Ft((function(){var e=i.mul(t.decay).add(a.square().mul(1-t.decay));if(t.centered){var n=t.accumulatedMeanGrads[r].variable,s=n.mul(t.decay).add(a.mul(1-t.decay)),c=u.mul(t.momentum).add(a.mul(t.learningRate).div(e.sub(s.square().add(t.epsilon)).sqrt()));i.assign(e),n.assign(s),u.assign(c);var l=o.sub(c);o.assign(l)}else{var f=i.mul(t.decay).add(a.square().mul(1-t.decay));c=u.mul(t.momentum).add(a.mul(t.learningRate).div(f.add(t.epsilon).sqrt())),i.assign(f),u.assign(c),l=o.sub(c),o.assign(l)}}))}})),this.incrementIterations()},t.prototype.dispose=function(){null!=this.accumulatedMeanSquares&&Bt(this.accumulatedMeanSquares.map((function(e){return e.variable}))),null!=this.accumulatedMeanGrads&&this.centered&&Bt(this.accumulatedMeanGrads.map((function(e){return e.variable}))),null!=this.accumulatedMoments&&Bt(this.accumulatedMoments.map((function(e){return e.variable})))},t.prototype.getWeights=function(){return s(this,void 0,void 0,(function(){var e;return c(this,(function(t){switch(t.label){case 0:return e=this.accumulatedMeanSquares.concat(this.accumulatedMoments),this.centered&&e.push.apply(e,this.accumulatedMeanGrads),[4,this.saveIterations()];case 1:return[2,[t.sent()].concat(e.map((function(e){return{name:e.originalName,tensor:e.variable}})))]}}))}))},t.prototype.setWeights=function(e){return s(this,void 0,void 0,(function(){var t;return c(this,(function(n){switch(n.label){case 0:return[4,this.extractIterations(e)];case 1:return e=n.sent(),t=this.centered?e.length/3:e.length/2,this.accumulatedMeanSquares=e.slice(0,t).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),this.accumulatedMoments=e.slice(t,2*t).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}})),this.centered&&(this.accumulatedMeanGrads=e.slice(2*t,3*t).map((function(e){return{originalName:e.name,variable:e.tensor.variable(!1)}}))),[2]}}))}))},t.prototype.getConfig=function(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}},t.fromConfig=function(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)},t.className="RMSProp",t}(If);_f(Ff);var Bf=function(){function e(){}return e.sgd=function(e){return new Pf(e)},e.momentum=function(e,t,n){return void 0===n&&(n=!1),new Mf(e,t,n)},e.rmsprop=function(e,t,n,r,o){return void 0===t&&(t=.9),void 0===n&&(n=0),void 0===r&&(r=null),void 0===o&&(o=!1),new Ff(e,t,n,r,o)},e.adam=function(e,t,n,r){return void 0===e&&(e=.001),void 0===t&&(t=.9),void 0===n&&(n=.999),void 0===r&&(r=null),new Df(e,t,n,r)},e.adadelta=function(e,t,n){return void 0===e&&(e=.001),void 0===t&&(t=.95),void 0===n&&(n=null),new Of(e,t,n)},e.adamax=function(e,t,n,r,o){return void 0===e&&(e=.002),void 0===t&&(t=.9),void 0===n&&(n=.999),void 0===r&&(r=null),void 0===o&&(o=0),new Nf(e,t,n,r,o)},e.adagrad=function(e,t){return void 0===t&&(t=.1),new Af(e,t)},e}();Bf.sgd,Bf.momentum,Bf.adadelta,Bf.adagrad,Bf.rmsprop,Bf.adamax,Bf.adam,"undefined"!=typeof requestAnimationFrame&&requestAnimationFrame,de=gl}).call(this,n(5),n(10),n(55).Buffer,n(59).setImmediate)},function(e,t,n){"use strict";n.d(t,"c",(function(){return o})),n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return i})),n.d(t,"d",(function(){return u})),n.d(t,"e",(function(){return s}));var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function o(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function i(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{s(r.next(e))}catch(t){a(t)}}function u(e){try{s(r.throw(e))}catch(t){a(t)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,u)}s((r=r.apply(e,t||[])).next())}))}function u(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(a){return function(u){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!((o=(o=i.trys).length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(u){a=[6,u],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,u])}}}function s(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),o=0;for(t=0;t<n;t++)for(var a=arguments[t],i=0,u=a.length;i<u;i++,o++)r[o]=a[i];return r}},function(e,t){e.exports=n(294)},function(e,t,n){e.exports=n(53)()},function(e,t,n){var r=n(48),o=n(49),a=n(50),i=n(52);e.exports=function(e,t){return r(e)||o(e,t)||a(e,t)||i()},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){e.exports={container:"tUn9t5uXBW0G4uOuaTOqA",baseCounter:"_3JRt0WWENWRFRoNQBy35fI",activeCounter:"_1fIU1q1Zn5Q8C9xn0Ir-dW",inactiveCounter:"_2mwc0c5WhPOqV9wJk9VkGV",baseIcon:"_2_g_DOxWE8kqzFMzKyK37t",activeIcon:"_3mr2-PKNrqmyEJlyzqUVvx",inactiveIcon:"_1RzxXrRIq2Q9MbP1nZJdM9"}},function(e,t,n){e.exports={container:"_1BAMDen_YLcifIe4T1Qv-_",overlay:"_1e9w5ipw5j_XUcEv_CJUlO",outline:"_2W6OS2MmM9HFQCXWdJ8ASr",portraitCamera:"_2R1kfrIDlFyYzv1nDgZcTN",landscapeCamera:"TwXhRfznW400Ln2BpPUbd"}},function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var a=typeof r;if("string"===a||"number"===a)e.push(r);else if(Array.isArray(r)&&r.length){var i=o.apply(null,r);i&&e.push(i)}else if("object"===a)for(var u in r)n.call(r,u)&&r[u]&&e.push(u)}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(r=function(){return o}.apply(t,[]))||(e.exports=r)}()},function(e,t,n){"use strict";function r(e){var t="";if(!e)try{e=n(!function(){var e=new Error("Cannot find module 'fs'");throw e.code="MODULE_NOT_FOUND",e}())}catch(r){t=r.toString()}return{readFile:e?function(t){return new Promise((function(n,r){e.readFile(t,(function(e,t){return e?r(e):n(t)}))}))}:function(){throw new Error("readFile - failed to require fs in nodejs environment with error: "+t)}}}n.d(t,"a",(function(){return r}))},function(e,t){var n,r,o=e.exports={};function a(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function u(e){if(n===setTimeout)return setTimeout(e,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(e){n=a}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(e){r=i}}();var s,c=[],l=!1,f=-1;function d(){l&&s&&(l=!1,s.length?c=s.concat(c):f=-1,c.length&&p())}function p(){if(!l){var e=u(d);l=!0;for(var t=c.length;t;){for(s=c,c=[];++f<t;)s&&s[f].run();f=-1,t=c.length}s=null,l=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===i||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function v(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new h(e,t)),1!==c.length||l||u(p)},h.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=v,o.addListener=v,o.once=v,o.off=v,o.removeListener=v,o.removeAllListeners=v,o.emit=v,o.prependListener=v,o.prependOnceListener=v,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(e,t,n){e.exports={container:"_3UWaUYYyQc5VbvW6HKIRHv",landscape:"_2degJvmXASrj_NvC6CXWqN"}},function(e,t,n){e.exports={button:"_1Tg9slZrrhpko8KnDP7C6X",icon:"_1Fm1wq10kVJMKVxtWwkZex"}},function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return a}));var r=n(1),o=n(9);function a(){var t=e.Canvas||e.HTMLCanvasElement,n=e.Image||e.HTMLImageElement,a=e.fetch||function(){throw new Error("fetch - missing fetch implementation for nodejs environment")},i=Object(o.a)();return Object(r.a)({Canvas:t||function(){},CanvasRenderingContext2D:e.CanvasRenderingContext2D||function(){},Image:n||function(){},ImageData:e.ImageData||function(){},Video:e.HTMLVideoElement||function(){},createCanvasElement:function(){if(t)return new t;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},createImageElement:function(){if(n)return new n;throw new Error("createImageElement - missing Image implementation for nodejs environment")},fetch:a},i)}}).call(this,n(5))},function(e,t,n){"use strict";(function(r,o){function a(){return"object"==typeof r&&void 0!==e&&void 0!==o&&!!o.version}n.d(t,"a",(function(){return a}))}).call(this,n(5),n(10))},function(e,t,n){e.exports={cameraContainer:"_3Ums-OZ0qWebWj0SZbqYjT",moduleContainer:"IOOd58zY5WSnpJo3-6iVV"}},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},e.exports.default=e.exports,e.exports.__esModule=!0,n(t)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(67);e.exports=function(e,t){if(null==e)return{};var n,o,a=r(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){e.exports={container:"_309CoDF8kNC59Cacci2i3u"}},function(e,t,n){e.exports={canvas:"vNKPZsVtPwMoITxtjuu9V"}},function(e,t,n){var r;r=function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s="./src/react-webcam.tsx")}({"./src/react-webcam.tsx":function(e,t,n){"use strict";n.r(t);var r,o=n("react"),a=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),i=function(){return(i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function u(){return!(!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)}"undefined"!=typeof window&&(void 0===navigator.mediaDevices&&(navigator.mediaDevices={}),void 0===navigator.mediaDevices.getUserMedia&&(navigator.mediaDevices.getUserMedia=function(e){var t=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return t?new Promise((function(n,r){t.call(navigator,e,n,r)})):Promise.reject(new Error("getUserMedia is not implemented in this browser"))}));var s=function(e){function t(t){var n=e.call(this,t)||this;return n.canvas=null,n.ctx=null,n.state={hasUserMedia:!1},n}return a(t,e),t.prototype.componentDidMount=function(){var e=this.state,n=this.props;u()?(t.mountedInstances.push(this),e.hasUserMedia||t.userMediaRequested||this.requestUserMedia()):n.onUserMediaError("getUserMedia not supported")},t.prototype.componentDidUpdate=function(e){var t=this.props;if(u()){var n=JSON.stringify(e.audioConstraints)!==JSON.stringify(t.audioConstraints),r=JSON.stringify(e.videoConstraints)!==JSON.stringify(t.videoConstraints),o=e.minScreenshotWidth!==t.minScreenshotWidth,a=e.minScreenshotHeight!==t.minScreenshotHeight;(r||o||a)&&(this.canvas=null,this.ctx=null),(n||r)&&this.requestUserMedia()}else t.onUserMediaError("getUserMedia not supported")},t.prototype.componentWillUnmount=function(){var e=this.state,n=t.mountedInstances.indexOf(this);t.mountedInstances.splice(n,1),t.userMediaRequested=!1,0===t.mountedInstances.length&&e.hasUserMedia&&(this.stream&&(this.stream.getVideoTracks&&this.stream.getAudioTracks?(this.stream.getVideoTracks().map((function(e){return e.stop()})),this.stream.getAudioTracks().map((function(e){return e.stop()}))):this.stream.stop()),e.src&&window.URL.revokeObjectURL(e.src))},t.prototype.getScreenshot=function(){var e=this.state,t=this.props;if(!e.hasUserMedia)return null;var n=this.getCanvas();return n&&n.toDataURL(t.screenshotFormat,t.screenshotQuality)},t.prototype.getCanvas=function(){var e=this.state,t=this.props;if(!this.video)return null;if(!e.hasUserMedia||!this.video.videoHeight)return null;if(!this.ctx){var n=this.video.videoWidth,r=this.video.videoHeight;if(!this.props.forceScreenshotSourceSize){var o=n/r;r=(n=t.minScreenshotWidth||this.video.clientWidth)/o,t.minScreenshotHeight&&r<t.minScreenshotHeight&&(n=(r=t.minScreenshotHeight)*o)}this.canvas=document.createElement("canvas"),this.canvas.width=n,this.canvas.height=r,this.ctx=this.canvas.getContext("2d")}var a=this.ctx,i=this.canvas;return a&&i&&(t.mirrored&&(a.translate(i.width,0),a.scale(-1,1)),a.imageSmoothingEnabled=t.imageSmoothing,a.drawImage(this.video,0,0,i.width,i.height),t.mirrored&&(a.scale(-1,1),a.translate(-i.width,0))),i},t.prototype.requestUserMedia=function(){var e=this.props,n=function(n,r){var o={video:void 0===r||r};e.audio&&(o.audio=void 0===n||n),navigator.mediaDevices.getUserMedia(o).then((function(e){t.mountedInstances.forEach((function(t){return t.handleUserMedia(null,e)}))})).catch((function(e){t.mountedInstances.forEach((function(t){return t.handleUserMedia(e)}))}))};if("mediaDevices"in navigator)n(e.audioConstraints,e.videoConstraints);else{var r=function(e){return{optional:[{sourceId:e}]}},o=function(e){var t=e.deviceId;return"string"==typeof t?t:Array.isArray(t)&&t.length>0?t[0]:"object"==typeof t&&t.ideal?t.ideal:null};MediaStreamTrack.getSources((function(t){var a=null,i=null;t.forEach((function(e){"audio"===e.kind?a=e.id:"video"===e.kind&&(i=e.id)}));var u=o(e.audioConstraints);u&&(a=u);var s=o(e.videoConstraints);s&&(i=s),n(r(a),r(i))}))}t.userMediaRequested=!0},t.prototype.handleUserMedia=function(e,t){var n=this.props;if(e||!t)return this.setState({hasUserMedia:!1}),void n.onUserMediaError(e);this.stream=t;try{this.video&&(this.video.srcObject=t),this.setState({hasUserMedia:!0})}catch(r){this.setState({hasUserMedia:!0,src:window.URL.createObjectURL(t)})}n.onUserMedia()},t.prototype.render=function(){var e=this,t=this.state,n=this.props,r=n.audio,a=(n.forceScreenshotSourceSize,n.onUserMedia,n.onUserMediaError,n.screenshotFormat,n.screenshotQuality,n.minScreenshotWidth,n.minScreenshotHeight,n.audioConstraints,n.videoConstraints,n.imageSmoothing,n.mirrored),u=n.style,s=void 0===u?{}:u,c=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(n,["audio","forceScreenshotSourceSize","onUserMedia","onUserMediaError","screenshotFormat","screenshotQuality","minScreenshotWidth","minScreenshotHeight","audioConstraints","videoConstraints","imageSmoothing","mirrored","style"]),l=a?i(i({},s),{transform:(s.transform||"")+" scaleX(-1)"}):s;return o.createElement("video",i({autoPlay:!0,src:t.src,muted:r,playsInline:!0,ref:function(t){e.video=t},style:l},c))},t.defaultProps={audio:!0,forceScreenshotSourceSize:!1,imageSmoothing:!0,mirrored:!1,onUserMedia:function(){},onUserMediaError:function(){},screenshotFormat:"image/webp",screenshotQuality:.92},t.mountedInstances=[],t.userMediaRequested=!1,t}(o.Component);t.default=s},react:function(t,n){t.exports=e}}).default},e.exports=r(n(2))},function(e,t,n){e.exports={video:"_3GqInLQ5XsRTU_HmqqchW9"}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"Preparing camera...","face-scan-loading-feedback-message":"Preparing face scan...","hold-still-feedback-message":"Please hold still","image-too-bright-feedback-message":"Move away from direct light","image-too-dark-feedback-message":"Move to a brighter area","move-back-feedback-message":"Move back","move-center-feedback-message":"Place your face in the frame","move-closer-feedback-message":"Move closer","one-face-only-feedback-message":"Only one face allowed"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"Příprava fotoaparátu…","face-scan-loading-feedback-message":"Příprava skenování obličeje…","hold-still-feedback-message":"Stůjte klidně","image-too-bright-feedback-message":"Posuňte se dál z přímého světla","image-too-dark-feedback-message":"Posuňte se na světlejší místo","move-back-feedback-message":"Posuňte se dál","move-center-feedback-message":"Umístěte svůj obličej do rámečku","move-closer-feedback-message":"Posuňte se blíž","one-face-only-feedback-message":"Je povolen pouze jeden obličej"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"Forbereder kamera...","face-scan-loading-feedback-message":"Forbereder ansigtsscanning...","hold-still-feedback-message":"Stå stille","image-too-bright-feedback-message":"Flyt væk fra direkte lys","image-too-dark-feedback-message":"Flyt til et lysere område","move-back-feedback-message":"Flyt dig tilbage","move-center-feedback-message":"Hold dit ansigt i rammen","move-closer-feedback-message":"Flyt dig tættere på","one-face-only-feedback-message":"Kun ét ansigt er tilladt"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"Kamera lädt...","face-scan-loading-feedback-message":"Gesichtsscan wird vorbereitet","hold-still-feedback-message":"Bitte still halten","image-too-bright-feedback-message":"Vermeiden Sie direkte Lichteinstrahlung","image-too-dark-feedback-message":"Wählen Sie einen helleren Ort","move-back-feedback-message":"Gehen Sie zurück","move-center-feedback-message":"Plazieren Sie Ihr Gesicht in die Mitte","move-closer-feedback-message":"Kommen Sie näher","one-face-only-feedback-message":"Nur ein Gesicht ist erlaubt"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"La cámara se está preparando...","face-scan-loading-feedback-message":"Preparando escaneado facial...","hold-still-feedback-message":"Aguanta un momento","image-too-bright-feedback-message":"Aléjate de la luz directa","image-too-dark-feedback-message":"Muévete a un área más iluminada","move-back-feedback-message":"Retírate","move-center-feedback-message":"Colócate en el centro","move-closer-feedback-message":"Acércate","one-face-only-feedback-message":"Enfócate solo a ti"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"La cámara se está preparando...","face-scan-loading-feedback-message":"Preparando escaneado facial...","hold-still-feedback-message":"Quédate quieto un momento","image-too-bright-feedback-message":"Aléjate de la luz directa","image-too-dark-feedback-message":"Muévete a un área más iluminada","move-back-feedback-message":"Aléjate","move-center-feedback-message":"Colócate en el centro","move-closer-feedback-message":"Acércate","one-face-only-feedback-message":"Enfócate solo a ti"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"Valmistellaan kameraa...","face-scan-loading-feedback-message":"Valmistellaan kasvojen skannausta...","hold-still-feedback-message":"Pysy paikallasi","image-too-bright-feedback-message":"Siirry pois suorasta valosta","image-too-dark-feedback-message":"Siirry kirkkaampaan valoon","move-back-feedback-message":"Siirry taaksepäin","move-center-feedback-message":"Aseta kasvot keskelle kehystä","move-closer-feedback-message":"Siirry lähemmäksi","one-face-only-feedback-message":"Vain yhdet kasvot on sallittu"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"Préparation de l'appareil...","face-scan-loading-feedback-message":"Préparation du scan...","hold-still-feedback-message":"Veuillez ne pas bouger","image-too-bright-feedback-message":"Éloignez-vous de toute source de lumière directe","image-too-dark-feedback-message":"Déplacez-vous à un endroit plus lumineux","move-back-feedback-message":"Reculez","move-center-feedback-message":"Placez votre visage dans le cadre","move-closer-feedback-message":"Approchez-vous","one-face-only-feedback-message":"Un seul visage permis"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"कैमरे को तैयार किया जा रहा है...","face-scan-loading-feedback-message":"चेहरा स्कैन करने की तैयारी हो रही है…","hold-still-feedback-message":"कृपया हिले डुले नहीं","image-too-bright-feedback-message":"सीधी रोशनी से दूर हटें","image-too-dark-feedback-message":"ज़्यादा रोशनी वाली जगह पर जाएं","move-back-feedback-message":"पीछे जाएं","move-center-feedback-message":"अपने चेहरे को फ़्रेम में लाएं","move-closer-feedback-message":"थोड़ा करीब आएँ","one-face-only-feedback-message":"सिर्फ़ एक चेहरे की अनुमति है"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"Caricamento della camera...","face-scan-loading-feedback-message":"Caricamento dello scan facciale...","hold-still-feedback-message":"Rimani fermo","image-too-bright-feedback-message":"Spostati dalla luce diretta","image-too-dark-feedback-message":"Spostati in una zona più illuminata","move-back-feedback-message":"Allontanati","move-center-feedback-message":"Posiziona la tua faccia nel riquadro","move-closer-feedback-message":"Avvicinati","one-face-only-feedback-message":"Solo una faccia è permessa"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"カメラ準備中...","face-scan-loading-feedback-message":"フェイススキャン準備中...","hold-still-feedback-message":"動かないでください","image-too-bright-feedback-message":"直射光を避けてください","image-too-dark-feedback-message":"もっと明るい場所に移動してください","move-back-feedback-message":"離れてください","move-center-feedback-message":"顔を枠内に収めてください","move-closer-feedback-message":"近づいてください","one-face-only-feedback-message":"認識できる顔は1つだけです"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"Bezig met camera voorbereiden...","face-scan-loading-feedback-message":"Bezig met gezichtsscan voorbereiden...","hold-still-feedback-message":"Sta stil","image-too-bright-feedback-message":"Niet in direct licht plaatsen","image-too-dark-feedback-message":"Op een lichtere plaats zetten","move-back-feedback-message":"Ga achteruit","move-center-feedback-message":"Plaats je gezicht in het kader","move-closer-feedback-message":"Kom dichter bij","one-face-only-feedback-message":"Slechts één gezicht toegestaan"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"Klargjør kameraet ...","face-scan-loading-feedback-message":"Klargjør ansiktsskanning ...","hold-still-feedback-message":"Hold deg i ro","image-too-bright-feedback-message":"Gå vekk fra direkte lys","image-too-dark-feedback-message":"Gå til et lysere område","move-back-feedback-message":"Gå bakover","move-center-feedback-message":"Hold ansiktet ditt i rammen","move-closer-feedback-message":"Beveg deg forover","one-face-only-feedback-message":"Kun ett ansikt tillat"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"Przygotowywanie aparatu...","face-scan-loading-feedback-message":"Przygotowywanie skanu twarzy...","hold-still-feedback-message":"Nie ruszaj się","image-too-bright-feedback-message":"Przejdź do lepiej oświetlonego miejsca","image-too-dark-feedback-message":"Odsuń się, aby światło nie padało na Ciebie bezpośrednio","move-back-feedback-message":"Cofnij się","move-center-feedback-message":"Umieść twarz w ramce","move-closer-feedback-message":"Przybliż się","one-face-only-feedback-message":"Dozwolona jest tylko jedna twarz"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"Preparando câmera...","face-scan-loading-feedback-message":"Preparando scan do rosto...","hold-still-feedback-message":"Segure firme","image-too-bright-feedback-message":"Afaste-se da iluminação direta.","image-too-dark-feedback-message":"Vá para uma área mais iluminada","move-back-feedback-message":"Afaste-se","move-center-feedback-message":"Coloque seu rosto no quadro","move-closer-feedback-message":"Aproxime-se","one-face-only-feedback-message":"Somente um rosto permitido"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"Se pregătește camera...","face-scan-loading-feedback-message":"Se pregătește scanarea feței...","hold-still-feedback-message":"Vă rugăm nu vă mișcați","image-too-bright-feedback-message":"Îndepărtați-vă de lumina directă","image-too-dark-feedback-message":"Duceți-vă într-o zonă mai luminoasă","move-back-feedback-message":"Mergeți mai în spate","move-center-feedback-message":"Poziționați fața în cadru","move-closer-feedback-message":"Veniți mai aproape","one-face-only-feedback-message":"Este permisă doar o singură față"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"Подготовка камеры...","face-scan-loading-feedback-message":"Подготовка к сканированию лица...","hold-still-feedback-message":"Не двигайтесь","image-too-bright-feedback-message":"Отодвиньтесь от прямого света","image-too-dark-feedback-message":"Перейдите в более светлое место","move-back-feedback-message":"Отодвиньтесь назад","move-center-feedback-message":"Поместите лицо в рамку","move-closer-feedback-message":"Придвиньтесь ближе","one-face-only-feedback-message":"Допускается только одно лицо"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"Förbereder kameran …","face-scan-loading-feedback-message":"Förbereder ansiktsskanning ...","hold-still-feedback-message":"Vänligen håll still","image-too-bright-feedback-message":"Avlägsna dig från direkt ljus","image-too-dark-feedback-message":"Flytta till ett ljusare område","move-back-feedback-message":"Backa","move-center-feedback-message":"Placera ditt ansikte i ramen","move-closer-feedback-message":"Flytta dig närmare","one-face-only-feedback-message":"Endast ett ansikte tillåtet"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"กำลังเตรียมกล้อง...","face-scan-loading-feedback-message":"กำลังเตรียมการสแกนใบหน้า...","hold-still-feedback-message":"โปรดหยุดนิ่ง","image-too-bright-feedback-message":"ขยับออกห่างจากแสงโดยตรง","image-too-dark-feedback-message":"ขยับไปยังพื้นที่ที่สว่างกว่า","move-back-feedback-message":"ถอยหลัง","move-center-feedback-message":"ขยับให้ใบหน้าของคุณอยู่ในเฟรม","move-closer-feedback-message":"ขยับเข้ามาใกล้ขึ้น","one-face-only-feedback-message":"อนุญาตให้มีเพียงใบหน้าเดียวเท่านั้น"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"Kamera hazırlanıyor...","face-scan-loading-feedback-message":"Yüz tarama hazırlanıyor...","hold-still-feedback-message":"Lütfen kıpırdamadan bekleyin","image-too-bright-feedback-message":"Direkt ışıktan uzaklaşın","image-too-dark-feedback-message":"Daha aydınlık bir alana geçin","move-back-feedback-message":"Uzaklaşın","move-center-feedback-message":"Yüzünüzü çerçeveye yerleştirin","move-closer-feedback-message":"Yakınlaşın","one-face-only-feedback-message":"Yalnızca bir yüze izin verilir"}}},function(e,t){e.exports={messages:{"camera-loading-feedback-message":"Đang chuẩn bị máy ảnh...","face-scan-loading-feedback-message":"Đang chuẩn bị quét khuôn mặt...","hold-still-feedback-message":"Vui lòng giữ yên","image-too-bright-feedback-message":"Di chuyển khỏi chỗ ánh sáng chiếu trực tiếp","image-too-dark-feedback-message":"Di chuyển đến chỗ sáng hơn","move-back-feedback-message":"Lùi lại","move-center-feedback-message":"Giữ khuôn mặt của bạn ở trong khung hình","move-closer-feedback-message":"Di chuyển lại gần hơn","one-face-only-feedback-message":"Chỉ cho phép một khuôn mặt"}}},function(e,t,n){var r=n(64);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(65).default,o=n(66);e.exports=function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return o(e)},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e){if(Array.isArray(e))return e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],i=!0,u=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(s){u=!0,o=s}finally{try{i||null==n.return||n.return()}finally{if(u)throw o}}return a}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(51);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";var r=n(54);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";(function(e){var r=n(56),o=n(57),a=n(58);function i(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function u(e,t){if(i()<t)throw new RangeError("Invalid typed array length");return s.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=s.prototype:(null===e&&(e=new s(t)),e.length=t),e}function s(e,t,n){if(!(s.TYPED_ARRAY_SUPPORT||this instanceof s))return new s(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return f(this,e)}return c(this,e,t,n)}function c(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),s.TYPED_ARRAY_SUPPORT?(e=t).__proto__=s.prototype:e=d(e,t),e}(e,t,n,r):"string"==typeof t?function(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!s.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|h(t,n),o=(e=u(e,r)).write(t,n);return o!==r&&(e=e.slice(0,o)),e}(e,t,n):function(e,t){if(s.isBuffer(t)){var n=0|p(t.length);return 0===(e=u(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?u(e,0):d(e,t);if("Buffer"===t.type&&a(t.data))return d(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function f(e,t){if(l(t),e=u(e,t<0?0:0|p(t)),!s.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function d(e,t){var n=t.length<0?0:0|p(t.length);e=u(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function p(e){if(e>=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function h(e,t){if(s.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return U(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return z(e).length;default:if(r)return U(e).length;t=(""+t).toLowerCase(),r=!0}}function v(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return I(this,t,n);case"utf8":case"utf-8":return S(this,t,n);case"ascii":return R(this,t,n);case"latin1":case"binary":return T(this,t,n);case"base64":return _(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function m(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function g(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=s.from(t,r)),s.isBuffer(t))return 0===t.length?-1:y(e,t,n,r,o);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,r,o){var a,i=1,u=e.length,s=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;i=2,u/=2,s/=2,n/=2}function c(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(o){var l=-1;for(a=n;a<u;a++)if(c(e,a)===c(t,-1===l?0:a-l)){if(-1===l&&(l=a),a-l+1===s)return l*i}else-1!==l&&(a-=a-l),l=-1}else for(n+s>u&&(n=u-s),a=n;a>=0;a--){for(var f=!0,d=0;d<s;d++)if(c(e,a+d)!==c(t,d)){f=!1;break}if(f)return a}return-1}function b(e,t,n,r){n=Number(n)||0;var o=e.length-n;r?(r=Number(r))>o&&(r=o):r=o;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");r>a/2&&(r=a/2);for(var i=0;i<r;++i){var u=parseInt(t.substr(2*i,2),16);if(isNaN(u))return i;e[n+i]=u}return i}function x(e,t,n,r){return j(U(t,e.length-n),e,n,r)}function w(e,t,n,r){return j(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function E(e,t,n,r){return w(e,t,n,r)}function C(e,t,n,r){return j(z(t),e,n,r)}function k(e,t,n,r){return j(function(e,t){for(var n,r,o,a=[],i=0;i<e.length&&!((t-=2)<0);++i)r=(n=e.charCodeAt(i))>>8,o=n%256,a.push(o),a.push(r);return a}(t,e.length-n),e,n,r)}function _(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function S(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o<n;){var a,i,u,s,c=e[o],l=null,f=c>239?4:c>223?3:c>191?2:1;if(o+f<=n)switch(f){case 1:c<128&&(l=c);break;case 2:128==(192&(a=e[o+1]))&&(s=(31&c)<<6|63&a)>127&&(l=s);break;case 3:a=e[o+1],i=e[o+2],128==(192&a)&&128==(192&i)&&(s=(15&c)<<12|(63&a)<<6|63&i)>2047&&(s<55296||s>57343)&&(l=s);break;case 4:a=e[o+1],i=e[o+2],u=e[o+3],128==(192&a)&&128==(192&i)&&128==(192&u)&&(s=(15&c)<<18|(63&a)<<12|(63&i)<<6|63&u)>65535&&s<1114112&&(l=s)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=4096));return n}(r)}function R(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(127&e[o]);return r}function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(e[o]);return r}function I(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var o="",a=t;a<n;++a)o+=W(e[a]);return o}function O(e,t,n){for(var r=e.slice(t,n),o="",a=0;a<r.length;a+=2)o+=String.fromCharCode(r[a]+256*r[a+1]);return o}function A(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,o,a){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<a)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function N(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,a=Math.min(e.length-n,2);o<a;++o)e[n+o]=(t&255<<8*(r?o:1-o))>>>8*(r?o:1-o)}function P(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,a=Math.min(e.length-n,4);o<a;++o)e[n+o]=t>>>8*(r?o:3-o)&255}function M(e,t,n,r,o,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function F(e,t,n,r,a){return a||M(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,a){return a||M(e,0,n,8),o.write(e,t,n,r,52,8),n+8}t.Buffer=s,t.SlowBuffer=function(e){return+e!=e&&(e=0),s.alloc(+e)},t.INSPECT_MAX_BYTES=50,s.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(t){return!1}}(),t.kMaxLength=i(),s.poolSize=8192,s._augment=function(e){return e.__proto__=s.prototype,e},s.from=function(e,t,n){return c(null,e,t,n)},s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})),s.alloc=function(e,t,n){return function(e,t,n,r){return l(t),t<=0?u(e,t):void 0!==n?"string"==typeof r?u(e,t).fill(n,r):u(e,t).fill(n):u(e,t)}(null,e,t,n)},s.allocUnsafe=function(e){return f(null,e)},s.allocUnsafeSlow=function(e){return f(null,e)},s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,o=0,a=Math.min(n,r);o<a;++o)if(e[o]!==t[o]){n=e[o],r=t[o];break}return n<r?-1:r<n?1:0},s.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(e,t){if(!a(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return s.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=s.allocUnsafe(t),o=0;for(n=0;n<e.length;++n){var i=e[n];if(!s.isBuffer(i))throw new TypeError('"list" argument must be an Array of Buffers');i.copy(r,o),o+=i.length}return r},s.byteLength=h,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)m(this,t,t+1);return this},s.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)m(this,t,t+3),m(this,t+1,t+2);return this},s.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)m(this,t,t+7),m(this,t+1,t+6),m(this,t+2,t+5),m(this,t+3,t+4);return this},s.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?S(this,0,e):v.apply(this,arguments)},s.prototype.equals=function(e){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===s.compare(this,e)},s.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},s.prototype.compare=function(e,t,n,r,o){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var a=(o>>>=0)-(r>>>=0),i=(n>>>=0)-(t>>>=0),u=Math.min(a,i),c=this.slice(r,o),l=e.slice(t,n),f=0;f<u;++f)if(c[f]!==l[f]){a=c[f],i=l[f];break}return a<i?-1:i<a?1:0},s.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},s.prototype.indexOf=function(e,t,n){return g(this,e,t,n,!0)},s.prototype.lastIndexOf=function(e,t,n){return g(this,e,t,n,!1)},s.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var o=this.length-t;if((void 0===n||n>o)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return b(this,e,t,n);case"utf8":case"utf-8":return x(this,e,t,n);case"ascii":return w(this,e,t,n);case"latin1":case"binary":return E(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},s.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),s.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=s.prototype;else{var o=t-e;n=new s(o,void 0);for(var a=0;a<o;++a)n[a]=this[a+e]}return n},s.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||A(e,t,this.length);for(var r=this[e],o=1,a=0;++a<t&&(o*=256);)r+=this[e+a]*o;return r},s.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||A(e,t,this.length);for(var r=this[e+--t],o=1;t>0&&(o*=256);)r+=this[e+--t]*o;return r},s.prototype.readUInt8=function(e,t){return t||A(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||A(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||A(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||A(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||A(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||A(e,t,this.length);for(var r=this[e],o=1,a=0;++a<t&&(o*=256);)r+=this[e+a]*o;return r>=(o*=128)&&(r-=Math.pow(2,8*t)),r},s.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||A(e,t,this.length);for(var r=t,o=1,a=this[e+--r];r>0&&(o*=256);)a+=this[e+--r]*o;return a>=(o*=128)&&(a-=Math.pow(2,8*t)),a},s.prototype.readInt8=function(e,t){return t||A(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){t||A(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt16BE=function(e,t){t||A(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt32LE=function(e,t){return t||A(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||A(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||A(e,4,this.length),o.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||A(e,4,this.length),o.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||A(e,8,this.length),o.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||A(e,8,this.length),o.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,n,r){e=+e,t|=0,n|=0,r||D(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,a=0;for(this[t]=255&e;++a<n&&(o*=256);)this[t+a]=e/o&255;return t+n},s.prototype.writeUIntBE=function(e,t,n,r){e=+e,t|=0,n|=0,r||D(this,e,t,n,Math.pow(2,8*n)-1,0);var o=n-1,a=1;for(this[t+o]=255&e;--o>=0&&(a*=256);)this[t+o]=e/a&255;return t+n},s.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):P(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):P(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var a=0,i=1,u=0;for(this[t]=255&e;++a<n&&(i*=256);)e<0&&0===u&&0!==this[t+a-1]&&(u=1),this[t+a]=(e/i>>0)-u&255;return t+n},s.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var a=n-1,i=1,u=0;for(this[t+a]=255&e;--a>=0&&(i*=256);)e<0&&0===u&&0!==this[t+a+1]&&(u=1),this[t+a]=(e/i>>0)-u&255;return t+n},s.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):P(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):P(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,n){return F(this,e,t,!0,n)},s.prototype.writeFloatBE=function(e,t,n){return F(this,e,t,!1,n)},s.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},s.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},s.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var o,a=r-n;if(this===e&&n<t&&t<r)for(o=a-1;o>=0;--o)e[o+t]=this[o+n];else if(a<1e3||!s.TYPED_ARRAY_SUPPORT)for(o=0;o<a;++o)e[o+t]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+a),t);return a},s.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!s.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var a;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(a=t;a<n;++a)this[a]=e;else{var i=s.isBuffer(e)?e:U(new s(e,r).toString()),u=i.length;for(a=0;a<n-t;++a)this[a+t]=i[a%u]}return this};var L=/[^+\/0-9A-Za-z-_]/g;function W(e){return e<16?"0"+e.toString(16):e.toString(16)}function U(e,t){var n;t=t||1/0;for(var r=e.length,o=null,a=[],i=0;i<r;++i){if((n=e.charCodeAt(i))>55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(i+1===r){(t-=3)>-1&&a.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&a.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function z(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(L,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function j(e,t,n,r){for(var o=0;o<r&&!(o+n>=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(5))},function(e,t,n){"use strict";t.byteLength=function(e){var t=c(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,r=c(e),i=r[0],u=r[1],s=new a(function(e,t,n){return 3*(t+n)/4-n}(0,i,u)),l=0,f=u>0?i-4:i;for(n=0;n<f;n+=4)t=o[e.charCodeAt(n)]<<18|o[e.charCodeAt(n+1)]<<12|o[e.charCodeAt(n+2)]<<6|o[e.charCodeAt(n+3)],s[l++]=t>>16&255,s[l++]=t>>8&255,s[l++]=255&t;return 2===u&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,s[l++]=255&t),1===u&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,s[l++]=t>>8&255,s[l++]=255&t),s},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,a=[],i=0,u=n-o;i<u;i+=16383)a.push(l(e,i,i+16383>u?u:i+16383));return 1===o?(t=e[n-1],a.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],a.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),a.join("")};for(var r=[],o=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u=0,s=i.length;u<s;++u)r[u]=i[u],o[i.charCodeAt(u)]=u;function c(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,a,i=[],u=t;u<n;u+=3)o=(e[u]<<16&16711680)+(e[u+1]<<8&65280)+(255&e[u+2]),i.push(r[(a=o)>>18&63]+r[a>>12&63]+r[a>>6&63]+r[63&a]);return i.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var a,i,u=8*o-r-1,s=(1<<u)-1,c=s>>1,l=-7,f=n?o-1:0,d=n?-1:1,p=e[t+f];for(f+=d,a=p&(1<<-l)-1,p>>=-l,l+=u;l>0;a=256*a+e[t+f],f+=d,l-=8);for(i=a&(1<<-l)-1,a>>=-l,l+=r;l>0;i=256*i+e[t+f],f+=d,l-=8);if(0===a)a=1-c;else{if(a===s)return i?NaN:1/0*(p?-1:1);i+=Math.pow(2,r),a-=c}return(p?-1:1)*i*Math.pow(2,a-r)},t.write=function(e,t,n,r,o,a){var i,u,s,c=8*a-o-1,l=(1<<c)-1,f=l>>1,d=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:a-1,h=r?1:-1,v=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(u=isNaN(t)?1:0,i=l):(i=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-i))<1&&(i--,s*=2),(t+=i+f>=1?d/s:d*Math.pow(2,1-f))*s>=2&&(i++,s/=2),i+f>=l?(u=0,i=l):i+f>=1?(u=(t*s-1)*Math.pow(2,o),i+=f):(u=t*Math.pow(2,f-1)*Math.pow(2,o),i=0));o>=8;e[n+p]=255&u,p+=h,u/=256,o-=8);for(i=i<<o|u,c+=o;c>0;e[n+p]=255&i,p+=h,i/=256,c-=8);e[n+p-h]|=128*v}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function a(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new a(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new a(o.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},a.prototype.unref=a.prototype.ref=function(){},a.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(60),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(5))},function(e,t,n){(function(e,t){!function(e,n){"use strict";if(!e.setImmediate){var r,o,a,i,u,s=1,c={},l=!1,f=e.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(e);d=d&&d.setTimeout?d:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick((function(){h(e)}))}:function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?(i="setImmediate$"+Math.random()+"$",u=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(i)&&h(+t.data.slice(i.length))},e.addEventListener?e.addEventListener("message",u,!1):e.attachEvent("onmessage",u),r=function(t){e.postMessage(i+t,"*")}):e.MessageChannel?((a=new MessageChannel).port1.onmessage=function(e){h(e.data)},r=function(e){a.port2.postMessage(e)}):f&&"onreadystatechange"in f.createElement("script")?(o=f.documentElement,r=function(e){var t=f.createElement("script");t.onreadystatechange=function(){h(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):r=function(e){setTimeout(h,0,e)},d.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n<t.length;n++)t[n]=arguments[n+1];var o={callback:e,args:t};return c[s]=o,r(s),s++},d.clearImmediate=p}function p(e){delete c[e]}function h(e){if(l)setTimeout(h,0,e);else{var t=c[e];if(t){l=!0;try{!function(e){var t=e.callback,n=e.args;switch(n.length){case 0:t();break;case 1:t(n[0]);break;case 2:t(n[0],n[1]);break;case 3:t(n[0],n[1],n[2]);break;default:t.apply(void 0,n)}}(t)}finally{p(e),l=!1}}}}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,n(5),n(10))},function(e,t){},function(e,t){},function(e,t){},function(e,t){function n(t,r){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},e.exports.default=e.exports,e.exports.__esModule=!0,n(t,r)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function n(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(e.exports=n=function(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),n(t)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"ERROR_CODE",(function(){return o})),n.d(t,"LANGUAGE_CODE",(function(){return p})),n.d(t,"CAPTURE_METHOD",(function(){return h})),n.d(t,"IMAGE_TYPE",(function(){return v})),n.d(t,"QUALITY_TYPE",(function(){return m})),n.d(t,"default",(function(){return Ma}));var r={};n.r(r),n.d(r,"drawContour",(function(){return _e})),n.d(r,"drawDetections",(function(){return yt})),n.d(r,"drawFaceExpressions",(function(){return rn})),n.d(r,"DrawBoxOptions",(function(){return mt})),n.d(r,"DrawBox",(function(){return gt})),n.d(r,"DrawFaceLandmarksOptions",(function(){return un})),n.d(r,"DrawFaceLandmarks",(function(){return sn})),n.d(r,"drawFaceLandmarks",(function(){return cn})),n.d(r,"AnchorPosition",(function(){return lt})),n.d(r,"DrawTextFieldOptions",(function(){return ht})),n.d(r,"DrawTextField",(function(){return vt}));const o={NO_CAMERA_PERMISSION:"NO_CAMERA_PERMISSION",NO_CAMERA:"NO_CAMERA",UNSUPPORTED_BROWSER:"UNSUPPORTED_BROWSER",OVERCONSTRAINED:"OVERCONSTRAINED",GENERIC_CAMERA_ERROR:"GENERIC_CAMERA_ERROR",FACE_DETECTION_INIT_ERROR:"FACE_DETECTION_INIT_ERROR",INTERNAL_ERROR:"INTERNAL_ERROR"},a="MOVE_CLOSER",i="MOVE_BACK",u="MOVE_CENTER",s="ONE_FACE_ONLY",c="HOLD_STILL",l="FACE_SCAN_LOADING",f="IMAGE_TOO_DARK",d="IMAGE_TOO_BRIGHT",p={CS:"cs",DA:"da",DE:"de",EN:"en",ES:"es",ES_419:"es-419",FI:"fi",FR:"fr",HI:"hi",IT:"it",JA:"ja",NB:"nb",NL:"nl",PL:"pl",PT:"pt",RO:"ro",RU:"ru",SV:"sv",TH:"th",TR:"tr",VI:"vi"},h={MANUAL:"manual",AUTO:"auto"},v={ORIGINAL:"original",CROPPED:"cropped"},m={HIGH:"high",MEDIUM:"medium",LOW:"low"},g={[m.HIGH]:1,[m.MEDIUM]:.96,[m.LOW]:.9};var y=n(2),b=n.n(y);class x extends y.Component{componentDidCatch(){const{onError:e}=this.props;e(o.INTERNAL_ERROR)}render(){const{children:e}=this.props;return e}}var w=x,E=n(4),C=n.n(E),k=n(20),_=n.n(k),S=b.a.createContext(null);var R=function(e){var t=e.i18n,n=e.defaultComponent,r=e.forceRenderOnLocaleChange,o=void 0===r||r,a=e.children,i=function(){return{i18n:t,defaultComponent:n}},u=function(){return o&&t.locale||"default"},s=b.a.useState(i()),c=C()(s,2),l=c[0],f=c[1],d=b.a.useState(u()),p=C()(d,2),h=p[0],v=p[1];return b.a.useEffect((function(){var e=t.on("change",(function(){f(i()),v(u())}));return"default"===h&&v(u()),function(){return e()}}),[]),o&&"default"===h?null:b.a.createElement(S.Provider,{value:l,key:h},a)};function T(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return I(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?I(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){u=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(u)throw a}}}}function I(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var O=/<(\d+)>(.*?)<\/\1>|<(\d+)\/>/,A=/(?:\r\n|\r|\n)/g,D={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0};function N(e){if(!e.length)return[];var t=e.slice(0,4),n=C()(t,4),r=n[0],o=n[1],a=n[2],i=n[3];return[[parseInt(r||a),o||"",i]].concat(N(e.slice(4,e.length)))}var P=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return function(){return"".concat(t,"_").concat(e++)}};function M(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function F(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?M(Object(n),!0).forEach((function(t){_()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function B(e){var t=b.a.useContext(S),n=t.i18n,r=t.defaultComponent,o=e.render,a=e.component,i=e.id,u=e.message,s=e.formats,c=F({},e.values),l=F({},e.components);c&&Object.keys(c).forEach((function(e){var t=c[e];if(b.a.isValidElement(t)){var n=Object.keys(l).length;l[n]=t,c[e]="<".concat(n,"/>")}}));var f=n&&"function"==typeof n._?n._(i,c,{message:u,formats:s}):i,d=f?function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=P(0,"$lingui$"),o=t.replace(A,"").split(O);if(1===o.length)return t;var a=[],i=o.shift();i&&a.push(i);var u,s=T(N(o));try{for(s.s();!(u=s.n()).done;){var c=C()(u.value,3),l=c[0],f=c[1],d=c[2],p=n[l];(!p||D[p.type]&&f)&&(p=b.a.createElement(b.a.Fragment)),a.push(b.a.cloneElement(p,{key:r()},f?e(f,n):p.props.children)),d&&a.push(d)}}catch(h){s.e(h)}finally{s.f()}return a}(f,l):null;if(null===o||null===a)return d;var p=r||b.a.Fragment;if(o&&a);else if(o&&"function"!=typeof o);else if(a&&"function"!=typeof a)return b.a.createElement(p,null,d);if("function"==typeof o)return o({id:i,translation:d,message:u});var h=a||p;return b.a.createElement(h,null,d)}B.defaultProps={values:{},components:{}};var L,W=n(3),U=n.n(W),z=n(8),j=n.n(z),V=n(7),H=n.n(V);function G(){return(G=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var q,K=function(e){return y.createElement("svg",G({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1280 720"},e),L||(L=y.createElement("path",{fill:"#FFF",fillOpacity:.7,fillRule:"evenodd",d:"M1280 0v720H0V0h1280zM658.215 95.79a286.506 286.506 0 00-31.573-.605c-3.545.197-8.59.56-14.622 1.286-6.207.747-16.005 2.002-28.095 5.248a155.94 155.94 0 00-16.938 5.584c-18.993 7.515-37.088 18.327-50.068 33.828-19.713 23.543-29.338 53.4-33.045 83.01-3.922 31.334 1.288 62.583 2.466 93.896.036.933-.066 1.933-1.189 2.205-.489.12-1.01.044-1.49-.105-2.367-.735-3.576-2.94-5.427-4.353-4.138-3.16-10.825-3.19-14.466.709-5.106 5.47-4.03 13.544-2.5 20.126a1882.27 1882.27 0 015.703 25.242l.698 3.203c3.236 14.859 5.256 30.448 14.16 43.384 1.275 1.854 2.705 3.69 4.675 4.858 4.438 2.63 8.543 3.032 11.32 7.741 2.541 4.307 3.22 9.748 4.45 14.478 3.743 14.39 10.884 27.878 17.09 41.39 7.208 15.702 15.101 31.167 24.77 45.629 13.507 20.203 30.719 38.55 52.234 50.83 13.213 7.54 29.09 13.962 44.455 13.237l.01-.002.011.002c15.13.714 30.754-5.501 43.844-12.89l.611-.347c21.515-12.28 38.727-30.627 52.235-50.83 9.668-14.462 17.561-29.927 24.77-45.629 6.205-13.512 13.346-27 17.087-41.39 1.23-4.73 1.911-10.171 4.451-14.478 2.779-4.709 6.883-5.112 11.32-7.74 1.972-1.17 3.401-3.005 4.676-4.86 8.904-12.935 10.925-28.524 14.16-43.383l.698-3.203a1877.285 1877.285 0 015.703-25.242c1.528-6.582 2.606-14.657-2.5-20.126-3.64-3.9-10.327-3.869-14.466-.71-1.851 1.414-3.06 3.619-5.426 4.354-.48.15-1.002.224-1.491.105-1.123-.272-1.225-1.272-1.189-2.205 1.179-31.313 6.388-62.562 2.466-93.896-3.707-29.61-13.332-59.467-33.045-83.01-12.98-15.501-31.075-26.313-50.067-33.828-11.67-4.617-24.272-7.12-27.795-7.833-11.799-2.391-21.042-3.11-28.671-3.68zM642.24 586.523l-.708.05-.699.036-.698-.037c-.236-.015-.472-.03-.708-.049h2.813z"})))};function X(){return(X=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var $,Y,Q=function(e){return y.createElement("svg",X({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 715 715"},e),q||(q=y.createElement("path",{fill:"#D9DEE5",fillOpacity:.7,fillRule:"evenodd",d:"M715 0v715H0V0h715zM368.33 210.97a168.754 168.754 0 00-18.77-.363c-2.107.119-5.107.337-8.692.772-3.69.448-9.515 1.201-16.702 3.149a92.101 92.101 0 00-10.07 3.35c-11.29 4.51-22.047 10.996-29.763 20.297-11.719 14.126-17.44 32.04-19.644 49.806-2.331 18.8.765 37.55 1.466 56.337.021.56-.04 1.16-.707 1.324-.29.071-.6.026-.886-.063-1.407-.441-2.125-1.764-3.226-2.612-2.46-1.896-6.435-1.914-8.6.425-3.035 3.282-2.395 8.127-1.486 12.076 1.16 5.043 2.298 10.08 3.39 15.145.14.64.277 1.281.416 1.922 1.923 8.915 3.124 18.269 8.417 26.03.758 1.113 1.608 2.214 2.78 2.915 2.638 1.578 5.078 1.82 6.728 4.645 1.511 2.584 1.915 5.849 2.647 8.687 2.224 8.634 6.47 16.726 10.158 24.834 4.286 9.42 8.978 18.7 14.725 27.377 8.03 12.122 18.262 23.13 31.052 30.498 7.773 4.477 17.096 8.296 26.14 7.954l.293-.014.294.014c8.856.335 17.98-3.32 25.653-7.675l.487-.28c12.79-7.367 23.022-18.375 31.052-30.497 5.747-8.677 10.44-17.956 14.725-27.377 3.689-8.108 7.934-16.2 10.158-24.834.732-2.838 1.136-6.103 2.646-8.687 1.652-2.826 4.092-3.067 6.73-4.645 1.171-.701 2.021-1.802 2.78-2.915 5.292-7.761 6.493-17.115 8.417-26.03l.415-1.922c1.092-5.065 2.23-10.102 3.39-15.145.909-3.95 1.55-8.794-1.486-12.076-2.164-2.34-6.14-2.32-8.6-.425-1.1.848-1.819 2.17-3.226 2.612-.285.09-.595.134-.886.063-.667-.163-.728-.764-.706-1.324.7-18.787 3.797-37.536 1.465-56.337-2.203-17.766-7.925-35.68-19.644-49.806-7.716-9.3-18.473-15.788-29.763-20.297-6.937-2.77-14.43-4.271-16.524-4.7-7.014-1.434-12.509-1.866-17.044-2.208z"})))};function J(){return(J=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var Z,ee,te=function(e){return y.createElement("svg",J({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 386 524"},e),$||($=y.createElement("defs",null,y.createElement("linearGradient",{id:"face-outline_svg__a",x1:"50.72%",x2:"49.208%",y1:"26.23%",y2:"117.124%"},y.createElement("stop",{offset:"0%",stopColor:"#B6BFCC"}),y.createElement("stop",{offset:"100%",stopColor:"#FFF"})))),Y||(Y=y.createElement("path",{fill:"none",stroke:"url(#face-outline_svg__a)",strokeWidth:5.006,d:"M638.585 600c-.686 0-1.592-.013-2.81-.052a69.953 69.953 0 01-4.575-.296 72.809 72.809 0 01-4.533-.597 79.015 79.015 0 01-4.472-.87 85.112 85.112 0 01-4.362-1.102 91.261 91.261 0 01-4.273-1.312 101.02 101.02 0 01-4.155-1.484 114.88 114.88 0 01-4.056-1.64 125.655 125.655 0 01-7.787-3.652 147.069 147.069 0 01-7.304-3.993c-20.9-12.179-39.54-30.642-55.409-54.88-8.67-13.241-16.471-27.9-25.299-47.536-1.196-2.66-2.43-5.319-3.664-7.985-5.222-11.272-10.624-22.928-13.847-35.587-.338-1.325-.641-2.7-.943-4.093-.625-2.866-1.27-5.83-2.225-7.484-.379-.25-1.374-.71-2.115-1.054-1.373-.635-3.08-1.427-4.939-2.55-3.91-2.368-6.378-5.567-8.277-8.385-8.738-12.96-11.7-27.823-14.313-40.938-.457-2.292-.912-4.578-1.397-6.848l-.685-3.217a1892.951 1892.951 0 00-5.588-25.25c-1.25-5.49-4.567-20.075 5.26-30.824 3.985-4.36 9.824-6.86 16.017-6.86.744 0 1.487.036 2.222.105-.273-3.957-.572-7.901-.865-11.79-1.665-22.04-3.386-44.83-.563-67.858 4.469-36.439 16.293-66.575 35.149-89.569 12.744-15.54 30.924-28.155 54.037-37.494a163.732 163.732 0 0117.99-6.058c13.257-3.633 24.137-4.97 29.366-5.612 5.05-.62 10.155-1.079 15.178-1.363a292.987 292.987 0 0110.846-.205c7.276 0 14.62.278 21.829.828 7.234.551 17.14 1.306 29.746 3.915l.227.047c4.19.865 16.946 3.5 29.19 8.448 23.114 9.339 41.293 21.953 54.037 37.494 18.855 22.995 30.681 53.13 35.149 89.569 2.824 23.028 1.102 45.818-.563 67.859-.293 3.888-.591 7.832-.864 11.79a23.46 23.46 0 012.222-.105c6.193 0 12.032 2.5 16.018 6.86 9.825 10.747 6.507 25.332 5.259 30.822a1923.38 1923.38 0 00-5.588 25.246l-.685 3.22c-.484 2.27-.94 4.555-1.397 6.844-2.613 13.116-5.575 27.983-14.313 40.944-1.899 2.817-4.367 6.017-8.279 8.384-1.858 1.124-3.565 1.916-4.937 2.551-.738.344-1.727.8-2.11 1.05-.976 1.733-1.614 4.658-2.23 7.49a121.69 121.69 0 01-.943 4.09c-3.223 12.657-8.622 24.311-13.844 35.58-1.236 2.67-2.47 5.33-3.667 7.993-8.826 19.633-16.63 34.293-25.3 47.536-15.87 24.238-34.509 42.701-55.4 54.874a149.984 149.984 0 01-7.28 3.982 129.842 129.842 0 01-7.794 3.659 108.88 108.88 0 01-8.229 3.133 93.884 93.884 0 01-4.282 1.313 79.774 79.774 0 01-8.824 1.97 72.51 72.51 0 01-4.558.602 66.17 66.17 0 01-6.885.323l-1.73-.005c-.38.014-.884.027-1.584.027z",transform:"translate(-447 -79)"})))};function ne(){return(ne=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var re=function(e){return y.createElement("svg",ne({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 386 524"},e),Z||(Z=y.createElement("defs",null,y.createElement("linearGradient",{id:"face-outline-success_svg__a",x1:"50.72%",x2:"49.208%",y1:"26.23%",y2:"117.124%"},y.createElement("stop",{offset:"0%",stopColor:"#2FC58D"}),y.createElement("stop",{offset:"100%",stopColor:"#FFF"})))),ee||(ee=y.createElement("path",{fill:"none",stroke:"url(#face-outline-success_svg__a)",strokeWidth:5.006,d:"M638.585 600c-.686 0-1.592-.013-2.81-.052a69.953 69.953 0 01-4.575-.296 72.809 72.809 0 01-4.533-.597 79.015 79.015 0 01-4.472-.87 85.112 85.112 0 01-4.362-1.102 91.261 91.261 0 01-4.273-1.312 101.02 101.02 0 01-4.155-1.484 114.88 114.88 0 01-4.056-1.64 125.655 125.655 0 01-7.787-3.652 147.069 147.069 0 01-7.304-3.993c-20.9-12.179-39.54-30.642-55.409-54.88-8.67-13.241-16.471-27.9-25.299-47.536-1.196-2.66-2.43-5.319-3.664-7.985-5.222-11.272-10.624-22.928-13.847-35.587-.338-1.325-.641-2.7-.943-4.093-.625-2.866-1.27-5.83-2.225-7.484-.379-.25-1.374-.71-2.115-1.054-1.373-.635-3.08-1.427-4.939-2.55-3.91-2.368-6.378-5.567-8.277-8.385-8.738-12.96-11.7-27.823-14.313-40.938-.457-2.292-.912-4.578-1.397-6.848l-.685-3.217a1892.951 1892.951 0 00-5.588-25.25c-1.25-5.49-4.567-20.075 5.26-30.824 3.985-4.36 9.824-6.86 16.017-6.86.744 0 1.487.036 2.222.105-.273-3.957-.572-7.901-.865-11.79-1.665-22.04-3.386-44.83-.563-67.858 4.469-36.439 16.293-66.575 35.149-89.569 12.744-15.54 30.924-28.155 54.037-37.494a163.732 163.732 0 0117.99-6.058c13.257-3.633 24.137-4.97 29.366-5.612 5.05-.62 10.155-1.079 15.178-1.363a292.987 292.987 0 0110.846-.205c7.276 0 14.62.278 21.829.828 7.234.551 17.14 1.306 29.746 3.915l.227.047c4.19.865 16.946 3.5 29.19 8.448 23.114 9.339 41.293 21.953 54.037 37.494 18.855 22.995 30.681 53.13 35.149 89.569 2.824 23.028 1.102 45.818-.563 67.859-.293 3.888-.591 7.832-.864 11.79a23.46 23.46 0 012.222-.105c6.193 0 12.032 2.5 16.018 6.86 9.825 10.747 6.507 25.332 5.259 30.822a1923.38 1923.38 0 00-5.588 25.246l-.685 3.22c-.484 2.27-.94 4.555-1.397 6.844-2.613 13.116-5.575 27.983-14.313 40.944-1.899 2.817-4.367 6.017-8.279 8.384-1.858 1.124-3.565 1.916-4.937 2.551-.738.344-1.727.8-2.11 1.05-.976 1.733-1.614 4.658-2.23 7.49a121.69 121.69 0 01-.943 4.09c-3.223 12.657-8.622 24.311-13.844 35.58-1.236 2.67-2.47 5.33-3.667 7.993-8.826 19.633-16.63 34.293-25.3 47.536-15.87 24.238-34.509 42.701-55.4 54.874a149.984 149.984 0 01-7.28 3.982 129.842 129.842 0 01-7.794 3.659 108.88 108.88 0 01-8.229 3.133 93.884 93.884 0 01-4.282 1.313 79.774 79.774 0 01-8.824 1.97 72.51 72.51 0 01-4.558.602 66.17 66.17 0 01-6.885.323l-1.73-.005c-.38.014-.884.027-1.584.027z",transform:"translate(-447 -79)"})))};const oe=e=>{let{isPortraitCamera:t,isSuccess:n}=e;const r=t?Q:K,o=n?re:te,a=H.a[t?"portraitCamera":"landscapeCamera"];return b.a.createElement("div",{className:H.a.container},b.a.createElement(r,{className:H.a.overlay}),b.a.createElement(o,{className:j()(H.a.outline,a)}))};oe.defaultProps={isSuccess:!1,isPortraitCamera:!1},oe.propTypes={isSuccess:U.a.bool,isPortraitCamera:U.a.bool};var ae=oe,ie=n(11),ue=n.n(ie);const se=e=>{let{message:t,isPortraitCamera:n}=e;return b.a.createElement("div",{className:j()(ue.a.container,{[ue.a.landscape]:!n})},t)};se.defaultProps={message:"",isPortraitCamera:!1},se.propTypes={message:U.a.element,isPortraitCamera:U.a.bool};var ce,le,fe=se,de=n(12),pe=n.n(de);function he(){return(he=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var ve=function(e){return y.createElement("svg",he({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28"},e),ce||(ce=y.createElement("defs",null,y.createElement("path",{id:"ico-chevron-right_svg__a",d:"M12.28 22.625l-1.56-1.25L16.62 14l-5.9-7.375 1.56-1.25L19.18 14z"}))),le||(le=y.createElement("use",{fill:"#F0F",xlinkHref:"#ico-chevron-right_svg__a",fillRule:"evenodd"})))};function me(){return(me=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}const ge=e=>{let{children:t,...n}=e;return b.a.createElement("button",me({className:pe.a.button,type:"button"},n),t,b.a.createElement(ve,{className:pe.a.icon}))};ge.propTypes={onClick:U.a.func.isRequired,disabled:U.a.bool,children:U.a.node};var ye=ge,be=n(21),xe=n.n(be);const we=e=>b.a.createElement("div",{className:xe.a.container},b.a.createElement(ye,e,"Take picture")),Ee=e=>{let{CustomButton:t,...n}=e;const r=t||we;return b.a.createElement(r,n)};Ee.propTypes={CustomButton:U.a.func,onClick:U.a.func.isRequired,disabled:U.a.bool};var Ce=Ee,ke=n(0);function _e(e,t,n){if(void 0===n&&(n=!1),e.beginPath(),t.slice(1).forEach((function(n,r){var o=n.x,a=n.y,i=t[r];e.moveTo(i.x,i.y),e.lineTo(o,a)})),n){var r=t[t.length-1],o=t[0];if(!r||!o)return;e.moveTo(r.x,r.y),e.lineTo(o.x,o.y)}e.stroke()}var Se=n(1),Re=function(){function e(e,t){if(!Fe(e)||!Fe(t))throw new Error("Dimensions.constructor - expected width and height to be valid numbers, instead have "+JSON.stringify({width:e,height:t}));this._width=e,this._height=t}return Object.defineProperty(e.prototype,"width",{get:function(){return this._width},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"height",{get:function(){return this._height},enumerable:!0,configurable:!0}),e.prototype.reverse=function(){return new e(1/this.width,1/this.height)},e}();function Te(e,t){return e instanceof ke.a&&e.shape.length===t}function Ie(e){return Te(e,3)}function Oe(e){return Te(e,4)}function Ae(e){return e%2==0}function De(e,t){void 0===t&&(t=2);var n=Math.pow(10,t);return Math.floor(e*n)/n}function Ne(e){return e&&e.width&&e.height}function Pe(e){return e.reduce((function(e,t){return e.add(t)}),new Le(0,0)).div(new Le(e.length,e.length))}function Me(e,t,n){return Array(e).fill(0).map((function(e,r){return t+r*n}))}function Fe(e){return!!e&&e!==1/0&&e!==-1/0&&!isNaN(e)||0===e}function Be(e){return Fe(e)&&0<=e&&e<=1}var Le=function(){function e(e,t){this._x=e,this._y=t}return Object.defineProperty(e.prototype,"x",{get:function(){return this._x},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"y",{get:function(){return this._y},enumerable:!0,configurable:!0}),e.prototype.add=function(t){return new e(this.x+t.x,this.y+t.y)},e.prototype.sub=function(t){return new e(this.x-t.x,this.y-t.y)},e.prototype.mul=function(t){return new e(this.x*t.x,this.y*t.y)},e.prototype.div=function(t){return new e(this.x/t.x,this.y/t.y)},e.prototype.abs=function(){return new e(Math.abs(this.x),Math.abs(this.y))},e.prototype.magnitude=function(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))},e.prototype.floor=function(){return new e(Math.floor(this.x),Math.floor(this.y))},e}(),We=function(){function e(t,n){void 0===n&&(n=!0);var r=t||{},o=[r.left,r.top,r.right,r.bottom].every(Fe),a=[r.x,r.y,r.width,r.height].every(Fe);if(!a&&!o)throw new Error("Box.constructor - expected box to be IBoundingBox | IRect, instead have "+JSON.stringify(r));var i=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top],u=i[0],s=i[1],c=i[2],l=i[3];e.assertIsValidBox({x:u,y:s,width:c,height:l},"Box.constructor",n),this._x=u,this._y=s,this._width=c,this._height=l}return e.isRect=function(e){return!!e&&[e.x,e.y,e.width,e.height].every(Fe)},e.assertIsValidBox=function(t,n,r){if(void 0===r&&(r=!1),!e.isRect(t))throw new Error(n+" - invalid box: "+JSON.stringify(t)+", expected object with properties x, y, width, height");if(!r&&(t.width<0||t.height<0))throw new Error(n+" - width ("+t.width+") and height ("+t.height+") must be positive numbers")},Object.defineProperty(e.prototype,"x",{get:function(){return this._x},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"y",{get:function(){return this._y},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"width",{get:function(){return this._width},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"height",{get:function(){return this._height},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"left",{get:function(){return this.x},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"top",{get:function(){return this.y},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"right",{get:function(){return this.x+this.width},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bottom",{get:function(){return this.y+this.height},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"area",{get:function(){return this.width*this.height},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"topLeft",{get:function(){return new Le(this.left,this.top)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"topRight",{get:function(){return new Le(this.right,this.top)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bottomLeft",{get:function(){return new Le(this.left,this.bottom)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bottomRight",{get:function(){return new Le(this.right,this.bottom)},enumerable:!0,configurable:!0}),e.prototype.round=function(){var t=[this.x,this.y,this.width,this.height].map((function(e){return Math.round(e)}));return new e({x:t[0],y:t[1],width:t[2],height:t[3]})},e.prototype.floor=function(){var t=[this.x,this.y,this.width,this.height].map((function(e){return Math.floor(e)}));return new e({x:t[0],y:t[1],width:t[2],height:t[3]})},e.prototype.toSquare=function(){var t=this.x,n=this.y,r=this.width,o=this.height,a=Math.abs(r-o);return r<o&&(t-=a/2,r+=a),o<r&&(n-=a/2,o+=a),new e({x:t,y:n,width:r,height:o})},e.prototype.rescale=function(t){var n=Ne(t)?t.width:t,r=Ne(t)?t.height:t;return new e({x:this.x*n,y:this.y*r,width:this.width*n,height:this.height*r})},e.prototype.pad=function(t,n){var r=[this.x-t/2,this.y-n/2,this.width+t,this.height+n];return new e({x:r[0],y:r[1],width:r[2],height:r[3]})},e.prototype.clipAtImageBorders=function(t,n){var r=this.x,o=this.y,a=this.right,i=this.bottom,u=Math.max(r,0),s=Math.max(o,0),c=a-u,l=i-s;return new e({x:u,y:s,width:Math.min(c,t-u),height:Math.min(l,n-s)}).floor()},e.prototype.shift=function(t,n){var r=this.width,o=this.height;return new e({x:this.x+t,y:this.y+n,width:r,height:o})},e.prototype.padAtBorders=function(e,t){var n=this.width+1,r=this.height+1,o=n,a=r,i=this.left,u=this.top,s=this.right,c=this.bottom;return s>t&&(o=-s+t+n,s=t),c>e&&(a=-c+e+r,c=e),i<1&&(a=2-i,i=1),u<1&&(a=2-u,u=1),{dy:1,edy:a,dx:1,edx:o,y:u,ey:c,x:i,ex:s,w:n,h:r}},e.prototype.calibrate=function(t){return new e({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()},e}(),Ue=function(e){function t(t,n,r,o,a){return void 0===a&&(a=!1),e.call(this,{left:t,top:n,right:r,bottom:o},a)||this}return Object(Se.c)(t,e),t}(We),ze=function(){function e(e,t,n,r,o){this._imageDims=new Re(o.width,o.height),this._score=e,this._classScore=t,this._className=n,this._box=new We(r).rescale(this._imageDims)}return Object.defineProperty(e.prototype,"score",{get:function(){return this._score},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"classScore",{get:function(){return this._classScore},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"className",{get:function(){return this._className},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"box",{get:function(){return this._box},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"imageDims",{get:function(){return this._imageDims},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"imageWidth",{get:function(){return this.imageDims.width},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"imageHeight",{get:function(){return this.imageDims.height},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"relativeBox",{get:function(){return new We(this._box).rescale(this.imageDims.reverse())},enumerable:!0,configurable:!0}),e.prototype.forSize=function(t,n){return new e(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})},e}(),je=function(e){function t(t,n,r){return e.call(this,t,t,"",n,r)||this}return Object(Se.c)(t,e),t.prototype.forSize=function(n,r){var o=e.prototype.forSize.call(this,n,r);return new t(o.score,o.relativeBox,o.imageDims)},t}(ze);function Ve(e,t,n){void 0===n&&(n=!0);var r=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left))*Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top));return n?r/(e.area+t.area-r):r/Math.min(e.area,t.area)}function He(e,t,n,r){void 0===r&&(r=!0);for(var o=t.map((function(e,t){return{score:e,boxIndex:t}})).sort((function(e,t){return e.score-t.score})).map((function(e){return e.boxIndex})),a=[],i=function(){var t=o.pop();a.push(t);for(var i=o,u=[],s=0;s<i.length;s++){var c=i[s],l=e[t],f=e[c];u.push(Ve(l,f,r))}o=o.filter((function(e,t){return u[t]<=n}))};o.length>0;)i();return a}function Ge(e,t){return ke.L((function(){var n=t[0],r=t[1],o=t[2],a=ke.n(Object(Se.e)(e.shape.slice(0,3),[1]),n),i=ke.n(Object(Se.e)(e.shape.slice(0,3),[1]),r),u=ke.n(Object(Se.e)(e.shape.slice(0,3),[1]),o),s=ke.h([a,i,u],3);return ke.F(e,s)}))}function qe(e){return 1/(1+Math.exp(-e))}var Ke=function(e){function t(t,n,r,o,a){return void 0===a&&(a=!1),e.call(this,{x:t,y:n,width:r,height:o},a)||this}return Object(Se.c)(t,e),t}(We),Xe=function(){function e(e,t,n){void 0===n&&(n=new Le(0,0));var r=t.width,o=t.height;this._imgDims=new Re(r,o),this._shift=n,this._positions=e.map((function(e){return e.mul(new Le(r,o)).add(n)}))}return Object.defineProperty(e.prototype,"shift",{get:function(){return new Le(this._shift.x,this._shift.y)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"imageWidth",{get:function(){return this._imgDims.width},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"imageHeight",{get:function(){return this._imgDims.height},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"positions",{get:function(){return this._positions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"relativePositions",{get:function(){var e=this;return this._positions.map((function(t){return t.sub(e._shift).div(new Le(e.imageWidth,e.imageHeight))}))},enumerable:!0,configurable:!0}),e.prototype.forSize=function(e,t){return new this.constructor(this.relativePositions,{width:e,height:t})},e.prototype.shiftBy=function(e,t){return new this.constructor(this.relativePositions,this._imgDims,new Le(e,t))},e.prototype.shiftByPoint=function(e){return this.shiftBy(e.x,e.y)},e.prototype.align=function(e,t){if(void 0===t&&(t={}),e){var n=e instanceof je?e.box.floor():new We(e);return this.shiftBy(n.x,n.y).align(null,t)}var r=Object.assign({},{useDlibAlignment:!1,minBoxPadding:.2},t),o=r.useDlibAlignment,a=r.minBoxPadding;return o?this.alignDlib():this.alignMinBbox(a)},e.prototype.alignDlib=function(){var e=this.getRefPointsForAlignment(),t=e[0],n=e[1],r=e[2],o=function(e){return r.sub(e).magnitude()},a=(o(t)+o(n))/2,i=Math.floor(a/.45),u=Pe(e),s=Math.floor(Math.max(0,u.x-.5*i)),c=Math.floor(Math.max(0,u.y-.43*i));return new Ke(s,c,Math.min(i,this.imageWidth+s),Math.min(i,this.imageHeight+c))},e.prototype.alignMinBbox=function(e){var t,n,r,o,a,i,u,s=(n=(t=this.positions).map((function(e){return e.x})),r=t.map((function(e){return e.y})),o=n.reduce((function(e,t){return t<e?t:e}),1/0),a=r.reduce((function(e,t){return t<e?t:e}),1/0),i=n.reduce((function(e,t){return e<t?t:e}),0),u=r.reduce((function(e,t){return e<t?t:e}),0),new Ue(o,a,i,u));return s.pad(s.width*e,s.height*e)},e.prototype.getRefPointsForAlignment=function(){throw new Error("getRefPointsForAlignment not implemented by base class")},e}(),$e=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Se.c)(t,e),t.prototype.getRefPointsForAlignment=function(){var e=this.positions;return[e[0],e[1],Pe([e[3],e[4]])]},t}(Xe),Ye=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Se.c)(t,e),t.prototype.getJawOutline=function(){return this.positions.slice(0,17)},t.prototype.getLeftEyeBrow=function(){return this.positions.slice(17,22)},t.prototype.getRightEyeBrow=function(){return this.positions.slice(22,27)},t.prototype.getNose=function(){return this.positions.slice(27,36)},t.prototype.getLeftEye=function(){return this.positions.slice(36,42)},t.prototype.getRightEye=function(){return this.positions.slice(42,48)},t.prototype.getMouth=function(){return this.positions.slice(48,68)},t.prototype.getRefPointsForAlignment=function(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Pe)},t}(Xe),Qe=function(){function e(e,t){this._label=e,this._distance=t}return Object.defineProperty(e.prototype,"label",{get:function(){return this._label},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"distance",{get:function(){return this._distance},enumerable:!0,configurable:!0}),e.prototype.toString=function(e){return void 0===e&&(e=!0),this.label+(e?" ("+De(this.distance)+")":"")},e}(),Je=function(e){function t(t,n){var r=e.call(this,t)||this;return r._label=n,r}return Object(Se.c)(t,e),t.assertIsValidLabeledBox=function(e,t){if(We.assertIsValidBox(e,t),!Fe(e.label))throw new Error(t+" - expected property label ("+e.label+") to be a number")},Object.defineProperty(t.prototype,"label",{get:function(){return this._label},enumerable:!0,configurable:!0}),t}(We),Ze=function(){function e(e,t){if("string"!=typeof e)throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(t)||t.some((function(e){return!(e instanceof Float32Array)})))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=e,this._descriptors=t}return Object.defineProperty(e.prototype,"label",{get:function(){return this._label},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"descriptors",{get:function(){return this._descriptors},enumerable:!0,configurable:!0}),e.prototype.toJSON=function(){return{label:this.label,descriptors:this.descriptors.map((function(e){return Array.from(e)}))}},e.fromJSON=function(t){var n=t.descriptors.map((function(e){return new Float32Array(e)}));return new e(t.label,n)},e}();function et(e){return e.detection instanceof je}function tt(e,t){var n={detection:t};return Object.assign({},e,n)}function nt(){var e=window.fetch||function(){throw new Error("fetch - missing fetch implementation for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:function(){return document.createElement("canvas")},createImageElement:function(){return document.createElement("img")},fetch:e,readFile:function(){throw new Error("readFile - filesystem not available for browser environment")}}}!function(e){function t(t,n,r,o){var a=e.call(this,t,n)||this;return a._score=r,a._classScore=o,a}Object(Se.c)(t,e),t.assertIsValidPredictedBox=function(e,t){if(Je.assertIsValidLabeledBox(e,t),!Be(e.score)||!Be(e.classScore))throw new Error(t+" - expected properties score ("+e.score+") and ("+e.classScore+") to be a number between [0, 1]")},Object.defineProperty(t.prototype,"score",{get:function(){return this._score},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"classScore",{get:function(){return this._classScore},enumerable:!0,configurable:!0})}(Je);var rt=n(9),ot=n(13);function at(){return"object"==typeof window&&"undefined"!=typeof document&&"undefined"!=typeof HTMLImageElement&&"undefined"!=typeof HTMLCanvasElement&&"undefined"!=typeof HTMLVideoElement&&"undefined"!=typeof ImageData&&"undefined"!=typeof CanvasRenderingContext2D}var it,ut=n(14);function st(e){it=e}function ct(){at()&&st(nt()),Object(ut.a)()&&st(Object(ot.a)())}var lt,ft={getEnv:function(){if(!it)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return it},setEnv:st,initialize:ct,createBrowserEnv:nt,createFileSystem:rt.a,createNodejsEnv:ot.a,monkeyPatch:function(e){if(it||ct(),!it)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");var t=e.Canvas,n=void 0===t?it.Canvas:t,r=e.Image,o=void 0===r?it.Image:r;it.Canvas=n,it.Image=o,it.createCanvasElement=e.createCanvasElement||function(){return new n},it.createImageElement=e.createImageElement||function(){return new o},it.ImageData=e.ImageData||it.ImageData,it.Video=e.Video||it.Video,it.fetch=e.fetch||it.fetch,it.readFile=e.readFile||it.readFile},isBrowser:at,isNodejs:ut.a};function dt(e){return ft.isNodejs()||"string"!=typeof e?e:document.getElementById(e)}function pt(e){var t=ft.getEnv(),n=t.Canvas;if(e instanceof t.CanvasRenderingContext2D)return e;var r=dt(e);if(!(r instanceof n))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");var o=r.getContext("2d");if(!o)throw new Error("resolveContext2d - canvas 2d context is null");return o}ct(),function(e){e.TOP_LEFT="TOP_LEFT",e.TOP_RIGHT="TOP_RIGHT",e.BOTTOM_LEFT="BOTTOM_LEFT",e.BOTTOM_RIGHT="BOTTOM_RIGHT"}(lt||(lt={}));var ht=function(e){void 0===e&&(e={});var t=e.anchorPosition,n=e.backgroundColor,r=e.fontColor,o=e.fontSize,a=e.fontStyle,i=e.padding;this.anchorPosition=t||lt.TOP_LEFT,this.backgroundColor=n||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=o||14,this.fontStyle=a||"Georgia",this.padding=i||4},vt=function(){function e(t,n,r){void 0===r&&(r={}),this.text="string"==typeof t?[t]:t instanceof e?t.text:t,this.anchor=n,this.options=new ht(r)}return e.prototype.measureWidth=function(e){var t=this.options.padding;return this.text.map((function(t){return e.measureText(t).width})).reduce((function(e,t){return e<t?t:e}),0)+2*t},e.prototype.measureHeight=function(){var e=this.options,t=e.fontSize,n=e.padding;return this.text.length*t+2*n},e.prototype.getUpperLeft=function(e,t){var n=this.options.anchorPosition,r=n===lt.BOTTOM_RIGHT||n===lt.TOP_RIGHT,o=n===lt.BOTTOM_LEFT||n===lt.BOTTOM_RIGHT,a=this.measureWidth(e),i=this.measureHeight(),u=r?this.anchor.x-a:this.anchor.x,s=o?this.anchor.y-i:this.anchor.y;if(t){var c=t.width,l=t.height;return{x:Math.max(Math.min(u,c-a),0),y:Math.max(Math.min(s,l-i),0)}}return{x:u,y:s}},e.prototype.draw=function(e){var t=dt(e),n=pt(t),r=this.options,o=r.backgroundColor,a=r.fontColor,i=r.fontSize,u=r.fontStyle,s=r.padding;n.font=i+"px "+u;var c=this.measureWidth(n),l=this.measureHeight();n.fillStyle=o;var f=this.getUpperLeft(n,t);n.fillRect(f.x,f.y,c,l),n.fillStyle=a,this.text.forEach((function(e,t){var r=s+f.x,o=s+f.y+(t+1)*i;n.fillText(e,r,o)}))},e}(),mt=function(e){void 0===e&&(e={});var t=e.boxColor,n=e.lineWidth,r=e.label,o=e.drawLabelOptions;this.boxColor=t||"rgba(0, 0, 255, 1)",this.lineWidth=n||2,this.label=r;var a={anchorPosition:lt.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new ht(Object.assign({},a,o))},gt=function(){function e(e,t){void 0===t&&(t={}),this.box=new We(e),this.options=new mt(t)}return e.prototype.draw=function(e){var t=pt(e),n=this.options,r=n.boxColor,o=n.lineWidth,a=this.box,i=a.x,u=a.y,s=a.width,c=a.height;t.strokeStyle=r,t.lineWidth=o,t.strokeRect(i,u,s,c);var l=this.options.label;l&&new vt([l],{x:i-o/2,y:u},this.options.drawLabelOptions).draw(e)},e}();function yt(e,t){(Array.isArray(t)?t:[t]).forEach((function(t){var n=t instanceof je?t.score:et(t)?t.detection.score:void 0,r=t instanceof je?t.box:et(t)?t.detection.box:new We(t),o=n?""+De(n):void 0;new gt(r,{label:o}).draw(e)}))}function bt(e){var t=ft.getEnv(),n=t.Image,r=t.Video;return e instanceof n&&e.complete||e instanceof r&&e.readyState>=3}function xt(e){var t=ft.getEnv(),n=t.Image,r=t.Video;return e instanceof n?new Re(e.naturalWidth,e.naturalHeight):e instanceof r?new Re(e.videoWidth,e.videoHeight):new Re(e.width,e.height)}function wt(e){var t=e.width,n=e.height,r=(0,ft.getEnv().createCanvasElement)();return r.width=t,r.height=n,r}function Et(e,t){var n=ft.getEnv().ImageData;if(!(e instanceof n||bt(e)))throw new Error("createCanvasFromMedia - media has not finished loading yet");var r=t||xt(e),o=r.width,a=r.height,i=wt({width:o,height:a});return e instanceof n?pt(i).putImageData(e,0,0):pt(i).drawImage(e,0,0,o,a),i}function Ct(e,t){return Object(Se.b)(this,void 0,void 0,(function(){var n,r,o,a,i,u;return Object(Se.d)(this,(function(s){switch(s.label){case 0:return n=t||ft.getEnv().createCanvasElement(),r=e.shape.slice(Oe(e)?1:0),o=r[0],a=r[1],i=r[2],u=ke.L((function(){return e.as3D(o,a,i).toInt()})),[4,ke.f.toPixels(u,n)];case 1:return s.sent(),u.dispose(),[2,n]}}))}))}function kt(e){var t=ft.getEnv(),n=t.Image,r=t.Canvas,o=t.Video;return e instanceof n||e instanceof r||e instanceof o}var _t=function(){function e(e,t){var n=this;if(void 0===t&&(t=!1),this._imageTensors=[],this._canvases=[],this._treatAsBatchInput=!1,this._inputDimensions=[],!Array.isArray(e))throw new Error("NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have "+e);this._treatAsBatchInput=t,this._batchSize=e.length,e.forEach((function(e,t){if(Ie(e))return n._imageTensors[t]=e,void(n._inputDimensions[t]=e.shape);if(Oe(e)){var r=e.shape[0];if(1!==r)throw new Error("NetInput - tf.Tensor4D with batchSize "+r+" passed, but not supported in input array");return n._imageTensors[t]=e,void(n._inputDimensions[t]=e.shape.slice(1))}var o=e instanceof ft.getEnv().Canvas?e:Et(e);n._canvases[t]=o,n._inputDimensions[t]=[o.height,o.width,3]}))}return Object.defineProperty(e.prototype,"imageTensors",{get:function(){return this._imageTensors},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canvases",{get:function(){return this._canvases},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isBatchInput",{get:function(){return this.batchSize>1||this._treatAsBatchInput},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"batchSize",{get:function(){return this._batchSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inputDimensions",{get:function(){return this._inputDimensions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inputSize",{get:function(){return this._inputSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"reshapedInputDimensions",{get:function(){var e=this;return Me(this.batchSize,0,1).map((function(t,n){return e.getReshapedInputDimensions(n)}))},enumerable:!0,configurable:!0}),e.prototype.getInput=function(e){return this.canvases[e]||this.imageTensors[e]},e.prototype.getInputDimensions=function(e){return this._inputDimensions[e]},e.prototype.getInputHeight=function(e){return this._inputDimensions[e][0]},e.prototype.getInputWidth=function(e){return this._inputDimensions[e][1]},e.prototype.getReshapedInputDimensions=function(e){if("number"!=typeof this.inputSize)throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");return function(e,t){var n=e.width,r=e.height,o=t/Math.max(r,n);return new Re(Math.round(n*o),Math.round(r*o))}({width:this.getInputWidth(e),height:this.getInputHeight(e)},this.inputSize)},e.prototype.toBatchTensor=function(e,t){var n=this;return void 0===t&&(t=!0),this._inputSize=e,ke.L((function(){var r=Me(n.batchSize,0,1).map((function(r){var o=n.getInput(r);if(o instanceof ke.a){var a=Oe(o)?o:o.expandDims();return(a=function(e,t){return void 0===t&&(t=!1),ke.L((function(){var n=e.shape.slice(1),r=n[0],o=n[1];if(r===o)return e;var a=Math.abs(r-o),i=Math.round(a*(t?.5:1)),u=r>o?2:1,s=function(t){var n=e.shape.slice();return n[u]=t,ke.n(n,0)},c=s(i),l=a-c.shape[u],f=[t&&l?s(l):null,e,c].filter((function(e){return!!e})).map((function(e){return e.toFloat()}));return ke.h(f,u)}))}(a,t)).shape[1]===e&&a.shape[2]===e||(a=ke.o.resizeBilinear(a,[e,e])),a.as3D(e,e,3)}if(o instanceof ft.getEnv().Canvas)return ke.f.fromPixels(function(e,t,n){void 0===n&&(n=!1);var r=ft.getEnv(),o=r.Image,a=r.Canvas;if(!(e instanceof o||e instanceof a))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");var i=xt(e),u=t/Math.max(i.height,i.width),s=u*i.width,c=u*i.height,l=wt({width:t,height:t}),f=e instanceof a?e:Et(e),d=Math.abs(s-c)/2,p=n&&s<c?d:0,h=n&&c<s?d:0;return pt(l).drawImage(f,p,h,s,c),l}(o,e,t));throw new Error("toBatchTensor - at batchIdx "+r+", expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have "+o)}));return ke.E(r.map((function(e){return e.toFloat()}))).as4D(n.batchSize,e,e,3)}))},e}();function St(e){return Object(Se.b)(this,void 0,void 0,(function(){var t,n,r;return Object(Se.d)(this,(function(o){switch(o.label){case 0:if(e instanceof _t)return[2,e];if(!(t=Array.isArray(e)?e:[e]).length)throw new Error("toNetInput - empty array passed as input");return n=function(t){return Array.isArray(e)?" at input index "+t+":":""},(r=t.map(dt)).forEach((function(e,r){if(!kt(e)&&!Ie(e)&&!Oe(e)){if("string"==typeof t[r])throw new Error("toNetInput -"+n(r)+" string passed, but could not resolve HTMLElement for element id "+t[r]);throw new Error("toNetInput -"+n(r)+" expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id")}if(Oe(e)){var o=e.shape[0];if(1!==o)throw new Error("toNetInput -"+n(r)+" tf.Tensor4D with batchSize "+o+" passed, but not supported in input array")}})),[4,Promise.all(r.map((function(e){return kt(e)&&(t=e,new Promise((function(e,n){if(t instanceof ft.getEnv().Canvas||bt(t))return e();function r(t){t.currentTarget&&(t.currentTarget.removeEventListener("load",r),t.currentTarget.removeEventListener("error",o),e(t))}function o(e){e.currentTarget&&(e.currentTarget.removeEventListener("load",r),e.currentTarget.removeEventListener("error",o),n(e))}t.addEventListener("load",r),t.addEventListener("error",o)})));var t})))];case 1:return o.sent(),[2,new _t(r,Array.isArray(e))]}}))}))}function Rt(e,t){return Object(Se.b)(this,void 0,void 0,(function(){var n,r,o,a,i,u;return Object(Se.d)(this,(function(s){switch(s.label){case 0:return n=ft.getEnv().Canvas,r=e,e instanceof n?[3,5]:[4,St(e)];case 1:if((o=s.sent()).batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");return(a=o.getInput(0))instanceof n?(i=a,[3,4]):[3,2];case 2:return[4,Ct(a)];case 3:i=s.sent(),s.label=4;case 4:r=i,s.label=5;case 5:return u=pt(r),[2,t.map((function(e){return e instanceof je?e.forSize(r.width,r.height).box.floor():e})).map((function(e){return e.clipAtImageBorders(r.width,r.height)})).map((function(e){var t=e.x,n=e.y,r=e.width,o=e.height,a=wt({width:r,height:o});return pt(a).putImageData(u.getImageData(t,n,r,o),0,0),a}))]}}))}))}function Tt(e,t){return Object(Se.b)(this,void 0,void 0,(function(){return Object(Se.d)(this,(function(n){if(!Ie(e)&&!Oe(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(Oe(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return[2,ke.L((function(){var n=e.shape.slice(Oe(e)?1:0),r=n[0],o=n[1],a=n[2];return t.map((function(e){return e instanceof je?e.forSize(o,r).box:e})).map((function(e){return e.clipAtImageBorders(o,r)})).map((function(t){var n=t.x,i=t.y,u=t.width,s=t.height;return ke.C(e.as3D(r,o,a),[i,n,0],[s,u,a])}))}))]}))}))}function It(e,t){return Object(Se.b)(this,void 0,void 0,(function(){var n;return Object(Se.d)(this,(function(r){switch(r.label){case 0:return[4,(0,ft.getEnv().fetch)(e,t)];case 1:if(!((n=r.sent()).status<400))throw new Error("failed to fetch: ("+n.status+") "+n.statusText+", from url: "+n.url);return[2,n]}}))}))}function Ot(e){return Object(Se.b)(this,void 0,void 0,(function(){return Object(Se.d)(this,(function(t){switch(t.label){case 0:return[4,It(e)];case 1:return[2,t.sent().json()]}}))}))}function At(e,t){var n=t+"-weights_manifest.json";if(!e)return{modelBaseUri:"",manifestUri:n};if("/"===e)return{modelBaseUri:"/",manifestUri:"/"+n};var r=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"",o=(e=e.replace(r,"")).split("/").filter((function(e){return e})),a=e.endsWith(".json")?o[o.length-1]:n,i=r+(e.endsWith(".json")?o.slice(0,o.length-1):o).join("/");return{modelBaseUri:i=e.startsWith("/")?"/"+i:i,manifestUri:"/"===i?"/"+a:i+"/"+a}}function Dt(e,t){return Object(Se.b)(this,void 0,void 0,(function(){var n,r,o,a;return Object(Se.d)(this,(function(i){switch(i.label){case 0:return n=At(e,t),r=n.manifestUri,o=n.modelBaseUri,[4,Ot(r)];case 1:return a=i.sent(),[2,ke.p.loadWeights(a,o)]}}))}))}var Nt=function(){function e(e){this._name=e,this._params=void 0,this._paramMappings=[]}return Object.defineProperty(e.prototype,"params",{get:function(){return this._params},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"paramMappings",{get:function(){return this._paramMappings},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isLoaded",{get:function(){return!!this.params},enumerable:!0,configurable:!0}),e.prototype.getParamFromPath=function(e){var t=this.traversePropertyPath(e);return t.obj[t.objProp]},e.prototype.reassignParamFromPath=function(e,t){var n=this.traversePropertyPath(e),r=n.obj,o=n.objProp;r[o].dispose(),r[o]=t},e.prototype.getParamList=function(){var e=this;return this._paramMappings.map((function(t){var n=t.paramPath;return{path:n,tensor:e.getParamFromPath(n)}}))},e.prototype.getTrainableParams=function(){return this.getParamList().filter((function(e){return e.tensor instanceof ke.b}))},e.prototype.getFrozenParams=function(){return this.getParamList().filter((function(e){return!(e.tensor instanceof ke.b)}))},e.prototype.variable=function(){var e=this;this.getFrozenParams().forEach((function(t){var n=t.path,r=t.tensor;e.reassignParamFromPath(n,r.variable())}))},e.prototype.freeze=function(){var e=this;this.getTrainableParams().forEach((function(t){var n=t.path,r=t.tensor,o=ke.G(r.dataSync());r.dispose(),e.reassignParamFromPath(n,o)}))},e.prototype.dispose=function(e){void 0===e&&(e=!0),this.getParamList().forEach((function(t){if(e&&t.tensor.isDisposed)throw new Error("param tensor has already been disposed for path "+t.path);t.tensor.dispose()})),this._params=void 0},e.prototype.serializeParams=function(){return new Float32Array(this.getParamList().map((function(e){var t=e.tensor;return Array.from(t.dataSync())})).reduce((function(e,t){return e.concat(t)})))},e.prototype.load=function(e){return Object(Se.b)(this,void 0,void 0,(function(){return Object(Se.d)(this,(function(t){switch(t.label){case 0:return e instanceof Float32Array?(this.extractWeights(e),[2]):[4,this.loadFromUri(e)];case 1:return t.sent(),[2]}}))}))},e.prototype.loadFromUri=function(e){return Object(Se.b)(this,void 0,void 0,(function(){var t;return Object(Se.d)(this,(function(n){switch(n.label){case 0:if(e&&"string"!=typeof e)throw new Error(this._name+".loadFromUri - expected model uri");return[4,Dt(e,this.getDefaultModelName())];case 1:return t=n.sent(),this.loadFromWeightMap(t),[2]}}))}))},e.prototype.loadFromDisk=function(e){return Object(Se.b)(this,void 0,void 0,(function(){var t,n,r,o,a,i,u,s,c,l;return Object(Se.d)(this,(function(f){switch(f.label){case 0:if(e&&"string"!=typeof e)throw new Error(this._name+".loadFromDisk - expected model file path");return t=ft.getEnv().readFile,n=At(e,this.getDefaultModelName()),r=n.manifestUri,o=n.modelBaseUri,a=function(e){return Promise.all(e.map((function(e){return t(e).then((function(e){return e.buffer}))})))},i=ke.p.weightsLoaderFactory(a),c=(s=JSON).parse,[4,t(r)];case 1:return u=c.apply(s,[f.sent().toString()]),[4,i(u,o)];case 2:return l=f.sent(),this.loadFromWeightMap(l),[2]}}))}))},e.prototype.loadFromWeightMap=function(e){var t=this.extractParamsFromWeigthMap(e),n=t.paramMappings,r=t.params;this._paramMappings=n,this._params=r},e.prototype.extractWeights=function(e){var t=this.extractParams(e),n=t.paramMappings,r=t.params;this._paramMappings=n,this._params=r},e.prototype.traversePropertyPath=function(e){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");var t=e.split("/").reduce((function(t,n){if(!t.nextObj.hasOwnProperty(n))throw new Error("traversePropertyPath - object does not have property "+n+", for path "+e);return{obj:t.nextObj,objProp:n,nextObj:t.nextObj[n]}}),{nextObj:this.params}),n=t.obj,r=t.objProp;if(!(n&&r&&n[r]instanceof ke.a))throw new Error("traversePropertyPath - parameter is not a tensor, for path "+e);return{obj:n,objProp:r}},e}();function Pt(e,t,n){return ke.L((function(){var r=ke.z(e,t.depthwise_filter,t.pointwise_filter,n,"same");return ke.c(r,t.bias)}))}function Mt(e,t,n){return void 0===n&&(n=!1),ke.L((function(){var r=ke.w(n?ke.c(ke.i(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Pt(e,t.conv0,[2,2])),o=Pt(r,t.conv1,[1,1]),a=Pt(ke.w(ke.c(r,o)),t.conv2,[1,1]);return ke.w(ke.c(r,ke.c(o,a)))}))}function Ft(e,t,n,r){return void 0===n&&(n=!1),void 0===r&&(r=!0),ke.L((function(){var o=ke.w(n?ke.c(ke.i(e,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):Pt(e,t.conv0,r?[2,2]:[1,1])),a=Pt(o,t.conv1,[1,1]),i=Pt(ke.w(ke.c(o,a)),t.conv2,[1,1]),u=Pt(ke.w(ke.c(o,ke.c(a,i))),t.conv3,[1,1]);return ke.w(ke.c(o,ke.c(a,ke.c(i,u))))}))}function Bt(e,t,n,r){return void 0===n&&(n="same"),void 0===r&&(r=!1),ke.L((function(){var o=ke.c(ke.i(e,t.filters,[1,1],n),t.bias);return r?ke.w(o):o}))}function Lt(e,t){Object.keys(e).forEach((function(n){t.some((function(e){return e.originalPath===n}))||e[n].dispose()}))}function Wt(e,t){return function(n,r,o,a){var i=ke.K(e(n*r*o*o),[o,o,n,r]),u=ke.H(e(r));return t.push({paramPath:a+"/filters"},{paramPath:a+"/bias"}),{filters:i,bias:u}}}function Ut(e,t){return function(n,r,o){var a=ke.I(e(n*r),[n,r]),i=ke.H(e(r));return t.push({paramPath:o+"/weights"},{paramPath:o+"/bias"}),{weights:a,bias:i}}}var zt=function(e,t,n){this.depthwise_filter=e,this.pointwise_filter=t,this.bias=n};function jt(e,t){return function(n,r,o){var a=ke.K(e(9*n),[3,3,n,1]),i=ke.K(e(n*r),[1,1,n,r]),u=ke.H(e(r));return t.push({paramPath:o+"/depthwise_filter"},{paramPath:o+"/pointwise_filter"},{paramPath:o+"/bias"}),new zt(a,i,u)}}function Vt(e){return function(t){var n=e(t+"/depthwise_filter",4),r=e(t+"/pointwise_filter",4),o=e(t+"/bias",1);return new zt(n,r,o)}}function Ht(e,t){return function(n,r,o){var a=e[n];if(!Te(a,r))throw new Error("expected weightMap["+n+"] to be a Tensor"+r+"D, instead have "+a);return t.push({originalPath:n,paramPath:o||n}),a}}function Gt(e){var t=e;return{extractWeights:function(e){var n=t.slice(0,e);return t=t.slice(e),n},getRemainingWeights:function(){return t}}}function qt(e,t){var n=Wt(e,t),r=jt(e,t);function o(e,t,o,a){return void 0===a&&(a=!1),{conv0:a?n(e,t,3,o+"/conv0"):r(e,t,o+"/conv0"),conv1:r(t,t,o+"/conv1"),conv2:r(t,t,o+"/conv2")}}return{extractDenseBlock3Params:o,extractDenseBlock4Params:function(e,t,n,a){void 0===a&&(a=!1);var i=o(e,t,n,a);return{conv0:i.conv0,conv1:i.conv1,conv2:i.conv2,conv3:r(t,t,n+"/conv3")}}}}function Kt(e){return function(t){return{filters:e(t+"/filters",4),bias:e(t+"/bias",1)}}}function Xt(e,t){var n=Ht(e,t),r=Kt(n),o=Vt(n);return{extractDenseBlock3Params:function(e,t){return void 0===t&&(t=!1),{conv0:t?r(e+"/conv0"):o(e+"/conv0"),conv1:o(e+"/conv1"),conv2:o(e+"/conv2")}},extractDenseBlock4Params:function(e,t){return void 0===t&&(t=!1),{conv0:t?r(e+"/conv0"):o(e+"/conv0"),conv1:o(e+"/conv1"),conv2:o(e+"/conv2"),conv3:o(e+"/conv3")}}}}var $t=function(e){function t(){return e.call(this,"FaceFeatureExtractor")||this}return Object(Se.c)(t,e),t.prototype.forwardInput=function(e){var t=this.params;if(!t)throw new Error("FaceFeatureExtractor - load model before inference");return ke.L((function(){var n=Ft(Ge(e.toBatchTensor(112,!0),[122.782,117.001,104.298]).div(ke.y(255)),t.dense0,!0);return n=Ft(n,t.dense1),n=Ft(n,t.dense2),n=Ft(n,t.dense3),ke.d(n,[7,7],[2,2],"valid")}))},t.prototype.forward=function(e){return Object(Se.b)(this,void 0,void 0,(function(){var t;return Object(Se.d)(this,(function(n){switch(n.label){case 0:return t=this.forwardInput,[4,St(e)];case 1:return[2,t.apply(this,[n.sent()])]}}))}))},t.prototype.getDefaultModelName=function(){return"face_feature_extractor_model"},t.prototype.extractParamsFromWeigthMap=function(e){return function(e){var t=[],n=Xt(e,t).extractDenseBlock4Params,r={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return Lt(e,t),{params:r,paramMappings:t}}(e)},t.prototype.extractParams=function(e){return function(e){var t=[],n=Gt(e),r=n.extractWeights,o=n.getRemainingWeights,a=qt(r,t).extractDenseBlock4Params,i=a(3,32,"dense0",!0),u=a(32,64,"dense1"),s=a(64,128,"dense2"),c=a(128,256,"dense3");if(0!==o().length)throw new Error("weights remaing after extract: "+o().length);return{paramMappings:t,params:{dense0:i,dense1:u,dense2:s,dense3:c}}}(e)},t}(Nt);function Yt(e,t){return ke.L((function(){return ke.c(ke.q(e,t.weights),t.bias)}))}function Qt(e){var t={},n={};return Object.keys(e).forEach((function(r){(r.startsWith("fc")?n:t)[r]=e[r]})),{featureExtractorMap:t,classifierMap:n}}var Jt=function(e){function t(t,n){var r=e.call(this,t)||this;return r._faceFeatureExtractor=n,r}return Object(Se.c)(t,e),Object.defineProperty(t.prototype,"faceFeatureExtractor",{get:function(){return this._faceFeatureExtractor},enumerable:!0,configurable:!0}),t.prototype.runNet=function(e){var t=this,n=this.params;if(!n)throw new Error(this._name+" - load model before inference");return ke.L((function(){var r=e instanceof _t?t.faceFeatureExtractor.forwardInput(e):e;return Yt(r.as2D(r.shape[0],-1),n.fc)}))},t.prototype.dispose=function(t){void 0===t&&(t=!0),this.faceFeatureExtractor.dispose(t),e.prototype.dispose.call(this,t)},t.prototype.loadClassifierParams=function(e){var t=this.extractClassifierParams(e),n=t.params,r=t.paramMappings;this._params=n,this._paramMappings=r},t.prototype.extractClassifierParams=function(e){return function(e,t,n){var r=[],o=Gt(e),a=o.extractWeights,i=o.getRemainingWeights,u=Ut(a,r)(t,n,"fc");if(0!==i().length)throw new Error("weights remaing after extract: "+i().length);return{paramMappings:r,params:{fc:u}}}(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())},t.prototype.extractParamsFromWeigthMap=function(e){var t=Qt(e),n=t.featureExtractorMap,r=t.classifierMap;return this.faceFeatureExtractor.loadFromWeightMap(n),function(e){var t=[],n=Ht(e,t),r={fc:("fc",{weights:n("fc/weights",2),bias:n("fc/bias",1)})};return Lt(e,t),{params:r,paramMappings:t}}(r)},t.prototype.extractParams=function(e){var t=this.getClassifierChannelsIn(),n=this.getClassifierChannelsOut(),r=n*t+n,o=e.slice(0,e.length-r),a=e.slice(e.length-r);return this.faceFeatureExtractor.extractWeights(o),this.extractClassifierParams(a)},t}(Nt),Zt=["neutral","happy","sad","angry","fearful","disgusted","surprised"],en=function(){function e(e){var t=this;if(7!==e.length)throw new Error("FaceExpressions.constructor - expected probabilities.length to be 7, have: "+e.length);Zt.forEach((function(n,r){t[n]=e[r]}))}return e.prototype.asSortedArray=function(){var e=this;return Zt.map((function(t){return{expression:t,probability:e[t]}})).sort((function(e,t){return t.probability-e.probability}))},e}(),tn=function(e){function t(t){return void 0===t&&(t=new $t),e.call(this,"FaceExpressionNet",t)||this}return Object(Se.c)(t,e),t.prototype.forwardInput=function(e){var t=this;return ke.L((function(){return ke.D(t.runNet(e))}))},t.prototype.forward=function(e){return Object(Se.b)(this,void 0,void 0,(function(){var t;return Object(Se.d)(this,(function(n){switch(n.label){case 0:return t=this.forwardInput,[4,St(e)];case 1:return[2,t.apply(this,[n.sent()])]}}))}))},t.prototype.predictExpressions=function(e){return Object(Se.b)(this,void 0,void 0,(function(){var t,n,r,o,a=this;return Object(Se.d)(this,(function(i){switch(i.label){case 0:return[4,St(e)];case 1:return t=i.sent(),[4,this.forwardInput(t)];case 2:return n=i.sent(),[4,Promise.all(ke.O(n).map((function(e){return Object(Se.b)(a,void 0,void 0,(function(){var t;return Object(Se.d)(this,(function(n){switch(n.label){case 0:return[4,e.data()];case 1:return t=n.sent(),e.dispose(),[2,t]}}))}))})))];case 3:return r=i.sent(),n.dispose(),o=r.map((function(e){return new en(e)})),[2,t.isBatchInput?o:o[0]]}}))}))},t.prototype.getDefaultModelName=function(){return"face_expression_model"},t.prototype.getClassifierChannelsIn=function(){return 256},t.prototype.getClassifierChannelsOut=function(){return 7},t}(Jt);function nn(e,t){var n={expressions:t};return Object.assign({},e,n)}function rn(e,t,n,r){void 0===n&&(n=.1),(Array.isArray(t)?t:[t]).forEach((function(t){var o=t instanceof en?t:t.expressions instanceof en?t.expressions:void 0;if(!o)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");var a=o.asSortedArray().filter((function(e){return e.probability>n})),i=et(t)?t.detection.box.bottomLeft:r||new Le(0,0);new vt(a.map((function(e){return e.expression+" ("+De(e.probability)+")"})),i).draw(e)}))}function on(e){return et(e)&&e.landmarks instanceof Xe&&e.unshiftedLandmarks instanceof Xe&&e.alignedRect instanceof je}function an(e,t){var n=e.detection.box,r=t.shiftBy(n.x,n.y),o=r.align(),a=e.detection.imageDims,i={landmarks:r,unshiftedLandmarks:t,alignedRect:new je(e.detection.score,o.rescale(a.reverse()),a)};return Object.assign({},e,i)}var un=function(e){void 0===e&&(e={});var t=e.drawLines,n=void 0===t||t,r=e.drawPoints,o=void 0===r||r,a=e.lineWidth,i=e.lineColor,u=e.pointSize,s=e.pointColor;this.drawLines=n,this.drawPoints=o,this.lineWidth=a||1,this.pointSize=u||2,this.lineColor=i||"rgba(0, 255, 255, 1)",this.pointColor=s||"rgba(255, 0, 255, 1)"},sn=function(){function e(e,t){void 0===t&&(t={}),this.faceLandmarks=e,this.options=new un(t)}return e.prototype.draw=function(e){var t=pt(e),n=this.options,r=n.drawLines,o=n.drawPoints,a=n.lineWidth,i=n.lineColor,u=n.pointSize,s=n.pointColor;r&&this.faceLandmarks instanceof Ye&&(t.strokeStyle=i,t.lineWidth=a,_e(t,this.faceLandmarks.getJawOutline()),_e(t,this.faceLandmarks.getLeftEyeBrow()),_e(t,this.faceLandmarks.getRightEyeBrow()),_e(t,this.faceLandmarks.getNose()),_e(t,this.faceLandmarks.getLeftEye(),!0),_e(t,this.faceLandmarks.getRightEye(),!0),_e(t,this.faceLandmarks.getMouth(),!0)),o&&(t.strokeStyle=s,t.fillStyle=s,this.faceLandmarks.positions.forEach((function(e){t.beginPath(),t.arc(e.x,e.y,u,0,2*Math.PI),t.fill()})))},e}();function cn(e,t){(Array.isArray(t)?t:[t]).forEach((function(t){var n=t instanceof Xe?t:on(t)?t.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks<WithFaceDetection<{}>> or array thereof");new sn(n).draw(e)}))}function ln(e,t,n){return ke.c(ke.i(e,t.filters,n,"same"),t.bias)}function fn(e,t,n){void 0===n&&(n=!0);var r=n?ke.w(e):e;return r=Pt(r,t.separable_conv0,[1,1]),r=Pt(ke.w(r),t.separable_conv1,[1,1]),r=ke.s(r,[3,3],[2,2],"same"),ke.c(r,ln(e,t.expansion_conv,[2,2]))}var dn,pn=function(e){function t(t){var n=e.call(this,"TinyXception")||this;return n._numMainBlocks=t,n}return Object(Se.c)(t,e),t.prototype.forwardInput=function(e){var t=this,n=this.params;if(!n)throw new Error("TinyXception - load model before inference");return ke.L((function(){var r=Ge(e.toBatchTensor(112,!0),[122.782,117.001,104.298]).div(ke.y(256)),o=ke.w(ln(r,n.entry_flow.conv_in,[2,2]));return o=fn(o,n.entry_flow.reduction_block_0,!1),o=fn(o,n.entry_flow.reduction_block_1),Me(t._numMainBlocks,0,1).forEach((function(e){o=function(e,t){var n=Pt(ke.w(e),t.separable_conv0,[1,1]);return n=Pt(ke.w(n),t.separable_conv1,[1,1]),n=Pt(ke.w(n),t.separable_conv2,[1,1]),ke.c(n,e)}(o,n.middle_flow["main_block_"+e])})),o=fn(o,n.exit_flow.reduction_block),o=ke.w(Pt(o,n.exit_flow.separable_conv,[1,1]))}))},t.prototype.forward=function(e){return Object(Se.b)(this,void 0,void 0,(function(){var t;return Object(Se.d)(this,(function(n){switch(n.label){case 0:return t=this.forwardInput,[4,St(e)];case 1:return[2,t.apply(this,[n.sent()])]}}))}))},t.prototype.getDefaultModelName=function(){return"tiny_xception_model"},t.prototype.extractParamsFromWeigthMap=function(e){return function(e,t){var n=[],r=function(e,t){var n=Ht(e,t),r=Kt(n),o=Vt(n);return{extractConvParams:r,extractSeparableConvParams:o,extractReductionBlockParams:function(e){return{separable_conv0:o(e+"/separable_conv0"),separable_conv1:o(e+"/separable_conv1"),expansion_conv:r(e+"/expansion_conv")}},extractMainBlockParams:function(e){return{separable_conv0:o(e+"/separable_conv0"),separable_conv1:o(e+"/separable_conv1"),separable_conv2:o(e+"/separable_conv2")}}}}(e,n),o=r.extractConvParams,a=r.extractSeparableConvParams,i=r.extractReductionBlockParams,u=r.extractMainBlockParams,s={conv_in:o("entry_flow/conv_in"),reduction_block_0:i("entry_flow/reduction_block_0"),reduction_block_1:i("entry_flow/reduction_block_1")},c={};Me(t,0,1).forEach((function(e){c["main_block_"+e]=u("middle_flow/main_block_"+e)}));var l={reduction_block:i("exit_flow/reduction_block"),separable_conv:a("exit_flow/separable_conv")};return Lt(e,n),{params:{entry_flow:s,middle_flow:c,exit_flow:l},paramMappings:n}}(e,this._numMainBlocks)},t.prototype.extractParams=function(e){return function(e,t){var n=[],r=Gt(e),o=r.extractWeights,a=r.getRemainingWeights,i=function(e,t){var n=Wt(e,t),r=jt(e,t);return{extractConvParams:n,extractSeparableConvParams:r,extractReductionBlockParams:function(e,t,o){return{separable_conv0:r(e,t,o+"/separable_conv0"),separable_conv1:r(t,t,o+"/separable_conv1"),expansion_conv:n(e,t,1,o+"/expansion_conv")}},extractMainBlockParams:function(e,t){return{separable_conv0:r(e,e,t+"/separable_conv0"),separable_conv1:r(e,e,t+"/separable_conv1"),separable_conv2:r(e,e,t+"/separable_conv2")}}}}(o,n),u=i.extractConvParams,s=i.extractSeparableConvParams,c=i.extractReductionBlockParams,l=i.extractMainBlockParams,f={conv_in:u(3,32,3,"entry_flow/conv_in"),reduction_block_0:c(32,64,"entry_flow/reduction_block_0"),reduction_block_1:c(64,128,"entry_flow/reduction_block_1")},d={};Me(t,0,1).forEach((function(e){d["main_block_"+e]=l(128,"middle_flow/main_block_"+e)}));var p={reduction_block:c(128,256,"exit_flow/reduction_block"),separable_conv:s(256,512,"exit_flow/separable_conv")};if(0!==a().length)throw new Error("weights remaing after extract: "+a().length);return{paramMappings:n,params:{entry_flow:f,middle_flow:d,exit_flow:p}}}(e,this._numMainBlocks)},t}(Nt);!function(e){e.FEMALE="female",e.MALE="male"}(dn||(dn={}));var hn=function(e){function t(t){void 0===t&&(t=new pn(2));var n=e.call(this,"AgeGenderNet")||this;return n._faceFeatureExtractor=t,n}return Object(Se.c)(t,e),Object.defineProperty(t.prototype,"faceFeatureExtractor",{get:function(){return this._faceFeatureExtractor},enumerable:!0,configurable:!0}),t.prototype.runNet=function(e){var t=this,n=this.params;if(!n)throw new Error(this._name+" - load model before inference");return ke.L((function(){var r=e instanceof _t?t.faceFeatureExtractor.forwardInput(e):e,o=ke.d(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1);return{age:Yt(o,n.fc.age).as1D(),gender:Yt(o,n.fc.gender)}}))},t.prototype.forwardInput=function(e){var t=this;return ke.L((function(){var n=t.runNet(e),r=n.age,o=n.gender;return{age:r,gender:ke.D(o)}}))},t.prototype.forward=function(e){return Object(Se.b)(this,void 0,void 0,(function(){var t;return Object(Se.d)(this,(function(n){switch(n.label){case 0:return t=this.forwardInput,[4,St(e)];case 1:return[2,t.apply(this,[n.sent()])]}}))}))},t.prototype.predictAgeAndGender=function(e){return Object(Se.b)(this,void 0,void 0,(function(){var t,n,r,o,a,i,u=this;return Object(Se.d)(this,(function(s){switch(s.label){case 0:return[4,St(e)];case 1:return t=s.sent(),[4,this.forwardInput(t)];case 2:return n=s.sent(),r=ke.O(n.age),o=ke.O(n.gender),a=r.map((function(e,t){return{ageTensor:e,genderTensor:o[t]}})),[4,Promise.all(a.map((function(e){var t=e.ageTensor,n=e.genderTensor;return Object(Se.b)(u,void 0,void 0,(function(){var e,r,o,a,i;return Object(Se.d)(this,(function(u){switch(u.label){case 0:return[4,t.data()];case 1:return e=u.sent()[0],[4,n.data()];case 2:return r=u.sent()[0],a=(o=r>.5)?dn.MALE:dn.FEMALE,i=o?r:1-r,t.dispose(),n.dispose(),[2,{age:e,gender:a,genderProbability:i}]}}))}))})))];case 3:return i=s.sent(),n.age.dispose(),n.gender.dispose(),[2,t.isBatchInput?i:i[0]]}}))}))},t.prototype.getDefaultModelName=function(){return"age_gender_model"},t.prototype.dispose=function(t){void 0===t&&(t=!0),this.faceFeatureExtractor.dispose(t),e.prototype.dispose.call(this,t)},t.prototype.loadClassifierParams=function(e){var t=this.extractClassifierParams(e),n=t.params,r=t.paramMappings;this._params=n,this._paramMappings=r},t.prototype.extractClassifierParams=function(e){return function(e){var t=[],n=Gt(e),r=n.extractWeights,o=n.getRemainingWeights,a=Ut(r,t),i=a(512,1,"fc/age"),u=a(512,2,"fc/gender");if(0!==o().length)throw new Error("weights remaing after extract: "+o().length);return{paramMappings:t,params:{fc:{age:i,gender:u}}}}(e)},t.prototype.extractParamsFromWeigthMap=function(e){var t=Qt(e),n=t.featureExtractorMap,r=t.classifierMap;return this.faceFeatureExtractor.loadFromWeightMap(n),function(e){var t=[],n=Ht(e,t);function r(e){return{weights:n(e+"/weights",2),bias:n(e+"/bias",1)}}var o={fc:{age:r("fc/age"),gender:r("fc/gender")}};return Lt(e,t),{params:o,paramMappings:t}}(r)},t.prototype.extractParams=function(e){var t=e.slice(0,e.length-1539),n=e.slice(e.length-1539);return this.faceFeatureExtractor.extractWeights(t),this.extractClassifierParams(n)},t}(Nt),vn=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Se.c)(t,e),t.prototype.postProcess=function(e,t,n){var r=n.map((function(e){var n=e.width,r=e.height,o=t/Math.max(r,n);return{width:n*o,height:r*o}})),o=r.length;return ke.L((function(){var n=function(e,t){return ke.E([ke.n([68],e),ke.n([68],t)],1).as2D(1,136).as1D()},a=function(e,t){var n=r[e],o=n.width,a=n.height;return t(o,a)?Math.abs(o-a)/2:0};return e.mul(ke.n([o,136],t)).sub(ke.E(Array.from(Array(o),(function(e,t){return n(function(e){return a(e,(function(e,t){return e<t}))}(t),function(e){return a(e,(function(e,t){return t<e}))}(t))})))).div(ke.E(Array.from(Array(o),(function(e,t){return n(r[t].width,r[t].height)}))))}))},t.prototype.forwardInput=function(e){var t=this;return ke.L((function(){var n=t.runNet(e);return t.postProcess(n,e.inputSize,e.inputDimensions.map((function(e){return{height:e[0],width:e[1]}})))}))},t.prototype.forward=function(e){return Object(Se.b)(this,void 0,void 0,(function(){var t;return Object(Se.d)(this,(function(n){switch(n.label){case 0:return t=this.forwardInput,[4,St(e)];case 1:return[2,t.apply(this,[n.sent()])]}}))}))},t.prototype.detectLandmarks=function(e){return Object(Se.b)(this,void 0,void 0,(function(){var t,n,r,o=this;return Object(Se.d)(this,(function(a){switch(a.label){case 0:return[4,St(e)];case 1:return t=a.sent(),n=ke.L((function(){return ke.O(o.forwardInput(t))})),[4,Promise.all(n.map((function(e,n){return Object(Se.b)(o,void 0,void 0,(function(){var r,o,a,i,u;return Object(Se.d)(this,(function(s){switch(s.label){case 0:return a=(o=Array).from,[4,e.data()];case 1:return r=a.apply(o,[s.sent()]),i=r.filter((function(e,t){return Ae(t)})),u=r.filter((function(e,t){return!Ae(t)})),[2,new Ye(Array(68).fill(0).map((function(e,t){return new Le(i[t],u[t])})),{height:t.getInputHeight(n),width:t.getInputWidth(n)})]}}))}))})))];case 2:return r=a.sent(),n.forEach((function(e){return e.dispose()})),[2,t.isBatchInput?r:r[0]]}}))}))},t.prototype.getClassifierChannelsOut=function(){return 136},t}(Jt),mn=function(e){function t(t){return void 0===t&&(t=new $t),e.call(this,"FaceLandmark68Net",t)||this}return Object(Se.c)(t,e),t.prototype.getDefaultModelName=function(){return"face_landmark_68_model"},t.prototype.getClassifierChannelsIn=function(){return 256},t}(vn),gn=function(e){function t(){return e.call(this,"TinyFaceFeatureExtractor")||this}return Object(Se.c)(t,e),t.prototype.forwardInput=function(e){var t=this.params;if(!t)throw new Error("TinyFaceFeatureExtractor - load model before inference");return ke.L((function(){var n=Mt(Ge(e.toBatchTensor(112,!0),[122.782,117.001,104.298]).div(ke.y(255)),t.dense0,!0);return n=Mt(n,t.dense1),n=Mt(n,t.dense2),ke.d(n,[14,14],[2,2],"valid")}))},t.prototype.forward=function(e){return Object(Se.b)(this,void 0,void 0,(function(){var t;return Object(Se.d)(this,(function(n){switch(n.label){case 0:return t=this.forwardInput,[4,St(e)];case 1:return[2,t.apply(this,[n.sent()])]}}))}))},t.prototype.getDefaultModelName=function(){return"face_feature_extractor_tiny_model"},t.prototype.extractParamsFromWeigthMap=function(e){return function(e){var t=[],n=Xt(e,t).extractDenseBlock3Params,r={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return Lt(e,t),{params:r,paramMappings:t}}(e)},t.prototype.extractParams=function(e){return function(e){var t=[],n=Gt(e),r=n.extractWeights,o=n.getRemainingWeights,a=qt(r,t).extractDenseBlock3Params,i=a(3,32,"dense0",!0),u=a(32,64,"dense1"),s=a(64,128,"dense2");if(0!==o().length)throw new Error("weights remaing after extract: "+o().length);return{paramMappings:t,params:{dense0:i,dense1:u,dense2:s}}}(e)},t}(Nt),yn=function(e){function t(t){return void 0===t&&(t=new gn),e.call(this,"FaceLandmark68TinyNet",t)||this}return Object(Se.c)(t,e),t.prototype.getDefaultModelName=function(){return"face_landmark_68_tiny_model"},t.prototype.getClassifierChannelsIn=function(){return 128},t}(vn);function bn(e,t,n,r,o){void 0===o&&(o="same");var a=t.conv,i=a.filters,u=a.bias,s=ke.i(e,i,n,o);return s=function(e,t){return ke.c(ke.t(e,t.weights),t.biases)}(s=ke.c(s,u),t.scale),r?ke.w(s):s}function xn(e,t){return bn(e,t,[1,1],!1)}function wn(e,t){return bn(e,t,[2,2],!0,"valid")}function En(e){var t=[],n=function(e,t){var n=Ht(e,t);function r(e){return{conv:{filters:n(e+"/conv/filters",4),bias:n(e+"/conv/bias",1)},scale:function(e){return{weights:n(e+"/scale/weights",1),biases:n(e+"/scale/biases",1)}}(e)}}return{extractConvLayerParams:r,extractResidualLayerParams:function(e){return{conv1:r(e+"/conv1"),conv2:r(e+"/conv2")}}}}(e,t),r=n.extractConvLayerParams,o=n.extractResidualLayerParams,a=r("conv32_down"),i=o("conv32_1"),u=o("conv32_2"),s=o("conv32_3"),c=o("conv64_down"),l=o("conv64_1"),f=o("conv64_2"),d=o("conv64_3"),p=o("conv128_down"),h=o("conv128_1"),v=o("conv128_2"),m=o("conv256_down"),g=o("conv256_1"),y=o("conv256_2"),b=o("conv256_down_out"),x=e.fc;if(t.push({originalPath:"fc",paramPath:"fc"}),!Te(x,2))throw new Error("expected weightMap[fc] to be a Tensor2D, instead have "+x);var w={conv32_down:a,conv32_1:i,conv32_2:u,conv32_3:s,conv64_down:c,conv64_1:l,conv64_2:f,conv64_3:d,conv128_down:p,conv128_1:h,conv128_2:v,conv256_down:m,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:x};return Lt(e,t),{params:w,paramMappings:t}}function Cn(e,t){var n=function(e,t){return bn(e,t,[1,1],!0)}(e,t.conv1);return n=xn(n,t.conv2),n=ke.c(n,e),ke.w(n)}function kn(e,t){var n=wn(e,t.conv1);n=xn(n,t.conv2);var r=ke.d(e,2,2,"valid"),o=ke.P(r.shape),a=r.shape[3]!==n.shape[3];if(r.shape[1]!==n.shape[1]||r.shape[2]!==n.shape[2]){var i=Object(Se.e)(n.shape);i[1]=1;var u=ke.P(i);n=ke.h([n,u],1);var s=Object(Se.e)(n.shape);s[2]=1;var c=ke.P(s);n=ke.h([n,c],2)}return r=a?ke.h([r,o],3):r,n=ke.c(r,n),ke.w(n)}!function(e){Object(Se.c)((function(){return null!==e&&e.apply(this,arguments)||this}),e)}(mn);var _n=function(e){function t(){return e.call(this,"FaceRecognitionNet")||this}return Object(Se.c)(t,e),t.prototype.forwardInput=function(e){var t=this.params;if(!t)throw new Error("FaceRecognitionNet - load model before inference");return ke.L((function(){var n=wn(Ge(e.toBatchTensor(150,!0).toFloat(),[122.782,117.001,104.298]).div(ke.y(256)),t.conv32_down);n=Cn(n=ke.s(n,3,2,"valid"),t.conv32_1),n=Cn(n,t.conv32_2),n=Cn(n,t.conv32_3),n=Cn(n=kn(n,t.conv64_down),t.conv64_1),n=Cn(n,t.conv64_2),n=Cn(n,t.conv64_3),n=Cn(n=kn(n,t.conv128_down),t.conv128_1),n=Cn(n,t.conv128_2),n=Cn(n=kn(n,t.conv256_down),t.conv256_1);var r=(n=kn(n=Cn(n,t.conv256_2),t.conv256_down_out)).mean([1,2]);return ke.q(r,t.fc)}))},t.prototype.forward=function(e){return Object(Se.b)(this,void 0,void 0,(function(){var t;return Object(Se.d)(this,(function(n){switch(n.label){case 0:return t=this.forwardInput,[4,St(e)];case 1:return[2,t.apply(this,[n.sent()])]}}))}))},t.prototype.computeFaceDescriptor=function(e){return Object(Se.b)(this,void 0,void 0,(function(){var t,n,r,o=this;return Object(Se.d)(this,(function(a){switch(a.label){case 0:return[4,St(e)];case 1:return t=a.sent(),n=ke.L((function(){return ke.O(o.forwardInput(t))})),[4,Promise.all(n.map((function(e){return e.data()})))];case 2:return r=a.sent(),n.forEach((function(e){return e.dispose()})),[2,t.isBatchInput?r:r[0]]}}))}))},t.prototype.getDefaultModelName=function(){return"face_recognition_model"},t.prototype.extractParamsFromWeigthMap=function(e){return En(e)},t.prototype.extractParams=function(e){return function(e){var t=Gt(e),n=t.extractWeights,r=t.getRemainingWeights,o=[],a=function(e,t){function n(n,r,o,a){var i=function(t,n,r){var o=e(t),a=o.length/(n*r*r);if(a%1!=0)throw new Error("depth has to be an integer: "+a+", weights.length: "+o.length+", numFilters: "+n+", filterSize: "+r);return ke.L((function(){return ke.N(ke.K(o,[n,a,r,r]),[2,3,1,0])}))}(n,r,o),u=ke.H(e(r));return t.push({paramPath:a+"/filters"},{paramPath:a+"/bias"}),{filters:i,bias:u}}function r(r,o,a,i){return{conv:n(r,o,a,i+"/conv"),scale:function(n,r){var o=ke.H(e(n)),a=ke.H(e(n));return t.push({paramPath:r+"/weights"},{paramPath:r+"/biases"}),{weights:o,biases:a}}(o,i+"/scale")}}return{extractConvLayerParams:r,extractResidualLayerParams:function(e,t,n,o,a){return void 0===a&&(a=!1),{conv1:r((a?.5:1)*e,t,n,o+"/conv1"),conv2:r(e,t,n,o+"/conv2")}}}}(n,o),i=a.extractConvLayerParams,u=a.extractResidualLayerParams,s=i(4704,32,7,"conv32_down"),c=u(9216,32,3,"conv32_1"),l=u(9216,32,3,"conv32_2"),f=u(9216,32,3,"conv32_3"),d=u(36864,64,3,"conv64_down",!0),p=u(36864,64,3,"conv64_1"),h=u(36864,64,3,"conv64_2"),v=u(36864,64,3,"conv64_3"),m=u(147456,128,3,"conv128_down",!0),g=u(147456,128,3,"conv128_1"),y=u(147456,128,3,"conv128_2"),b=u(589824,256,3,"conv256_down",!0),x=u(589824,256,3,"conv256_1"),w=u(589824,256,3,"conv256_2"),E=u(589824,256,3,"conv256_down_out"),C=ke.L((function(){return ke.N(ke.I(n(32768),[128,256]),[1,0])}));if(o.push({paramPath:"fc"}),0!==r().length)throw new Error("weights remaing after extract: "+r().length);return{params:{conv32_down:s,conv32_1:c,conv32_2:l,conv32_3:f,conv64_down:d,conv64_1:p,conv64_2:h,conv64_3:v,conv128_down:m,conv128_1:g,conv128_2:y,conv256_down:b,conv256_1:x,conv256_2:w,conv256_down_out:E,fc:C},paramMappings:o}}(e)},t}(Nt);function Sn(e,t){var n={descriptor:t};return Object.assign({},e,n)}function Rn(e,t){var n={age:t};return Object.assign({},e,n)}function Tn(e,t,n){var r={gender:t,genderProbability:n};return Object.assign({},e,r)}var In=function(){function e(e){var t=void 0===e?{}:e,n=t.minFaceSize,r=t.scaleFactor,o=t.maxNumScales,a=t.scoreThresholds,i=t.scaleSteps;if(this._name="MtcnnOptions",this._minFaceSize=n||20,this._scaleFactor=r||.709,this._maxNumScales=o||10,this._scoreThresholds=a||[.6,.7,.7],this._scaleSteps=i,"number"!=typeof this._minFaceSize||this._minFaceSize<0)throw new Error(this._name+" - expected minFaceSize to be a number > 0");if("number"!=typeof this._scaleFactor||this._scaleFactor<=0||this._scaleFactor>=1)throw new Error(this._name+" - expected scaleFactor to be a number between 0 and 1");if("number"!=typeof this._maxNumScales||this._maxNumScales<0)throw new Error(this._name+" - expected maxNumScales to be a number > 0");if(!Array.isArray(this._scoreThresholds)||3!==this._scoreThresholds.length||this._scoreThresholds.some((function(e){return"number"!=typeof e})))throw new Error(this._name+" - expected scoreThresholds to be an array of numbers of length 3");if(this._scaleSteps&&(!Array.isArray(this._scaleSteps)||this._scaleSteps.some((function(e){return"number"!=typeof e}))))throw new Error(this._name+" - expected scaleSteps to be an array of numbers")}return Object.defineProperty(e.prototype,"minFaceSize",{get:function(){return this._minFaceSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scaleFactor",{get:function(){return this._scaleFactor},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxNumScales",{get:function(){return this._maxNumScales},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scoreThresholds",{get:function(){return this._scoreThresholds},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scaleSteps",{get:function(){return this._scaleSteps},enumerable:!0,configurable:!0}),e}();function On(e,t,n){return ke.L((function(){var r=ke.i(e,t.filters,n,"same");return r=ke.c(r,t.batch_norm_offset),ke.g(r,0,6)}))}function An(e,t,n){var r=e.arraySync(),o=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),i=Math.max(r[t][0],r[t][2]),u=Math.max(r[t][1],r[t][3]),s=Math.min(r[n][0],r[n][2]),c=Math.min(r[n][1],r[n][3]),l=Math.max(r[n][0],r[n][2]),f=Math.max(r[n][1],r[n][3]),d=(i-o)*(u-a),p=(l-s)*(f-c);if(d<=0||p<=0)return 0;var h=Math.max(o,s),v=Math.max(a,c),m=Math.min(i,l),g=Math.min(u,f),y=Math.max(m-h,0)*Math.max(g-v,0);return y/(d+p-y)}function Dn(e,t){return ke.L((function(){var n=e.shape[0];return{boxPredictionEncoding:ke.x(Bt(e,t.box_encoding_predictor),[n,-1,1,4]),classPrediction:ke.x(Bt(e,t.class_predictor),[n,-1,3])}}))}var Nn=function(){function e(e){var t=void 0===e?{}:e,n=t.minConfidence,r=t.maxResults;if(this._name="SsdMobilenetv1Options",this._minConfidence=n||.5,this._maxResults=r||100,"number"!=typeof this._minConfidence||this._minConfidence<=0||this._minConfidence>=1)throw new Error(this._name+" - expected minConfidence to be a number between 0 and 1");if("number"!=typeof this._maxResults)throw new Error(this._name+" - expected maxResults to be a number")}return Object.defineProperty(e.prototype,"minConfidence",{get:function(){return this._minConfidence},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxResults",{get:function(){return this._maxResults},enumerable:!0,configurable:!0}),e}(),Pn=function(e){function t(){return e.call(this,"SsdMobilenetv1")||this}return Object(Se.c)(t,e),t.prototype.forwardInput=function(e){var t=this.params;if(!t)throw new Error("SsdMobilenetv1 - load model before inference");return ke.L((function(){var n=e.toBatchTensor(512,!1).toFloat(),r=function(e,t){return ke.L((function(){var n=null,r=On(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((function(e,t){var o=t+1,a=function(e){return[2,4,6,12].some((function(t){return t===e}))?[2,2]:[1,1]}(o);r=On(r=function(e,t,n){return ke.L((function(){var r=ke.j(e,t.filters,n,"same");return r=ke.e(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,.0010000000474974513),ke.g(r,0,6)}))}(r,e.depthwise_conv,a),e.pointwise_conv,[1,1]),11===o&&(n=r)})),null===n)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:n}}))}(ke.F(ke.t(n,ke.y(.007843137718737125)),ke.y(1)),t.mobilenetv1),o=function(e,t,n){return ke.L((function(){var r=On(e,n.conv_0,[1,1]),o=On(r,n.conv_1,[2,2]),a=On(o,n.conv_2,[1,1]),i=On(a,n.conv_3,[2,2]),u=On(i,n.conv_4,[1,1]),s=On(u,n.conv_5,[2,2]),c=On(s,n.conv_6,[1,1]),l=On(c,n.conv_7,[2,2]),f=Dn(t,n.box_predictor_0),d=Dn(e,n.box_predictor_1),p=Dn(o,n.box_predictor_2),h=Dn(i,n.box_predictor_3),v=Dn(s,n.box_predictor_4),m=Dn(l,n.box_predictor_5);return{boxPredictions:ke.h([f.boxPredictionEncoding,d.boxPredictionEncoding,p.boxPredictionEncoding,h.boxPredictionEncoding,v.boxPredictionEncoding,m.boxPredictionEncoding],1),classPredictions:ke.h([f.classPrediction,d.classPrediction,p.classPrediction,h.classPrediction,v.classPrediction,m.classPrediction],1)}}))}(r.out,r.conv11,t.prediction_layer);return function(e,t,n){return ke.L((function(){var r=e.shape[0],o=function(e,t){var n=function(e){var t=ke.O(ke.N(e,[1,0])),n=[ke.F(t[2],t[0]),ke.F(t[3],t[1])];return{sizes:n,centers:[ke.c(t[0],ke.k(n[0],ke.y(2))),ke.c(t[1],ke.k(n[1],ke.y(2)))]}}(e),r=n.sizes,o=n.centers,a=ke.O(ke.N(t,[1,0])),i=ke.k(ke.t(ke.l(ke.k(a[2],ke.y(5))),r[0]),ke.y(2)),u=ke.c(ke.t(ke.k(a[0],ke.y(10)),r[0]),o[0]),s=ke.k(ke.t(ke.l(ke.k(a[3],ke.y(5))),r[1]),ke.y(2)),c=ke.c(ke.t(ke.k(a[1],ke.y(10)),r[1]),o[1]);return ke.N(ke.E([ke.F(u,i),ke.F(c,s),ke.c(u,i),ke.c(c,s)]),[1,0])}(ke.x(ke.M(n.extra_dim,[r,1,1]),[-1,4]),ke.x(e,[-1,4]));o=ke.x(o,[r,o.shape[0]/r,4]);var a=ke.A(ke.B(t,[0,0,1],[-1,-1,-1])),i=ke.B(a,[0,0,0],[-1,-1,1]);return i=ke.x(i,[r,i.shape[1]]),{boxes:ke.O(o),scores:ke.O(i)}}))}(o.boxPredictions,o.classPredictions,t.output_layer)}))},t.prototype.forward=function(e){return Object(Se.b)(this,void 0,void 0,(function(){var t;return Object(Se.d)(this,(function(n){switch(n.label){case 0:return t=this.forwardInput,[4,St(e)];case 1:return[2,t.apply(this,[n.sent()])]}}))}))},t.prototype.locateFaces=function(e,t){return void 0===t&&(t={}),Object(Se.b)(this,void 0,void 0,(function(){var n,r,o,a,i,u,s,c,l,f,d,p,h,v,m,g,y,b,x,w;return Object(Se.d)(this,(function(E){switch(E.label){case 0:return n=new Nn(t),r=n.maxResults,o=n.minConfidence,[4,St(e)];case 1:for(a=E.sent(),i=this.forwardInput(a),u=i.boxes,s=i.scores,c=u[0],l=s[0],f=1;f<u.length;f++)u[f].dispose(),s[f].dispose();return h=(p=Array).from,[4,l.data()];case 2:return d=h.apply(p,[E.sent()]),v=function(e,t,n,r,o){var a=e.shape[0],i=Math.min(n,a),u=t.map((function(e,t){return{score:e,boxIndex:t}})).filter((function(e){return e.score>o})).sort((function(e,t){return t.score-e.score})),s=[];return u.forEach((function(t){if(!(s.length>=i)){for(var n=t.score,r=s.length-1;r>=0;--r){var a=An(e,t.boxIndex,s[r]);if(0!==a&&(t.score*=a<=.5?1:0,t.score<=o))break}n===t.score&&s.push(t.boxIndex)}})),s}(c,d,r,0,o),m=a.getReshapedInputDimensions(0),g=a.inputSize,y=g/m.width,b=g/m.height,x=c.arraySync(),w=v.map((function(e){var t=[Math.max(0,x[e][0]),Math.min(1,x[e][2])].map((function(e){return e*b})),n=t[0],r=t[1],o=[Math.max(0,x[e][1]),Math.min(1,x[e][3])].map((function(e){return e*y})),i=o[0],u=o[1];return new je(d[e],new Ke(i,n,u-i,r-n),{height:a.getInputHeight(0),width:a.getInputWidth(0)})})),c.dispose(),l.dispose(),[2,w]}}))}))},t.prototype.getDefaultModelName=function(){return"ssd_mobilenetv1_model"},t.prototype.extractParamsFromWeigthMap=function(e){return function(e){var t=[],n=function(e,t){var n=Ht(e,t);function r(e,t,r){return{filters:n(e+"/Conv2d_"+t+"_pointwise/weights",4,r+"/filters"),batch_norm_offset:n(e+"/Conv2d_"+t+"_pointwise/convolution_bn_offset",1,r+"/batch_norm_offset")}}function o(e){var t="mobilenetv1/conv_"+e,o="MobilenetV1/Conv2d_"+e+"_depthwise",a=t+"/depthwise_conv",i=t+"/pointwise_conv";return{depthwise_conv:{filters:n(o+"/depthwise_weights",4,a+"/filters"),batch_norm_scale:n(o+"/BatchNorm/gamma",1,a+"/batch_norm_scale"),batch_norm_offset:n(o+"/BatchNorm/beta",1,a+"/batch_norm_offset"),batch_norm_mean:n(o+"/BatchNorm/moving_mean",1,a+"/batch_norm_mean"),batch_norm_variance:n(o+"/BatchNorm/moving_variance",1,a+"/batch_norm_variance")},pointwise_conv:r("MobilenetV1",e,i)}}function a(e,t){return{filters:n(e+"/weights",4,t+"/filters"),bias:n(e+"/biases",1,t+"/bias")}}function i(e){return{box_encoding_predictor:a("Prediction/BoxPredictor_"+e+"/BoxEncodingPredictor","prediction_layer/box_predictor_"+e+"/box_encoding_predictor"),class_predictor:a("Prediction/BoxPredictor_"+e+"/ClassPredictor","prediction_layer/box_predictor_"+e+"/class_predictor")}}return{extractMobilenetV1Params:function(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:o(1),conv_2:o(2),conv_3:o(3),conv_4:o(4),conv_5:o(5),conv_6:o(6),conv_7:o(7),conv_8:o(8),conv_9:o(9),conv_10:o(10),conv_11:o(11),conv_12:o(12),conv_13:o(13)}},extractPredictionLayerParams:function(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}}}(e,t),r=n.extractMobilenetV1Params,o=n.extractPredictionLayerParams,a=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Ie(a))throw new Error("expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have "+a);var i={mobilenetv1:r(),prediction_layer:o(),output_layer:{extra_dim:a}};return Lt(e,t),{params:i,paramMappings:t}}(e)},t.prototype.extractParams=function(e){return function(e){var t=[],n=Gt(e),r=n.extractWeights,o=n.getRemainingWeights,a=function(e,t){function n(n,r,o,a,i){var u=ke.K(e(n*r*o*o),[o,o,n,r]),s=ke.H(e(r));return t.push({paramPath:a+"/filters"},{paramPath:a+"/"+(i?"batch_norm_offset":"bias")}),{filters:u,bias:s}}function r(e,t,r,o){var a=n(e,t,r,o,!0);return{filters:a.filters,batch_norm_offset:a.bias}}function o(n,o,a){return{depthwise_conv:function(n,r){var o=ke.K(e(9*n),[3,3,n,1]),a=ke.H(e(n)),i=ke.H(e(n)),u=ke.H(e(n)),s=ke.H(e(n));return t.push({paramPath:r+"/filters"},{paramPath:r+"/batch_norm_scale"},{paramPath:r+"/batch_norm_offset"},{paramPath:r+"/batch_norm_mean"},{paramPath:r+"/batch_norm_variance"}),{filters:o,batch_norm_scale:a,batch_norm_offset:i,batch_norm_mean:u,batch_norm_variance:s}}(n,a+"/depthwise_conv"),pointwise_conv:r(n,o,1,a+"/pointwise_conv")}}return{extractMobilenetV1Params:function(){return{conv_0:r(3,32,3,"mobilenetv1/conv_0"),conv_1:o(32,64,"mobilenetv1/conv_1"),conv_2:o(64,128,"mobilenetv1/conv_2"),conv_3:o(128,128,"mobilenetv1/conv_3"),conv_4:o(128,256,"mobilenetv1/conv_4"),conv_5:o(256,256,"mobilenetv1/conv_5"),conv_6:o(256,512,"mobilenetv1/conv_6"),conv_7:o(512,512,"mobilenetv1/conv_7"),conv_8:o(512,512,"mobilenetv1/conv_8"),conv_9:o(512,512,"mobilenetv1/conv_9"),conv_10:o(512,512,"mobilenetv1/conv_10"),conv_11:o(512,512,"mobilenetv1/conv_11"),conv_12:o(512,1024,"mobilenetv1/conv_12"),conv_13:o(1024,1024,"mobilenetv1/conv_13")}},extractPredictionLayerParams:function(){return{conv_0:r(1024,256,1,"prediction_layer/conv_0"),conv_1:r(256,512,3,"prediction_layer/conv_1"),conv_2:r(512,128,1,"prediction_layer/conv_2"),conv_3:r(128,256,3,"prediction_layer/conv_3"),conv_4:r(256,128,1,"prediction_layer/conv_4"),conv_5:r(128,256,3,"prediction_layer/conv_5"),conv_6:r(256,64,1,"prediction_layer/conv_6"),conv_7:r(64,128,3,"prediction_layer/conv_7"),box_predictor_0:{box_encoding_predictor:n(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),class_predictor:n(512,9,1,"prediction_layer/box_predictor_0/class_predictor")},box_predictor_1:{box_encoding_predictor:n(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),class_predictor:n(1024,18,1,"prediction_layer/box_predictor_1/class_predictor")},box_predictor_2:{box_encoding_predictor:n(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),class_predictor:n(512,18,1,"prediction_layer/box_predictor_2/class_predictor")},box_predictor_3:{box_encoding_predictor:n(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),class_predictor:n(256,18,1,"prediction_layer/box_predictor_3/class_predictor")},box_predictor_4:{box_encoding_predictor:n(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),class_predictor:n(256,18,1,"prediction_layer/box_predictor_4/class_predictor")},box_predictor_5:{box_encoding_predictor:n(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),class_predictor:n(128,18,1,"prediction_layer/box_predictor_5/class_predictor")}}}}}(r,t),i=a.extractMobilenetV1Params,u=a.extractPredictionLayerParams,s=i(),c=u(),l={extra_dim:ke.J(r(20472),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),0!==o().length)throw new Error("weights remaing after extract: "+o().length);return{params:{mobilenetv1:s,prediction_layer:c,output_layer:l},paramMappings:t}}(e)},t}(Nt);!function(e){Object(Se.c)((function(){return null!==e&&e.apply(this,arguments)||this}),e)}(Pn);var Mn,Fn=[new Le(.738768,.874946),new Le(2.42204,2.65704),new Le(4.30971,7.04493),new Le(10.246,4.59428),new Le(12.6868,11.8741)],Bn=[new Le(1.603231,2.094468),new Le(6.041143,7.080126),new Le(2.882459,3.518061),new Le(4.266906,5.178857),new Le(9.041765,10.66308)],Ln=[117.001,114.697,97.404],Wn=function(e){return"number"==typeof e};function Un(e){return ke.L((function(){var t=ke.t(e,ke.y(.10000000149011612));return ke.c(ke.w(ke.F(e,t)),t)}))}function zn(e,t){return ke.L((function(){var n=ke.v(e,[[0,0],[1,1],[1,1],[0,0]]);return n=ke.i(n,t.conv.filters,[1,1],"valid"),n=ke.F(n,t.bn.sub),n=ke.t(n,t.bn.truediv),Un(n=ke.c(n,t.conv.bias))}))}function jn(e,t){return ke.L((function(){var n=ke.v(e,[[0,0],[1,1],[1,1],[0,0]]);return n=ke.z(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),Un(n=ke.c(n,t.bias))}))}!function(e){e[e.XS=224]="XS",e[e.SM=320]="SM",e[e.MD=416]="MD",e[e.LG=608]="LG"}(Mn||(Mn={}));var Vn=function(){function e(e){var t=void 0===e?{}:e,n=t.inputSize,r=t.scoreThreshold;if(this._name="TinyYolov2Options",this._inputSize=n||416,this._scoreThreshold=r||.5,"number"!=typeof this._inputSize||this._inputSize%32!=0)throw new Error(this._name+" - expected inputSize to be a number divisible by 32");if("number"!=typeof this._scoreThreshold||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(this._name+" - expected scoreThreshold to be a number between 0 and 1")}return Object.defineProperty(e.prototype,"inputSize",{get:function(){return this._inputSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scoreThreshold",{get:function(){return this._scoreThreshold},enumerable:!0,configurable:!0}),e}(),Hn=function(e){function t(t){var n=e.call(this,"TinyYolov2")||this;return function(e){if(!e)throw new Error("invalid config: "+e);if("boolean"!=typeof e.withSeparableConvs)throw new Error("config.withSeparableConvs has to be a boolean, have: "+e.withSeparableConvs);if(!Wn(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error("config.iouThreshold has to be a number between [0, 1], have: "+e.iouThreshold);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every((function(e){return"string"==typeof e})))throw new Error("config.classes has to be an array class names: string[], have: "+JSON.stringify(e.classes));if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map((function(e){return e||{}})).every((function(e){return Wn(e.x)&&Wn(e.y)})))throw new Error("config.anchors has to be an array of { x: number, y: number }, have: "+JSON.stringify(e.anchors));if(e.meanRgb&&(!Array.isArray(e.meanRgb)||3!==e.meanRgb.length||!e.meanRgb.every(Wn)))throw new Error("config.meanRgb has to be an array of shape [number, number, number], have: "+JSON.stringify(e.meanRgb))}(t),n._config=t,n}return Object(Se.c)(t,e),Object.defineProperty(t.prototype,"config",{get:function(){return this._config},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"withClassScores",{get:function(){return this.config.withClassScores||this.config.classes.length>1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"boxEncodingSize",{get:function(){return 5+(this.withClassScores?this.config.classes.length:0)},enumerable:!0,configurable:!0}),t.prototype.runTinyYolov2=function(e,t){var n=zn(e,t.conv0);return n=zn(n=ke.s(n,[2,2],[2,2],"same"),t.conv1),n=zn(n=ke.s(n,[2,2],[2,2],"same"),t.conv2),n=zn(n=ke.s(n,[2,2],[2,2],"same"),t.conv3),n=zn(n=ke.s(n,[2,2],[2,2],"same"),t.conv4),n=zn(n=ke.s(n,[2,2],[2,2],"same"),t.conv5),n=zn(n=ke.s(n,[2,2],[1,1],"same"),t.conv6),Bt(n=zn(n,t.conv7),t.conv8,"valid",!1)},t.prototype.runMobilenet=function(e,t){var n=this.config.isFirstLayerConv2d?Un(Bt(e,t.conv0,"valid",!1)):jn(e,t.conv0);return n=jn(n=ke.s(n,[2,2],[2,2],"same"),t.conv1),n=jn(n=ke.s(n,[2,2],[2,2],"same"),t.conv2),n=jn(n=ke.s(n,[2,2],[2,2],"same"),t.conv3),n=jn(n=ke.s(n,[2,2],[2,2],"same"),t.conv4),n=jn(n=ke.s(n,[2,2],[2,2],"same"),t.conv5),n=ke.s(n,[2,2],[1,1],"same"),n=t.conv6?jn(n,t.conv6):n,Bt(n=t.conv7?jn(n,t.conv7):n,t.conv8,"valid",!1)},t.prototype.forwardInput=function(e,t){var n=this,r=this.params;if(!r)throw new Error("TinyYolov2 - load model before inference");return ke.L((function(){var o=e.toBatchTensor(t,!1).toFloat();return o=(o=n.config.meanRgb?Ge(o,n.config.meanRgb):o).div(ke.y(256)),n.config.withSeparableConvs?n.runMobilenet(o,r):n.runTinyYolov2(o,r)}))},t.prototype.forward=function(e,t){return Object(Se.b)(this,void 0,void 0,(function(){var n;return Object(Se.d)(this,(function(r){switch(r.label){case 0:return n=this.forwardInput,[4,St(e)];case 1:return[4,n.apply(this,[r.sent(),t])];case 2:return[2,r.sent()]}}))}))},t.prototype.detect=function(e,t){return void 0===t&&(t={}),Object(Se.b)(this,void 0,void 0,(function(){var n,r,o,a,i,u,s,c,l,f,d,p,h,v=this;return Object(Se.d)(this,(function(m){switch(m.label){case 0:return n=new Vn(t),r=n.inputSize,o=n.scoreThreshold,[4,St(e)];case 1:return a=m.sent(),[4,this.forwardInput(a,r)];case 2:return i=m.sent(),u=ke.L((function(){return ke.O(i)[0].expandDims()})),s={width:a.getInputWidth(0),height:a.getInputHeight(0)},[4,this.extractBoxes(u,a.getReshapedInputDimensions(0),o)];case 3:return c=m.sent(),i.dispose(),u.dispose(),l=c.map((function(e){return e.box})),f=c.map((function(e){return e.score})),d=c.map((function(e){return e.classScore})),p=c.map((function(e){return v.config.classes[e.label]})),h=He(l.map((function(e){return e.rescale(r)})),f,this.config.iouThreshold,!0),[2,h.map((function(e){return new ze(f[e],d[e],p[e],l[e],s)}))]}}))}))},t.prototype.getDefaultModelName=function(){return""},t.prototype.extractParamsFromWeigthMap=function(e){return function(e,t){var n,r=[],o=function(e,t){var n=Ht(e,t);function r(e){return{filters:n(e+"/filters",4),bias:n(e+"/bias",1)}}return{extractConvParams:r,extractConvWithBatchNormParams:function(e){return{conv:r(e+"/conv"),bn:function(e){return{sub:n(e+"/sub",1),truediv:n(e+"/truediv",1)}}(e+"/bn")}},extractSeparableConvParams:Vt(n)}}(e,r),a=o.extractConvParams,i=o.extractConvWithBatchNormParams,u=o.extractSeparableConvParams;if(t.withSeparableConvs){var s=t.filterSizes&&t.filterSizes.length||9;n={conv0:t.isFirstLayerConv2d?a("conv0"):u("conv0"),conv1:u("conv1"),conv2:u("conv2"),conv3:u("conv3"),conv4:u("conv4"),conv5:u("conv5"),conv6:s>7?u("conv6"):void 0,conv7:s>8?u("conv7"):void 0,conv8:a("conv8")}}else n={conv0:i("conv0"),conv1:i("conv1"),conv2:i("conv2"),conv3:i("conv3"),conv4:i("conv4"),conv5:i("conv5"),conv6:i("conv6"),conv7:i("conv7"),conv8:a("conv8")};return Lt(e,r),{params:n,paramMappings:r}}(e,this.config)},t.prototype.extractParams=function(e){var n=this.config.filterSizes||t.DEFAULT_FILTER_SIZES,r=n?n.length:void 0;if(7!==r&&8!==r&&9!==r)throw new Error("TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found "+r+" filterSizes in config");return function(e,t,n,r){var o,a=Gt(e),i=a.extractWeights,u=a.getRemainingWeights,s=[],c=function(e,t){var n=Wt(e,t),r=jt(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:function(r,o,a){return{conv:n(r,o,3,a+"/conv"),bn:function(n,r){var o=ke.H(e(n)),a=ke.H(e(n));return t.push({paramPath:r+"/sub"},{paramPath:r+"/truediv"}),{sub:o,truediv:a}}(o,a+"/bn")}},extractSeparableConvParams:r}}(i,s),l=c.extractConvParams,f=c.extractConvWithBatchNormParams,d=c.extractSeparableConvParams;if(t.withSeparableConvs){var p=r[0],h=r[1],v=r[2],m=r[3],g=r[4],y=r[5],b=r[6],x=r[7],w=r[8];o={conv0:t.isFirstLayerConv2d?l(p,h,3,"conv0"):d(p,h,"conv0"),conv1:d(h,v,"conv1"),conv2:d(v,m,"conv2"),conv3:d(m,g,"conv3"),conv4:d(g,y,"conv4"),conv5:d(y,b,"conv5"),conv6:x?d(b,x,"conv6"):void 0,conv7:w?d(x,w,"conv7"):void 0,conv8:l(w||x||b,5*n,1,"conv8")}}else p=r[0],h=r[1],v=r[2],m=r[3],g=r[4],y=r[5],b=r[6],x=r[7],w=r[8],o={conv0:f(p,h,"conv0"),conv1:f(h,v,"conv1"),conv2:f(v,m,"conv2"),conv3:f(m,g,"conv3"),conv4:f(g,y,"conv4"),conv5:f(y,b,"conv5"),conv6:f(b,x,"conv6"),conv7:f(x,w,"conv7"),conv8:l(w,5*n,1,"conv8")};if(0!==u().length)throw new Error("weights remaing after extract: "+u().length);return{params:o,paramMappings:s}}(e,this.config,this.boxEncodingSize,n)},t.prototype.extractBoxes=function(e,t,n){return Object(Se.b)(this,void 0,void 0,(function(){var r,o,a,i,u,s,c,l,f,d,p,h,v,m,g,y,b,x,w,E,C,k,_,S,R,T,I,O,A,D=this;return Object(Se.d)(this,(function(N){switch(N.label){case 0:return r=t.width,o=t.height,a=Math.max(r,o),i=a/r,u=a/o,s=e.shape[1],c=this.config.anchors.length,l=ke.L((function(){var t=e.reshape([s,s,c,D.boxEncodingSize]);return[t.slice([0,0,0,0],[s,s,c,4]),t.slice([0,0,0,4],[s,s,c,1]),D.withClassScores?ke.D(t.slice([0,0,0,5],[s,s,c,D.config.classes.length]),3):ke.y(0)]})),f=l[0],d=l[1],p=l[2],h=[],[4,d.array()];case 1:return v=N.sent(),[4,f.array()];case 2:m=N.sent(),g=0,N.label=3;case 3:if(!(g<s))return[3,12];y=0,N.label=4;case 4:if(!(y<s))return[3,11];b=0,N.label=5;case 5:return b<c?(x=qe(v[g][y][b][0]),!n||x>n?(w=(y+qe(m[g][y][b][0]))/s*i,E=(g+qe(m[g][y][b][1]))/s*u,C=Math.exp(m[g][y][b][2])*this.config.anchors[b].x/s*i,k=Math.exp(m[g][y][b][3])*this.config.anchors[b].y/s*u,_=w-C/2,S=E-k/2,R={row:g,col:y,anchor:b},this.withClassScores?[4,this.extractPredictedClass(p,R)]:[3,7]):[3,9]):[3,10];case 6:return A=N.sent(),[3,8];case 7:A={classScore:1,label:0},N.label=8;case 8:I=(T=A).classScore,O=T.label,h.push(Object(Se.a)({box:new Ue(_,S,_+C,S+k),score:x,classScore:x*I,label:O},R)),N.label=9;case 9:return b++,[3,5];case 10:return y++,[3,4];case 11:return g++,[3,3];case 12:return f.dispose(),d.dispose(),p.dispose(),[2,h]}}))}))},t.prototype.extractPredictedClass=function(e,t){return Object(Se.b)(this,void 0,void 0,(function(){var n,r,o,a;return Object(Se.d)(this,(function(i){switch(i.label){case 0:return n=t.row,r=t.col,o=t.anchor,[4,e.array()];case 1:return a=i.sent(),[2,Array(this.config.classes.length).fill(0).map((function(e,t){return a[n][r][o][t]})).map((function(e,t){return{classScore:e,label:t}})).reduce((function(e,t){return e.classScore>t.classScore?e:t}))]}}))}))},t.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024],t}(Nt),Gn=function(e){function t(t){void 0===t&&(t=!0);var n=Object.assign({},{withSeparableConvs:t,iouThreshold:.4,classes:["face"]},t?{anchors:Bn,meanRgb:Ln}:{anchors:Fn,withClassScores:!0});return e.call(this,n)||this}return Object(Se.c)(t,e),Object.defineProperty(t.prototype,"withSeparableConvs",{get:function(){return this.config.withSeparableConvs},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"anchors",{get:function(){return this.config.anchors},enumerable:!0,configurable:!0}),t.prototype.locateFaces=function(e,t){return Object(Se.b)(this,void 0,void 0,(function(){return Object(Se.d)(this,(function(n){switch(n.label){case 0:return[4,this.detect(e,t)];case 1:return[2,n.sent().map((function(e){return new je(e.score,e.relativeBox,{width:e.imageWidth,height:e.imageHeight})}))]}}))}))},t.prototype.getDefaultModelName=function(){return this.withSeparableConvs?"tiny_yolov2_separable_conv_model":"tiny_yolov2_model"},t.prototype.extractParamsFromWeigthMap=function(t){return e.prototype.extractParamsFromWeigthMap.call(this,t)},t}(Hn),qn=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._name="TinyFaceDetectorOptions",t}return Object(Se.c)(t,e),t}(Vn),Kn=function(){function e(){}return e.prototype.then=function(e){return Object(Se.b)(this,void 0,void 0,(function(){var t;return Object(Se.d)(this,(function(n){switch(n.label){case 0:return t=e,[4,this.run()];case 1:return[2,t.apply(void 0,[n.sent()])]}}))}))},e.prototype.run=function(){return Object(Se.b)(this,void 0,void 0,(function(){return Object(Se.d)(this,(function(e){throw new Error("ComposableTask - run is not implemented")}))}))},e}();function Xn(e,t,n,r,o){return void 0===o&&(o=function(e){return e.alignedRect}),Object(Se.b)(this,void 0,void 0,(function(){var a,i,u,s,c;return Object(Se.d)(this,(function(l){switch(l.label){case 0:return a=e.map((function(e){return on(e)?o(e):e.detection})),(u=r)?[3,5]:t instanceof ke.a?[4,Tt(t,a)]:[3,2];case 1:return s=l.sent(),[3,4];case 2:return[4,Rt(t,a)];case 3:s=l.sent(),l.label=4;case 4:u=s,l.label=5;case 5:return[4,n(i=u)];case 6:return c=l.sent(),i.forEach((function(e){return e instanceof ke.a&&e.dispose()})),[2,c]}}))}))}function $n(e,t,n,r,o){return Object(Se.b)(this,void 0,void 0,(function(){var a=this;return Object(Se.d)(this,(function(i){return[2,Xn([e],t,(function(e){return Object(Se.b)(a,void 0,void 0,(function(){return Object(Se.d)(this,(function(t){return[2,n(e[0])]}))}))}),r,o)]}))}))}function Yn(e,t){var n=t[0],r=t[1];return{height:Math.floor(n*e),width:Math.floor(r*e)}}var Qn=function(e){function t(t,n,r,o){return e.call(this,{left:t,top:n,right:r,bottom:o},!0)||this}return Object(Se.c)(t,e),t}(We);function Jn(e){return ke.L((function(){return ke.t(ke.F(e,ke.y(127.5)),ke.y(.0078125))}))}function Zn(e,t){return ke.L((function(){return ke.c(ke.w(e),ke.t(t,ke.u(ke.w(ke.u(e)))))}))}function er(e,t,n){return void 0===n&&(n=!1),ke.L((function(){var r=Bt(e,t.conv1,"valid");return r=Zn(r,t.prelu1_alpha),r=Zn(r=Bt(r=ke.s(r,n?[2,2]:[3,3],[2,2],"same"),t.conv2,"valid"),t.prelu2_alpha),Zn(r=Bt(r=n?r:ke.s(r,[3,3],[2,2],"valid"),t.conv3,"valid"),t.prelu3_alpha)}))}function tr(e,t,n,r,o){o.stage1=[];var a=t.map((function(t){return ke.L((function(){var n={scale:t},o=function(e,t){return ke.L((function(){var n=Yn(t,e.shape.slice(1)),r=n.height,o=n.width,a=Jn(ke.o.resizeBilinear(e,[r,o]));return ke.N(a,[0,2,1,3])}))}(e,t),a=Date.now(),i=function(e,t){return ke.L((function(){var n=er(e,t,!0),r=Bt(n,t.conv4_1,"valid"),o=ke.m(ke.r(r,3),3);return{prob:ke.D(ke.F(r,o),3),regions:Bt(n,t.conv4_2,"valid")}}))}(o,r),u=i.prob,s=i.regions;return n.pnet=Date.now()-a,{scoresTensor:ke.O(ke.O(u,3)[1])[0],regionsTensor:ke.O(s)[0],scale:t,statsForScale:n}}))})).map((function(e){var t=e.scoresTensor,r=e.regionsTensor,a=e.scale,i=e.statsForScale,u=function(e,t,n,r){for(var o=[],a=e.arraySync(),i=0;i<e.shape[0];i++)for(var u=0;u<e.shape[1];u++)a[i][u]>=r&&o.push(new Le(u,i));return o.map((function(e){var r=new Ue(Math.round((2*e.y+1)/n),Math.round((2*e.x+1)/n),Math.round((2*e.y+12)/n),Math.round((2*e.x+12)/n)),o=a[e.y][e.x],i=t.arraySync();return{cell:r,score:o,region:new Qn(i[e.y][e.x][0],i[e.y][e.x][1],i[e.y][e.x][2],i[e.y][e.x][3])}}))}(t,r,a,n);if(t.dispose(),r.dispose(),!u.length)return o.stage1.push(i),[];var s=Date.now(),c=He(u.map((function(e){return e.cell})),u.map((function(e){return e.score})),.5);return i.nms=Date.now()-s,i.numBoxes=c.length,o.stage1.push(i),c.map((function(e){return u[e]}))})).reduce((function(e,t){return e.concat(t)}),[]),i=[],u=[];if(a.length>0){var s=Date.now(),c=He(a.map((function(e){return e.cell})),a.map((function(e){return e.score})),.7);o.stage1_nms=Date.now()-s,u=c.map((function(e){return a[e].score})),i=c.map((function(e){return a[e]})).map((function(e){var t=e.cell,n=e.region;return new Ue(t.left+n.left*t.width,t.top+n.top*t.height,t.right+n.right*t.width,t.bottom+n.bottom*t.height).toSquare().round()}))}return{boxes:i,scores:u}}function nr(e,t,n){var r=n.width,o=n.height;return Object(Se.b)(this,void 0,void 0,(function(){var n,a,i,u=this;return Object(Se.d)(this,(function(s){switch(s.label){case 0:return n=pt(e),[4,Promise.all(t.map((function(t){return Object(Se.b)(u,void 0,void 0,(function(){var r,o,a,i,u,s,c,l;return Object(Se.d)(this,(function(f){return r=t.padAtBorders(e.height,e.width),o=r.y,a=r.ey,i=r.x,u=r.ex,s=i-1,c=o-1,l=n.getImageData(s,c,u-s,a-c),[2,ft.isNodejs()?Et(l):createImageBitmap(l)]}))}))})))];case 1:return a=s.sent(),i=[],a.forEach((function(e){var t=pt(wt({width:r,height:o}));t.drawImage(e,0,0,r,o);for(var n=t.getImageData(0,0,r,o).data,a=[],u=0;u<n.length;u+=4)a.push(n[u+2]),a.push(n[u+1]),a.push(n[u]);i.push(a)})),[2,i.map((function(e){return ke.L((function(){return Jn(ke.N(ke.K(e,[1,r,o,3]),[0,2,1,3]).toFloat())}))}))]}}))}))}function rr(e,t,n,r,o){return Object(Se.b)(this,void 0,void 0,(function(){var a,i,u,s,c,l,f,d,p,h,v,m,g,y;return Object(Se.d)(this,(function(b){switch(b.label){case 0:return a=Date.now(),[4,nr(e,t,{width:24,height:24})];case 1:return i=b.sent(),o.stage2_extractImagePatches=Date.now()-a,a=Date.now(),u=i.map((function(e){var t=function(e,t){return ke.L((function(){var n=er(e,t),r=Zn(Yt(ke.x(n,[n.shape[0],t.fc1.weights.shape[0]]),t.fc1),t.prelu4_alpha),o=Yt(r,t.fc2_1),a=ke.m(ke.r(o,1),1),i=ke.D(ke.F(o,a),1),u=Yt(r,t.fc2_2);return{scores:ke.O(i,1)[1],regions:u}}))}(e,r);return e.dispose(),t})),o.stage2_rnet=Date.now()-a,s=u.length>1?ke.h(u.map((function(e){return e.scores}))):u[0].scores,f=(l=Array).from,[4,s.data()];case 2:return c=f.apply(l,[b.sent()]),s.dispose(),d=c.map((function(e,t){return{score:e,idx:t}})).filter((function(e){return e.score>n})).map((function(e){return e.idx})),p=d.map((function(e){return t[e]})),h=d.map((function(e){return c[e]})),v=[],m=[],p.length>0&&(a=Date.now(),g=He(p,h,.7),o.stage2_nms=Date.now()-a,y=g.map((function(e){var t=u[d[e]].regions.arraySync();return new Qn(t[0][0],t[0][1],t[0][2],t[0][3])})),m=g.map((function(e){return h[e]})),v=g.map((function(e,t){return p[e].calibrate(y[t])}))),u.forEach((function(e){e.regions.dispose(),e.scores.dispose()})),[2,{boxes:v,scores:m}]}}))}))}function or(e,t,n,r,o){return Object(Se.b)(this,void 0,void 0,(function(){var a,i,u,s,c,l,f,d,p,h,v,m,g,y,b;return Object(Se.d)(this,(function(x){switch(x.label){case 0:return a=Date.now(),[4,nr(e,t,{width:48,height:48})];case 1:return i=x.sent(),o.stage3_extractImagePatches=Date.now()-a,a=Date.now(),u=i.map((function(e){var t=function(e,t){return ke.L((function(){var n=er(e,t);n=Zn(n=Bt(n=ke.s(n,[2,2],[2,2],"same"),t.conv4,"valid"),t.prelu4_alpha);var r=Zn(Yt(ke.x(n,[n.shape[0],t.fc1.weights.shape[0]]),t.fc1),t.prelu5_alpha),o=Yt(r,t.fc2_1),a=ke.m(ke.r(o,1),1),i=ke.D(ke.F(o,a),1),u=Yt(r,t.fc2_2),s=Yt(r,t.fc2_3);return{scores:ke.O(i,1)[1],regions:u,points:s}}))}(e,r);return e.dispose(),t})),o.stage3_onet=Date.now()-a,s=u.length>1?ke.h(u.map((function(e){return e.scores}))):u[0].scores,f=(l=Array).from,[4,s.data()];case 2:return c=f.apply(l,[x.sent()]),s.dispose(),d=c.map((function(e,t){return{score:e,idx:t}})).filter((function(e){return e.score>n})).map((function(e){return e.idx})),p=d.map((function(e){var t=u[e].regions.arraySync();return new Qn(t[0][0],t[0][1],t[0][2],t[0][3])})),h=d.map((function(e,n){return t[e].calibrate(p[n])})),v=d.map((function(e){return c[e]})),m=[],g=[],y=[],h.length>0&&(a=Date.now(),b=He(h,v,.7,!1),o.stage3_nms=Date.now()-a,m=b.map((function(e){return h[e]})),g=b.map((function(e){return v[e]})),y=b.map((function(e,t){return Array(5).fill(0).map((function(n,r){var o=u[e].points.arraySync();return new Le(o[0][r]*(m[t].width+1)+m[t].left,o[0][r+5]*(m[t].height+1)+m[t].top)}))}))),u.forEach((function(e){e.regions.dispose(),e.scores.dispose(),e.points.dispose()})),[2,{boxes:m,scores:g,points:y}]}}))}))}var ar=function(e){function t(){return e.call(this,"Mtcnn")||this}return Object(Se.c)(t,e),t.prototype.load=function(t){return Object(Se.b)(this,void 0,void 0,(function(){return Object(Se.d)(this,(function(n){return[2,e.prototype.load.call(this,t)]}))}))},t.prototype.loadFromDisk=function(t){return Object(Se.b)(this,void 0,void 0,(function(){return Object(Se.d)(this,(function(n){return[2,e.prototype.loadFromDisk.call(this,t)]}))}))},t.prototype.forwardInput=function(e,t){return void 0===t&&(t={}),Object(Se.b)(this,void 0,void 0,(function(){var n,r,o,a,i,u,s,c,l,f,d,p,h,v,m,g,y,b,x,w,E;return Object(Se.d)(this,(function(C){switch(C.label){case 0:if(!(n=this.params))throw new Error("Mtcnn - load model before inference");if(!(r=e.canvases[0]))throw new Error("Mtcnn - inputCanvas is not defined, note that passing tensors into Mtcnn.forwardInput is not supported yet.");return o={},a=Date.now(),i=ke.L((function(){return e=ke.m(ke.f.fromPixels(r)).toFloat(),ke.L((function(){return ke.E(ke.O(e,3).reverse(),3)}));var e})),u=function(e){return i.dispose(),o.total=Date.now()-a,e},s=i.shape.slice(1),c=s[0],l=s[1],f=new In(t),d=f.minFaceSize,p=f.scaleFactor,h=f.maxNumScales,v=f.scoreThresholds,m=f.scaleSteps,g=(m||function(e,t,n){for(var r=n[0],o=n[1],a=12/e,i=[],u=Math.min(r,o)*a,s=0;u>=12;)i.push(a*Math.pow(t,s)),u*=t,s+=1;return i}(d,p,[c,l])).filter((function(e){var t=Yn(e,[c,l]);return Math.min(t.width,t.height)>12})).slice(0,h),o.scales=g,o.pyramid=g.map((function(e){return Yn(e,[c,l])})),y=Date.now(),[4,tr(i,g,v[0],n.pnet,o)];case 1:return b=C.sent(),o.total_stage1=Date.now()-y,b.boxes.length?(o.stage2_numInputBoxes=b.boxes.length,y=Date.now(),[4,rr(r,b.boxes,v[1],n.rnet,o)]):[2,u({results:[],stats:o})];case 2:return x=C.sent(),o.total_stage2=Date.now()-y,x.boxes.length?(o.stage3_numInputBoxes=x.boxes.length,y=Date.now(),[4,or(r,x.boxes,v[2],n.onet,o)]):[2,u({results:[],stats:o})];case 3:return w=C.sent(),o.total_stage3=Date.now()-y,E=w.boxes.map((function(e,t){return an(tt({},new je(w.scores[t],new Ke(e.left/l,e.top/c,e.width/l,e.height/c),{height:c,width:l})),new $e(w.points[t].map((function(t){return t.sub(new Le(e.left,e.top)).div(new Le(e.width,e.height))})),{width:e.width,height:e.height}))})),[2,u({results:E,stats:o})]}}))}))},t.prototype.forward=function(e,t){return void 0===t&&(t={}),Object(Se.b)(this,void 0,void 0,(function(){var n;return Object(Se.d)(this,(function(r){switch(r.label){case 0:return n=this.forwardInput,[4,St(e)];case 1:return[4,n.apply(this,[r.sent(),t])];case 2:return[2,r.sent().results]}}))}))},t.prototype.forwardWithStats=function(e,t){return void 0===t&&(t={}),Object(Se.b)(this,void 0,void 0,(function(){var n;return Object(Se.d)(this,(function(r){switch(r.label){case 0:return n=this.forwardInput,[4,St(e)];case 1:return[2,n.apply(this,[r.sent(),t])]}}))}))},t.prototype.getDefaultModelName=function(){return"mtcnn_model"},t.prototype.extractParamsFromWeigthMap=function(e){return function(e){var t=[],n=function(e,t){var n=Ht(e,t);function r(e){return{filters:n(e+"/weights",4,e+"/filters"),bias:n(e+"/bias",1)}}function o(e){return{weights:n(e+"/weights",2),bias:n(e+"/bias",1)}}function a(e){return n(e,1)}function i(e){return{conv1:r(e+"/conv1"),prelu1_alpha:a(e+"/prelu1_alpha"),conv2:r(e+"/conv2"),prelu2_alpha:a(e+"/prelu2_alpha"),conv3:r(e+"/conv3"),prelu3_alpha:a(e+"/prelu3_alpha")}}return{extractPNetParams:function(){var e=i("pnet"),t=r("pnet/conv4_1"),n=r("pnet/conv4_2");return Object(Se.a)(Object(Se.a)({},e),{conv4_1:t,conv4_2:n})},extractRNetParams:function(){var e=i("rnet"),t=o("rnet/fc1"),n=a("rnet/prelu4_alpha"),r=o("rnet/fc2_1"),u=o("rnet/fc2_2");return Object(Se.a)(Object(Se.a)({},e),{fc1:t,prelu4_alpha:n,fc2_1:r,fc2_2:u})},extractONetParams:function(){var e=i("onet"),t=r("onet/conv4"),n=a("onet/prelu4_alpha"),u=o("onet/fc1"),s=a("onet/prelu5_alpha"),c=o("onet/fc2_1"),l=o("onet/fc2_2"),f=o("onet/fc2_3");return Object(Se.a)(Object(Se.a)({},e),{conv4:t,prelu4_alpha:n,fc1:u,prelu5_alpha:s,fc2_1:c,fc2_2:l,fc2_3:f})}}}(e,t),r=n.extractPNetParams,o=n.extractRNetParams,a=n.extractONetParams,i=r(),u=o(),s=a();return Lt(e,t),{params:{pnet:i,rnet:u,onet:s},paramMappings:t}}(e)},t.prototype.extractParams=function(e){return function(e){var t=Gt(e),n=t.extractWeights,r=t.getRemainingWeights,o=[],a=function(e,t){var n=Wt(e,t),r=Ut(e,t);function o(n,r){var o=ke.H(e(n));return t.push({paramPath:r}),o}function a(e,t,r){return void 0===r&&(r=!1),{conv1:n(e[0],e[1],3,t+"/conv1"),prelu1_alpha:o(e[1],t+"/prelu1_alpha"),conv2:n(e[1],e[2],3,t+"/conv2"),prelu2_alpha:o(e[2],t+"/prelu2_alpha"),conv3:n(e[2],e[3],r?2:3,t+"/conv3"),prelu3_alpha:o(e[3],t+"/prelu3_alpha")}}return{extractPNetParams:function(){var e=a([3,10,16,32],"pnet"),t=n(32,2,1,"pnet/conv4_1"),r=n(32,4,1,"pnet/conv4_2");return Object(Se.a)(Object(Se.a)({},e),{conv4_1:t,conv4_2:r})},extractRNetParams:function(){var e=a([3,28,48,64],"rnet",!0),t=r(576,128,"rnet/fc1"),n=o(128,"rnet/prelu4_alpha"),i=r(128,2,"rnet/fc2_1"),u=r(128,4,"rnet/fc2_2");return Object(Se.a)(Object(Se.a)({},e),{fc1:t,prelu4_alpha:n,fc2_1:i,fc2_2:u})},extractONetParams:function(){var e=a([3,32,64,64],"onet"),t=n(64,128,2,"onet/conv4"),i=o(128,"onet/prelu4_alpha"),u=r(1152,256,"onet/fc1"),s=o(256,"onet/prelu5_alpha"),c=r(256,2,"onet/fc2_1"),l=r(256,4,"onet/fc2_2"),f=r(256,10,"onet/fc2_3");return Object(Se.a)(Object(Se.a)({},e),{conv4:t,prelu4_alpha:i,fc1:u,prelu5_alpha:s,fc2_1:c,fc2_2:l,fc2_3:f})}}}(n,o),i=a.extractPNetParams,u=a.extractRNetParams,s=a.extractONetParams,c=i(),l=u(),f=s();if(0!==r().length)throw new Error("weights remaing after extract: "+r().length);return{params:{pnet:c,rnet:l,onet:f},paramMappings:o}}(e)},t}(Nt),ir=[new Le(1.603231,2.094468),new Le(6.041143,7.080126),new Le(2.882459,3.518061),new Le(4.266906,5.178857),new Le(9.041765,10.66308)],ur=[117.001,114.697,97.404],sr=function(e){function t(){var t={withSeparableConvs:!0,iouThreshold:.4,classes:["face"],anchors:ir,meanRgb:ur,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};return e.call(this,t)||this}return Object(Se.c)(t,e),Object.defineProperty(t.prototype,"anchors",{get:function(){return this.config.anchors},enumerable:!0,configurable:!0}),t.prototype.locateFaces=function(e,t){return Object(Se.b)(this,void 0,void 0,(function(){return Object(Se.d)(this,(function(n){switch(n.label){case 0:return[4,this.detect(e,t)];case 1:return[2,n.sent().map((function(e){return new je(e.score,e.relativeBox,{width:e.imageWidth,height:e.imageHeight})}))]}}))}))},t.prototype.getDefaultModelName=function(){return"tiny_face_detector_model"},t.prototype.extractParamsFromWeigthMap=function(t){return e.prototype.extractParamsFromWeigthMap.call(this,t)},t}(Hn),cr={ssdMobilenetv1:new Pn,tinyFaceDetector:new sr,tinyYolov2:new Gn,mtcnn:new ar,faceLandmark68Net:new mn,faceLandmark68TinyNet:new yn,faceRecognitionNet:new _n,faceExpressionNet:new tn,ageGenderNet:new hn},lr=function(e){function t(t,n,r){var o=e.call(this)||this;return o.parentTask=t,o.input=n,o.extractedFaces=r,o}return Object(Se.c)(t,e),t}(Kn),fr=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Se.c)(t,e),t.prototype.run=function(){return Object(Se.b)(this,void 0,void 0,(function(){var e,t,n=this;return Object(Se.d)(this,(function(r){switch(r.label){case 0:return[4,this.parentTask];case 1:return[4,Xn(e=r.sent(),this.input,(function(e){return Object(Se.b)(n,void 0,void 0,(function(){return Object(Se.d)(this,(function(t){switch(t.label){case 0:return[4,Promise.all(e.map((function(e){return cr.faceExpressionNet.predictExpressions(e)})))];case 1:return[2,t.sent()]}}))}))}),this.extractedFaces)];case 2:return t=r.sent(),[2,e.map((function(e,n){return nn(e,t[n])}))]}}))}))},t.prototype.withAgeAndGender=function(){return new mr(this,this.input)},t}(lr),dr=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Se.c)(t,e),t.prototype.run=function(){return Object(Se.b)(this,void 0,void 0,(function(){var e,t;return Object(Se.d)(this,(function(n){switch(n.label){case 0:return[4,this.parentTask];case 1:return(e=n.sent())?[4,$n(e,this.input,(function(e){return cr.faceExpressionNet.predictExpressions(e)}),this.extractedFaces)]:[2];case 2:return t=n.sent(),[2,nn(e,t)]}}))}))},t.prototype.withAgeAndGender=function(){return new gr(this,this.input)},t}(lr),pr=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Se.c)(t,e),t.prototype.withAgeAndGender=function(){return new yr(this,this.input)},t.prototype.withFaceDescriptors=function(){return new wr(this,this.input)},t}(fr),hr=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Se.c)(t,e),t.prototype.withAgeAndGender=function(){return new br(this,this.input)},t.prototype.withFaceDescriptor=function(){return new Er(this,this.input)},t}(dr),vr=function(e){function t(t,n,r){var o=e.call(this)||this;return o.parentTask=t,o.input=n,o.extractedFaces=r,o}return Object(Se.c)(t,e),t}(Kn),mr=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Se.c)(t,e),t.prototype.run=function(){return Object(Se.b)(this,void 0,void 0,(function(){var e,t,n=this;return Object(Se.d)(this,(function(r){switch(r.label){case 0:return[4,this.parentTask];case 1:return[4,Xn(e=r.sent(),this.input,(function(e){return Object(Se.b)(n,void 0,void 0,(function(){return Object(Se.d)(this,(function(t){switch(t.label){case 0:return[4,Promise.all(e.map((function(e){return cr.ageGenderNet.predictAgeAndGender(e)})))];case 1:return[2,t.sent()]}}))}))}),this.extractedFaces)];case 2:return t=r.sent(),[2,e.map((function(e,n){var r=t[n],o=r.age;return Rn(Tn(e,r.gender,r.genderProbability),o)}))]}}))}))},t.prototype.withFaceExpressions=function(){return new fr(this,this.input)},t}(vr),gr=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Se.c)(t,e),t.prototype.run=function(){return Object(Se.b)(this,void 0,void 0,(function(){var e,t,n,r,o;return Object(Se.d)(this,(function(a){switch(a.label){case 0:return[4,this.parentTask];case 1:return(e=a.sent())?[4,$n(e,this.input,(function(e){return cr.ageGenderNet.predictAgeAndGender(e)}),this.extractedFaces)]:[2];case 2:return t=a.sent(),n=t.age,r=t.gender,o=t.genderProbability,[2,Rn(Tn(e,r,o),n)]}}))}))},t.prototype.withFaceExpressions=function(){return new dr(this,this.input)},t}(vr),yr=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Se.c)(t,e),t.prototype.withFaceExpressions=function(){return new pr(this,this.input)},t.prototype.withFaceDescriptors=function(){return new wr(this,this.input)},t}(mr),br=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Se.c)(t,e),t.prototype.withFaceExpressions=function(){return new hr(this,this.input)},t.prototype.withFaceDescriptor=function(){return new Er(this,this.input)},t}(gr),xr=function(e){function t(t,n){var r=e.call(this)||this;return r.parentTask=t,r.input=n,r}return Object(Se.c)(t,e),t}(Kn),wr=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Se.c)(t,e),t.prototype.run=function(){return Object(Se.b)(this,void 0,void 0,(function(){var e;return Object(Se.d)(this,(function(t){switch(t.label){case 0:return[4,this.parentTask];case 1:return[4,Xn(e=t.sent(),this.input,(function(e){return Promise.all(e.map((function(e){return cr.faceRecognitionNet.computeFaceDescriptor(e)})))}),null,(function(e){return e.landmarks.align(null,{useDlibAlignment:!0})}))];case 2:return[2,t.sent().map((function(t,n){return Sn(e[n],t)}))]}}))}))},t.prototype.withFaceExpressions=function(){return new pr(this,this.input)},t.prototype.withAgeAndGender=function(){return new yr(this,this.input)},t}(xr),Er=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Se.c)(t,e),t.prototype.run=function(){return Object(Se.b)(this,void 0,void 0,(function(){var e,t;return Object(Se.d)(this,(function(n){switch(n.label){case 0:return[4,this.parentTask];case 1:return(e=n.sent())?[4,$n(e,this.input,(function(e){return cr.faceRecognitionNet.computeFaceDescriptor(e)}),null,(function(e){return e.landmarks.align(null,{useDlibAlignment:!0})}))]:[2];case 2:return t=n.sent(),[2,Sn(e,t)]}}))}))},t.prototype.withFaceExpressions=function(){return new hr(this,this.input)},t.prototype.withAgeAndGender=function(){return new br(this,this.input)},t}(xr),Cr=function(e){function t(t,n,r){var o=e.call(this)||this;return o.parentTask=t,o.input=n,o.useTinyLandmarkNet=r,o}return Object(Se.c)(t,e),Object.defineProperty(t.prototype,"landmarkNet",{get:function(){return this.useTinyLandmarkNet?cr.faceLandmark68TinyNet:cr.faceLandmark68Net},enumerable:!0,configurable:!0}),t}(Kn),kr=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Se.c)(t,e),t.prototype.run=function(){return Object(Se.b)(this,void 0,void 0,(function(){var e,t,n,r,o,a=this;return Object(Se.d)(this,(function(i){switch(i.label){case 0:return[4,this.parentTask];case 1:return e=i.sent(),t=e.map((function(e){return e.detection})),this.input instanceof ke.a?[4,Tt(this.input,t)]:[3,3];case 2:return r=i.sent(),[3,5];case 3:return[4,Rt(this.input,t)];case 4:r=i.sent(),i.label=5;case 5:return n=r,[4,Promise.all(n.map((function(e){return a.landmarkNet.detectLandmarks(e)})))];case 6:return o=i.sent(),n.forEach((function(e){return e instanceof ke.a&&e.dispose()})),[2,e.map((function(e,t){return an(e,o[t])}))]}}))}))},t.prototype.withFaceExpressions=function(){return new pr(this,this.input)},t.prototype.withAgeAndGender=function(){return new yr(this,this.input)},t.prototype.withFaceDescriptors=function(){return new wr(this,this.input)},t}(Cr),_r=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Se.c)(t,e),t.prototype.run=function(){return Object(Se.b)(this,void 0,void 0,(function(){var e,t,n,r,o;return Object(Se.d)(this,(function(a){switch(a.label){case 0:return[4,this.parentTask];case 1:return(e=a.sent())?(t=e.detection,this.input instanceof ke.a?[4,Tt(this.input,[t])]:[3,3]):[2];case 2:return r=a.sent(),[3,5];case 3:return[4,Rt(this.input,[t])];case 4:r=a.sent(),a.label=5;case 5:return n=r,[4,this.landmarkNet.detectLandmarks(n[0])];case 6:return o=a.sent(),n.forEach((function(e){return e instanceof ke.a&&e.dispose()})),[2,an(e,o)]}}))}))},t.prototype.withFaceExpressions=function(){return new hr(this,this.input)},t.prototype.withAgeAndGender=function(){return new br(this,this.input)},t.prototype.withFaceDescriptor=function(){return new Er(this,this.input)},t}(Cr),Sr=function(e){function t(t,n){void 0===n&&(n=new Nn);var r=e.call(this)||this;return r.input=t,r.options=n,r}return Object(Se.c)(t,e),t}(Kn),Rr=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Se.c)(t,e),t.prototype.run=function(){return Object(Se.b)(this,void 0,void 0,(function(){var e,t,n,r;return Object(Se.d)(this,(function(o){switch(o.label){case 0:return t=(e=this).input,(n=e.options)instanceof In?[4,cr.mtcnn.forward(t,n)]:[3,2];case 1:return[2,o.sent().map((function(e){return e.detection}))];case 2:if(!(r=n instanceof qn?function(e){return cr.tinyFaceDetector.locateFaces(e,n)}:n instanceof Nn?function(e){return cr.ssdMobilenetv1.locateFaces(e,n)}:n instanceof Vn?function(e){return cr.tinyYolov2.locateFaces(e,n)}:null))throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return[2,r(t)]}}))}))},t.prototype.runAndExtendWithFaceDetections=function(){var e=this;return new Promise((function(t){return Object(Se.b)(e,void 0,void 0,(function(){var e;return Object(Se.d)(this,(function(n){switch(n.label){case 0:return[4,this.run()];case 1:return e=n.sent(),[2,t(e.map((function(e){return tt({},e)})))]}}))}))}))},t.prototype.withFaceLandmarks=function(e){return void 0===e&&(e=!1),new kr(this.runAndExtendWithFaceDetections(),this.input,e)},t.prototype.withFaceExpressions=function(){return new fr(this.runAndExtendWithFaceDetections(),this.input)},t.prototype.withAgeAndGender=function(){return new mr(this.runAndExtendWithFaceDetections(),this.input)},t}(Sr);function Tr(e,t){return void 0===t&&(t=new Nn),new Rr(e,t)}!function(e){function t(){return null!==e&&e.apply(this,arguments)||this}Object(Se.c)(t,e),t.prototype.run=function(){return Object(Se.b)(this,void 0,void 0,(function(){var e,t;return Object(Se.d)(this,(function(n){switch(n.label){case 0:return[4,new Rr(this.input,this.options)];case 1:return e=n.sent(),t=e[0],e.forEach((function(e){e.score>t.score&&(t=e)})),[2,t]}}))}))},t.prototype.runAndExtendWithFaceDetection=function(){var e=this;return new Promise((function(t){return Object(Se.b)(e,void 0,void 0,(function(){var e;return Object(Se.d)(this,(function(n){switch(n.label){case 0:return[4,this.run()];case 1:return e=n.sent(),[2,t(e?tt({},e):void 0)]}}))}))}))},t.prototype.withFaceLandmarks=function(e){return void 0===e&&(e=!1),new _r(this.runAndExtendWithFaceDetection(),this.input,e)},t.prototype.withFaceExpressions=function(){return new dr(this.runAndExtendWithFaceDetection(),this.input)},t.prototype.withAgeAndGender=function(){return new gr(this.runAndExtendWithFaceDetection(),this.input)}}(Sr),function(){function e(e,t){void 0===t&&(t=.6),this._distanceThreshold=t;var n=Array.isArray(e)?e:[e];if(!n.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");var r=1,o=function(){return"person "+r++};this._labeledDescriptors=n.map((function(e){if(e instanceof Ze)return e;if(e instanceof Float32Array)return new Ze(o(),[e]);if(e.descriptor&&e.descriptor instanceof Float32Array)return new Ze(o(),[e.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor<any> | Float32Array | Array<LabeledFaceDescriptors | WithFaceDescriptor<any> | Float32Array>")}))}Object.defineProperty(e.prototype,"labeledDescriptors",{get:function(){return this._labeledDescriptors},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"distanceThreshold",{get:function(){return this._distanceThreshold},enumerable:!0,configurable:!0}),e.prototype.computeMeanDistance=function(e,t){return t.map((function(t){return function(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");var n=Array.from(e),r=Array.from(t);return Math.sqrt(n.map((function(e,t){return e-r[t]})).reduce((function(e,t){return e+Math.pow(t,2)}),0))}(t,e)})).reduce((function(e,t){return e+t}),0)/(t.length||1)},e.prototype.matchDescriptor=function(e){var t=this;return this.labeledDescriptors.map((function(n){var r=n.descriptors,o=n.label;return new Qe(o,t.computeMeanDistance(e,r))})).reduce((function(e,t){return e.distance<t.distance?e:t}))},e.prototype.findBestMatch=function(e){var t=this.matchDescriptor(e);return t.distance<this.distanceThreshold?t:new Qe("unknown",t.distance)},e.prototype.toJSON=function(){return{distanceThreshold:this.distanceThreshold,labeledDescriptors:this.labeledDescriptors.map((function(e){return e.toJSON()}))}},e.fromJSON=function(t){return new e(t.labeledDescriptors.map((function(e){return Ze.fromJSON(e)})),t.distanceThreshold)}}();const Ir=e=>{const t=.25*e.height,n=e.y-t>=0?e.y-t:0,r=.3*e.width,o=e.width-r,a=e.y-t>=0?e.height+t:e.height+e.y;return{x:e.x+r/2,y:n,width:o,height:a}},Or=(e,t)=>{const n=document.createElement("canvas");n.width=e.videoWidth,n.height=e.videoHeight;const r=n.getContext("2d");r.drawImage(e,0,0);const o=Ir(t);return r.getImageData(o.x,o.y,o.width,o.height)},Ar=(e,t)=>{let{count:n,mean:r,m2:o}=e;n++;const a=t-r;return r+=a/n,o+=a*(t-r),{count:n,mean:r,m2:o}},Dr=e=>{const{data:t}=e;let n={count:0,mean:0,m2:0};for(let r=0;r<t.length;r+=4)n=Ar(n,t[r]),n=Ar(n,t[r+1]),n=Ar(n,t[r+2]);return{mean:n.mean,variance:n.m2/n.count}},Nr=(e,t)=>{const{x:n,y:r,width:o,height:a}=e;return{x:t.width-o-n,y:r,width:o,height:a}},Pr=(e,t)=>{const{width:n,height:o}=e;(function e(t,n){var r=new Re(n.width,n.height),o=r.width,a=r.height;if(o<=0||a<=0)throw new Error("resizeResults - invalid dimensions: "+JSON.stringify({width:o,height:a}));if(Array.isArray(t))return t.map((function(t){return e(t,{width:o,height:a})}));if(on(t)){var i=t.detection.forSize(o,a),u=t.unshiftedLandmarks.forSize(i.box.width,i.box.height);return an(tt(t,i),u)}return et(t)?tt(t,t.detection.forSize(o,a)):t instanceof Xe||t instanceof je?t.forSize(o,a):t})(t,{width:n,height:o}).forEach((t=>{const a=Ir(t.box),i=Nr(t.box,{width:n,height:o}),u=Nr(a,{width:n,height:o}),s=new r.DrawBox(i),c=new r.DrawBox(u,{boxColor:"yellow"});s.draw(e),c.draw(e)}))};var Mr=n(22),Fr=n.n(Mr);const Br=Object(y.createRef)(),Lr=e=>{let{facesProperties:t,videoElement:n,debugMessages:r}=e;const{clientWidth:o,clientHeight:a}=n;return Object(y.useEffect)((()=>{const e=Br&&Br.current;e&&(e.width=o,e.height=a,Pr(e,t),((e,t)=>{const n=e.getContext("2d");n.font="15px Arial",n.fillStyle="purple",t.forEach(((e,t)=>{const r=20*(t+1)+30;n.fillText(e,10,r)}))})(e,r))})),b.a.createElement("canvas",{className:Fr.a.canvas,ref:Br})};Lr.defaultProps={videoElement:{}},Lr.propType={facesProperties:U.a.any.isRequired,debugMessages:U.a.array.isRequired,videoElement:U.a.instanceOf(Element).isRequired};var Wr,Ur,zr=Lr,jr=n(6),Vr=n.n(jr);function Hr(){return(Hr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var Gr=function(e){return y.createElement("svg",Hr({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"1em",height:"1em",viewBox:"0 0 28 28"},e),Wr||(Wr=y.createElement("defs",null,y.createElement("path",{id:"ico-camera_svg__a",d:"M3.5 8a.5.5 0 00-.5.5V21c0 .552.449 1 1 1h20a1 1 0 001-1V8.5a.5.5 0 00-.5-.5h-8.524l-.126-.855C15.713 6.207 14.918 5.5 14 5.5s-1.713.707-1.85 1.645L12.024 8H3.5zM24 24H4c-1.655 0-3-1.346-3-3V8.5C1 7.122 2.122 6 3.5 6h6.896C10.97 4.529 12.393 3.5 14 3.5s3.03 1.029 3.604 2.5H24.5C25.878 6 27 7.122 27 8.5V21c0 1.654-1.346 3-3 3zM6.5 10h-2a.5.5 0 000 1h2a.5.5 0 000-1zm7.5 1.5c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5zm0 9A5.506 5.506 0 018.5 15c0-3.033 2.467-5.5 5.5-5.5 3.032 0 5.5 2.467 5.5 5.5 0 3.032-2.468 5.5-5.5 5.5z"}))),Ur||(Ur=y.createElement("use",{fill:"#F0F",xlinkHref:"#ico-camera_svg__a",fillRule:"evenodd"})))};const qr={ALWAYS:"always",AUTO:"auto",NEVER:"never"},Kr=[3,2,1],Xr=e=>{let{action:t,countdownMode:n}=e;const r=Object(y.useRef)(),[o,a]=Object(y.useState)(Kr.length),i=()=>{clearInterval(r.current)},u=()=>{0===o?(i(),t()):a((e=>e-1))},s=()=>{r.current=setInterval(u,1e3)};Object(y.useEffect)((()=>((()=>{switch(n){case qr.AUTO:window.innerWidth>=628?s():t();break;case qr.ALWAYS:s();break;default:t()}})(),i)),[n,o]);const c=e=>o===e?Vr.a.activeCounter:Vr.a.inactiveCounter;return n===qr.NEVER?null:b.a.createElement("div",{className:Vr.a.container},Kr.map((e=>b.a.createElement("span",{key:e,className:c(e)},e))),b.a.createElement("span",{className:c(0)},b.a.createElement(Gr,{className:0===o?Vr.a.activeIcon:Vr.a.inactiveIcon})))};Xr.defaultProps={countdownMode:"never"},Xr.propTypes={action:U.a.func.isRequired,countdownMode:U.a.oneOf(Object.values(qr))};var $r=Xr,Yr=n(23),Qr=n.n(Yr),Jr=n(24),Zr=n.n(Jr);function eo(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const to={PNG:"png",JPEG:"jpeg"};class no extends y.Component{constructor(e){super(e),eo(this,"webcamRef",b.a.createRef()),eo(this,"handleVideoPlaying",(()=>{const{onVideoPlaying:e}=this.props;e();const{videoWidth:t,videoHeight:n}=this.webcamRef.current.video;this.setState({videoWidth:t,videoHeight:n})})),eo(this,"handleUserMedia",(()=>{this.webcamRef.current.video.addEventListener("playing",this.handleVideoPlaying)})),eo(this,"handleUserMediaError",(e=>{const{onError:t}=this.props,{name:n="",message:r=""}=e;[n,r].some((e=>e.toLowerCase().includes("constrain")))?t(o.OVERCONSTRAINED):t("NotAllowedError"!==n?o.GENERIC_CAMERA_ERROR:o.NO_CAMERA_PERMISSION)})),eo(this,"takePhoto",(()=>this.webcamRef.current.getScreenshot())),this.state={videoHeight:null,videoWidth:null}}componentWillUnmount(){this.webcamRef.current.video.srcObject=null,this.webcamRef.current.video.removeEventListener("playing",this.handleVideoPlaying)}render(){const{videoWidth:e,videoHeight:t}=this.state,{widthMinConstraint:n,widthIdealConstraint:r,format:o,quality:a}=this.props;return b.a.createElement(Qr.a,{ref:this.webcamRef,width:"100%",className:Zr.a.video,videoConstraints:{facingMode:"user",width:{min:n,ideal:r}},audio:!1,onUserMediaError:this.handleUserMediaError,onUserMedia:this.handleUserMedia,screenshotFormat:"image/"+o,screenshotQuality:a,minScreenshotWidth:e,minScreenshotHeight:t})}}no.defaultProps={widthMinConstraint:1024,widthIdealConstraint:1280,onError:()=>{}},no.propTypes={onVideoPlaying:U.a.func.isRequired,widthMinConstraint:U.a.number,widthIdealConstraint:U.a.number,format:U.a.oneOf(Object.values(to)),onError:U.a.func,quality:U.a.oneOf(Object.values(g))};var ro=no;navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia;const oo={DETECTIONS_COUNT:0},ao="AVERAGE_DETECTION_DURATION",io="DETECTIONS_COUNT",uo="FACES_COUNT",so="FACE_SCORE",co="BOX_SIZE",lo="RELATIVE_BOX",fo="CENTERING",po="IS_STABLE_INDEX",ho="BRIGHTNESS_DETECTION_DURATION",vo="BRIGHTNESS_VALUE",mo=[uo,so,co,lo,fo,po,ho,vo],go=e=>oo[e],yo=e=>{let{key:t,value:n}=e;oo[t]=n},bo=async e=>{const t=performance.now();return{result:await e(),duration:performance.now()-t}},xo=new qn({inputSize:320,scoreThreshold:.6}),wo={PORTRAIT:.65,LANDSCAPE:.6},Eo=e=>Math.round(100*e)/100,Co=(e,t)=>e?f:t?d:"";var ko=[e=>{let t="",n=!0;return e.length||(t=u,n=!1),{instructionCode:t,debugMessages:[{key:uo,value:e.length}],canContinueOtherChecks:n}},e=>{let t="";return e.length>1&&(t=s),{instructionCode:t,debugMessages:[]}},function(e){let{videoElement:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="",r=!0;const o=[];if(t){const a=performance.now(),i=Or(t,e[0].box),u=Dr(i),s=performance.now();o.push({key:ho,value:s-a}),o.push({key:vo,value:u.mean});const c=u.mean<=50,l=u.mean>=200;n=Co(c,l),r=""===n}return{instructionCode:n,debugMessages:o,canContinueOtherChecks:r}},e=>{const[{score:t}]=e;return{instructionCode:"",debugMessages:[{key:so,value:""+Eo(t)}]}},e=>{let t="";const[{imageWidth:n,imageHeight:r,box:o}]=e,a=o.x+o.width/2,i=o.y+o.height/2+-.15*o.height,s=n/2,c=r/2,l=.1*Math.min(n,r);(Math.abs(s-a)>l||Math.abs(c-i)>l)&&(t=u);const f=Eo(a/n),d=Eo(i/r);return{instructionCode:t,debugMessages:[{key:fo,value:`x = ${f}; y = ${d}`}]}},e=>{let t="";const[{box:n}]=e;return(n.width<200||n.height<200)&&(t=a),{instructionCode:t,debugMessages:[{key:co,value:`${Eo(n.height)} x ${Eo(n.width)}`}]}},function(e){let{isPortraitCamera:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="";const[{relativeBox:r}]=e,o=t?"width":"height",u=t?"PORTRAIT":"LANDSCAPE",s=wo[u],c=s+.08,l=s-.08;r[o]>c&&(n=i),r[o]<l&&(n=a);const f=Eo(r[o]),d=[{key:lo,value:`[${o}]: ${f}`}];return{instructionCode:n,debugMessages:d}}];const _o=(e,t)=>{const n=Math.max(...e),r=Math.min(...e);return Number((n-r).toFixed(2))>t},So=e=>[_o(e.map((e=>e.x)),.02),_o(e.map((e=>e.y)),.02),_o(e.map((e=>e.size)),.02)].some(Boolean);let Ro=[];const To=(e,t,n)=>{const r=e[0],o=So(Ro),a=Ro.length===t;(!n||o||a)&&(Ro=[]),r&&(Ro=[...Ro,r])},Io=(e,t,n)=>!!n||!(e||!t),Oo=(e,t)=>{let n="";return e||t||(n=c),n},Ao=e=>e?null:{key:po,value:Ro.length},Do=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{captureMethod:n,numberOfChecks:r,isCurrentFaceValid:o}=t;To(e,r,o);const a=So(Ro),i=Ro.length===r,u=n===h.MANUAL;return{isStable:Io(a,i,u),faceStableMessageCode:Oo(a,i),debugMessage:Ao(u)}};var No=n(15),Po=n.n(No);const Mo={[a]:b.a.createElement(B,{id:"move-closer-feedback-message"}),[i]:b.a.createElement(B,{id:"move-back-feedback-message"}),[u]:b.a.createElement(B,{id:"move-center-feedback-message"}),[s]:b.a.createElement(B,{id:"one-face-only-feedback-message"}),[c]:b.a.createElement(B,{id:"hold-still-feedback-message"}),CAMERA_LOADING:b.a.createElement(B,{id:"camera-loading-feedback-message"}),[l]:b.a.createElement(B,{id:"face-scan-loading-feedback-message"}),[d]:b.a.createElement(B,{id:"image-too-bright-feedback-message"}),[f]:b.a.createElement(B,{id:"image-too-dark-feedback-message"})},Fo=e=>{let{faceCaptureAssetsRootUrl:t,onSuccess:n,onError:r,showOverlay:a,widthIdealConstraint:i,widthMinConstraint:s,format:c,CustomButton:f,countdownMode:d,captureMethod:p,isDebug:m,imageType:x,qualityType:w}=e;const[E,C]=Object(y.useState)([]),[k,_]=Object(y.useState)([]),[S,R]=Object(y.useState)(!1),[T,I]=Object(y.useState)(!1),[O,A]=Object(y.useState)(!1),[D,N]=Object(y.useState)(Mo.CAMERA_LOADING),[P,M]=Object(y.useState)(!1),[F,B]=Object(y.useState)(!1),L=Object(y.useRef)(null),W=Object(y.useRef)(),U=Object(y.useRef)(),z=Object(y.useRef)(T);z.current=T;const j=!F,V=F?h.MANUAL:p,H=V===h.MANUAL&&!S,G=L.current&&L.current.webcamRef.current.video,q=m&&G,K=G&&G.videoHeight>G.videoWidth,X=g[w],$=e=>{N(Mo[e])},Y=async()=>{const e=await(async e=>{const{result:t,duration:n}=await bo((async()=>Tr(e,xo)));return(e=>{const t=(e=>{let{previousAverage:t=0,count:n=0,newValue:r}=e;return(t*n+r)/(n+1)})({previousAverage:go(ao),count:go(io),newValue:e});yo({key:ao,value:t}),oo[io]++})(n),t})(G),{isSingleFaceValid:t,isValid:n,messageCode:r}=((e,t)=>{mo.forEach((e=>{delete oo[e]}));const{isSingleFaceValid:n,singleFaceMessageCode:r}=function(){const e=[];for(let t=0;t<ko.length;t++){const n=ko[t],{instructionCode:r,debugMessages:o,canContinueOtherChecks:a=!0}=n(...arguments);if(r&&e.push(r),o.forEach((e=>{yo(e)})),!a)break}return{isSingleFaceValid:!e.length,singleFaceMessageCode:e.length?e[0]:""}}(e,t),{isStable:o,faceStableMessageCode:a}=function(){const e=Do(...arguments),{debugMessage:t}=e;return t&&yo(t),e}(e,{...t,isCurrentFaceValid:n});return{isSingleFaceValid:n,isValid:n&&o,messageCode:r||a}})(e,{isPortraitCamera:K,captureMethod:V,numberOfChecks:4,videoElement:G}),o=(e=>Object.entries(e).map((e=>{let[t,n]=e;return`${(e=>e.replace(/_/g," ").toLowerCase())(t)}: ${(e=>"number"==typeof e?Math.ceil(e):e)(n)}`})))(oo);return _(o),C(e),M(t),{isValid:n,messageCode:r,bbox:Array.isArray(e)&&e.length>0?e[0].box:{}}},Q=e=>{const t=L.current.takePhoto();x===v.ORIGINAL?K?($(""),n({image:t})):(async(e,t)=>{const n=document.createElement("canvas"),r=n.getContext("2d"),{relativeEdgeCropping:o,format:a,qualityValue:i}=t;return new Promise((t=>{const u=new Image;u.onload=function(){const e=Math.ceil(o*u.width);n.width=u.width-2*e,n.height=u.height,r.drawImage(u,e,0,n.width,n.height,0,0,n.width,n.height),t({croppedImg:n.toDataURL("image/"+a,i)})},u.src=e}))})(t,{relativeEdgeCropping:.12,format:c,qualityValue:X}).then((e=>{let{croppedImg:t}=e;$(""),n({image:t})})).catch(r):(async(e,t)=>{const n=document.createElement("canvas"),r=n.getContext("2d"),{bbox:o,relativeMarginCropping:a,format:i,qualityValue:u,isPortraitCamera:s}=t;return new Promise((t=>{const c=new Image;c.onload=function(){const{topLeftXCoord:e,topLeftYCoord:l,width:f,height:d}=((e,t,n)=>{const r=2*e,o=t.x-e*t.width<0?0:t.x-e*t.width,a=t.y-r*t.height<0?0:t.y-r*t.height;let i=0!==o?t.width+t.width*(2*e):t.width+t.x+t.width*e,u=0!==a?t.height+t.height*(e+r):t.height+t.y+t.height*e;return u=u+a>n.imageHeight?n.imageHeight-a:u,i=i+o>n.imageWidth?n.imageWidth-o:i,{topLeftXCoord:o,topLeftYCoord:a,width:i,height:u}})(a,o||((e,t)=>{const n=t?.45:.7,r=t?.25:.1;return{x:.5*e.width-n*e.height/2,y:r*e.height,height:n*e.height,width:n*e.height}})(c,s),{imageHeight:c.height,imageWidth:c.width});n.width=f,n.height=d,r.drawImage(c,e,l,f,d,0,0,f,d),t({croppedImg:n.toDataURL("image/"+i,u)})},c.src=e}))})(t,{bbox:e,relativeMarginCropping:.3,format:c,qualityValue:X,isPortraitCamera:K}).then((e=>{let{croppedImg:t}=e;$(""),n({image:t})})).catch(r)},J=async()=>{const e=j&&await(async e=>{try{const{duration:t}=await bo((async()=>cr.tinyFaceDetector.loadFromUri(e)));return(e=>{yo({key:"INIT_MODEL_DURATION",value:e})})(t),null}catch(t){return t}})(t);setTimeout((()=>{z.current||B(!0)}),5e3);const n=j&&!e&&await(async()=>{try{const{duration:e}=await bo((async()=>Tr(document.createElement("canvas"),xo)));return(e=>{yo({key:"INIT_DETECTION_DURATION",value:e})})(e),null}catch(e){return e}})();e||n?r(o.FACE_DETECTION_INIT_ERROR):(I(!0),$(u))};return Object(y.useEffect)((()=>{(async()=>{const e=await(async()=>navigator.mediaDevices?await new Promise((e=>{navigator.mediaDevices.enumerateDevices().then((t=>{const n=t.filter((e=>"videoinput"===e.kind));e(!!n.length)})).catch((t=>{e(!1)}))}))?void 0:o.NO_CAMERA:o.UNSUPPORTED_BROWSER)();e&&r(e)})(),J()}),[]),Object(y.useEffect)((()=>{if(O&&T&&V===h.AUTO){const e=async()=>{const{isValid:t,messageCode:n,bbox:r}=await Y();t?Q(r):($(n),W.current=setTimeout(e,200))};U.current=setTimeout(e,1e3)}return()=>(clearTimeout(U.current),void clearTimeout(W.current))}),[O,T,V]),b.a.createElement("div",{className:Po.a.moduleContainer,"data-qa":"face-capture"},b.a.createElement("div",{className:Po.a.cameraContainer},b.a.createElement(ro,{ref:L,widthIdealConstraint:i,widthMinConstraint:s,format:c,quality:X,onVideoPlaying:()=>{A(!0),$(T?u:l)},onError:r}),a&&b.a.createElement(ae,{isPortraitCamera:K,isSuccess:P}),D&&b.a.createElement(fe,{isPortraitCamera:K,message:D}),q&&b.a.createElement(zr,{facesProperties:E,debugMessages:k,videoElement:G})),S&&b.a.createElement($r,{action:async()=>{let e;if(R(!1),j){const{isValid:t,messageCode:n,bbox:r}=await Y();if(e=r,!t)return void $(n)}Q(e)},countdownMode:d}),H&&b.a.createElement(Ce,{CustomButton:f,onClick:()=>R(!0),disabled:!O||!T}))};Fo.defaultProps={faceCaptureAssetsRootUrl:"assets/face-capture/",isDebug:!1,captureMethod:h.MANUAL,onError:()=>{},showOverlay:!0,format:to.JPEG,countdownMode:qr.NEVER,imageType:v.ORIGINAL,qualityType:m.HIGH},Fo.propTypes={faceCaptureAssetsRootUrl:U.a.string,captureMethod:U.a.oneOf(Object.values(h)),onSuccess:U.a.func.isRequired,onError:U.a.func,showOverlay:U.a.bool,widthIdealConstraint:U.a.number,widthMinConstraint:U.a.number,format:U.a.oneOf(Object.values(to)),CustomButton:U.a.func,countdownMode:U.a.oneOf(Object.values(qr)),isDebug:U.a.bool,imageType:U.a.oneOf(Object.values(v)),qualityType:U.a.oneOf(Object.values(m))};var Bo=Fo,Lo=n(16),Wo=n.n(Lo),Uo=n(17),zo=n.n(Uo),jo=n(46),Vo=n.n(jo),Ho=n(47),Go=n.n(Ho),qo=n(18),Ko=n.n(qo),Xo=n(19),$o=n.n(Xo),Yo=function(e){return"string"==typeof e},Qo=function(e){return"function"==typeof e},Jo=new Map,Zo=new Map;function ea(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return function(r){if(Yo(r)&&(r=new Date(r)),n){var o=na(e,t),a=Zo.get(o);if(a)return a.format(r);var i=new Intl.DateTimeFormat(e,t);return Zo.set(o,i),i.format(r)}return new Intl.DateTimeFormat(e,t).format(r)}}function ta(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return function(r){if(n){var o=na(e,t),a=Jo.get(o);if(a)return a.format(r);var i=new Intl.NumberFormat(e,t);return Jo.set(o,i),i.format(r)}return new Intl.NumberFormat(e,t).format(r)}}function na(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Array.isArray(e)?e.sort().join("-"):e;return"".concat(n,"-").concat(JSON.stringify(t))}Object.freeze({__proto__:null,date:ea,number:ta});var ra=/\\u[a-fA-F0-9]{4}|\\x[a-fA-F0-9]{2}/g;function oa(e){var t=e.locale,n=e.locales,r=e.values,o=e.formats,a=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{plurals:void 0},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};t=t||e;var o=n.plurals,a=function(e){return Yo(e)?r[e]||{style:e}:e},i=function(e,n){return function(r){var o=Qo(n)?n(r):n,a=Array.isArray(o)?o:[o],i=ta(t)(e);return a.map((function(e){return Yo(e)?e.replace("#",i):e}))}};return{plural:function(e,t){var n=t.offset,r=void 0===n?0:n,a=$o()(t,["offset"]),u=a[e]||a[null==o?void 0:o(e-r)]||a.other;return i(e-r,u)},selectordinal:function(e,t){var n=t.offset,r=void 0===n?0:n,a=$o()(t,["offset"]),u=a[e]||a[null==o?void 0:o(e-r,!0)]||a.other;return i(e-r,u)},select:function(e,t){return t[e]||t.other},number:function(e,n){return ta(t,a(n))(e)},date:function(e,n){return ea(t,a(n))(e)},undefined:function(e){return e}}}(t,n,e.localeData,o);return function e(t,n,o){var i=r[t],u=a[n](i,o),s=Qo(u)?u(e):u;return Array.isArray(s)?s.join(""):s}}function aa(e,t,n,r){return function(o){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=oa({locale:t,locales:n,localeData:r,formats:a,values:o}),u=function e(t){return Array.isArray(t)?t.reduce((function(t,n){if(Yo(n))return t+n;var r=C()(n,3),o=r[0],a=r[1],u=r[2],s={};null==u||Yo(u)?s=u:Object.keys(u).forEach((function(t){s[t]=e(u[t])}));var c=i(o,a,s);return null==c?t:t+c}),""):t},s=u(e);return Yo(s)&&ra.test(s)?JSON.parse('"'.concat(s.trim(),'"')):Yo(s)?s.trim():s}}var ia=function(e){Vo()(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}(),function(){var e,r=Ko()(t);if(n){var o=Ko()(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Go()(this,e)});function o(e){var t;return Wo()(this,o),(t=r.call(this))._messages={},t._localeData={},null!=e.missing&&(t._missing=e.missing),null!=e.messages&&t.load(e.messages),null!=e.localeData&&t.loadLocaleData(e.localeData),null==e.locale&&null==e.locales||t.activate(e.locale,e.locales),t}return zo()(o,[{key:"_loadLocaleData",value:function(e,t){null==this._localeData[e]?this._localeData[e]=t:Object.assign(this._localeData[e],t)}},{key:"loadLocaleData",value:function(e,t){var n=this;null!=t?this._loadLocaleData(e,t):Object.keys(e).forEach((function(t){return n._loadLocaleData(t,e[t])})),this.emit("change")}},{key:"_load",value:function(e,t){null==this._messages[e]?this._messages[e]=t:Object.assign(this._messages[e],t)}},{key:"load",value:function(e,t){var n=this;null!=t?this._load(e,t):Object.keys(e).forEach((function(t){return n._load(t,e[t])})),this.emit("change")}},{key:"activate",value:function(e,t){this._locale=e,this._locales=t,this.emit("change")}},{key:"_",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.message,o=n.formats,a=n.context;Yo(e)||(t=e.values||t,r=e.message,a=e.context,e=e.id);var i,u=!a&&!this.messages[e],s=a&&!this.messages[a][e],c=s||u,l=this._missing;return l&&c?Qo(l)?l(this.locale,e,a):l:(c&&this.emit("missing",{id:e,context:a,locale:this._locale}),i=a&&!s?this.messages[a][e]||r||e:this.messages[e]||r||e,Yo(i)&&ra.test(i)?JSON.parse('"'.concat(i,'"')):Yo(i)?i:aa(i,this.locale,this.locales,this.localeData)(t,o))}},{key:"date",value:function(e,t){return ea(this.locales||this.locale,t)(e)}},{key:"number",value:function(e,t){return ta(this.locales||this.locale,t)(e)}},{key:"locale",get:function(){return this._locale}},{key:"locales",get:function(){return this._locales}},{key:"messages",get:function(){var e;return null!==(e=this._messages[this._locale])&&void 0!==e?e:{}}},{key:"localeData",get:function(){var e;return null!==(e=this._localeData[this._locale])&&void 0!==e?e:{}}}]),o}(function(){function e(){Wo()(this,e),this._events={}}return zo()(e,[{key:"on",value:function(e,t){var n=this;return this._hasEvent(e)||(this._events[e]=[]),this._events[e].push(t),function(){return n.removeListener(e,t)}}},{key:"removeListener",value:function(e,t){if(this._hasEvent(e)){var n=this._events[e].indexOf(t);~n&&this._events[e].splice(n,1)}}},{key:"emit",value:function(e){for(var t=this,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];this._hasEvent(e)&&this._events[e].map((function(e){return e.apply(t,r)}))}},{key:"_hasEvent",value:function(e){return Array.isArray(this._events[e])}}]),e}());const ua=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new ia(e)}();var sa=n(25),ca=n(26),la=n(27),fa=n(28),da=n(29),pa=n(30),ha=n(31),va=n(32),ma=n(33),ga=n(34),ya=n(35),ba=n(36),xa=n(37),wa=n(38),Ea=n(39),Ca=n(40),ka=n(41),_a=n(42),Sa=n(43),Ra=n(44),Ta=n(45),Ia={[p.CS]:ca.messages,[p.DA]:la.messages,[p.DE]:fa.messages,[p.EN]:sa.messages,[p.ES]:da.messages,[p.ES_419]:pa.messages,[p.FI]:ha.messages,[p.FR]:va.messages,[p.HI]:ma.messages,[p.IT]:ga.messages,[p.JA]:ya.messages,[p.NB]:xa.messages,[p.NL]:ba.messages,[p.PL]:wa.messages,[p.PT]:Ea.messages,[p.RO]:Ca.messages,[p.RU]:ka.messages,[p.SV]:_a.messages,[p.TH]:Sa.messages,[p.TR]:Ra.messages,[p.VI]:Ta.messages};const Oa=p.EN;function Aa(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const[t,n=""]=e.split("-");return{language:t,region:n}}function Da(e){const{language:t,region:n}=Aa(e);return[t.toLowerCase(),n.toUpperCase()].filter(Boolean).join("-")}const Na=e=>{let{language:t,children:n}=e;const r=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const t=Da(e);if(t&&Object.keys(Ia).includes(t))return t;const{language:n}=Aa(t);if(n&&Object.keys(Ia).includes(n))return n;const r=Object.keys(Ia).find((e=>Aa(e).language===n));return r||Oa}(t);return ua.load(r,(e=>Ia[e])(r)),ua.activate(r),b.a.createElement(R,{i18n:ua},n)};Na.defaultProps={language:Oa},Na.propTypes={language:U.a.oneOf(Object.values(p)),children:U.a.node.isRequired};var Pa=Na,Ma=e=>{const{language:t}=e;return b.a.createElement(w,{onError:e.onError},b.a.createElement(Pa,{language:t},b.a.createElement(Bo,e)))}}])},418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,a){for(var i,u,s=o(e),c=1;c<arguments.length;c++){for(var l in i=Object(arguments[c]))n.call(i,l)&&(s[l]=i[l]);if(t){u=t(i);for(var f=0;f<u.length;f++)r.call(i,u[f])&&(s[u[f]]=i[u[f]])}}return s}},448:(e,t,n)=>{"use strict";var r=n(294),o=n(418),a=n(840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var u=null,s={};function c(){if(u)for(var e in s){var t=s[e],n=u.indexOf(e);if(!(-1<n))throw Error(i(96,e));if(!f[n]){if(!t.extractEvents)throw Error(i(97,e));for(var r in f[n]=t,n=t.eventTypes){var o=void 0,a=n[r],c=t,p=r;if(d.hasOwnProperty(p))throw Error(i(99,p));d[p]=a;var h=a.phasedRegistrationNames;if(h){for(o in h)h.hasOwnProperty(o)&&l(h[o],c,p);o=!0}else a.registrationName?(l(a.registrationName,c,p),o=!0):o=!1;if(!o)throw Error(i(98,r,e))}}}}function l(e,t,n){if(p[e])throw Error(i(100,e));p[e]=t,h[e]=t.eventTypes[n].dependencies}var f=[],d={},p={},h={};function v(e,t,n,r,o,a,i,u,s){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(l){this.onError(l)}}var m=!1,g=null,y=!1,b=null,x={onError:function(e){m=!0,g=e}};function w(e,t,n,r,o,a,i,u,s){m=!1,g=null,v.apply(x,arguments)}var E=null,C=null,k=null;function _(e,t,n){var r=e.type||"unknown-event";e.currentTarget=k(n),function(e,t,n,r,o,a,u,s,c){if(w.apply(this,arguments),m){if(!m)throw Error(i(198));var l=g;m=!1,g=null,y||(y=!0,b=l)}}(r,t,void 0,e),e.currentTarget=null}function S(e,t){if(null==t)throw Error(i(30));return null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function R(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}var T=null;function I(e){if(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t))for(var r=0;r<t.length&&!e.isPropagationStopped();r++)_(e,t[r],n[r]);else t&&_(e,t,n);e._dispatchListeners=null,e._dispatchInstances=null,e.isPersistent()||e.constructor.release(e)}}function O(e){if(null!==e&&(T=S(T,e)),e=T,T=null,e){if(R(e,I),T)throw Error(i(95));if(y)throw e=b,y=!1,b=null,e}}var A={injectEventPluginOrder:function(e){if(u)throw Error(i(101));u=Array.prototype.slice.call(e),c()},injectEventPluginsByName:function(e){var t,n=!1;for(t in e)if(e.hasOwnProperty(t)){var r=e[t];if(!s.hasOwnProperty(t)||s[t]!==r){if(s[t])throw Error(i(102,t));s[t]=r,n=!0}}n&&c()}};function D(e,t){var n=e.stateNode;if(!n)return null;var r=E(n);if(!r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var N=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;N.hasOwnProperty("ReactCurrentDispatcher")||(N.ReactCurrentDispatcher={current:null}),N.hasOwnProperty("ReactCurrentBatchConfig")||(N.ReactCurrentBatchConfig={suspense:null});var P=/^(.*)[\\\/]/,M="function"==typeof Symbol&&Symbol.for,F=M?Symbol.for("react.element"):60103,B=M?Symbol.for("react.portal"):60106,L=M?Symbol.for("react.fragment"):60107,W=M?Symbol.for("react.strict_mode"):60108,U=M?Symbol.for("react.profiler"):60114,z=M?Symbol.for("react.provider"):60109,j=M?Symbol.for("react.context"):60110,V=M?Symbol.for("react.concurrent_mode"):60111,H=M?Symbol.for("react.forward_ref"):60112,G=M?Symbol.for("react.suspense"):60113,q=M?Symbol.for("react.suspense_list"):60120,K=M?Symbol.for("react.memo"):60115,X=M?Symbol.for("react.lazy"):60116;M&&Symbol.for("react.fundamental"),M&&Symbol.for("react.responder"),M&&Symbol.for("react.scope");var $="function"==typeof Symbol&&Symbol.iterator;function Y(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=$&&e[$]||e["@@iterator"])?e:null}function Q(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case L:return"Fragment";case B:return"Portal";case U:return"Profiler";case W:return"StrictMode";case G:return"Suspense";case q:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case j:return"Context.Consumer";case z:return"Context.Provider";case H:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case K:return Q(e.type);case X:if(e=1===e._status?e._result:null)return Q(e)}return null}function J(e){var t="";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var n="";break e;default:var r=e._debugOwner,o=e._debugSource,a=Q(e.type);n=null,r&&(n=Q(r.type)),r=a,a="",o?a=" (at "+o.fileName.replace(P,"")+":"+o.lineNumber+")":n&&(a=" (created by "+n+")"),n="\n in "+(r||"Unknown")+a}t+=n,e=e.return}while(e);return t}var Z=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),ee=null,te=null,ne=null;function re(e){if(e=C(e)){if("function"!=typeof ee)throw Error(i(280));var t=E(e.stateNode);ee(e.stateNode,e.type,t)}}function oe(e){te?ne?ne.push(e):ne=[e]:te=e}function ae(){if(te){var e=te,t=ne;if(ne=te=null,re(e),t)for(e=0;e<t.length;e++)re(t[e])}}function ie(e,t){return e(t)}function ue(e,t,n,r){return e(t,n,r)}function se(){}var ce=ie,le=!1,fe=!1;function de(){null===te&&null===ne||(se(),ae())}new Map;var pe=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,he=Object.prototype.hasOwnProperty,ve={},me={};function ge(e,t,n,r,o,a){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a}var ye={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){ye[e]=new ge(e,0,!1,e,null,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];ye[t]=new ge(t,1,!1,e[1],null,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){ye[e]=new ge(e,2,!1,e.toLowerCase(),null,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){ye[e]=new ge(e,2,!1,e,null,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){ye[e]=new ge(e,3,!1,e.toLowerCase(),null,!1)})),["checked","multiple","muted","selected"].forEach((function(e){ye[e]=new ge(e,3,!0,e,null,!1)})),["capture","download"].forEach((function(e){ye[e]=new ge(e,4,!1,e,null,!1)})),["cols","rows","size","span"].forEach((function(e){ye[e]=new ge(e,6,!1,e,null,!1)})),["rowSpan","start"].forEach((function(e){ye[e]=new ge(e,5,!1,e.toLowerCase(),null,!1)}));var be=/[\-:]([a-z])/g;function xe(e){return e[1].toUpperCase()}function we(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Ee(e,t,n,r){var o=ye.hasOwnProperty(t)?ye[t]:null;(null!==o?0===o.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!he.call(me,e)||!he.call(ve,e)&&(pe.test(e)?me[e]=!0:(ve[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}function Ce(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function ke(e){e._valueTracker||(e._valueTracker=function(e){var t=Ce(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function _e(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Ce(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Se(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Re(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=we(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Te(e,t){null!=(t=t.checked)&&Ee(e,"checked",t,!1)}function Ie(e,t){Te(e,t);var n=we(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?Ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&Ae(e,t.type,we(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function Oe(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!e.defaultChecked,e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function Ae(e,t,n){"number"===t&&e.ownerDocument.activeElement===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function De(e,t){return e=o({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function Ne(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+we(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function Pe(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Me(e,t){var n=t.value;if(null==n){if(n=t.defaultValue,null!=(t=t.children)){if(null!=n)throw Error(i(92));if(Array.isArray(t)){if(!(1>=t.length))throw Error(i(93));t=t[0]}n=t}null==n&&(n="")}e._wrapperState={initialValue:we(n)}}function Fe(e,t){var n=we(t.value),r=we(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function Be(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(be,xe);ye[t]=new ge(t,1,!1,e,null,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(be,xe);ye[t]=new ge(t,1,!1,e,"http://www.w3.org/1999/xlink",!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(be,xe);ye[t]=new ge(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)})),["tabIndex","crossOrigin"].forEach((function(e){ye[e]=new ge(e,1,!1,e.toLowerCase(),null,!1)})),ye.xlinkHref=new ge("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0),["src","href","action","formAction"].forEach((function(e){ye[e]=new ge(e,1,!1,e.toLowerCase(),null,!0)}));var Le="http://www.w3.org/1999/xhtml",We="http://www.w3.org/2000/svg";function Ue(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function ze(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?Ue(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var je,Ve,He=(Ve=function(e,t){if(e.namespaceURI!==We||"innerHTML"in e)e.innerHTML=t;else{for((je=je||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=je.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return Ve(e,t)}))}:Ve);function Ge(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}function qe(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Ke={animationend:qe("Animation","AnimationEnd"),animationiteration:qe("Animation","AnimationIteration"),animationstart:qe("Animation","AnimationStart"),transitionend:qe("Transition","TransitionEnd")},Xe={},$e={};function Ye(e){if(Xe[e])return Xe[e];if(!Ke[e])return e;var t,n=Ke[e];for(t in n)if(n.hasOwnProperty(t)&&t in $e)return Xe[e]=n[t];return e}Z&&($e=document.createElement("div").style,"AnimationEvent"in window||(delete Ke.animationend.animation,delete Ke.animationiteration.animation,delete Ke.animationstart.animation),"TransitionEvent"in window||delete Ke.transitionend.transition);var Qe=Ye("animationend"),Je=Ye("animationiteration"),Ze=Ye("animationstart"),et=Ye("transitionend"),tt="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" ");function nt(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).effectTag)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function rt(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function ot(e){if(nt(e)!==e)throw Error(i(188))}function at(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=nt(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var a=o.alternate;if(null===a){if(null!==(r=o.return)){n=r;continue}break}if(o.child===a.child){for(a=o.child;a;){if(a===n)return ot(o),e;if(a===r)return ot(o),t;a=a.sibling}throw Error(i(188))}if(n.return!==r.return)n=o,r=a;else{for(var u=!1,s=o.child;s;){if(s===n){u=!0,n=o,r=a;break}if(s===r){u=!0,r=o,n=a;break}s=s.sibling}if(!u){for(s=a.child;s;){if(s===n){u=!0,n=a,r=o;break}if(s===r){u=!0,r=a,n=o;break}s=s.sibling}if(!u)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}var it,ut,st,ct=!1,lt=[],ft=null,dt=null,pt=null,ht=new Map,vt=new Map,mt=[],gt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit".split(" "),yt="focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture".split(" ");function bt(e,t,n,r){return{blockedOn:e,topLevelType:t,eventSystemFlags:32|n,nativeEvent:r}}function xt(e,t){switch(e){case"focus":case"blur":ft=null;break;case"dragenter":case"dragleave":dt=null;break;case"mouseover":case"mouseout":pt=null;break;case"pointerover":case"pointerout":ht.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":vt.delete(t.pointerId)}}function wt(e,t,n,r,o){return null===e||e.nativeEvent!==o?(e=bt(t,n,r,o),null!==t&&(null!==(t=pr(t))&&ut(t)),e):(e.eventSystemFlags|=r,e)}function Et(e){var t=dr(e.target);if(null!==t){var n=nt(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=rt(n)))return e.blockedOn=t,void a.unstable_runWithPriority(e.priority,(function(){st(n)}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Ct(e){if(null!==e.blockedOn)return!1;var t=Dn(e.topLevelType,e.eventSystemFlags,e.nativeEvent);if(null!==t){var n=pr(t);return null!==n&&ut(n),e.blockedOn=t,!1}return!0}function kt(e,t,n){Ct(e)&&n.delete(t)}function _t(){for(ct=!1;0<lt.length;){var e=lt[0];if(null!==e.blockedOn){null!==(e=pr(e.blockedOn))&&it(e);break}var t=Dn(e.topLevelType,e.eventSystemFlags,e.nativeEvent);null!==t?e.blockedOn=t:lt.shift()}null!==ft&&Ct(ft)&&(ft=null),null!==dt&&Ct(dt)&&(dt=null),null!==pt&&Ct(pt)&&(pt=null),ht.forEach(kt),vt.forEach(kt)}function St(e,t){e.blockedOn===t&&(e.blockedOn=null,ct||(ct=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,_t)))}function Rt(e){function t(t){return St(t,e)}if(0<lt.length){St(lt[0],e);for(var n=1;n<lt.length;n++){var r=lt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==ft&&St(ft,e),null!==dt&&St(dt,e),null!==pt&&St(pt,e),ht.forEach(t),vt.forEach(t),n=0;n<mt.length;n++)(r=mt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<mt.length&&null===(n=mt[0]).blockedOn;)Et(n),null===n.blockedOn&&mt.shift()}function Tt(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}function It(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function Ot(e,t,n){(t=D(e,n.dispatchConfig.phasedRegistrationNames[t]))&&(n._dispatchListeners=S(n._dispatchListeners,t),n._dispatchInstances=S(n._dispatchInstances,e))}function At(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var t=e._targetInst,n=[];t;)n.push(t),t=It(t);for(t=n.length;0<t--;)Ot(n[t],"captured",e);for(t=0;t<n.length;t++)Ot(n[t],"bubbled",e)}}function Dt(e,t,n){e&&n&&n.dispatchConfig.registrationName&&(t=D(e,n.dispatchConfig.registrationName))&&(n._dispatchListeners=S(n._dispatchListeners,t),n._dispatchInstances=S(n._dispatchInstances,e))}function Nt(e){e&&e.dispatchConfig.registrationName&&Dt(e._targetInst,null,e)}function Pt(e){R(e,At)}function Mt(){return!0}function Ft(){return!1}function Bt(e,t,n,r){for(var o in this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n,e=this.constructor.Interface)e.hasOwnProperty(o)&&((t=e[o])?this[o]=t(n):"target"===o?this.target=r:this[o]=n[o]);return this.isDefaultPrevented=(null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue)?Mt:Ft,this.isPropagationStopped=Ft,this}function Lt(e,t,n,r){if(this.eventPool.length){var o=this.eventPool.pop();return this.call(o,e,t,n,r),o}return new this(e,t,n,r)}function Wt(e){if(!(e instanceof this))throw Error(i(279));e.destructor(),10>this.eventPool.length&&this.eventPool.push(e)}function Ut(e){e.eventPool=[],e.getPooled=Lt,e.release=Wt}o(Bt.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=Mt)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=Mt)},persist:function(){this.isPersistent=Mt},isPersistent:Ft,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=Ft,this._dispatchInstances=this._dispatchListeners=null}}),Bt.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},Bt.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var a=new t;return o(a,n.prototype),n.prototype=a,n.prototype.constructor=n,n.Interface=o({},r.Interface,e),n.extend=r.extend,Ut(n),n},Ut(Bt);var zt=Bt.extend({animationName:null,elapsedTime:null,pseudoElement:null}),jt=Bt.extend({clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Vt=Bt.extend({view:null,detail:null}),Ht=Vt.extend({relatedTarget:null});function Gt(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}var qt={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Kt={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Xt={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function $t(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Xt[e])&&!!t[e]}function Yt(){return $t}for(var Qt=Vt.extend({key:function(e){if(e.key){var t=qt[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=Gt(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?Kt[e.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Yt,charCode:function(e){return"keypress"===e.type?Gt(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?Gt(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Jt=0,Zt=0,en=!1,tn=!1,nn=Vt.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Yt,button:null,buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},movementX:function(e){if("movementX"in e)return e.movementX;var t=Jt;return Jt=e.screenX,en?"mousemove"===e.type?e.screenX-t:0:(en=!0,0)},movementY:function(e){if("movementY"in e)return e.movementY;var t=Zt;return Zt=e.screenY,tn?"mousemove"===e.type?e.screenY-t:0:(tn=!0,0)}}),rn=nn.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),on=nn.extend({dataTransfer:null}),an=Vt.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Yt}),un=Bt.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),sn=nn.extend({deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null}),cn=[["blur","blur",0],["cancel","cancel",0],["click","click",0],["close","close",0],["contextmenu","contextMenu",0],["copy","copy",0],["cut","cut",0],["auxclick","auxClick",0],["dblclick","doubleClick",0],["dragend","dragEnd",0],["dragstart","dragStart",0],["drop","drop",0],["focus","focus",0],["input","input",0],["invalid","invalid",0],["keydown","keyDown",0],["keypress","keyPress",0],["keyup","keyUp",0],["mousedown","mouseDown",0],["mouseup","mouseUp",0],["paste","paste",0],["pause","pause",0],["play","play",0],["pointercancel","pointerCancel",0],["pointerdown","pointerDown",0],["pointerup","pointerUp",0],["ratechange","rateChange",0],["reset","reset",0],["seeked","seeked",0],["submit","submit",0],["touchcancel","touchCancel",0],["touchend","touchEnd",0],["touchstart","touchStart",0],["volumechange","volumeChange",0],["drag","drag",1],["dragenter","dragEnter",1],["dragexit","dragExit",1],["dragleave","dragLeave",1],["dragover","dragOver",1],["mousemove","mouseMove",1],["mouseout","mouseOut",1],["mouseover","mouseOver",1],["pointermove","pointerMove",1],["pointerout","pointerOut",1],["pointerover","pointerOver",1],["scroll","scroll",1],["toggle","toggle",1],["touchmove","touchMove",1],["wheel","wheel",1],["abort","abort",2],[Qe,"animationEnd",2],[Je,"animationIteration",2],[Ze,"animationStart",2],["canplay","canPlay",2],["canplaythrough","canPlayThrough",2],["durationchange","durationChange",2],["emptied","emptied",2],["encrypted","encrypted",2],["ended","ended",2],["error","error",2],["gotpointercapture","gotPointerCapture",2],["load","load",2],["loadeddata","loadedData",2],["loadedmetadata","loadedMetadata",2],["loadstart","loadStart",2],["lostpointercapture","lostPointerCapture",2],["playing","playing",2],["progress","progress",2],["seeking","seeking",2],["stalled","stalled",2],["suspend","suspend",2],["timeupdate","timeUpdate",2],[et,"transitionEnd",2],["waiting","waiting",2]],ln={},fn={},dn=0;dn<cn.length;dn++){var pn=cn[dn],hn=pn[0],vn=pn[1],mn=pn[2],gn="on"+(vn[0].toUpperCase()+vn.slice(1)),yn={phasedRegistrationNames:{bubbled:gn,captured:gn+"Capture"},dependencies:[hn],eventPriority:mn};ln[vn]=yn,fn[hn]=yn}var bn={eventTypes:ln,getEventPriority:function(e){return void 0!==(e=fn[e])?e.eventPriority:2},extractEvents:function(e,t,n,r){var o=fn[e];if(!o)return null;switch(e){case"keypress":if(0===Gt(n))return null;case"keydown":case"keyup":e=Qt;break;case"blur":case"focus":e=Ht;break;case"click":if(2===n.button)return null;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":e=nn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":e=on;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":e=an;break;case Qe:case Je:case Ze:e=zt;break;case et:e=un;break;case"scroll":e=Vt;break;case"wheel":e=sn;break;case"copy":case"cut":case"paste":e=jt;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":e=rn;break;default:e=Bt}return Pt(t=e.getPooled(o,t,n,r)),t}},xn=a.unstable_UserBlockingPriority,wn=a.unstable_runWithPriority,En=bn.getEventPriority,Cn=[];function kn(e){var t=e.targetInst,n=t;do{if(!n){e.ancestors.push(n);break}var r=n;if(3===r.tag)r=r.stateNode.containerInfo;else{for(;r.return;)r=r.return;r=3!==r.tag?null:r.stateNode.containerInfo}if(!r)break;5!==(t=n.tag)&&6!==t||e.ancestors.push(n),n=dr(r)}while(n);for(n=0;n<e.ancestors.length;n++){t=e.ancestors[n];var o=Tt(e.nativeEvent);r=e.topLevelType;for(var a=e.nativeEvent,i=e.eventSystemFlags,u=null,s=0;s<f.length;s++){var c=f[s];c&&(c=c.extractEvents(r,t,a,o,i))&&(u=S(u,c))}O(u)}}var _n=!0;function Sn(e,t){Rn(t,e,!1)}function Rn(e,t,n){switch(En(t)){case 0:var r=Tn.bind(null,t,1);break;case 1:r=In.bind(null,t,1);break;default:r=An.bind(null,t,1)}n?e.addEventListener(t,r,!0):e.addEventListener(t,r,!1)}function Tn(e,t,n){le||se();var r=An,o=le;le=!0;try{ue(r,e,t,n)}finally{(le=o)||de()}}function In(e,t,n){wn(xn,An.bind(null,e,t,n))}function On(e,t,n,r){if(Cn.length){var o=Cn.pop();o.topLevelType=e,o.eventSystemFlags=t,o.nativeEvent=n,o.targetInst=r,e=o}else e={topLevelType:e,eventSystemFlags:t,nativeEvent:n,targetInst:r,ancestors:[]};try{if(t=kn,n=e,fe)t(n,void 0);else{fe=!0;try{ce(t,n,void 0)}finally{fe=!1,de()}}}finally{e.topLevelType=null,e.nativeEvent=null,e.targetInst=null,e.ancestors.length=0,Cn.length<10&&Cn.push(e)}}function An(e,t,n){if(_n)if(0<lt.length&&-1<gt.indexOf(e))e=bt(null,e,t,n),lt.push(e);else{var r=Dn(e,t,n);null===r?xt(e,n):-1<gt.indexOf(e)?(e=bt(r,e,t,n),lt.push(e)):function(e,t,n,r){switch(t){case"focus":return ft=wt(ft,e,t,n,r),!0;case"dragenter":return dt=wt(dt,e,t,n,r),!0;case"mouseover":return pt=wt(pt,e,t,n,r),!0;case"pointerover":var o=r.pointerId;return ht.set(o,wt(ht.get(o)||null,e,t,n,r)),!0;case"gotpointercapture":return o=r.pointerId,vt.set(o,wt(vt.get(o)||null,e,t,n,r)),!0}return!1}(r,e,t,n)||(xt(e,n),On(e,t,n,null))}}function Dn(e,t,n){var r=Tt(n);if(null!==(r=dr(r))){var o=nt(r);if(null===o)r=null;else{var a=o.tag;if(13===a){if(null!==(r=rt(o)))return r;r=null}else if(3===a){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;r=null}else o!==r&&(r=null)}}return On(e,t,n,r),null}function Nn(e){if(!Z)return!1;var t=(e="on"+e)in document;return t||((t=document.createElement("div")).setAttribute(e,"return;"),t="function"==typeof t[e]),t}var Pn=new("function"==typeof WeakMap?WeakMap:Map);function Mn(e){var t=Pn.get(e);return void 0===t&&(t=new Set,Pn.set(e,t)),t}function Fn(e,t,n){if(!n.has(e)){switch(e){case"scroll":Rn(t,"scroll",!0);break;case"focus":case"blur":Rn(t,"focus",!0),Rn(t,"blur",!0),n.add("blur"),n.add("focus");break;case"cancel":case"close":Nn(e)&&Rn(t,e,!0);break;case"invalid":case"submit":case"reset":break;default:-1===tt.indexOf(e)&&Sn(e,t)}n.add(e)}}var Bn={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ln=["Webkit","ms","Moz","O"];function Wn(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||Bn.hasOwnProperty(e)&&Bn[e]?(""+t).trim():t+"px"}function Un(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=Wn(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(Bn).forEach((function(e){Ln.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Bn[t]=Bn[e]}))}));var zn=o({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function jn(e,t){if(t){if(zn[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e,""));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62,""))}}function Vn(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Hn(e,t){var n=Mn(e=9===e.nodeType||11===e.nodeType?e:e.ownerDocument);t=h[t];for(var r=0;r<t.length;r++)Fn(t[r],e,n)}function Gn(){}function qn(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Kn(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Xn(e,t){var n,r=Kn(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=Kn(r)}}function $n(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?$n(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function Yn(){for(var e=window,t=qn();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=qn((e=t.contentWindow).document)}return t}function Qn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var Jn="$?",Zn="$!",er=null,tr=null;function nr(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function rr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var or="function"==typeof setTimeout?setTimeout:void 0,ar="function"==typeof clearTimeout?clearTimeout:void 0;function ir(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function ur(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||n===Zn||n===Jn){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var sr=Math.random().toString(36).slice(2),cr="__reactInternalInstance$"+sr,lr="__reactEventHandlers$"+sr,fr="__reactContainere$"+sr;function dr(e){var t=e[cr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[fr]||n[cr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ur(e);null!==e;){if(n=e[cr])return n;e=ur(e)}return t}n=(e=n).parentNode}return null}function pr(e){return!(e=e[cr]||e[fr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function hr(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function vr(e){return e[lr]||null}var mr=null,gr=null,yr=null;function br(){if(yr)return yr;var e,t,n=gr,r=n.length,o="value"in mr?mr.value:mr.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return yr=o.slice(e,1<t?1-t:void 0)}var xr=Bt.extend({data:null}),wr=Bt.extend({data:null}),Er=[9,13,27,32],Cr=Z&&"CompositionEvent"in window,kr=null;Z&&"documentMode"in document&&(kr=document.documentMode);var _r=Z&&"TextEvent"in window&&!kr,Sr=Z&&(!Cr||kr&&8<kr&&11>=kr),Rr=String.fromCharCode(32),Tr={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},Ir=!1;function Or(e,t){switch(e){case"keyup":return-1!==Er.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function Ar(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Dr=!1;var Nr={eventTypes:Tr,extractEvents:function(e,t,n,r){var o;if(Cr)e:{switch(e){case"compositionstart":var a=Tr.compositionStart;break e;case"compositionend":a=Tr.compositionEnd;break e;case"compositionupdate":a=Tr.compositionUpdate;break e}a=void 0}else Dr?Or(e,n)&&(a=Tr.compositionEnd):"keydown"===e&&229===n.keyCode&&(a=Tr.compositionStart);return a?(Sr&&"ko"!==n.locale&&(Dr||a!==Tr.compositionStart?a===Tr.compositionEnd&&Dr&&(o=br()):(gr="value"in(mr=r)?mr.value:mr.textContent,Dr=!0)),a=xr.getPooled(a,t,n,r),o?a.data=o:null!==(o=Ar(n))&&(a.data=o),Pt(a),o=a):o=null,(e=_r?function(e,t){switch(e){case"compositionend":return Ar(t);case"keypress":return 32!==t.which?null:(Ir=!0,Rr);case"textInput":return(e=t.data)===Rr&&Ir?null:e;default:return null}}(e,n):function(e,t){if(Dr)return"compositionend"===e||!Cr&&Or(e,t)?(e=br(),yr=gr=mr=null,Dr=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Sr&&"ko"!==t.locale?null:t.data}}(e,n))?((t=wr.getPooled(Tr.beforeInput,t,n,r)).data=e,Pt(t)):t=null,null===o?t:null===t?o:[o,t]}},Pr={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Mr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Pr[e.type]:"textarea"===t}var Fr={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"blur change click focus input keydown keyup selectionchange".split(" ")}};function Br(e,t,n){return(e=Bt.getPooled(Fr.change,e,t,n)).type="change",oe(n),Pt(e),e}var Lr=null,Wr=null;function Ur(e){O(e)}function zr(e){if(_e(hr(e)))return e}function jr(e,t){if("change"===e)return t}var Vr=!1;function Hr(){Lr&&(Lr.detachEvent("onpropertychange",Gr),Wr=Lr=null)}function Gr(e){if("value"===e.propertyName&&zr(Wr))if(e=Br(Wr,e,Tt(e)),le)O(e);else{le=!0;try{ie(Ur,e)}finally{le=!1,de()}}}function qr(e,t,n){"focus"===e?(Hr(),Wr=n,(Lr=t).attachEvent("onpropertychange",Gr)):"blur"===e&&Hr()}function Kr(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return zr(Wr)}function Xr(e,t){if("click"===e)return zr(t)}function $r(e,t){if("input"===e||"change"===e)return zr(t)}Z&&(Vr=Nn("input")&&(!document.documentMode||9<document.documentMode));var Yr,Qr={eventTypes:Fr,_isInputEventSupported:Vr,extractEvents:function(e,t,n,r){var o=t?hr(t):window,a=o.nodeName&&o.nodeName.toLowerCase();if("select"===a||"input"===a&&"file"===o.type)var i=jr;else if(Mr(o))if(Vr)i=$r;else{i=Kr;var u=qr}else(a=o.nodeName)&&"input"===a.toLowerCase()&&("checkbox"===o.type||"radio"===o.type)&&(i=Xr);if(i&&(i=i(e,t)))return Br(i,n,r);u&&u(e,o,t),"blur"===e&&(e=o._wrapperState)&&e.controlled&&"number"===o.type&&Ae(o,"number",o.value)}},Jr={mouseEnter:{registrationName:"onMouseEnter",dependencies:["mouseout","mouseover"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["mouseout","mouseover"]},pointerEnter:{registrationName:"onPointerEnter",dependencies:["pointerout","pointerover"]},pointerLeave:{registrationName:"onPointerLeave",dependencies:["pointerout","pointerover"]}},Zr={eventTypes:Jr,extractEvents:function(e,t,n,r,o){var a="mouseover"===e||"pointerover"===e,i="mouseout"===e||"pointerout"===e;if(a&&0==(32&o)&&(n.relatedTarget||n.fromElement)||!i&&!a)return null;if(o=r.window===r?r:(o=r.ownerDocument)?o.defaultView||o.parentWindow:window,i?(i=t,null!==(t=(t=n.relatedTarget||n.toElement)?dr(t):null)&&(t!==(a=nt(t))||5!==t.tag&&6!==t.tag)&&(t=null)):i=null,i===t)return null;if("mouseout"===e||"mouseover"===e)var u=nn,s=Jr.mouseLeave,c=Jr.mouseEnter,l="mouse";else"pointerout"!==e&&"pointerover"!==e||(u=rn,s=Jr.pointerLeave,c=Jr.pointerEnter,l="pointer");if(e=null==i?o:hr(i),o=null==t?o:hr(t),(s=u.getPooled(s,i,n,r)).type=l+"leave",s.target=e,s.relatedTarget=o,(r=u.getPooled(c,t,n,r)).type=l+"enter",r.target=o,r.relatedTarget=e,l=t,(u=i)&&l)e:{for(e=l,i=0,t=c=u;t;t=It(t))i++;for(t=0,o=e;o;o=It(o))t++;for(;0<i-t;)c=It(c),i--;for(;0<t-i;)e=It(e),t--;for(;i--;){if(c===e||c===e.alternate)break e;c=It(c),e=It(e)}c=null}else c=null;for(e=c,c=[];u&&u!==e&&(null===(i=u.alternate)||i!==e);)c.push(u),u=It(u);for(u=[];l&&l!==e&&(null===(i=l.alternate)||i!==e);)u.push(l),l=It(l);for(l=0;l<c.length;l++)Dt(c[l],"bubbled",s);for(l=u.length;0<l--;)Dt(u[l],"captured",r);return n===Yr?(Yr=null,[s]):(Yr=n,[s,r])}};var eo="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},to=Object.prototype.hasOwnProperty;function no(e,t){if(eo(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!to.call(t,n[r])||!eo(e[n[r]],t[n[r]]))return!1;return!0}var ro=Z&&"documentMode"in document&&11>=document.documentMode,oo={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},ao=null,io=null,uo=null,so=!1;function co(e,t){var n=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;return so||null==ao||ao!==qn(n)?null:("selectionStart"in(n=ao)&&Qn(n)?n={start:n.selectionStart,end:n.selectionEnd}:n={anchorNode:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset},uo&&no(uo,n)?null:(uo=n,(e=Bt.getPooled(oo.select,io,e,t)).type="select",e.target=ao,Pt(e),e))}var lo={eventTypes:oo,extractEvents:function(e,t,n,r){var o,a=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;if(!(o=!a)){e:{a=Mn(a),o=h.onSelect;for(var i=0;i<o.length;i++)if(!a.has(o[i])){a=!1;break e}a=!0}o=!a}if(o)return null;switch(a=t?hr(t):window,e){case"focus":(Mr(a)||"true"===a.contentEditable)&&(ao=a,io=t,uo=null);break;case"blur":uo=io=ao=null;break;case"mousedown":so=!0;break;case"contextmenu":case"mouseup":case"dragend":return so=!1,co(n,r);case"selectionchange":if(ro)break;case"keydown":case"keyup":return co(n,r)}return null}};A.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" ")),E=vr,C=pr,k=hr,A.injectEventPluginsByName({SimpleEventPlugin:bn,EnterLeaveEventPlugin:Zr,ChangeEventPlugin:Qr,SelectEventPlugin:lo,BeforeInputEventPlugin:Nr}),new Set;var fo=[],po=-1;function ho(e){0>po||(e.current=fo[po],fo[po]=null,po--)}function vo(e,t){po++,fo[po]=e.current,e.current=t}var mo={},go={current:mo},yo={current:!1},bo=mo;function xo(e,t){var n=e.type.contextTypes;if(!n)return mo;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function wo(e){return null!=(e=e.childContextTypes)}function Eo(e){ho(yo),ho(go)}function Co(e){ho(yo),ho(go)}function ko(e,t,n){if(go.current!==mo)throw Error(i(168));vo(go,t),vo(yo,n)}function _o(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in e))throw Error(i(108,Q(t)||"Unknown",a));return o({},n,{},r)}function So(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||mo,bo=go.current,vo(go,t),vo(yo,yo.current),!0}function Ro(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(t=_o(e,t,bo),r.__reactInternalMemoizedMergedChildContext=t,ho(yo),ho(go),vo(go,t)):ho(yo),vo(yo,n)}var To=a.unstable_runWithPriority,Io=a.unstable_scheduleCallback,Oo=a.unstable_cancelCallback,Ao=a.unstable_shouldYield,Do=a.unstable_requestPaint,No=a.unstable_now,Po=a.unstable_getCurrentPriorityLevel,Mo=a.unstable_ImmediatePriority,Fo=a.unstable_UserBlockingPriority,Bo=a.unstable_NormalPriority,Lo=a.unstable_LowPriority,Wo=a.unstable_IdlePriority,Uo={},zo=void 0!==Do?Do:function(){},jo=null,Vo=null,Ho=!1,Go=No(),qo=1e4>Go?No:function(){return No()-Go};function Ko(){switch(Po()){case Mo:return 99;case Fo:return 98;case Bo:return 97;case Lo:return 96;case Wo:return 95;default:throw Error(i(332))}}function Xo(e){switch(e){case 99:return Mo;case 98:return Fo;case 97:return Bo;case 96:return Lo;case 95:return Wo;default:throw Error(i(332))}}function $o(e,t){return e=Xo(e),To(e,t)}function Yo(e,t,n){return e=Xo(e),Io(e,t,n)}function Qo(e){return null===jo?(jo=[e],Vo=Io(Mo,Zo)):jo.push(e),Uo}function Jo(){if(null!==Vo){var e=Vo;Vo=null,Oo(e)}Zo()}function Zo(){if(!Ho&&null!==jo){Ho=!0;var e=0;try{var t=jo;$o(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),jo=null}catch(n){throw null!==jo&&(jo=jo.slice(e+1)),Io(Mo,Jo),n}finally{Ho=!1}}}var ea=3;function ta(e,t,n){return 1073741821-(1+((1073741821-e+t/10)/(n/=10)|0))*n}function na(e,t){if(e&&e.defaultProps)for(var n in t=o({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}var ra={current:null},oa=null,aa=null,ia=null;function ua(){ia=aa=oa=null}function sa(e,t){var n=e.type._context;vo(ra,n._currentValue),n._currentValue=t}function ca(e){var t=ra.current;ho(ra),e.type._context._currentValue=t}function la(e,t){for(;null!==e;){var n=e.alternate;if(e.childExpirationTime<t)e.childExpirationTime=t,null!==n&&n.childExpirationTime<t&&(n.childExpirationTime=t);else{if(!(null!==n&&n.childExpirationTime<t))break;n.childExpirationTime=t}e=e.return}}function fa(e,t){oa=e,ia=aa=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(e.expirationTime>=t&&(Gi=!0),e.firstContext=null)}function da(e,t){if(ia!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(ia=e,t=1073741823),t={context:e,observedBits:t,next:null},null===aa){if(null===oa)throw Error(i(308));aa=t,oa.dependencies={expirationTime:0,firstContext:t,responders:null}}else aa=aa.next=t;return e._currentValue}var pa=!1;function ha(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function va(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function ma(e,t){return{expirationTime:e,suspenseConfig:t,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function ga(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function ya(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,o=null;null===r&&(r=e.updateQueue=ha(e.memoizedState))}else r=e.updateQueue,o=n.updateQueue,null===r?null===o?(r=e.updateQueue=ha(e.memoizedState),o=n.updateQueue=ha(n.memoizedState)):r=e.updateQueue=va(o):null===o&&(o=n.updateQueue=va(r));null===o||r===o?ga(r,t):null===r.lastUpdate||null===o.lastUpdate?(ga(r,t),ga(o,t)):(ga(r,t),o.lastUpdate=t)}function ba(e,t){var n=e.updateQueue;null===(n=null===n?e.updateQueue=ha(e.memoizedState):xa(e,n)).lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function xa(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=va(t)),t}function wa(e,t,n,r,a,i){switch(n.tag){case 1:return"function"==typeof(e=n.payload)?e.call(i,r,a):e;case 3:e.effectTag=-4097&e.effectTag|64;case 0:if(null==(a="function"==typeof(e=n.payload)?e.call(i,r,a):e))break;return o({},r,a);case 2:pa=!0}return r}function Ea(e,t,n,r,o){pa=!1;for(var a=(t=xa(e,t)).baseState,i=null,u=0,s=t.firstUpdate,c=a;null!==s;){var l=s.expirationTime;l<o?(null===i&&(i=s,a=c),u<l&&(u=l)):(gs(l,s.suspenseConfig),c=wa(e,0,s,c,n,r),null!==s.callback&&(e.effectTag|=32,s.nextEffect=null,null===t.lastEffect?t.firstEffect=t.lastEffect=s:(t.lastEffect.nextEffect=s,t.lastEffect=s))),s=s.next}for(l=null,s=t.firstCapturedUpdate;null!==s;){var f=s.expirationTime;f<o?(null===l&&(l=s,null===i&&(a=c)),u<f&&(u=f)):(c=wa(e,0,s,c,n,r),null!==s.callback&&(e.effectTag|=32,s.nextEffect=null,null===t.lastCapturedEffect?t.firstCapturedEffect=t.lastCapturedEffect=s:(t.lastCapturedEffect.nextEffect=s,t.lastCapturedEffect=s))),s=s.next}null===i&&(t.lastUpdate=null),null===l?t.lastCapturedUpdate=null:e.effectTag|=32,null===i&&null===l&&(a=c),t.baseState=a,t.firstUpdate=i,t.firstCapturedUpdate=l,ys(u),e.expirationTime=u,e.memoizedState=c}function Ca(e,t,n){null!==t.firstCapturedUpdate&&(null!==t.lastUpdate&&(t.lastUpdate.next=t.firstCapturedUpdate,t.lastUpdate=t.lastCapturedUpdate),t.firstCapturedUpdate=t.lastCapturedUpdate=null),ka(t.firstEffect,n),t.firstEffect=t.lastEffect=null,ka(t.firstCapturedEffect,n),t.firstCapturedEffect=t.lastCapturedEffect=null}function ka(e,t){for(;null!==e;){var n=e.callback;if(null!==n){e.callback=null;var r=t;if("function"!=typeof n)throw Error(i(191,n));n.call(r)}e=e.nextEffect}}var _a=N.ReactCurrentBatchConfig,Sa=(new r.Component).refs;function Ra(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:o({},t,n),e.memoizedState=n,null!==(r=e.updateQueue)&&0===e.expirationTime&&(r.baseState=n)}var Ta={isMounted:function(e){return!!(e=e._reactInternalFiber)&&nt(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternalFiber;var r=os(),o=_a.suspense;(o=ma(r=as(r,e,o),o)).payload=t,null!=n&&(o.callback=n),ya(e,o),is(e,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternalFiber;var r=os(),o=_a.suspense;(o=ma(r=as(r,e,o),o)).tag=1,o.payload=t,null!=n&&(o.callback=n),ya(e,o),is(e,r)},enqueueForceUpdate:function(e,t){e=e._reactInternalFiber;var n=os(),r=_a.suspense;(r=ma(n=as(n,e,r),r)).tag=2,null!=t&&(r.callback=t),ya(e,r),is(e,n)}};function Ia(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!no(n,r)||!no(o,a))}function Oa(e,t,n){var r=!1,o=mo,a=t.contextType;return"object"==typeof a&&null!==a?a=da(a):(o=wo(t)?bo:go.current,a=(r=null!=(r=t.contextTypes))?xo(e,o):mo),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Ta,e.stateNode=t,t._reactInternalFiber=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function Aa(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Ta.enqueueReplaceState(t,t.state,null)}function Da(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=Sa;var a=t.contextType;"object"==typeof a&&null!==a?o.context=da(a):(a=wo(t)?bo:go.current,o.context=xo(e,a)),null!==(a=e.updateQueue)&&(Ea(e,a,n,o,r),o.state=e.memoizedState),"function"==typeof(a=t.getDerivedStateFromProps)&&(Ra(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&Ta.enqueueReplaceState(o,o.state,null),null!==(a=e.updateQueue)&&(Ea(e,a,n,o,r),o.state=e.memoizedState)),"function"==typeof o.componentDidMount&&(e.effectTag|=4)}var Na=Array.isArray;function Pa(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var o=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===o?t.ref:(t=function(e){var t=r.refs;t===Sa&&(t=r.refs={}),null===e?delete t[o]:t[o]=e},t._stringRef=o,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function Ma(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t,""))}function Fa(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.effectTag=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t,n){return(e=Ls(e,t)).index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.effectTag=2,n):r:(t.effectTag=2,n):n}function u(t){return e&&null===t.alternate&&(t.effectTag=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=zs(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function c(e,t,n,r){return null!==t&&t.elementType===n.type?((r=o(t,n.props)).ref=Pa(e,t,n),r.return=e,r):((r=Ws(n.type,n.key,n.props,null,e.mode,r)).ref=Pa(e,t,n),r.return=e,r)}function l(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=js(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function f(e,t,n,r,a){return null===t||7!==t.tag?((t=Us(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function d(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=zs(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case F:return(n=Ws(t.type,t.key,t.props,null,e.mode,n)).ref=Pa(e,null,t),n.return=e,n;case B:return(t=js(t,e.mode,n)).return=e,t}if(Na(t)||Y(t))return(t=Us(t,e.mode,n,null)).return=e,t;Ma(e,t)}return null}function p(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==o?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case F:return n.key===o?n.type===L?f(e,t,n.props.children,r,o):c(e,t,n,r):null;case B:return n.key===o?l(e,t,n,r):null}if(Na(n)||Y(n))return null!==o?null:f(e,t,n,r,null);Ma(e,n)}return null}function h(e,t,n,r,o){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case F:return e=e.get(null===r.key?n:r.key)||null,r.type===L?f(t,e,r.props.children,o,r.key):c(t,e,r,o);case B:return l(t,e=e.get(null===r.key?n:r.key)||null,r,o)}if(Na(r)||Y(r))return f(t,e=e.get(n)||null,r,o,null);Ma(t,r)}return null}function v(o,i,u,s){for(var c=null,l=null,f=i,v=i=0,m=null;null!==f&&v<u.length;v++){f.index>v?(m=f,f=null):m=f.sibling;var g=p(o,f,u[v],s);if(null===g){null===f&&(f=m);break}e&&f&&null===g.alternate&&t(o,f),i=a(g,i,v),null===l?c=g:l.sibling=g,l=g,f=m}if(v===u.length)return n(o,f),c;if(null===f){for(;v<u.length;v++)null!==(f=d(o,u[v],s))&&(i=a(f,i,v),null===l?c=f:l.sibling=f,l=f);return c}for(f=r(o,f);v<u.length;v++)null!==(m=h(f,o,v,u[v],s))&&(e&&null!==m.alternate&&f.delete(null===m.key?v:m.key),i=a(m,i,v),null===l?c=m:l.sibling=m,l=m);return e&&f.forEach((function(e){return t(o,e)})),c}function m(o,u,s,c){var l=Y(s);if("function"!=typeof l)throw Error(i(150));if(null==(s=l.call(s)))throw Error(i(151));for(var f=l=null,v=u,m=u=0,g=null,y=s.next();null!==v&&!y.done;m++,y=s.next()){v.index>m?(g=v,v=null):g=v.sibling;var b=p(o,v,y.value,c);if(null===b){null===v&&(v=g);break}e&&v&&null===b.alternate&&t(o,v),u=a(b,u,m),null===f?l=b:f.sibling=b,f=b,v=g}if(y.done)return n(o,v),l;if(null===v){for(;!y.done;m++,y=s.next())null!==(y=d(o,y.value,c))&&(u=a(y,u,m),null===f?l=y:f.sibling=y,f=y);return l}for(v=r(o,v);!y.done;m++,y=s.next())null!==(y=h(v,o,m,y.value,c))&&(e&&null!==y.alternate&&v.delete(null===y.key?m:y.key),u=a(y,u,m),null===f?l=y:f.sibling=y,f=y);return e&&v.forEach((function(e){return t(o,e)})),l}return function(e,r,a,s){var c="object"==typeof a&&null!==a&&a.type===L&&null===a.key;c&&(a=a.props.children);var l="object"==typeof a&&null!==a;if(l)switch(a.$$typeof){case F:e:{for(l=a.key,c=r;null!==c;){if(c.key===l){if(7===c.tag?a.type===L:c.elementType===a.type){n(e,c.sibling),(r=o(c,a.type===L?a.props.children:a.props)).ref=Pa(e,c,a),r.return=e,e=r;break e}n(e,c);break}t(e,c),c=c.sibling}a.type===L?((r=Us(a.props.children,e.mode,s,a.key)).return=e,e=r):((s=Ws(a.type,a.key,a.props,null,e.mode,s)).ref=Pa(e,r,a),s.return=e,e=s)}return u(e);case B:e:{for(c=a.key;null!==r;){if(r.key===c){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=o(r,a.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=js(a,e.mode,s)).return=e,e=r}return u(e)}if("string"==typeof a||"number"==typeof a)return a=""+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=o(r,a)).return=e,e=r):(n(e,r),(r=zs(a,e.mode,s)).return=e,e=r),u(e);if(Na(a))return v(e,r,a,s);if(Y(a))return m(e,r,a,s);if(l&&Ma(e,a),void 0===a&&!c)switch(e.tag){case 1:case 0:throw e=e.type,Error(i(152,e.displayName||e.name||"Component"))}return n(e,r)}}var Ba=Fa(!0),La=Fa(!1),Wa={},Ua={current:Wa},za={current:Wa},ja={current:Wa};function Va(e){if(e===Wa)throw Error(i(174));return e}function Ha(e,t){vo(ja,t),vo(za,e),vo(Ua,Wa);var n=t.nodeType;switch(n){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:ze(null,"");break;default:t=ze(t=(n=8===n?t.parentNode:t).namespaceURI||null,n=n.tagName)}ho(Ua),vo(Ua,t)}function Ga(e){ho(Ua),ho(za),ho(ja)}function qa(e){Va(ja.current);var t=Va(Ua.current),n=ze(t,e.type);t!==n&&(vo(za,e),vo(Ua,n))}function Ka(e){za.current===e&&(ho(Ua),ho(za))}var Xa={current:0};function $a(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||n.data===Jn||n.data===Zn))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.effectTag))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function Ya(e,t){return{responder:e,props:t}}var Qa=N.ReactCurrentDispatcher,Ja=N.ReactCurrentBatchConfig,Za=0,ei=null,ti=null,ni=null,ri=null,oi=null,ai=null,ii=0,ui=null,si=0,ci=!1,li=null,fi=0;function di(){throw Error(i(321))}function pi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!eo(e[n],t[n]))return!1;return!0}function hi(e,t,n,r,o,a){if(Za=a,ei=t,ni=null!==e?e.memoizedState:null,Qa.current=null===ni?Ni:Pi,t=n(r,o),ci){do{ci=!1,fi+=1,ni=null!==e?e.memoizedState:null,ai=ri,ui=oi=ti=null,Qa.current=Pi,t=n(r,o)}while(ci);li=null,fi=0}if(Qa.current=Di,(e=ei).memoizedState=ri,e.expirationTime=ii,e.updateQueue=ui,e.effectTag|=si,e=null!==ti&&null!==ti.next,Za=0,ai=oi=ri=ni=ti=ei=null,ii=0,ui=null,si=0,e)throw Error(i(300));return t}function vi(){Qa.current=Di,Za=0,ai=oi=ri=ni=ti=ei=null,ii=0,ui=null,si=0,ci=!1,li=null,fi=0}function mi(){var e={memoizedState:null,baseState:null,queue:null,baseUpdate:null,next:null};return null===oi?ri=oi=e:oi=oi.next=e,oi}function gi(){if(null!==ai)ai=(oi=ai).next,ni=null!==(ti=ni)?ti.next:null;else{if(null===ni)throw Error(i(310));var e={memoizedState:(ti=ni).memoizedState,baseState:ti.baseState,queue:ti.queue,baseUpdate:ti.baseUpdate,next:null};oi=null===oi?ri=e:oi.next=e,ni=ti.next}return oi}function yi(e,t){return"function"==typeof t?t(e):t}function bi(e){var t=gi(),n=t.queue;if(null===n)throw Error(i(311));if(n.lastRenderedReducer=e,0<fi){var r=n.dispatch;if(null!==li){var o=li.get(n);if(void 0!==o){li.delete(n);var a=t.memoizedState;do{a=e(a,o.action),o=o.next}while(null!==o);return eo(a,t.memoizedState)||(Gi=!0),t.memoizedState=a,t.baseUpdate===n.last&&(t.baseState=a),n.lastRenderedState=a,[a,r]}}return[t.memoizedState,r]}r=n.last;var u=t.baseUpdate;if(a=t.baseState,null!==u?(null!==r&&(r.next=null),r=u.next):r=null!==r?r.next:null,null!==r){var s=o=null,c=r,l=!1;do{var f=c.expirationTime;f<Za?(l||(l=!0,s=u,o=a),f>ii&&ys(ii=f)):(gs(f,c.suspenseConfig),a=c.eagerReducer===e?c.eagerState:e(a,c.action)),u=c,c=c.next}while(null!==c&&c!==r);l||(s=u,o=a),eo(a,t.memoizedState)||(Gi=!0),t.memoizedState=a,t.baseUpdate=s,t.baseState=o,n.lastRenderedState=a}return[t.memoizedState,n.dispatch]}function xi(e){var t=mi();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={last:null,dispatch:null,lastRenderedReducer:yi,lastRenderedState:e}).dispatch=Ai.bind(null,ei,e),[t.memoizedState,e]}function wi(e){return bi(yi)}function Ei(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===ui?(ui={lastEffect:null}).lastEffect=e.next=e:null===(t=ui.lastEffect)?ui.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,ui.lastEffect=e),e}function Ci(e,t,n,r){var o=mi();si|=e,o.memoizedState=Ei(t,n,void 0,void 0===r?null:r)}function ki(e,t,n,r){var o=gi();r=void 0===r?null:r;var a=void 0;if(null!==ti){var i=ti.memoizedState;if(a=i.destroy,null!==r&&pi(r,i.deps))return void Ei(0,n,a,r)}si|=e,o.memoizedState=Ei(t,n,a,r)}function _i(e,t){return Ci(516,192,e,t)}function Si(e,t){return ki(516,192,e,t)}function Ri(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Ti(){}function Ii(e,t){return mi().memoizedState=[e,void 0===t?null:t],e}function Oi(e,t){var n=gi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&pi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ai(e,t,n){if(!(25>fi))throw Error(i(301));var r=e.alternate;if(e===ei||null!==r&&r===ei)if(ci=!0,e={expirationTime:Za,suspenseConfig:null,action:n,eagerReducer:null,eagerState:null,next:null},null===li&&(li=new Map),void 0===(n=li.get(t)))li.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}else{var o=os(),a=_a.suspense;a={expirationTime:o=as(o,e,a),suspenseConfig:a,action:n,eagerReducer:null,eagerState:null,next:null};var u=t.last;if(null===u)a.next=a;else{var s=u.next;null!==s&&(a.next=s),u.next=a}if(t.last=a,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.lastRenderedReducer))try{var c=t.lastRenderedState,l=r(c,n);if(a.eagerReducer=r,a.eagerState=l,eo(l,c))return}catch(f){}is(e,o)}}var Di={readContext:da,useCallback:di,useContext:di,useEffect:di,useImperativeHandle:di,useLayoutEffect:di,useMemo:di,useReducer:di,useRef:di,useState:di,useDebugValue:di,useResponder:di,useDeferredValue:di,useTransition:di},Ni={readContext:da,useCallback:Ii,useContext:da,useEffect:_i,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Ci(4,36,Ri.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ci(4,36,e,t)},useMemo:function(e,t){var n=mi();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=mi();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={last:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ai.bind(null,ei,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},mi().memoizedState=e},useState:xi,useDebugValue:Ti,useResponder:Ya,useDeferredValue:function(e,t){var n=xi(e),r=n[0],o=n[1];return _i((function(){a.unstable_next((function(){var n=Ja.suspense;Ja.suspense=void 0===t?null:t;try{o(e)}finally{Ja.suspense=n}}))}),[e,t]),r},useTransition:function(e){var t=xi(!1),n=t[0],r=t[1];return[Ii((function(t){r(!0),a.unstable_next((function(){var n=Ja.suspense;Ja.suspense=void 0===e?null:e;try{r(!1),t()}finally{Ja.suspense=n}}))}),[e,n]),n]}},Pi={readContext:da,useCallback:Oi,useContext:da,useEffect:Si,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,ki(4,36,Ri.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ki(4,36,e,t)},useMemo:function(e,t){var n=gi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&pi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:bi,useRef:function(){return gi().memoizedState},useState:wi,useDebugValue:Ti,useResponder:Ya,useDeferredValue:function(e,t){var n=wi(),r=n[0],o=n[1];return Si((function(){a.unstable_next((function(){var n=Ja.suspense;Ja.suspense=void 0===t?null:t;try{o(e)}finally{Ja.suspense=n}}))}),[e,t]),r},useTransition:function(e){var t=wi(),n=t[0],r=t[1];return[Oi((function(t){r(!0),a.unstable_next((function(){var n=Ja.suspense;Ja.suspense=void 0===e?null:e;try{r(!1),t()}finally{Ja.suspense=n}}))}),[e,n]),n]}},Mi=null,Fi=null,Bi=!1;function Li(e,t){var n=Fs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Wi(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Ui(e){if(Bi){var t=Fi;if(t){var n=t;if(!Wi(e,t)){if(!(t=ir(n.nextSibling))||!Wi(e,t))return e.effectTag=-1025&e.effectTag|2,Bi=!1,void(Mi=e);Li(Mi,n)}Mi=e,Fi=ir(t.firstChild)}else e.effectTag=-1025&e.effectTag|2,Bi=!1,Mi=e}}function zi(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Mi=e}function ji(e){if(e!==Mi)return!1;if(!Bi)return zi(e),Bi=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!rr(t,e.memoizedProps))for(t=Fi;t;)Li(e,t),t=ir(t.nextSibling);if(zi(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){Fi=ir(e.nextSibling);break e}t--}else"$"!==n&&n!==Zn&&n!==Jn||t++}e=e.nextSibling}Fi=null}}else Fi=Mi?ir(e.stateNode.nextSibling):null;return!0}function Vi(){Fi=Mi=null,Bi=!1}var Hi=N.ReactCurrentOwner,Gi=!1;function qi(e,t,n,r){t.child=null===e?La(t,null,n,r):Ba(t,e.child,n,r)}function Ki(e,t,n,r,o){n=n.render;var a=t.ref;return fa(t,o),r=hi(e,t,n,r,a,o),null===e||Gi?(t.effectTag|=1,qi(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=o&&(e.expirationTime=0),cu(e,t,o))}function Xi(e,t,n,r,o,a){if(null===e){var i=n.type;return"function"!=typeof i||Bs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ws(n.type,null,r,null,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,$i(e,t,i,r,o,a))}return i=e.child,o<a&&(o=i.memoizedProps,(n=null!==(n=n.compare)?n:no)(o,r)&&e.ref===t.ref)?cu(e,t,a):(t.effectTag|=1,(e=Ls(i,r)).ref=t.ref,e.return=t,t.child=e)}function $i(e,t,n,r,o,a){return null!==e&&no(e.memoizedProps,r)&&e.ref===t.ref&&(Gi=!1,o<a)?cu(e,t,a):Qi(e,t,n,r,a)}function Yi(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.effectTag|=128)}function Qi(e,t,n,r,o){var a=wo(n)?bo:go.current;return a=xo(t,a),fa(t,o),n=hi(e,t,n,r,a,o),null===e||Gi?(t.effectTag|=1,qi(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=o&&(e.expirationTime=0),cu(e,t,o))}function Ji(e,t,n,r,o){if(wo(n)){var a=!0;So(t)}else a=!1;if(fa(t,o),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),Oa(t,n,r),Da(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,u=t.memoizedProps;i.props=u;var s=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=da(c):c=xo(t,c=wo(n)?bo:go.current);var l=n.getDerivedStateFromProps,f="function"==typeof l||"function"==typeof i.getSnapshotBeforeUpdate;f||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(u!==r||s!==c)&&Aa(t,i,r,c),pa=!1;var d=t.memoizedState;s=i.state=d;var p=t.updateQueue;null!==p&&(Ea(t,p,r,i,o),s=t.memoizedState),u!==r||d!==s||yo.current||pa?("function"==typeof l&&(Ra(t,n,l,r),s=t.memoizedState),(u=pa||Ia(t,n,u,r,d,s,c))?(f||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.effectTag|=4)):("function"==typeof i.componentDidMount&&(t.effectTag|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=c,r=u):("function"==typeof i.componentDidMount&&(t.effectTag|=4),r=!1)}else i=t.stateNode,u=t.memoizedProps,i.props=t.type===t.elementType?u:na(t.type,u),s=i.context,"object"==typeof(c=n.contextType)&&null!==c?c=da(c):c=xo(t,c=wo(n)?bo:go.current),(f="function"==typeof(l=n.getDerivedStateFromProps)||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(u!==r||s!==c)&&Aa(t,i,r,c),pa=!1,s=t.memoizedState,d=i.state=s,null!==(p=t.updateQueue)&&(Ea(t,p,r,i,o),d=t.memoizedState),u!==r||s!==d||yo.current||pa?("function"==typeof l&&(Ra(t,n,l,r),d=t.memoizedState),(l=pa||Ia(t,n,u,r,s,d,c))?(f||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,d,c),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,d,c)),"function"==typeof i.componentDidUpdate&&(t.effectTag|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.effectTag|=256)):("function"!=typeof i.componentDidUpdate||u===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=4),"function"!=typeof i.getSnapshotBeforeUpdate||u===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=256),t.memoizedProps=r,t.memoizedState=d),i.props=r,i.state=d,i.context=c,r=l):("function"!=typeof i.componentDidUpdate||u===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=4),"function"!=typeof i.getSnapshotBeforeUpdate||u===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=256),r=!1);return Zi(e,t,n,r,a,o)}function Zi(e,t,n,r,o,a){Yi(e,t);var i=0!=(64&t.effectTag);if(!r&&!i)return o&&Ro(t,n,!1),cu(e,t,a);r=t.stateNode,Hi.current=t;var u=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.effectTag|=1,null!==e&&i?(t.child=Ba(t,e.child,null,a),t.child=Ba(t,null,u,a)):qi(e,t,u,a),t.memoizedState=r.state,o&&Ro(t,n,!0),t.child}function eu(e){var t=e.stateNode;t.pendingContext?ko(0,t.pendingContext,t.pendingContext!==t.context):t.context&&ko(0,t.context,!1),Ha(e,t.containerInfo)}var tu,nu,ru,ou={dehydrated:null,retryTime:0};function au(e,t,n){var r,o=t.mode,a=t.pendingProps,i=Xa.current,u=!1;if((r=0!=(64&t.effectTag))||(r=0!=(2&i)&&(null===e||null!==e.memoizedState)),r?(u=!0,t.effectTag&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(i|=1),vo(Xa,1&i),null===e){if(void 0!==a.fallback&&Ui(t),u){if(u=a.fallback,(a=Us(null,o,0,null)).return=t,0==(2&t.mode))for(e=null!==t.memoizedState?t.child.child:t.child,a.child=e;null!==e;)e.return=a,e=e.sibling;return(n=Us(u,o,n,null)).return=t,a.sibling=n,t.memoizedState=ou,t.child=a,n}return o=a.children,t.memoizedState=null,t.child=La(t,null,o,n)}if(null!==e.memoizedState){if(o=(e=e.child).sibling,u){if(a=a.fallback,(n=Ls(e,e.pendingProps)).return=t,0==(2&t.mode)&&(u=null!==t.memoizedState?t.child.child:t.child)!==e.child)for(n.child=u;null!==u;)u.return=n,u=u.sibling;return(o=Ls(o,a,o.expirationTime)).return=t,n.sibling=o,n.childExpirationTime=0,t.memoizedState=ou,t.child=n,o}return n=Ba(t,e.child,a.children,n),t.memoizedState=null,t.child=n}if(e=e.child,u){if(u=a.fallback,(a=Us(null,o,0,null)).return=t,a.child=e,null!==e&&(e.return=a),0==(2&t.mode))for(e=null!==t.memoizedState?t.child.child:t.child,a.child=e;null!==e;)e.return=a,e=e.sibling;return(n=Us(u,o,n,null)).return=t,a.sibling=n,n.effectTag|=2,a.childExpirationTime=0,t.memoizedState=ou,t.child=a,n}return t.memoizedState=null,t.child=Ba(t,e,a.children,n)}function iu(e,t){e.expirationTime<t&&(e.expirationTime=t);var n=e.alternate;null!==n&&n.expirationTime<t&&(n.expirationTime=t),la(e.return,t)}function uu(e,t,n,r,o,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,last:r,tail:n,tailExpiration:0,tailMode:o,lastEffect:a}:(i.isBackwards=t,i.rendering=null,i.last=r,i.tail=n,i.tailExpiration=0,i.tailMode=o,i.lastEffect=a)}function su(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(qi(e,t,r.children,n),0!=(2&(r=Xa.current)))r=1&r|2,t.effectTag|=64;else{if(null!==e&&0!=(64&e.effectTag))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&iu(e,n);else if(19===e.tag)iu(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(vo(Xa,r),0==(2&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===$a(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),uu(t,!1,o,n,a,t.lastEffect);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===$a(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}uu(t,!0,n,null,a,t.lastEffect);break;case"together":uu(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function cu(e,t,n){null!==e&&(t.dependencies=e.dependencies);var r=t.expirationTime;if(0!==r&&ys(r),t.childExpirationTime<n)return null;if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Ls(e=t.child,e.pendingProps,e.expirationTime),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Ls(e,e.pendingProps,e.expirationTime)).return=t;n.sibling=null}return t.child}function lu(e){e.effectTag|=4}function fu(e,t){switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function du(e){switch(e.tag){case 1:wo(e.type)&&Eo();var t=e.effectTag;return 4096&t?(e.effectTag=-4097&t|64,e):null;case 3:if(Ga(),Co(),0!=(64&(t=e.effectTag)))throw Error(i(285));return e.effectTag=-4097&t|64,e;case 5:return Ka(e),null;case 13:return ho(Xa),4096&(t=e.effectTag)?(e.effectTag=-4097&t|64,e):null;case 19:return ho(Xa),null;case 4:return Ga(),null;case 10:return ca(e),null;default:return null}}function pu(e,t){return{value:e,source:t,stack:J(t)}}tu=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},nu=function(e,t,n,r,a){var i=e.memoizedProps;if(i!==r){var u,s,c=t.stateNode;switch(Va(Ua.current),e=null,n){case"input":i=Se(c,i),r=Se(c,r),e=[];break;case"option":i=De(c,i),r=De(c,r),e=[];break;case"select":i=o({},i,{value:void 0}),r=o({},r,{value:void 0}),e=[];break;case"textarea":i=Pe(c,i),r=Pe(c,r),e=[];break;default:"function"!=typeof i.onClick&&"function"==typeof r.onClick&&(c.onclick=Gn)}for(u in jn(n,r),n=null,i)if(!r.hasOwnProperty(u)&&i.hasOwnProperty(u)&&null!=i[u])if("style"===u)for(s in c=i[u])c.hasOwnProperty(s)&&(n||(n={}),n[s]="");else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(p.hasOwnProperty(u)?e||(e=[]):(e=e||[]).push(u,null));for(u in r){var l=r[u];if(c=null!=i?i[u]:void 0,r.hasOwnProperty(u)&&l!==c&&(null!=l||null!=c))if("style"===u)if(c){for(s in c)!c.hasOwnProperty(s)||l&&l.hasOwnProperty(s)||(n||(n={}),n[s]="");for(s in l)l.hasOwnProperty(s)&&c[s]!==l[s]&&(n||(n={}),n[s]=l[s])}else n||(e||(e=[]),e.push(u,n)),n=l;else"dangerouslySetInnerHTML"===u?(l=l?l.__html:void 0,c=c?c.__html:void 0,null!=l&&c!==l&&(e=e||[]).push(u,""+l)):"children"===u?c===l||"string"!=typeof l&&"number"!=typeof l||(e=e||[]).push(u,""+l):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(p.hasOwnProperty(u)?(null!=l&&Hn(a,u),e||c===l||(e=[])):(e=e||[]).push(u,l))}n&&(e=e||[]).push("style",n),a=e,(t.updateQueue=a)&&lu(t)}},ru=function(e,t,n,r){n!==r&&lu(t)};var hu="function"==typeof WeakSet?WeakSet:Set;function vu(e,t){var n=t.source,r=t.stack;null===r&&null!==n&&(r=J(n)),null!==n&&Q(n.type),t=t.value,null!==e&&1===e.tag&&Q(e.type);try{console.error(t)}catch(o){setTimeout((function(){throw o}))}}function mu(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){Os(e,n)}else t.current=null}function gu(e,t){switch(t.tag){case 0:case 11:case 15:yu(2,0,t);break;case 1:if(256&t.effectTag&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:na(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}break;case 3:case 5:case 6:case 4:case 17:break;default:throw Error(i(163))}}function yu(e,t,n){if(null!==(n=null!==(n=n.updateQueue)?n.lastEffect:null)){var r=n=n.next;do{if(0!=(r.tag&e)){var o=r.destroy;r.destroy=void 0,void 0!==o&&o()}0!=(r.tag&t)&&(o=r.create,r.destroy=o()),r=r.next}while(r!==n)}}function bu(e,t,n){switch("function"==typeof Ps&&Ps(t),t.tag){case 0:case 11:case 14:case 15:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var r=e.next;$o(97<n?97:n,(function(){var e=r;do{var n=e.destroy;if(void 0!==n){var o=t;try{n()}catch(a){Os(o,a)}}e=e.next}while(e!==r)}))}break;case 1:mu(t),"function"==typeof(n=t.stateNode).componentWillUnmount&&function(e,t){try{t.props=e.memoizedProps,t.state=e.memoizedState,t.componentWillUnmount()}catch(n){Os(e,n)}}(t,n);break;case 5:mu(t);break;case 4:Cu(e,t,n)}}function xu(e){var t=e.alternate;e.return=null,e.child=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.alternate=null,e.firstEffect=null,e.lastEffect=null,e.pendingProps=null,e.memoizedProps=null,null!==t&&xu(t)}function wu(e){return 5===e.tag||3===e.tag||4===e.tag}function Eu(e){e:{for(var t=e.return;null!==t;){if(wu(t)){var n=t;break e}t=t.return}throw Error(i(160))}switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.effectTag&&(Ge(t,""),n.effectTag&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||wu(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.effectTag)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.effectTag)){n=n.stateNode;break e}}for(var o=e;;){var a=5===o.tag||6===o.tag;if(a){var u=a?o.stateNode:o.stateNode.instance;if(n)if(r){var s=u;u=n,8===(a=t).nodeType?a.parentNode.insertBefore(s,u):a.insertBefore(s,u)}else t.insertBefore(u,n);else r?(8===(s=t).nodeType?(a=s.parentNode).insertBefore(u,s):(a=s).appendChild(u),null!=(s=s._reactRootContainer)||null!==a.onclick||(a.onclick=Gn)):t.appendChild(u)}else if(4!==o.tag&&null!==o.child){o.child.return=o,o=o.child;continue}if(o===e)break;for(;null===o.sibling;){if(null===o.return||o.return===e)return;o=o.return}o.sibling.return=o.return,o=o.sibling}}function Cu(e,t,n){for(var r,o,a=t,u=!1;;){if(!u){u=a.return;e:for(;;){if(null===u)throw Error(i(160));switch(r=u.stateNode,u.tag){case 5:o=!1;break e;case 3:case 4:r=r.containerInfo,o=!0;break e}u=u.return}u=!0}if(5===a.tag||6===a.tag){e:for(var s=e,c=a,l=n,f=c;;)if(bu(s,f,l),null!==f.child&&4!==f.tag)f.child.return=f,f=f.child;else{if(f===c)break;for(;null===f.sibling;){if(null===f.return||f.return===c)break e;f=f.return}f.sibling.return=f.return,f=f.sibling}o?(s=r,c=a.stateNode,8===s.nodeType?s.parentNode.removeChild(c):s.removeChild(c)):r.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){r=a.stateNode.containerInfo,o=!0,a.child.return=a,a=a.child;continue}}else if(bu(e,a,n),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(u=!1)}a.sibling.return=a.return,a=a.sibling}}function ku(e,t){switch(t.tag){case 0:case 11:case 14:case 15:yu(4,8,t);break;case 1:case 12:case 17:case 20:case 21:break;case 5:var n=t.stateNode;if(null!=n){var r=t.memoizedProps,o=null!==e?e.memoizedProps:r;e=t.type;var a=t.updateQueue;if(t.updateQueue=null,null!==a){for(n[lr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&Te(n,r),Vn(e,o),t=Vn(e,r),o=0;o<a.length;o+=2){var u=a[o],s=a[o+1];"style"===u?Un(n,s):"dangerouslySetInnerHTML"===u?He(n,s):"children"===u?Ge(n,s):Ee(n,u,s,t)}switch(e){case"input":Ie(n,r);break;case"textarea":Fe(n,r);break;case"select":t=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(e=r.value)?Ne(n,!!r.multiple,e,!1):t!==!!r.multiple&&(null!=r.defaultValue?Ne(n,!!r.multiple,r.defaultValue,!0):Ne(n,!!r.multiple,r.multiple?[]:"",!1))}}}break;case 6:if(null===t.stateNode)throw Error(i(162));t.stateNode.nodeValue=t.memoizedProps;break;case 3:(t=t.stateNode).hydrate&&(t.hydrate=!1,Rt(t.containerInfo));break;case 13:if(n=t,null===t.memoizedState?r=!1:(r=!0,n=t.child,qu=qo()),null!==n)e:for(e=n;;){if(5===e.tag)a=e.stateNode,r?"function"==typeof(a=a.style).setProperty?a.setProperty("display","none","important"):a.display="none":(a=e.stateNode,o=null!=(o=e.memoizedProps.style)&&o.hasOwnProperty("display")?o.display:null,a.style.display=Wn("display",o));else if(6===e.tag)e.stateNode.nodeValue=r?"":e.memoizedProps;else{if(13===e.tag&&null!==e.memoizedState&&null===e.memoizedState.dehydrated){(a=e.child.sibling).return=e,e=a;continue}if(null!==e.child){e.child.return=e,e=e.child;continue}}if(e===n)break e;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}_u(t);break;case 19:_u(t);break;default:throw Error(i(163))}}function _u(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new hu),t.forEach((function(t){var r=Ds.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}var Su="function"==typeof WeakMap?WeakMap:Map;function Ru(e,t,n){(n=ma(n,null)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Xu||(Xu=!0,$u=r),vu(e,t)},n}function Tu(e,t,n){(n=ma(n,null)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return vu(e,t),r(o)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Yu?Yu=new Set([this]):Yu.add(this),vu(e,t));var n=t.stack;this.componentDidCatch(t.value,{componentStack:null!==n?n:""})}),n}var Iu,Ou=Math.ceil,Au=N.ReactCurrentDispatcher,Du=N.ReactCurrentOwner,Nu=16,Pu=32,Mu=0,Fu=null,Bu=null,Lu=0,Wu=0,Uu=null,zu=1073741823,ju=1073741823,Vu=null,Hu=0,Gu=!1,qu=0,Ku=null,Xu=!1,$u=null,Yu=null,Qu=!1,Ju=null,Zu=90,es=null,ts=0,ns=null,rs=0;function os(){return 0!=(48&Mu)?1073741821-(qo()/10|0):0!==rs?rs:rs=1073741821-(qo()/10|0)}function as(e,t,n){if(0==(2&(t=t.mode)))return 1073741823;var r=Ko();if(0==(4&t))return 99===r?1073741823:1073741822;if(0!=(Mu&Nu))return Lu;if(null!==n)e=ta(e,0|n.timeoutMs||5e3,250);else switch(r){case 99:e=1073741823;break;case 98:e=ta(e,150,100);break;case 97:case 96:e=ta(e,5e3,250);break;case 95:e=2;break;default:throw Error(i(326))}return null!==Fu&&e===Lu&&--e,e}function is(e,t){if(50<ts)throw ts=0,ns=null,Error(i(185));if(null!==(e=us(e,t))){var n=Ko();1073741823===t?0!=(8&Mu)&&0==(48&Mu)?fs(e):(cs(e),0===Mu&&Jo()):cs(e),0==(4&Mu)||98!==n&&99!==n||(null===es?es=new Map([[e,t]]):(void 0===(n=es.get(e))||n>t)&&es.set(e,t))}}function us(e,t){e.expirationTime<t&&(e.expirationTime=t);var n=e.alternate;null!==n&&n.expirationTime<t&&(n.expirationTime=t);var r=e.return,o=null;if(null===r&&3===e.tag)o=e.stateNode;else for(;null!==r;){if(n=r.alternate,r.childExpirationTime<t&&(r.childExpirationTime=t),null!==n&&n.childExpirationTime<t&&(n.childExpirationTime=t),null===r.return&&3===r.tag){o=r.stateNode;break}r=r.return}return null!==o&&(Fu===o&&(ys(t),4===Wu&&Gs(o,Lu)),qs(o,t)),o}function ss(e){var t=e.lastExpiredTime;return 0!==t?t:Hs(e,t=e.firstPendingTime)?(t=e.lastPingedTime)>(e=e.nextKnownPendingLevel)?t:e:t}function cs(e){if(0!==e.lastExpiredTime)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=Qo(fs.bind(null,e));else{var t=ss(e),n=e.callbackNode;if(0===t)null!==n&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var r=os();if(1073741823===t?r=99:1===t||2===t?r=95:r=0>=(r=10*(1073741821-t)-10*(1073741821-r))?99:250>=r?98:5250>=r?97:95,null!==n){var o=e.callbackPriority;if(e.callbackExpirationTime===t&&o>=r)return;n!==Uo&&Oo(n)}e.callbackExpirationTime=t,e.callbackPriority=r,t=1073741823===t?Qo(fs.bind(null,e)):Yo(r,ls.bind(null,e),{timeout:10*(1073741821-t)-qo()}),e.callbackNode=t}}}function ls(e,t){if(rs=0,t)return Ks(e,t=os()),cs(e),null;var n=ss(e);if(0!==n){if(t=e.callbackNode,0!=(48&Mu))throw Error(i(327));if(Rs(),e===Fu&&n===Lu||hs(e,n),null!==Bu){var r=Mu;Mu|=Nu;for(var o=ms();;)try{xs();break}catch(s){vs(e,s)}if(ua(),Mu=r,Au.current=o,1===Wu)throw t=Uu,hs(e,n),Gs(e,n),cs(e),t;if(null===Bu)switch(o=e.finishedWork=e.current.alternate,e.finishedExpirationTime=n,r=Wu,Fu=null,r){case 0:case 1:throw Error(i(345));case 2:Ks(e,2<n?2:n);break;case 3:if(Gs(e,n),n===(r=e.lastSuspendedTime)&&(e.nextKnownPendingLevel=Cs(o)),1073741823===zu&&10<(o=qu+500-qo())){if(Gu){var a=e.lastPingedTime;if(0===a||a>=n){e.lastPingedTime=n,hs(e,n);break}}if(0!==(a=ss(e))&&a!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}e.timeoutHandle=or(ks.bind(null,e),o);break}ks(e);break;case 4:if(Gs(e,n),n===(r=e.lastSuspendedTime)&&(e.nextKnownPendingLevel=Cs(o)),Gu&&(0===(o=e.lastPingedTime)||o>=n)){e.lastPingedTime=n,hs(e,n);break}if(0!==(o=ss(e))&&o!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}if(1073741823!==ju?r=10*(1073741821-ju)-qo():1073741823===zu?r=0:(r=10*(1073741821-zu)-5e3,0>(r=(o=qo())-r)&&(r=0),(n=10*(1073741821-n)-o)<(r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Ou(r/1960))-r)&&(r=n)),10<r){e.timeoutHandle=or(ks.bind(null,e),r);break}ks(e);break;case 5:if(1073741823!==zu&&null!==Vu){a=zu;var u=Vu;if(0>=(r=0|u.busyMinDurationMs)?r=0:(o=0|u.busyDelayMs,r=(a=qo()-(10*(1073741821-a)-(0|u.timeoutMs||5e3)))<=o?0:o+r-a),10<r){Gs(e,n),e.timeoutHandle=or(ks.bind(null,e),r);break}}ks(e);break;default:throw Error(i(329))}if(cs(e),e.callbackNode===t)return ls.bind(null,e)}}return null}function fs(e){var t=e.lastExpiredTime;if(t=0!==t?t:1073741823,e.finishedExpirationTime===t)ks(e);else{if(0!=(48&Mu))throw Error(i(327));if(Rs(),e===Fu&&t===Lu||hs(e,t),null!==Bu){var n=Mu;Mu|=Nu;for(var r=ms();;)try{bs();break}catch(o){vs(e,o)}if(ua(),Mu=n,Au.current=r,1===Wu)throw n=Uu,hs(e,t),Gs(e,t),cs(e),n;if(null!==Bu)throw Error(i(261));e.finishedWork=e.current.alternate,e.finishedExpirationTime=t,Fu=null,ks(e),cs(e)}}return null}function ds(e,t){var n=Mu;Mu|=1;try{return e(t)}finally{0===(Mu=n)&&Jo()}}function ps(e,t){var n=Mu;Mu&=-2,Mu|=8;try{return e(t)}finally{0===(Mu=n)&&Jo()}}function hs(e,t){e.finishedWork=null,e.finishedExpirationTime=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,ar(n)),null!==Bu)for(n=Bu.return;null!==n;){var r=n;switch(r.tag){case 1:var o=r.type.childContextTypes;null!=o&&Eo();break;case 3:Ga(),Co();break;case 5:Ka(r);break;case 4:Ga();break;case 13:case 19:ho(Xa);break;case 10:ca(r)}n=n.return}Fu=e,Bu=Ls(e.current,null),Lu=t,Wu=0,Uu=null,ju=zu=1073741823,Vu=null,Hu=0,Gu=!1}function vs(e,t){for(;;){try{if(ua(),vi(),null===Bu||null===Bu.return)return Wu=1,Uu=t,null;e:{var n=e,r=Bu.return,o=Bu,a=t;if(t=Lu,o.effectTag|=2048,o.firstEffect=o.lastEffect=null,null!==a&&"object"==typeof a&&"function"==typeof a.then){var i=a,u=0!=(1&Xa.current),s=r;do{var c;if(c=13===s.tag){var l=s.memoizedState;if(null!==l)c=null!==l.dehydrated;else{var f=s.memoizedProps;c=void 0!==f.fallback&&(!0!==f.unstable_avoidThisFallback||!u)}}if(c){var d=s.updateQueue;if(null===d){var p=new Set;p.add(i),s.updateQueue=p}else d.add(i);if(0==(2&s.mode)){if(s.effectTag|=64,o.effectTag&=-2981,1===o.tag)if(null===o.alternate)o.tag=17;else{var h=ma(1073741823,null);h.tag=2,ya(o,h)}o.expirationTime=1073741823;break e}a=void 0,o=t;var v=n.pingCache;if(null===v?(v=n.pingCache=new Su,a=new Set,v.set(i,a)):void 0===(a=v.get(i))&&(a=new Set,v.set(i,a)),!a.has(o)){a.add(o);var m=As.bind(null,n,i,o);i.then(m,m)}s.effectTag|=4096,s.expirationTime=t;break e}s=s.return}while(null!==s);a=Error((Q(o.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display."+J(o))}5!==Wu&&(Wu=2),a=pu(a,o),s=r;do{switch(s.tag){case 3:i=a,s.effectTag|=4096,s.expirationTime=t,ba(s,Ru(s,i,t));break e;case 1:i=a;var g=s.type,y=s.stateNode;if(0==(64&s.effectTag)&&("function"==typeof g.getDerivedStateFromError||null!==y&&"function"==typeof y.componentDidCatch&&(null===Yu||!Yu.has(y)))){s.effectTag|=4096,s.expirationTime=t,ba(s,Tu(s,i,t));break e}}s=s.return}while(null!==s)}Bu=Es(Bu)}catch(b){t=b;continue}break}}function ms(){var e=Au.current;return Au.current=Di,null===e?Di:e}function gs(e,t){e<zu&&2<e&&(zu=e),null!==t&&e<ju&&2<e&&(ju=e,Vu=t)}function ys(e){e>Hu&&(Hu=e)}function bs(){for(;null!==Bu;)Bu=ws(Bu)}function xs(){for(;null!==Bu&&!Ao();)Bu=ws(Bu)}function ws(e){var t=Iu(e.alternate,e,Lu);return e.memoizedProps=e.pendingProps,null===t&&(t=Es(e)),Du.current=null,t}function Es(e){Bu=e;do{var t=Bu.alternate;if(e=Bu.return,0==(2048&Bu.effectTag)){e:{var n=t,r=Lu,a=(t=Bu).pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:case 20:case 21:break;case 1:case 17:wo(t.type)&&Eo();break;case 3:Ga(),Co(),(a=t.stateNode).pendingContext&&(a.context=a.pendingContext,a.pendingContext=null),(null===n||null===n.child)&&ji(t)&&lu(t);break;case 5:Ka(t),r=Va(ja.current);var u=t.type;if(null!==n&&null!=t.stateNode)nu(n,t,u,a,r),n.ref!==t.ref&&(t.effectTag|=128);else if(a){var s=Va(Ua.current);if(ji(t)){var c=(a=t).stateNode;n=a.type;var l=a.memoizedProps,f=r;switch(c[cr]=a,c[lr]=l,u=void 0,r=c,n){case"iframe":case"object":case"embed":Sn("load",r);break;case"video":case"audio":for(c=0;c<tt.length;c++)Sn(tt[c],r);break;case"source":Sn("error",r);break;case"img":case"image":case"link":Sn("error",r),Sn("load",r);break;case"form":Sn("reset",r),Sn("submit",r);break;case"details":Sn("toggle",r);break;case"input":Re(r,l),Sn("invalid",r),Hn(f,"onChange");break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Sn("invalid",r),Hn(f,"onChange");break;case"textarea":Me(r,l),Sn("invalid",r),Hn(f,"onChange")}for(u in jn(n,l),c=null,l)l.hasOwnProperty(u)&&(s=l[u],"children"===u?"string"==typeof s?r.textContent!==s&&(c=["children",s]):"number"==typeof s&&r.textContent!==""+s&&(c=["children",""+s]):p.hasOwnProperty(u)&&null!=s&&Hn(f,u));switch(n){case"input":ke(r),Oe(r,l,!0);break;case"textarea":ke(r),Be(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=Gn)}u=c,a.updateQueue=u,(a=null!==u)&&lu(t)}else{n=t,f=u,l=a,c=9===r.nodeType?r:r.ownerDocument,s===Le&&(s=Ue(f)),s===Le?"script"===f?((l=c.createElement("div")).innerHTML="<script><\/script>",c=l.removeChild(l.firstChild)):"string"==typeof l.is?c=c.createElement(f,{is:l.is}):(c=c.createElement(f),"select"===f&&(f=c,l.multiple?f.multiple=!0:l.size&&(f.size=l.size))):c=c.createElementNS(s,f),(l=c)[cr]=n,l[lr]=a,tu(l,t),t.stateNode=l;var d=r,h=Vn(f=u,n=a);switch(f){case"iframe":case"object":case"embed":Sn("load",l),r=n;break;case"video":case"audio":for(r=0;r<tt.length;r++)Sn(tt[r],l);r=n;break;case"source":Sn("error",l),r=n;break;case"img":case"image":case"link":Sn("error",l),Sn("load",l),r=n;break;case"form":Sn("reset",l),Sn("submit",l),r=n;break;case"details":Sn("toggle",l),r=n;break;case"input":Re(l,n),r=Se(l,n),Sn("invalid",l),Hn(d,"onChange");break;case"option":r=De(l,n);break;case"select":l._wrapperState={wasMultiple:!!n.multiple},r=o({},n,{value:void 0}),Sn("invalid",l),Hn(d,"onChange");break;case"textarea":Me(l,n),r=Pe(l,n),Sn("invalid",l),Hn(d,"onChange");break;default:r=n}jn(f,r),c=void 0,s=f;var v=l,m=r;for(c in m)if(m.hasOwnProperty(c)){var g=m[c];"style"===c?Un(v,g):"dangerouslySetInnerHTML"===c?null!=(g=g?g.__html:void 0)&&He(v,g):"children"===c?"string"==typeof g?("textarea"!==s||""!==g)&&Ge(v,g):"number"==typeof g&&Ge(v,""+g):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(p.hasOwnProperty(c)?null!=g&&Hn(d,c):null!=g&&Ee(v,c,g,h))}switch(f){case"input":ke(l),Oe(l,n,!1);break;case"textarea":ke(l),Be(l);break;case"option":null!=n.value&&l.setAttribute("value",""+we(n.value));break;case"select":(r=l).multiple=!!n.multiple,null!=(l=n.value)?Ne(r,!!n.multiple,l,!1):null!=n.defaultValue&&Ne(r,!!n.multiple,n.defaultValue,!0);break;default:"function"==typeof r.onClick&&(l.onclick=Gn)}(a=nr(u,a))&&lu(t)}null!==t.ref&&(t.effectTag|=128)}else if(null===t.stateNode)throw Error(i(166));break;case 6:if(n&&null!=t.stateNode)ru(0,t,n.memoizedProps,a);else{if("string"!=typeof a&&null===t.stateNode)throw Error(i(166));r=Va(ja.current),Va(Ua.current),ji(t)?(u=(a=t).stateNode,r=a.memoizedProps,u[cr]=a,(a=u.nodeValue!==r)&&lu(t)):(u=t,(a=(9===r.nodeType?r:r.ownerDocument).createTextNode(a))[cr]=u,t.stateNode=a)}break;case 13:if(ho(Xa),a=t.memoizedState,0!=(64&t.effectTag)){t.expirationTime=r;break e}a=null!==a,u=!1,null===n?void 0!==t.memoizedProps.fallback&&ji(t):(u=null!==(r=n.memoizedState),a||null===r||null!==(r=n.child.sibling)&&(null!==(l=t.firstEffect)?(t.firstEffect=r,r.nextEffect=l):(t.firstEffect=t.lastEffect=r,r.nextEffect=null),r.effectTag=8)),a&&!u&&0!=(2&t.mode)&&(null===n&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Xa.current)?0===Wu&&(Wu=3):(0!==Wu&&3!==Wu||(Wu=4),0!==Hu&&null!==Fu&&(Gs(Fu,Lu),qs(Fu,Hu)))),(a||u)&&(t.effectTag|=4);break;case 4:Ga();break;case 10:ca(t);break;case 19:if(ho(Xa),null===(a=t.memoizedState))break;if(u=0!=(64&t.effectTag),null===(l=a.rendering)){if(u)fu(a,!1);else if(0!==Wu||null!==n&&0!=(64&n.effectTag))for(n=t.child;null!==n;){if(null!==(l=$a(n))){for(t.effectTag|=64,fu(a,!1),null!==(u=l.updateQueue)&&(t.updateQueue=u,t.effectTag|=4),null===a.lastEffect&&(t.firstEffect=null),t.lastEffect=a.lastEffect,a=r,u=t.child;null!==u;)n=a,(r=u).effectTag&=2,r.nextEffect=null,r.firstEffect=null,r.lastEffect=null,null===(l=r.alternate)?(r.childExpirationTime=0,r.expirationTime=n,r.child=null,r.memoizedProps=null,r.memoizedState=null,r.updateQueue=null,r.dependencies=null):(r.childExpirationTime=l.childExpirationTime,r.expirationTime=l.expirationTime,r.child=l.child,r.memoizedProps=l.memoizedProps,r.memoizedState=l.memoizedState,r.updateQueue=l.updateQueue,n=l.dependencies,r.dependencies=null===n?null:{expirationTime:n.expirationTime,firstContext:n.firstContext,responders:n.responders}),u=u.sibling;vo(Xa,1&Xa.current|2),t=t.child;break e}n=n.sibling}}else{if(!u)if(null!==(n=$a(l))){if(t.effectTag|=64,u=!0,null!==(r=n.updateQueue)&&(t.updateQueue=r,t.effectTag|=4),fu(a,!0),null===a.tail&&"hidden"===a.tailMode&&!l.alternate){null!==(t=t.lastEffect=a.lastEffect)&&(t.nextEffect=null);break}}else qo()>a.tailExpiration&&1<r&&(t.effectTag|=64,u=!0,fu(a,!1),t.expirationTime=t.childExpirationTime=r-1);a.isBackwards?(l.sibling=t.child,t.child=l):(null!==(r=a.last)?r.sibling=l:t.child=l,a.last=l)}if(null!==a.tail){0===a.tailExpiration&&(a.tailExpiration=qo()+500),r=a.tail,a.rendering=r,a.tail=r.sibling,a.lastEffect=t.lastEffect,r.sibling=null,a=Xa.current,vo(Xa,a=u?1&a|2:1&a),t=r;break e}break;default:throw Error(i(156,t.tag))}t=null}if(a=Bu,1===Lu||1!==a.childExpirationTime){for(u=0,r=a.child;null!==r;)(n=r.expirationTime)>u&&(u=n),(l=r.childExpirationTime)>u&&(u=l),r=r.sibling;a.childExpirationTime=u}if(null!==t)return t;null!==e&&0==(2048&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=Bu.firstEffect),null!==Bu.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=Bu.firstEffect),e.lastEffect=Bu.lastEffect),1<Bu.effectTag&&(null!==e.lastEffect?e.lastEffect.nextEffect=Bu:e.firstEffect=Bu,e.lastEffect=Bu))}else{if(null!==(t=du(Bu)))return t.effectTag&=2047,t;null!==e&&(e.firstEffect=e.lastEffect=null,e.effectTag|=2048)}if(null!==(t=Bu.sibling))return t;Bu=e}while(null!==Bu);return 0===Wu&&(Wu=5),null}function Cs(e){var t=e.expirationTime;return t>(e=e.childExpirationTime)?t:e}function ks(e){var t=Ko();return $o(99,_s.bind(null,e,t)),null}function _s(e,t){do{Rs()}while(null!==Ju);if(0!=(48&Mu))throw Error(i(327));var n=e.finishedWork,r=e.finishedExpirationTime;if(null===n)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,n===e.current)throw Error(i(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var o=Cs(n);if(e.firstPendingTime=o,r<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:r<=e.firstSuspendedTime&&(e.firstSuspendedTime=r-1),r<=e.lastPingedTime&&(e.lastPingedTime=0),r<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===Fu&&(Bu=Fu=null,Lu=0),1<n.effectTag?null!==n.lastEffect?(n.lastEffect.nextEffect=n,o=n.firstEffect):o=n:o=n.firstEffect,null!==o){var a=Mu;Mu|=Pu,Du.current=null,er=_n;var u=Yn();if(Qn(u)){if("selectionStart"in u)var s={start:u.selectionStart,end:u.selectionEnd};else e:{var c=(s=(s=u.ownerDocument)&&s.defaultView||window).getSelection&&s.getSelection();if(c&&0!==c.rangeCount){s=c.anchorNode;var l=c.anchorOffset,f=c.focusNode;c=c.focusOffset;try{s.nodeType,f.nodeType}catch(M){s=null;break e}var d=0,p=-1,h=-1,v=0,m=0,g=u,y=null;t:for(;;){for(var b;g!==s||0!==l&&3!==g.nodeType||(p=d+l),g!==f||0!==c&&3!==g.nodeType||(h=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(b=g.firstChild);)y=g,g=b;for(;;){if(g===u)break t;if(y===s&&++v===l&&(p=d),y===f&&++m===c&&(h=d),null!==(b=g.nextSibling))break;y=(g=y).parentNode}g=b}s=-1===p||-1===h?null:{start:p,end:h}}else s=null}s=s||{start:0,end:0}}else s=null;tr={focusedElem:u,selectionRange:s},_n=!1,Ku=o;do{try{Ss()}catch(M){if(null===Ku)throw Error(i(330));Os(Ku,M),Ku=Ku.nextEffect}}while(null!==Ku);Ku=o;do{try{for(u=e,s=t;null!==Ku;){var x=Ku.effectTag;if(16&x&&Ge(Ku.stateNode,""),128&x){var w=Ku.alternate;if(null!==w){var E=w.ref;null!==E&&("function"==typeof E?E(null):E.current=null)}}switch(1038&x){case 2:Eu(Ku),Ku.effectTag&=-3;break;case 6:Eu(Ku),Ku.effectTag&=-3,ku(Ku.alternate,Ku);break;case 1024:Ku.effectTag&=-1025;break;case 1028:Ku.effectTag&=-1025,ku(Ku.alternate,Ku);break;case 4:ku(Ku.alternate,Ku);break;case 8:Cu(u,l=Ku,s),xu(l)}Ku=Ku.nextEffect}}catch(M){if(null===Ku)throw Error(i(330));Os(Ku,M),Ku=Ku.nextEffect}}while(null!==Ku);if(E=tr,w=Yn(),x=E.focusedElem,s=E.selectionRange,w!==x&&x&&x.ownerDocument&&$n(x.ownerDocument.documentElement,x)){null!==s&&Qn(x)&&(w=s.start,void 0===(E=s.end)&&(E=w),"selectionStart"in x?(x.selectionStart=w,x.selectionEnd=Math.min(E,x.value.length)):(E=(w=x.ownerDocument||document)&&w.defaultView||window).getSelection&&(E=E.getSelection(),l=x.textContent.length,u=Math.min(s.start,l),s=void 0===s.end?u:Math.min(s.end,l),!E.extend&&u>s&&(l=s,s=u,u=l),l=Xn(x,u),f=Xn(x,s),l&&f&&(1!==E.rangeCount||E.anchorNode!==l.node||E.anchorOffset!==l.offset||E.focusNode!==f.node||E.focusOffset!==f.offset)&&((w=w.createRange()).setStart(l.node,l.offset),E.removeAllRanges(),u>s?(E.addRange(w),E.extend(f.node,f.offset)):(w.setEnd(f.node,f.offset),E.addRange(w))))),w=[];for(E=x;E=E.parentNode;)1===E.nodeType&&w.push({element:E,left:E.scrollLeft,top:E.scrollTop});for("function"==typeof x.focus&&x.focus(),x=0;x<w.length;x++)(E=w[x]).element.scrollLeft=E.left,E.element.scrollTop=E.top}tr=null,_n=!!er,er=null,e.current=n,Ku=o;do{try{for(x=r;null!==Ku;){var C=Ku.effectTag;if(36&C){var k=Ku.alternate;switch(E=x,(w=Ku).tag){case 0:case 11:case 15:yu(16,32,w);break;case 1:var _=w.stateNode;if(4&w.effectTag)if(null===k)_.componentDidMount();else{var S=w.elementType===w.type?k.memoizedProps:na(w.type,k.memoizedProps);_.componentDidUpdate(S,k.memoizedState,_.__reactInternalSnapshotBeforeUpdate)}var R=w.updateQueue;null!==R&&Ca(0,R,_);break;case 3:var T=w.updateQueue;if(null!==T){if(u=null,null!==w.child)switch(w.child.tag){case 5:case 1:u=w.child.stateNode}Ca(0,T,u)}break;case 5:var I=w.stateNode;null===k&&4&w.effectTag&&nr(w.type,w.memoizedProps)&&I.focus();break;case 6:case 4:case 12:case 19:case 17:case 20:case 21:break;case 13:if(null===w.memoizedState){var O=w.alternate;if(null!==O){var A=O.memoizedState;if(null!==A){var D=A.dehydrated;null!==D&&Rt(D)}}}break;default:throw Error(i(163))}}if(128&C){w=void 0;var N=Ku.ref;if(null!==N){var P=Ku.stateNode;Ku.tag,w=P,"function"==typeof N?N(w):N.current=w}}Ku=Ku.nextEffect}}catch(M){if(null===Ku)throw Error(i(330));Os(Ku,M),Ku=Ku.nextEffect}}while(null!==Ku);Ku=null,zo(),Mu=a}else e.current=n;if(Qu)Qu=!1,Ju=e,Zu=t;else for(Ku=o;null!==Ku;)t=Ku.nextEffect,Ku.nextEffect=null,Ku=t;if(0===(t=e.firstPendingTime)&&(Yu=null),1073741823===t?e===ns?ts++:(ts=0,ns=e):ts=0,"function"==typeof Ns&&Ns(n.stateNode,r),cs(e),Xu)throw Xu=!1,e=$u,$u=null,e;return 0!=(8&Mu)||Jo(),null}function Ss(){for(;null!==Ku;){var e=Ku.effectTag;0!=(256&e)&&gu(Ku.alternate,Ku),0==(512&e)||Qu||(Qu=!0,Yo(97,(function(){return Rs(),null}))),Ku=Ku.nextEffect}}function Rs(){if(90!==Zu){var e=97<Zu?97:Zu;return Zu=90,$o(e,Ts)}}function Ts(){if(null===Ju)return!1;var e=Ju;if(Ju=null,0!=(48&Mu))throw Error(i(331));var t=Mu;for(Mu|=Pu,e=e.current.firstEffect;null!==e;){try{var n=e;if(0!=(512&n.effectTag))switch(n.tag){case 0:case 11:case 15:yu(128,0,n),yu(0,64,n)}}catch(r){if(null===e)throw Error(i(330));Os(e,r)}n=e.nextEffect,e.nextEffect=null,e=n}return Mu=t,Jo(),!0}function Is(e,t,n){ya(e,t=Ru(e,t=pu(n,t),1073741823)),null!==(e=us(e,1073741823))&&cs(e)}function Os(e,t){if(3===e.tag)Is(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Is(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Yu||!Yu.has(r))){ya(n,e=Tu(n,e=pu(t,e),1073741823)),null!==(n=us(n,1073741823))&&cs(n);break}}n=n.return}}function As(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),Fu===e&&Lu===n?4===Wu||3===Wu&&1073741823===zu&&qo()-qu<500?hs(e,Lu):Gu=!0:Hs(e,n)&&(0!==(t=e.lastPingedTime)&&t<n||(e.lastPingedTime=n,e.finishedExpirationTime===n&&(e.finishedExpirationTime=0,e.finishedWork=null),cs(e)))}function Ds(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(t=as(t=os(),e,null)),null!==(e=us(e,t))&&cs(e)}Iu=function(e,t,n){var r=t.expirationTime;if(null!==e){var o=t.pendingProps;if(e.memoizedProps!==o||yo.current)Gi=!0;else{if(r<n){switch(Gi=!1,t.tag){case 3:eu(t),Vi();break;case 5:if(qa(t),4&t.mode&&1!==n&&o.hidden)return t.expirationTime=t.childExpirationTime=1,null;break;case 1:wo(t.type)&&So(t);break;case 4:Ha(t,t.stateNode.containerInfo);break;case 10:sa(t,t.memoizedProps.value);break;case 13:if(null!==t.memoizedState)return 0!==(r=t.child.childExpirationTime)&&r>=n?au(e,t,n):(vo(Xa,1&Xa.current),null!==(t=cu(e,t,n))?t.sibling:null);vo(Xa,1&Xa.current);break;case 19:if(r=t.childExpirationTime>=n,0!=(64&e.effectTag)){if(r)return su(e,t,n);t.effectTag|=64}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null),vo(Xa,Xa.current),!r)return null}return cu(e,t,n)}Gi=!1}}else Gi=!1;switch(t.expirationTime=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,o=xo(t,go.current),fa(t,n),o=hi(null,t,r,e,o,n),t.effectTag|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof){if(t.tag=1,vi(),wo(r)){var a=!0;So(t)}else a=!1;t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null;var u=r.getDerivedStateFromProps;"function"==typeof u&&Ra(t,r,u,e),o.updater=Ta,t.stateNode=o,o._reactInternalFiber=t,Da(t,r,e,n),t=Zi(null,t,r,!0,a,n)}else t.tag=0,qi(null,t,o,n),t=t.child;return t;case 16:if(o=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,function(e){if(-1===e._status){e._status=0;var t=e._ctor;t=t(),e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}}(o),1!==o._status)throw o._result;switch(o=o._result,t.type=o,a=t.tag=function(e){if("function"==typeof e)return Bs(e)?1:0;if(null!=e){if((e=e.$$typeof)===H)return 11;if(e===K)return 14}return 2}(o),e=na(o,e),a){case 0:t=Qi(null,t,o,e,n);break;case 1:t=Ji(null,t,o,e,n);break;case 11:t=Ki(null,t,o,e,n);break;case 14:t=Xi(null,t,o,na(o.type,e),r,n);break;default:throw Error(i(306,o,""))}return t;case 0:return r=t.type,o=t.pendingProps,Qi(e,t,r,o=t.elementType===r?o:na(r,o),n);case 1:return r=t.type,o=t.pendingProps,Ji(e,t,r,o=t.elementType===r?o:na(r,o),n);case 3:if(eu(t),null===(r=t.updateQueue))throw Error(i(282));if(o=null!==(o=t.memoizedState)?o.element:null,Ea(t,r,t.pendingProps,null,n),(r=t.memoizedState.element)===o)Vi(),t=cu(e,t,n);else{if((o=t.stateNode.hydrate)&&(Fi=ir(t.stateNode.containerInfo.firstChild),Mi=t,o=Bi=!0),o)for(n=La(t,null,r,n),t.child=n;n;)n.effectTag=-3&n.effectTag|1024,n=n.sibling;else qi(e,t,r,n),Vi();t=t.child}return t;case 5:return qa(t),null===e&&Ui(t),r=t.type,o=t.pendingProps,a=null!==e?e.memoizedProps:null,u=o.children,rr(r,o)?u=null:null!==a&&rr(r,a)&&(t.effectTag|=16),Yi(e,t),4&t.mode&&1!==n&&o.hidden?(t.expirationTime=t.childExpirationTime=1,t=null):(qi(e,t,u,n),t=t.child),t;case 6:return null===e&&Ui(t),null;case 13:return au(e,t,n);case 4:return Ha(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ba(t,null,r,n):qi(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,Ki(e,t,r,o=t.elementType===r?o:na(r,o),n);case 7:return qi(e,t,t.pendingProps,n),t.child;case 8:case 12:return qi(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,u=t.memoizedProps,sa(t,a=o.value),null!==u){var s=u.value;if(0===(a=eo(s,a)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,a):1073741823))){if(u.children===o.children&&!yo.current){t=cu(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var c=s.dependencies;if(null!==c){u=s.child;for(var l=c.firstContext;null!==l;){if(l.context===r&&0!=(l.observedBits&a)){1===s.tag&&((l=ma(n,null)).tag=2,ya(s,l)),s.expirationTime<n&&(s.expirationTime=n),null!==(l=s.alternate)&&l.expirationTime<n&&(l.expirationTime=n),la(s.return,n),c.expirationTime<n&&(c.expirationTime=n);break}l=l.next}}else u=10===s.tag&&s.type===t.type?null:s.child;if(null!==u)u.return=s;else for(u=s;null!==u;){if(u===t){u=null;break}if(null!==(s=u.sibling)){s.return=u.return,u=s;break}u=u.return}s=u}}qi(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=(a=t.pendingProps).children,fa(t,n),r=r(o=da(o,a.unstable_observedBits)),t.effectTag|=1,qi(e,t,r,n),t.child;case 14:return a=na(o=t.type,t.pendingProps),Xi(e,t,o,a=na(o.type,a),r,n);case 15:return $i(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:na(r,o),null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),t.tag=1,wo(r)?(e=!0,So(t)):e=!1,fa(t,n),Oa(t,r,o),Da(t,r,o,n),Zi(null,t,r,!0,e,n);case 19:return su(e,t,n)}throw Error(i(156,t.tag))};var Ns=null,Ps=null;function Ms(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Fs(e,t,n,r){return new Ms(e,t,n,r)}function Bs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ls(e,t){var n=e.alternate;return null===n?((n=Fs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.effectTag=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childExpirationTime=e.childExpirationTime,n.expirationTime=e.expirationTime,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{expirationTime:t.expirationTime,firstContext:t.firstContext,responders:t.responders},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ws(e,t,n,r,o,a){var u=2;if(r=e,"function"==typeof e)Bs(e)&&(u=1);else if("string"==typeof e)u=5;else e:switch(e){case L:return Us(n.children,o,a,t);case V:u=8,o|=7;break;case W:u=8,o|=1;break;case U:return(e=Fs(12,n,t,8|o)).elementType=U,e.type=U,e.expirationTime=a,e;case G:return(e=Fs(13,n,t,o)).type=G,e.elementType=G,e.expirationTime=a,e;case q:return(e=Fs(19,n,t,o)).elementType=q,e.expirationTime=a,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case z:u=10;break e;case j:u=9;break e;case H:u=11;break e;case K:u=14;break e;case X:u=16,r=null;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Fs(u,n,t,o)).elementType=e,t.type=r,t.expirationTime=a,t}function Us(e,t,n,r){return(e=Fs(7,e,r,t)).expirationTime=n,e}function zs(e,t,n){return(e=Fs(6,e,null,t)).expirationTime=n,e}function js(e,t,n){return(t=Fs(4,null!==e.children?e.children:[],e.key,t)).expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Vs(e,t,n){this.tag=t,this.current=null,this.containerInfo=e,this.pingCache=this.pendingChildren=null,this.finishedExpirationTime=0,this.finishedWork=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=90,this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}function Hs(e,t){var n=e.firstSuspendedTime;return e=e.lastSuspendedTime,0!==n&&n>=t&&e<=t}function Gs(e,t){var n=e.firstSuspendedTime,r=e.lastSuspendedTime;n<t&&(e.firstSuspendedTime=t),(r>t||0===n)&&(e.lastSuspendedTime=t),t<=e.lastPingedTime&&(e.lastPingedTime=0),t<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function qs(e,t){t>e.firstPendingTime&&(e.firstPendingTime=t);var n=e.firstSuspendedTime;0!==n&&(t>=n?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:t>=e.lastSuspendedTime&&(e.lastSuspendedTime=t+1),t>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=t))}function Ks(e,t){var n=e.lastExpiredTime;(0===n||n>t)&&(e.lastExpiredTime=t)}function Xs(e,t,n,r){var o=t.current,a=os(),u=_a.suspense;a=as(a,o,u);e:if(n){t:{if(nt(n=n._reactInternalFiber)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(wo(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var c=n.type;if(wo(c)){n=_o(n,c,s);break e}}n=s}else n=mo;return null===t.context?t.context=n:t.pendingContext=n,(t=ma(a,u)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),ya(o,t),is(o,a),a}function $s(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Ys(e,t){null!==(e=e.memoizedState)&&null!==e.dehydrated&&e.retryTime<t&&(e.retryTime=t)}function Qs(e,t){Ys(e,t),(e=e.alternate)&&Ys(e,t)}function Js(e,t,n){var r=new Vs(e,t,n=null!=n&&!0===n.hydrate),o=Fs(3,null,null,2===t?7:1===t?3:0);r.current=o,o.stateNode=r,e[fr]=r.current,n&&0!==t&&function(e){var t=Mn(e);gt.forEach((function(n){Fn(n,e,t)})),yt.forEach((function(n){Fn(n,e,t)}))}(9===e.nodeType?e:e.ownerDocument),this._internalRoot=r}function Zs(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ec(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a._internalRoot;if("function"==typeof o){var u=o;o=function(){var e=$s(i);u.call(e)}}Xs(t,i,e,o)}else{if(a=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new Js(e,0,t?{hydrate:!0}:void 0)}(n,r),i=a._internalRoot,"function"==typeof o){var s=o;o=function(){var e=$s(i);s.call(e)}}ps((function(){Xs(t,i,e,o)}))}return $s(i)}function tc(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:B,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function nc(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Zs(t))throw Error(i(200));return tc(e,t,null,n)}Js.prototype.render=function(e,t){Xs(e,this._internalRoot,null,void 0===t?null:t)},Js.prototype.unmount=function(e){var t=this._internalRoot,n=void 0===e?null:e,r=t.containerInfo;Xs(null,t,null,(function(){r[fr]=null,null!==n&&n()}))},it=function(e){if(13===e.tag){var t=ta(os(),150,100);is(e,t),Qs(e,t)}},ut=function(e){if(13===e.tag){os();var t=ea++;is(e,t),Qs(e,t)}},st=function(e){if(13===e.tag){var t=os();is(e,t=as(t,e,null)),Qs(e,t)}},ee=function(e,t,n){switch(t){case"input":if(Ie(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=vr(r);if(!o)throw Error(i(90));_e(r),Ie(r,o)}}}break;case"textarea":Fe(e,n);break;case"select":null!=(t=n.value)&&Ne(e,!!n.multiple,t,!1)}},ie=ds,ue=function(e,t,n,r){var o=Mu;Mu|=4;try{return $o(98,e.bind(null,t,n,r))}finally{0===(Mu=o)&&Jo()}},se=function(){0==(49&Mu)&&(function(){if(null!==es){var e=es;es=null,e.forEach((function(e,t){Ks(t,e),cs(t)})),Jo()}}(),Rs())},ce=function(e,t){var n=Mu;Mu|=2;try{return e(t)}finally{0===(Mu=n)&&Jo()}};var rc={createPortal:nc,findDOMNode:function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternalFiber;if(void 0===t){if("function"==typeof e.render)throw Error(i(188));throw Error(i(268,Object.keys(e)))}return e=null===(e=at(t))?null:e.stateNode},hydrate:function(e,t,n){if(!Zs(t))throw Error(i(200));return ec(null,e,t,!0,n)},render:function(e,t,n){if(!Zs(t))throw Error(i(200));return ec(null,e,t,!1,n)},unstable_renderSubtreeIntoContainer:function(e,t,n,r){if(!Zs(n))throw Error(i(200));if(null==e||void 0===e._reactInternalFiber)throw Error(i(38));return ec(e,t,n,!1,r)},unmountComponentAtNode:function(e){if(!Zs(e))throw Error(i(40));return!!e._reactRootContainer&&(ps((function(){ec(null,null,e,!1,(function(){e._reactRootContainer=null,e[fr]=null}))})),!0)},unstable_createPortal:function(){return nc.apply(void 0,arguments)},unstable_batchedUpdates:ds,flushSync:function(e,t){if(0!=(48&Mu))throw Error(i(187));var n=Mu;Mu|=1;try{return $o(99,e.bind(null,t))}finally{Mu=n,Jo()}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{Events:[pr,hr,vr,A.injectEventPluginsByName,d,Pt,function(e){R(e,Nt)},oe,ae,An,O,Rs,{current:!1}]}};!function(e){var t=e.findFiberByHostInstance;(function(e){if("undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);Ns=function(e){try{t.onCommitFiberRoot(n,e,void 0,64==(64&e.current.effectTag))}catch(r){}},Ps=function(e){try{t.onCommitFiberUnmount(n,e)}catch(r){}}}catch(r){}})(o({},e,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:N.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=at(e))?null:e.stateNode},findFiberByHostInstance:function(e){return t?t(e):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}))}({findFiberByHostInstance:dr,bundleType:0,version:"16.12.0",rendererPackageName:"react-dom"});var oc={default:rc},ac=oc&&rc||oc;e.exports=ac.default||ac},935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(448)},408:(e,t,n)=>{"use strict";var r=n(418),o="function"==typeof Symbol&&Symbol.for,a=o?Symbol.for("react.element"):60103,i=o?Symbol.for("react.portal"):60106,u=o?Symbol.for("react.fragment"):60107,s=o?Symbol.for("react.strict_mode"):60108,c=o?Symbol.for("react.profiler"):60114,l=o?Symbol.for("react.provider"):60109,f=o?Symbol.for("react.context"):60110,d=o?Symbol.for("react.forward_ref"):60112,p=o?Symbol.for("react.suspense"):60113;o&&Symbol.for("react.suspense_list");var h=o?Symbol.for("react.memo"):60115,v=o?Symbol.for("react.lazy"):60116;o&&Symbol.for("react.fundamental"),o&&Symbol.for("react.responder"),o&&Symbol.for("react.scope");var m="function"==typeof Symbol&&Symbol.iterator;function g(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b={};function x(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||y}function w(){}function E(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||y}x.prototype.isReactComponent={},x.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(g(85));this.updater.enqueueSetState(this,e,t,"setState")},x.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},w.prototype=x.prototype;var C=E.prototype=new w;C.constructor=E,r(C,x.prototype),C.isPureReactComponent=!0;var k={current:null},_={current:null},S=Object.prototype.hasOwnProperty,R={key:!0,ref:!0,__self:!0,__source:!0};function T(e,t,n){var r,o={},i=null,u=null;if(null!=t)for(r in void 0!==t.ref&&(u=t.ref),void 0!==t.key&&(i=""+t.key),t)S.call(t,r)&&!R.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(1===s)o.children=n;else if(1<s){for(var c=Array(s),l=0;l<s;l++)c[l]=arguments[l+2];o.children=c}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===o[r]&&(o[r]=s[r]);return{$$typeof:a,type:e,key:i,ref:u,props:o,_owner:_.current}}function I(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var O=/\/+/g,A=[];function D(e,t,n,r){if(A.length){var o=A.pop();return o.result=e,o.keyPrefix=t,o.func=n,o.context=r,o.count=0,o}return{result:e,keyPrefix:t,func:n,context:r,count:0}}function N(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>A.length&&A.push(e)}function P(e,t,n,r){var o=typeof e;"undefined"!==o&&"boolean"!==o||(e=null);var u=!1;if(null===e)u=!0;else switch(o){case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case a:case i:u=!0}}if(u)return n(r,e,""===t?"."+F(e,0):t),1;if(u=0,t=""===t?".":t+":",Array.isArray(e))for(var s=0;s<e.length;s++){var c=t+F(o=e[s],s);u+=P(o,c,n,r)}else if(null===e||"object"!=typeof e?c=null:c="function"==typeof(c=m&&e[m]||e["@@iterator"])?c:null,"function"==typeof c)for(e=c.call(e),s=0;!(o=e.next()).done;)u+=P(o=o.value,c=t+F(o,s++),n,r);else if("object"===o)throw n=""+e,Error(g(31,"[object Object]"===n?"object with keys {"+Object.keys(e).join(", ")+"}":n,""));return u}function M(e,t,n){return null==e?0:P(e,"",t,n)}function F(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return t[e]}))}(e.key):t.toString(36)}function B(e,t){e.func.call(e.context,t,e.count++)}function L(e,t,n){var r=e.result,o=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?W(e,r,n,(function(e){return e})):null!=e&&(I(e)&&(e=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(e,o+(!e.key||t&&t.key===e.key?"":(""+e.key).replace(O,"$&/")+"/")+n)),r.push(e))}function W(e,t,n,r,o){var a="";null!=n&&(a=(""+n).replace(O,"$&/")+"/"),M(e,L,t=D(t,a,r,o)),N(t)}function U(){var e=k.current;if(null===e)throw Error(g(321));return e}var z={Children:{map:function(e,t,n){if(null==e)return e;var r=[];return W(e,r,null,t,n),r},forEach:function(e,t,n){if(null==e)return e;M(e,B,t=D(null,null,t,n)),N(t)},count:function(e){return M(e,(function(){return null}),null)},toArray:function(e){var t=[];return W(e,t,null,(function(e){return e})),t},only:function(e){if(!I(e))throw Error(g(143));return e}},createRef:function(){return{current:null}},Component:x,PureComponent:E,createContext:function(e,t){return void 0===t&&(t=null),(e={$$typeof:f,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:l,_context:e},e.Consumer=e},forwardRef:function(e){return{$$typeof:d,render:e}},lazy:function(e){return{$$typeof:v,_ctor:e,_status:-1,_result:null}},memo:function(e,t){return{$$typeof:h,type:e,compare:void 0===t?null:t}},useCallback:function(e,t){return U().useCallback(e,t)},useContext:function(e,t){return U().useContext(e,t)},useEffect:function(e,t){return U().useEffect(e,t)},useImperativeHandle:function(e,t,n){return U().useImperativeHandle(e,t,n)},useDebugValue:function(){},useLayoutEffect:function(e,t){return U().useLayoutEffect(e,t)},useMemo:function(e,t){return U().useMemo(e,t)},useReducer:function(e,t,n){return U().useReducer(e,t,n)},useRef:function(e){return U().useRef(e)},useState:function(e){return U().useState(e)},Fragment:u,Profiler:c,StrictMode:s,Suspense:p,createElement:T,cloneElement:function(e,t,n){if(null==e)throw Error(g(267,e));var o=r({},e.props),i=e.key,u=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(u=t.ref,s=_.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(l in t)S.call(t,l)&&!R.hasOwnProperty(l)&&(o[l]=void 0===t[l]&&void 0!==c?c[l]:t[l])}var l=arguments.length-2;if(1===l)o.children=n;else if(1<l){c=Array(l);for(var f=0;f<l;f++)c[f]=arguments[f+2];o.children=c}return{$$typeof:a,type:e.type,key:i,ref:u,props:o,_owner:s}},createFactory:function(e){var t=T.bind(null,e);return t.type=e,t},isValidElement:I,version:"16.12.0",__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentDispatcher:k,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:_,IsSomeRendererActing:{current:!1},assign:r}},j={default:z},V=j&&z||j;e.exports=V.default||V},294:(e,t,n)=>{"use strict";e.exports=n(408)},53:(e,t)=>{"use strict";var n,r,o,a,i;if(Object.defineProperty(t,"__esModule",{value:!0}),"undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,s=null,c=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(n){throw setTimeout(c,0),n}},l=Date.now();t.unstable_now=function(){return Date.now()-l},n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(c,0))},r=function(e,t){s=setTimeout(e,t)},o=function(){clearTimeout(s)},a=function(){return!1},i=t.unstable_forceFrameRate=function(){}}else{var f=window.performance,d=window.Date,p=window.setTimeout,h=window.clearTimeout;if("undefined"!=typeof console){var v=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof v&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")}if("object"==typeof f&&"function"==typeof f.now)t.unstable_now=function(){return f.now()};else{var m=d.now();t.unstable_now=function(){return d.now()-m}}var g=!1,y=null,b=-1,x=5,w=0;a=function(){return t.unstable_now()>=w},i=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported"):x=0<e?Math.floor(1e3/e):5};var E=new MessageChannel,C=E.port2;E.port1.onmessage=function(){if(null!==y){var e=t.unstable_now();w=e+x;try{y(!0,e)?C.postMessage(null):(g=!1,y=null)}catch(n){throw C.postMessage(null),n}}else g=!1},n=function(e){y=e,g||(g=!0,C.postMessage(null))},r=function(e,n){b=p((function(){e(t.unstable_now())}),n)},o=function(){h(b),b=-1}}function k(e,t){var n=e.length;e.push(t);e:for(;;){var r=Math.floor((n-1)/2),o=e[r];if(!(void 0!==o&&0<R(o,t)))break e;e[r]=t,e[n]=o,n=r}}function _(e){return void 0===(e=e[0])?null:e}function S(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length;r<o;){var a=2*(r+1)-1,i=e[a],u=a+1,s=e[u];if(void 0!==i&&0>R(i,n))void 0!==s&&0>R(s,i)?(e[r]=s,e[u]=n,r=u):(e[r]=i,e[a]=n,r=a);else{if(!(void 0!==s&&0>R(s,n)))break e;e[r]=s,e[u]=n,r=u}}}return t}return null}function R(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var T=[],I=[],O=1,A=null,D=3,N=!1,P=!1,M=!1;function F(e){for(var t=_(I);null!==t;){if(null===t.callback)S(I);else{if(!(t.startTime<=e))break;S(I),t.sortIndex=t.expirationTime,k(T,t)}t=_(I)}}function B(e){if(M=!1,F(e),!P)if(null!==_(T))P=!0,n(L);else{var t=_(I);null!==t&&r(B,t.startTime-e)}}function L(e,n){P=!1,M&&(M=!1,o()),N=!0;var i=D;try{for(F(n),A=_(T);null!==A&&(!(A.expirationTime>n)||e&&!a());){var u=A.callback;if(null!==u){A.callback=null,D=A.priorityLevel;var s=u(A.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?A.callback=s:A===_(T)&&S(T),F(n)}else S(T);A=_(T)}if(null!==A)var c=!0;else{var l=_(I);null!==l&&r(B,l.startTime-n),c=!1}return c}finally{A=null,D=i,N=!1}}function W(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var U=i;t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=D;D=e;try{return t()}finally{D=n}},t.unstable_next=function(e){switch(D){case 1:case 2:case 3:var t=3;break;default:t=D}var n=D;D=t;try{return e()}finally{D=n}},t.unstable_scheduleCallback=function(e,a,i){var u=t.unstable_now();if("object"==typeof i&&null!==i){var s=i.delay;s="number"==typeof s&&0<s?u+s:u,i="number"==typeof i.timeout?i.timeout:W(e)}else i=W(e),s=u;return e={id:O++,callback:a,priorityLevel:e,startTime:s,expirationTime:i=s+i,sortIndex:-1},s>u?(e.sortIndex=s,k(I,e),null===_(T)&&e===_(I)&&(M?o():M=!0,r(B,s-u))):(e.sortIndex=i,k(T,e),P||N||(P=!0,n(L))),e},t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_wrapCallback=function(e){var t=D;return function(){var n=D;D=t;try{return e.apply(this,arguments)}finally{D=n}}},t.unstable_getCurrentPriorityLevel=function(){return D},t.unstable_shouldYield=function(){var e=t.unstable_now();F(e);var n=_(T);return n!==A&&null!==A&&null!==n&&null!==n.callback&&n.startTime<=e&&n.expirationTime<A.expirationTime||a()},t.unstable_requestPaint=U,t.unstable_continueExecution=function(){P||N||(P=!0,n(L))},t.unstable_pauseExecution=function(){},t.unstable_getFirstCallbackNode=function(){return _(T)},t.unstable_Profiling=null},840:(e,t,n)=>{"use strict";e.exports=n(53)}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var a=t[r]={exports:{}};return e[r](a,a.exports,n),a.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};(()=>{"use strict";n.r(r);var e=n(294),t=n.n(e),o=n(935),a=n.n(o),i=n(514),u=n.n(i);window.Yoti=window.Yoti||{},window.Yoti.FaceCaptureModule={render:(e,n)=>{a().render(t().createElement(u(),e),n)}}})();var o=window;for(var a in r)o[a]=r[a];r.__esModule&&Object.defineProperty(o,"__esModule",{value:!0})})();
3
+ //# sourceMappingURL=index.js.map